From b3a06a66b80420863e336713593b8f181b133594 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Javier=20Su=C3=A1rez?= Date: Thu, 20 Mar 2025 17:35:45 +0100 Subject: [PATCH 1/5] Initial docs --- docs/_site/api/AlohaKit.Controls.Avatar.html | 1167 +++ .../api/AlohaKit.Controls.AvatarDrawable.html | 477 + .../api/AlohaKit.Controls.AvatarSize.html | 174 + ...lohaKit.Controls.AvatarSizeExtensions.html | 327 + .../_site/api/AlohaKit.Controls.BarChart.html | 1079 ++ .../AlohaKit.Controls.BarChartDrawable.html | 451 + .../api/AlohaKit.Controls.BaseChart.html | 2657 +++++ .../AlohaKit.Controls.BaseChartDrawable.html | 2514 +++++ .../api/AlohaKit.Controls.BusyIndicator.html | 1100 +++ ...ohaKit.Controls.BusyIndicatorDrawable.html | 538 + docs/_site/api/AlohaKit.Controls.Button.html | 2043 ++++ .../api/AlohaKit.Controls.ButtonDrawable.html | 759 ++ docs/_site/api/AlohaKit.Controls.Captcha.html | 986 ++ .../AlohaKit.Controls.CaptchaDrawable.html | 382 + .../api/AlohaKit.Controls.CaptchaLevel.html | 160 + .../_site/api/AlohaKit.Controls.CheckBox.html | 1445 +++ .../AlohaKit.Controls.CheckBoxDrawable.html | 444 + .../api/AlohaKit.Controls.LineChart.html | 1451 +++ .../AlohaKit.Controls.LineChartDrawable.html | 643 ++ .../api/AlohaKit.Controls.LinearGauge.html | 1202 +++ ...AlohaKit.Controls.LinearGaugeDrawable.html | 477 + .../api/AlohaKit.Controls.MultiBarChart.html | 1249 +++ ...ohaKit.Controls.MultiBarChartDrawable.html | 570 ++ ...haKit.Controls.MultiLineChartDrawable.html | 832 ++ .../AlohaKit.Controls.MultiLineChartView.html | 1442 +++ .../api/AlohaKit.Controls.NumericUpDown.html | 1628 ++++ ...ohaKit.Controls.NumericUpDownDrawable.html | 729 ++ .../_site/api/AlohaKit.Controls.PieChart.html | 1044 ++ .../AlohaKit.Controls.PieChartDrawable.html | 415 + .../api/AlohaKit.Controls.ProgressBar.html | 1522 +++ ...AlohaKit.Controls.ProgressBarDrawable.html | 506 + .../AlohaKit.Controls.ProgressBarStyle.html | 155 + .../api/AlohaKit.Controls.ProgressRadial.html | 1408 +++ ...aKit.Controls.ProgressRadialDirection.html | 155 + ...haKit.Controls.ProgressRadialDrawable.html | 634 ++ .../api/AlohaKit.Controls.PulseIcon.html | 1134 +++ .../AlohaKit.Controls.PulseIconDrawable.html | 415 + docs/_site/api/AlohaKit.Controls.Rating.html | 1506 +++ .../api/AlohaKit.Controls.RatingDrawable.html | 570 ++ ....Controls.RatingValueChangedEventArgs.html | 251 + .../AlohaKit.Controls.SegmentedControl.html | 1539 +++ ...Kit.Controls.SegmentedControlDrawable.html | 601 ++ ...haKit.Controls.SelectedIndexEventArgs.html | 251 + docs/_site/api/AlohaKit.Controls.Slider.html | 1384 +++ .../api/AlohaKit.Controls.SliderDrawable.html | 603 ++ .../api/AlohaKit.Controls.ThumbShape.html | 158 + .../api/AlohaKit.Controls.ToggleSwitch.html | 1140 +++ ...lohaKit.Controls.ToggleSwitchDrawable.html | 413 + docs/_site/api/AlohaKit.Controls.html | 378 + .../AlohaKit.DataVisualization.PieChart.html | 1043 ++ ...it.DataVisualization.PieChartDrawable.html | 415 + .../_site/api/AlohaKit.DataVisualization.html | 130 + ...haKit.Enums.ChartEnums.LineChartStyle.html | 155 + docs/_site/api/AlohaKit.Enums.ChartEnums.html | 176 + docs/_site/api/AlohaKit.Enums.html | 135 + .../AlohaKit.Extensions.ChartExtensions.html | 471 + ...aKit.Extensions.IEnumerableExtensions.html | 254 + ...AlohaKit.Extensions.NumericExtensions.html | 220 + docs/_site/api/AlohaKit.Extensions.html | 134 + .../api/AlohaKit.Models.ChartGroupStyle.html | 383 + docs/_site/api/AlohaKit.Models.ChartItem.html | 449 + docs/_site/api/AlohaKit.Models.html | 130 + docs/_site/api/toc.html | 225 + docs/_site/api/toc.json | 2 + docs/_site/api/toc.pdf | Bin 0 -> 13787477 bytes docs/_site/docs/getting-started.html | 116 + docs/_site/docs/introduction.html | 116 + docs/_site/docs/toc.html | 25 + docs/_site/docs/toc.json | 2 + docs/_site/docs/toc.pdf | Bin 0 -> 37728 bytes docs/_site/favicon.ico | Bin 0 -> 99678 bytes docs/_site/index.html | 107 + docs/_site/index.json | 327 + docs/_site/logo.svg | 25 + docs/_site/manifest.json | 956 ++ .../architecture-I3QFYML2-2T2ZUHXO.min.js | 2 + .../architecture-I3QFYML2-2T2ZUHXO.min.js.map | 7 + ...chitectureDiagram-UYN6MBPD-WBU2OYNU.min.js | 37 + ...ectureDiagram-UYN6MBPD-WBU2OYNU.min.js.map | 7 + .../blockDiagram-ZHA2E4KO-IZKTV5IP.min.js | 122 + .../blockDiagram-ZHA2E4KO-IZKTV5IP.min.js.map | 7 + .../public/bootstrap-icons-OCU552PF.woff | Bin 0 -> 176032 bytes .../public/bootstrap-icons-X6UQXWUS.woff2 | Bin 0 -> 130396 bytes .../public/c4Diagram-6F5ED5ID-X53KYE5F.min.js | 11 + .../c4Diagram-6F5ED5ID-X53KYE5F.min.js.map | 7 + docs/_site/public/chunk-2YMHYP32.min.js | 2 + docs/_site/public/chunk-2YMHYP32.min.js.map | 7 + docs/_site/public/chunk-33FU46FA.min.js | 2 + docs/_site/public/chunk-33FU46FA.min.js.map | 7 + docs/_site/public/chunk-3Z74ZUXG.min.js | 2 + docs/_site/public/chunk-3Z74ZUXG.min.js.map | 7 + docs/_site/public/chunk-54U54PUP.min.js | 165 + docs/_site/public/chunk-54U54PUP.min.js.map | 7 + docs/_site/public/chunk-5IIW54K6.min.js | 2 + docs/_site/public/chunk-5IIW54K6.min.js.map | 7 + docs/_site/public/chunk-6YMKSKZH.min.js | 221 + docs/_site/public/chunk-6YMKSKZH.min.js.map | 7 + docs/_site/public/chunk-AUO2PXKS.min.js | 67 + docs/_site/public/chunk-AUO2PXKS.min.js.map | 7 + docs/_site/public/chunk-BD4P4Z7J.min.js | 2 + docs/_site/public/chunk-BD4P4Z7J.min.js.map | 7 + docs/_site/public/chunk-BIJFJY5F.min.js | 126 + docs/_site/public/chunk-BIJFJY5F.min.js.map | 7 + docs/_site/public/chunk-C7DS3QYJ.min.js | 2 + docs/_site/public/chunk-C7DS3QYJ.min.js.map | 7 + docs/_site/public/chunk-CLIYZZ5Y.min.js | 2 + docs/_site/public/chunk-CLIYZZ5Y.min.js.map | 7 + docs/_site/public/chunk-CM5D5KZN.min.js | 2 + docs/_site/public/chunk-CM5D5KZN.min.js.map | 7 + docs/_site/public/chunk-CXRPJJJE.min.js | 2 + docs/_site/public/chunk-CXRPJJJE.min.js.map | 7 + docs/_site/public/chunk-DTUU2GN4.min.js | 22 + docs/_site/public/chunk-DTUU2GN4.min.js.map | 7 + docs/_site/public/chunk-EDJWACL4.min.js | 2 + docs/_site/public/chunk-EDJWACL4.min.js.map | 7 + docs/_site/public/chunk-EKP7MBOP.min.js | 2 + docs/_site/public/chunk-EKP7MBOP.min.js.map | 7 + docs/_site/public/chunk-I4ZXTPQC.min.js | 2 + docs/_site/public/chunk-I4ZXTPQC.min.js.map | 7 + docs/_site/public/chunk-IJ4BRSPX.min.js | 2 + docs/_site/public/chunk-IJ4BRSPX.min.js.map | 7 + docs/_site/public/chunk-IQQ46AC6.min.js | 2 + docs/_site/public/chunk-IQQ46AC6.min.js.map | 7 + docs/_site/public/chunk-ISDTAGDN.min.js | 2 + docs/_site/public/chunk-ISDTAGDN.min.js.map | 7 + docs/_site/public/chunk-JL3VILNY.min.js | 2 + docs/_site/public/chunk-JL3VILNY.min.js.map | 7 + docs/_site/public/chunk-N4YULA37.min.js | 42 + docs/_site/public/chunk-N4YULA37.min.js.map | 7 + docs/_site/public/chunk-N6ME3NZU.min.js | 16 + docs/_site/public/chunk-N6ME3NZU.min.js.map | 7 + docs/_site/public/chunk-OSRY5VT3.min.js | 2 + docs/_site/public/chunk-OSRY5VT3.min.js.map | 7 + docs/_site/public/chunk-OZ2RCKQJ.min.js | 2 + docs/_site/public/chunk-OZ2RCKQJ.min.js.map | 7 + docs/_site/public/chunk-PDS7545E.min.js | 2 + docs/_site/public/chunk-PDS7545E.min.js.map | 7 + docs/_site/public/chunk-PYPO7LRM.min.js | 3 + docs/_site/public/chunk-PYPO7LRM.min.js.map | 7 + docs/_site/public/chunk-TLYS76Q7.min.js | 5 + docs/_site/public/chunk-TLYS76Q7.min.js.map | 7 + docs/_site/public/chunk-U3SD26FK.min.js | 65 + docs/_site/public/chunk-U3SD26FK.min.js.map | 7 + docs/_site/public/chunk-U4DUTLYF.min.js | 15 + docs/_site/public/chunk-U4DUTLYF.min.js.map | 7 + docs/_site/public/chunk-UEFJDIUO.min.js | 2 + docs/_site/public/chunk-UEFJDIUO.min.js.map | 7 + docs/_site/public/chunk-V55NTXQN.min.js | 2 + docs/_site/public/chunk-V55NTXQN.min.js.map | 7 + docs/_site/public/chunk-WMZJ2DJX.min.js | 25 + docs/_site/public/chunk-WMZJ2DJX.min.js.map | 7 + docs/_site/public/chunk-WXIN66R4.min.js | 4 + docs/_site/public/chunk-WXIN66R4.min.js.map | 7 + .../classDiagram-LNE6IOMH-VZ67B4ZP.min.js | 2 + .../classDiagram-LNE6IOMH-VZ67B4ZP.min.js.map | 7 + .../classDiagram-v2-MQ7JQ4JX-4JTAVB6L.min.js | 2 + ...assDiagram-v2-MQ7JQ4JX-4JTAVB6L.min.js.map | 7 + .../public/dagre-4EVJKHTY-MHPLGZHX.min.js | 5 + .../public/dagre-4EVJKHTY-MHPLGZHX.min.js.map | 7 + .../public/diagram-QW4FP2JN-UOF7FAFC.min.js | 25 + .../diagram-QW4FP2JN-UOF7FAFC.min.js.map | 7 + docs/_site/public/docfx.min.css | 16 + docs/_site/public/docfx.min.css.map | 7 + docs/_site/public/docfx.min.js | 102 + docs/_site/public/docfx.min.js.map | 7 + .../public/erDiagram-6RL3IURR-PEYW6AVI.min.js | 52 + .../erDiagram-6RL3IURR-PEYW6AVI.min.js.map | 7 + docs/_site/public/es-4I4X6RME.min.js | 10 + docs/_site/public/es-4I4X6RME.min.js.map | 7 + .../flowDiagram-7ASYPVHJ-DABBKNEC.min.js | 161 + .../flowDiagram-7ASYPVHJ-DABBKNEC.min.js.map | 7 + .../ganttDiagram-NTVNEXSI-JVQ2N4MZ.min.js | 258 + .../ganttDiagram-NTVNEXSI-JVQ2N4MZ.min.js.map | 7 + .../public/gitGraph-YCYPL57B-3XOJ53I6.min.js | 2 + .../gitGraph-YCYPL57B-3XOJ53I6.min.js.map | 7 + .../gitGraphDiagram-NRZ2UAAF-WVTRWY3E.min.js | 66 + ...tGraphDiagram-NRZ2UAAF-WVTRWY3E.min.js.map | 7 + .../public/info-46DW6VJ7-RDUIJSMX.min.js | 2 + .../public/info-46DW6VJ7-RDUIJSMX.min.js.map | 7 + .../infoDiagram-A4XQUW5V-SKLVFWJI.min.js | 3 + .../infoDiagram-A4XQUW5V-SKLVFWJI.min.js.map | 7 + .../journeyDiagram-G5WM74LC-AHZ7GKR5.min.js | 140 + ...ourneyDiagram-G5WM74LC-AHZ7GKR5.min.js.map | 7 + ...kanban-definition-QRCXZQQD-MKSHYOCX.min.js | 89 + ...an-definition-QRCXZQQD-MKSHYOCX.min.js.map | 7 + docs/_site/public/katex-ROPKEHCO.min.js | 262 + docs/_site/public/katex-ROPKEHCO.min.js.map | 7 + docs/_site/public/lunr.ar-A6ZT2INA.min.js | 25 + docs/_site/public/lunr.ar-A6ZT2INA.min.js.map | 7 + docs/_site/public/lunr.da-WWM276CR.min.js | 22 + docs/_site/public/lunr.da-WWM276CR.min.js.map | 7 + docs/_site/public/lunr.de-XXPRKDAY.min.js | 22 + docs/_site/public/lunr.de-XXPRKDAY.min.js.map | 7 + docs/_site/public/lunr.du-NO4L2LL3.min.js | 22 + docs/_site/public/lunr.du-NO4L2LL3.min.js.map | 7 + docs/_site/public/lunr.el-5ZSSJVMA.min.js | 22 + docs/_site/public/lunr.el-5ZSSJVMA.min.js.map | 7 + docs/_site/public/lunr.es-ZH6Q76E6.min.js | 22 + docs/_site/public/lunr.es-ZH6Q76E6.min.js.map | 7 + docs/_site/public/lunr.fi-S7WJSBCP.min.js | 22 + docs/_site/public/lunr.fi-S7WJSBCP.min.js.map | 7 + docs/_site/public/lunr.fr-H2QNBELV.min.js | 22 + docs/_site/public/lunr.fr-H2QNBELV.min.js.map | 7 + docs/_site/public/lunr.he-TTLAK4MN.min.js | 25 + docs/_site/public/lunr.he-TTLAK4MN.min.js.map | 7 + docs/_site/public/lunr.hi-PWWMAGLU.min.js | 22 + docs/_site/public/lunr.hi-PWWMAGLU.min.js.map | 7 + docs/_site/public/lunr.hu-DLG2DSVM.min.js | 22 + docs/_site/public/lunr.hu-DLG2DSVM.min.js.map | 7 + docs/_site/public/lunr.hy-FFQJAR7M.min.js | 22 + docs/_site/public/lunr.hy-FFQJAR7M.min.js.map | 7 + docs/_site/public/lunr.it-VQNLJLPR.min.js | 22 + docs/_site/public/lunr.it-VQNLJLPR.min.js.map | 7 + docs/_site/public/lunr.ja-J6QHZSR2.min.js | 2 + docs/_site/public/lunr.ja-J6QHZSR2.min.js.map | 7 + docs/_site/public/lunr.jp-M45D3XJE.min.js | 2 + docs/_site/public/lunr.jp-M45D3XJE.min.js.map | 7 + docs/_site/public/lunr.kn-ASLXFRTC.min.js | 22 + docs/_site/public/lunr.kn-ASLXFRTC.min.js.map | 7 + docs/_site/public/lunr.ko-RHF2BDE4.min.js | 22 + docs/_site/public/lunr.ko-RHF2BDE4.min.js.map | 7 + docs/_site/public/lunr.nl-2BITG354.min.js | 22 + docs/_site/public/lunr.nl-2BITG354.min.js.map | 7 + docs/_site/public/lunr.no-WPLSHWFO.min.js | 22 + docs/_site/public/lunr.no-WPLSHWFO.min.js.map | 7 + docs/_site/public/lunr.pt-V2XEBELC.min.js | 22 + docs/_site/public/lunr.pt-V2XEBELC.min.js.map | 7 + docs/_site/public/lunr.ro-O76266FJ.min.js | 22 + docs/_site/public/lunr.ro-O76266FJ.min.js.map | 7 + docs/_site/public/lunr.ru-G56UDXYH.min.js | 22 + docs/_site/public/lunr.ru-G56UDXYH.min.js.map | 7 + docs/_site/public/lunr.sa-LD5PRAIS.min.js | 22 + docs/_site/public/lunr.sa-LD5PRAIS.min.js.map | 7 + docs/_site/public/lunr.sv-7VRY4UDB.min.js | 22 + docs/_site/public/lunr.sv-7VRY4UDB.min.js.map | 7 + docs/_site/public/lunr.ta-OWB7AURB.min.js | 22 + docs/_site/public/lunr.ta-OWB7AURB.min.js.map | 7 + docs/_site/public/lunr.te-JGGL3BFP.min.js | 22 + docs/_site/public/lunr.te-JGGL3BFP.min.js.map | 7 + docs/_site/public/lunr.th-O4JBL3IY.min.js | 22 + docs/_site/public/lunr.th-O4JBL3IY.min.js.map | 7 + docs/_site/public/lunr.tr-WXUV733C.min.js | 22 + docs/_site/public/lunr.tr-WXUV733C.min.js.map | 7 + docs/_site/public/lunr.vi-3U4A337N.min.js | 22 + docs/_site/public/lunr.vi-3U4A337N.min.js.map | 7 + docs/_site/public/main.css | 0 docs/_site/public/main.js | 1 + .../_site/public/mermaid.core-QWHI4VJR.min.js | 19 + .../public/mermaid.core-QWHI4VJR.min.js.map | 7 + ...indmap-definition-GWI6TPTV-XCX7U2FR.min.js | 96 + ...ap-definition-GWI6TPTV-XCX7U2FR.min.js.map | 7 + .../public/packet-W2GHVCYJ-ZZMTAWKW.min.js | 2 + .../packet-W2GHVCYJ-ZZMTAWKW.min.js.map | 7 + .../_site/public/pie-BEWT4RHE-VFWRUT6J.min.js | 2 + .../public/pie-BEWT4RHE-VFWRUT6J.min.js.map | 7 + .../pieDiagram-YF2LJOPJ-ITGVNBO2.min.js | 31 + .../pieDiagram-YF2LJOPJ-ITGVNBO2.min.js.map | 7 + .../quadrantDiagram-OS5C2QUG-BN35C5UH.min.js | 8 + ...adrantDiagram-OS5C2QUG-BN35C5UH.min.js.map | 7 + ...equirementDiagram-MIRIMTAZ-CXICLXCG.min.js | 53 + ...rementDiagram-MIRIMTAZ-CXICLXCG.min.js.map | 7 + .../sankeyDiagram-Y46BX6SQ-LTJNBPUP.min.js | 9 + ...sankeyDiagram-Y46BX6SQ-LTJNBPUP.min.js.map | 7 + docs/_site/public/search-worker.min.js | 67 + docs/_site/public/search-worker.min.js.map | 7 + .../sequenceDiagram-G6AWOVSC-UJVWCU2P.min.js | 123 + ...quenceDiagram-G6AWOVSC-UJVWCU2P.min.js.map | 7 + .../stateDiagram-MAYHULR4-UPNPJ5ZA.min.js | 2 + .../stateDiagram-MAYHULR4-UPNPJ5ZA.min.js.map | 7 + .../stateDiagram-v2-4JROLMXI-COTI64PW.min.js | 2 + ...ateDiagram-v2-4JROLMXI-COTI64PW.min.js.map | 7 + .../_site/public/tex-svg-full-SL33OL2J.min.js | 105 + .../public/tex-svg-full-SL33OL2J.min.js.map | 7 + ...meline-definition-U7ZMHBDA-I7GF7M6N.min.js | 62 + ...ne-definition-U7ZMHBDA-I7GF7M6N.min.js.map | 7 + .../xychartDiagram-6QU3TZC5-MQVPM64I.min.js | 8 + ...ychartDiagram-6QU3TZC5-MQVPM64I.min.js.map | 7 + docs/_site/toc.html | 25 + docs/_site/toc.json | 2 + docs/_site/toc.pdf | Bin 0 -> 132850 bytes docs/_site/xrefmap.yml | 8681 +++++++++++++++++ docs/api/.manifest | 798 ++ docs/api/AlohaKit.Controls.Avatar.yml | 4153 ++++++++ docs/api/AlohaKit.Controls.AvatarDrawable.yml | 776 ++ docs/api/AlohaKit.Controls.AvatarSize.yml | 356 + ...AlohaKit.Controls.AvatarSizeExtensions.yml | 490 + docs/api/AlohaKit.Controls.BarChart.yml | 3650 +++++++ .../AlohaKit.Controls.BarChartDrawable.yml | 1059 ++ docs/api/AlohaKit.Controls.BaseChart.yml | 5892 +++++++++++ .../AlohaKit.Controls.BaseChartDrawable.yml | 3608 +++++++ docs/api/AlohaKit.Controls.BusyIndicator.yml | 4044 ++++++++ ...lohaKit.Controls.BusyIndicatorDrawable.yml | 843 ++ docs/api/AlohaKit.Controls.Button.yml | 5118 ++++++++++ docs/api/AlohaKit.Controls.ButtonDrawable.yml | 1172 +++ docs/api/AlohaKit.Controls.Captcha.yml | 3934 ++++++++ .../api/AlohaKit.Controls.CaptchaDrawable.yml | 654 ++ docs/api/AlohaKit.Controls.CaptchaLevel.yml | 148 + docs/api/AlohaKit.Controls.CheckBox.yml | 4492 +++++++++ .../AlohaKit.Controls.CheckBoxDrawable.yml | 730 ++ docs/api/AlohaKit.Controls.LineChart.yml | 4102 ++++++++ .../AlohaKit.Controls.LineChartDrawable.yml | 1332 +++ docs/api/AlohaKit.Controls.LinearGauge.yml | 4202 ++++++++ .../AlohaKit.Controls.LinearGaugeDrawable.yml | 792 ++ docs/api/AlohaKit.Controls.MultiBarChart.yml | 3940 ++++++++ ...lohaKit.Controls.MultiBarChartDrawable.yml | 1420 +++ ...ohaKit.Controls.MultiLineChartDrawable.yml | 2814 ++++++ .../AlohaKit.Controls.MultiLineChartView.yml | 4201 ++++++++ docs/api/AlohaKit.Controls.NumericUpDown.yml | 4685 +++++++++ ...lohaKit.Controls.NumericUpDownDrawable.yml | 1057 ++ docs/api/AlohaKit.Controls.PieChart.yml | 4088 ++++++++ .../AlohaKit.Controls.PieChartDrawable.yml | 803 ++ docs/api/AlohaKit.Controls.ProgressBar.yml | 4570 +++++++++ .../AlohaKit.Controls.ProgressBarDrawable.yml | 844 ++ .../AlohaKit.Controls.ProgressBarStyle.yml | 117 + docs/api/AlohaKit.Controls.ProgressRadial.yml | 4430 +++++++++ ...haKit.Controls.ProgressRadialDirection.yml | 117 + ...ohaKit.Controls.ProgressRadialDrawable.yml | 979 ++ docs/api/AlohaKit.Controls.PulseIcon.yml | 4099 ++++++++ .../AlohaKit.Controls.PulseIconDrawable.yml | 693 ++ docs/api/AlohaKit.Controls.Rating.yml | 4577 +++++++++ docs/api/AlohaKit.Controls.RatingDrawable.yml | 887 ++ ...t.Controls.RatingValueChangedEventArgs.yml | 407 + .../AlohaKit.Controls.SegmentedControl.yml | 4691 +++++++++ ...aKit.Controls.SegmentedControlDrawable.yml | 966 ++ ...ohaKit.Controls.SelectedIndexEventArgs.yml | 407 + docs/api/AlohaKit.Controls.Slider.yml | 4391 +++++++++ docs/api/AlohaKit.Controls.SliderDrawable.yml | 910 ++ docs/api/AlohaKit.Controls.ThumbShape.yml | 144 + docs/api/AlohaKit.Controls.ToggleSwitch.yml | 4128 ++++++++ ...AlohaKit.Controls.ToggleSwitchDrawable.yml | 683 ++ docs/api/AlohaKit.Controls.yml | 396 + .../AlohaKit.DataVisualization.PieChart.yml | 4086 ++++++++ ...Kit.DataVisualization.PieChartDrawable.yml | 803 ++ docs/api/AlohaKit.DataVisualization.yml | 53 + ...ohaKit.Enums.ChartEnums.LineChartStyle.yml | 133 + docs/api/AlohaKit.Enums.ChartEnums.yml | 298 + docs/api/AlohaKit.Enums.yml | 69 + .../AlohaKit.Extensions.ChartExtensions.yml | 696 ++ ...haKit.Extensions.IEnumerableExtensions.yml | 427 + .../AlohaKit.Extensions.NumericExtensions.yml | 355 + docs/api/AlohaKit.Extensions.yml | 37 + docs/api/AlohaKit.Models.ChartGroupStyle.yml | 684 ++ docs/api/AlohaKit.Models.ChartItem.yml | 697 ++ docs/api/AlohaKit.Models.yml | 30 + docs/api/toc.yml | 194 + docs/docfx.json | 47 + docs/docs/getting-started.md | 1 + docs/docs/introduction.md | 1 + docs/docs/toc.yml | 4 + docs/filterConfig.yml | 5 + docs/index.md | 11 + docs/toc.yml | 4 + src/AlohaKit/Controls/Avatar/Avatar.cs | 6 +- src/AlohaKit/Controls/Avatar/AvatarSize.cs | 6 +- .../Controls/Avatar/AvatarSizeExtensions.cs | 7 +- .../Controls/BusyIndicator/BusyIndicator.cs | 284 +- src/AlohaKit/Controls/Button/Button.cs | 5 + src/AlohaKit/Controls/Captcha/Captcha.cs | 6 + src/AlohaKit/Controls/Captcha/CaptchaLevel.cs | 6 + src/AlohaKit/Controls/CheckBox/CheckBox.cs | 6 +- .../Controls/LinearGauge/LinearGauge.cs | 18 +- .../Controls/NumericUpDown/NumericUpDown.cs | 6 +- .../Controls/ProgressBar/ProgressBar.cs | 3 + .../Controls/ProgressBar/ProgressBarStyle.cs | 4 + .../Controls/ProgressRadial/ProgressRadial.cs | 6 +- .../ProgressRadial/ProgressRadialDirection.cs | 6 +- src/AlohaKit/Controls/PulseIcon/PulseIcon.cs | 18 +- src/AlohaKit/Controls/Rating/Rating.cs | 15 +- .../Rating/RatingValueChangedEventArgs.cs | 5 +- .../SegmentedControl/SegmentedControl.cs | 4 + .../SelectedIndexEventArgs.cs | 5 +- src/AlohaKit/Controls/Slider/Slider.cs | 6 +- src/AlohaKit/Controls/Slider/ThumbShape.cs | 6 +- .../Controls/ToggleSwitch/ToggleSwitch.cs | 13 +- .../DataVisualization/BarChart/BarChart.cs | 10 +- .../DataVisualization/LineChart/LineChart.cs | 15 +- .../MultiBarChart/MultiBarChart.cs | 8 +- .../MultiLineChart/MultiLineChart .cs | 12 +- .../DataVisualization/PieChart/PieChart.cs | 8 +- src/AlohaKit/Enums/ChartEnums.cs | 11 +- 380 files changed, 184620 insertions(+), 195 deletions(-) create mode 100644 docs/_site/api/AlohaKit.Controls.Avatar.html create mode 100644 docs/_site/api/AlohaKit.Controls.AvatarDrawable.html create mode 100644 docs/_site/api/AlohaKit.Controls.AvatarSize.html create mode 100644 docs/_site/api/AlohaKit.Controls.AvatarSizeExtensions.html create mode 100644 docs/_site/api/AlohaKit.Controls.BarChart.html create mode 100644 docs/_site/api/AlohaKit.Controls.BarChartDrawable.html create mode 100644 docs/_site/api/AlohaKit.Controls.BaseChart.html create mode 100644 docs/_site/api/AlohaKit.Controls.BaseChartDrawable.html create mode 100644 docs/_site/api/AlohaKit.Controls.BusyIndicator.html create mode 100644 docs/_site/api/AlohaKit.Controls.BusyIndicatorDrawable.html create mode 100644 docs/_site/api/AlohaKit.Controls.Button.html create mode 100644 docs/_site/api/AlohaKit.Controls.ButtonDrawable.html create mode 100644 docs/_site/api/AlohaKit.Controls.Captcha.html create mode 100644 docs/_site/api/AlohaKit.Controls.CaptchaDrawable.html create mode 100644 docs/_site/api/AlohaKit.Controls.CaptchaLevel.html create mode 100644 docs/_site/api/AlohaKit.Controls.CheckBox.html create mode 100644 docs/_site/api/AlohaKit.Controls.CheckBoxDrawable.html create mode 100644 docs/_site/api/AlohaKit.Controls.LineChart.html create mode 100644 docs/_site/api/AlohaKit.Controls.LineChartDrawable.html create mode 100644 docs/_site/api/AlohaKit.Controls.LinearGauge.html create mode 100644 docs/_site/api/AlohaKit.Controls.LinearGaugeDrawable.html create mode 100644 docs/_site/api/AlohaKit.Controls.MultiBarChart.html create mode 100644 docs/_site/api/AlohaKit.Controls.MultiBarChartDrawable.html create mode 100644 docs/_site/api/AlohaKit.Controls.MultiLineChartDrawable.html create mode 100644 docs/_site/api/AlohaKit.Controls.MultiLineChartView.html create mode 100644 docs/_site/api/AlohaKit.Controls.NumericUpDown.html create mode 100644 docs/_site/api/AlohaKit.Controls.NumericUpDownDrawable.html create mode 100644 docs/_site/api/AlohaKit.Controls.PieChart.html create mode 100644 docs/_site/api/AlohaKit.Controls.PieChartDrawable.html create mode 100644 docs/_site/api/AlohaKit.Controls.ProgressBar.html create mode 100644 docs/_site/api/AlohaKit.Controls.ProgressBarDrawable.html create mode 100644 docs/_site/api/AlohaKit.Controls.ProgressBarStyle.html create mode 100644 docs/_site/api/AlohaKit.Controls.ProgressRadial.html create mode 100644 docs/_site/api/AlohaKit.Controls.ProgressRadialDirection.html create mode 100644 docs/_site/api/AlohaKit.Controls.ProgressRadialDrawable.html create mode 100644 docs/_site/api/AlohaKit.Controls.PulseIcon.html create mode 100644 docs/_site/api/AlohaKit.Controls.PulseIconDrawable.html create mode 100644 docs/_site/api/AlohaKit.Controls.Rating.html create mode 100644 docs/_site/api/AlohaKit.Controls.RatingDrawable.html create mode 100644 docs/_site/api/AlohaKit.Controls.RatingValueChangedEventArgs.html create mode 100644 docs/_site/api/AlohaKit.Controls.SegmentedControl.html create mode 100644 docs/_site/api/AlohaKit.Controls.SegmentedControlDrawable.html create mode 100644 docs/_site/api/AlohaKit.Controls.SelectedIndexEventArgs.html create mode 100644 docs/_site/api/AlohaKit.Controls.Slider.html create mode 100644 docs/_site/api/AlohaKit.Controls.SliderDrawable.html create mode 100644 docs/_site/api/AlohaKit.Controls.ThumbShape.html create mode 100644 docs/_site/api/AlohaKit.Controls.ToggleSwitch.html create mode 100644 docs/_site/api/AlohaKit.Controls.ToggleSwitchDrawable.html create mode 100644 docs/_site/api/AlohaKit.Controls.html create mode 100644 docs/_site/api/AlohaKit.DataVisualization.PieChart.html create mode 100644 docs/_site/api/AlohaKit.DataVisualization.PieChartDrawable.html create mode 100644 docs/_site/api/AlohaKit.DataVisualization.html create mode 100644 docs/_site/api/AlohaKit.Enums.ChartEnums.LineChartStyle.html create mode 100644 docs/_site/api/AlohaKit.Enums.ChartEnums.html create mode 100644 docs/_site/api/AlohaKit.Enums.html create mode 100644 docs/_site/api/AlohaKit.Extensions.ChartExtensions.html create mode 100644 docs/_site/api/AlohaKit.Extensions.IEnumerableExtensions.html create mode 100644 docs/_site/api/AlohaKit.Extensions.NumericExtensions.html create mode 100644 docs/_site/api/AlohaKit.Extensions.html create mode 100644 docs/_site/api/AlohaKit.Models.ChartGroupStyle.html create mode 100644 docs/_site/api/AlohaKit.Models.ChartItem.html create mode 100644 docs/_site/api/AlohaKit.Models.html create mode 100644 docs/_site/api/toc.html create mode 100644 docs/_site/api/toc.json create mode 100644 docs/_site/api/toc.pdf create mode 100644 docs/_site/docs/getting-started.html create mode 100644 docs/_site/docs/introduction.html create mode 100644 docs/_site/docs/toc.html create mode 100644 docs/_site/docs/toc.json create mode 100644 docs/_site/docs/toc.pdf create mode 100644 docs/_site/favicon.ico create mode 100644 docs/_site/index.html create mode 100644 docs/_site/index.json create mode 100644 docs/_site/logo.svg create mode 100644 docs/_site/manifest.json create mode 100644 docs/_site/public/architecture-I3QFYML2-2T2ZUHXO.min.js create mode 100644 docs/_site/public/architecture-I3QFYML2-2T2ZUHXO.min.js.map create mode 100644 docs/_site/public/architectureDiagram-UYN6MBPD-WBU2OYNU.min.js create mode 100644 docs/_site/public/architectureDiagram-UYN6MBPD-WBU2OYNU.min.js.map create mode 100644 docs/_site/public/blockDiagram-ZHA2E4KO-IZKTV5IP.min.js create mode 100644 docs/_site/public/blockDiagram-ZHA2E4KO-IZKTV5IP.min.js.map create mode 100644 docs/_site/public/bootstrap-icons-OCU552PF.woff create mode 100644 docs/_site/public/bootstrap-icons-X6UQXWUS.woff2 create mode 100644 docs/_site/public/c4Diagram-6F5ED5ID-X53KYE5F.min.js create mode 100644 docs/_site/public/c4Diagram-6F5ED5ID-X53KYE5F.min.js.map create mode 100644 docs/_site/public/chunk-2YMHYP32.min.js create mode 100644 docs/_site/public/chunk-2YMHYP32.min.js.map create mode 100644 docs/_site/public/chunk-33FU46FA.min.js create mode 100644 docs/_site/public/chunk-33FU46FA.min.js.map create mode 100644 docs/_site/public/chunk-3Z74ZUXG.min.js create mode 100644 docs/_site/public/chunk-3Z74ZUXG.min.js.map create mode 100644 docs/_site/public/chunk-54U54PUP.min.js create mode 100644 docs/_site/public/chunk-54U54PUP.min.js.map create mode 100644 docs/_site/public/chunk-5IIW54K6.min.js create mode 100644 docs/_site/public/chunk-5IIW54K6.min.js.map create mode 100644 docs/_site/public/chunk-6YMKSKZH.min.js create mode 100644 docs/_site/public/chunk-6YMKSKZH.min.js.map create mode 100644 docs/_site/public/chunk-AUO2PXKS.min.js create mode 100644 docs/_site/public/chunk-AUO2PXKS.min.js.map create mode 100644 docs/_site/public/chunk-BD4P4Z7J.min.js create mode 100644 docs/_site/public/chunk-BD4P4Z7J.min.js.map create mode 100644 docs/_site/public/chunk-BIJFJY5F.min.js create mode 100644 docs/_site/public/chunk-BIJFJY5F.min.js.map create mode 100644 docs/_site/public/chunk-C7DS3QYJ.min.js create mode 100644 docs/_site/public/chunk-C7DS3QYJ.min.js.map create mode 100644 docs/_site/public/chunk-CLIYZZ5Y.min.js create mode 100644 docs/_site/public/chunk-CLIYZZ5Y.min.js.map create mode 100644 docs/_site/public/chunk-CM5D5KZN.min.js create mode 100644 docs/_site/public/chunk-CM5D5KZN.min.js.map create mode 100644 docs/_site/public/chunk-CXRPJJJE.min.js create mode 100644 docs/_site/public/chunk-CXRPJJJE.min.js.map create mode 100644 docs/_site/public/chunk-DTUU2GN4.min.js create mode 100644 docs/_site/public/chunk-DTUU2GN4.min.js.map create mode 100644 docs/_site/public/chunk-EDJWACL4.min.js create mode 100644 docs/_site/public/chunk-EDJWACL4.min.js.map create mode 100644 docs/_site/public/chunk-EKP7MBOP.min.js create mode 100644 docs/_site/public/chunk-EKP7MBOP.min.js.map create mode 100644 docs/_site/public/chunk-I4ZXTPQC.min.js create mode 100644 docs/_site/public/chunk-I4ZXTPQC.min.js.map create mode 100644 docs/_site/public/chunk-IJ4BRSPX.min.js create mode 100644 docs/_site/public/chunk-IJ4BRSPX.min.js.map create mode 100644 docs/_site/public/chunk-IQQ46AC6.min.js create mode 100644 docs/_site/public/chunk-IQQ46AC6.min.js.map create mode 100644 docs/_site/public/chunk-ISDTAGDN.min.js create mode 100644 docs/_site/public/chunk-ISDTAGDN.min.js.map create mode 100644 docs/_site/public/chunk-JL3VILNY.min.js create mode 100644 docs/_site/public/chunk-JL3VILNY.min.js.map create mode 100644 docs/_site/public/chunk-N4YULA37.min.js create mode 100644 docs/_site/public/chunk-N4YULA37.min.js.map create mode 100644 docs/_site/public/chunk-N6ME3NZU.min.js create mode 100644 docs/_site/public/chunk-N6ME3NZU.min.js.map create mode 100644 docs/_site/public/chunk-OSRY5VT3.min.js create mode 100644 docs/_site/public/chunk-OSRY5VT3.min.js.map create mode 100644 docs/_site/public/chunk-OZ2RCKQJ.min.js create mode 100644 docs/_site/public/chunk-OZ2RCKQJ.min.js.map create mode 100644 docs/_site/public/chunk-PDS7545E.min.js create mode 100644 docs/_site/public/chunk-PDS7545E.min.js.map create mode 100644 docs/_site/public/chunk-PYPO7LRM.min.js create mode 100644 docs/_site/public/chunk-PYPO7LRM.min.js.map create mode 100644 docs/_site/public/chunk-TLYS76Q7.min.js create mode 100644 docs/_site/public/chunk-TLYS76Q7.min.js.map create mode 100644 docs/_site/public/chunk-U3SD26FK.min.js create mode 100644 docs/_site/public/chunk-U3SD26FK.min.js.map create mode 100644 docs/_site/public/chunk-U4DUTLYF.min.js create mode 100644 docs/_site/public/chunk-U4DUTLYF.min.js.map create mode 100644 docs/_site/public/chunk-UEFJDIUO.min.js create mode 100644 docs/_site/public/chunk-UEFJDIUO.min.js.map create mode 100644 docs/_site/public/chunk-V55NTXQN.min.js create mode 100644 docs/_site/public/chunk-V55NTXQN.min.js.map create mode 100644 docs/_site/public/chunk-WMZJ2DJX.min.js create mode 100644 docs/_site/public/chunk-WMZJ2DJX.min.js.map create mode 100644 docs/_site/public/chunk-WXIN66R4.min.js create mode 100644 docs/_site/public/chunk-WXIN66R4.min.js.map create mode 100644 docs/_site/public/classDiagram-LNE6IOMH-VZ67B4ZP.min.js create mode 100644 docs/_site/public/classDiagram-LNE6IOMH-VZ67B4ZP.min.js.map create mode 100644 docs/_site/public/classDiagram-v2-MQ7JQ4JX-4JTAVB6L.min.js create mode 100644 docs/_site/public/classDiagram-v2-MQ7JQ4JX-4JTAVB6L.min.js.map create mode 100644 docs/_site/public/dagre-4EVJKHTY-MHPLGZHX.min.js create mode 100644 docs/_site/public/dagre-4EVJKHTY-MHPLGZHX.min.js.map create mode 100644 docs/_site/public/diagram-QW4FP2JN-UOF7FAFC.min.js create mode 100644 docs/_site/public/diagram-QW4FP2JN-UOF7FAFC.min.js.map create mode 100644 docs/_site/public/docfx.min.css create mode 100644 docs/_site/public/docfx.min.css.map create mode 100644 docs/_site/public/docfx.min.js create mode 100644 docs/_site/public/docfx.min.js.map create mode 100644 docs/_site/public/erDiagram-6RL3IURR-PEYW6AVI.min.js create mode 100644 docs/_site/public/erDiagram-6RL3IURR-PEYW6AVI.min.js.map create mode 100644 docs/_site/public/es-4I4X6RME.min.js create mode 100644 docs/_site/public/es-4I4X6RME.min.js.map create mode 100644 docs/_site/public/flowDiagram-7ASYPVHJ-DABBKNEC.min.js create mode 100644 docs/_site/public/flowDiagram-7ASYPVHJ-DABBKNEC.min.js.map create mode 100644 docs/_site/public/ganttDiagram-NTVNEXSI-JVQ2N4MZ.min.js create mode 100644 docs/_site/public/ganttDiagram-NTVNEXSI-JVQ2N4MZ.min.js.map create mode 100644 docs/_site/public/gitGraph-YCYPL57B-3XOJ53I6.min.js create mode 100644 docs/_site/public/gitGraph-YCYPL57B-3XOJ53I6.min.js.map create mode 100644 docs/_site/public/gitGraphDiagram-NRZ2UAAF-WVTRWY3E.min.js create mode 100644 docs/_site/public/gitGraphDiagram-NRZ2UAAF-WVTRWY3E.min.js.map create mode 100644 docs/_site/public/info-46DW6VJ7-RDUIJSMX.min.js create mode 100644 docs/_site/public/info-46DW6VJ7-RDUIJSMX.min.js.map create mode 100644 docs/_site/public/infoDiagram-A4XQUW5V-SKLVFWJI.min.js create mode 100644 docs/_site/public/infoDiagram-A4XQUW5V-SKLVFWJI.min.js.map create mode 100644 docs/_site/public/journeyDiagram-G5WM74LC-AHZ7GKR5.min.js create mode 100644 docs/_site/public/journeyDiagram-G5WM74LC-AHZ7GKR5.min.js.map create mode 100644 docs/_site/public/kanban-definition-QRCXZQQD-MKSHYOCX.min.js create mode 100644 docs/_site/public/kanban-definition-QRCXZQQD-MKSHYOCX.min.js.map create mode 100644 docs/_site/public/katex-ROPKEHCO.min.js create mode 100644 docs/_site/public/katex-ROPKEHCO.min.js.map create mode 100644 docs/_site/public/lunr.ar-A6ZT2INA.min.js create mode 100644 docs/_site/public/lunr.ar-A6ZT2INA.min.js.map create mode 100644 docs/_site/public/lunr.da-WWM276CR.min.js create mode 100644 docs/_site/public/lunr.da-WWM276CR.min.js.map create mode 100644 docs/_site/public/lunr.de-XXPRKDAY.min.js create mode 100644 docs/_site/public/lunr.de-XXPRKDAY.min.js.map create mode 100644 docs/_site/public/lunr.du-NO4L2LL3.min.js create mode 100644 docs/_site/public/lunr.du-NO4L2LL3.min.js.map create mode 100644 docs/_site/public/lunr.el-5ZSSJVMA.min.js create mode 100644 docs/_site/public/lunr.el-5ZSSJVMA.min.js.map create mode 100644 docs/_site/public/lunr.es-ZH6Q76E6.min.js create mode 100644 docs/_site/public/lunr.es-ZH6Q76E6.min.js.map create mode 100644 docs/_site/public/lunr.fi-S7WJSBCP.min.js create mode 100644 docs/_site/public/lunr.fi-S7WJSBCP.min.js.map create mode 100644 docs/_site/public/lunr.fr-H2QNBELV.min.js create mode 100644 docs/_site/public/lunr.fr-H2QNBELV.min.js.map create mode 100644 docs/_site/public/lunr.he-TTLAK4MN.min.js create mode 100644 docs/_site/public/lunr.he-TTLAK4MN.min.js.map create mode 100644 docs/_site/public/lunr.hi-PWWMAGLU.min.js create mode 100644 docs/_site/public/lunr.hi-PWWMAGLU.min.js.map create mode 100644 docs/_site/public/lunr.hu-DLG2DSVM.min.js create mode 100644 docs/_site/public/lunr.hu-DLG2DSVM.min.js.map create mode 100644 docs/_site/public/lunr.hy-FFQJAR7M.min.js create mode 100644 docs/_site/public/lunr.hy-FFQJAR7M.min.js.map create mode 100644 docs/_site/public/lunr.it-VQNLJLPR.min.js create mode 100644 docs/_site/public/lunr.it-VQNLJLPR.min.js.map create mode 100644 docs/_site/public/lunr.ja-J6QHZSR2.min.js create mode 100644 docs/_site/public/lunr.ja-J6QHZSR2.min.js.map create mode 100644 docs/_site/public/lunr.jp-M45D3XJE.min.js create mode 100644 docs/_site/public/lunr.jp-M45D3XJE.min.js.map create mode 100644 docs/_site/public/lunr.kn-ASLXFRTC.min.js create mode 100644 docs/_site/public/lunr.kn-ASLXFRTC.min.js.map create mode 100644 docs/_site/public/lunr.ko-RHF2BDE4.min.js create mode 100644 docs/_site/public/lunr.ko-RHF2BDE4.min.js.map create mode 100644 docs/_site/public/lunr.nl-2BITG354.min.js create mode 100644 docs/_site/public/lunr.nl-2BITG354.min.js.map create mode 100644 docs/_site/public/lunr.no-WPLSHWFO.min.js create mode 100644 docs/_site/public/lunr.no-WPLSHWFO.min.js.map create mode 100644 docs/_site/public/lunr.pt-V2XEBELC.min.js create mode 100644 docs/_site/public/lunr.pt-V2XEBELC.min.js.map create mode 100644 docs/_site/public/lunr.ro-O76266FJ.min.js create mode 100644 docs/_site/public/lunr.ro-O76266FJ.min.js.map create mode 100644 docs/_site/public/lunr.ru-G56UDXYH.min.js create mode 100644 docs/_site/public/lunr.ru-G56UDXYH.min.js.map create mode 100644 docs/_site/public/lunr.sa-LD5PRAIS.min.js create mode 100644 docs/_site/public/lunr.sa-LD5PRAIS.min.js.map create mode 100644 docs/_site/public/lunr.sv-7VRY4UDB.min.js create mode 100644 docs/_site/public/lunr.sv-7VRY4UDB.min.js.map create mode 100644 docs/_site/public/lunr.ta-OWB7AURB.min.js create mode 100644 docs/_site/public/lunr.ta-OWB7AURB.min.js.map create mode 100644 docs/_site/public/lunr.te-JGGL3BFP.min.js create mode 100644 docs/_site/public/lunr.te-JGGL3BFP.min.js.map create mode 100644 docs/_site/public/lunr.th-O4JBL3IY.min.js create mode 100644 docs/_site/public/lunr.th-O4JBL3IY.min.js.map create mode 100644 docs/_site/public/lunr.tr-WXUV733C.min.js create mode 100644 docs/_site/public/lunr.tr-WXUV733C.min.js.map create mode 100644 docs/_site/public/lunr.vi-3U4A337N.min.js create mode 100644 docs/_site/public/lunr.vi-3U4A337N.min.js.map create mode 100644 docs/_site/public/main.css create mode 100644 docs/_site/public/main.js create mode 100644 docs/_site/public/mermaid.core-QWHI4VJR.min.js create mode 100644 docs/_site/public/mermaid.core-QWHI4VJR.min.js.map create mode 100644 docs/_site/public/mindmap-definition-GWI6TPTV-XCX7U2FR.min.js create mode 100644 docs/_site/public/mindmap-definition-GWI6TPTV-XCX7U2FR.min.js.map create mode 100644 docs/_site/public/packet-W2GHVCYJ-ZZMTAWKW.min.js create mode 100644 docs/_site/public/packet-W2GHVCYJ-ZZMTAWKW.min.js.map create mode 100644 docs/_site/public/pie-BEWT4RHE-VFWRUT6J.min.js create mode 100644 docs/_site/public/pie-BEWT4RHE-VFWRUT6J.min.js.map create mode 100644 docs/_site/public/pieDiagram-YF2LJOPJ-ITGVNBO2.min.js create mode 100644 docs/_site/public/pieDiagram-YF2LJOPJ-ITGVNBO2.min.js.map create mode 100644 docs/_site/public/quadrantDiagram-OS5C2QUG-BN35C5UH.min.js create mode 100644 docs/_site/public/quadrantDiagram-OS5C2QUG-BN35C5UH.min.js.map create mode 100644 docs/_site/public/requirementDiagram-MIRIMTAZ-CXICLXCG.min.js create mode 100644 docs/_site/public/requirementDiagram-MIRIMTAZ-CXICLXCG.min.js.map create mode 100644 docs/_site/public/sankeyDiagram-Y46BX6SQ-LTJNBPUP.min.js create mode 100644 docs/_site/public/sankeyDiagram-Y46BX6SQ-LTJNBPUP.min.js.map create mode 100644 docs/_site/public/search-worker.min.js create mode 100644 docs/_site/public/search-worker.min.js.map create mode 100644 docs/_site/public/sequenceDiagram-G6AWOVSC-UJVWCU2P.min.js create mode 100644 docs/_site/public/sequenceDiagram-G6AWOVSC-UJVWCU2P.min.js.map create mode 100644 docs/_site/public/stateDiagram-MAYHULR4-UPNPJ5ZA.min.js create mode 100644 docs/_site/public/stateDiagram-MAYHULR4-UPNPJ5ZA.min.js.map create mode 100644 docs/_site/public/stateDiagram-v2-4JROLMXI-COTI64PW.min.js create mode 100644 docs/_site/public/stateDiagram-v2-4JROLMXI-COTI64PW.min.js.map create mode 100644 docs/_site/public/tex-svg-full-SL33OL2J.min.js create mode 100644 docs/_site/public/tex-svg-full-SL33OL2J.min.js.map create mode 100644 docs/_site/public/timeline-definition-U7ZMHBDA-I7GF7M6N.min.js create mode 100644 docs/_site/public/timeline-definition-U7ZMHBDA-I7GF7M6N.min.js.map create mode 100644 docs/_site/public/xychartDiagram-6QU3TZC5-MQVPM64I.min.js create mode 100644 docs/_site/public/xychartDiagram-6QU3TZC5-MQVPM64I.min.js.map create mode 100644 docs/_site/toc.html create mode 100644 docs/_site/toc.json create mode 100644 docs/_site/toc.pdf create mode 100644 docs/_site/xrefmap.yml create mode 100644 docs/api/.manifest create mode 100644 docs/api/AlohaKit.Controls.Avatar.yml create mode 100644 docs/api/AlohaKit.Controls.AvatarDrawable.yml create mode 100644 docs/api/AlohaKit.Controls.AvatarSize.yml create mode 100644 docs/api/AlohaKit.Controls.AvatarSizeExtensions.yml create mode 100644 docs/api/AlohaKit.Controls.BarChart.yml create mode 100644 docs/api/AlohaKit.Controls.BarChartDrawable.yml create mode 100644 docs/api/AlohaKit.Controls.BaseChart.yml create mode 100644 docs/api/AlohaKit.Controls.BaseChartDrawable.yml create mode 100644 docs/api/AlohaKit.Controls.BusyIndicator.yml create mode 100644 docs/api/AlohaKit.Controls.BusyIndicatorDrawable.yml create mode 100644 docs/api/AlohaKit.Controls.Button.yml create mode 100644 docs/api/AlohaKit.Controls.ButtonDrawable.yml create mode 100644 docs/api/AlohaKit.Controls.Captcha.yml create mode 100644 docs/api/AlohaKit.Controls.CaptchaDrawable.yml create mode 100644 docs/api/AlohaKit.Controls.CaptchaLevel.yml create mode 100644 docs/api/AlohaKit.Controls.CheckBox.yml create mode 100644 docs/api/AlohaKit.Controls.CheckBoxDrawable.yml create mode 100644 docs/api/AlohaKit.Controls.LineChart.yml create mode 100644 docs/api/AlohaKit.Controls.LineChartDrawable.yml create mode 100644 docs/api/AlohaKit.Controls.LinearGauge.yml create mode 100644 docs/api/AlohaKit.Controls.LinearGaugeDrawable.yml create mode 100644 docs/api/AlohaKit.Controls.MultiBarChart.yml create mode 100644 docs/api/AlohaKit.Controls.MultiBarChartDrawable.yml create mode 100644 docs/api/AlohaKit.Controls.MultiLineChartDrawable.yml create mode 100644 docs/api/AlohaKit.Controls.MultiLineChartView.yml create mode 100644 docs/api/AlohaKit.Controls.NumericUpDown.yml create mode 100644 docs/api/AlohaKit.Controls.NumericUpDownDrawable.yml create mode 100644 docs/api/AlohaKit.Controls.PieChart.yml create mode 100644 docs/api/AlohaKit.Controls.PieChartDrawable.yml create mode 100644 docs/api/AlohaKit.Controls.ProgressBar.yml create mode 100644 docs/api/AlohaKit.Controls.ProgressBarDrawable.yml create mode 100644 docs/api/AlohaKit.Controls.ProgressBarStyle.yml create mode 100644 docs/api/AlohaKit.Controls.ProgressRadial.yml create mode 100644 docs/api/AlohaKit.Controls.ProgressRadialDirection.yml create mode 100644 docs/api/AlohaKit.Controls.ProgressRadialDrawable.yml create mode 100644 docs/api/AlohaKit.Controls.PulseIcon.yml create mode 100644 docs/api/AlohaKit.Controls.PulseIconDrawable.yml create mode 100644 docs/api/AlohaKit.Controls.Rating.yml create mode 100644 docs/api/AlohaKit.Controls.RatingDrawable.yml create mode 100644 docs/api/AlohaKit.Controls.RatingValueChangedEventArgs.yml create mode 100644 docs/api/AlohaKit.Controls.SegmentedControl.yml create mode 100644 docs/api/AlohaKit.Controls.SegmentedControlDrawable.yml create mode 100644 docs/api/AlohaKit.Controls.SelectedIndexEventArgs.yml create mode 100644 docs/api/AlohaKit.Controls.Slider.yml create mode 100644 docs/api/AlohaKit.Controls.SliderDrawable.yml create mode 100644 docs/api/AlohaKit.Controls.ThumbShape.yml create mode 100644 docs/api/AlohaKit.Controls.ToggleSwitch.yml create mode 100644 docs/api/AlohaKit.Controls.ToggleSwitchDrawable.yml create mode 100644 docs/api/AlohaKit.Controls.yml create mode 100644 docs/api/AlohaKit.DataVisualization.PieChart.yml create mode 100644 docs/api/AlohaKit.DataVisualization.PieChartDrawable.yml create mode 100644 docs/api/AlohaKit.DataVisualization.yml create mode 100644 docs/api/AlohaKit.Enums.ChartEnums.LineChartStyle.yml create mode 100644 docs/api/AlohaKit.Enums.ChartEnums.yml create mode 100644 docs/api/AlohaKit.Enums.yml create mode 100644 docs/api/AlohaKit.Extensions.ChartExtensions.yml create mode 100644 docs/api/AlohaKit.Extensions.IEnumerableExtensions.yml create mode 100644 docs/api/AlohaKit.Extensions.NumericExtensions.yml create mode 100644 docs/api/AlohaKit.Extensions.yml create mode 100644 docs/api/AlohaKit.Models.ChartGroupStyle.yml create mode 100644 docs/api/AlohaKit.Models.ChartItem.yml create mode 100644 docs/api/AlohaKit.Models.yml create mode 100644 docs/api/toc.yml create mode 100644 docs/docfx.json create mode 100644 docs/docs/getting-started.md create mode 100644 docs/docs/introduction.md create mode 100644 docs/docs/toc.yml create mode 100644 docs/filterConfig.yml create mode 100644 docs/index.md create mode 100644 docs/toc.yml diff --git a/docs/_site/api/AlohaKit.Controls.Avatar.html b/docs/_site/api/AlohaKit.Controls.Avatar.html new file mode 100644 index 0000000..e0e6440 --- /dev/null +++ b/docs/_site/api/AlohaKit.Controls.Avatar.html @@ -0,0 +1,1167 @@ + + + + + Class Avatar | alohakit.controls + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+
+
Table of Contents
+ +
+
+ +
+
+
+ +
+
+ + + +
+ +
+ + + +

+Class Avatar +

+ +
+
Namespace
AlohaKit.Controls
+
Assembly
AlohaKit.dll
+
+ +

The Avatar is a custom drawn control that provides a flexible and efficient way to render avatar-like graphics, +such as profile pictures, icons, or other visual representations, in an application.

+
+
+ +
+
public class Avatar : GraphicsView, INotifyPropertyChanged, IVisualTreeElement, IEffectControlProvider, IToolTipElement, IContextFlyoutElement, IAnimatable, IViewController, IVisualElementController, IElementController, IGestureController, IGestureRecognizers, IPropertyMapperView, IHotReloadableView, IReplaceableView, IGraphicsView, IView, IElement, ITransform
+
+ + + + +
+
Inheritance
+
+ + + + + + + +
Avatar
+
+
+ +
+
Implements
+
+ + + + + + + + + + + + + + + + + + +
+
+ + +
+
Inherited Members
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + +

Constructors +

+ + + + +

+ Avatar() + +

+ +
+
+ +
+
public Avatar()
+
+ + + + + + + + + + + + + +

Fields +

+ + + +

+ AvatarSizeProperty + +

+ +
+
+ +
+
public static readonly BindableProperty AvatarSizeProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ BackgroundProperty + +

+ +
+
+ +
+
public static readonly BindableProperty BackgroundProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ FillProperty + +

+ +
+
+ +
+
public static readonly BindableProperty FillProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ NameProperty + +

+ +
+
+ +
+
public static readonly BindableProperty NameProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ TextColorProperty + +

+ +
+
+ +
+
public static readonly BindableProperty TextColorProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + +

Properties +

+ + + + +

+ AvatarSize + +

+ +
+
+ +
+
public AvatarSize AvatarSize { get; set; }
+
+ + + + + +

Property Value

+
+
AvatarSize
+
+
+ + + + + + + + + + +

+ Background + +

+ +
+
+ +
+
public Brush Background { get; set; }
+
+ + + + + +

Property Value

+
+
Brush
+
+
+ + + + + + + + + + +

+ Fill + +

+ +
+
+ +
+
public Brush Fill { get; set; }
+
+ + + + + +

Property Value

+
+
Brush
+
+
+ + + + + + + + + + +

+ Name + +

+ +
+
+ +
+
public string Name { get; set; }
+
+ + + + + +

Property Value

+
+
string
+
+
+ + + + + + + + + + +

+ PersonaDrawable + +

+ +
+
+ +
+
public AvatarDrawable PersonaDrawable { get; set; }
+
+ + + + + +

Property Value

+
+
AvatarDrawable
+
+
+ + + + + + + + + + +

+ TextColor + +

+ +
+
+ +
+
public Color TextColor { get; set; }
+
+ + + + + +

Property Value

+
+
Color
+
+
+ + + + + + + + +

Methods +

+ + + + +

+ OnParentSet() + +

+ +

Raises the (internal) ParentSet event.

+
+
+ +
+
protected override void OnParentSet()
+
+ + + + + + + + + +

Remarks

+

Will set the NavigationProxy's inner navigation object to closest topmost element capable of handling navigation calls.

+
+ + +
+
See Also
+
+ +
+
+ + + +
+ + + + +
+ +
+ +
+
+ +
+ + + + diff --git a/docs/_site/api/AlohaKit.Controls.AvatarDrawable.html b/docs/_site/api/AlohaKit.Controls.AvatarDrawable.html new file mode 100644 index 0000000..c29918a --- /dev/null +++ b/docs/_site/api/AlohaKit.Controls.AvatarDrawable.html @@ -0,0 +1,477 @@ + + + + + Class AvatarDrawable | alohakit.controls + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+
+
Table of Contents
+ +
+
+ +
+
+
+ +
+
+ + + +
+ +
+ + + +

+Class AvatarDrawable +

+ +
+
Namespace
AlohaKit.Controls
+
Assembly
AlohaKit.dll
+
+ +
+
+ +
+
public class AvatarDrawable : IDrawable
+
+ + + + +
+
Inheritance
+
+ +
AvatarDrawable
+
+
+ +
+
Implements
+
+ +
+
+ + +
+
Inherited Members
+
+ + + + + + + +
+ + + + + + +

Properties +

+ + + + +

+ BackgroundPaint + +

+ +
+
+ +
+
public Paint BackgroundPaint { get; set; }
+
+ + + + + +

Property Value

+
+
Paint
+
+
+ + + + + + + + + + +

+ FillPaint + +

+ +
+
+ +
+
public Paint FillPaint { get; set; }
+
+ + + + + +

Property Value

+
+
Paint
+
+
+ + + + + + + + + + +

+ FontSize + +

+ +
+
+ +
+
public double FontSize { get; set; }
+
+ + + + + +

Property Value

+
+
double
+
+
+ + + + + + + + + + +

+ Text + +

+ +
+
+ +
+
public string Text { get; set; }
+
+ + + + + +

Property Value

+
+
string
+
+
+ + + + + + + + + + +

+ TextColor + +

+ +
+
+ +
+
public Color TextColor { get; set; }
+
+ + + + + +

Property Value

+
+
Color
+
+
+ + + + + + + + +

Methods +

+ + + + +

+ Draw(ICanvas, RectF) + +

+ +
+
+ +
+
public void Draw(ICanvas canvas, RectF dirtyRect)
+
+ +

Parameters

+
+
canvas ICanvas
+
+
dirtyRect RectF
+
+
+ + + + + + + + + + + + + + +

+ DrawBackground(ICanvas, RectF) + +

+ +
+
+ +
+
public virtual void DrawBackground(ICanvas canvas, RectF dirtyRect)
+
+ +

Parameters

+
+
canvas ICanvas
+
+
dirtyRect RectF
+
+
+ + + + + + + + + + + + + + +

+ DrawFill(ICanvas, RectF) + +

+ +
+
+ +
+
public virtual void DrawFill(ICanvas canvas, RectF dirtyRect)
+
+ +

Parameters

+
+
canvas ICanvas
+
+
dirtyRect RectF
+
+
+ + + + + + + + + + + + + + +

+ DrawInitials(ICanvas, RectF) + +

+ +
+
+ +
+
public virtual void DrawInitials(ICanvas canvas, RectF dirtyRect)
+
+ +

Parameters

+
+
canvas ICanvas
+
+
dirtyRect RectF
+
+
+ + + + + + + + + + + + + +
+ + + + +
+ +
+ +
+
+ +
+ + + + diff --git a/docs/_site/api/AlohaKit.Controls.AvatarSize.html b/docs/_site/api/AlohaKit.Controls.AvatarSize.html new file mode 100644 index 0000000..f399277 --- /dev/null +++ b/docs/_site/api/AlohaKit.Controls.AvatarSize.html @@ -0,0 +1,174 @@ + + + + + Enum AvatarSize | alohakit.controls + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+
+
Table of Contents
+ +
+
+ +
+
+
+ +
+
+ + + +
+ +
+ + + + +

+Enum AvatarSize +

+ +
+
Namespace
AlohaKit.Controls
+
Assembly
AlohaKit.dll
+
+ +

The AvatarSize enumeration represents predefined sizes for an avatar, +providing a standardized way to specify dimensions across an application.

+
+
+ +
+
public enum AvatarSize
+
+ + + + + + + + +
+
Extension Methods
+
+ + + + +
+ +

Fields +

+
+
Large = 1
+ +
+
Small = 0
+ +
+
XXLarge = 2
+ +
+
+ + + +
+ + + + +
+ +
+ +
+
+ +
+ + + + diff --git a/docs/_site/api/AlohaKit.Controls.AvatarSizeExtensions.html b/docs/_site/api/AlohaKit.Controls.AvatarSizeExtensions.html new file mode 100644 index 0000000..3d93a79 --- /dev/null +++ b/docs/_site/api/AlohaKit.Controls.AvatarSizeExtensions.html @@ -0,0 +1,327 @@ + + + + + Class AvatarSizeExtensions | alohakit.controls + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+
+
Table of Contents
+ +
+
+ +
+
+
+ +
+
+ + + +
+ +
+ + + +

+Class AvatarSizeExtensions +

+ +
+
Namespace
AlohaKit.Controls
+
Assembly
AlohaKit.dll
+
+ +

The AvatarSizeExtensions class provides extension methods for the AvatarSize enumeration, +allowing developers to retrieve various sizing details for avatars based on their size +(e.g., dimensions, indicator sizes, font sizes).

+
+
+ +
+
public static class AvatarSizeExtensions
+
+ + + + +
+
Inheritance
+
+ +
AvatarSizeExtensions
+
+
+ + + +
+
Inherited Members
+
+ + + + + + + +
+ + + + + + +

Methods +

+ + + + +

+ GetAvatarIndicatorIconScale(AvatarSize) + +

+ +
+
+ +
+
public static float GetAvatarIndicatorIconScale(this AvatarSize avatarSize)
+
+ +

Parameters

+
+
avatarSize AvatarSize
+
+
+ +

Returns

+
+
float
+
+
+ + + + + + + + + + + + + +

+ GetAvatarIndicatorSize(AvatarSize) + +

+ +
+
+ +
+
public static int GetAvatarIndicatorSize(this AvatarSize avatarSize)
+
+ +

Parameters

+
+
avatarSize AvatarSize
+
+
+ +

Returns

+
+
int
+
+
+ + + + + + + + + + + + + +

+ GetAvatarSize(AvatarSize) + +

+ +
+
+ +
+
public static int GetAvatarSize(this AvatarSize avatarSize)
+
+ +

Parameters

+
+
avatarSize AvatarSize
+
+
+ +

Returns

+
+
int
+
+
+ + + + + + + + + + + + + +

+ GetInitialsFontSize(AvatarSize) + +

+ +
+
+ +
+
public static int GetInitialsFontSize(this AvatarSize avatarSize)
+
+ +

Parameters

+
+
avatarSize AvatarSize
+
+
+ +

Returns

+
+
int
+
+
+ + + + + + + + + + + + +
+ + + + +
+ +
+ +
+
+ +
+ + + + diff --git a/docs/_site/api/AlohaKit.Controls.BarChart.html b/docs/_site/api/AlohaKit.Controls.BarChart.html new file mode 100644 index 0000000..56b8ef7 --- /dev/null +++ b/docs/_site/api/AlohaKit.Controls.BarChart.html @@ -0,0 +1,1079 @@ + + + + + Class BarChart | alohakit.controls + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+
+
Table of Contents
+ +
+
+ +
+
+
+ +
+
+ + + +
+ +
+ + + +

+Class BarChart +

+ +
+
Namespace
AlohaKit.Controls
+
Assembly
AlohaKit.dll
+
+ +

The BarChart is a drawn control used to render bar charts, allowing for the visualization of data as rectangular bars. +Each bar's length or height corresponds to the value it represents.

+

It extends the BaseChart class, providing additional functionality tailored to bar chart rendering while leveraging shared chart capabilities.

+
+
+ +
+
public sealed class BarChart : BaseChart, INotifyPropertyChanged, IVisualTreeElement, IEffectControlProvider, IToolTipElement, IContextFlyoutElement, IAnimatable, IViewController, IVisualElementController, IElementController, IGestureController, IGestureRecognizers, IPropertyMapperView, IHotReloadableView, IReplaceableView, IGraphicsView, IView, IElement, ITransform, IDisposable
+
+ + + + +
+
Inheritance
+
+ + + + + + + + +
BarChart
+
+
+ +
+
Implements
+
+ + + + + + + + + + + + + + + + + + + +
+
+ + +
+
Inherited Members
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + +

Constructors +

+ + + + +

+ BarChart() + +

+ +
+
+ +
+
public BarChart()
+
+ + + + + + + + + + + + + +

Fields +

+ + + +

+ BackgroundBarsFillColorProperty + +

+ +
+
+ +
+
public static readonly BindableProperty BackgroundBarsFillColorProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ BarsFillColorProperty + +

+ +
+
+ +
+
public static readonly BindableProperty BarsFillColorProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ ShowBackgroundBarsProperty + +

+ +
+
+ +
+
public static readonly BindableProperty ShowBackgroundBarsProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + +

Properties +

+ + + + +

+ BackgroundBarsFillColor + +

+ +

Gets or sets the background color to use when drawing each bar

+
+
+ +
+
public Color BackgroundBarsFillColor { get; set; }
+
+ + + + + +

Property Value

+
+
Color
+
+
+ + + + + + + + + + +

+ BarsFillColor + +

+ +

Gets or sets the color to use when drawing each bar

+
+
+ +
+
public Color BarsFillColor { get; set; }
+
+ + + + + +

Property Value

+
+
Color
+
+
+ + + + + + + + + + +

+ ShowBackgroundBars + +

+ +

If true chart will draw background bars and value bars. If not only value bars will be drawn. Default is true

+
+
+ +
+
public bool ShowBackgroundBars { get; set; }
+
+ + + + + +

Property Value

+
+
bool
+
+
+ + + + + + + + + +
+ + + + +
+ +
+ +
+
+ +
+ + + + diff --git a/docs/_site/api/AlohaKit.Controls.BarChartDrawable.html b/docs/_site/api/AlohaKit.Controls.BarChartDrawable.html new file mode 100644 index 0000000..4df29dd --- /dev/null +++ b/docs/_site/api/AlohaKit.Controls.BarChartDrawable.html @@ -0,0 +1,451 @@ + + + + + Class BarChartDrawable | alohakit.controls + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+
+
Table of Contents
+ +
+
+ +
+
+
+ +
+
+ + + +
+ +
+ + + +

+Class BarChartDrawable +

+ +
+
Namespace
AlohaKit.Controls
+
Assembly
AlohaKit.dll
+
+ +
+
+ +
+
public sealed class BarChartDrawable : BaseChartDrawable, IDrawable, IDisposable
+
+ + + + +
+
Inheritance
+
+ + +
BarChartDrawable
+
+
+ +
+
Implements
+
+ + +
+
+ + +
+
Inherited Members
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + +

Properties +

+ + + + +

+ BackgroundBarsFillColor + +

+ +

Gets or sets the background color to use when drawing each bar

+
+
+ +
+
public Color BackgroundBarsFillColor { get; set; }
+
+ + + + + +

Property Value

+
+
Color
+
+
+ + + + + + + + + + +

+ BarsFillColor + +

+ +

Gets or sets the color to use when drawing each bar

+
+
+ +
+
public Color BarsFillColor { get; set; }
+
+ + + + + +

Property Value

+
+
Color
+
+
+ + + + + + + + + + +

+ ShowBackgroundBars + +

+ +

If true chart will draw background bars and value bars. If not only value bars will be drawn. Default is true

+
+
+ +
+
public bool ShowBackgroundBars { get; set; }
+
+ + + + + +

Property Value

+
+
bool
+
+
+ + + + + + + + +

Methods +

+ + + + +

+ DrawChart(ICanvas, RectF) + +

+ +

Calculates and draws the current chart with the Entries[] data

+
+
+ +
+
public override void DrawChart(ICanvas canvas, RectF dirtyRect)
+
+ +

Parameters

+
+
canvas ICanvas
+

Current canvas

+
+
dirtyRect RectF
+

Current canvas rect

+
+
+ + + + + + + + + + + + + + +

+ DrawVerticalStepLines(ICanvas, PointF[], float, float) + +

+ +
+
+ +
+
protected override void DrawVerticalStepLines(ICanvas canvas, PointF[] points, float origin, float maxPositiveValue)
+
+ +

Parameters

+
+
canvas ICanvas
+
+
points PointF[]
+
+
origin float
+
+
maxPositiveValue float
+
+
+ + + + + + + + + + + + + +
+ + + + +
+ +
+ +
+
+ +
+ + + + diff --git a/docs/_site/api/AlohaKit.Controls.BaseChart.html b/docs/_site/api/AlohaKit.Controls.BaseChart.html new file mode 100644 index 0000000..72833f6 --- /dev/null +++ b/docs/_site/api/AlohaKit.Controls.BaseChart.html @@ -0,0 +1,2657 @@ + + + + + Class BaseChart | alohakit.controls + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+
+
Table of Contents
+ +
+
+ +
+
+
+ +
+
+ + + +
+ +
+ + + +

+Class BaseChart +

+ +
+
Namespace
AlohaKit.Controls
+
Assembly
AlohaKit.dll
+
+ +
+
+ +
+
public abstract class BaseChart : GraphicsView, INotifyPropertyChanged, IVisualTreeElement, IEffectControlProvider, IToolTipElement, IContextFlyoutElement, IAnimatable, IViewController, IVisualElementController, IElementController, IGestureController, IGestureRecognizers, IPropertyMapperView, IHotReloadableView, IReplaceableView, IGraphicsView, IView, IElement, ITransform, IDisposable
+
+ + + + +
+
Inheritance
+
+ + + + + + + +
BaseChart
+
+
+ +
+
Implements
+
+ + + + + + + + + + + + + + + + + + + +
+
+ +
+
Derived
+
+ + + + +
+
+ +
+
Inherited Members
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + +

Constructors +

+ + + + +

+ BaseChart() + +

+ +
+
+ +
+
public BaseChart()
+
+ + + + + + + + + + + + + +

Fields +

+ + + +

+ AnimationIntervalProperty + +

+ +
+
+ +
+
public static readonly BindableProperty AnimationIntervalProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ AxisDashPatternProperty + +

+ +
+
+ +
+
public static readonly BindableProperty AxisDashPatternProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ AxisLineColorProperty + +

+ +
+
+ +
+
public static readonly BindableProperty AxisLineColorProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ AxisLinesFontSizeProperty + +

+ +
+
+ +
+
public static readonly BindableProperty AxisLinesFontSizeProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ AxisLinesStrokeSizeProperty + +

+ +
+
+ +
+
public static readonly BindableProperty AxisLinesStrokeSizeProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ BackgroundProperty + +

+ +
+
+ +
+
public static readonly BindableProperty BackgroundProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ ChartMarginProperty + +

+ +
+
+ +
+
public static readonly BindableProperty ChartMarginProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ DisplayHeaderValuesProperty + +

+ +
+
+ +
+
public static readonly BindableProperty DisplayHeaderValuesProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ DisplayHorizontalAxisLinesProperty + +

+ +
+
+ +
+
public static readonly BindableProperty DisplayHorizontalAxisLinesProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ DisplayValueLabelsOnTopProperty + +

+ +
+
+ +
+
public static readonly BindableProperty DisplayValueLabelsOnTopProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ DisplayVerticalAxisLinesProperty + +

+ +
+
+ +
+
public static readonly BindableProperty DisplayVerticalAxisLinesProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ EasingProperty + +

+ +
+
+ +
+
public static readonly BindableProperty EasingProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ EnableAntialiasProperty + +

+ +
+
+ +
+
public static readonly BindableProperty EnableAntialiasProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ EnableEntryAnimationsProperty + +

+ +
+
+ +
+
public static readonly BindableProperty EnableEntryAnimationsProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ EntriesProperty + +

+ +
+
+ +
+
public static readonly BindableProperty EntriesProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ FillColorProperty + +

+ +
+
+ +
+
public static readonly BindableProperty FillColorProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ FontColorProperty + +

+ +
+
+ +
+
public static readonly BindableProperty FontColorProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ FontFamilyProperty + +

+ +
+
+ +
+
public static readonly BindableProperty FontFamilyProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ FontSizeProperty + +

+ +
+
+ +
+
public static readonly BindableProperty FontSizeProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ FooterLabelsFontColorProperty + +

+ +
+
+ +
+
public static readonly BindableProperty FooterLabelsFontColorProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ FooterLabelsMarginProperty + +

+ +
+
+ +
+
public static readonly BindableProperty FooterLabelsMarginProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ FooterLabelsTextSizeProperty + +

+ +
+
+ +
+
public static readonly BindableProperty FooterLabelsTextSizeProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ HeaderValuesMarginProperty + +

+ +
+
+ +
+
public static readonly BindableProperty HeaderValuesMarginProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ IsLabelTextTruncationEnabledProperty + +

+ +
+
+ +
+
public static readonly BindableProperty IsLabelTextTruncationEnabledProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ ItemSeparationMarginProperty + +

+ +
+
+ +
+
public static readonly BindableProperty ItemSeparationMarginProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ PathsColorOpacityProperty + +

+ +
+
+ +
+
public static readonly BindableProperty PathsColorOpacityProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ ReanimateOnPropertyChangedProperty + +

+ +
+
+ +
+
public static readonly BindableProperty ReanimateOnPropertyChangedProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ StrokeColorProperty + +

+ +
+
+ +
+
public static readonly BindableProperty StrokeColorProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ StrokeSizeProperty + +

+ +
+
+ +
+
public static readonly BindableProperty StrokeSizeProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + +

Properties +

+ + + + +

+ AnimationInterval + +

+ +

Sets the interval in ms to use when triggering animations. Default is 1250

+
+
+ +
+
public int AnimationInterval { get; set; }
+
+ + + + + +

Property Value

+
+
int
+
+
+ + + + + + + + + + +

+ AxisDashPattern + +

+ +
+
+ +
+
public float[] AxisDashPattern { get; set; }
+
+ + + + + +

Property Value

+
+
float[]
+
+
+ + + + + + + + + + +

+ AxisLinesColor + +

+ +

Axis lines color. Default is Lightgray

+
+
+ +
+
public Color AxisLinesColor { get; set; }
+
+ + + + + +

Property Value

+
+
Color
+
+
+ + + + + + + + + + +

+ AxisLinesFontSize + +

+ +

Axis lines font size. Default is 11

+
+
+ +
+
public float AxisLinesFontSize { get; set; }
+
+ + + + + +

Property Value

+
+
float
+
+
+ + + + + + + + + + +

+ AxisLinesStrokeSize + +

+ +

Axis lines stroke size. Default is 0.9

+
+
+ +
+
public float AxisLinesStrokeSize { get; set; }
+
+ + + + + +

Property Value

+
+
float
+
+
+ + + + + + + + + + +

+ Background + +

+ +
+
+ +
+
public Brush Background { get; set; }
+
+ + + + + +

Property Value

+
+
Brush
+
+
+ + + + + + + + + + +

+ ChartMargin + +

+ +

Gets or sets the default top and bottom internal margin to use when drawing canvas content. Default value is 15

+
+
+ +
+
public float ChartMargin { get; set; }
+
+ + + + + +

Property Value

+
+
float
+
+
+ + + + + + + + + + +

+ DisplayHeaderValues + +

+ +
+
+ +
+
public bool DisplayHeaderValues { get; set; }
+
+ + + + + +

Property Value

+
+
bool
+
+
+ + + + + + + + + + +

+ DisplayHorizontalAxisLines + +

+ +

If true header labels will be hidden and chart will draw horizontal step lines.

+
+
+ +
+
public bool DisplayHorizontalAxisLines { get; set; }
+
+ + + + + +

Property Value

+
+
bool
+
+
+ + + + + + + + + + +

+ DisplayValueLabelsOnTop + +

+ +

If true, chart will show value labels on top of canvas. Default is true

+
+
+ +
+
public bool DisplayValueLabelsOnTop { get; set; }
+
+ + + + + +

Property Value

+
+
bool
+
+
+ + + + + + + + + + +

+ DisplayVerticalAxisLines + +

+ +

If true vertical lines will be drawn as background along with horizontal lines. DisplayHorizontalAxisLines prop needs to be true as well

+
+
+ +
+
public bool DisplayVerticalAxisLines { get; set; }
+
+ + + + + +

Property Value

+
+
bool
+
+
+ + + + + + + + + + +

+ Drawable + +

+ +

Gets or sets current IDrawable surface. +This property MUST be assigned before ChartEntries prop

+
+
+ +
+
protected BaseChartDrawable Drawable { get; set; }
+
+ + + + + +

Property Value

+
+
BaseChartDrawable
+
+
+ + + + + + + + + + +

+ Easing + +

+ +

Sets the Easing to use when triggering animations. Default is BounceOut

+
+
+ +
+
public Easing Easing { get; set; }
+
+ + + + + +

Property Value

+
+
Easing
+
+
+ + + + + + + + + + +

+ EnableAntialias + +

+ +

Gets or sets if the current canvas will use Antialias mode or not when drawing content. Default is true

+
+
+ +
+
public bool EnableAntialias { get; set; }
+
+ + + + + +

Property Value

+
+
bool
+
+
+ + + + + + + + + + +

+ EnableEntryAnimations + +

+ +

If true, chart will trigger animations when drawing chart content. Default is true

+
+
+ +
+
public bool EnableEntryAnimations { get; set; }
+
+ + + + + +

Property Value

+
+
bool
+
+
+ + + + + + + + + + +

+ Entries + +

+ +
+
+ +
+
public ObservableCollection<ChartItem> Entries { get; set; }
+
+ + + + + +

Property Value

+
+
ObservableCollection<ChartItem>
+
+
+ + + + + + + + + + +

+ FillColor + +

+ +

Gets or sets the canvas default fill color. Default is transparent

+
+
+ +
+
public Color FillColor { get; set; }
+
+ + + + + +

Property Value

+
+
Color
+
+
+ + + + + + + + + + +

+ FontColor + +

+ +

Gets or sets the color to use when drawing value labels. Default is Black

+
+
+ +
+
public Color FontColor { get; set; }
+
+ + + + + +

Property Value

+
+
Color
+
+
+ + + + + + + + + + +

+ FontFamily + +

+ +

Gets or sets the canvas default Font to use when drawing strings

+
+
+ +
+
public string FontFamily { get; set; }
+
+ + + + + +

Property Value

+
+
string
+
+
+ + + + + + + + + + +

+ FontSize + +

+ +

Gets or sets font size to use when drawing value labels. Default is 11

+
+
+ +
+
public float FontSize { get; set; }
+
+ + + + + +

Property Value

+
+
float
+
+
+ + + + + + + + + + +

+ FooterLabelsFontColor + +

+ +

Gets or sets the color to use when drawing footer labels. Default is Black

+
+
+ +
+
public Color FooterLabelsFontColor { get; set; }
+
+ + + + + +

Property Value

+
+
Color
+
+
+ + + + + + + + + + +

+ FooterLabelsMargin + +

+ +

Gets or sets font margin to use when calculating footer labels coordinates. Default is 8

+
+
+ +
+
public float FooterLabelsMargin { get; set; }
+
+ + + + + +

Property Value

+
+
float
+
+
+ + + + + + + + + + +

+ FooterLabelsTextSize + +

+ +

Gets or sets font size to use for footer label values. Default is 10

+
+
+ +
+
public float FooterLabelsTextSize { get; set; }
+
+ + + + + +

Property Value

+
+
float
+
+
+ + + + + + + + + + +

+ HeaderValuesMargin + +

+ +

Gets or sets font margin to use when calculating header value labels coordinates. Default is 30

+
+
+ +
+
public float HeaderValuesMargin { get; set; }
+
+ + + + + +

Property Value

+
+
float
+
+
+ + + + + + + + + + +

+ IsLabelTextTruncationEnabled + +

+ +

If true, chart labels text will be truncated to fit available size. Default is true

+
+
+ +
+
public bool IsLabelTextTruncationEnabled { get; set; }
+
+ + + + + +

Property Value

+
+
bool
+
+
+ + + + + + + + + + +

+ ItemSeparationMargin + +

+ +

Gets or sets the separation margin between each item. Default is 8

+
+
+ +
+
public float ItemSeparationMargin { get; set; }
+
+ + + + + +

Property Value

+
+
float
+
+
+ + + + + + + + + + +

+ PathsColorOpacity + +

+ +

Sets the Alpha modifier value to use when drawing solid color backgrounds.Default is 0.6

+
+
+ +
+
public float PathsColorOpacity { get; set; }
+
+ + + + + +

Property Value

+
+
float
+
+
+ + + + + + + + + + +

+ ReanimateOnPropertyChanged + +

+ +

If true, chart will trigger entry animation whenever a chart property is changed and EnableEntryAnimations prop is set to true. Default is true

+
+
+ +
+
public bool ReanimateOnPropertyChanged { get; set; }
+
+ + + + + +

Property Value

+
+
bool
+
+
+ + + + + + + + + + +

+ StrokeColor + +

+ +

Stroke color. Default is Black

+
+
+ +
+
public Color StrokeColor { get; set; }
+
+ + + + + +

Property Value

+
+
Color
+
+
+ + + + + + + + + + +

+ StrokeSize + +

+ +

Stroke size. Default is 2.5

+
+
+ +
+
public float StrokeSize { get; set; }
+
+ + + + + +

Property Value

+
+
float
+
+
+ + + + + + + + +

Methods +

+ + + + +

+ Dispose() + +

+ +

Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.

+
+
+ +
+
public void Dispose()
+
+ + + + + + + + + + + + + + +
+ + + + +
+ +
+ +
+
+ +
+ + + + diff --git a/docs/_site/api/AlohaKit.Controls.BaseChartDrawable.html b/docs/_site/api/AlohaKit.Controls.BaseChartDrawable.html new file mode 100644 index 0000000..cf08006 --- /dev/null +++ b/docs/_site/api/AlohaKit.Controls.BaseChartDrawable.html @@ -0,0 +1,2514 @@ + + + + + Class BaseChartDrawable | alohakit.controls + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+
+
Table of Contents
+ +
+
+ +
+
+
+ +
+
+ + + +
+ +
+ + + +

+Class BaseChartDrawable +

+ +
+
Namespace
AlohaKit.Controls
+
Assembly
AlohaKit.dll
+
+ +
+
+ +
+
public abstract class BaseChartDrawable : IDrawable, IDisposable
+
+ + + + +
+
Inheritance
+
+ +
BaseChartDrawable
+
+
+ +
+
Implements
+
+ + +
+
+ +
+
Derived
+
+ + + + +
+
+ +
+
Inherited Members
+
+ + + + + + + +
+ + + + + + +

Fields +

+ + + +

+ AxisXMargin + +

+ +
+
+ +
+
protected int AxisXMargin
+
+ + + + +

Field Value

+
+
int
+
+
+ + + + + + + + + + +

+ IsAnimating + +

+ +
+
+ +
+
public bool IsAnimating
+
+ + + + +

Field Value

+
+
bool
+
+
+ + + + + + + + + + +

+ IsInitialized + +

+ +
+
+ +
+
public bool IsInitialized
+
+ + + + +

Field Value

+
+
bool
+
+
+ + + + + + + + + + +

+ MaxYValueCoordinate + +

+ +
+
+ +
+
protected float MaxYValueCoordinate
+
+ + + + +

Field Value

+
+
float
+
+
+ + + + + + + + + + +

+ Points + +

+ +
+
+ +
+
protected PointF[] Points
+
+ + + + +

Field Value

+
+
PointF[]
+
+
+ + + + + + + + + + +

+ _colorBrush + +

+ +
+
+ +
+
protected Brush _colorBrush
+
+ + + + +

Field Value

+
+
Brush
+
+
+ + + + + + + + + + +

+ _dirtyRect + +

+ +
+
+ +
+
protected RectF _dirtyRect
+
+ + + + +

Field Value

+
+
RectF
+
+
+ + + + + + + + + + +

+ _displayHeaderValues + +

+ +
+
+ +
+
protected bool _displayHeaderValues
+
+ + + + +

Field Value

+
+
bool
+
+
+ + + + + + + + + + +

+ _displayValueLabelsOnTop + +

+ +
+
+ +
+
protected bool _displayValueLabelsOnTop
+
+ + + + +

Field Value

+
+
bool
+
+
+ + + + + + + + + +

Properties +

+ + + + +

+ AnimationProgress + +

+ +

Represents the percentage of the current chart Animation from 1-100

+
+
+ +
+
public int AnimationProgress { get; set; }
+
+ + + + + +

Property Value

+
+
int
+
+
+ + + + + + + + + + +

+ AxisDashPattern + +

+ +
+
+ +
+
public float[] AxisDashPattern { get; set; }
+
+ + + + + +

Property Value

+
+
float[]
+
+
+ + + + + + + + + + +

+ AxisFontSize + +

+ +

Gets or sets font size to use when drawing chart axis labels. Default is 11

+
+
+ +
+
public float AxisFontSize { get; set; }
+
+ + + + + +

Property Value

+
+
float
+
+
+ + + + + + + + + + +

+ AxisLinesColor + +

+ +

Axis lines color. Default is Lightgray

+
+
+ +
+
public Color AxisLinesColor { get; set; }
+
+ + + + + +

Property Value

+
+
Color
+
+
+ + + + + + + + + + +

+ AxisLinesStrokeSize + +

+ +

Axis lines stroke size. Default is 0.9

+
+
+ +
+
public float AxisLinesStrokeSize { get; set; }
+
+ + + + + +

Property Value

+
+
float
+
+
+ + + + + + + + + + +

+ ColorBrush + +

+ +
+
+ +
+
public Brush ColorBrush { get; set; }
+
+ + + + + +

Property Value

+
+
Brush
+
+
+ + + + + + + + + + +

+ DisplayHeaderValues + +

+ +
+
+ +
+
public bool DisplayHeaderValues { get; set; }
+
+ + + + + +

Property Value

+
+
bool
+
+
+ + + + + + + + + + +

+ DisplayHorizontalAxisLines + +

+ +

If true header labels will be hidden and chart will draw horizontal step lines.

+
+
+ +
+
public bool DisplayHorizontalAxisLines { get; set; }
+
+ + + + + +

Property Value

+
+
bool
+
+
+ + + + + + + + + + +

+ DisplayValueLabelsOnTop + +

+ +

If true, chart will show value labels on top of canvas. Default is true

+
+
+ +
+
public bool DisplayValueLabelsOnTop { get; set; }
+
+ + + + + +

Property Value

+
+
bool
+
+
+ + + + + + + + + + +

+ DisplayVerticalAxisLines + +

+ +

If true vertical lines will be drawn as background along with horizontal lines. DisplayHorizontalAxisLines prop needs to be true as well

+
+
+ +
+
public bool DisplayVerticalAxisLines { get; set; }
+
+ + + + + +

Property Value

+
+
bool
+
+
+ + + + + + + + + + +

+ EnableAntialias + +

+ +

Gets or sets if the current canvas will use Antialias mode or not when drawing content. Default is true

+
+
+ +
+
public bool EnableAntialias { get; set; }
+
+ + + + + +

Property Value

+
+
bool
+
+
+ + + + + + + + + + +

+ Entries + +

+ +

Gets or sets the items to display within canvas

+
+
+ +
+
public ObservableCollection<ChartItem> Entries { get; set; }
+
+ + + + + +

Property Value

+
+
ObservableCollection<ChartItem>
+
+
+ + + + + + + + + + +

+ FillColor + +

+ +

Gets or sets the canvas default fill color. Default is transparent

+
+
+ +
+
public Color FillColor { get; set; }
+
+ + + + + +

Property Value

+
+
Color
+
+
+ + + + + + + + + + +

+ Font + +

+ +

Gets or sets the canvas default Font to use when drawing strings. [10/10/22 -> GRAPHICS MISSING SUPPORT FOR CUSTOM FONTS]

+
+
+ +
+
public IFont Font { get; set; }
+
+ + + + + +

Property Value

+
+
IFont
+
+
+ + + + + + + + + + +

+ FontColor + +

+ +

Gets or sets the color to use when drawing value labels. Default is Black

+
+
+ +
+
public Color FontColor { get; set; }
+
+ + + + + +

Property Value

+
+
Color
+
+
+ + + + + + + + + + +

+ FontSize + +

+ +

Gets or sets font size to use when drawing value labels. Default is 11

+
+
+ +
+
public float FontSize { get; set; }
+
+ + + + + +

Property Value

+
+
float
+
+
+ + + + + + + + + + +

+ FooterHeight + +

+ +

Gets or sets Footer height

+
+
+ +
+
protected float FooterHeight { get; set; }
+
+ + + + + +

Property Value

+
+
float
+
+
+ + + + + + + + + + +

+ FooterLabelsFontColor + +

+ +

Gets or sets the color to use when drawing footer labels. Default is Black

+
+
+ +
+
public Color FooterLabelsFontColor { get; set; }
+
+ + + + + +

Property Value

+
+
Color
+
+
+ + + + + + + + + + +

+ FooterLabelsMargin + +

+ +

Gets or sets font margin to use when calculating footer labels coordinates. Default is 8

+
+
+ +
+
public float FooterLabelsMargin { get; set; }
+
+ + + + + +

Property Value

+
+
float
+
+
+ + + + + + + + + + +

+ FooterLabelsTextSize + +

+ +

Gets or sets font size to use for footer label values. Default is 10

+
+
+ +
+
public float FooterLabelsTextSize { get; set; }
+
+ + + + + +

Property Value

+
+
float
+
+
+ + + + + + + + + + +

+ HeaderHeight + +

+ +

Gets or sets Header height

+
+
+ +
+
protected float HeaderHeight { get; set; }
+
+ + + + + +

Property Value

+
+
float
+
+
+ + + + + + + + + + +

+ HeaderValuesMargin + +

+ +

Gets or sets font margin to use when calculating header value labels coordinates. Default is 30

+
+
+ +
+
public float HeaderValuesMargin { get; set; }
+
+ + + + + +

Property Value

+
+
float
+
+
+ + + + + + + + + + +

+ Height + +

+ +

Gets or sets control height

+
+
+ +
+
protected float Height { get; set; }
+
+ + + + + +

Property Value

+
+
float
+
+
+ + + + + + + + + + +

+ IsLabelTextTruncationEnabled + +

+ +

If true, chart labels text will be truncated to fit available size. Default is true

+
+
+ +
+
public bool IsLabelTextTruncationEnabled { get; set; }
+
+ + + + + +

Property Value

+
+
bool
+
+
+ + + + + + + + + + +

+ ItemSeparationMargin + +

+ +

Gets or sets the separation margin between each item. Default is 8

+
+
+ +
+
public float ItemSeparationMargin { get; set; }
+
+ + + + + +

Property Value

+
+
float
+
+
+ + + + + + + + + + +

+ ItemSize + +

+ +

Gets or sets the size for each value column

+
+
+ +
+
protected SizeF ItemSize { get; set; }
+
+ + + + + +

Property Value

+
+
SizeF
+
+
+ + + + + + + + + + +

+ Margin + +

+ +

Gets or sets the default top and bottom internal margin to use when drawing canvas content. Default value is 15

+
+
+ +
+
public float Margin { get; set; }
+
+ + + + + +

Property Value

+
+
float
+
+
+ + + + + + + + + + +

+ MaxValue + +

+ +

Gets the greatest value within ChartEntries collection

+
+
+ +
+
protected float MaxValue { get; }
+
+ + + + + +

Property Value

+
+
float
+
+
+ + + + + + + + + + +

+ MinValue + +

+ +

Gets the smallest value within ChartEntries collection

+
+
+ +
+
protected float MinValue { get; }
+
+ + + + + +

Property Value

+
+
float
+
+
+ + + + + + + + + + +

+ Origin + +

+ +

gets or sets the origin in Y axis

+
+
+ +
+
protected float Origin { get; set; }
+
+ + + + + +

Property Value

+
+
float
+
+
+ + + + + + + + + + +

+ PathsColorOpacity + +

+ +

Sets the Alpha modifier value to use when drawing solid color backgrounds.Default is 0.6

+
+
+ +
+
public float PathsColorOpacity { get; set; }
+
+ + + + + +

Property Value

+
+
float
+
+
+ + + + + + + + + + +

+ StrokeColor + +

+ +

Stroke color. Default is Black

+
+
+ +
+
public Color StrokeColor { get; set; }
+
+ + + + + +

Property Value

+
+
Color
+
+
+ + + + + + + + + + +

+ StrokeSize + +

+ +

Stroke size. Default is 2.5

+
+
+ +
+
public float StrokeSize { get; set; }
+
+ + + + + +

Property Value

+
+
float
+
+
+ + + + + + + + + + +

+ ValueRange + +

+ +

Gets or sets chart value range by subtracting MaxValue from MinValue.

+
+
+ +
+
protected float ValueRange { get; }
+
+ + + + + +

Property Value

+
+
float
+
+
+ + + + + + + + + + +

+ Width + +

+ +

Gets or sets control Width

+
+
+ +
+
protected float Width { get; set; }
+
+ + + + + +

Property Value

+
+
float
+
+
+ + + + + + + + + + +

+ _canvas + +

+ +
+
+ +
+
protected ICanvas _canvas { get; set; }
+
+ + + + + +

Property Value

+
+
ICanvas
+
+
+ + + + + + + + +

Methods +

+ + + + +

+ CalculateFooterHeight(SizeF[]) + +

+ +

Calculates footer total height

+
+
+ +
+
protected virtual float CalculateFooterHeight(SizeF[] valueLabelSizes)
+
+ +

Parameters

+
+
valueLabelSizes SizeF[]
+

Label size

+
+
+ +

Returns

+
+
float
+

Labels height

+
+
+ + + + + + + + + + + + + +

+ CalculateHeaderHeight(SizeF[]) + +

+ +

Calculates header height

+
+
+ +
+
protected virtual float CalculateHeaderHeight(SizeF[] valueLabelSizes)
+
+ +

Parameters

+
+
valueLabelSizes SizeF[]
+

Label size

+
+
+ +

Returns

+
+
float
+

Header total height

+
+
+ + + + + + + + + + + + + +

+ CalculateHorizontalYLineCoordinate(float, SizeF, float, float) + +

+ +

For a given value, calculates its Y coordinate within current canvas

+
+
+ +
+
protected virtual PointF CalculateHorizontalYLineCoordinate(float value, SizeF itemSize, float origin, float headerHeight)
+
+ +

Parameters

+
+
value float
+

Value to calculate

+
+
itemSize SizeF
+

Item available size

+
+
origin float
+

Y coordinate origin coordinate

+
+
headerHeight float
+

Header height

+
+
+ +

Returns

+
+
PointF
+

Y Coordinate of given value

+
+
+ + + + + + + + + + + + + +

+ CalculateItemSize(List<ChartItem>, float, float, float, float) + +

+ +

Calculates the size chart is going to use when drawing each bar

+
+
+ +
+
protected virtual SizeF CalculateItemSize(List<ChartItem> entries, float width, float height, float footerHeight, float headerHeight)
+
+ +

Parameters

+
+
entries List<ChartItem>
+
+
width float
+

Control width

+
+
height float
+

Control height

+
+
footerHeight float
+

Chart footer label area height

+
+
headerHeight float
+

Chart header area height

+
+
+ +

Returns

+
+
SizeF
+

The size for each bar

+
+
+ + + + + + + + + + + + + +

+ CalculateItemSize(float, float, float, float) + +

+ +

Calculates the size chart is going to use when drawing each bar

+
+
+ +
+
protected virtual SizeF CalculateItemSize(float width, float height, float footerHeight, float headerHeight)
+
+ +

Parameters

+
+
width float
+

Control width

+
+
height float
+

Control height

+
+
footerHeight float
+

Chart footer label area height

+
+
headerHeight float
+

Chart header area height

+
+
+ +

Returns

+
+
SizeF
+

The size for each bar

+
+
+ + + + + + + + + + + + + +

+ CalculatePaddingForLabelValue(float, SizeF) + +

+ +

Calculate the center for a given rectangle

+
+
+ +
+
protected virtual float CalculatePaddingForLabelValue(float coordinateX, SizeF rect)
+
+ +

Parameters

+
+
coordinateX float
+

X axis coordinate

+
+
rect SizeF
+

Rectangle container to be centered

+
+
+ +

Returns

+
+
float
+

Number indicating the center X coordinate within input rectangle

+
+
+ + + + + + + + + + + + + +

+ CalculatePoints(SizeF, float, float) + +

+ +

Calculates the coordinates of each value within the chart canvas

+
+
+ +
+
protected virtual PointF[] CalculatePoints(SizeF itemSize, float origin, float headerHeight)
+
+ +

Parameters

+
+
itemSize SizeF
+

Item size

+
+
origin float
+

Y axis origin coordinate

+
+
headerHeight float
+

Chart header area height

+
+
+ +

Returns

+
+
PointF[]
+

Array with the points coordinates

+
+
+ + + + + + + + + + + + + +

+ CalculatePoints(List<ChartItem>, SizeF, float, float) + +

+ +

Calculates the coordinates of each value within the chart canvas

+
+
+ +
+
protected virtual PointF[] CalculatePoints(List<ChartItem> entries, SizeF itemSize, float origin, float headerHeight)
+
+ +

Parameters

+
+
entries List<ChartItem>
+
+
itemSize SizeF
+

Item size

+
+
origin float
+

Y axis origin coordinate

+
+
headerHeight float
+

Chart header area height

+
+
+ +

Returns

+
+
PointF[]
+

Array with the points coordinates

+
+
+ + + + + + + + + + + + + +

+ CalculateYOrigin(float, float) + +

+ +

Calculates the Y axis origin value

+
+
+ +
+
protected float CalculateYOrigin(float itemHeight, float headerHeight)
+
+ +

Parameters

+
+
itemHeight float
+

Each bar width

+
+
headerHeight float
+

Control total height

+
+
+ +

Returns

+
+
float
+

Y axis origin coordinate

+
+
+ + + + + + + + + + + + + +

+ ClearBackground(ICanvas, SizeF, Color) + +

+ +

Change current canvas background fill color

+
+
+ +
+
public virtual void ClearBackground(ICanvas canvas, SizeF containerSize, Color fillColor)
+
+ +

Parameters

+
+
canvas ICanvas
+

Current canvas

+
+
containerSize SizeF
+

Canvas size

+
+
fillColor Color
+

Fill color

+
+
+ + + + + + + + + + + + + + +

+ Dispose() + +

+ +

Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.

+
+
+ +
+
public virtual void Dispose()
+
+ + + + + + + + + + + + + + + +

+ Draw(ICanvas, RectF) + +

+ +
+
+ +
+
public void Draw(ICanvas canvas, RectF dirtyRect)
+
+ +

Parameters

+
+
canvas ICanvas
+
+
dirtyRect RectF
+
+
+ + + + + + + + + + + + + + +

+ DrawChart(ICanvas, RectF) + +

+ +

Calculates and draws the current chart with the Entries[] data

+
+
+ +
+
public virtual void DrawChart(ICanvas canvas, RectF dirtyRect)
+
+ +

Parameters

+
+
canvas ICanvas
+

Current canvas

+
+
dirtyRect RectF
+

Current canvas rect

+
+
+ + + + + + + + + + + + + + +

+ DrawHorizontalStepLines(ICanvas, IEnumerable<PointF>, float, float, float, float, float) + +

+ +

Draw horizontal lines in Y Axis

+
+
+ +
+
protected virtual void DrawHorizontalStepLines(ICanvas canvas, IEnumerable<PointF> points, float width, float height, float origin, float originX, float finalX)
+
+ +

Parameters

+
+
canvas ICanvas
+

Current canvas

+
+
points IEnumerable<PointF>
+

Current chart calculated points

+
+
width float
+

Current canvas total Width

+
+
height float
+

Current Canvas total Height

+
+
origin float
+

Y origin coordinate

+
+
originX float
+

X coordinate that determines where the line should start

+
+
finalX float
+

X coordinate that determines where the line should end

+
+
+ + + + + + + + + + + + + + +

+ DrawLabels(ICanvas, PointF[], SizeF, float, float, float) + +

+ +

Draws footer and value labels on current canvas

+
+
+ +
+
protected virtual void DrawLabels(ICanvas canvas, PointF[] points, SizeF itemSize, float height, float footerHeight, float origin)
+
+ +

Parameters

+
+
canvas ICanvas
+

Canvas to draw on

+
+
points PointF[]
+

Coordinates for each footer label

+
+
itemSize SizeF
+

Item size

+
+
height float
+

Control height

+
+
footerHeight float
+

Chart footer area height

+
+
origin float
+

Y axis origin coordinate

+
+
+ + + + + + + + + + + + + + +

+ DrawLabels(List<ChartItem>, ICanvas, PointF[], SizeF, float, float, float) + +

+ +

Draws footer and value labels on current canvas

+
+
+ +
+
protected virtual void DrawLabels(List<ChartItem> entries, ICanvas canvas, PointF[] points, SizeF itemSize, float height, float footerHeight, float origin)
+
+ +

Parameters

+
+
entries List<ChartItem>
+
+
canvas ICanvas
+

Canvas to draw on

+
+
points PointF[]
+

Coordinates for each footer label

+
+
itemSize SizeF
+

Item size

+
+
height float
+

Control height

+
+
footerHeight float
+

Chart footer area height

+
+
origin float
+

Y axis origin coordinate

+
+
+ + + + + + + + + + + + + + +

+ DrawVerticalStepLines(ICanvas, PointF[], float, float) + +

+ +
+
+ +
+
protected abstract void DrawVerticalStepLines(ICanvas canvas, PointF[] points, float origin, float maxPositiveValue)
+
+ +

Parameters

+
+
canvas ICanvas
+
+
points PointF[]
+
+
origin float
+
+
maxPositiveValue float
+
+
+ + + + + + + + + + + + + + +

+ Entries_CollectionChanged(object, NotifyCollectionChangedEventArgs) + +

+ +
+
+ +
+
protected virtual void Entries_CollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
+
+ +

Parameters

+
+
sender object
+
+
e NotifyCollectionChangedEventArgs
+
+
+ + + + + + + + + + + + + + +

+ Entry_PropertyChanged(object, PropertyChangedEventArgs) + +

+ +
+
+ +
+
protected virtual void Entry_PropertyChanged(object sender, PropertyChangedEventArgs e)
+
+ +

Parameters

+
+
sender object
+
+
e PropertyChangedEventArgs
+
+
+ + + + + + + + + + + + + + +

+ MeasureLabels() + +

+ +

Gets the size for labels container rectangle by measuring text length

+
+
+ +
+
protected virtual SizeF[] MeasureLabels()
+
+ + +

Returns

+
+
SizeF[]
+

Array with labels rectangle containers

+
+
+ + + + + + + + + + + + + +

+ RequestInvalidate() + +

+ +

Trigger Invalidate() method on ChartView()

+
+
+ +
+
protected void RequestInvalidate()
+
+ + + + + + + + + + + + + + + +

+ TruncateText(ICanvas, SizeF, string) + +

+ +

Allows long words to be shortened by removing characters so it can fit within the provided area

+
+
+ +
+
protected string TruncateText(ICanvas canvas, SizeF availableSize, string text)
+
+ +

Parameters

+
+
canvas ICanvas
+

Canvas to draw on

+
+
availableSize SizeF
+

Represents the available width

+
+
text string
+

Text to truncate within the available area

+
+
+ +

Returns

+
+
string
+

Truncated text

+
+
+ + + + + + + + + + + + +
+ + + + +
+ +
+ +
+
+ +
+ + + + diff --git a/docs/_site/api/AlohaKit.Controls.BusyIndicator.html b/docs/_site/api/AlohaKit.Controls.BusyIndicator.html new file mode 100644 index 0000000..dfdad31 --- /dev/null +++ b/docs/_site/api/AlohaKit.Controls.BusyIndicator.html @@ -0,0 +1,1100 @@ + + + + + Class BusyIndicator | alohakit.controls + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+
+
Table of Contents
+ +
+
+ +
+
+
+ +
+
+ + + +
+ +
+ + + +

+Class BusyIndicator +

+ +
+
Namespace
AlohaKit.Controls
+
Assembly
AlohaKit.dll
+
+ +

The BusyIndicator is a drawn control that provides a graphical representation to indicate +an application or process is busy.

+
+
+ +
+
public class BusyIndicator : GraphicsView, INotifyPropertyChanged, IVisualTreeElement, IEffectControlProvider, IToolTipElement, IContextFlyoutElement, IAnimatable, IViewController, IVisualElementController, IElementController, IGestureController, IGestureRecognizers, IPropertyMapperView, IHotReloadableView, IReplaceableView, IGraphicsView, IView, IElement, ITransform
+
+ + + + +
+
Inheritance
+
+ + + + + + + +
BusyIndicator
+
+
+ +
+
Implements
+
+ + + + + + + + + + + + + + + + + + +
+
+ + +
+
Inherited Members
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + +

Constructors +

+ + + + +

+ BusyIndicator() + +

+ +
+
+ +
+
public BusyIndicator()
+
+ + + + + + + + + + + + + +

Fields +

+ + + +

+ BackgroundColorProperty + +

+ +
+
+ +
+
public static readonly BindableProperty BackgroundColorProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ ColorProperty + +

+ +
+
+ +
+
public static readonly BindableProperty ColorProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ HasShadowProperty + +

+ +
+
+ +
+
public static readonly BindableProperty HasShadowProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ ShadowColorProperty + +

+ +
+
+ +
+
public static readonly BindableProperty ShadowColorProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + +

Properties +

+ + + + +

+ BackgroundColor + +

+ +
+
+ +
+
public Color BackgroundColor { get; set; }
+
+ + + + + +

Property Value

+
+
Color
+
+
+ + + + + + + + + + +

+ BusyIndicatorDrawable + +

+ +
+
+ +
+
public BusyIndicatorDrawable BusyIndicatorDrawable { get; set; }
+
+ + + + + +

Property Value

+
+
BusyIndicatorDrawable
+
+
+ + + + + + + + + + +

+ Color + +

+ +
+
+ +
+
public Color Color { get; set; }
+
+ + + + + +

Property Value

+
+
Color
+
+
+ + + + + + + + + + +

+ HasShadow + +

+ +
+
+ +
+
public bool HasShadow { get; set; }
+
+ + + + + +

Property Value

+
+
bool
+
+
+ + + + + + + + + + +

+ ShadowColor + +

+ +
+
+ +
+
public Color ShadowColor { get; set; }
+
+ + + + + +

Property Value

+
+
Color
+
+
+ + + + + + + + +

Methods +

+ + + + +

+ OnParentChanged() + +

+ +

When overridden in a derived class, should raise the ParentChanged event.

+
+
+ +
+
protected override void OnParentChanged()
+
+ + + + + + + + + +

Remarks

+

It is the implementor's responsibility to raise the ParentChanged event.

+
+ + + + + +
+ + + + +
+ +
+ +
+
+ +
+ + + + diff --git a/docs/_site/api/AlohaKit.Controls.BusyIndicatorDrawable.html b/docs/_site/api/AlohaKit.Controls.BusyIndicatorDrawable.html new file mode 100644 index 0000000..c340372 --- /dev/null +++ b/docs/_site/api/AlohaKit.Controls.BusyIndicatorDrawable.html @@ -0,0 +1,538 @@ + + + + + Class BusyIndicatorDrawable | alohakit.controls + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+
+
Table of Contents
+ +
+
+ +
+
+
+ +
+
+ + + +
+ +
+ + + +

+Class BusyIndicatorDrawable +

+ +
+
Namespace
AlohaKit.Controls
+
Assembly
AlohaKit.dll
+
+ +
+
+ +
+
public class BusyIndicatorDrawable : IDrawable
+
+ + + + +
+
Inheritance
+
+ +
BusyIndicatorDrawable
+
+
+ +
+
Implements
+
+ +
+
+ + +
+
Inherited Members
+
+ + + + + + + +
+ + + + + + +

Constructors +

+ + + + +

+ BusyIndicatorDrawable() + +

+ +
+
+ +
+
public BusyIndicatorDrawable()
+
+ + + + + + + + + + + + + +

Properties +

+ + + + +

+ BackgroundColor + +

+ +
+
+ +
+
public Color BackgroundColor { get; set; }
+
+ + + + + +

Property Value

+
+
Color
+
+
+ + + + + + + + + + +

+ Color + +

+ +
+
+ +
+
public Color Color { get; set; }
+
+ + + + + +

Property Value

+
+
Color
+
+
+ + + + + + + + + + +

+ HasShadow + +

+ +
+
+ +
+
public bool HasShadow { get; set; }
+
+ + + + + +

Property Value

+
+
bool
+
+
+ + + + + + + + + + +

+ Progress + +

+ +
+
+ +
+
public double Progress { get; set; }
+
+ + + + + +

Property Value

+
+
double
+
+
+ + + + + + + + + + +

+ Rotation + +

+ +
+
+ +
+
public double Rotation { get; set; }
+
+ + + + + +

Property Value

+
+
double
+
+
+ + + + + + + + + + +

+ ShadowColor + +

+ +
+
+ +
+
public Color ShadowColor { get; set; }
+
+ + + + + +

Property Value

+
+
Color
+
+
+ + + + + + + + +

Methods +

+ + + + +

+ Draw(ICanvas, RectF) + +

+ +
+
+ +
+
public void Draw(ICanvas canvas, RectF dirtyRect)
+
+ +

Parameters

+
+
canvas ICanvas
+
+
dirtyRect RectF
+
+
+ + + + + + + + + + + + + + +

+ DrawArc(ICanvas, RectF) + +

+ +
+
+ +
+
public virtual void DrawArc(ICanvas canvas, RectF dirtyRect)
+
+ +

Parameters

+
+
canvas ICanvas
+
+
dirtyRect RectF
+
+
+ + + + + + + + + + + + + + +

+ DrawBackground(ICanvas, RectF) + +

+ +
+
+ +
+
public virtual void DrawBackground(ICanvas canvas, RectF dirtyRect)
+
+ +

Parameters

+
+
canvas ICanvas
+
+
dirtyRect RectF
+
+
+ + + + + + + + + + + + + + +

+ DrawShadow(ICanvas, RectF) + +

+ +
+
+ +
+
public virtual void DrawShadow(ICanvas canvas, RectF dirtyRect)
+
+ +

Parameters

+
+
canvas ICanvas
+
+
dirtyRect RectF
+
+
+ + + + + + + + + + + + + +
+ + + + +
+ +
+ +
+
+ +
+ + + + diff --git a/docs/_site/api/AlohaKit.Controls.Button.html b/docs/_site/api/AlohaKit.Controls.Button.html new file mode 100644 index 0000000..9062ae2 --- /dev/null +++ b/docs/_site/api/AlohaKit.Controls.Button.html @@ -0,0 +1,2043 @@ + + + + + Class Button | alohakit.controls + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+
+
Table of Contents
+ +
+
+ +
+
+
+ +
+
+ + + +
+ +
+ + + +

+Class Button +

+ +
+
Namespace
AlohaKit.Controls
+
Assembly
AlohaKit.dll
+
+ +

The Button represents a customizable drawn button control. +It allows developers to create interactive buttons with highly customizable designs, +leveraging the power of lightweight graphics rendering.

+
+
+ +
+
public class Button : GraphicsView, INotifyPropertyChanged, IVisualTreeElement, IEffectControlProvider, IToolTipElement, IContextFlyoutElement, IAnimatable, IViewController, IVisualElementController, IElementController, IGestureController, IGestureRecognizers, IPropertyMapperView, IHotReloadableView, IReplaceableView, IGraphicsView, IView, IElement, ITransform
+
+ + + + +
+
Inheritance
+
+ + + + + + + +
Button
+
+
+ +
+
Implements
+
+ + + + + + + + + + + + + + + + + + +
+
+ + +
+
Inherited Members
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + +

Constructors +

+ + + + +

+ Button() + +

+ +
+
+ +
+
public Button()
+
+ + + + + + + + + + + + + +

Fields +

+ + + +

+ BackgroundColorProperty + +

+ +
+
+ +
+
public static readonly BindableProperty BackgroundColorProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ BackgroundProperty + +

+ +
+
+ +
+
public static readonly BindableProperty BackgroundProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ CommandParameterProperty + +

+ +
+
+ +
+
public static readonly BindableProperty CommandParameterProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ CommandProperty + +

+ +
+
+ +
+
public static readonly BindableProperty CommandProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ CornerRadiusProperty + +

+ +
+
+ +
+
public static readonly BindableProperty CornerRadiusProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ FontSizeProperty + +

+ +
+
+ +
+
public static readonly BindableProperty FontSizeProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ HasShadowProperty + +

+ +
+
+ +
+
public static readonly BindableProperty HasShadowProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ HorizontalTextAlignmentProperty + +

+ +
+
+ +
+
public static readonly BindableProperty HorizontalTextAlignmentProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ PressedCommandParameterProperty + +

+ +
+
+ +
+
public static readonly BindableProperty PressedCommandParameterProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ PressedCommandProperty + +

+ +
+
+ +
+
public static readonly BindableProperty PressedCommandProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ ReleasedCommandParameterProperty + +

+ +
+
+ +
+
public static readonly BindableProperty ReleasedCommandParameterProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ ReleasedCommandProperty + +

+ +
+
+ +
+
public static readonly BindableProperty ReleasedCommandProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ ShadowColorProperty + +

+ +
+
+ +
+
public static readonly BindableProperty ShadowColorProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ StrokeProperty + +

+ +
+
+ +
+
public static readonly BindableProperty StrokeProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ StrokeThicknessProperty + +

+ +
+
+ +
+
public static readonly BindableProperty StrokeThicknessProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ TextColorProperty + +

+ +
+
+ +
+
public static readonly BindableProperty TextColorProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ TextProperty + +

+ +
+
+ +
+
public static readonly BindableProperty TextProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ VerticalTextAlignmentProperty + +

+ +
+
+ +
+
public static readonly BindableProperty VerticalTextAlignmentProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + +

Properties +

+ + + + +

+ Background + +

+ +
+
+ +
+
public Brush Background { get; set; }
+
+ + + + + +

Property Value

+
+
Brush
+
+
+ + + + + + + + + + +

+ BackgroundColor + +

+ +
+
+ +
+
public Color BackgroundColor { get; set; }
+
+ + + + + +

Property Value

+
+
Color
+
+
+ + + + + + + + + + +

+ ButtonDrawable + +

+ +
+
+ +
+
public ButtonDrawable ButtonDrawable { get; set; }
+
+ + + + + +

Property Value

+
+
ButtonDrawable
+
+
+ + + + + + + + + + +

+ Command + +

+ +
+
+ +
+
public ICommand Command { get; set; }
+
+ + + + + +

Property Value

+
+
ICommand
+
+
+ + + + + + + + + + +

+ CommandParameter + +

+ +
+
+ +
+
public object CommandParameter { get; set; }
+
+ + + + + +

Property Value

+
+
object
+
+
+ + + + + + + + + + +

+ CornerRadius + +

+ +
+
+ +
+
public CornerRadius CornerRadius { get; set; }
+
+ + + + + +

Property Value

+
+
CornerRadius
+
+
+ + + + + + + + + + +

+ FontSize + +

+ +
+
+ +
+
public float FontSize { get; set; }
+
+ + + + + +

Property Value

+
+
float
+
+
+ + + + + + + + + + +

+ HasShadow + +

+ +
+
+ +
+
public bool HasShadow { get; set; }
+
+ + + + + +

Property Value

+
+
bool
+
+
+ + + + + + + + + + +

+ HorizontalTextAlignment + +

+ +
+
+ +
+
public TextAlignment HorizontalTextAlignment { get; set; }
+
+ + + + + +

Property Value

+
+
TextAlignment
+
+
+ + + + + + + + + + +

+ PressedCommand + +

+ +
+
+ +
+
public ICommand PressedCommand { get; set; }
+
+ + + + + +

Property Value

+
+
ICommand
+
+
+ + + + + + + + + + +

+ PressedCommandParameter + +

+ +
+
+ +
+
public object PressedCommandParameter { get; set; }
+
+ + + + + +

Property Value

+
+
object
+
+
+ + + + + + + + + + +

+ ReleasedCommand + +

+ +
+
+ +
+
public ICommand ReleasedCommand { get; set; }
+
+ + + + + +

Property Value

+
+
ICommand
+
+
+ + + + + + + + + + +

+ ReleasedCommandParameter + +

+ +
+
+ +
+
public object ReleasedCommandParameter { get; set; }
+
+ + + + + +

Property Value

+
+
object
+
+
+ + + + + + + + + + +

+ ShadowColor + +

+ +
+
+ +
+
public Color ShadowColor { get; set; }
+
+ + + + + +

Property Value

+
+
Color
+
+
+ + + + + + + + + + +

+ Stroke + +

+ +
+
+ +
+
public Brush Stroke { get; set; }
+
+ + + + + +

Property Value

+
+
Brush
+
+
+ + + + + + + + + + +

+ StrokeThickness + +

+ +
+
+ +
+
public double StrokeThickness { get; set; }
+
+ + + + + +

Property Value

+
+
double
+
+
+ + + + + + + + + + +

+ Text + +

+ +
+
+ +
+
public string Text { get; set; }
+
+ + + + + +

Property Value

+
+
string
+
+
+ + + + + + + + + + +

+ TextColor + +

+ +
+
+ +
+
public Color TextColor { get; set; }
+
+ + + + + +

Property Value

+
+
Color
+
+
+ + + + + + + + + + +

+ VerticalTextAlignment + +

+ +
+
+ +
+
public TextAlignment VerticalTextAlignment { get; set; }
+
+ + + + + +

Property Value

+
+
TextAlignment
+
+
+ + + + + + + + +

Methods +

+ + + + +

+ OnParentChanged() + +

+ +

When overridden in a derived class, should raise the ParentChanged event.

+
+
+ +
+
protected override void OnParentChanged()
+
+ + + + + + + + + +

Remarks

+

It is the implementor's responsibility to raise the ParentChanged event.

+
+ + + + +

Events +

+ + + +

+ Clicked + +

+ +
+
+ +
+
public event EventHandler Clicked
+
+ + + + + + +

Event Type

+
+
EventHandler
+
+
+ + + + + + + + +

+ Pressed + +

+ +
+
+ +
+
public event EventHandler Pressed
+
+ + + + + + +

Event Type

+
+
EventHandler
+
+
+ + + + + + + + +

+ Released + +

+ +
+
+ +
+
public event EventHandler Released
+
+ + + + + + +

Event Type

+
+
EventHandler
+
+
+ + + + + + + + +
+ + + + +
+ +
+ +
+
+ +
+ + + + diff --git a/docs/_site/api/AlohaKit.Controls.ButtonDrawable.html b/docs/_site/api/AlohaKit.Controls.ButtonDrawable.html new file mode 100644 index 0000000..f0f9168 --- /dev/null +++ b/docs/_site/api/AlohaKit.Controls.ButtonDrawable.html @@ -0,0 +1,759 @@ + + + + + Class ButtonDrawable | alohakit.controls + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+
+
Table of Contents
+ +
+
+ +
+
+
+ +
+
+ + + +
+ +
+ + + +

+Class ButtonDrawable +

+ +
+
Namespace
AlohaKit.Controls
+
Assembly
AlohaKit.dll
+
+ +
+
+ +
+
public class ButtonDrawable : IDrawable
+
+ + + + +
+
Inheritance
+
+ +
ButtonDrawable
+
+
+ +
+
Implements
+
+ +
+
+ + +
+
Inherited Members
+
+ + + + + + + +
+ + + + + + +

Constructors +

+ + + + +

+ ButtonDrawable() + +

+ +
+
+ +
+
public ButtonDrawable()
+
+ + + + + + + + + + + + + +

Properties +

+ + + + +

+ BackgroundPaint + +

+ +
+
+ +
+
public Paint BackgroundPaint { get; set; }
+
+ + + + + +

Property Value

+
+
Paint
+
+
+ + + + + + + + + + +

+ CornerRadius + +

+ +
+
+ +
+
public CornerRadius CornerRadius { get; set; }
+
+ + + + + +

Property Value

+
+
CornerRadius
+
+
+ + + + + + + + + + +

+ FontSize + +

+ +
+
+ +
+
public float FontSize { get; set; }
+
+ + + + + +

Property Value

+
+
float
+
+
+ + + + + + + + + + +

+ HasShadow + +

+ +
+
+ +
+
public bool HasShadow { get; set; }
+
+ + + + + +

Property Value

+
+
bool
+
+
+ + + + + + + + + + +

+ HorizontalTextAlignment + +

+ +
+
+ +
+
public TextAlignment HorizontalTextAlignment { get; set; }
+
+ + + + + +

Property Value

+
+
TextAlignment
+
+
+ + + + + + + + + + +

+ ShadowColor + +

+ +
+
+ +
+
public Color ShadowColor { get; set; }
+
+ + + + + +

Property Value

+
+
Color
+
+
+ + + + + + + + + + +

+ StrokePaint + +

+ +
+
+ +
+
public Paint StrokePaint { get; set; }
+
+ + + + + +

Property Value

+
+
Paint
+
+
+ + + + + + + + + + +

+ StrokeThickness + +

+ +
+
+ +
+
public double StrokeThickness { get; set; }
+
+ + + + + +

Property Value

+
+
double
+
+
+ + + + + + + + + + +

+ Text + +

+ +
+
+ +
+
public string Text { get; set; }
+
+ + + + + +

Property Value

+
+
string
+
+
+ + + + + + + + + + +

+ TextColor + +

+ +
+
+ +
+
public Color TextColor { get; set; }
+
+ + + + + +

Property Value

+
+
Color
+
+
+ + + + + + + + + + +

+ VerticalTextAlignment + +

+ +
+
+ +
+
public TextAlignment VerticalTextAlignment { get; set; }
+
+ + + + + +

Property Value

+
+
TextAlignment
+
+
+ + + + + + + + +

Methods +

+ + + + +

+ Draw(ICanvas, RectF) + +

+ +
+
+ +
+
public void Draw(ICanvas canvas, RectF dirtyRect)
+
+ +

Parameters

+
+
canvas ICanvas
+
+
dirtyRect RectF
+
+
+ + + + + + + + + + + + + + +

+ DrawBackground(ICanvas, RectF) + +

+ +
+
+ +
+
public virtual void DrawBackground(ICanvas canvas, RectF dirtyRect)
+
+ +

Parameters

+
+
canvas ICanvas
+
+
dirtyRect RectF
+
+
+ + + + + + + + + + + + + + +

+ DrawRippleEffect(ICanvas, RectF) + +

+ +
+
+ +
+
public virtual void DrawRippleEffect(ICanvas canvas, RectF dirtyRect)
+
+ +

Parameters

+
+
canvas ICanvas
+
+
dirtyRect RectF
+
+
+ + + + + + + + + + + + + + +

+ DrawShadow(ICanvas, RectF) + +

+ +
+
+ +
+
public virtual void DrawShadow(ICanvas canvas, RectF dirtyRect)
+
+ +

Parameters

+
+
canvas ICanvas
+
+
dirtyRect RectF
+
+
+ + + + + + + + + + + + + + +

+ DrawStroke(ICanvas, RectF) + +

+ +
+
+ +
+
public virtual void DrawStroke(ICanvas canvas, RectF dirtyRect)
+
+ +

Parameters

+
+
canvas ICanvas
+
+
dirtyRect RectF
+
+
+ + + + + + + + + + + + + + +

+ DrawText(ICanvas, RectF) + +

+ +
+
+ +
+
public virtual void DrawText(ICanvas canvas, RectF dirtyRect)
+
+ +

Parameters

+
+
canvas ICanvas
+
+
dirtyRect RectF
+
+
+ + + + + + + + + + + + + +
+ + + + +
+ +
+ +
+
+ +
+ + + + diff --git a/docs/_site/api/AlohaKit.Controls.Captcha.html b/docs/_site/api/AlohaKit.Controls.Captcha.html new file mode 100644 index 0000000..d953873 --- /dev/null +++ b/docs/_site/api/AlohaKit.Controls.Captcha.html @@ -0,0 +1,986 @@ + + + + + Class Captcha | alohakit.controls + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+
+
Table of Contents
+ +
+
+ +
+
+
+ +
+
+ + + +
+ +
+ + + +

+Class Captcha +

+ +
+
Namespace
AlohaKit.Controls
+
Assembly
AlohaKit.dll
+
+ +

The Captcha is a drawn control used to render and manage CAPTCHA (Completely Automated Public Turing test to +tell Computers and Humans Apart) challenges. +It leverages .NET MAUI Graphics for efficient graphical rendering and provides a flexible way to generate and validate +CAPTCHAs in an application.

+
+
+ +
+
public class Captcha : GraphicsView, INotifyPropertyChanged, IVisualTreeElement, IEffectControlProvider, IToolTipElement, IContextFlyoutElement, IAnimatable, IViewController, IVisualElementController, IElementController, IGestureController, IGestureRecognizers, IPropertyMapperView, IHotReloadableView, IReplaceableView, IGraphicsView, IView, IElement, ITransform
+
+ + + + +
+
Inheritance
+
+ + + + + + + +
Captcha
+
+
+ +
+
Implements
+
+ + + + + + + + + + + + + + + + + + +
+
+ + +
+
Inherited Members
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + +

Constructors +

+ + + + +

+ Captcha() + +

+ +
+
+ +
+
public Captcha()
+
+ + + + + + + + + + + + + +

Fields +

+ + + +

+ LevelProperty + +

+ +
+
+ +
+
public static readonly BindableProperty LevelProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ TextColorProperty + +

+ +
+
+ +
+
public static readonly BindableProperty TextColorProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + +

Properties +

+ + + + +

+ CaptchaDrawable + +

+ +
+
+ +
+
public CaptchaDrawable CaptchaDrawable { get; set; }
+
+ + + + + +

Property Value

+
+
CaptchaDrawable
+
+
+ + + + + + + + + + +

+ Level + +

+ +
+
+ +
+
public CaptchaLevel Level { get; set; }
+
+ + + + + +

Property Value

+
+
CaptchaLevel
+
+
+ + + + + + + + + + +

+ TextColor + +

+ +
+
+ +
+
public Color TextColor { get; set; }
+
+ + + + + +

Property Value

+
+
Color
+
+
+ + + + + + + + +

Methods +

+ + + + +

+ OnParentChanged() + +

+ +

When overridden in a derived class, should raise the ParentChanged event.

+
+
+ +
+
protected override void OnParentChanged()
+
+ + + + + + + + + +

Remarks

+

It is the implementor's responsibility to raise the ParentChanged event.

+
+ + + + + +
+ + + + +
+ +
+ +
+
+ +
+ + + + diff --git a/docs/_site/api/AlohaKit.Controls.CaptchaDrawable.html b/docs/_site/api/AlohaKit.Controls.CaptchaDrawable.html new file mode 100644 index 0000000..24883df --- /dev/null +++ b/docs/_site/api/AlohaKit.Controls.CaptchaDrawable.html @@ -0,0 +1,382 @@ + + + + + Class CaptchaDrawable | alohakit.controls + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+
+
Table of Contents
+ +
+
+ +
+
+
+ +
+
+ + + +
+ +
+ + + +

+Class CaptchaDrawable +

+ +
+
Namespace
AlohaKit.Controls
+
Assembly
AlohaKit.dll
+
+ +
+
+ +
+
public class CaptchaDrawable : IDrawable
+
+ + + + +
+
Inheritance
+
+ +
CaptchaDrawable
+
+
+ +
+
Implements
+
+ +
+
+ + +
+
Inherited Members
+
+ + + + + + + +
+ + + + + + +

Properties +

+ + + + +

+ Level + +

+ +
+
+ +
+
public CaptchaLevel Level { get; set; }
+
+ + + + + +

Property Value

+
+
CaptchaLevel
+
+
+ + + + + + + + + + +

+ TextColor + +

+ +
+
+ +
+
public Color TextColor { get; set; }
+
+ + + + + +

Property Value

+
+
Color
+
+
+ + + + + + + + + + +

+ Word + +

+ +
+
+ +
+
public string Word { get; set; }
+
+ + + + + +

Property Value

+
+
string
+
+
+ + + + + + + + +

Methods +

+ + + + +

+ Draw(ICanvas, RectF) + +

+ +
+
+ +
+
public void Draw(ICanvas canvas, RectF dirtyRect)
+
+ +

Parameters

+
+
canvas ICanvas
+
+
dirtyRect RectF
+
+
+ + + + + + + + + + + + + + +

+ DrawArtifacts(ICanvas, RectF) + +

+ +
+
+ +
+
public virtual void DrawArtifacts(ICanvas canvas, RectF dirtyRect)
+
+ +

Parameters

+
+
canvas ICanvas
+
+
dirtyRect RectF
+
+
+ + + + + + + + + + + + + + +

+ DrawText(ICanvas, RectF) + +

+ +
+
+ +
+
public virtual void DrawText(ICanvas canvas, RectF dirtyRect)
+
+ +

Parameters

+
+
canvas ICanvas
+
+
dirtyRect RectF
+
+
+ + + + + + + + + + + + + +
+ + + + +
+ +
+ +
+
+ +
+ + + + diff --git a/docs/_site/api/AlohaKit.Controls.CaptchaLevel.html b/docs/_site/api/AlohaKit.Controls.CaptchaLevel.html new file mode 100644 index 0000000..1d58c69 --- /dev/null +++ b/docs/_site/api/AlohaKit.Controls.CaptchaLevel.html @@ -0,0 +1,160 @@ + + + + + Enum CaptchaLevel | alohakit.controls + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+
+
Table of Contents
+ +
+
+ +
+
+
+ +
+
+ + + +
+ +
+ + + + +

+Enum CaptchaLevel +

+ +
+
Namespace
AlohaKit.Controls
+
Assembly
AlohaKit.dll
+
+ +

The CaptchaLevel enumeration defines the different levels of complexity for CAPTCHA +(Completely Automated Public Turing test to tell Computers and Humans Apart) challenges. +This can be used to configure or determine the strength of a CAPTCHA system, +balancing between ease of use and security requirements.

+
+
+ +
+
public enum CaptchaLevel
+
+ + + + + + + + + +

Fields +

+
+
Normal = 1
+ +
+
Strong = 2
+ +
+
Weak = 0
+ +
+
+ + + +
+ + + + +
+ +
+ +
+
+ +
+ + + + diff --git a/docs/_site/api/AlohaKit.Controls.CheckBox.html b/docs/_site/api/AlohaKit.Controls.CheckBox.html new file mode 100644 index 0000000..62e43df --- /dev/null +++ b/docs/_site/api/AlohaKit.Controls.CheckBox.html @@ -0,0 +1,1445 @@ + + + + + Class CheckBox | alohakit.controls + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+
+
Table of Contents
+ +
+
+ +
+
+
+ +
+
+ + + +
+ +
+ + + +

+Class CheckBox +

+ +
+
Namespace
AlohaKit.Controls
+
Assembly
AlohaKit.dll
+
+ +

The CheckBox is a custom drawn control that represents a checkbox for selecting or deselecting options. +It is highly customizable while maintaining efficient rendering capabilities.

+
+
+ +
+
public class CheckBox : GraphicsView, INotifyPropertyChanged, IVisualTreeElement, IEffectControlProvider, IToolTipElement, IContextFlyoutElement, IAnimatable, IViewController, IVisualElementController, IElementController, IGestureController, IGestureRecognizers, IPropertyMapperView, IHotReloadableView, IReplaceableView, IGraphicsView, IView, IElement, ITransform
+
+ + + + +
+
Inheritance
+
+ + + + + + + +
CheckBox
+
+
+ +
+
Implements
+
+ + + + + + + + + + + + + + + + + + +
+
+ + +
+
Inherited Members
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + +

Constructors +

+ + + + +

+ CheckBox() + +

+ +
+
+ +
+
public CheckBox()
+
+ + + + + + + + + + + + + +

Fields +

+ + + +

+ CheckedBrushProperty + +

+ +
+
+ +
+
public static readonly BindableProperty CheckedBrushProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ CheckedCommandParameterProperty + +

+ +
+
+ +
+
public static readonly BindableProperty CheckedCommandParameterProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ CheckedCommandProperty + +

+ +
+
+ +
+
public static readonly BindableProperty CheckedCommandProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ IsCheckedProperty + +

+ +
+
+ +
+
public static readonly BindableProperty IsCheckedProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ StrokeProperty + +

+ +
+
+ +
+
public static readonly BindableProperty StrokeProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ StrokeThicknessProperty + +

+ +
+
+ +
+
public static readonly BindableProperty StrokeThicknessProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ UncheckedBrushProperty + +

+ +
+
+ +
+
public static readonly BindableProperty UncheckedBrushProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ UncheckedCommandParameterProperty + +

+ +
+
+ +
+
public static readonly BindableProperty UncheckedCommandParameterProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ UncheckedCommandProperty + +

+ +
+
+ +
+
public static readonly BindableProperty UncheckedCommandProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + +

Properties +

+ + + + +

+ CheckBoxDrawable + +

+ +
+
+ +
+
public CheckBoxDrawable CheckBoxDrawable { get; set; }
+
+ + + + + +

Property Value

+
+
CheckBoxDrawable
+
+
+ + + + + + + + + + +

+ CheckedBrush + +

+ +
+
+ +
+
public Brush CheckedBrush { get; set; }
+
+ + + + + +

Property Value

+
+
Brush
+
+
+ + + + + + + + + + +

+ CheckedCommand + +

+ +
+
+ +
+
public ICommand CheckedCommand { get; set; }
+
+ + + + + +

Property Value

+
+
ICommand
+
+
+ + + + + + + + + + +

+ CheckedCommandParameter + +

+ +
+
+ +
+
public object CheckedCommandParameter { get; set; }
+
+ + + + + +

Property Value

+
+
object
+
+
+ + + + + + + + + + +

+ IsChecked + +

+ +
+
+ +
+
public bool IsChecked { get; set; }
+
+ + + + + +

Property Value

+
+
bool
+
+
+ + + + + + + + + + +

+ Stroke + +

+ +
+
+ +
+
public Brush Stroke { get; set; }
+
+ + + + + +

Property Value

+
+
Brush
+
+
+ + + + + + + + + + +

+ StrokeThickness + +

+ +
+
+ +
+
public double StrokeThickness { get; set; }
+
+ + + + + +

Property Value

+
+
double
+
+
+ + + + + + + + + + +

+ UncheckedBrush + +

+ +
+
+ +
+
public Brush UncheckedBrush { get; set; }
+
+ + + + + +

Property Value

+
+
Brush
+
+
+ + + + + + + + + + +

+ UncheckedCommand + +

+ +
+
+ +
+
public ICommand UncheckedCommand { get; set; }
+
+ + + + + +

Property Value

+
+
ICommand
+
+
+ + + + + + + + + + +

+ UncheckedCommandParameter + +

+ +
+
+ +
+
public object UncheckedCommandParameter { get; set; }
+
+ + + + + +

Property Value

+
+
object
+
+
+ + + + + + + + +

Methods +

+ + + + +

+ OnParentChanged() + +

+ +

When overridden in a derived class, should raise the ParentChanged event.

+
+
+ +
+
protected override void OnParentChanged()
+
+ + + + + + + + + +

Remarks

+

It is the implementor's responsibility to raise the ParentChanged event.

+
+ + + + +

Events +

+ + + +

+ CheckedChanged + +

+ +
+
+ +
+
public event EventHandler<CheckedChangedEventArgs> CheckedChanged
+
+ + + + + + +

Event Type

+
+
EventHandler<CheckedChangedEventArgs>
+
+
+ + + + + + + + +
+ + + + +
+ +
+ +
+
+ +
+ + + + diff --git a/docs/_site/api/AlohaKit.Controls.CheckBoxDrawable.html b/docs/_site/api/AlohaKit.Controls.CheckBoxDrawable.html new file mode 100644 index 0000000..224a077 --- /dev/null +++ b/docs/_site/api/AlohaKit.Controls.CheckBoxDrawable.html @@ -0,0 +1,444 @@ + + + + + Class CheckBoxDrawable | alohakit.controls + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+
+
Table of Contents
+ +
+
+ +
+
+
+ +
+
+ + + +
+ +
+ + + +

+Class CheckBoxDrawable +

+ +
+
Namespace
AlohaKit.Controls
+
Assembly
AlohaKit.dll
+
+ +
+
+ +
+
public class CheckBoxDrawable : IDrawable
+
+ + + + +
+
Inheritance
+
+ +
CheckBoxDrawable
+
+
+ +
+
Implements
+
+ +
+
+ + +
+
Inherited Members
+
+ + + + + + + +
+ + + + + + +

Properties +

+ + + + +

+ CheckedPaint + +

+ +
+
+ +
+
public Paint CheckedPaint { get; set; }
+
+ + + + + +

Property Value

+
+
Paint
+
+
+ + + + + + + + + + +

+ IsChecked + +

+ +
+
+ +
+
public bool IsChecked { get; set; }
+
+ + + + + +

Property Value

+
+
bool
+
+
+ + + + + + + + + + +

+ StrokePaint + +

+ +
+
+ +
+
public Paint StrokePaint { get; set; }
+
+ + + + + +

Property Value

+
+
Paint
+
+
+ + + + + + + + + + +

+ StrokeThickness + +

+ +
+
+ +
+
public double StrokeThickness { get; set; }
+
+ + + + + +

Property Value

+
+
double
+
+
+ + + + + + + + + + +

+ UncheckedPaint + +

+ +
+
+ +
+
public Paint UncheckedPaint { get; set; }
+
+ + + + + +

Property Value

+
+
Paint
+
+
+ + + + + + + + +

Methods +

+ + + + +

+ Draw(ICanvas, RectF) + +

+ +
+
+ +
+
public void Draw(ICanvas canvas, RectF dirtyRect)
+
+ +

Parameters

+
+
canvas ICanvas
+
+
dirtyRect RectF
+
+
+ + + + + + + + + + + + + + +

+ DrawBackground(ICanvas, RectF) + +

+ +
+
+ +
+
public virtual void DrawBackground(ICanvas canvas, RectF dirtyRect)
+
+ +

Parameters

+
+
canvas ICanvas
+
+
dirtyRect RectF
+
+
+ + + + + + + + + + + + + + +

+ DrawCheck(ICanvas, RectF) + +

+ +
+
+ +
+
public virtual void DrawCheck(ICanvas canvas, RectF dirtyRect)
+
+ +

Parameters

+
+
canvas ICanvas
+
+
dirtyRect RectF
+
+
+ + + + + + + + + + + + + +
+ + + + +
+ +
+ +
+
+ +
+ + + + diff --git a/docs/_site/api/AlohaKit.Controls.LineChart.html b/docs/_site/api/AlohaKit.Controls.LineChart.html new file mode 100644 index 0000000..b16ceb0 --- /dev/null +++ b/docs/_site/api/AlohaKit.Controls.LineChart.html @@ -0,0 +1,1451 @@ + + + + + Class LineChart | alohakit.controls + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+
+
Table of Contents
+ +
+
+ +
+
+
+ +
+
+ + + +
+ +
+ + + +

+Class LineChart +

+ +
+
Namespace
AlohaKit.Controls
+
Assembly
AlohaKit.dll
+
+ +

The LineChart provides a drawn control to visualize data as a line chart. +It allows data points to be represented by a continuous line, making it ideal for showing trends over time or relationships between variables.

+

This class inherits from BaseChart, leveraging shared charting functionality while adding line-specific rendering features.

+
+
+ +
+
public sealed class LineChart : BaseChart, INotifyPropertyChanged, IVisualTreeElement, IEffectControlProvider, IToolTipElement, IContextFlyoutElement, IAnimatable, IViewController, IVisualElementController, IElementController, IGestureController, IGestureRecognizers, IPropertyMapperView, IHotReloadableView, IReplaceableView, IGraphicsView, IView, IElement, ITransform, IDisposable
+
+ + + + +
+
Inheritance
+
+ + + + + + + + +
LineChart
+
+
+ +
+
Implements
+
+ + + + + + + + + + + + + + + + + + + +
+
+ + +
+
Inherited Members
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + +

Constructors +

+ + + + +

+ LineChart() + +

+ +
+
+ +
+
public LineChart()
+
+ + + + + + + + + + + + + +

Fields +

+ + + +

+ ChartStyleProperty + +

+ +
+
+ +
+
public static readonly BindableProperty ChartStyleProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ CurveFactorProperty + +

+ +
+
+ +
+
public static readonly BindableProperty CurveFactorProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ ExpandAndFillBackgroundCurvePathProperty + +

+ +
+
+ +
+
public static readonly BindableProperty ExpandAndFillBackgroundCurvePathProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ FillCurveColorProperty + +

+ +
+
+ +
+
public static readonly BindableProperty FillCurveColorProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ IsCurveBackgroundFilledProperty + +

+ +
+
+ +
+
public static readonly BindableProperty IsCurveBackgroundFilledProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ LineColorProperty + +

+ +
+
+ +
+
public static readonly BindableProperty LineColorProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ PointColorProperty + +

+ +
+
+ +
+
public static readonly BindableProperty PointColorProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ PointSizeProperty + +

+ +
+
+ +
+
public static readonly BindableProperty PointSizeProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ ShowPointsForCurveStyleProperty + +

+ +
+
+ +
+
public static readonly BindableProperty ShowPointsForCurveStyleProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + +

Properties +

+ + + + +

+ ChartStyle + +

+ +

Defines the style for the current LineChart

+
+
+ +
+
public ChartEnums.LineChartStyle ChartStyle { get; set; }
+
+ + + + + +

Property Value

+
+
ChartEnums.LineChartStyle
+
+
+ + + + + + + + + + +

+ CurveFactor + +

+ +

Sets how 'curvy' the bezier curve will be when drawn. Accepts values between 0-1. Default is 0.6

+
+
+ +
+
public float CurveFactor { get; set; }
+
+ + + + + +

Property Value

+
+
float
+
+
+ + + + + + + + + + +

+ ExpandAndFillBackgroundCurvePath + +

+ +

If true Bezier curve Background Path color will expand and fill when drawn.

+
+
+ +
+
public bool ExpandAndFillBackgroundCurvePath { get; set; }
+
+ + + + + +

Property Value

+
+
bool
+
+
+ + + + + + + + + + +

+ FillCurveColor + +

+ +

Gets or sets the color to use when filling Curve serie

+
+
+ +
+
public Color FillCurveColor { get; set; }
+
+ + + + + +

Property Value

+
+
Color
+
+
+ + + + + + + + + + +

+ IsCurveBackgroundFilled + +

+ +

Gets or sets if the curve path will have a solid color background when drawn.

+
+
+ +
+
public bool IsCurveBackgroundFilled { get; set; }
+
+ + + + + +

Property Value

+
+
bool
+
+
+ + + + + + + + + + +

+ LineColor + +

+ +

Gets or sets the color to use when drawing chart lines.

+
+
+ +
+
public Color LineColor { get; set; }
+
+ + + + + +

Property Value

+
+
Color
+
+
+ + + + + + + + + + +

+ PointColor + +

+ +

Gets or sets the color for each dot.

+
+
+ +
+
public Color PointColor { get; set; }
+
+ + + + + +

Property Value

+
+
Color
+
+
+ + + + + + + + + + +

+ PointSize + +

+ +

Gets or sets the radius for each point.

+
+
+ +
+
public float PointSize { get; set; }
+
+ + + + + +

Property Value

+
+
float
+
+
+ + + + + + + + + + +

+ ShowPointsForCurveStyle + +

+ +

If true and Style prop equals to 'Curve' points will be shown when drawing cubic bezier

+
+
+ +
+
public bool ShowPointsForCurveStyle { get; set; }
+
+ + + + + +

Property Value

+
+
bool
+
+
+ + + + + + + + + +
+ + + + +
+ +
+ +
+
+ +
+ + + + diff --git a/docs/_site/api/AlohaKit.Controls.LineChartDrawable.html b/docs/_site/api/AlohaKit.Controls.LineChartDrawable.html new file mode 100644 index 0000000..8a9aecf --- /dev/null +++ b/docs/_site/api/AlohaKit.Controls.LineChartDrawable.html @@ -0,0 +1,643 @@ + + + + + Class LineChartDrawable | alohakit.controls + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+
+
Table of Contents
+ +
+
+ +
+
+
+ +
+
+ + + +
+ +
+ + + +

+Class LineChartDrawable +

+ +
+
Namespace
AlohaKit.Controls
+
Assembly
AlohaKit.dll
+
+ +
+
+ +
+
public sealed class LineChartDrawable : BaseChartDrawable, IDrawable, IDisposable
+
+ + + + +
+
Inheritance
+
+ + +
LineChartDrawable
+
+
+ +
+
Implements
+
+ + +
+
+ + +
+
Inherited Members
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + +

Properties +

+ + + + +

+ CurveFactor + +

+ +

Sets how 'curvy' the bezier curve will be when drawn. Accepts values between 0-1. Default is 0.6

+
+
+ +
+
public float CurveFactor { get; set; }
+
+ + + + + +

Property Value

+
+
float
+
+
+ + + + + + + + + + +

+ ExpandAndFillBackgroundCurvePath + +

+ +

If true Bezier curve Background Path color will expand and fill when drawn.

+
+
+ +
+
public bool ExpandAndFillBackgroundCurvePath { get; set; }
+
+ + + + + +

Property Value

+
+
bool
+
+
+ + + + + + + + + + +

+ FillCurveColor + +

+ +

Gets or sets the color to use when filling Curve serie

+
+
+ +
+
public Color FillCurveColor { get; set; }
+
+ + + + + +

Property Value

+
+
Color
+
+
+ + + + + + + + + + +

+ IsCurveBackgroundFilled + +

+ +

Gets or sets if the curve will have a solid color background when drawn.

+
+
+ +
+
public bool IsCurveBackgroundFilled { get; set; }
+
+ + + + + +

Property Value

+
+
bool
+
+
+ + + + + + + + + + +

+ LineColor + +

+ +

Gets or sets the color to use when drawing chart lines.

+
+
+ +
+
public Color LineColor { get; set; }
+
+ + + + + +

Property Value

+
+
Color
+
+
+ + + + + + + + + + +

+ PointColor + +

+ +

Gets or sets the color for each dot.

+
+
+ +
+
public Color PointColor { get; set; }
+
+ + + + + +

Property Value

+
+
Color
+
+
+ + + + + + + + + + +

+ PointSize + +

+ +

Gets or sets the radius for each point.

+
+
+ +
+
public float PointSize { get; set; }
+
+ + + + + +

Property Value

+
+
float
+
+
+ + + + + + + + + + +

+ ShowPointsForCurveStyle + +

+ +

If true and Style prop equals to 'Curve' points will be shown when drawing cubic bezier

+
+
+ +
+
public bool ShowPointsForCurveStyle { get; set; }
+
+ + + + + +

Property Value

+
+
bool
+
+
+ + + + + + + + + + +

+ Style + +

+ +

Defines the style for the current LineChart

+
+
+ +
+
public ChartEnums.LineChartStyle Style { get; set; }
+
+ + + + + +

Property Value

+
+
ChartEnums.LineChartStyle
+
+
+ + + + + + + + +

Methods +

+ + + + +

+ DrawChart(ICanvas, RectF) + +

+ +

Calculates and draws the current chart with the Entries[] data

+
+
+ +
+
public override void DrawChart(ICanvas canvas, RectF dirtyRect)
+
+ +

Parameters

+
+
canvas ICanvas
+

Current canvas

+
+
dirtyRect RectF
+

Current canvas rect

+
+
+ + + + + + + + + + + + + + +

+ DrawVerticalStepLines(ICanvas, PointF[], float, float) + +

+ +
+
+ +
+
protected override void DrawVerticalStepLines(ICanvas canvas, PointF[] points, float origin, float maxPositiveValue)
+
+ +

Parameters

+
+
canvas ICanvas
+
+
points PointF[]
+
+
origin float
+
+
maxPositiveValue float
+
+
+ + + + + + + + + + + + + +
+ + + + +
+ +
+ +
+
+ +
+ + + + diff --git a/docs/_site/api/AlohaKit.Controls.LinearGauge.html b/docs/_site/api/AlohaKit.Controls.LinearGauge.html new file mode 100644 index 0000000..64adca5 --- /dev/null +++ b/docs/_site/api/AlohaKit.Controls.LinearGauge.html @@ -0,0 +1,1202 @@ + + + + + Class LinearGauge | alohakit.controls + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+
+
Table of Contents
+ +
+
+ +
+
+
+ +
+
+ + + +
+ +
+ + + +

+Class LinearGauge +

+ +
+
Namespace
AlohaKit.Controls
+
Assembly
AlohaKit.dll
+
+ +

The LinearGauge is a drawn control for rendering a linear gauge. +A linear gauge is a visual representation of data along a straight or horizontal/vertical axis, commonly used to +display values such as progress, measurements, or performance indicators.

+
+
+ +
+
public class LinearGauge : GraphicsView, INotifyPropertyChanged, IVisualTreeElement, IEffectControlProvider, IToolTipElement, IContextFlyoutElement, IAnimatable, IViewController, IVisualElementController, IElementController, IGestureController, IGestureRecognizers, IPropertyMapperView, IHotReloadableView, IReplaceableView, IGraphicsView, IView, IElement, ITransform
+
+ + + + +
+
Inheritance
+
+ + + + + + + +
LinearGauge
+
+
+ +
+
Implements
+
+ + + + + + + + + + + + + + + + + + +
+
+ + +
+
Inherited Members
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + +

Constructors +

+ + + + +

+ LinearGauge() + +

+ +
+
+ +
+
public LinearGauge()
+
+ + + + + + + + + + + + + +

Fields +

+ + + +

+ BackgroundProperty + +

+ +
+
+ +
+
public static readonly BindableProperty BackgroundProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ CornerRadiusProperty + +

+ +
+
+ +
+
public static readonly BindableProperty CornerRadiusProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ RangeEndProperty + +

+ +
+
+ +
+
public static readonly BindableProperty RangeEndProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ RangeStartProperty + +

+ +
+
+ +
+
public static readonly BindableProperty RangeStartProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ ValueProperty + +

+ +
+
+ +
+
public static readonly BindableProperty ValueProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + +

Properties +

+ + + + +

+ Background + +

+ +
+
+ +
+
public Brush Background { get; set; }
+
+ + + + + +

Property Value

+
+
Brush
+
+
+ + + + + + + + + + +

+ CornerRadius + +

+ +
+
+ +
+
public CornerRadius CornerRadius { get; set; }
+
+ + + + + +

Property Value

+
+
CornerRadius
+
+
+ + + + + + + + + + +

+ LinearGaugeDrawable + +

+ +
+
+ +
+
public LinearGaugeDrawable LinearGaugeDrawable { get; set; }
+
+ + + + + +

Property Value

+
+
LinearGaugeDrawable
+
+
+ + + + + + + + + + +

+ RangeEnd + +

+ +
+
+ +
+
public int RangeEnd { get; set; }
+
+ + + + + +

Property Value

+
+
int
+
+
+ + + + + + + + + + +

+ RangeStart + +

+ +
+
+ +
+
public int RangeStart { get; set; }
+
+ + + + + +

Property Value

+
+
int
+
+
+ + + + + + + + + + +

+ Value + +

+ +
+
+ +
+
public int Value { get; set; }
+
+ + + + + +

Property Value

+
+
int
+
+
+ + + + + + + + +

Methods +

+ + + + +

+ OnParentSet() + +

+ +

Raises the (internal) ParentSet event.

+
+
+ +
+
protected override void OnParentSet()
+
+ + + + + + + + + +

Remarks

+

Will set the NavigationProxy's inner navigation object to closest topmost element capable of handling navigation calls.

+
+ + +
+
See Also
+
+ +
+
+ + +

Events +

+ + + +

+ ValueChanged + +

+ +
+
+ +
+
public event EventHandler<ValueChangedEventArgs> ValueChanged
+
+ + + + + + +

Event Type

+
+
EventHandler<ValueChangedEventArgs>
+
+
+ + + + + + + + +
+ + + + +
+ +
+ +
+
+ +
+ + + + diff --git a/docs/_site/api/AlohaKit.Controls.LinearGaugeDrawable.html b/docs/_site/api/AlohaKit.Controls.LinearGaugeDrawable.html new file mode 100644 index 0000000..e362237 --- /dev/null +++ b/docs/_site/api/AlohaKit.Controls.LinearGaugeDrawable.html @@ -0,0 +1,477 @@ + + + + + Class LinearGaugeDrawable | alohakit.controls + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+
+
Table of Contents
+ +
+
+ +
+
+
+ +
+
+ + + +
+ +
+ + + +

+Class LinearGaugeDrawable +

+ +
+
Namespace
AlohaKit.Controls
+
Assembly
AlohaKit.dll
+
+ +
+
+ +
+
public class LinearGaugeDrawable : IDrawable
+
+ + + + +
+
Inheritance
+
+ +
LinearGaugeDrawable
+
+
+ +
+
Implements
+
+ +
+
+ + +
+
Inherited Members
+
+ + + + + + + +
+ + + + + + +

Properties +

+ + + + +

+ BackgroundPaint + +

+ +
+
+ +
+
public Paint BackgroundPaint { get; set; }
+
+ + + + + +

Property Value

+
+
Paint
+
+
+ + + + + + + + + + +

+ CornerRadius + +

+ +
+
+ +
+
public CornerRadius CornerRadius { get; set; }
+
+ + + + + +

Property Value

+
+
CornerRadius
+
+
+ + + + + + + + + + +

+ RangeEnd + +

+ +
+
+ +
+
public int RangeEnd { get; set; }
+
+ + + + + +

Property Value

+
+
int
+
+
+ + + + + + + + + + +

+ RangeStart + +

+ +
+
+ +
+
public int RangeStart { get; set; }
+
+ + + + + +

Property Value

+
+
int
+
+
+ + + + + + + + + + +

+ Value + +

+ +
+
+ +
+
public int Value { get; set; }
+
+ + + + + +

Property Value

+
+
int
+
+
+ + + + + + + + +

Methods +

+ + + + +

+ Draw(ICanvas, RectF) + +

+ +
+
+ +
+
public void Draw(ICanvas canvas, RectF dirtyRect)
+
+ +

Parameters

+
+
canvas ICanvas
+
+
dirtyRect RectF
+
+
+ + + + + + + + + + + + + + +

+ DrawBackground(ICanvas, RectF) + +

+ +
+
+ +
+
public virtual void DrawBackground(ICanvas canvas, RectF dirtyRect)
+
+ +

Parameters

+
+
canvas ICanvas
+
+
dirtyRect RectF
+
+
+ + + + + + + + + + + + + + +

+ DrawProgress(ICanvas, RectF) + +

+ +
+
+ +
+
public virtual void DrawProgress(ICanvas canvas, RectF dirtyRect)
+
+ +

Parameters

+
+
canvas ICanvas
+
+
dirtyRect RectF
+
+
+ + + + + + + + + + + + + + +

+ DrawTicks(ICanvas, RectF) + +

+ +
+
+ +
+
public virtual void DrawTicks(ICanvas canvas, RectF dirtyRect)
+
+ +

Parameters

+
+
canvas ICanvas
+
+
dirtyRect RectF
+
+
+ + + + + + + + + + + + + +
+ + + + +
+ +
+ +
+
+ +
+ + + + diff --git a/docs/_site/api/AlohaKit.Controls.MultiBarChart.html b/docs/_site/api/AlohaKit.Controls.MultiBarChart.html new file mode 100644 index 0000000..2f547fe --- /dev/null +++ b/docs/_site/api/AlohaKit.Controls.MultiBarChart.html @@ -0,0 +1,1249 @@ + + + + + Class MultiBarChart | alohakit.controls + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+
+
Table of Contents
+ +
+
+ +
+
+
+ +
+
+ + + +
+ +
+ + + +

+Class MultiBarChart +

+ +
+
Namespace
AlohaKit.Controls
+
Assembly
AlohaKit.dll
+
+ +

The MultiBarChart is a drawn control designed to display multiple bar charts within a single charting view. +It enables the visualization of grouped or stacked data, making it an ideal tool for comparing multiple datasets across categories.

+

This class inherits from BaseChart, leveraging core charting functionality while adding features specific to bar chart rendering.

+
+
+ +
+
public sealed class MultiBarChart : BaseChart, INotifyPropertyChanged, IVisualTreeElement, IEffectControlProvider, IToolTipElement, IContextFlyoutElement, IAnimatable, IViewController, IVisualElementController, IElementController, IGestureController, IGestureRecognizers, IPropertyMapperView, IHotReloadableView, IReplaceableView, IGraphicsView, IView, IElement, ITransform, IDisposable
+
+ + + + +
+
Inheritance
+
+ + + + + + + + +
MultiBarChart
+
+
+ +
+
Implements
+
+ + + + + + + + + + + + + + + + + + + +
+
+ + +
+
Inherited Members
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + +

Constructors +

+ + + + +

+ MultiBarChart() + +

+ +
+
+ +
+
public MultiBarChart()
+
+ + + + + + + + + + + + + +

Fields +

+ + + +

+ AutoCalculateItemSeparationMarginProperty + +

+ +
+
+ +
+
public static readonly BindableProperty AutoCalculateItemSeparationMarginProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ BarsCornerRadiusProperty + +

+ +
+
+ +
+
public static readonly BindableProperty BarsCornerRadiusProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ ColumnNamesProperty + +

+ +
+
+ +
+
public static readonly BindableProperty ColumnNamesProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ EntriesProperty + +

+ +
+
+ +
+
public static readonly BindableProperty EntriesProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ GroupStylesProperty + +

+ +
+
+ +
+
public static readonly BindableProperty GroupStylesProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ ItemSeparationMarginProperty + +

+ +
+
+ +
+
public static readonly BindableProperty ItemSeparationMarginProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + +

Properties +

+ + + + +

+ AutoCalculateItemSeparationMargin + +

+ +

Gets or sets the separation margin between each item. Default is 8

+
+
+ +
+
public bool AutoCalculateItemSeparationMargin { get; set; }
+
+ + + + + +

Property Value

+
+
bool
+
+
+ + + + + + + + + + +

+ BarsCornerRadius + +

+ +
+
+ +
+
public float BarsCornerRadius { get; set; }
+
+ + + + + +

Property Value

+
+
float
+
+
+ + + + + + + + + + +

+ ColumnNames + +

+ +
+
+ +
+
public ObservableCollection<string> ColumnNames { get; set; }
+
+ + + + + +

Property Value

+
+
ObservableCollection<string>
+
+
+ + + + + + + + + + +

+ Entries + +

+ +
+
+ +
+
public ObservableCollection<ChartItem> Entries { get; set; }
+
+ + + + + +

Property Value

+
+
ObservableCollection<ChartItem>
+
+
+ + + + + + + + + + +

+ GroupStyles + +

+ +
+
+ +
+
public ObservableCollection<ChartGroupStyle> GroupStyles { get; set; }
+
+ + + + + +

Property Value

+
+
ObservableCollection<ChartGroupStyle>
+
+
+ + + + + + + + + + +

+ ItemSeparationMargin + +

+ +

Gets or sets the separation margin between each item. Default is 8

+
+
+ +
+
public float ItemSeparationMargin { get; set; }
+
+ + + + + +

Property Value

+
+
float
+
+
+ + + + + + + + + +
+ + + + +
+ +
+ +
+
+ +
+ + + + diff --git a/docs/_site/api/AlohaKit.Controls.MultiBarChartDrawable.html b/docs/_site/api/AlohaKit.Controls.MultiBarChartDrawable.html new file mode 100644 index 0000000..f99c9c2 --- /dev/null +++ b/docs/_site/api/AlohaKit.Controls.MultiBarChartDrawable.html @@ -0,0 +1,570 @@ + + + + + Class MultiBarChartDrawable | alohakit.controls + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+
+
Table of Contents
+ +
+
+ +
+
+
+ +
+
+ + + +
+ +
+ + + +

+Class MultiBarChartDrawable +

+ +
+
Namespace
AlohaKit.Controls
+
Assembly
AlohaKit.dll
+
+ +
+
+ +
+
public sealed class MultiBarChartDrawable : BaseChartDrawable, IDrawable, IDisposable
+
+ + + + +
+
Inheritance
+
+ + +
MultiBarChartDrawable
+
+
+ +
+
Implements
+
+ + +
+
+ + +
+
Inherited Members
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + +

Properties +

+ + + + +

+ AutoCalculateItemSeparationMargin + +

+ +

Indicates if control will calculate by itself left and right bar margins based on the group entries.

+
+
+ +
+
public bool AutoCalculateItemSeparationMargin { get; set; }
+
+ + + + + +

Property Value

+
+
bool
+
+
+ + + + + + + + + + +

+ BarsCornerRadius + +

+ +

Border radius to use when drawing each bar

+
+
+ +
+
public float BarsCornerRadius { get; set; }
+
+ + + + + +

Property Value

+
+
float
+
+
+ + + + + + + + + + +

+ BarsFillColor + +

+ +

Gets or sets the color to use when drawing each bar

+
+
+ +
+
public Color BarsFillColor { get; set; }
+
+ + + + + +

Property Value

+
+
Color
+
+
+ + + + + + + + + + +

+ ColumnNames + +

+ +
+
+ +
+
public ObservableCollection<string> ColumnNames { get; set; }
+
+ + + + + +

Property Value

+
+
ObservableCollection<string>
+
+
+ + + + + + + + + + +

+ GroupStyles + +

+ +
+
+ +
+
public ObservableCollection<ChartGroupStyle> GroupStyles { get; set; }
+
+ + + + + +

Property Value

+
+
ObservableCollection<ChartGroupStyle>
+
+
+ + + + + + + + +

Methods +

+ + + + +

+ Dispose() + +

+ +

Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.

+
+
+ +
+
public override void Dispose()
+
+ + + + + + + + + + + + + + + +

+ DrawChart(ICanvas, RectF) + +

+ +

Calculates and draws the current chart with the Entries[] data

+
+
+ +
+
public override void DrawChart(ICanvas canvas, RectF dirtyRect)
+
+ +

Parameters

+
+
canvas ICanvas
+

Current canvas

+
+
dirtyRect RectF
+

Current canvas rect

+
+
+ + + + + + + + + + + + + + +

+ DrawVerticalStepLines(ICanvas, PointF[], float, float) + +

+ +
+
+ +
+
protected override void DrawVerticalStepLines(ICanvas canvas, PointF[] points, float origin, float maxPositiveValue)
+
+ +

Parameters

+
+
canvas ICanvas
+
+
points PointF[]
+
+
origin float
+
+
maxPositiveValue float
+
+
+ + + + + + + + + + + + + + +

+ Entry_PropertyChanged(object, PropertyChangedEventArgs) + +

+ +
+
+ +
+
protected override void Entry_PropertyChanged(object sender, PropertyChangedEventArgs e)
+
+ +

Parameters

+
+
sender object
+
+
e PropertyChangedEventArgs
+
+
+ + + + + + + + + + + + + +
+ + + + +
+ +
+ +
+
+ +
+ + + + diff --git a/docs/_site/api/AlohaKit.Controls.MultiLineChartDrawable.html b/docs/_site/api/AlohaKit.Controls.MultiLineChartDrawable.html new file mode 100644 index 0000000..7677270 --- /dev/null +++ b/docs/_site/api/AlohaKit.Controls.MultiLineChartDrawable.html @@ -0,0 +1,832 @@ + + + + + Class MultiLineChartDrawable | alohakit.controls + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+
+
Table of Contents
+ +
+
+ +
+
+
+ +
+
+ + + +
+ +
+ + + +

+Class MultiLineChartDrawable +

+ +
+
Namespace
AlohaKit.Controls
+
Assembly
AlohaKit.dll
+
+ +
+
+ +
+
public class MultiLineChartDrawable : BaseChartDrawable, IDrawable, IDisposable
+
+ + + + +
+
Inheritance
+
+ + +
MultiLineChartDrawable
+
+
+ +
+
Implements
+
+ + +
+
+ + +
+
Inherited Members
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + +

Properties +

+ + + + +

+ ColumnNames + +

+ +
+
+ +
+
public ObservableCollection<string> ColumnNames { get; set; }
+
+ + + + + +

Property Value

+
+
ObservableCollection<string>
+
+
+ + + + + + + + + + +

+ CurveFactor + +

+ +

Sets how 'curvy' the bezier curve will be when drawn. Accepts values between 0-1. Default is 0.6

+
+
+ +
+
public float CurveFactor { get; set; }
+
+ + + + + +

Property Value

+
+
float
+
+
+ + + + + + + + + + +

+ ExpandAndFillBackgroundCurvePath + +

+ +

If true Bezier curve Background Path color will expand and fill when drawn.

+
+
+ +
+
public bool ExpandAndFillBackgroundCurvePath { get; set; }
+
+ + + + + +

Property Value

+
+
bool
+
+
+ + + + + + + + + + +

+ FillCurveColor + +

+ +

Gets or sets the color to use when filling Curve serie

+
+
+ +
+
public Color FillCurveColor { get; set; }
+
+ + + + + +

Property Value

+
+
Color
+
+
+ + + + + + + + + + +

+ GroupStyles + +

+ +
+
+ +
+
public ObservableCollection<ChartGroupStyle> GroupStyles { get; set; }
+
+ + + + + +

Property Value

+
+
ObservableCollection<ChartGroupStyle>
+
+
+ + + + + + + + + + +

+ IsCurveBackgroundFilled + +

+ +

Gets or sets if the curve will have a solid color background when drawn.

+
+
+ +
+
public bool IsCurveBackgroundFilled { get; set; }
+
+ + + + + +

Property Value

+
+
bool
+
+
+ + + + + + + + + + +

+ LineColor + +

+ +

Gets or sets the color to use when drawing chart lines.

+
+
+ +
+
public Color LineColor { get; set; }
+
+ + + + + +

Property Value

+
+
Color
+
+
+ + + + + + + + + + +

+ PointSize + +

+ +

Gets or sets the radius for each point.

+
+
+ +
+
public float PointSize { get; set; }
+
+ + + + + +

Property Value

+
+
float
+
+
+ + + + + + + + + + +

+ ShowPointsForCurveStyle + +

+ +

If true and Style prop equals to 'Curve' points will be shown when drawing cubic bezier

+
+
+ +
+
public bool ShowPointsForCurveStyle { get; set; }
+
+ + + + + +

Property Value

+
+
bool
+
+
+ + + + + + + + + + +

+ Style + +

+ +

Defines the style for the current LineChart

+
+
+ +
+
public ChartEnums.LineChartStyle Style { get; set; }
+
+ + + + + +

Property Value

+
+
ChartEnums.LineChartStyle
+
+
+ + + + + + + + +

Methods +

+ + + + +

+ Dispose() + +

+ +

Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.

+
+
+ +
+
public override void Dispose()
+
+ + + + + + + + + + + + + + + +

+ DrawChart(ICanvas, RectF) + +

+ +

Calculates and draws the current chart with the Entries[] data

+
+
+ +
+
public override void DrawChart(ICanvas canvas, RectF dirtyRect)
+
+ +

Parameters

+
+
canvas ICanvas
+

Current canvas

+
+
dirtyRect RectF
+

Current canvas rect

+
+
+ + + + + + + + + + + + + + +

+ DrawVerticalStepLines(ICanvas, PointF[], float, float) + +

+ +
+
+ +
+
protected override void DrawVerticalStepLines(ICanvas canvas, PointF[] points, float origin, float maxPositiveValue)
+
+ +

Parameters

+
+
canvas ICanvas
+
+
points PointF[]
+
+
origin float
+
+
maxPositiveValue float
+
+
+ + + + + + + + + + + + + + +

+ Entry_PropertyChanged(object, PropertyChangedEventArgs) + +

+ +
+
+ +
+
protected override void Entry_PropertyChanged(object sender, PropertyChangedEventArgs e)
+
+ +

Parameters

+
+
sender object
+
+
e PropertyChangedEventArgs
+
+
+ + + + + + + + + + + + + +
+ + + + +
+ +
+ +
+
+ +
+ + + + diff --git a/docs/_site/api/AlohaKit.Controls.MultiLineChartView.html b/docs/_site/api/AlohaKit.Controls.MultiLineChartView.html new file mode 100644 index 0000000..916b0b3 --- /dev/null +++ b/docs/_site/api/AlohaKit.Controls.MultiLineChartView.html @@ -0,0 +1,1442 @@ + + + + + Class MultiLineChartView | alohakit.controls + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+
+
Table of Contents
+ +
+
+ +
+
+
+ +
+
+ + + +
+ +
+ + + +

+Class MultiLineChartView +

+ +
+
Namespace
AlohaKit.Controls
+
Assembly
AlohaKit.dll
+
+ +

The MultiLineChartView is a drawn control for displaying multiple line charts within a single view. +This enables the visualization of multiple data series, each represented by a separate line, on a shared coordinate system.

+

The class is derived from BaseChart, allowing it to inherit essential charting properties and behaviors while adding specialized features for multi-line visualization.

+
+
+ +
+
public sealed class MultiLineChartView : BaseChart, INotifyPropertyChanged, IVisualTreeElement, IEffectControlProvider, IToolTipElement, IContextFlyoutElement, IAnimatable, IViewController, IVisualElementController, IElementController, IGestureController, IGestureRecognizers, IPropertyMapperView, IHotReloadableView, IReplaceableView, IGraphicsView, IView, IElement, ITransform, IDisposable
+
+ + + + +
+
Inheritance
+
+ + + + + + + + +
MultiLineChartView
+
+
+ +
+
Implements
+
+ + + + + + + + + + + + + + + + + + + +
+
+ + +
+
Inherited Members
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + +

Constructors +

+ + + + +

+ MultiLineChartView() + +

+ +
+
+ +
+
public MultiLineChartView()
+
+ + + + + + + + + + + + + +

Fields +

+ + + +

+ ChartStyleProperty + +

+ +
+
+ +
+
public static readonly BindableProperty ChartStyleProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ ColumnNamesProperty + +

+ +
+
+ +
+
public static readonly BindableProperty ColumnNamesProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ CurveFactorProperty + +

+ +
+
+ +
+
public static readonly BindableProperty CurveFactorProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ EntriesProperty + +

+ +
+
+ +
+
public static readonly BindableProperty EntriesProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ ExpandAndFillBackgroundCurvePathProperty + +

+ +
+
+ +
+
public static readonly BindableProperty ExpandAndFillBackgroundCurvePathProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ GroupStylesProperty + +

+ +
+
+ +
+
public static readonly BindableProperty GroupStylesProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ IsCurveBackgroundFilledProperty + +

+ +
+
+ +
+
public static readonly BindableProperty IsCurveBackgroundFilledProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ PointSizeProperty + +

+ +
+
+ +
+
public static readonly BindableProperty PointSizeProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ ShowPointsForCurveStyleProperty + +

+ +
+
+ +
+
public static readonly BindableProperty ShowPointsForCurveStyleProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + +

Properties +

+ + + + +

+ ChartStyle + +

+ +

Defines the style for the current LineChart

+
+
+ +
+
public ChartEnums.LineChartStyle ChartStyle { get; set; }
+
+ + + + + +

Property Value

+
+
ChartEnums.LineChartStyle
+
+
+ + + + + + + + + + +

+ ColumnNames + +

+ +
+
+ +
+
public ObservableCollection<string> ColumnNames { get; set; }
+
+ + + + + +

Property Value

+
+
ObservableCollection<string>
+
+
+ + + + + + + + + + +

+ CurveFactor + +

+ +

Sets how 'curvy' the bezier curve will be when drawn. Accepts values between 0-1. Default is 0.6

+
+
+ +
+
public float CurveFactor { get; set; }
+
+ + + + + +

Property Value

+
+
float
+
+
+ + + + + + + + + + +

+ Entries + +

+ +
+
+ +
+
public ObservableCollection<ChartItem> Entries { get; set; }
+
+ + + + + +

Property Value

+
+
ObservableCollection<ChartItem>
+
+
+ + + + + + + + + + +

+ ExpandAndFillBackgroundCurvePath + +

+ +

If true Bezier curve Background Path color will expand and fill when drawn.

+
+
+ +
+
public bool ExpandAndFillBackgroundCurvePath { get; set; }
+
+ + + + + +

Property Value

+
+
bool
+
+
+ + + + + + + + + + +

+ GroupStyles + +

+ +
+
+ +
+
public ObservableCollection<ChartGroupStyle> GroupStyles { get; set; }
+
+ + + + + +

Property Value

+
+
ObservableCollection<ChartGroupStyle>
+
+
+ + + + + + + + + + +

+ IsCurveBackgroundFilled + +

+ +

Gets or sets if the curve path will have a solid color background when drawn.

+
+
+ +
+
public bool IsCurveBackgroundFilled { get; set; }
+
+ + + + + +

Property Value

+
+
bool
+
+
+ + + + + + + + + + +

+ PointSize + +

+ +

Gets or sets the radius for each point.

+
+
+ +
+
public float PointSize { get; set; }
+
+ + + + + +

Property Value

+
+
float
+
+
+ + + + + + + + + + +

+ ShowPointsForCurveStyle + +

+ +

If true and Style prop equals to 'Curve' points will be shown when drawing cubic bezier

+
+
+ +
+
public bool ShowPointsForCurveStyle { get; set; }
+
+ + + + + +

Property Value

+
+
bool
+
+
+ + + + + + + + + +
+ + + + +
+ +
+ +
+
+ +
+ + + + diff --git a/docs/_site/api/AlohaKit.Controls.NumericUpDown.html b/docs/_site/api/AlohaKit.Controls.NumericUpDown.html new file mode 100644 index 0000000..3d07019 --- /dev/null +++ b/docs/_site/api/AlohaKit.Controls.NumericUpDown.html @@ -0,0 +1,1628 @@ + + + + + Class NumericUpDown | alohakit.controls + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+
+
Table of Contents
+ +
+
+ +
+
+
+ +
+
+ + + +
+ +
+ + + +

+Class NumericUpDown +

+ +
+
Namespace
AlohaKit.Controls
+
Assembly
AlohaKit.dll
+
+ +

The NumericUpDown is a drawn control for selecting numeric values by incrementing or decrementing them with +interactive buttons or input.

+
+
+ +
+
public class NumericUpDown : GraphicsView, INotifyPropertyChanged, IVisualTreeElement, IEffectControlProvider, IToolTipElement, IContextFlyoutElement, IAnimatable, IViewController, IVisualElementController, IElementController, IGestureController, IGestureRecognizers, IPropertyMapperView, IHotReloadableView, IReplaceableView, IGraphicsView, IView, IElement, ITransform
+
+ + + + +
+
Inheritance
+
+ + + + + + + +
NumericUpDown
+
+
+ +
+
Implements
+
+ + + + + + + + + + + + + + + + + + +
+
+ + +
+
Inherited Members
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + +

Constructors +

+ + + + +

+ NumericUpDown() + +

+ +
+
+ +
+
public NumericUpDown()
+
+ + + + + + + + + + + + + +

Fields +

+ + + +

+ BackgroundProperty + +

+ +
+
+ +
+
public static readonly BindableProperty BackgroundProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ ColorProperty + +

+ +
+
+ +
+
public static readonly BindableProperty ColorProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ FontSizeProperty + +

+ +
+
+ +
+
public static readonly BindableProperty FontSizeProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ IntervalProperty + +

+ +
+
+ +
+
public static readonly BindableProperty IntervalProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ MaximumColorProperty + +

+ +
+
+ +
+
public static readonly BindableProperty MaximumColorProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ MaximumProperty + +

+ +
+
+ +
+
public static readonly BindableProperty MaximumProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ MaximumTextColorProperty + +

+ +
+
+ +
+
public static readonly BindableProperty MaximumTextColorProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ MinimumColorProperty + +

+ +
+
+ +
+
public static readonly BindableProperty MinimumColorProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ MinimumProperty + +

+ +
+
+ +
+
public static readonly BindableProperty MinimumProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ MinimumTextColorProperty + +

+ +
+
+ +
+
public static readonly BindableProperty MinimumTextColorProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ TextColorProperty + +

+ +
+
+ +
+
public static readonly BindableProperty TextColorProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ ValueProperty + +

+ +
+
+ +
+
public static readonly BindableProperty ValueProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + +

Properties +

+ + + + +

+ Background + +

+ +
+
+ +
+
public Brush Background { get; set; }
+
+ + + + + +

Property Value

+
+
Brush
+
+
+ + + + + + + + + + +

+ Color + +

+ +
+
+ +
+
public Color Color { get; set; }
+
+ + + + + +

Property Value

+
+
Color
+
+
+ + + + + + + + + + +

+ FontSize + +

+ +
+
+ +
+
public double FontSize { get; set; }
+
+ + + + + +

Property Value

+
+
double
+
+
+ + + + + + + + + + +

+ Interval + +

+ +
+
+ +
+
public double Interval { get; set; }
+
+ + + + + +

Property Value

+
+
double
+
+
+ + + + + + + + + + +

+ Maximum + +

+ +
+
+ +
+
public double Maximum { get; set; }
+
+ + + + + +

Property Value

+
+
double
+
+
+ + + + + + + + + + +

+ MaximumColor + +

+ +
+
+ +
+
public Brush MaximumColor { get; set; }
+
+ + + + + +

Property Value

+
+
Brush
+
+
+ + + + + + + + + + +

+ MaximumTextColor + +

+ +
+
+ +
+
public Color MaximumTextColor { get; set; }
+
+ + + + + +

Property Value

+
+
Color
+
+
+ + + + + + + + + + +

+ Minimum + +

+ +
+
+ +
+
public double Minimum { get; set; }
+
+ + + + + +

Property Value

+
+
double
+
+
+ + + + + + + + + + +

+ MinimumColor + +

+ +
+
+ +
+
public Brush MinimumColor { get; set; }
+
+ + + + + +

Property Value

+
+
Brush
+
+
+ + + + + + + + + + +

+ MinimumTextColor + +

+ +
+
+ +
+
public Color MinimumTextColor { get; set; }
+
+ + + + + +

Property Value

+
+
Color
+
+
+ + + + + + + + + + +

+ NumericUpDownDrawable + +

+ +
+
+ +
+
public NumericUpDownDrawable NumericUpDownDrawable { get; set; }
+
+ + + + + +

Property Value

+
+
NumericUpDownDrawable
+
+
+ + + + + + + + + + +

+ TextColor + +

+ +
+
+ +
+
public Color TextColor { get; set; }
+
+ + + + + +

Property Value

+
+
Color
+
+
+ + + + + + + + + + +

+ Value + +

+ +
+
+ +
+
public double Value { get; set; }
+
+ + + + + +

Property Value

+
+
double
+
+
+ + + + + + + + +

Methods +

+ + + + +

+ OnParentSet() + +

+ +

Raises the (internal) ParentSet event.

+
+
+ +
+
protected override void OnParentSet()
+
+ + + + + + + + + +

Remarks

+

Will set the NavigationProxy's inner navigation object to closest topmost element capable of handling navigation calls.

+
+ + +
+
See Also
+
+ +
+
+ + +

Events +

+ + + +

+ ValueChanged + +

+ +
+
+ +
+
public event EventHandler<ValueChangedEventArgs> ValueChanged
+
+ + + + + + +

Event Type

+
+
EventHandler<ValueChangedEventArgs>
+
+
+ + + + + + + + +
+ + + + +
+ +
+ +
+
+ +
+ + + + diff --git a/docs/_site/api/AlohaKit.Controls.NumericUpDownDrawable.html b/docs/_site/api/AlohaKit.Controls.NumericUpDownDrawable.html new file mode 100644 index 0000000..47549fb --- /dev/null +++ b/docs/_site/api/AlohaKit.Controls.NumericUpDownDrawable.html @@ -0,0 +1,729 @@ + + + + + Class NumericUpDownDrawable | alohakit.controls + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+
+
Table of Contents
+ +
+
+ +
+
+
+ +
+
+ + + +
+ +
+ + + +

+Class NumericUpDownDrawable +

+ +
+
Namespace
AlohaKit.Controls
+
Assembly
AlohaKit.dll
+
+ +
+
+ +
+
public class NumericUpDownDrawable : IDrawable
+
+ + + + +
+
Inheritance
+
+ +
NumericUpDownDrawable
+
+
+ +
+
Implements
+
+ +
+
+ + +
+
Inherited Members
+
+ + + + + + + +
+ + + + + + +

Properties +

+ + + + +

+ BackgroundPaint + +

+ +
+
+ +
+
public Paint BackgroundPaint { get; set; }
+
+ + + + + +

Property Value

+
+
Paint
+
+
+ + + + + + + + + + +

+ Color + +

+ +
+
+ +
+
public Color Color { get; set; }
+
+ + + + + +

Property Value

+
+
Color
+
+
+ + + + + + + + + + +

+ FontSize + +

+ +
+
+ +
+
public double FontSize { get; set; }
+
+ + + + + +

Property Value

+
+
double
+
+
+ + + + + + + + + + +

+ Maximum + +

+ +
+
+ +
+
public double Maximum { get; set; }
+
+ + + + + +

Property Value

+
+
double
+
+
+ + + + + + + + + + +

+ MaximumColorPaint + +

+ +
+
+ +
+
public Paint MaximumColorPaint { get; set; }
+
+ + + + + +

Property Value

+
+
Paint
+
+
+ + + + + + + + + + +

+ MaximumTextColor + +

+ +
+
+ +
+
public Color MaximumTextColor { get; set; }
+
+ + + + + +

Property Value

+
+
Color
+
+
+ + + + + + + + + + +

+ Minimum + +

+ +
+
+ +
+
public double Minimum { get; set; }
+
+ + + + + +

Property Value

+
+
double
+
+
+ + + + + + + + + + +

+ MinimumColorPaint + +

+ +
+
+ +
+
public Paint MinimumColorPaint { get; set; }
+
+ + + + + +

Property Value

+
+
Paint
+
+
+ + + + + + + + + + +

+ MinimumTextColor + +

+ +
+
+ +
+
public Color MinimumTextColor { get; set; }
+
+ + + + + +

Property Value

+
+
Color
+
+
+ + + + + + + + + + +

+ TextColor + +

+ +
+
+ +
+
public Color TextColor { get; set; }
+
+ + + + + +

Property Value

+
+
Color
+
+
+ + + + + + + + + + +

+ Value + +

+ +
+
+ +
+
public double Value { get; set; }
+
+ + + + + +

Property Value

+
+
double
+
+
+ + + + + + + + +

Methods +

+ + + + +

+ Draw(ICanvas, RectF) + +

+ +
+
+ +
+
public void Draw(ICanvas canvas, RectF dirtyRect)
+
+ +

Parameters

+
+
canvas ICanvas
+
+
dirtyRect RectF
+
+
+ + + + + + + + + + + + + + +

+ DrawBackground(ICanvas, RectF) + +

+ +
+
+ +
+
public virtual void DrawBackground(ICanvas canvas, RectF dirtyRect)
+
+ +

Parameters

+
+
canvas ICanvas
+
+
dirtyRect RectF
+
+
+ + + + + + + + + + + + + + +

+ DrawBorder(ICanvas, RectF) + +

+ +
+
+ +
+
public virtual void DrawBorder(ICanvas canvas, RectF dirtyRect)
+
+ +

Parameters

+
+
canvas ICanvas
+
+
dirtyRect RectF
+
+
+ + + + + + + + + + + + + + +

+ DrawMaximum(ICanvas, RectF) + +

+ +
+
+ +
+
public virtual void DrawMaximum(ICanvas canvas, RectF dirtyRect)
+
+ +

Parameters

+
+
canvas ICanvas
+
+
dirtyRect RectF
+
+
+ + + + + + + + + + + + + + +

+ DrawMinus(ICanvas, RectF) + +

+ +
+
+ +
+
public virtual void DrawMinus(ICanvas canvas, RectF dirtyRect)
+
+ +

Parameters

+
+
canvas ICanvas
+
+
dirtyRect RectF
+
+
+ + + + + + + + + + + + + + +

+ DrawValue(ICanvas, RectF) + +

+ +
+
+ +
+
public virtual void DrawValue(ICanvas canvas, RectF dirtyRect)
+
+ +

Parameters

+
+
canvas ICanvas
+
+
dirtyRect RectF
+
+
+ + + + + + + + + + + + + +
+ + + + +
+ +
+ +
+
+ +
+ + + + diff --git a/docs/_site/api/AlohaKit.Controls.PieChart.html b/docs/_site/api/AlohaKit.Controls.PieChart.html new file mode 100644 index 0000000..09ffcfe --- /dev/null +++ b/docs/_site/api/AlohaKit.Controls.PieChart.html @@ -0,0 +1,1044 @@ + + + + + Class PieChart | alohakit.controls + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+
+
Table of Contents
+ +
+
+ +
+
+
+ +
+
+ + + +
+ +
+ + + +

+Class PieChart +

+ +
+
Namespace
AlohaKit.Controls
+
Assembly
AlohaKit.dll
+
+ +

The PieChart is a drawn control for rendering pie charts to visually represent data as portions of a circle.

+
+
+ +
+
public class PieChart : GraphicsView, INotifyPropertyChanged, IVisualTreeElement, IEffectControlProvider, IToolTipElement, IContextFlyoutElement, IAnimatable, IViewController, IVisualElementController, IElementController, IGestureController, IGestureRecognizers, IPropertyMapperView, IHotReloadableView, IReplaceableView, IGraphicsView, IView, IElement, ITransform
+
+ + + + +
+
Inheritance
+
+ + + + + + + +
PieChart
+
+
+ +
+
Implements
+
+ + + + + + + + + + + + + + + + + + +
+
+ + +
+
Inherited Members
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + +

Constructors +

+ + + + +

+ PieChart() + +

+ +
+
+ +
+
public PieChart()
+
+ + + + + + + + + + + + + +

Fields +

+ + + +

+ BackgroundProperty + +

+ +
+
+ +
+
public static readonly BindableProperty BackgroundProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ ItemsSourceProperty + +

+ +
+
+ +
+
public static readonly BindableProperty ItemsSourceProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ ShowLabelsProperty + +

+ +
+
+ +
+
public static readonly BindableProperty ShowLabelsProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + +

Properties +

+ + + + +

+ Background + +

+ +
+
+ +
+
public Brush Background { get; set; }
+
+ + + + + +

Property Value

+
+
Brush
+
+
+ + + + + + + + + + +

+ ItemsSource + +

+ +
+
+ +
+
public Dictionary<string, float> ItemsSource { get; set; }
+
+ + + + + +

Property Value

+
+
Dictionary<string, float>
+
+
+ + + + + + + + + + +

+ PieChartDrawable + +

+ +
+
+ +
+
public PieChartDrawable PieChartDrawable { get; set; }
+
+ + + + + +

Property Value

+
+
PieChartDrawable
+
+
+ + + + + + + + + + +

+ ShowLabels + +

+ +
+
+ +
+
public bool ShowLabels { get; set; }
+
+ + + + + +

Property Value

+
+
bool
+
+
+ + + + + + + + +

Methods +

+ + + + +

+ OnParentSet() + +

+ +

Raises the (internal) ParentSet event.

+
+
+ +
+
protected override void OnParentSet()
+
+ + + + + + + + + +

Remarks

+

Will set the NavigationProxy's inner navigation object to closest topmost element capable of handling navigation calls.

+
+ + +
+
See Also
+
+ +
+
+ + + +
+ + + + +
+ +
+ +
+
+ +
+ + + + diff --git a/docs/_site/api/AlohaKit.Controls.PieChartDrawable.html b/docs/_site/api/AlohaKit.Controls.PieChartDrawable.html new file mode 100644 index 0000000..444f346 --- /dev/null +++ b/docs/_site/api/AlohaKit.Controls.PieChartDrawable.html @@ -0,0 +1,415 @@ + + + + + Class PieChartDrawable | alohakit.controls + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+
+
Table of Contents
+ +
+
+ +
+
+
+ +
+
+ + + +
+ +
+ + + +

+Class PieChartDrawable +

+ +
+
Namespace
AlohaKit.Controls
+
Assembly
AlohaKit.dll
+
+ +
+
+ +
+
public class PieChartDrawable : IDrawable
+
+ + + + +
+
Inheritance
+
+ +
PieChartDrawable
+
+
+ +
+
Implements
+
+ +
+
+ + +
+
Inherited Members
+
+ + + + + + + +
+ + + + + + +

Properties +

+ + + + +

+ BackgroundPaint + +

+ +
+
+ +
+
public Paint BackgroundPaint { get; set; }
+
+ + + + + +

Property Value

+
+
Paint
+
+
+ + + + + + + + + + +

+ ItemsSource + +

+ +
+
+ +
+
public Dictionary<string, float> ItemsSource { get; set; }
+
+ + + + + +

Property Value

+
+
Dictionary<string, float>
+
+
+ + + + + + + + + + +

+ ShowLabels + +

+ +
+
+ +
+
public bool ShowLabels { get; set; }
+
+ + + + + +

Property Value

+
+
bool
+
+
+ + + + + + + + +

Methods +

+ + + + +

+ Draw(ICanvas, RectF) + +

+ +
+
+ +
+
public void Draw(ICanvas canvas, RectF dirtyRect)
+
+ +

Parameters

+
+
canvas ICanvas
+
+
dirtyRect RectF
+
+
+ + + + + + + + + + + + + + +

+ DrawBackground(ICanvas, RectF) + +

+ +
+
+ +
+
public virtual void DrawBackground(ICanvas canvas, RectF dirtyRect)
+
+ +

Parameters

+
+
canvas ICanvas
+
+
dirtyRect RectF
+
+
+ + + + + + + + + + + + + + +

+ DrawLabels(ICanvas, RectF) + +

+ +
+
+ +
+
public virtual void DrawLabels(ICanvas canvas, RectF dirtyRect)
+
+ +

Parameters

+
+
canvas ICanvas
+
+
dirtyRect RectF
+
+
+ + + + + + + + + + + + + + +

+ DrawSlices(ICanvas, RectF) + +

+ +
+
+ +
+
public virtual void DrawSlices(ICanvas canvas, RectF dirtyRect)
+
+ +

Parameters

+
+
canvas ICanvas
+
+
dirtyRect RectF
+
+
+ + + + + + + + + + + + + +
+ + + + +
+ +
+ +
+
+ +
+ + + + diff --git a/docs/_site/api/AlohaKit.Controls.ProgressBar.html b/docs/_site/api/AlohaKit.Controls.ProgressBar.html new file mode 100644 index 0000000..0f62e8a --- /dev/null +++ b/docs/_site/api/AlohaKit.Controls.ProgressBar.html @@ -0,0 +1,1522 @@ + + + + + Class ProgressBar | alohakit.controls + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+
+
Table of Contents
+ +
+
+ +
+
+
+ +
+
+ + + +
+ +
+ + + +

+Class ProgressBar +

+ +
+
Namespace
AlohaKit.Controls
+
Assembly
AlohaKit.dll
+
+ +

The ProgressBar class represents a customizable control for displaying the progress of a task visually.

+
+
+ +
+
public class ProgressBar : GraphicsView, INotifyPropertyChanged, IVisualTreeElement, IEffectControlProvider, IToolTipElement, IContextFlyoutElement, IAnimatable, IViewController, IVisualElementController, IElementController, IGestureController, IGestureRecognizers, IPropertyMapperView, IHotReloadableView, IReplaceableView, IGraphicsView, IView, IElement, ITransform
+
+ + + + +
+
Inheritance
+
+ + + + + + + +
ProgressBar
+
+
+ +
+
Implements
+
+ + + + + + + + + + + + + + + + + + +
+
+ + +
+
Inherited Members
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + +

Constructors +

+ + + + +

+ ProgressBar() + +

+ +
+
+ +
+
public ProgressBar()
+
+ + + + + + + + + + + + + +

Fields +

+ + + +

+ CornerRadiusProperty + +

+ +
+
+ +
+
public static readonly BindableProperty CornerRadiusProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ EasingIntervalProperty + +

+ +
+
+ +
+
public static readonly BindableProperty EasingIntervalProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ EasingProperty + +

+ +
+
+ +
+
public static readonly BindableProperty EasingProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ EnableAnimationsProperty + +

+ +
+
+ +
+
public static readonly BindableProperty EnableAnimationsProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ IsVerticalProperty + +

+ +
+
+ +
+
public static readonly BindableProperty IsVerticalProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ ProgressBrushProperty + +

+ +
+
+ +
+
public static readonly BindableProperty ProgressBrushProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ ProgressProperty + +

+ +
+
+ +
+
public static readonly BindableProperty ProgressProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ RoundCornersProperty + +

+ +
+
+ +
+
public static readonly BindableProperty RoundCornersProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ StrokeBrushProperty + +

+ +
+
+ +
+
public static readonly BindableProperty StrokeBrushProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + +

Properties +

+ + + + +

+ CornerRadius + +

+ +
+
+ +
+
public CornerRadius CornerRadius { get; set; }
+
+ + + + + +

Property Value

+
+
CornerRadius
+
+
+ + + + + + + + + + +

+ Easing + +

+ +
+
+ +
+
public Easing Easing { get; set; }
+
+ + + + + +

Property Value

+
+
Easing
+
+
+ + + + + + + + + + +

+ EasingInterval + +

+ +
+
+ +
+
public int EasingInterval { get; set; }
+
+ + + + + +

Property Value

+
+
int
+
+
+ + + + + + + + + + +

+ EnableAnimations + +

+ +
+
+ +
+
public bool EnableAnimations { get; set; }
+
+ + + + + +

Property Value

+
+
bool
+
+
+ + + + + + + + + + +

+ IsVertical + +

+ +
+
+ +
+
public bool IsVertical { get; set; }
+
+ + + + + +

Property Value

+
+
bool
+
+
+ + + + + + + + + + +

+ Progress + +

+ +
+
+ +
+
public double Progress { get; set; }
+
+ + + + + +

Property Value

+
+
double
+
+
+ + + + + + + + + + +

+ ProgressBarDrawable + +

+ +
+
+ +
+
protected ProgressBarDrawable ProgressBarDrawable { get; set; }
+
+ + + + + +

Property Value

+
+
ProgressBarDrawable
+
+
+ + + + + + + + + + +

+ ProgressBrush + +

+ +
+
+ +
+
public Brush ProgressBrush { get; set; }
+
+ + + + + +

Property Value

+
+
Brush
+
+
+ + + + + + + + + + +

+ RoundCorners + +

+ +
+
+ +
+
public bool RoundCorners { get; set; }
+
+ + + + + +

Property Value

+
+
bool
+
+
+ + + + + + + + + + +

+ StrokeBrush + +

+ +
+
+ +
+
public Brush StrokeBrush { get; set; }
+
+ + + + + +

Property Value

+
+
Brush
+
+
+ + + + + + + + +

Methods +

+ + + + +

+ OnParentChanged() + +

+ +

When overridden in a derived class, should raise the ParentChanged event.

+
+
+ +
+
protected override void OnParentChanged()
+
+ + + + + + + + + +

Remarks

+

It is the implementor's responsibility to raise the ParentChanged event.

+
+ + + + + + +

+ UpdateCornerRadius() + +

+ +
+
+ +
+
protected void UpdateCornerRadius()
+
+ + + + + + + + + + + + + + + +

+ UpdateProgress() + +

+ +
+
+ +
+
protected void UpdateProgress()
+
+ + + + + + + + + + + + + + + +

+ UpdateRoundCorners() + +

+ +
+
+ +
+
protected void UpdateRoundCorners()
+
+ + + + + + + + + + + + + +

Events +

+ + + +

+ ValueChanged + +

+ +
+
+ +
+
public event EventHandler<ValueChangedEventArgs> ValueChanged
+
+ + + + + + +

Event Type

+
+
EventHandler<ValueChangedEventArgs>
+
+
+ + + + + + + + +
+ + + + +
+ +
+ +
+
+ +
+ + + + diff --git a/docs/_site/api/AlohaKit.Controls.ProgressBarDrawable.html b/docs/_site/api/AlohaKit.Controls.ProgressBarDrawable.html new file mode 100644 index 0000000..3482d46 --- /dev/null +++ b/docs/_site/api/AlohaKit.Controls.ProgressBarDrawable.html @@ -0,0 +1,506 @@ + + + + + Class ProgressBarDrawable | alohakit.controls + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+
+
Table of Contents
+ +
+
+ +
+
+
+ +
+
+ + + +
+ +
+ + + +

+Class ProgressBarDrawable +

+ +
+
Namespace
AlohaKit.Controls
+
Assembly
AlohaKit.dll
+
+ +
+
+ +
+
public class ProgressBarDrawable : IDrawable
+
+ + + + +
+
Inheritance
+
+ +
ProgressBarDrawable
+
+
+ +
+
Implements
+
+ +
+
+ + +
+
Inherited Members
+
+ + + + + + + +
+ + + + + + +

Properties +

+ + + + +

+ CornerRadius + +

+ +
+
+ +
+
public CornerRadius CornerRadius { get; set; }
+
+ + + + + +

Property Value

+
+
CornerRadius
+
+
+ + + + + + + + + + +

+ IsAnimating + +

+ +
+
+ +
+
public bool IsAnimating { get; set; }
+
+ + + + + +

Property Value

+
+
bool
+
+
+ + + + + + + + + + +

+ IsVertical + +

+ +
+
+ +
+
public bool IsVertical { get; set; }
+
+ + + + + +

Property Value

+
+
bool
+
+
+ + + + + + + + + + +

+ Progress + +

+ +
+
+ +
+
public double Progress { get; set; }
+
+ + + + + +

Property Value

+
+
double
+
+
+ + + + + + + + + + +

+ ProgressPaint + +

+ +
+
+ +
+
public Paint ProgressPaint { get; set; }
+
+ + + + + +

Property Value

+
+
Paint
+
+
+ + + + + + + + + + +

+ StrokePaint + +

+ +
+
+ +
+
public Paint StrokePaint { get; set; }
+
+ + + + + +

Property Value

+
+
Paint
+
+
+ + + + + + + + + + +

+ Style + +

+ +
+
+ +
+
public ProgressBarStyle Style { get; set; }
+
+ + + + + +

Property Value

+
+
ProgressBarStyle
+
+
+ + + + + + + + +

Methods +

+ + + + +

+ Draw(ICanvas, RectF) + +

+ +
+
+ +
+
public void Draw(ICanvas canvas, RectF dirtyRect)
+
+ +

Parameters

+
+
canvas ICanvas
+
+
dirtyRect RectF
+
+
+ + + + + + + + + + + + + + +

+ DrawProgress(ICanvas, RectF) + +

+ +
+
+ +
+
public virtual void DrawProgress(ICanvas canvas, RectF dirtyRect)
+
+ +

Parameters

+
+
canvas ICanvas
+
+
dirtyRect RectF
+
+
+ + + + + + + + + + + + + + +

+ DrawTrack(ICanvas, RectF) + +

+ +
+
+ +
+
public virtual void DrawTrack(ICanvas canvas, RectF dirtyRect)
+
+ +

Parameters

+
+
canvas ICanvas
+
+
dirtyRect RectF
+
+
+ + + + + + + + + + + + + +
+ + + + +
+ +
+ +
+
+ +
+ + + + diff --git a/docs/_site/api/AlohaKit.Controls.ProgressBarStyle.html b/docs/_site/api/AlohaKit.Controls.ProgressBarStyle.html new file mode 100644 index 0000000..4d83a16 --- /dev/null +++ b/docs/_site/api/AlohaKit.Controls.ProgressBarStyle.html @@ -0,0 +1,155 @@ + + + + + Enum ProgressBarStyle | alohakit.controls + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+
+
Table of Contents
+ +
+
+ +
+
+
+ +
+
+ + + +
+ +
+ + + + +

+Enum ProgressBarStyle +

+ +
+
Namespace
AlohaKit.Controls
+
Assembly
AlohaKit.dll
+
+ +

The ProgressBarStyle enumeration defines the visual style options for rendering a progress bar. +This provides developers with a simple way to specify whether the progress bar appears with sharp corners or rounded edges.

+
+
+ +
+
public enum ProgressBarStyle
+
+ + + + + + + + + +

Fields +

+
+
Rounded = 1
+ +
+
Square = 0
+ +
+
+ + + +
+ + + + +
+ +
+ +
+
+ +
+ + + + diff --git a/docs/_site/api/AlohaKit.Controls.ProgressRadial.html b/docs/_site/api/AlohaKit.Controls.ProgressRadial.html new file mode 100644 index 0000000..629cd58 --- /dev/null +++ b/docs/_site/api/AlohaKit.Controls.ProgressRadial.html @@ -0,0 +1,1408 @@ + + + + + Class ProgressRadial | alohakit.controls + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+
+
Table of Contents
+ +
+
+ +
+
+
+ +
+
+ + + +
+ +
+ + + +

+Class ProgressRadial +

+ +
+
Namespace
AlohaKit.Controls
+
Assembly
AlohaKit.dll
+
+ +

The ProgressRadial is a drawn control designed to visually represent progress in a circular or radial form. +It can be used to display percentages or completion statuses, such as task progress, loading indicators, or performance metrics.

+
+
+ +
+
public class ProgressRadial : GraphicsView, INotifyPropertyChanged, IVisualTreeElement, IEffectControlProvider, IToolTipElement, IContextFlyoutElement, IAnimatable, IViewController, IVisualElementController, IElementController, IGestureController, IGestureRecognizers, IPropertyMapperView, IHotReloadableView, IReplaceableView, IGraphicsView, IView, IElement, ITransform
+
+ + + + +
+
Inheritance
+
+ + + + + + + +
ProgressRadial
+
+
+ +
+
Implements
+
+ + + + + + + + + + + + + + + + + + +
+
+ + +
+
Inherited Members
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + +

Constructors +

+ + + + +

+ ProgressRadial() + +

+ +
+
+ +
+
public ProgressRadial()
+
+ + + + + + + + + + + + + +

Fields +

+ + + +

+ BackgroundColorProperty + +

+ +
+
+ +
+
public static readonly BindableProperty BackgroundColorProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ DirectionProperty + +

+ +
+
+ +
+
public static readonly BindableProperty DirectionProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ FontSizeProperty + +

+ +
+
+ +
+
public static readonly BindableProperty FontSizeProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ MaximumProperty + +

+ +
+
+ +
+
public static readonly BindableProperty MaximumProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ MinimumProperty + +

+ +
+
+ +
+
public static readonly BindableProperty MinimumProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ ProgressColorProperty + +

+ +
+
+ +
+
public static readonly BindableProperty ProgressColorProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ StrokeColorProperty + +

+ +
+
+ +
+
public static readonly BindableProperty StrokeColorProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ TextColorProperty + +

+ +
+
+ +
+
public static readonly BindableProperty TextColorProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ ValueProperty + +

+ +
+
+ +
+
public static readonly BindableProperty ValueProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + +

Properties +

+ + + + +

+ BackgroundColor + +

+ +
+
+ +
+
public Color BackgroundColor { get; set; }
+
+ + + + + +

Property Value

+
+
Color
+
+
+ + + + + + + + + + +

+ Direction + +

+ +
+
+ +
+
public ProgressRadialDirection Direction { get; set; }
+
+ + + + + +

Property Value

+
+
ProgressRadialDirection
+
+
+ + + + + + + + + + +

+ FontSize + +

+ +
+
+ +
+
public double FontSize { get; set; }
+
+ + + + + +

Property Value

+
+
double
+
+
+ + + + + + + + + + +

+ Maximum + +

+ +
+
+ +
+
public int Maximum { get; set; }
+
+ + + + + +

Property Value

+
+
int
+
+
+ + + + + + + + + + +

+ Minimum + +

+ +
+
+ +
+
public int Minimum { get; set; }
+
+ + + + + +

Property Value

+
+
int
+
+
+ + + + + + + + + + +

+ ProgressColor + +

+ +
+
+ +
+
public Color ProgressColor { get; set; }
+
+ + + + + +

Property Value

+
+
Color
+
+
+ + + + + + + + + + +

+ StrokeColor + +

+ +
+
+ +
+
public Color StrokeColor { get; set; }
+
+ + + + + +

Property Value

+
+
Color
+
+
+ + + + + + + + + + +

+ TextColor + +

+ +
+
+ +
+
public Color TextColor { get; set; }
+
+ + + + + +

Property Value

+
+
Color
+
+
+ + + + + + + + + + +

+ Value + +

+ +
+
+ +
+
public int Value { get; set; }
+
+ + + + + +

Property Value

+
+
int
+
+
+ + + + + + + + +

Methods +

+ + + + +

+ OnParentChanged() + +

+ +

When overridden in a derived class, should raise the ParentChanged event.

+
+
+ +
+
protected override void OnParentChanged()
+
+ + + + + + + + + +

Remarks

+

It is the implementor's responsibility to raise the ParentChanged event.

+
+ + + + +

Events +

+ + + +

+ ValueChanged + +

+ +
+
+ +
+
public event EventHandler<ValueChangedEventArgs> ValueChanged
+
+ + + + + + +

Event Type

+
+
EventHandler<ValueChangedEventArgs>
+
+
+ + + + + + + + +
+ + + + +
+ +
+ +
+
+ +
+ + + + diff --git a/docs/_site/api/AlohaKit.Controls.ProgressRadialDirection.html b/docs/_site/api/AlohaKit.Controls.ProgressRadialDirection.html new file mode 100644 index 0000000..608fb80 --- /dev/null +++ b/docs/_site/api/AlohaKit.Controls.ProgressRadialDirection.html @@ -0,0 +1,155 @@ + + + + + Enum ProgressRadialDirection | alohakit.controls + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+
+
Table of Contents
+ +
+
+ +
+
+
+ +
+
+ + + +
+ +
+ + + + +

+Enum ProgressRadialDirection +

+ +
+
Namespace
AlohaKit.Controls
+
Assembly
AlohaKit.dll
+
+ +

The ProgressRadialDirection enumeration specifies the direction of progress rendering for radial progress components, +allowing developers to define whether progress moves clockwise or counterclockwise along the circular axis.

+
+
+ +
+
public enum ProgressRadialDirection
+
+ + + + + + + + + +

Fields +

+
+
LeftToRight = 0
+ +
+
RightToLeft = 1
+ +
+
+ + + +
+ + + + +
+ +
+ +
+
+ +
+ + + + diff --git a/docs/_site/api/AlohaKit.Controls.ProgressRadialDrawable.html b/docs/_site/api/AlohaKit.Controls.ProgressRadialDrawable.html new file mode 100644 index 0000000..58bd683 --- /dev/null +++ b/docs/_site/api/AlohaKit.Controls.ProgressRadialDrawable.html @@ -0,0 +1,634 @@ + + + + + Class ProgressRadialDrawable | alohakit.controls + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+
+
Table of Contents
+ +
+
+ +
+
+
+ +
+
+ + + +
+ +
+ + + +

+Class ProgressRadialDrawable +

+ +
+
Namespace
AlohaKit.Controls
+
Assembly
AlohaKit.dll
+
+ +
+
+ +
+
public class ProgressRadialDrawable : IDrawable
+
+ + + + +
+
Inheritance
+
+ +
ProgressRadialDrawable
+
+
+ +
+
Implements
+
+ +
+
+ + +
+
Inherited Members
+
+ + + + + + + +
+ + + + + + +

Properties +

+ + + + +

+ BackgroundColor + +

+ +
+
+ +
+
public Color BackgroundColor { get; set; }
+
+ + + + + +

Property Value

+
+
Color
+
+
+ + + + + + + + + + +

+ Direction + +

+ +
+
+ +
+
public ProgressRadialDirection Direction { get; set; }
+
+ + + + + +

Property Value

+
+
ProgressRadialDirection
+
+
+ + + + + + + + + + +

+ FontSize + +

+ +
+
+ +
+
public double FontSize { get; set; }
+
+ + + + + +

Property Value

+
+
double
+
+
+ + + + + + + + + + +

+ IsAnimating + +

+ +
+
+ +
+
public bool IsAnimating { get; set; }
+
+ + + + + +

Property Value

+
+
bool
+
+
+ + + + + + + + + + +

+ ProgressAngle + +

+ +
+
+ +
+
public float ProgressAngle { get; set; }
+
+ + + + + +

Property Value

+
+
float
+
+
+ + + + + + + + + + +

+ ProgressColor + +

+ +
+
+ +
+
public Color ProgressColor { get; set; }
+
+ + + + + +

Property Value

+
+
Color
+
+
+ + + + + + + + + + +

+ ProgressText + +

+ +
+
+ +
+
public string ProgressText { get; set; }
+
+ + + + + +

Property Value

+
+
string
+
+
+ + + + + + + + + + +

+ StrokeColor + +

+ +
+
+ +
+
public Color StrokeColor { get; set; }
+
+ + + + + +

Property Value

+
+
Color
+
+
+ + + + + + + + + + +

+ TextColor + +

+ +
+
+ +
+
public Color TextColor { get; set; }
+
+ + + + + +

Property Value

+
+
Color
+
+
+ + + + + + + + +

Methods +

+ + + + +

+ Draw(ICanvas, RectF) + +

+ +
+
+ +
+
public void Draw(ICanvas canvas, RectF dirtyRect)
+
+ +

Parameters

+
+
canvas ICanvas
+
+
dirtyRect RectF
+
+
+ + + + + + + + + + + + + + +

+ DrawBackground(ICanvas, RectF) + +

+ +
+
+ +
+
public virtual void DrawBackground(ICanvas canvas, RectF dirtyRect)
+
+ +

Parameters

+
+
canvas ICanvas
+
+
dirtyRect RectF
+
+
+ + + + + + + + + + + + + + +

+ DrawProgress(ICanvas, RectF) + +

+ +
+
+ +
+
public virtual void DrawProgress(ICanvas canvas, RectF dirtyRect)
+
+ +

Parameters

+
+
canvas ICanvas
+
+
dirtyRect RectF
+
+
+ + + + + + + + + + + + + + +

+ DrawStroke(ICanvas, RectF) + +

+ +
+
+ +
+
public virtual void DrawStroke(ICanvas canvas, RectF dirtyRect)
+
+ +

Parameters

+
+
canvas ICanvas
+
+
dirtyRect RectF
+
+
+ + + + + + + + + + + + + + +

+ DrawText(ICanvas, RectF) + +

+ +
+
+ +
+
public virtual void DrawText(ICanvas canvas, RectF dirtyRect)
+
+ +

Parameters

+
+
canvas ICanvas
+
+
dirtyRect RectF
+
+
+ + + + + + + + + + + + + +
+ + + + +
+ +
+ +
+
+ +
+ + + + diff --git a/docs/_site/api/AlohaKit.Controls.PulseIcon.html b/docs/_site/api/AlohaKit.Controls.PulseIcon.html new file mode 100644 index 0000000..33d48e8 --- /dev/null +++ b/docs/_site/api/AlohaKit.Controls.PulseIcon.html @@ -0,0 +1,1134 @@ + + + + + Class PulseIcon | alohakit.controls + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+
+
Table of Contents
+ +
+
+ +
+
+
+ +
+
+ + + +
+ +
+ + + +

+Class PulseIcon +

+ +
+
Namespace
AlohaKit.Controls
+
Assembly
AlohaKit.dll
+
+ +

The PulseIcon is a drawn control that creates an animated pulsing effect around an icon. +This control is particularly useful for drawing attention to specific elements in your user interface, such as notifications, interactive features, or status indicators.

+
+
+ +
+
public class PulseIcon : GraphicsView, INotifyPropertyChanged, IVisualTreeElement, IEffectControlProvider, IToolTipElement, IContextFlyoutElement, IAnimatable, IViewController, IVisualElementController, IElementController, IGestureController, IGestureRecognizers, IPropertyMapperView, IHotReloadableView, IReplaceableView, IGraphicsView, IView, IElement, ITransform
+
+ + + + +
+
Inheritance
+
+ + + + + + + +
PulseIcon
+
+
+ +
+
Implements
+
+ + + + + + + + + + + + + + + + + + +
+
+ + +
+
Inherited Members
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + +

Constructors +

+ + + + +

+ PulseIcon() + +

+ +
+
+ +
+
public PulseIcon()
+
+ + + + + + + + + + + + + +

Fields +

+ + + +

+ BackgroundProperty + +

+ +
+
+ +
+
public static readonly BindableProperty BackgroundProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ IsPulsingProperty + +

+ +
+
+ +
+
public static readonly BindableProperty IsPulsingProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ PulseColorProperty + +

+ +
+
+ +
+
public static readonly BindableProperty PulseColorProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ SourceProperty + +

+ +
+
+ +
+
public static readonly BindableProperty SourceProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + +

Properties +

+ + + + +

+ Background + +

+ +
+
+ +
+
public Brush Background { get; set; }
+
+ + + + + +

Property Value

+
+
Brush
+
+
+ + + + + + + + + + +

+ IsPulsing + +

+ +
+
+ +
+
public bool IsPulsing { get; set; }
+
+ + + + + +

Property Value

+
+
bool
+
+
+ + + + + + + + + + +

+ PulseColor + +

+ +
+
+ +
+
public Color PulseColor { get; set; }
+
+ + + + + +

Property Value

+
+
Color
+
+
+ + + + + + + + + + +

+ PulseIconDrawable + +

+ +
+
+ +
+
public PulseIconDrawable PulseIconDrawable { get; set; }
+
+ + + + + +

Property Value

+
+
PulseIconDrawable
+
+
+ + + + + + + + + + +

+ Source + +

+ +
+
+ +
+
public string Source { get; set; }
+
+ + + + + +

Property Value

+
+
string
+
+
+ + + + + + + + +

Methods +

+ + + + +

+ OnParentChanged() + +

+ +

When overridden in a derived class, should raise the ParentChanged event.

+
+
+ +
+
protected override void OnParentChanged()
+
+ + + + + + + + + +

Remarks

+

It is the implementor's responsibility to raise the ParentChanged event.

+
+ + + + +

Events +

+ + + +

+ Clicked + +

+ +
+
+ +
+
public event EventHandler Clicked
+
+ + + + + + +

Event Type

+
+
EventHandler
+
+
+ + + + + + + + +
+ + + + +
+ +
+ +
+
+ +
+ + + + diff --git a/docs/_site/api/AlohaKit.Controls.PulseIconDrawable.html b/docs/_site/api/AlohaKit.Controls.PulseIconDrawable.html new file mode 100644 index 0000000..dabcb73 --- /dev/null +++ b/docs/_site/api/AlohaKit.Controls.PulseIconDrawable.html @@ -0,0 +1,415 @@ + + + + + Class PulseIconDrawable | alohakit.controls + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+
+
Table of Contents
+ +
+
+ +
+
+
+ +
+
+ + + +
+ +
+ + + +

+Class PulseIconDrawable +

+ +
+
Namespace
AlohaKit.Controls
+
Assembly
AlohaKit.dll
+
+ +
+
+ +
+
public class PulseIconDrawable : IDrawable
+
+ + + + +
+
Inheritance
+
+ +
PulseIconDrawable
+
+
+ +
+
Implements
+
+ +
+
+ + +
+
Inherited Members
+
+ + + + + + + +
+ + + + + + +

Properties +

+ + + + +

+ BackgroundPaint + +

+ +
+
+ +
+
public Paint BackgroundPaint { get; set; }
+
+ + + + + +

Property Value

+
+
Paint
+
+
+ + + + + + + + + + +

+ PulseColor + +

+ +
+
+ +
+
public Color PulseColor { get; set; }
+
+ + + + + +

Property Value

+
+
Color
+
+
+ + + + + + + + + + +

+ Source + +

+ +
+
+ +
+
public string Source { get; set; }
+
+ + + + + +

Property Value

+
+
string
+
+
+ + + + + + + + +

Methods +

+ + + + +

+ Draw(ICanvas, RectF) + +

+ +
+
+ +
+
public void Draw(ICanvas canvas, RectF dirtyRect)
+
+ +

Parameters

+
+
canvas ICanvas
+
+
dirtyRect RectF
+
+
+ + + + + + + + + + + + + + +

+ DrawBackground(ICanvas, RectF) + +

+ +
+
+ +
+
public virtual void DrawBackground(ICanvas canvas, RectF dirtyRect)
+
+ +

Parameters

+
+
canvas ICanvas
+
+
dirtyRect RectF
+
+
+ + + + + + + + + + + + + + +

+ DrawIcon(ICanvas, RectF) + +

+ +
+
+ +
+
public virtual void DrawIcon(ICanvas canvas, RectF dirtyRect)
+
+ +

Parameters

+
+
canvas ICanvas
+
+
dirtyRect RectF
+
+
+ + + + + + + + + + + + + + +

+ DrawPulse(ICanvas, RectF) + +

+ +
+
+ +
+
public virtual void DrawPulse(ICanvas canvas, RectF dirtyRect)
+
+ +

Parameters

+
+
canvas ICanvas
+
+
dirtyRect RectF
+
+
+ + + + + + + + + + + + + +
+ + + + +
+ +
+ +
+
+ +
+ + + + diff --git a/docs/_site/api/AlohaKit.Controls.Rating.html b/docs/_site/api/AlohaKit.Controls.Rating.html new file mode 100644 index 0000000..5fb3ab5 --- /dev/null +++ b/docs/_site/api/AlohaKit.Controls.Rating.html @@ -0,0 +1,1506 @@ + + + + + Class Rating | alohakit.controls + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+
+
Table of Contents
+ +
+
+ +
+
+
+ +
+
+ + + +
+ +
+ + + +

+Class Rating +

+ +
+
Namespace
AlohaKit.Controls
+
Assembly
AlohaKit.dll
+
+ +

The Rating is a drawn control that allows users to rate items or entities, typically using a star-based system or other graphical representation. +This control is perfect for scenarios where users need to provide feedback, score performance, or indicate preferences in an intuitive visual format.

+
+
+ +
+
public class Rating : GraphicsView, INotifyPropertyChanged, IVisualTreeElement, IEffectControlProvider, IToolTipElement, IContextFlyoutElement, IAnimatable, IViewController, IVisualElementController, IElementController, IGestureController, IGestureRecognizers, IPropertyMapperView, IHotReloadableView, IReplaceableView, IGraphicsView, IView, IElement, ITransform
+
+ + + + +
+
Inheritance
+
+ + + + + + + +
Rating
+
+
+ +
+
Implements
+
+ + + + + + + + + + + + + + + + + + +
+
+ + +
+
Inherited Members
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + +

Constructors +

+ + + + +

+ Rating() + +

+ +
+
+ +
+
public Rating()
+
+ + + + + + + + + + + + + +

Fields +

+ + + +

+ BackgroundProperty + +

+ +
+
+ +
+
public static readonly BindableProperty BackgroundProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ IsReadOnlyProperty + +

+ +
+
+ +
+
public static readonly BindableProperty IsReadOnlyProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ ItemsCountProperty + +

+ +
+
+ +
+
public static readonly BindableProperty ItemsCountProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ SelectedFillProperty + +

+ +
+
+ +
+
public static readonly BindableProperty SelectedFillProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ SelectedStrokeProperty + +

+ +
+
+ +
+
public static readonly BindableProperty SelectedStrokeProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ SelectedStrokeWidthProperty + +

+ +
+
+ +
+
public static readonly BindableProperty SelectedStrokeWidthProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ UnSelectedFillProperty + +

+ +
+
+ +
+
public static readonly BindableProperty UnSelectedFillProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ UnSelectedStrokeProperty + +

+ +
+
+ +
+
public static readonly BindableProperty UnSelectedStrokeProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ UnSelectedStrokeWidthProperty + +

+ +
+
+ +
+
public static readonly BindableProperty UnSelectedStrokeWidthProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ ValueProperty + +

+ +
+
+ +
+
public static readonly BindableProperty ValueProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + +

Properties +

+ + + + +

+ Background + +

+ +
+
+ +
+
public Brush Background { get; set; }
+
+ + + + + +

Property Value

+
+
Brush
+
+
+ + + + + + + + + + +

+ IsReadOnly + +

+ +
+
+ +
+
public bool IsReadOnly { get; set; }
+
+ + + + + +

Property Value

+
+
bool
+
+
+ + + + + + + + + + +

+ ItemsCount + +

+ +
+
+ +
+
public int ItemsCount { get; set; }
+
+ + + + + +

Property Value

+
+
int
+
+
+ + + + + + + + + + +

+ RatingDrawable + +

+ +
+
+ +
+
public RatingDrawable RatingDrawable { get; set; }
+
+ + + + + +

Property Value

+
+
RatingDrawable
+
+
+ + + + + + + + + + +

+ SelectedFill + +

+ +
+
+ +
+
public Color SelectedFill { get; set; }
+
+ + + + + +

Property Value

+
+
Color
+
+
+ + + + + + + + + + +

+ SelectedStroke + +

+ +
+
+ +
+
public Color SelectedStroke { get; set; }
+
+ + + + + +

Property Value

+
+
Color
+
+
+ + + + + + + + + + +

+ SelectedStrokeWidth + +

+ +
+
+ +
+
public double SelectedStrokeWidth { get; set; }
+
+ + + + + +

Property Value

+
+
double
+
+
+ + + + + + + + + + +

+ UnSelectedFill + +

+ +
+
+ +
+
public Color UnSelectedFill { get; set; }
+
+ + + + + +

Property Value

+
+
Color
+
+
+ + + + + + + + + + +

+ UnSelectedStroke + +

+ +
+
+ +
+
public Color UnSelectedStroke { get; set; }
+
+ + + + + +

Property Value

+
+
Color
+
+
+ + + + + + + + + + +

+ UnSelectedStrokeWidth + +

+ +
+
+ +
+
public double UnSelectedStrokeWidth { get; set; }
+
+ + + + + +

Property Value

+
+
double
+
+
+ + + + + + + + + + +

+ Value + +

+ +
+
+ +
+
public int Value { get; set; }
+
+ + + + + +

Property Value

+
+
int
+
+
+ + + + + + + + +

Methods +

+ + + + +

+ OnParentSet() + +

+ +

Raises the (internal) ParentSet event.

+
+
+ +
+
protected override void OnParentSet()
+
+ + + + + + + + + +

Remarks

+

Will set the NavigationProxy's inner navigation object to closest topmost element capable of handling navigation calls.

+
+ + +
+
See Also
+
+ +
+
+ + +

Events +

+ + + +

+ ValueChanged + +

+ +
+
+ +
+
public event EventHandler<RatingValueChangedEventArgs> ValueChanged
+
+ + + + + + +

Event Type

+
+
EventHandler<RatingValueChangedEventArgs>
+
+
+ + + + + + + + +
+ + + + +
+ +
+ +
+
+ +
+ + + + diff --git a/docs/_site/api/AlohaKit.Controls.RatingDrawable.html b/docs/_site/api/AlohaKit.Controls.RatingDrawable.html new file mode 100644 index 0000000..39fa8d3 --- /dev/null +++ b/docs/_site/api/AlohaKit.Controls.RatingDrawable.html @@ -0,0 +1,570 @@ + + + + + Class RatingDrawable | alohakit.controls + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+
+
Table of Contents
+ +
+
+ +
+
+
+ +
+
+ + + +
+ +
+ + + +

+Class RatingDrawable +

+ +
+
Namespace
AlohaKit.Controls
+
Assembly
AlohaKit.dll
+
+ +
+
+ +
+
public class RatingDrawable : IDrawable
+
+ + + + +
+
Inheritance
+
+ +
RatingDrawable
+
+
+ +
+
Implements
+
+ +
+
+ + +
+
Inherited Members
+
+ + + + + + + +
+ + + + + + +

Properties +

+ + + + +

+ BackgroundPaint + +

+ +
+
+ +
+
public Paint BackgroundPaint { get; set; }
+
+ + + + + +

Property Value

+
+
Paint
+
+
+ + + + + + + + + + +

+ ItemsCount + +

+ +
+
+ +
+
public int ItemsCount { get; set; }
+
+ + + + + +

Property Value

+
+
int
+
+
+ + + + + + + + + + +

+ SelectedFillColor + +

+ +
+
+ +
+
public Color SelectedFillColor { get; set; }
+
+ + + + + +

Property Value

+
+
Color
+
+
+ + + + + + + + + + +

+ SelectedStrokeColor + +

+ +
+
+ +
+
public Color SelectedStrokeColor { get; set; }
+
+ + + + + +

Property Value

+
+
Color
+
+
+ + + + + + + + + + +

+ SelectedStrokeWidth + +

+ +
+
+ +
+
public double SelectedStrokeWidth { get; set; }
+
+ + + + + +

Property Value

+
+
double
+
+
+ + + + + + + + + + +

+ UnSelectedFillColor + +

+ +
+
+ +
+
public Color UnSelectedFillColor { get; set; }
+
+ + + + + +

Property Value

+
+
Color
+
+
+ + + + + + + + + + +

+ UnSelectedStrokeColor + +

+ +
+
+ +
+
public Color UnSelectedStrokeColor { get; set; }
+
+ + + + + +

Property Value

+
+
Color
+
+
+ + + + + + + + + + +

+ UnSelectedStrokeWidth + +

+ +
+
+ +
+
public double UnSelectedStrokeWidth { get; set; }
+
+ + + + + +

Property Value

+
+
double
+
+
+ + + + + + + + + + +

+ Value + +

+ +
+
+ +
+
public int Value { get; set; }
+
+ + + + + +

Property Value

+
+
int
+
+
+ + + + + + + + +

Methods +

+ + + + +

+ Draw(ICanvas, RectF) + +

+ +
+
+ +
+
public void Draw(ICanvas canvas, RectF dirtyRect)
+
+ +

Parameters

+
+
canvas ICanvas
+
+
dirtyRect RectF
+
+
+ + + + + + + + + + + + + + +

+ DrawBackground(ICanvas, RectF) + +

+ +
+
+ +
+
public virtual void DrawBackground(ICanvas canvas, RectF dirtyRect)
+
+ +

Parameters

+
+
canvas ICanvas
+
+
dirtyRect RectF
+
+
+ + + + + + + + + + + + + + +

+ DrawRatingItem(ICanvas, RectF, int) + +

+ +
+
+ +
+
public virtual void DrawRatingItem(ICanvas canvas, RectF dirtyRect, int index)
+
+ +

Parameters

+
+
canvas ICanvas
+
+
dirtyRect RectF
+
+
index int
+
+
+ + + + + + + + + + + + + +
+ + + + +
+ +
+ +
+
+ +
+ + + + diff --git a/docs/_site/api/AlohaKit.Controls.RatingValueChangedEventArgs.html b/docs/_site/api/AlohaKit.Controls.RatingValueChangedEventArgs.html new file mode 100644 index 0000000..fe190f6 --- /dev/null +++ b/docs/_site/api/AlohaKit.Controls.RatingValueChangedEventArgs.html @@ -0,0 +1,251 @@ + + + + + Class RatingValueChangedEventArgs | alohakit.controls + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+
+
Table of Contents
+ +
+
+ +
+
+
+ +
+
+ + + +
+ +
+ + + +

+Class RatingValueChangedEventArgs +

+ +
+
Namespace
AlohaKit.Controls
+
Assembly
AlohaKit.dll
+
+ +

The RatingValueChangedEventArgs class provides data for events that report a change in the rating value of a Rating control.

+
+
+ +
+
public class RatingValueChangedEventArgs : EventArgs
+
+ + + + +
+
Inheritance
+
+ + +
RatingValueChangedEventArgs
+
+
+ + + +
+
Inherited Members
+
+ + + + + + + + +
+ + + + + + +

Constructors +

+ + + + +

+ RatingValueChangedEventArgs(double) + +

+ +
+
+ +
+
public RatingValueChangedEventArgs(double value)
+
+ +

Parameters

+
+
value double
+
+
+ + + + + + + + + + + + +

Properties +

+ + + + +

+ Value + +

+ +
+
+ +
+
public double Value { get; set; }
+
+ + + + + +

Property Value

+
+
double
+
+
+ + + + + + + + + +
+ + + + +
+ +
+ +
+
+ +
+ + + + diff --git a/docs/_site/api/AlohaKit.Controls.SegmentedControl.html b/docs/_site/api/AlohaKit.Controls.SegmentedControl.html new file mode 100644 index 0000000..298c3de --- /dev/null +++ b/docs/_site/api/AlohaKit.Controls.SegmentedControl.html @@ -0,0 +1,1539 @@ + + + + + Class SegmentedControl | alohakit.controls + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+
+
Table of Contents
+ +
+
+ +
+
+
+ +
+
+ + + +
+ +
+ + + +

+Class SegmentedControl +

+ +
+
Namespace
AlohaKit.Controls
+
Assembly
AlohaKit.dll
+
+ +

The SegmentedControl is a drawn control that allows users to make a single selection from a set of segmented options. +It is ideal for scenarios where a user needs to choose between mutually exclusive options, such as switching between tabs or filtering content.

+
+
+ +
+
public class SegmentedControl : GraphicsView, INotifyPropertyChanged, IVisualTreeElement, IEffectControlProvider, IToolTipElement, IContextFlyoutElement, IAnimatable, IViewController, IVisualElementController, IElementController, IGestureController, IGestureRecognizers, IPropertyMapperView, IHotReloadableView, IReplaceableView, IGraphicsView, IView, IElement, ITransform
+
+ + + + +
+
Inheritance
+
+ + + + + + + +
SegmentedControl
+
+
+ +
+
Implements
+
+ + + + + + + + + + + + + + + + + + +
+
+ + +
+
Inherited Members
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + +

Constructors +

+ + + + +

+ SegmentedControl() + +

+ +
+
+ +
+
public SegmentedControl()
+
+ + + + + + + + + + + + + +

Fields +

+ + + +

+ ActiveBackgroundProperty + +

+ +
+
+ +
+
public static readonly BindableProperty ActiveBackgroundProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ ActiveFontSizeProperty + +

+ +
+
+ +
+
public static readonly BindableProperty ActiveFontSizeProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ ActiveTextColorProperty + +

+ +
+
+ +
+
public static readonly BindableProperty ActiveTextColorProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ BackgroundProperty + +

+ +
+
+ +
+
public static readonly BindableProperty BackgroundProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ CornerRadiusProperty + +

+ +
+
+ +
+
public static readonly BindableProperty CornerRadiusProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ FontSizeProperty + +

+ +
+
+ +
+
public static readonly BindableProperty FontSizeProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ ItemsSourceProperty + +

+ +
+
+ +
+
public static readonly BindableProperty ItemsSourceProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ SelectedIndexChangedCommandProperty + +

+ +
+
+ +
+
public static readonly BindableProperty SelectedIndexChangedCommandProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ SelectedIndexProperty + +

+ +
+
+ +
+
public static readonly BindableProperty SelectedIndexProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ TextColorProperty + +

+ +
+
+ +
+
public static readonly BindableProperty TextColorProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + +

Properties +

+ + + + +

+ ActiveBackground + +

+ +
+
+ +
+
public Brush ActiveBackground { get; set; }
+
+ + + + + +

Property Value

+
+
Brush
+
+
+ + + + + + + + + + +

+ ActiveFontSize + +

+ +
+
+ +
+
public double ActiveFontSize { get; set; }
+
+ + + + + +

Property Value

+
+
double
+
+
+ + + + + + + + + + +

+ ActiveTextColor + +

+ +
+
+ +
+
public Color ActiveTextColor { get; set; }
+
+ + + + + +

Property Value

+
+
Color
+
+
+ + + + + + + + + + +

+ Background + +

+ +
+
+ +
+
public Brush Background { get; set; }
+
+ + + + + +

Property Value

+
+
Brush
+
+
+ + + + + + + + + + +

+ CornerRadius + +

+ +
+
+ +
+
public double CornerRadius { get; set; }
+
+ + + + + +

Property Value

+
+
double
+
+
+ + + + + + + + + + +

+ FontSize + +

+ +
+
+ +
+
public double FontSize { get; set; }
+
+ + + + + +

Property Value

+
+
double
+
+
+ + + + + + + + + + +

+ ItemsSource + +

+ +
+
+ +
+
public IEnumerable ItemsSource { get; set; }
+
+ + + + + +

Property Value

+
+
IEnumerable
+
+
+ + + + + + + + + + +

+ SegmentedControlDrawable + +

+ +
+
+ +
+
public SegmentedControlDrawable SegmentedControlDrawable { get; set; }
+
+ + + + + +

Property Value

+
+
SegmentedControlDrawable
+
+
+ + + + + + + + + + +

+ SelectedIndex + +

+ +
+
+ +
+
public int SelectedIndex { get; set; }
+
+ + + + + +

Property Value

+
+
int
+
+
+ + + + + + + + + + +

+ SelectedIndexChangedCommand + +

+ +
+
+ +
+
public ICommand SelectedIndexChangedCommand { get; set; }
+
+ + + + + +

Property Value

+
+
ICommand
+
+
+ + + + + + + + + + +

+ TextColor + +

+ +
+
+ +
+
public Color TextColor { get; set; }
+
+ + + + + +

Property Value

+
+
Color
+
+
+ + + + + + + + +

Methods +

+ + + + +

+ OnParentSet() + +

+ +

Raises the (internal) ParentSet event.

+
+
+ +
+
protected override void OnParentSet()
+
+ + + + + + + + + +

Remarks

+

Will set the NavigationProxy's inner navigation object to closest topmost element capable of handling navigation calls.

+
+ + +
+
See Also
+
+ +
+
+ + + + +

+ OnSizeAllocated(double, double) + +

+ +

Method that is called when the size of the element is set during a layout cycle. Implement this method to add class handling for this event.

+
+
+ +
+
protected override void OnSizeAllocated(double width, double height)
+
+ +

Parameters

+
+
width double
+

The new width of the element.

+
+
height double
+

The new height of the element.

+
+
+ + + + + + + + + + + + +

Events +

+ + + +

+ SelectedIndexChanged + +

+ +
+
+ +
+
public event EventHandler<SelectedIndexEventArgs> SelectedIndexChanged
+
+ + + + + + +

Event Type

+
+
EventHandler<SelectedIndexEventArgs>
+
+
+ + + + + + + + +
+ + + + +
+ +
+ +
+
+ +
+ + + + diff --git a/docs/_site/api/AlohaKit.Controls.SegmentedControlDrawable.html b/docs/_site/api/AlohaKit.Controls.SegmentedControlDrawable.html new file mode 100644 index 0000000..061cc93 --- /dev/null +++ b/docs/_site/api/AlohaKit.Controls.SegmentedControlDrawable.html @@ -0,0 +1,601 @@ + + + + + Class SegmentedControlDrawable | alohakit.controls + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+
+
Table of Contents
+ +
+
+ +
+
+
+ +
+
+ + + +
+ +
+ + + +

+Class SegmentedControlDrawable +

+ +
+
Namespace
AlohaKit.Controls
+
Assembly
AlohaKit.dll
+
+ +
+
+ +
+
public class SegmentedControlDrawable : IDrawable
+
+ + + + +
+
Inheritance
+
+ +
SegmentedControlDrawable
+
+
+ +
+
Implements
+
+ +
+
+ + +
+
Inherited Members
+
+ + + + + + + +
+ + + + + + +

Properties +

+ + + + +

+ ActiveBackgroundPaint + +

+ +
+
+ +
+
public Paint ActiveBackgroundPaint { get; set; }
+
+ + + + + +

Property Value

+
+
Paint
+
+
+ + + + + + + + + + +

+ ActiveFontSize + +

+ +
+
+ +
+
public float ActiveFontSize { get; set; }
+
+ + + + + +

Property Value

+
+
float
+
+
+ + + + + + + + + + +

+ ActiveTextColor + +

+ +
+
+ +
+
public Color ActiveTextColor { get; set; }
+
+ + + + + +

Property Value

+
+
Color
+
+
+ + + + + + + + + + +

+ BackgroundPaint + +

+ +
+
+ +
+
public Paint BackgroundPaint { get; set; }
+
+ + + + + +

Property Value

+
+
Paint
+
+
+ + + + + + + + + + +

+ CornerRadius + +

+ +
+
+ +
+
public double CornerRadius { get; set; }
+
+ + + + + +

Property Value

+
+
double
+
+
+ + + + + + + + + + +

+ FontSize + +

+ +
+
+ +
+
public float FontSize { get; set; }
+
+ + + + + +

Property Value

+
+
float
+
+
+ + + + + + + + + + +

+ ItemsSource + +

+ +
+
+ +
+
public IEnumerable ItemsSource { get; set; }
+
+ + + + + +

Property Value

+
+
IEnumerable
+
+
+ + + + + + + + + + +

+ SelectedIndex + +

+ +
+
+ +
+
public int SelectedIndex { get; set; }
+
+ + + + + +

Property Value

+
+
int
+
+
+ + + + + + + + + + +

+ TextColor + +

+ +
+
+ +
+
public Color TextColor { get; set; }
+
+ + + + + +

Property Value

+
+
Color
+
+
+ + + + + + + + +

Methods +

+ + + + +

+ Draw(ICanvas, RectF) + +

+ +
+
+ +
+
public void Draw(ICanvas canvas, RectF dirtyRect)
+
+ +

Parameters

+
+
canvas ICanvas
+
+
dirtyRect RectF
+
+
+ + + + + + + + + + + + + + +

+ DrawActiveTab(ICanvas, RectF) + +

+ +
+
+ +
+
public virtual void DrawActiveTab(ICanvas canvas, RectF dirtyRect)
+
+ +

Parameters

+
+
canvas ICanvas
+
+
dirtyRect RectF
+
+
+ + + + + + + + + + + + + + +

+ DrawBackground(ICanvas, RectF) + +

+ +
+
+ +
+
public virtual void DrawBackground(ICanvas canvas, RectF dirtyRect)
+
+ +

Parameters

+
+
canvas ICanvas
+
+
dirtyRect RectF
+
+
+ + + + + + + + + + + + + + +

+ DrawTabs(ICanvas, RectF) + +

+ +
+
+ +
+
public virtual void DrawTabs(ICanvas canvas, RectF dirtyRect)
+
+ +

Parameters

+
+
canvas ICanvas
+
+
dirtyRect RectF
+
+
+ + + + + + + + + + + + + +
+ + + + +
+ +
+ +
+
+ +
+ + + + diff --git a/docs/_site/api/AlohaKit.Controls.SelectedIndexEventArgs.html b/docs/_site/api/AlohaKit.Controls.SelectedIndexEventArgs.html new file mode 100644 index 0000000..5ace9d8 --- /dev/null +++ b/docs/_site/api/AlohaKit.Controls.SelectedIndexEventArgs.html @@ -0,0 +1,251 @@ + + + + + Class SelectedIndexEventArgs | alohakit.controls + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+
+
Table of Contents
+ +
+
+ +
+
+
+ +
+
+ + + +
+ +
+ + + +

+Class SelectedIndexEventArgs +

+ +
+
Namespace
AlohaKit.Controls
+
Assembly
AlohaKit.dll
+
+ +

The SelectedIndexEventArgs class provides data for events that report a change in the selected index of a SegmentedControl.

+
+
+ +
+
public class SelectedIndexEventArgs : EventArgs
+
+ + + + +
+
Inheritance
+
+ + +
SelectedIndexEventArgs
+
+
+ + + +
+
Inherited Members
+
+ + + + + + + + +
+ + + + + + +

Constructors +

+ + + + +

+ SelectedIndexEventArgs(int) + +

+ +
+
+ +
+
public SelectedIndexEventArgs(int selectedIndex)
+
+ +

Parameters

+
+
selectedIndex int
+
+
+ + + + + + + + + + + + +

Properties +

+ + + + +

+ SelectedIndex + +

+ +
+
+ +
+
public int SelectedIndex { get; set; }
+
+ + + + + +

Property Value

+
+
int
+
+
+ + + + + + + + + +
+ + + + +
+ +
+ +
+
+ +
+ + + + diff --git a/docs/_site/api/AlohaKit.Controls.Slider.html b/docs/_site/api/AlohaKit.Controls.Slider.html new file mode 100644 index 0000000..1b2cd49 --- /dev/null +++ b/docs/_site/api/AlohaKit.Controls.Slider.html @@ -0,0 +1,1384 @@ + + + + + Class Slider | alohakit.controls + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+
+
Table of Contents
+ +
+
+ +
+
+
+ +
+
+ + + +
+ +
+ + + +

+Class Slider +

+ +
+
Namespace
AlohaKit.Controls
+
Assembly
AlohaKit.dll
+
+ +

The Slider class is a graphical control that allows users to select a value from a continuous or discrete range by dragging a thumb along a track. +This versatile control is widely used for adjusting settings like volume, brightness, or custom application parameters.

+
+
+ +
+
public class Slider : GraphicsView, INotifyPropertyChanged, IVisualTreeElement, IEffectControlProvider, IToolTipElement, IContextFlyoutElement, IAnimatable, IViewController, IVisualElementController, IElementController, IGestureController, IGestureRecognizers, IPropertyMapperView, IHotReloadableView, IReplaceableView, IGraphicsView, IView, IElement, ITransform
+
+ + + + +
+
Inheritance
+
+ + + + + + + +
Slider
+
+
+ +
+
Implements
+
+ + + + + + + + + + + + + + + + + + +
+
+ + +
+
Inherited Members
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + +

Constructors +

+ + + + +

+ Slider() + +

+ +
+
+ +
+
public Slider()
+
+ + + + + + + + + + + + + +

Fields +

+ + + +

+ BackgroundProperty + +

+ +
+
+ +
+
public static readonly BindableProperty BackgroundProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ MaximumBrushProperty + +

+ +
+
+ +
+
public static readonly BindableProperty MaximumBrushProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ MaximumProperty + +

+ +
+
+ +
+
public static readonly BindableProperty MaximumProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ MinimumBrushProperty + +

+ +
+
+ +
+
public static readonly BindableProperty MinimumBrushProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ MinimumProperty + +

+ +
+
+ +
+
public static readonly BindableProperty MinimumProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ ThumbBrushProperty + +

+ +
+
+ +
+
public static readonly BindableProperty ThumbBrushProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ ThumbShapeProperty + +

+ +
+
+ +
+
public static readonly BindableProperty ThumbShapeProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ ValueProperty + +

+ +
+
+ +
+
public static readonly BindableProperty ValueProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + +

Properties +

+ + + + +

+ Background + +

+ +
+
+ +
+
public Brush Background { get; set; }
+
+ + + + + +

Property Value

+
+
Brush
+
+
+ + + + + + + + + + +

+ Maximum + +

+ +
+
+ +
+
public double Maximum { get; set; }
+
+ + + + + +

Property Value

+
+
double
+
+
+ + + + + + + + + + +

+ MaximumBrush + +

+ +
+
+ +
+
public Brush MaximumBrush { get; set; }
+
+ + + + + +

Property Value

+
+
Brush
+
+
+ + + + + + + + + + +

+ Minimum + +

+ +
+
+ +
+
public double Minimum { get; set; }
+
+ + + + + +

Property Value

+
+
double
+
+
+ + + + + + + + + + +

+ MinimumBrush + +

+ +
+
+ +
+
public Brush MinimumBrush { get; set; }
+
+ + + + + +

Property Value

+
+
Brush
+
+
+ + + + + + + + + + +

+ SliderDrawable + +

+ +
+
+ +
+
public SliderDrawable SliderDrawable { get; set; }
+
+ + + + + +

Property Value

+
+
SliderDrawable
+
+
+ + + + + + + + + + +

+ ThumbBrush + +

+ +
+
+ +
+
public Brush ThumbBrush { get; set; }
+
+ + + + + +

Property Value

+
+
Brush
+
+
+ + + + + + + + + + +

+ ThumbShape + +

+ +
+
+ +
+
public ThumbShape ThumbShape { get; set; }
+
+ + + + + +

Property Value

+
+
ThumbShape
+
+
+ + + + + + + + + + +

+ Value + +

+ +
+
+ +
+
public double Value { get; set; }
+
+ + + + + +

Property Value

+
+
double
+
+
+ + + + + + + + +

Methods +

+ + + + +

+ OnParentSet() + +

+ +

Raises the (internal) ParentSet event.

+
+
+ +
+
protected override void OnParentSet()
+
+ + + + + + + + + +

Remarks

+

Will set the NavigationProxy's inner navigation object to closest topmost element capable of handling navigation calls.

+
+ + +
+
See Also
+
+ +
+
+ + +

Events +

+ + + +

+ ValueChanged + +

+ +
+
+ +
+
public event EventHandler<ValueChangedEventArgs> ValueChanged
+
+ + + + + + +

Event Type

+
+
EventHandler<ValueChangedEventArgs>
+
+
+ + + + + + + + +
+ + + + +
+ +
+ +
+
+ +
+ + + + diff --git a/docs/_site/api/AlohaKit.Controls.SliderDrawable.html b/docs/_site/api/AlohaKit.Controls.SliderDrawable.html new file mode 100644 index 0000000..55b2615 --- /dev/null +++ b/docs/_site/api/AlohaKit.Controls.SliderDrawable.html @@ -0,0 +1,603 @@ + + + + + Class SliderDrawable | alohakit.controls + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+
+
Table of Contents
+ +
+
+ +
+
+
+ +
+
+ + + +
+ +
+ + + +

+Class SliderDrawable +

+ +
+
Namespace
AlohaKit.Controls
+
Assembly
AlohaKit.dll
+
+ +
+
+ +
+
public class SliderDrawable : IDrawable
+
+ + + + +
+
Inheritance
+
+ +
SliderDrawable
+
+
+ +
+
Implements
+
+ +
+
+ + +
+
Inherited Members
+
+ + + + + + + +
+ + + + + + +

Properties +

+ + + + +

+ BackgroundPaint + +

+ +
+
+ +
+
public Paint BackgroundPaint { get; set; }
+
+ + + + + +

Property Value

+
+
Paint
+
+
+ + + + + + + + + + +

+ Maximum + +

+ +
+
+ +
+
public double Maximum { get; set; }
+
+ + + + + +

Property Value

+
+
double
+
+
+ + + + + + + + + + +

+ MaximumPaint + +

+ +
+
+ +
+
public Paint MaximumPaint { get; set; }
+
+ + + + + +

Property Value

+
+
Paint
+
+
+ + + + + + + + + + +

+ Minimum + +

+ +
+
+ +
+
public double Minimum { get; set; }
+
+ + + + + +

Property Value

+
+
double
+
+
+ + + + + + + + + + +

+ MinimumPaint + +

+ +
+
+ +
+
public Paint MinimumPaint { get; set; }
+
+ + + + + +

Property Value

+
+
Paint
+
+
+ + + + + + + + + + +

+ ThumbPaint + +

+ +
+
+ +
+
public Paint ThumbPaint { get; set; }
+
+ + + + + +

Property Value

+
+
Paint
+
+
+ + + + + + + + + + +

+ ThumbShape + +

+ +
+
+ +
+
public ThumbShape ThumbShape { get; set; }
+
+ + + + + +

Property Value

+
+
ThumbShape
+
+
+ + + + + + + + + + +

+ Value + +

+ +
+
+ +
+
public double Value { get; set; }
+
+ + + + + +

Property Value

+
+
double
+
+
+ + + + + + + + +

Methods +

+ + + + +

+ Draw(ICanvas, RectF) + +

+ +
+
+ +
+
public void Draw(ICanvas canvas, RectF dirtyRect)
+
+ +

Parameters

+
+
canvas ICanvas
+
+
dirtyRect RectF
+
+
+ + + + + + + + + + + + + + +

+ DrawBackground(ICanvas, RectF) + +

+ +
+
+ +
+
public virtual void DrawBackground(ICanvas canvas, RectF dirtyRect)
+
+ +

Parameters

+
+
canvas ICanvas
+
+
dirtyRect RectF
+
+
+ + + + + + + + + + + + + + +

+ DrawThumb(ICanvas, RectF) + +

+ +
+
+ +
+
public virtual void DrawThumb(ICanvas canvas, RectF dirtyRect)
+
+ +

Parameters

+
+
canvas ICanvas
+
+
dirtyRect RectF
+
+
+ + + + + + + + + + + + + + +

+ DrawTrackBackground(ICanvas, RectF) + +

+ +
+
+ +
+
public virtual void DrawTrackBackground(ICanvas canvas, RectF dirtyRect)
+
+ +

Parameters

+
+
canvas ICanvas
+
+
dirtyRect RectF
+
+
+ + + + + + + + + + + + + + +

+ DrawTrackProgress(ICanvas, RectF) + +

+ +
+
+ +
+
public virtual void DrawTrackProgress(ICanvas canvas, RectF dirtyRect)
+
+ +

Parameters

+
+
canvas ICanvas
+
+
dirtyRect RectF
+
+
+ + + + + + + + + + + + + +
+ + + + +
+ +
+ +
+
+ +
+ + + + diff --git a/docs/_site/api/AlohaKit.Controls.ThumbShape.html b/docs/_site/api/AlohaKit.Controls.ThumbShape.html new file mode 100644 index 0000000..0a55d95 --- /dev/null +++ b/docs/_site/api/AlohaKit.Controls.ThumbShape.html @@ -0,0 +1,158 @@ + + + + + Enum ThumbShape | alohakit.controls + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+
+
Table of Contents
+ +
+
+ +
+
+
+ +
+
+ + + +
+ +
+ + + + +

+Enum ThumbShape +

+ +
+
Namespace
AlohaKit.Controls
+
Assembly
AlohaKit.dll
+
+ +

The ThumbShape enumeration defines the possible shapes for a "thumb" in UI components, such as sliders, progress indicators, or drag handles. +It provides developers with options to customize the appearance of the thumb based on design requirements.

+
+
+ +
+
public enum ThumbShape
+
+ + + + + + + + + +

Fields +

+
+
Circle = 0
+ +
+
Rectangle = 1
+ +
+
RoundedRectangle = 2
+ +
+
+ + + +
+ + + + +
+ +
+ +
+
+ +
+ + + + diff --git a/docs/_site/api/AlohaKit.Controls.ToggleSwitch.html b/docs/_site/api/AlohaKit.Controls.ToggleSwitch.html new file mode 100644 index 0000000..f7e3ecc --- /dev/null +++ b/docs/_site/api/AlohaKit.Controls.ToggleSwitch.html @@ -0,0 +1,1140 @@ + + + + + Class ToggleSwitch | alohakit.controls + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+
+
Table of Contents
+ +
+
+ +
+
+
+ +
+
+ + + +
+ +
+ + + +

+Class ToggleSwitch +

+ +
+
Namespace
AlohaKit.Controls
+
Assembly
AlohaKit.dll
+
+ +

The ToggleSwitch is a drawn control that allows users to toggle between two states (on and off). +Designed for visual clarity and smooth interactivity, this control is ideal for enabling or disabling settings, features, or options within an application.

+
+
+ +
+
public class ToggleSwitch : GraphicsView, INotifyPropertyChanged, IVisualTreeElement, IEffectControlProvider, IToolTipElement, IContextFlyoutElement, IAnimatable, IViewController, IVisualElementController, IElementController, IGestureController, IGestureRecognizers, IPropertyMapperView, IHotReloadableView, IReplaceableView, IGraphicsView, IView, IElement, ITransform
+
+ + + + +
+
Inheritance
+
+ + + + + + + +
ToggleSwitch
+
+
+ +
+
Implements
+
+ + + + + + + + + + + + + + + + + + +
+
+ + +
+
Inherited Members
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + +

Constructors +

+ + + + +

+ ToggleSwitch() + +

+ +
+
+ +
+
public ToggleSwitch()
+
+ + + + + + + + + + + + + +

Fields +

+ + + +

+ BackgroundProperty + +

+ +
+
+ +
+
public static readonly BindableProperty BackgroundProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ HasShadowProperty + +

+ +
+
+ +
+
public static readonly BindableProperty HasShadowProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ IsOnProperty + +

+ +
+
+ +
+
public static readonly BindableProperty IsOnProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ ThumbBrushProperty + +

+ +
+
+ +
+
public static readonly BindableProperty ThumbBrushProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + +

Properties +

+ + + + +

+ Background + +

+ +
+
+ +
+
public Brush Background { get; set; }
+
+ + + + + +

Property Value

+
+
Brush
+
+
+ + + + + + + + + + +

+ HasShadow + +

+ +
+
+ +
+
public bool HasShadow { get; set; }
+
+ + + + + +

Property Value

+
+
bool
+
+
+ + + + + + + + + + +

+ IsOn + +

+ +
+
+ +
+
public bool IsOn { get; set; }
+
+ + + + + +

Property Value

+
+
bool
+
+
+ + + + + + + + + + +

+ ThumbBrush + +

+ +
+
+ +
+
public Brush ThumbBrush { get; set; }
+
+ + + + + +

Property Value

+
+
Brush
+
+
+ + + + + + + + + + +

+ ToggleSwitchDrawable + +

+ +
+
+ +
+
public ToggleSwitchDrawable ToggleSwitchDrawable { get; set; }
+
+ + + + + +

Property Value

+
+
ToggleSwitchDrawable
+
+
+ + + + + + + + +

Methods +

+ + + + +

+ OnParentSet() + +

+ +

Raises the (internal) ParentSet event.

+
+
+ +
+
protected override void OnParentSet()
+
+ + + + + + + + + +

Remarks

+

Will set the NavigationProxy's inner navigation object to closest topmost element capable of handling navigation calls.

+
+ + +
+
See Also
+
+ +
+
+ + +

Events +

+ + + +

+ Toggled + +

+ +
+
+ +
+
public event EventHandler<ToggledEventArgs> Toggled
+
+ + + + + + +

Event Type

+
+
EventHandler<ToggledEventArgs>
+
+
+ + + + + + + + +
+ + + + +
+ +
+ +
+
+ +
+ + + + diff --git a/docs/_site/api/AlohaKit.Controls.ToggleSwitchDrawable.html b/docs/_site/api/AlohaKit.Controls.ToggleSwitchDrawable.html new file mode 100644 index 0000000..6a02026 --- /dev/null +++ b/docs/_site/api/AlohaKit.Controls.ToggleSwitchDrawable.html @@ -0,0 +1,413 @@ + + + + + Class ToggleSwitchDrawable | alohakit.controls + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+
+
Table of Contents
+ +
+
+ +
+
+
+ +
+
+ + + +
+ +
+ + + +

+Class ToggleSwitchDrawable +

+ +
+
Namespace
AlohaKit.Controls
+
Assembly
AlohaKit.dll
+
+ +
+
+ +
+
public class ToggleSwitchDrawable : IDrawable
+
+ + + + +
+
Inheritance
+
+ +
ToggleSwitchDrawable
+
+
+ +
+
Implements
+
+ +
+
+ + +
+
Inherited Members
+
+ + + + + + + +
+ + + + + + +

Properties +

+ + + + +

+ BackgroundPaint + +

+ +
+
+ +
+
public Paint BackgroundPaint { get; set; }
+
+ + + + + +

Property Value

+
+
Paint
+
+
+ + + + + + + + + + +

+ HasShadow + +

+ +
+
+ +
+
public bool HasShadow { get; set; }
+
+ + + + + +

Property Value

+
+
bool
+
+
+ + + + + + + + + + +

+ IsOn + +

+ +
+
+ +
+
public bool IsOn { get; set; }
+
+ + + + + +

Property Value

+
+
bool
+
+
+ + + + + + + + + + +

+ ThumbPaint + +

+ +
+
+ +
+
public Paint ThumbPaint { get; set; }
+
+ + + + + +

Property Value

+
+
Paint
+
+
+ + + + + + + + +

Methods +

+ + + + +

+ Draw(ICanvas, RectF) + +

+ +
+
+ +
+
public void Draw(ICanvas canvas, RectF dirtyRect)
+
+ +

Parameters

+
+
canvas ICanvas
+
+
dirtyRect RectF
+
+
+ + + + + + + + + + + + + + +

+ DrawBackground(ICanvas, RectF) + +

+ +
+
+ +
+
public virtual void DrawBackground(ICanvas canvas, RectF dirtyRect)
+
+ +

Parameters

+
+
canvas ICanvas
+
+
dirtyRect RectF
+
+
+ + + + + + + + + + + + + + +

+ DrawThumb(ICanvas, RectF) + +

+ +
+
+ +
+
public virtual void DrawThumb(ICanvas canvas, RectF dirtyRect)
+
+ +

Parameters

+
+
canvas ICanvas
+
+
dirtyRect RectF
+
+
+ + + + + + + + + + + + + +
+ + + + +
+ +
+ +
+
+ +
+ + + + diff --git a/docs/_site/api/AlohaKit.Controls.html b/docs/_site/api/AlohaKit.Controls.html new file mode 100644 index 0000000..79aa570 --- /dev/null +++ b/docs/_site/api/AlohaKit.Controls.html @@ -0,0 +1,378 @@ + + + + + Namespace AlohaKit.Controls | alohakit.controls + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+
+
Table of Contents
+ +
+
+ +
+
+
+ +
+
+ + + +
+ +
+ +

Namespace AlohaKit.Controls

+
+
+
+ +

+Classes +

+
+
Avatar
+

The Avatar is a custom drawn control that provides a flexible and efficient way to render avatar-like graphics, +such as profile pictures, icons, or other visual representations, in an application.

+
+
+
+
AvatarDrawable
+
+
+
+
AvatarSizeExtensions
+

The AvatarSizeExtensions class provides extension methods for the AvatarSize enumeration, +allowing developers to retrieve various sizing details for avatars based on their size +(e.g., dimensions, indicator sizes, font sizes).

+
+
+
+
BarChart
+

The BarChart is a drawn control used to render bar charts, allowing for the visualization of data as rectangular bars. +Each bar's length or height corresponds to the value it represents.

+

It extends the BaseChart class, providing additional functionality tailored to bar chart rendering while leveraging shared chart capabilities.

+
+
+
+
BarChartDrawable
+
+
+
+
BaseChart
+
+
+
+
BaseChartDrawable
+
+
+
+
BusyIndicator
+

The BusyIndicator is a drawn control that provides a graphical representation to indicate +an application or process is busy.

+
+
+
+
BusyIndicatorDrawable
+
+
+
+
Button
+

The Button represents a customizable drawn button control. +It allows developers to create interactive buttons with highly customizable designs, +leveraging the power of lightweight graphics rendering.

+
+
+
+
ButtonDrawable
+
+
+
+
Captcha
+

The Captcha is a drawn control used to render and manage CAPTCHA (Completely Automated Public Turing test to +tell Computers and Humans Apart) challenges. +It leverages .NET MAUI Graphics for efficient graphical rendering and provides a flexible way to generate and validate +CAPTCHAs in an application.

+
+
+
+
CaptchaDrawable
+
+
+
+
CheckBox
+

The CheckBox is a custom drawn control that represents a checkbox for selecting or deselecting options. +It is highly customizable while maintaining efficient rendering capabilities.

+
+
+
+
CheckBoxDrawable
+
+
+
+
LineChart
+

The LineChart provides a drawn control to visualize data as a line chart. +It allows data points to be represented by a continuous line, making it ideal for showing trends over time or relationships between variables.

+

This class inherits from BaseChart, leveraging shared charting functionality while adding line-specific rendering features.

+
+
+
+
LineChartDrawable
+
+
+
+
LinearGauge
+

The LinearGauge is a drawn control for rendering a linear gauge. +A linear gauge is a visual representation of data along a straight or horizontal/vertical axis, commonly used to +display values such as progress, measurements, or performance indicators.

+
+
+
+
LinearGaugeDrawable
+
+
+
+
MultiBarChart
+

The MultiBarChart is a drawn control designed to display multiple bar charts within a single charting view. +It enables the visualization of grouped or stacked data, making it an ideal tool for comparing multiple datasets across categories.

+

This class inherits from BaseChart, leveraging core charting functionality while adding features specific to bar chart rendering.

+
+
+
+
MultiBarChartDrawable
+
+
+
+
MultiLineChartDrawable
+
+
+
+
MultiLineChartView
+

The MultiLineChartView is a drawn control for displaying multiple line charts within a single view. +This enables the visualization of multiple data series, each represented by a separate line, on a shared coordinate system.

+

The class is derived from BaseChart, allowing it to inherit essential charting properties and behaviors while adding specialized features for multi-line visualization.

+
+
+
+
NumericUpDown
+

The NumericUpDown is a drawn control for selecting numeric values by incrementing or decrementing them with +interactive buttons or input.

+
+
+
+
NumericUpDownDrawable
+
+
+
+
PieChart
+

The PieChart is a drawn control for rendering pie charts to visually represent data as portions of a circle.

+
+
+
+
PieChartDrawable
+
+
+
+
ProgressBar
+

The ProgressBar class represents a customizable control for displaying the progress of a task visually.

+
+
+
+
ProgressBarDrawable
+
+
+
+
ProgressRadial
+

The ProgressRadial is a drawn control designed to visually represent progress in a circular or radial form. +It can be used to display percentages or completion statuses, such as task progress, loading indicators, or performance metrics.

+
+
+
+
ProgressRadialDrawable
+
+
+
+
PulseIcon
+

The PulseIcon is a drawn control that creates an animated pulsing effect around an icon. +This control is particularly useful for drawing attention to specific elements in your user interface, such as notifications, interactive features, or status indicators.

+
+
+
+
PulseIconDrawable
+
+
+
+
Rating
+

The Rating is a drawn control that allows users to rate items or entities, typically using a star-based system or other graphical representation. +This control is perfect for scenarios where users need to provide feedback, score performance, or indicate preferences in an intuitive visual format.

+
+
+
+
RatingDrawable
+
+
+
+
RatingValueChangedEventArgs
+

The RatingValueChangedEventArgs class provides data for events that report a change in the rating value of a Rating control.

+
+
+
+
SegmentedControl
+

The SegmentedControl is a drawn control that allows users to make a single selection from a set of segmented options. +It is ideal for scenarios where a user needs to choose between mutually exclusive options, such as switching between tabs or filtering content.

+
+
+
+
SegmentedControlDrawable
+
+
+
+
SelectedIndexEventArgs
+

The SelectedIndexEventArgs class provides data for events that report a change in the selected index of a SegmentedControl.

+
+
+
+
Slider
+

The Slider class is a graphical control that allows users to select a value from a continuous or discrete range by dragging a thumb along a track. +This versatile control is widely used for adjusting settings like volume, brightness, or custom application parameters.

+
+
+
+
SliderDrawable
+
+
+
+
ToggleSwitch
+

The ToggleSwitch is a drawn control that allows users to toggle between two states (on and off). +Designed for visual clarity and smooth interactivity, this control is ideal for enabling or disabling settings, features, or options within an application.

+
+
+
+
ToggleSwitchDrawable
+
+
+

+Enums +

+
+
AvatarSize
+

The AvatarSize enumeration represents predefined sizes for an avatar, +providing a standardized way to specify dimensions across an application.

+
+
+
+
CaptchaLevel
+

The CaptchaLevel enumeration defines the different levels of complexity for CAPTCHA +(Completely Automated Public Turing test to tell Computers and Humans Apart) challenges. +This can be used to configure or determine the strength of a CAPTCHA system, +balancing between ease of use and security requirements.

+
+
+
+
ProgressBarStyle
+

The ProgressBarStyle enumeration defines the visual style options for rendering a progress bar. +This provides developers with a simple way to specify whether the progress bar appears with sharp corners or rounded edges.

+
+
+
+
ProgressRadialDirection
+

The ProgressRadialDirection enumeration specifies the direction of progress rendering for radial progress components, +allowing developers to define whether progress moves clockwise or counterclockwise along the circular axis.

+
+
+
+
ThumbShape
+

The ThumbShape enumeration defines the possible shapes for a "thumb" in UI components, such as sliders, progress indicators, or drag handles. +It provides developers with options to customize the appearance of the thumb based on design requirements.

+
+
+ + +
+ +
+
+ + +
+ +
+ +
+
+ +
+ + + + diff --git a/docs/_site/api/AlohaKit.DataVisualization.PieChart.html b/docs/_site/api/AlohaKit.DataVisualization.PieChart.html new file mode 100644 index 0000000..7ddf75e --- /dev/null +++ b/docs/_site/api/AlohaKit.DataVisualization.PieChart.html @@ -0,0 +1,1043 @@ + + + + + Class PieChart | alohakit.controls + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+
+
Table of Contents
+ +
+
+ +
+
+
+ +
+
+ + + +
+ +
+ + + +

+Class PieChart +

+ +
+
Namespace
AlohaKit.DataVisualization
+
Assembly
AlohaKit.DataVisualization.dll
+
+ +
+
+ +
+
public class PieChart : GraphicsView, INotifyPropertyChanged, IVisualTreeElement, IEffectControlProvider, IToolTipElement, IContextFlyoutElement, IAnimatable, IViewController, IVisualElementController, IElementController, IGestureController, IGestureRecognizers, IPropertyMapperView, IHotReloadableView, IReplaceableView, IGraphicsView, IView, IElement, ITransform
+
+ + + + +
+
Inheritance
+
+ + + + + + + +
PieChart
+
+
+ +
+
Implements
+
+ + + + + + + + + + + + + + + + + + +
+
+ + +
+
Inherited Members
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + +

Constructors +

+ + + + +

+ PieChart() + +

+ +
+
+ +
+
public PieChart()
+
+ + + + + + + + + + + + + +

Fields +

+ + + +

+ BackgroundProperty + +

+ +
+
+ +
+
public static readonly BindableProperty BackgroundProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ ItemsSourceProperty + +

+ +
+
+ +
+
public static readonly BindableProperty ItemsSourceProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + + +

+ ShowLabelsProperty + +

+ +
+
+ +
+
public static readonly BindableProperty ShowLabelsProperty
+
+ + + + +

Field Value

+
+
BindableProperty
+
+
+ + + + + + + + + +

Properties +

+ + + + +

+ Background + +

+ +
+
+ +
+
public Brush Background { get; set; }
+
+ + + + + +

Property Value

+
+
Brush
+
+
+ + + + + + + + + + +

+ ItemsSource + +

+ +
+
+ +
+
public Dictionary<string, float> ItemsSource { get; set; }
+
+ + + + + +

Property Value

+
+
Dictionary<string, float>
+
+
+ + + + + + + + + + +

+ PieChartDrawable + +

+ +
+
+ +
+
public PieChartDrawable PieChartDrawable { get; set; }
+
+ + + + + +

Property Value

+
+
PieChartDrawable
+
+
+ + + + + + + + + + +

+ ShowLabels + +

+ +
+
+ +
+
public bool ShowLabels { get; set; }
+
+ + + + + +

Property Value

+
+
bool
+
+
+ + + + + + + + +

Methods +

+ + + + +

+ OnParentSet() + +

+ +

Raises the (internal) ParentSet event.

+
+
+ +
+
protected override void OnParentSet()
+
+ + + + + + + + + +

Remarks

+

Will set the NavigationProxy's inner navigation object to closest topmost element capable of handling navigation calls.

+
+ + +
+
See Also
+
+ +
+
+ + + +
+ + + + +
+ +
+ +
+
+ +
+ + + + diff --git a/docs/_site/api/AlohaKit.DataVisualization.PieChartDrawable.html b/docs/_site/api/AlohaKit.DataVisualization.PieChartDrawable.html new file mode 100644 index 0000000..4742f71 --- /dev/null +++ b/docs/_site/api/AlohaKit.DataVisualization.PieChartDrawable.html @@ -0,0 +1,415 @@ + + + + + Class PieChartDrawable | alohakit.controls + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+
+
Table of Contents
+ +
+
+ +
+
+
+ +
+
+ + + +
+ +
+ + + +

+Class PieChartDrawable +

+ +
+
Namespace
AlohaKit.DataVisualization
+
Assembly
AlohaKit.DataVisualization.dll
+
+ +
+
+ +
+
public class PieChartDrawable : IDrawable
+
+ + + + +
+
Inheritance
+
+ +
PieChartDrawable
+
+
+ +
+
Implements
+
+ +
+
+ + +
+
Inherited Members
+
+ + + + + + + +
+ + + + + + +

Properties +

+ + + + +

+ BackgroundPaint + +

+ +
+
+ +
+
public Paint BackgroundPaint { get; set; }
+
+ + + + + +

Property Value

+
+
Paint
+
+
+ + + + + + + + + + +

+ ItemsSource + +

+ +
+
+ +
+
public Dictionary<string, float> ItemsSource { get; set; }
+
+ + + + + +

Property Value

+
+
Dictionary<string, float>
+
+
+ + + + + + + + + + +

+ ShowLabels + +

+ +
+
+ +
+
public bool ShowLabels { get; set; }
+
+ + + + + +

Property Value

+
+
bool
+
+
+ + + + + + + + +

Methods +

+ + + + +

+ Draw(ICanvas, RectF) + +

+ +
+
+ +
+
public void Draw(ICanvas canvas, RectF dirtyRect)
+
+ +

Parameters

+
+
canvas ICanvas
+
+
dirtyRect RectF
+
+
+ + + + + + + + + + + + + + +

+ DrawBackground(ICanvas, RectF) + +

+ +
+
+ +
+
public void DrawBackground(ICanvas canvas, RectF dirtyRect)
+
+ +

Parameters

+
+
canvas ICanvas
+
+
dirtyRect RectF
+
+
+ + + + + + + + + + + + + + +

+ DrawLabels(ICanvas, RectF) + +

+ +
+
+ +
+
public void DrawLabels(ICanvas canvas, RectF dirtyRect)
+
+ +

Parameters

+
+
canvas ICanvas
+
+
dirtyRect RectF
+
+
+ + + + + + + + + + + + + + +

+ DrawSlices(ICanvas, RectF) + +

+ +
+
+ +
+
public void DrawSlices(ICanvas canvas, RectF dirtyRect)
+
+ +

Parameters

+
+
canvas ICanvas
+
+
dirtyRect RectF
+
+
+ + + + + + + + + + + + + +
+ + + + +
+ +
+ +
+
+ +
+ + + + diff --git a/docs/_site/api/AlohaKit.DataVisualization.html b/docs/_site/api/AlohaKit.DataVisualization.html new file mode 100644 index 0000000..123b688 --- /dev/null +++ b/docs/_site/api/AlohaKit.DataVisualization.html @@ -0,0 +1,130 @@ + + + + + Namespace AlohaKit.DataVisualization | alohakit.controls + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+
+
Table of Contents
+ +
+
+ +
+
+
+ +
+
+ + + +
+ + + +
+
+ + +
+ +
+ +
+
+ +
+ + + + diff --git a/docs/_site/api/AlohaKit.Enums.ChartEnums.LineChartStyle.html b/docs/_site/api/AlohaKit.Enums.ChartEnums.LineChartStyle.html new file mode 100644 index 0000000..c0e0bab --- /dev/null +++ b/docs/_site/api/AlohaKit.Enums.ChartEnums.LineChartStyle.html @@ -0,0 +1,155 @@ + + + + + Enum ChartEnums.LineChartStyle | alohakit.controls + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+
+
Table of Contents
+ +
+
+ +
+
+
+ +
+
+ + + +
+ +
+ + + + +

+Enum ChartEnums.LineChartStyle +

+ +
+
Namespace
AlohaKit.Enums
+
Assembly
AlohaKit.dll
+
+ +

The LineChartStyle enumeration specifies the style used for rendering a line chart. +It defines whether the chart should display straight lines or smooth curves to connect the data points.

+
+
+ +
+
public enum ChartEnums.LineChartStyle
+
+ + + + + + + + + +

Fields +

+
+
Curve = 1
+ +
+
Line = 0
+ +
+
+ + + +
+ + + + +
+ +
+ +
+
+ +
+ + + + diff --git a/docs/_site/api/AlohaKit.Enums.ChartEnums.html b/docs/_site/api/AlohaKit.Enums.ChartEnums.html new file mode 100644 index 0000000..a0a28fb --- /dev/null +++ b/docs/_site/api/AlohaKit.Enums.ChartEnums.html @@ -0,0 +1,176 @@ + + + + + Class ChartEnums | alohakit.controls + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+
+
Table of Contents
+ +
+
+ +
+
+
+ +
+
+ + + +
+ + + + + + +
+ +
+ +
+
+ +
+ + + + diff --git a/docs/_site/api/AlohaKit.Enums.html b/docs/_site/api/AlohaKit.Enums.html new file mode 100644 index 0000000..84f25e4 --- /dev/null +++ b/docs/_site/api/AlohaKit.Enums.html @@ -0,0 +1,135 @@ + + + + + Namespace AlohaKit.Enums | alohakit.controls + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+
+
Table of Contents
+ +
+
+ +
+
+
+ +
+
+ + + +
+ +
+ +

Namespace AlohaKit.Enums

+
+
+
+ +

+Classes +

+
+
ChartEnums
+
+
+

+Enums +

+
+
ChartEnums.LineChartStyle
+

The LineChartStyle enumeration specifies the style used for rendering a line chart. +It defines whether the chart should display straight lines or smooth curves to connect the data points.

+
+
+ + +
+ +
+
+ + +
+ +
+ +
+
+ +
+ + + + diff --git a/docs/_site/api/AlohaKit.Extensions.ChartExtensions.html b/docs/_site/api/AlohaKit.Extensions.ChartExtensions.html new file mode 100644 index 0000000..bf05055 --- /dev/null +++ b/docs/_site/api/AlohaKit.Extensions.ChartExtensions.html @@ -0,0 +1,471 @@ + + + + + Class ChartExtensions | alohakit.controls + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+
+
Table of Contents
+ +
+
+ +
+
+
+ +
+
+ + + +
+ +
+ + + +

+Class ChartExtensions +

+ +
+
Namespace
AlohaKit.Extensions
+
Assembly
AlohaKit.dll
+
+ +
+
+ +
+
public static class ChartExtensions
+
+ + + + +
+
Inheritance
+
+ +
ChartExtensions
+
+
+ + + +
+
Inherited Members
+
+ + + + + + + +
+ + + + + + +

Methods +

+ + + + +

+ GetMaxValueForPositiveAxis(float) + +

+ +

Calculate the maximum value for horizontal or vertical lines for charts with Positive axis

+
+
+ +
+
public static float GetMaxValueForPositiveAxis(this float maxValue)
+
+ +

Parameters

+
+
maxValue float
+

point maximum from values

+
+
+ +

Returns

+
+
float
+

get the maximum value for the last line

+
+
+ + + + + + + + + + + + + +

+ GetRangeValuesPositiveAndNegative(float, float) + +

+ +

Calculate the maximum range value for horizontal or vertical lines for charts with Positive +and negative axis

+
+
+ +
+
public static float GetRangeValuesPositiveAndNegative(this float minValue, float maxValue)
+
+ +

Parameters

+
+
minValue float
+

point minimum from values

+
+
maxValue float
+

point maximum from values

+
+
+ +

Returns

+
+
float
+

get the maximum range for the entire chart

+
+
+ + + + + + + + + + + + + +

+ GetStepForAxisPositiveAndNegative(float, float) + +

+ +

Compute the space between lines

+
+
+ +
+
public static float GetStepForAxisPositiveAndNegative(this float minValue, float maxValue)
+
+ +

Parameters

+
+
minValue float
+

Minimum value in negative axis

+
+
maxValue float
+

Maximum value in positive axis

+
+
+ +

Returns

+
+
float
+
+
+ + + + + + + + + + + + + +

+ GetStepForPositiveAxis(float) + +

+ +

Compute the space between lines

+
+
+ +
+
public static float GetStepForPositiveAxis(this float maxValue)
+
+ +

Parameters

+
+
maxValue float
+

point maximum from values

+
+
+ +

Returns

+
+
float
+

Get the soace between lines

+
+
+ + + + + + + + + + + + + +

+ Remove0AfterPoint(string) + +

+ +

Cleans extra 0 from a string when needed. Example 40.0 is parsed to 40

+
+
+ +
+
public static string Remove0AfterPoint(this string number)
+
+ +

Parameters

+
+
number string
+

number string representation

+
+
+ +

Returns

+
+
string
+

String without extra 0 decimal

+
+
+ + + + + + + + + + + + + +

+ ToKMBNumber(decimal, int, bool) + +

+ +

Formats a number to thousands (K),millions (M), billions (B) and trillions (T)

+
+
+ +
+
public static decimal ToKMBNumber(this decimal number, int decimalsToRound = 0, bool isPercentage = false)
+
+ +

Parameters

+
+
number decimal
+

number to format

+
+
decimalsToRound int
+

number of decimal places to apply the rounding

+
+
isPercentage bool
+

the value is percentage

+
+
+ +

Returns

+
+
decimal
+

Formatted KMB number

+
+
+ + + + + + + + + + + + + +

+ ToKMBString(decimal, bool, bool) + +

+ +

Formats a number to thousands (K),millions (M) , billions (B) and trillions (T)

+
+
+ +
+
public static string ToKMBString(this decimal number, bool isRounded = false, bool isPercentage = false)
+
+ +

Parameters

+
+
number decimal
+

string number representation to format

+
+
isRounded bool
+

check if it is needed the rounding

+
+
isPercentage bool
+

the value is percentage

+
+
+ +

Returns

+
+
string
+

Formatted KMB number representation

+
+
+ + + + + + + + + + + + +
+ + + + +
+ +
+ +
+
+ +
+ + + + diff --git a/docs/_site/api/AlohaKit.Extensions.IEnumerableExtensions.html b/docs/_site/api/AlohaKit.Extensions.IEnumerableExtensions.html new file mode 100644 index 0000000..b9f999c --- /dev/null +++ b/docs/_site/api/AlohaKit.Extensions.IEnumerableExtensions.html @@ -0,0 +1,254 @@ + + + + + Class IEnumerableExtensions | alohakit.controls + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+
+
Table of Contents
+ +
+
+ +
+
+
+ +
+
+ + + +
+ +
+ + + +

+Class IEnumerableExtensions +

+ +
+
Namespace
AlohaKit.Extensions
+
Assembly
AlohaKit.dll
+
+ +
+
+ +
+
public static class IEnumerableExtensions
+
+ + + + +
+
Inheritance
+
+ +
IEnumerableExtensions
+
+
+ + + +
+
Inherited Members
+
+ + + + + + + +
+ + + + + + +

Methods +

+ + + + +

+ Count(IEnumerable) + +

+ +
+
+ +
+
public static int Count(this IEnumerable source)
+
+ +

Parameters

+
+
source IEnumerable
+
+
+ +

Returns

+
+
int
+
+
+ + + + + + + + + + + + + +

+ ElementAt(IEnumerable, int) + +

+ +
+
+ +
+
public static object ElementAt(this IEnumerable source, int index)
+
+ +

Parameters

+
+
source IEnumerable
+
+
index int
+
+
+ +

Returns

+
+
object
+
+
+ + + + + + + + + + + + +
+ + + + +
+ +
+ +
+
+ +
+ + + + diff --git a/docs/_site/api/AlohaKit.Extensions.NumericExtensions.html b/docs/_site/api/AlohaKit.Extensions.NumericExtensions.html new file mode 100644 index 0000000..bcdbeb0 --- /dev/null +++ b/docs/_site/api/AlohaKit.Extensions.NumericExtensions.html @@ -0,0 +1,220 @@ + + + + + Class NumericExtensions | alohakit.controls + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+
+
Table of Contents
+ +
+
+ +
+
+
+ +
+
+ + + +
+ +
+ + + +

+Class NumericExtensions +

+ +
+
Namespace
AlohaKit.Extensions
+
Assembly
AlohaKit.dll
+
+ +
+
+ +
+
public static class NumericExtensions
+
+ + + + +
+
Inheritance
+
+ +
NumericExtensions
+
+
+ + + +
+
Inherited Members
+
+ + + + + + + +
+ + + + + + +

Methods +

+ + + + +

+ Clamp(double, double, double) + +

+ +
+
+ +
+
public static double Clamp(this double self, double min, double max)
+
+ +

Parameters

+
+
self double
+
+
min double
+
+
max double
+
+
+ +

Returns

+
+
double
+
+
+ + + + + + + + + + + + +
+ + + + +
+ +
+ +
+
+ +
+ + + + diff --git a/docs/_site/api/AlohaKit.Extensions.html b/docs/_site/api/AlohaKit.Extensions.html new file mode 100644 index 0000000..67574c1 --- /dev/null +++ b/docs/_site/api/AlohaKit.Extensions.html @@ -0,0 +1,134 @@ + + + + + Namespace AlohaKit.Extensions | alohakit.controls + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+
+
Table of Contents
+ +
+
+ +
+
+
+ +
+
+ + + +
+ + + +
+
+ + +
+ +
+ +
+
+ +
+ + + + diff --git a/docs/_site/api/AlohaKit.Models.ChartGroupStyle.html b/docs/_site/api/AlohaKit.Models.ChartGroupStyle.html new file mode 100644 index 0000000..4162a19 --- /dev/null +++ b/docs/_site/api/AlohaKit.Models.ChartGroupStyle.html @@ -0,0 +1,383 @@ + + + + + Class ChartGroupStyle | alohakit.controls + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+
+
Table of Contents
+ +
+
+ +
+
+
+ +
+
+ + + +
+ +
+ + + +

+Class ChartGroupStyle +

+ +
+
Namespace
AlohaKit.Models
+
Assembly
AlohaKit.dll
+
+ +
+
+ +
+
public class ChartGroupStyle : INotifyPropertyChanged
+
+ + + + +
+
Inheritance
+
+ +
ChartGroupStyle
+
+
+ +
+
Implements
+
+ +
+
+ + +
+
Inherited Members
+
+ + + + + + + +
+ + + + + + +

Properties +

+ + + + +

+ Background + +

+ +

Brush to be used for group background. Used for MultiLineChart

+
+
+ +
+
public Brush Background { get; set; }
+
+ + + + + +

Property Value

+
+
Brush
+
+
+ + + + + + + + + + +

+ BackgroundColor + +

+ +

Color to be used for each group series background. Used for MultiLineChart

+
+
+ +
+
public Color BackgroundColor { get; set; }
+
+ + + + + +

Property Value

+
+
Color
+
+
+ + + + + + + + + + +

+ Color + +

+ +
+
+ +
+
public Color Color { get; set; }
+
+ + + + + +

Property Value

+
+
Color
+
+
+ + + + + + + + + + +

+ Id + +

+ +

Style identifier. Depending on chart type, current style will be applied globally/individually to the group entries that matches this Id

+
+
+ +
+
public int Id { get; set; }
+
+ + + + + +

Property Value

+
+
int
+
+
+ + + + + + + + +

Methods +

+ + + + +

+ OnPropertyChanged(string) + +

+ +
+
+ +
+
protected virtual void OnPropertyChanged(string propertyName = null)
+
+ +

Parameters

+
+
propertyName string
+
+
+ + + + + + + + + + + + +

Events +

+ + + +

+ PropertyChanged + +

+ +

Occurs when a property value changes.

+
+
+ +
+
public event PropertyChangedEventHandler PropertyChanged
+
+ + + + + + +

Event Type

+
+
PropertyChangedEventHandler
+
+
+ + + + + + + + +
+ + + + +
+ +
+ +
+
+ +
+ + + + diff --git a/docs/_site/api/AlohaKit.Models.ChartItem.html b/docs/_site/api/AlohaKit.Models.ChartItem.html new file mode 100644 index 0000000..0af5be7 --- /dev/null +++ b/docs/_site/api/AlohaKit.Models.ChartItem.html @@ -0,0 +1,449 @@ + + + + + Class ChartItem | alohakit.controls + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+
+
Table of Contents
+ +
+
+ +
+
+
+ +
+
+ + + +
+ +
+ + + +

+Class ChartItem +

+ +
+
Namespace
AlohaKit.Models
+
Assembly
AlohaKit.dll
+
+ +
+
+ +
+
public class ChartItem : INotifyPropertyChanged
+
+ + + + +
+
Inheritance
+
+ +
ChartItem
+
+
+ +
+
Implements
+
+ +
+
+ + +
+
Inherited Members
+
+ + + + + + + +
+ + + + + + +

Properties +

+ + + + +

+ GroupId + +

+ +

Group identifier. This value will be used internally to group entries by id

+
+
+ +
+
public int GroupId { get; set; }
+
+ + + + + +

Property Value

+
+
int
+
+
+ + + + + + + + + + +

+ IsLabelBold + +

+ +

Use Bold system font for this entry label

+
+
+ +
+
public bool IsLabelBold { get; set; }
+
+ + + + + +

Property Value

+
+
bool
+
+
+ + + + + + + + + + +

+ IsValueBold + +

+ +

Use Bold system font for this entry value

+
+
+ +
+
public bool IsValueBold { get; set; }
+
+ + + + + +

Property Value

+
+
bool
+
+
+ + + + + + + + + + +

+ Label + +

+ +

Footer value associated to current value

+
+
+ +
+
public string Label { get; set; }
+
+ + + + + +

Property Value

+
+
string
+
+
+ + + + + + + + + + +

+ StyleId + +

+ +

Depending on the chart type, this property will be used to map each entry indivual style to matching GroupStyles.Id style +For example, MultiBarChart will use this to set each bar colors

+
+
+ +
+
public int StyleId { get; set; }
+
+ + + + + +

Property Value

+
+
int
+
+
+ + + + + + + + + + +

+ Value + +

+ +

Value to display

+
+
+ +
+
public float Value { get; set; }
+
+ + + + + +

Property Value

+
+
float
+
+
+ + + + + + + + +

Methods +

+ + + + +

+ OnPropertyChanged(string) + +

+ +
+
+ +
+
protected virtual void OnPropertyChanged(string propertyName = null)
+
+ +

Parameters

+
+
propertyName string
+
+
+ + + + + + + + + + + + +

Events +

+ + + +

+ PropertyChanged + +

+ +

Occurs when a property value changes.

+
+
+ +
+
public event PropertyChangedEventHandler PropertyChanged
+
+ + + + + + +

Event Type

+
+
PropertyChangedEventHandler
+
+
+ + + + + + + + +
+ + + + +
+ +
+ +
+
+ +
+ + + + diff --git a/docs/_site/api/AlohaKit.Models.html b/docs/_site/api/AlohaKit.Models.html new file mode 100644 index 0000000..e8794ca --- /dev/null +++ b/docs/_site/api/AlohaKit.Models.html @@ -0,0 +1,130 @@ + + + + + Namespace AlohaKit.Models | alohakit.controls + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+
+
Table of Contents
+ +
+
+ +
+
+
+ +
+
+ + + +
+ + + +
+
+ + +
+ +
+ +
+
+ +
+ + + + diff --git a/docs/_site/api/toc.html b/docs/_site/api/toc.html new file mode 100644 index 0000000..38bb576 --- /dev/null +++ b/docs/_site/api/toc.html @@ -0,0 +1,225 @@ + +
+
+
+
+ + + +
+
+ +
+
diff --git a/docs/_site/api/toc.json b/docs/_site/api/toc.json new file mode 100644 index 0000000..e89a557 --- /dev/null +++ b/docs/_site/api/toc.json @@ -0,0 +1,2 @@ + +{"items":[{"name":"AlohaKit.Controls","href":"AlohaKit.Controls.html","topicHref":"AlohaKit.Controls.html","topicUid":"AlohaKit.Controls","type":"Namespace","items":[{"name":"Avatar","href":"AlohaKit.Controls.Avatar.html","topicHref":"AlohaKit.Controls.Avatar.html","topicUid":"AlohaKit.Controls.Avatar","type":"Class"},{"name":"AvatarDrawable","href":"AlohaKit.Controls.AvatarDrawable.html","topicHref":"AlohaKit.Controls.AvatarDrawable.html","topicUid":"AlohaKit.Controls.AvatarDrawable","type":"Class"},{"name":"AvatarSize","href":"AlohaKit.Controls.AvatarSize.html","topicHref":"AlohaKit.Controls.AvatarSize.html","topicUid":"AlohaKit.Controls.AvatarSize","type":"Enum"},{"name":"AvatarSizeExtensions","href":"AlohaKit.Controls.AvatarSizeExtensions.html","topicHref":"AlohaKit.Controls.AvatarSizeExtensions.html","topicUid":"AlohaKit.Controls.AvatarSizeExtensions","type":"Class"},{"name":"BarChart","href":"AlohaKit.Controls.BarChart.html","topicHref":"AlohaKit.Controls.BarChart.html","topicUid":"AlohaKit.Controls.BarChart","type":"Class"},{"name":"BarChartDrawable","href":"AlohaKit.Controls.BarChartDrawable.html","topicHref":"AlohaKit.Controls.BarChartDrawable.html","topicUid":"AlohaKit.Controls.BarChartDrawable","type":"Class"},{"name":"BaseChart","href":"AlohaKit.Controls.BaseChart.html","topicHref":"AlohaKit.Controls.BaseChart.html","topicUid":"AlohaKit.Controls.BaseChart","type":"Class"},{"name":"BaseChartDrawable","href":"AlohaKit.Controls.BaseChartDrawable.html","topicHref":"AlohaKit.Controls.BaseChartDrawable.html","topicUid":"AlohaKit.Controls.BaseChartDrawable","type":"Class"},{"name":"BusyIndicator","href":"AlohaKit.Controls.BusyIndicator.html","topicHref":"AlohaKit.Controls.BusyIndicator.html","topicUid":"AlohaKit.Controls.BusyIndicator","type":"Class"},{"name":"BusyIndicatorDrawable","href":"AlohaKit.Controls.BusyIndicatorDrawable.html","topicHref":"AlohaKit.Controls.BusyIndicatorDrawable.html","topicUid":"AlohaKit.Controls.BusyIndicatorDrawable","type":"Class"},{"name":"Button","href":"AlohaKit.Controls.Button.html","topicHref":"AlohaKit.Controls.Button.html","topicUid":"AlohaKit.Controls.Button","type":"Class"},{"name":"ButtonDrawable","href":"AlohaKit.Controls.ButtonDrawable.html","topicHref":"AlohaKit.Controls.ButtonDrawable.html","topicUid":"AlohaKit.Controls.ButtonDrawable","type":"Class"},{"name":"Captcha","href":"AlohaKit.Controls.Captcha.html","topicHref":"AlohaKit.Controls.Captcha.html","topicUid":"AlohaKit.Controls.Captcha","type":"Class"},{"name":"CaptchaDrawable","href":"AlohaKit.Controls.CaptchaDrawable.html","topicHref":"AlohaKit.Controls.CaptchaDrawable.html","topicUid":"AlohaKit.Controls.CaptchaDrawable","type":"Class"},{"name":"CaptchaLevel","href":"AlohaKit.Controls.CaptchaLevel.html","topicHref":"AlohaKit.Controls.CaptchaLevel.html","topicUid":"AlohaKit.Controls.CaptchaLevel","type":"Enum"},{"name":"CheckBox","href":"AlohaKit.Controls.CheckBox.html","topicHref":"AlohaKit.Controls.CheckBox.html","topicUid":"AlohaKit.Controls.CheckBox","type":"Class"},{"name":"CheckBoxDrawable","href":"AlohaKit.Controls.CheckBoxDrawable.html","topicHref":"AlohaKit.Controls.CheckBoxDrawable.html","topicUid":"AlohaKit.Controls.CheckBoxDrawable","type":"Class"},{"name":"LineChart","href":"AlohaKit.Controls.LineChart.html","topicHref":"AlohaKit.Controls.LineChart.html","topicUid":"AlohaKit.Controls.LineChart","type":"Class"},{"name":"LineChartDrawable","href":"AlohaKit.Controls.LineChartDrawable.html","topicHref":"AlohaKit.Controls.LineChartDrawable.html","topicUid":"AlohaKit.Controls.LineChartDrawable","type":"Class"},{"name":"LinearGauge","href":"AlohaKit.Controls.LinearGauge.html","topicHref":"AlohaKit.Controls.LinearGauge.html","topicUid":"AlohaKit.Controls.LinearGauge","type":"Class"},{"name":"LinearGaugeDrawable","href":"AlohaKit.Controls.LinearGaugeDrawable.html","topicHref":"AlohaKit.Controls.LinearGaugeDrawable.html","topicUid":"AlohaKit.Controls.LinearGaugeDrawable","type":"Class"},{"name":"MultiBarChart","href":"AlohaKit.Controls.MultiBarChart.html","topicHref":"AlohaKit.Controls.MultiBarChart.html","topicUid":"AlohaKit.Controls.MultiBarChart","type":"Class"},{"name":"MultiBarChartDrawable","href":"AlohaKit.Controls.MultiBarChartDrawable.html","topicHref":"AlohaKit.Controls.MultiBarChartDrawable.html","topicUid":"AlohaKit.Controls.MultiBarChartDrawable","type":"Class"},{"name":"MultiLineChartDrawable","href":"AlohaKit.Controls.MultiLineChartDrawable.html","topicHref":"AlohaKit.Controls.MultiLineChartDrawable.html","topicUid":"AlohaKit.Controls.MultiLineChartDrawable","type":"Class"},{"name":"MultiLineChartView","href":"AlohaKit.Controls.MultiLineChartView.html","topicHref":"AlohaKit.Controls.MultiLineChartView.html","topicUid":"AlohaKit.Controls.MultiLineChartView","type":"Class"},{"name":"NumericUpDown","href":"AlohaKit.Controls.NumericUpDown.html","topicHref":"AlohaKit.Controls.NumericUpDown.html","topicUid":"AlohaKit.Controls.NumericUpDown","type":"Class"},{"name":"NumericUpDownDrawable","href":"AlohaKit.Controls.NumericUpDownDrawable.html","topicHref":"AlohaKit.Controls.NumericUpDownDrawable.html","topicUid":"AlohaKit.Controls.NumericUpDownDrawable","type":"Class"},{"name":"PieChart","href":"AlohaKit.Controls.PieChart.html","topicHref":"AlohaKit.Controls.PieChart.html","topicUid":"AlohaKit.Controls.PieChart","type":"Class"},{"name":"PieChartDrawable","href":"AlohaKit.Controls.PieChartDrawable.html","topicHref":"AlohaKit.Controls.PieChartDrawable.html","topicUid":"AlohaKit.Controls.PieChartDrawable","type":"Class"},{"name":"ProgressBar","href":"AlohaKit.Controls.ProgressBar.html","topicHref":"AlohaKit.Controls.ProgressBar.html","topicUid":"AlohaKit.Controls.ProgressBar","type":"Class"},{"name":"ProgressBarDrawable","href":"AlohaKit.Controls.ProgressBarDrawable.html","topicHref":"AlohaKit.Controls.ProgressBarDrawable.html","topicUid":"AlohaKit.Controls.ProgressBarDrawable","type":"Class"},{"name":"ProgressBarStyle","href":"AlohaKit.Controls.ProgressBarStyle.html","topicHref":"AlohaKit.Controls.ProgressBarStyle.html","topicUid":"AlohaKit.Controls.ProgressBarStyle","type":"Enum"},{"name":"ProgressRadial","href":"AlohaKit.Controls.ProgressRadial.html","topicHref":"AlohaKit.Controls.ProgressRadial.html","topicUid":"AlohaKit.Controls.ProgressRadial","type":"Class"},{"name":"ProgressRadialDirection","href":"AlohaKit.Controls.ProgressRadialDirection.html","topicHref":"AlohaKit.Controls.ProgressRadialDirection.html","topicUid":"AlohaKit.Controls.ProgressRadialDirection","type":"Enum"},{"name":"ProgressRadialDrawable","href":"AlohaKit.Controls.ProgressRadialDrawable.html","topicHref":"AlohaKit.Controls.ProgressRadialDrawable.html","topicUid":"AlohaKit.Controls.ProgressRadialDrawable","type":"Class"},{"name":"PulseIcon","href":"AlohaKit.Controls.PulseIcon.html","topicHref":"AlohaKit.Controls.PulseIcon.html","topicUid":"AlohaKit.Controls.PulseIcon","type":"Class"},{"name":"PulseIconDrawable","href":"AlohaKit.Controls.PulseIconDrawable.html","topicHref":"AlohaKit.Controls.PulseIconDrawable.html","topicUid":"AlohaKit.Controls.PulseIconDrawable","type":"Class"},{"name":"Rating","href":"AlohaKit.Controls.Rating.html","topicHref":"AlohaKit.Controls.Rating.html","topicUid":"AlohaKit.Controls.Rating","type":"Class"},{"name":"RatingDrawable","href":"AlohaKit.Controls.RatingDrawable.html","topicHref":"AlohaKit.Controls.RatingDrawable.html","topicUid":"AlohaKit.Controls.RatingDrawable","type":"Class"},{"name":"RatingValueChangedEventArgs","href":"AlohaKit.Controls.RatingValueChangedEventArgs.html","topicHref":"AlohaKit.Controls.RatingValueChangedEventArgs.html","topicUid":"AlohaKit.Controls.RatingValueChangedEventArgs","type":"Class"},{"name":"SegmentedControl","href":"AlohaKit.Controls.SegmentedControl.html","topicHref":"AlohaKit.Controls.SegmentedControl.html","topicUid":"AlohaKit.Controls.SegmentedControl","type":"Class"},{"name":"SegmentedControlDrawable","href":"AlohaKit.Controls.SegmentedControlDrawable.html","topicHref":"AlohaKit.Controls.SegmentedControlDrawable.html","topicUid":"AlohaKit.Controls.SegmentedControlDrawable","type":"Class"},{"name":"SelectedIndexEventArgs","href":"AlohaKit.Controls.SelectedIndexEventArgs.html","topicHref":"AlohaKit.Controls.SelectedIndexEventArgs.html","topicUid":"AlohaKit.Controls.SelectedIndexEventArgs","type":"Class"},{"name":"Slider","href":"AlohaKit.Controls.Slider.html","topicHref":"AlohaKit.Controls.Slider.html","topicUid":"AlohaKit.Controls.Slider","type":"Class"},{"name":"SliderDrawable","href":"AlohaKit.Controls.SliderDrawable.html","topicHref":"AlohaKit.Controls.SliderDrawable.html","topicUid":"AlohaKit.Controls.SliderDrawable","type":"Class"},{"name":"ThumbShape","href":"AlohaKit.Controls.ThumbShape.html","topicHref":"AlohaKit.Controls.ThumbShape.html","topicUid":"AlohaKit.Controls.ThumbShape","type":"Enum"},{"name":"ToggleSwitch","href":"AlohaKit.Controls.ToggleSwitch.html","topicHref":"AlohaKit.Controls.ToggleSwitch.html","topicUid":"AlohaKit.Controls.ToggleSwitch","type":"Class"},{"name":"ToggleSwitchDrawable","href":"AlohaKit.Controls.ToggleSwitchDrawable.html","topicHref":"AlohaKit.Controls.ToggleSwitchDrawable.html","topicUid":"AlohaKit.Controls.ToggleSwitchDrawable","type":"Class"}]},{"name":"AlohaKit.DataVisualization","href":"AlohaKit.DataVisualization.html","topicHref":"AlohaKit.DataVisualization.html","topicUid":"AlohaKit.DataVisualization","type":"Namespace","items":[{"name":"PieChart","href":"AlohaKit.DataVisualization.PieChart.html","topicHref":"AlohaKit.DataVisualization.PieChart.html","topicUid":"AlohaKit.DataVisualization.PieChart","type":"Class"},{"name":"PieChartDrawable","href":"AlohaKit.DataVisualization.PieChartDrawable.html","topicHref":"AlohaKit.DataVisualization.PieChartDrawable.html","topicUid":"AlohaKit.DataVisualization.PieChartDrawable","type":"Class"}]},{"name":"AlohaKit.Enums","href":"AlohaKit.Enums.html","topicHref":"AlohaKit.Enums.html","topicUid":"AlohaKit.Enums","type":"Namespace","items":[{"name":"ChartEnums","href":"AlohaKit.Enums.ChartEnums.html","topicHref":"AlohaKit.Enums.ChartEnums.html","topicUid":"AlohaKit.Enums.ChartEnums","type":"Class"},{"name":"ChartEnums.LineChartStyle","href":"AlohaKit.Enums.ChartEnums.LineChartStyle.html","topicHref":"AlohaKit.Enums.ChartEnums.LineChartStyle.html","topicUid":"AlohaKit.Enums.ChartEnums.LineChartStyle","type":"Enum"}]},{"name":"AlohaKit.Extensions","href":"AlohaKit.Extensions.html","topicHref":"AlohaKit.Extensions.html","topicUid":"AlohaKit.Extensions","type":"Namespace","items":[{"name":"ChartExtensions","href":"AlohaKit.Extensions.ChartExtensions.html","topicHref":"AlohaKit.Extensions.ChartExtensions.html","topicUid":"AlohaKit.Extensions.ChartExtensions","type":"Class"},{"name":"IEnumerableExtensions","href":"AlohaKit.Extensions.IEnumerableExtensions.html","topicHref":"AlohaKit.Extensions.IEnumerableExtensions.html","topicUid":"AlohaKit.Extensions.IEnumerableExtensions","type":"Class"},{"name":"NumericExtensions","href":"AlohaKit.Extensions.NumericExtensions.html","topicHref":"AlohaKit.Extensions.NumericExtensions.html","topicUid":"AlohaKit.Extensions.NumericExtensions","type":"Class"}]},{"name":"AlohaKit.Models","href":"AlohaKit.Models.html","topicHref":"AlohaKit.Models.html","topicUid":"AlohaKit.Models","type":"Namespace","items":[{"name":"ChartGroupStyle","href":"AlohaKit.Models.ChartGroupStyle.html","topicHref":"AlohaKit.Models.ChartGroupStyle.html","topicUid":"AlohaKit.Models.ChartGroupStyle","type":"Class"},{"name":"ChartItem","href":"AlohaKit.Models.ChartItem.html","topicHref":"AlohaKit.Models.ChartItem.html","topicUid":"AlohaKit.Models.ChartItem","type":"Class"}]}],"memberLayout":"SamePage","pdf":true} diff --git a/docs/_site/api/toc.pdf b/docs/_site/api/toc.pdf new file mode 100644 index 0000000000000000000000000000000000000000..6638cce70f1e7de3192d1b2104dc6f7985ba988e GIT binary patch literal 13787477 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 oIw_< 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%0A~a%bZxZ!Fr{N7)u!DWmaRpt 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�A#u*IfnYSbLfqqqe@)+vo$87`@qAlO+r6 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ΝHXv?XVjeyj<% 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%0DrP?3;8Y( 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 =ti5V8|QeR1tEXyN$WB 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

DGgiSfXGb%GN~jqj$cmQt@U8TW&6+~( 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�$D5~6bS64%;V<0is^Omfp;Bx? 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 z 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 z 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 $3qKfl|GITTQpyK?P&-Z{O-5oD_6XBSzOH~d+ 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

Q-o6U*=_uYh#Es1|J+b+e|(sAD*7fwkH{G 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≤l+S=Adl9)ih_LWfb@8(GpDiP?)3Lw!LS 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

TN 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]Mp5TR8k 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

rL=@P_H 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


EsL~JZ#Qt1%`P-tU&1G$^8I6sz8dbFU|Y7 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%0A#IBy?6dO0;_=BK42THqh4X@N>HQP{Eh3nUH^>kF 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�H9ZA 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

*bAh&3&6Yn$}SC~TzkLD46 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

HSEWO?9zrj6 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%0A0QFF6g`hDFt9)Z7l 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 z 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

6IODRm8`d=bTiUaeb);-a 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

8v=RQ2kq$C`d^u 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

Z}k*0tYyGB2mdTpLY}Z#M7K9M9Tv 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

1D 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

m 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�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�LIua(fCV2s_ftM4~6 zZM%bYh5v`Ww+e4#TeC$CF~l4*Gc!ZX%*@Qp%y!Joj+rrLX2)!qnK3alGaqH`-S@2B zy-(loKHY~tlE0~vs^qGgs*~O2y@pB!k(3y6u>($ClyuYN(RRO z&7+e5PO%;Pa+Ww$1QM5SS6C43$qML(Uw9>ph{-VsekKxBmhmkjxDcT({3K?b-b^K7&n`10sO>0WdL-7`&X~FT5E%`=` zQhB+Q4+Z^m$U;eOv^!aG-o$^BesdiR|ByCuE%6;Bzp+j)=^ZaZ=VAz@?MyT@Mx^?| z8>MX%{ko* zVE)Ft63}3#B2Njr$}tPS3`T8~7c{2y?dpmr{YUYk1tl?BiD`484+xr5=@91S+|@YG zZ%pUtDEP{ny|_#p3e z>=#Pqgq5F7a_ath^EfGUUCcEpBI?3sGM2Gji(3hu+d*1^q^WIlVd1vn-Mi|uT*_6| z=hYfx8aQg|W*3JgY<7(D0WGNaN@jv2lXt>9W`e@3H6x^(Trm$3aI5>JLt+sc;B#0VZM

QcQJzkL~U(;C-II_aaS~+Rv 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�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 z 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

Z1$rFQvTFOE~(vWBG6|ZJUx4MGFR!Ddq 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%0DB9G>wkz(r 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

R=*|? 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≀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

ETC2qlV+1MLa&Gs|9iD!vd`2hjWnta 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%0DHkr9tZ+6x)XDDaq$z%FP+3C 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 z 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 z

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
ZFY#?e##-WzqLm%K?|*;wE~N|xeX|3$6-D7 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

vkW7mz)7z6fW61GZtzy;=T3Ku& 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

+TfTYW~YA|M&&{rSbX0*zo(>& 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

^^SLo|Mo|ClkdE)QY1#Ijv){U2@G0_}W*?GJf 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'ggQL)tIazx|wc!zk(&a{THsLENNk>bmY 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

TNnx2npvCt+4~1vDkNm*PN+pl%fw8_{O83& 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 zμ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

(FT>n!WM%CXAfvdFPyQn5X# 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ν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 V-m6sGtmM9!1=@w`yay z%=CF4t!Rup0!RF7S=G#WD}j6mf&A0IkLc?1<;8!k6J=?bkbXLfS$?ivBIT|%Y!JW; zN!E{%;i3&IlPNd^#C0TkvJ68CGWWZmu z87PVWl&t8SJpZBjK%2qs1gfm_i^-1hh5XClx0q4455ja85y$&1uNFzH72>Xp3|^hL z2jRbS=!1emwYSkV1?tp(ABx!SgXC2VWCFb|BTNt9p;9dlD*n~bexCn77!m!G6!>@W zz<GUSzip+~oc{Jc)d*zpVLPB?!l3jXuXe4sb7dC8Wsq_&ZyL?8 zitS5xEx#XqG9q72qfl@q&mjL4$`BjPl03=aAd8;2Ys7-o{N|bWvp4zVM07bMZ0Jv& z6F1&Pi)X5l$>|g9X;Vh?zdWw~-}ENp`Ip{A|J?EauGjwyZz4{9UQVw69GMXmfLMh6 z8*3tee;+LwqI(x>RW_AWKGa@%8hX@tNkb&o89XKx7Yf~dU5-IrqE*Q*JO&D%5>t#Q zeh*ys)0pn=OFDVxpeBJyA&6Sd&4=XAYvE9=ux+bf`IqP+4H0$v_I^y=jsn6wC=eiwPzF zd^S`d$-v7aDlbStuU{nO3)DUCzt3)-cT;=YIrWKkH3Ku|BA}{H}=^73(!i8beq3 z5HEc5ePzY^h#orXWd3{9`*vHdh)jO5$(*=K_>&(d6zoF&XjoO0Ker6i)EzJ%luf)pRJL>Wy5ANq9a~(dpD?0sE22wlf`(w5wZ@nOer``>tC5h zGRMG@Bh)#f8>#XM&OCNkp`XnS+#K4g@330~Cud)_a*y8`qPsPz%aKg&r9lf(cAC_h z{Zuvi>gp?(Vp+&?|O(x!2 zpjnrYDa{fb>y!xPA5==!#qbOk2C>PKT7N=3`HX9+tj@|JEz?k^ggKzdV@8-EITFBQ z)-FUv$ZI=5Rjch!-cEa;AU>If;_bqSPiX()2LpZ)85f%@6!LFAdk*%{ULb0vp3U3vNIHVegor=#cLA1{XF@wVoCMBK+wY(C0B zDWnl5KJxDC`zSOwKM(SNI`H+~0o^JfhH===P>4ImXvrr2V?l~Uaf4y-Ql5L`&0H^7 zzlRuk{|9mJ93)Bf{fTx@PusR_+qSJ~yQgj2wr$(CZQIkHHn!%w8!z5(cVEQrUoRso zZ&lpN%FN??>)g))=j7xRfb-k9zrPiDBhkjY4_fEhr`C=GObVz>CrZR`8Oq)o0rAt_ zUvqx6%|&MU*k3OpMtJ#^-r}SOp4P$E#wALOK%0wWfBBOn9T4h7de(ty$&B*X!6hHS%f%E;A6qil&8uZOPFcPb!25F364z z7i)xx7KOjR;C|SAapVYazk~Bfnimy-v91mGE_jXc3zAXU)8q9CI=C*8x!H4O%*}iS zk-EjHN(RlIn9cm{3$Lt$MjA0fUzg);d)(r4h$2a}(hNTl{xYk%RqxjqM!mQrXo=f5 zrg65UdUfl84j&tWV%Z07(r0EP4obaaWVDpKAAOZ9A^Y559~XL?Uvd$wrdeMQZ~Ng#;X1RH)KRna^S!d&gLc7Q@Xl%c~14z!4iT_3|48M zn)bUZM3^MmI3Cg%3s(aBY|t9=ajZ`PMwIqMANP6`n?r!dn3;89`)YQfaY26LYdf0< zOsnlq`~%XLoGd}cctHYCmtnlLDQG6ow>@fKCCaHjCDnT5MRZkwL^N#cp9Uzg5Az^XJm1`Mvx4#+|Jf zG|`UMrcbvG9lj9u&sucsEh5|j!+e}MlCWWzOqMZKdx(y34S8$g=$P`6#e&!l=}p4m zk>fq=Ys?2=-D~rbR5nX=i6XkLP;J5UTR22Y2gXwbYq4(3wg8HcC^RY?$_(A8F)7DT=aGGHg<=0$L0$m z2?1z%UBCYi86hCxsbMJVK4dpw&#-usL=~p6D6-T9Nn@~dX|zPtBQXbN_c)&Xr%(5L zq;*j~0&w^j#%uxdIcf`BU76LzP7Ca9=~)KcNYi>6e^^5!P1H&w>2;|V zf6A-hExEX+rR%d-W+SA5M{x@ztw-@AQp`mr3xf-c=V>KM4=E>QD|xzk-J;kFKGoRy z*wvY3nMIWg+vS^8mviby%r5%KzpgsJB*{Ddlj~*M0#76;A93H{m>5Btt$ApFo+%sC zcE>c$181OaC_16E!;q7*cZc@Ku`et-pt*o^e|v ztC>e1d3Xp}i9jpP796p%iQLz<-ZFAaI4u;ekz-0AofpVAgp*`+(L}Gj>>0!FySJq2 zgvvI-FnkpCM!Suf9AQ=of{v5%Gr)<_3u8O1m$pGZoQ0kZsA@#MOH{L9yAp)zL>j$7 zd#AxJ(Ja9&kj1f|<4{Vx$FnJ%TiDZ)fj}${9hxc)<1OXn;TvGONQ2?%`zHS?=sbV0 z?s8IMPG2$tt{J4&n6mAYikA1todP3XjH7ctz|)y*ASJ)UkgBpSaYKh zWWs4nnj%%c1Hu~$Y{RFGtNY=I5Ib3qaFZviEhwB;9Zu-X0VZMVEI;D(h0fDwW<=PF zo!$jv_0kNnPl+>}?G{mW-2)b>KPt{4K(`!~-^ps^Mh3eOdxp}n|8WT&=adjde+!xe z&Y;zZDtHbeBS_dA{f!LShG5|a#B2{4qYvCOpr|v|LR|XJv@tbWC#q4-87BE5c})Pe z^zfSImwFo{7w9(=NGC~nW5iq|h?_l?+R$;$*#_=fp!C_(26I^_r$w_(@)@>iht9Sa z>-JNA53?(;#@i2x6~l6fbtJK>-}-TdF6zT&Sm|U zJe(Uwb@cg`O|FFu1P%JJruF5Qoln$5;RsdnVw+JFg9zH|?8X#)e~c3zo&VkLL77f9 zI}l_{#!oz8*)$OIU7+=tld+Htp0$!_md3<`lWij@9@3hxWy)tVX>iW5`Q;?r`wID> zR8dWRuDWqNuRdBczf-%Z@5B6R)S=$V?xAOGX`31`^??$_fJ9$H815TrE+YPduOATZ z)@{F-fK}Kfw^~Q2_*3zO0!!6+uhhd|@xu+{<)EqTZwyD_JOX{QPvR)&lN8X%x9)vKv{Gi7>b}LjU;5k)u=wii9D$y#fjj1G-4OJ+c zMDFAsn=Ot}8fk~*TNF6oY`c)dyO7a#!Zmg%<&@mrN$BZkZ=SU?W$y@6mf3cV6O@E$ zDouKd1Re5A=a`MldUMyAh{(Aa=M(fxwA431uYFF2vaS&AOJf3Y#;1x3;&t58L1MNPI7PZiXb4hR;CvDZ{x>QKEiRxrccpXPGWi~6zKDkBfwrM8-t^Ej9*e5A`r+(OKv)w0E+ z^U9q#jYSq$p15jzHMWvfI z8L>jXnK5x2ry#afE{xcoFriEG5xKyqItUB)l(RZNb`i@Xdxd3sF0BciV8DJ{%>%?Z zO)_T{qqRJ4CJ)vLHTevU3kc4^tntE9wX|cZl$R)?j8Dz3C9m$%dO4m$T8R(QSawQZ zehQ#0l3Ap_XK`VN?uAvRneDynHY;Dzxj`|mLbLKj5xF93?RSI=J2#=vPgy-LoP5jR~ih|QmmwLQhRy+83P*0nm z^XRj$Iqv6o&HniWX(RlJNUWRtgr)C89cM|#wQW7)YzXxtykf}NQeYi0B^pLm+xi%3 z`mK^r{%q3%iIc`Ma)fnbriib`+1hU5ew~dXMH|Vazv_Yh`szwJ?1nDKUCy-h##vezOcqa2+sV zhTHw5hiE~v7hsRy|1D+|kkl2-7lWd86D?J@$&%omH|~(5r}6d@TrAJf$TAa$ZA?WT z=}f|YK2uqAsVuo#nou)eEhfP3zj;-1jllo6pzP*XZaNN;J1wQ>7+M1O?Vp{qotG9q zVv*|@j?_|V=UNE}?&I={Xk)Y3Fq0({HE-H0%kJytf_Tj^*Mu$}{&FEyO`0r-APKrc z$`u4d&CHY0kqs~@!j!)UAO0mtN5+8u2oZ5@5?J|eOoOqX}sdfs1l zdL12Ems!r4vRpN0jqwIAo#2bofRvvwbv+(aEN_O308@f1KetLY_VaqSmr^fe@3|sCTg-MF4loKTO^m0vP{@kNykpA zAvkL1DP=u5N*X_NYHff;B$_74}`B`p6>yNAE*n{&F8?4NA)C$OTZx3?p{zUrj&C`?`JpZMohz z9znK#m`&xG|D;Gh>oz;}4|_jUDmal$v#Y$Nw4JIXBT5ew`KyG&EO-?!Oc7rYRU$T0 zrqPGIv^HyQS=GaMp_e9L8i$#Lnt)m4Uqyr@86Hlv4shocXy{S=%g*VqkB0L7ZuSi* zo;G_fJY515C}nS)aD8nmM@6Qi zzDJAcDbrsX`{>%*A9QF4g&W7pO5ew1xgCJsItS6QkXtvnv283VAt5Iv8+vXWN;fi+ z88H`5`c=9t5rt%&)IOpz8PTZ~zf}`SKZ9bTE}*vM&lg}R3O6>9_P`jSQ$29>5WnMB zHTA|`#2)qdL=>(`Cm?7VqH~gvtXoXSDN-VT-)?;Tq?D?s)}i9lHBqbXu3SEO<78?& z=Ah}|U0xMu*)D_G*u|%zrkjy2m{ABzT9d#fYzmeEI}dnwHU&c=StB}4V!@(_nW4hg zkS=69F-4)Qq+4tv1^Bn(QNZBb#9zzgfJ9HTeEIy*%#@<2XoOYSzfvRoZy7>TnJLQe z@B-!OF~=cuyUMMsdR{l}v8eQAJfrGLKp?BE(MNARKWZcnM5e95^Y=St^%ez@l@bl|vDryQQxFoh5E=IA-f0J%ziXxXt{SBpK<3@SR z($_SEMvO=d6;Cg_QbwZUbV4era!nOKOB**Xc_}YooI0DfynM%HCwz&CQ)AzeGg+u| z5}%@(b(EOH-NY(FU5-;PF@4@T23p?QQN}umG2@NNxtl9lc|U+UcZ<7G`I;g*}CXk+>B z@oR#BNP#T7FL*x`|G6`3@J|o7;X_3*SR}dvYQ-kQpM}f!w^LEagclC9Op}CECGg1J zP>?U;rle-39N7mycCqdaO-)0TEi#UvQ%$CtTKY1N@2H!!%v+w#kxHOsm19di!SHXb^by<{1 zvvmgic|?7avQyM_jy()|NztyJNZb5~Xz$30nwqkMlx5J^gh~0euiUj_TENs!+WM9Z ziPtNges0gH+r#B+D)u0Ok&U`cnvOY*GCWP!;G)!+T9wVTy=nt?)QsALCS@+^T;J;s zq{%(LN(b^wRVr8oLR1h9G%4|Zya%m9{cgpDey+%pR5dTfO6X^W%q}r;8RUH36b{>w z8fm8=AmRTr;0BrBn}#tMp<9){qhA~F;7G}_;l_zIX((;!>FBM)&8ad+`WAiA$^KllA> zvfm~lO5~oKW5fvSE0%7a(IZKSeoF?|-e4(#B;Gzu^70YGrpPOjv?^fTSB3CdYO1J& zNvH2??V}Vbm$a*Kp=uo{8MiN-I&oz(uAIPw9p~XV1y7ZwpFk_;6JfITE}yGsm_F%O zv-MWW&znDhtM*zphhr>Q{mHia1gmLk*~~ZGN97-h-M9`kqz} zF|P_#N^d(38HxmL-3B?68rAfh=SQI*hEsy;S6Gy2FA~l78h7PtEayhaB^iD~i>SZf z+OSd!Bzr|HD&oDF2bn3@F7h}ymwz%bFKNbTD4}`GSS^rJ7Y&@Mn0H{rEU+lnJWVby zHwclvX314nnFE^pD!&6~P?4=P47}N)b3Vok0lSFVaseH-%7V(<@x~v{bci~r`#1aR z=-x>)f8mt9psM=wsLK#~iHc+6%|MMs57nBk?THrKl11^<^W?IwOv3|pbzjB^!3P_O zwHi~}v%Unfg%+3FleQef3`+=D1?_FBDxN4Z9^3LrDNexwc=RS{u_H?|l}~M14Vrkw zm8o3%&YZ&}QOKmh zqbLkDkYwpg?$JQPz@-Gyqy$0IKr(9}T^mcTjV0u%+6yh%!F5KE8emHgNU9#1NYc8V zx(U;iAFHuiWpndu(}E2QPf#_ld9?Fq#pa^SNRI{^5D(Vn4-Opk5AS~jMA_L$&e|Zg z_a}9CQ^b=V=%zqKh|(Yi^+ae0?e!7U07FRwnQVj&P100@Y^`IrGC~F^iYY*Y@6Jd> zQqpyf32^cPL*qPBZ=kNs)vTnoT}6wg&JDWxwpGQ zqwwQr3O+d3MtbIYkoa#C3yf%-l$8X&B}BtvOJ$iJj66l*yDbJZ;O8CpV%(0E`QLzWn}b9>ILG$btLxe z7`o$6mAOap|21{`dY*gMKsyZ8OA zYiYvXV>%oEb!OU5K1~F))%Fl>QbQl)^z!^`YO*u`B!k+^=f?l1DI0s5K&EOCe%wa~ z*V!A(W{4dVt$(C~$ye`}t{o8ZKqc`=cH0-1eEbtj8wkcJ^e9+swnreoh_>*EWRW40 zfk!OsTy*ZS-~?hpMIfu5Kn8Eo5KqQ!ai369O>&dP%!+8c=|1db%Ve=3nUO;*8(lOm zo3S9d2(&?vhJw-+WX& zqsB=KBUc~EQ|+u^(8l9t>>@l*>IAMfkK2}b-6z-qg4A#Zr?QBIB}zA+ac6S1M&>fz@D+1!aL{I>%B~V8J1{n5Ww57{Dbsk8pkfZ8<7Z z+DL?(E07&`2G=3%z0oI`z4K+7xo*^xwrxRN@50nS^M?ifV4qy$;L)DYaO0!f2_o7U-wmP1_30S6O|H>Q zO+sD^`>rE6#D#-3qRKfJ?VQ8*Y^p~v*D#*7gSKDBnYgR#BU~rzDx$g?_9jLWL^~Rz z#?MZp!!6D+N}DpFt&BzFnYh6%)VQDqOLmH8jYeU=D+iHH!PiST!8TM1={zNfe#h)9 zm!5=3bh8V$3Z5>?&PC6eTrxSyWeczBnJo`r(t0%ViPZC0It>IE^vBclY`>G!cG9(VM(A%Q@G(Qg2YrdH5RsayW)R zP?O<)4auUR{!OkIIdx-YRyfXXk{Fy7P51YGQrI{nB2cD>j{0|~wy}?1=MJ3a9>L`w zgRMXV9j;fgJ+Lsq8L<&U9TC#85lZ$*h;1h$z$V4hAYf%_B$&}uC5)2Sk?ZNd)Hbqm zY7CJw>y(GDWUP@eOq!tT*C(Vh|FEG7DH$jevL#dqm3;mfj}Tb-E3{Icg7FG!1Z^af z&5NOIR=)d*yS3|}K3i3e z?w%)i*Lfk8jHO<_#Zz(5zLYG)JE6J}HPHa2=UCiY(`1t5s*+BvaAAwfZLe|d-m>y{ z1B>mB9V?Rp3!BV3dioRAxke!twZ$R0TF1bu%C*W8x}sA4k@ZsXioP7?w3=l@pYl#s zJNxTE)fH`KKx>@wKX$%J^!mgH~%? zDG^m8U`*tQI@su>dB{YPI!y`Niw)RP>8x}*WMtgZJg|J}-Fb4DhOsGr>p&$@2bLsJ z2Pc-iXE=8-4Qtbe6h&Rdi;AZPzdY61-6lDh6d^FJK%+GLAdHNN0P^+zOcizbTN*-k zS6H(umr^i4i{j}Hs!DT=8lNeoU8lHBjrDm;^P2>3VQo>YX!9U6*p6&u>p`=FW z-Ux!})dEJ8>>F+!W2#peuHnTMBZTk+C8W~nXUM(sm?#{7Fb~Y(E|Fd_F=Li*q#_k< zAH)|eoe$v2oN#&EA7Bh(8!g&^=ZR&iUHZ!}ZXiJlP*)T?Av zaBA+*FvS5mBi!%@37w(^r__t2PK1&V(jj9=Zl4KNwjTg;i0r`7=SLz#jBoHbRd#^% zi+Y&==gojh)TwS-$-<;P=1l-R@=NNi5z#l&B4fPkK9tOXUICKwOKO=A=r@vjg%eoG zy>C9&;!7_=-|>fDTKMEEdYON&ufLYesa_tO`Yk;Jbn=Jel$r%^#mi}0AoZ*Llql;r z&VvdUKJZt&8(A(s`ZxF9=rBM0i#?4HEq};x+2Ls2&&F3qmI^1zi&ry^5Y7)~no*rE z%$flm9~5eaSo~ornmuuQR0)PBrXN{rQ0}q-L@j9tuS@R=tJCKxn;x@#| zHa9Rk&TkaeyXG|1 z4qWX{xDA>8R#+nz+l~BsAi4|L^^j~QoPW>M2jRKw@mJLecs;Pyi{Msha~JZn5iNfh zcwG$sP$0xT$P2N}G59Tl%^~><1te@-9o2l5B#^S!ql67~xpPw+e7P`zMg$G;nDb_cW@+ItY|g`cB*{@@mNGYI{H zybBHr|KM#tGWcQCq)+^fQSBDw8^y*m!aqRvk?tEdP34Uk`v8wPfczocbV&apY^`{% z#xu-6B<+^r>z8^5^9|&ye9p!*$=~Plk?iZ&d&v0({Hy=r1LUd?+Kc{I@WAr{E6aoL zfpcjKJE*)FaGxs+ZW%HA-69)e%YgN*TC+e_*(z&;HX=2Z>Trb=g-=^=Q{k_ zhi5w=+gn$Ah2m_t#G4VqtD{bP4BNZy7nNf1TejWk!nI-7L*}kQ*F%h*PP;i~QfJGW=iMjGt?@hHqxyf-?LI*o&!I=!^WH*=b+pSb!Gr zg{qOqL2tu11J)9JHKVtEKE}_vT0@UgtVQnSw4GNyj79#pZ?BMq%*>q# z*csXAm>K@%%h5|Z8CY8w3EG%hn*gw@>BVeqoP>mI-3YV^XxZ3U=vY}9*f|JjnVDGV z*csRvmG2&VNPch)|3Snv z6EJcRFtM}KaWFFhsKCfczywHXWo4sdWMyJzAplT8M4f=0^*_m}CN{>lhL%tOV*DRs z#xt>U{FlT<-MCrHAp(Sv8@^#2SNO=0;ww@J=@bFDPvJ#xpu$8IbCoF0qd$>YN@s%m zi#P1dyK^O;PAejL`2FR0#8D#`ev#UNLKt>TDJnQkiuUTSYK@OUY}T^|1>(q5kAg7iJ&t^sTZ|HX=Jlo=*yV58WvI%T1Ln>Af=0?A)Vp4=KBS%lVAHty8s`K8kneq7lbiM0@1HlE?(hoaAow^h0hiVox?_{8 zuk%hJ<-e&sd8k5B!*$Uge8@tOA;~_ zj#yi*S#u4~WqXVm{F#P}M*l!#sHd~yz)vh(t91}Kn1{XtH|TnU*bM+s34D&a1U`BP zKH9z9*8r1kJt#>1j>qKoa~0q-#K#J#t%4KE&jd+86@GNr{3bux{c^|+YN3V))-mq1 zi#0Xi=9zbo;Izu&k8z7I((i_5ojr?1K+sK%6U^;m-jR3aMriB$>2%vEC8Cx*yPWAWvE@p=ob(#MFDL8}-M)1|3UT3+mWqI*EO z7fIQsa9!%rzheiyw;X8$zW-dhM~BE|7__=a$JmZk-Ru(7IW$a&p4G1#(SNLOZ-M7Z zNrs-m$raX_VFBa1Zk8Gui`-VJd1CkcN1=Y`3`m#}LWv_x1@or`3n*H)d#W2$fE^8- zuxch@yXbijZ^)SmJ7Pp7M0nLfXN1h{c&C1o`7Ms_?fe;z=+(k}nybX=AS9<$)P^XuUF<^yD8-dRUC>95o@m?wa5mA*>6myxQ0^cG5 z@!n$eUGSK9uf9-*^G8jxw8ytHi;`_VX6y!QBW_Rjy{IWV&zL(jjEv{dJ`;FJM1Gih z7V%iaUDAQ`9egUfV+c`O3c~iW{JLN9WG&5BPr3&#!t{4v5Qm@F+QZ*iFBWKcIpBHy z;;p>qvreA^TJs9D?`zM5U!4u2GsAFp1| z#FR9PLkrt<5x%(|Tpb|7U7Z1sDQklV5)0fHO+8M-UD7-tn~bT;;ogka?9jeMEy#lx zx*m`%k(;N;A~+cWm z>2xuRk#sTp4M4k-zEaX&l9MVPji6M59daUXHdTZ2L-b=##Ja|DxJMeMGzi2(p14?> zY!rPy%H>=(Nuzw&_bJCmd8{r1wfH1=+8%aV({vk{Qn%FkRb{GkNM7jO!)o(=k4b-NlajMNt((lp+)%F*ATv1*P{IVI zijP0fIJs|ZZZ7sRYlJ$jGai~ZTSfQj?{9g)IaJ)cvL2YmJY z5G$EvVsQ4tkV^(|1wQwWE70nqw7 zVtrVa>=J}><{Knm;A_)ZIB7{!Zb~zBLza_BqKal$fUHusNv~Vkcfs6WIP)WVrq6Xl zxu=g8yZOFhi2XV_(6_Si{_`VA|Kvx~$0I03{|9K9tm8a1g7K&V)AkrUKE$}eEMgrp zKqcC_SpXX6R0^l;Kx#PmZXiJyEF?-Vf&9L}{fze~>Dk+xTnfqc`Agq)bqj9iGX~8h z>bU7;GxvM;PwsVE3s2%#%NKud=YjkV_spJVr0UeXy;PqT6HEPQ7zN-qU*j2qam4qk z*prm(QJ69UE5p72M0lsVO-Sxr%S`|#Y;@aw50o7<1mfy0b|fz2E-p;W@ass=-rBR-X%f(s8L={%XE z@C+sC$mB%#VO#3;U;%!0#Gmlsn2}gdb}%!TU$MVYK6hz^x%Ne2tH|fnZ<@NUaMz6P zCHUW~g#IP?l>X&+M&z$s$qyNV+!iw!MmO|G6sx?P`@%3@PKkdyMCq1Sn>tx_{R2T? zeY@!F{oZti)5zR=kQfEvhfQ&ydGeb)bCA$&8nGlip0R zT**-8i^j)lTZULo843@fiSt?3W9D#1!a}oxC(ERw%`WZ-WmNu|tbGsoo9h#;VW~un z3I2>j@fswYgFP&?`mk99182n41|g|LL4@_7jHvoMWTr=&humOWxw_7o_Pw9x<7Uds z52^cTTdSW6MR%fKB7`WT06*C~^#xjr`{mf3*R(r-uf8qJ+(s*+EK-RDAa#<(vX&ap z#WWDjSL7S;j7{c`=xOkXo-A*5uL$+xg*R#N$URto;SM=K4BE4f>G~_`i>2xGf9j^# zOWtU;@m4->!1BWbrAY;Q>MKGBFuM@{<30GFss1URZC`zrD)bGJJM3)SFQ=X&BZ|{^ za;1bsBYT8C^v^{rL*#^+E@3WV%c2qx=koR#Q8Toh?-?2{{6M1t!y+gi$-lsgHBxLa z&AoEx|3s>H&|gBGfUJ?4z)pjNSMWwk`TgxL#QT!+jEqpJ%CSilclR}U%AbUdh7%0F z`4(ZRzmnCpuMES26S((aSa8ZXY1=6#e1n2MIvT0m)@WEYf)8_pmWr|3p%ErC9M(4I z>D2C_Ac@XsMyOCfeSM8lnL@PQ&0al(`3MJ-=uc6hb^-%`pq-PpLpwCYm4#J23YY=x zopP+7Zf}LoXwcl{7k4AU591pmw?a#hp|gTmF?q`ZDzQ0$(DfDw0dvv;nF=e}_;I9D zr;uG3{)`4_w_0$(boLikNTB8mGqewy1Kz&sNMI7B26602H2ApCCYGe$1N6MixP0Du zLM~H(lU`WQuY2Va?8UDXY8Y&wn~(y@tUVmU9m82DnKRr_fryvwJ1~anXk{O=pq!v*2#Z@Lar%!WHUK1bSAXX8<(ROxfYjMep&{3UvQd< zbu=3%v?W#K)fyb72lLmXpc>Xd%KY9k^9Wn(Tn;LlS5l#{?e_tJAB8KpBJf`yP1Op5q+Bb%(w$)qx+t4CH4AL5 zVvSz8X;z__>F`@Y5h;)WX}`F_`t6Omq&u1kO`*e*s5>n}C~b9uS`z#n;n*naH|{KJg?!l7)6aNv|K zn6Cf!1OL<#CB4!uNr^=+{Ic(F_pG`KZ`omoK^L$oFs3a0BHUPZXf9Yp5EDx~g%f)FZV7cG!-CVF zTh0kFVz6Ten^FL6@2!Rh>N(5^{&y_`c0$LH628rnRe5vXmdc0zH{$npo~tC?^Uq@Q zGOdM0UQ<1mHH->b`C8&DWnbBa4*32(`XLnE8B*g$O4;Vu^Gl%4p~i%jRVD1z0sY2X zGqmD|>fi-xeT{^beMB}sIjvLH7h~`sv#Vn!6t&LHu_f*eNmV;wfZYNgm2A>RdJSw%kNU;&_`%jJsxoYh9mVI={J-;Cc5K367 zv;|S)C{9RgwELq=Dy(@~2l)Pay?}~o6gK>=DPl%LgK$xgs932LTPw}^F{qJo_^3os zwfZRnK^B81nzIp9!|fHSn5N|Va-DY@1dOd;a-rmRULnoYUj@8bn$E6o!bb|4TG+8`UXD zvzc;R&=qt(c}SxQoCN(EXlKOJv`T!e+15qx+Mo{HFnUu#M!X+S$-)8}OAq3SpbU5h zdCa^G40`zJ#1~(UDa1@}908MHiL1Xp4YmjoY1L6lNAXuhD9 z$VEU2pjZ$2?6i>Ml;MnkhRo=Zb{ONl0nOBH&hrGnUsJQd_ewYztksPfn%H%lTm!3cf zTq+$h_Hz*(_QPWwA>CF2QlrF+leSL4Amu8$fLW+$y7*C^l8d+qQT1N@pY6p@X!SGL zhcFdB@PZ~RTvs5!uud8I=M;y7^*N_x@73D5xw|#j1ti-P%KVW*w5OdFo z;d^?}pFr_FCP0>%=p)X@l<^uifrimPjxZ{uEq*w|u424N(NXTByjZ4iUU{=?{7kAE zM@ke!gb)>q7G*+(Gp~p^_ycl<s{lN#2EEK1tm>^iJ zb#B{Vsypad%N?8hYmoc7eIir!eBIqY0Clv0YVlrbKH+A(ri-GO*GCBD%&;eaE|QsK zO%l1YYeWvw32RV6SD2ce>6(@lmEossT*sLLjO{u5@l~xOE(dr8puPC zyC5DT1Us%LLvTZ9f5Sexf>|-CSk$@c#AquntNrV~{Bhp1!Xk4EO)Q2++Z^89o@H1I zkoR#qmYpuv+vQ|&NSWAX50fzr^GDKtjb?>sl`S$~z$uPF3y2a=$4`UC$J}xh^50W< z>CgyLi3T-ntJ=fhwRT>pH2eHh^CSl^Al6a+_?af28J&J6HfmdOdtT&6$5h{$9v441 zP$36MRyb!I5>oe#ogY0e&$GA)$8sRV56eK})M9_k8d&UzUW$QL@_N(R+DV~G8pPA?~81*fL>x*v$#8eeg+2j6}S13YJ{;HCxhpMy9<1QYT~a;Beq*R zqZduZ#Is{7t26`uqZvw8X&>tfc_}uKO+)++`uX39&2i(bnTyKRgtbaZK zK=!`$@s5CBlTHQ4Jt`a^AzIA;z8kh`xpF)5S7}|YhGsGOU)sLwLlE5Y;iR)MX^;p* zDsPSDkyY9Vc*KDpDgT0vbcH$=*2+ED(FL3C@I*3=J;-5zV{mK5yhyJ_T1eT;=_^q8 z$Xb7ptj8?{N&dUKnQ6|04RKjG8)RV6HUb0V4y&ckZT^cQhVw9>3{3))m6m0+#{f_~ z`g6|?6GPdar-h=!@z5I@5)6J1Nx2C@V@SD6bs(b5;KI-jX((BGn^1x)MeNWt4!pk=_+&SNZL zn>>e)3JzP*1?V=&cX}q_%o1Q3Zw)E|vdk{b-DUF+>w1P>>xrVMLc`#FhY(I%YU2{0XMKA6aM1@Y1tb zyd?8x^(2uGTxG$p2==2d+WHJWbRn%A4{!&kv=paCsUR2zE01`BL}R#BR_`85IbU0PpyT zI?X)S8RyW_nUK~##ka0YSz(hrFaFPK_b3TkdoyY^dG|&0^w5806t^;K5J!ET0bBA; zl<8&GlsDYD8DsU|X~=k!bw!)qAX3h1Ymt z+FHh%d*adAjdy8R#~jL9e;(am!enVZnGdUzR%2fGqGmNGJWKN)kQLQ(ipuUFX<9jp z4ZBBTc&@POn|E)D!m!7r)J?V@YuXV;_{`ftsz&ILI+|RhE*GK2PiDIRME&E04ixuT z#N0(y$z|;4aMieiCtMDmLGBxLP95PSvYw2oHj%9R8_hYIUH7{hjV=>q{@PzUt$4 zhep{>ZbMm87|E_LyS0&N@p1wy?Ro+Exy>=+#1Vn*)VwS1+_vBDmYy=46-064how|h zr-_Ch9gHHZ=57B-06*57rzb~{O6XBpPWYx~qh~uEr|OBrI|g!3UuKOl^hY=|n-s!u zU~~3&Sw%wrKdF)m7N%hBmX^~Czs5@S>AtF>`-DDPU2v{T;nLy#s9dJiM0a&u)7ZAB z8$wH%92UA~7Pb~HFZpcC(70f(Vei6aWpvb@WKOnXkXNsXhb*zRdflMx$SOt&eDnst zvVTFsz$HzQP~?Yc7T>!3H&Q&(KIi@|R{rV(tDdjx#t{_lnp{L}WhesU-QR&aI@~Uzb%>$4wV^94HQ(Q3H>D6p5}(bu%m2 z9~!1f#$5diM{P35T9S2K?WD$uonu99*5^swZq0~V$6B!XVlYNUEC+w@_W^zXEm0C{ zU@v@bs#e~1<=)9EyAoZw^pE5P`Kpq1?)Z({SklM>k!1MW?j9;ykh9sW-5^?!lm&b_W+JUE zB0iUrM98NjE=-2O6ZLX&ia(3?K^7fJky#EENs$$8C0Z=|-cch>(0lF@b?QNdBtqm@ z@0gPVQ7Boe{x|f?*D{wY@yG)(9Foz{jC7 zOI+&zV+Rmg&KyDc5L+&TgffC%r=K43x(4?65K3JgGF0wwWsoGC@r;sRLqHJr&OWWgV^~_p{jGpQ3R~Khy0K+yyGCKkzViy?{}Gg9P?jbU-X0G*c{ANgKM4_>|eKDD2) z(LvY4c>L#EA-b~01k>jZ>t(@(kEi;0f{O|qvm`+}60HW-tNkNd6^y1y%K1P0fmqv+ z^o%}#;1E4>z7fztZXT4?NpPxh_EQyZnMzXtWr;&wGZLO?1ObCp!Q^ z{xfNg^s^5;io$co8c5pmG{w`ckuWVcd!hJJW9Q5`y!-My(jw@Mw3O4uvBc*^whEtK zG#-LHBBt}De$Rz>Imle|jdY#UcEZO{StDnlv;q=VI>S=Ve%U`qa357^gIiEPr(3k! zuE}vu0loX4(|sq5^>PJ4i2;nH`AQ5l4<3yc9055V*#KI|^5f>;x!+p(N>`cui? z$YL9l&{iuN&d6Op{6j4XMw8U};vZclabaqWzNGOU>;s3qBLn*??Z<9teslYvqb>}-~~bb@;Houp_$ z;*Xf(kl{b#!@C}%5om;un{jmpF|@{~paUVKtN)F?w~UJO`x10<3-0djR=5NR1b252 z6z)zSSa5fDcXtaA+}+(JxF%El{(W!Hboa=&xp%F6gSTo?bUBEe#t>91|Yb`xmq<)%2037# z!V<3??4vGAiOmn15d=zoXF-rK4kHxoECA2Lj=|DNg;Pvan@EeF6?w=^K;?%8QCh3Y zIwPf7MjQpTq;FBYISDRu^e$jO5`K!;MZ}K~v6}9$&b?n}c5cRGRD)ila6G?TmfPlW z-oXWg0)4xz3F`^`nEU4r-Y^$959<6TO$28h(A*n22gzh+JQtiR9Db7jSOM`n{K8o) z;k7YZ3R7X!OzER8o*Z}Sm2bwtaZE}(>ywYK{fP?yto?M+Z+D$e6TkLaj3FG-#Z_KC z&r*6p@CeUsj3>ltp(SE<3>MXLGaZ3vTgpnk+>BpA4yu;p<)=hNl5^>9rHz{H+tOO`jrv7oC;a$zA7SKp3)kENZySy3tGAsECBrOGU+0;lEDx~iWK z9{|Xp<`_#j8B`slD2?++JM*KtbUO<(bF_+gZu6n&6>K}e34yI2>At3@Fe@?sNFfOZ(g0zQ59 zlyb(BTq$kRwOu*4?Pu}vwJ>+;$y5)%Nl-r8>n^`3}j-j*gxM;v(1BgRFoY4DIYORc90PPg$sHkspPdY#%Qrtokc>(4j3oqAS*TD0o z3z>qmroztbm6zcR{6p@G^KBPuj!3D8@{n5mHol6|HBSvp0%AFBKSyz1OxP}R8Cdw8 zm;2$2F3e)dC;`8-Sd#cpb)tmknN`fi}sVG!k zZbh`u(wV?4n*j)&p^KqOM)XAZYCh`No5M?o#}V{Z*d=}%j)zdrc-S#ZJ`_#Rekv5S zS{R#rW_BHkiO}I%!E%fVHYi7sk`bGa#cxk5jnwg6)UDE^9h$~R=Sq;7jMfO2J?Ev4 z9ApSMS{!F_eGF6)^%7rBwRnUtE;xwB$1&;$P>(40o2Vy%j18@fAR?7r!21`4*0R2D zG(ElsRf{9QIT^hStbV-!T8O=bHO2I9tbX8{I2`+12yRKvk@p4%;i^1T{s}~t!Mefw zrT51dH2{)p)D$-WFqyFx76fq@U*kM2x36iBlq|JSjW%vIa`r7nPIhA)4J;_nBu+F% z+(kC#;1&)S>#ko>%>?S7w1O@C*wh77D9bgM5w=Yn9?K0Ens?a4PgE-5-p}wj;H=$U zMXpjxpfu5BY}O3^8Pnj53o-R=9|26i$7T9nYpj_kfq#WaKlLnF&GcRf1FZ zRUVEa4ZtFiQ|pv`2Bnxe3PN&)QFNtWQiHmc|2Uj5KjYAToS3_248|f2@8%Lv{EAWJ zi^$Ph#U^{$HUd>&xt)LNxKZsGT%Q}3?>$o zJS8Z}z$9h_jcd-D)!3pO(46fYij7kqy&?K6Ee%jS{o<#5U9*UD0AIqXYhpOu+s-?x z>>x}1UFPcI*(?cx-ZJN{$eeF(R^~O%c1%FS*qTnR8SS(fhBG#OW=;lbPLS7F;kWq( z6=ysHqoMM~GC0$>gfwqh+N)baXh2 z#%uo*r^>3jt{it7f}V+WuTnKCThR)Fi|(N2HPXeT;VygAT*Jn1m>c#%-S9v1aH;0_ z@$B&9ex5b3g=1G^Qd)b;DyqpgzrJTrunH#C8I7lT18viBB(;G)%|ld7Qu1#mQt50n zGqNyNva@&TyN3GCsgw*}?O*F=pEPY?Zdh()RTIWx&x8Bb1= zAtQ3BD>_9vlS|IErhg<5$fC$lkJP_T$`mDN7g-K->IQto)dplZkj@D>#Yt%qt%Q>VG}!DS_G&SksN)+Y$yChZSG0=iiGt zRtDd#9lif(K)0LY_jThh-|E=?o9Y+z5M^o(aR4+EkZ-;^ilP}ObD%p z0v#~p6=xK*x2HzaccP*)AFl61jvY{EWleCg#lFT953qvzcZ}Ff7C(41P}Ex{HI=f> z<9?VY@2HL`-P`?=>2Nd!y{XUP8VKB3NHwJX#nS7%lMTB3o}SH)@jIJ!>CSR~7Hk6= z1Z?P7rVbMve9=DeUo$rgarOAgq%H11gm-|e{ZQB08qDMrVVmixnS(i*q8VCbkp2lN zJaIb}quh{A=DM|1OB;0$Y+DWvo@W+TC-zVQ8#dX_D+o2Q} zZmlw3IW!$Y(P+}t;RoCn4ZqJZsO?N~#38!Pq*o5Na64?BFIit<1itYonW*6Oi!6p& zarUBHb*31Bu?f_NCTWsHnzrqQTu&n{Y9`GFG+hVSQo{@A$;D`V&u=i0*MSm>uo`cC zU2Wl%-rSo+uotRoe8e|qBZ~wDy!d#%54f!}JH9r&?*uIb1o%P3Ni7Cd%UBi_R^cJ=HVEhIHSG`h%Ube|dd< z#voBj_o*NvkUYCXNV1utY45shUhCRJn{-oK<;1sQ$+`p(TG$ogO+I)c3{lB(L^j1* zLq~)_Ph5?`XSCFqyz$7`ZaBc&_0PIud5JYG3ysXNZ9#vdels?Fp&)GQ@{(O?DKPqh ze|E(Y7tA(a69lisp&PJuAj3f%(kpi}HjF=zq|$Q6z$CF?)Ddt1e0f%3aqc!um*rWK zz#FmJi+K4k(UQTYjFhz!Uyt{O^QDekIb&iY2EORd;MMa!cx;GgT|`SRwauaHtmZz_ zy2^SB8-cn$sKNac%9mMPYJD~8r`Z}dm~Z)~K`dRQkOc)VdL1m+R|xdy=;~-u`QX#N zDlU|l0&MwEi%^9=QN*EI_!SO zIFNDa29(I=dVC62(z+Q7WqVO)wvKIbBrLShT(O>)c=gEy9AlH)G{NbW%`j~jK|Tb) z0~R%%Dzt~X%0d-Rwy)^*#z%1Az80)SoEdE=uQo&zjQxpYQ!=kZR8E~>2kl8@==B{V zWU5`wbH_H2RhA(52^xfL3U- z#sCg_Q&4%Lne-4}t5%*n=R1H^=;PJQS|@>+$I<$Rk^;Ha*$cxF`fY4E8^a!sD& zmj%N-Y!abqM4G*mF%N%dj3)W>T?qM4Io*-jxcA1#Vu4NJ3sAHU`z{ltT@+H?(PE6aBvyq-EoEqs@G#zwngzMEYfP}D} zhh0u)E837N;wD~Zn>gAwbFkNl1|wUhcItw0`^cu}T>Nq2D5tb9P4g&=hQH0)1RPCR zWwSqCoQl%CK{da)13O%w1G6E)S8D=Yg;3j?Ik2U|P{m7KQ@jXv!KSH@#Z`nE8wr9v zK}9OOgS-@&7APsR+0bhrrUA17rnxWYe#7F0uhaVBfJU+9t0{kOfyF4}L}orR99ap& zd?H zRvqEkNIK>w$)EJoMl~MIG8#Lor=bncOQLQG4%7xu;oUUccZAb0Lq_D{Bnw(qQEnG0tI!E@U{1%Ywjq1Eb>>t`1Cv~86(J)dIYQHLenecZ28NP612G)OEt z@#${AcP?w+j)uTx&cO_wd35~M0)HT%!xISaApiEDORkK+1b(XwG3q^yq-s>FJGAPh zVIem&jg(xrPzZ}ba}Da&m3yn1JD}irk4dWiGTGa{=|e!?Rv9}`{lGl0;%uxoc+Wmi zeg7DTtHBcUle(ROv|P(Y#;rV=bM8AIHY;h-4E|AacJ?^-cVVL;qYkjf3X}n7OqL$a z@bU9;PQv360E#JYAYjxw$zFdG&aur1FU(V2fLaXK^ZSinau);rw=*!hQGhl$9Al|c z4}orj>03#~djfL5GF7F0Z_hcuj!x&Q>!Y#yZ#tTeq?D-Dl;vg&nxwURO#~eW<7{0h zM0IpVtGN~@^7x%^WfjzzywwmfYyjn)JA9v^9Myf*3Y zMQH-|t@SY(7)~>Fa+svl9Tm8k`>ZV09#K~fLc?I_CwFI#y4dWFQ07_(9&Z6FsLO|O z?X12j-OKEWx8`2XM}&6Dpw<n=74N#GJkI0hB;#BELCe5=|99PjM#7+rWB1}W z%y>6&Z!!v)v=wm)q#Bu5N(q)tW%(`I#JKUSx`x*)x)drpV}p)^&EhOaPB0xRATNF# zqgRlVQPLY7w6}?^pokWX=$9{EMK=LD7y6rHxesC^)f;jq1I~MI-;cNmZ>pkGfPe`j zCQxTl1JnIMDm&3othHqSoV3hq%~HGp(foeqsXUle6(>}UWLw8ha>DXX6q#ED+k1NO zn_x;Qc6wKeHWx#8m3Ht^p@9HQ!wx0ZfKqobiRZjz`np@M(3J zOYdAcj1i5|;~-K)4*SJ)^c20DVWSo{IaF{1)iVl$${r02@P1W*)qgkGh|%hyOynBA z?H?@V>#r5Wm6-E+Riv4dQF|nn!+Nny%_(4mS2kbB4&JymWk(>XZ`Q29hiR-t@&2OFc5s=+aXN383 z@8upY?wZZI_W?)i8nA7lIf|dPOs?ED=)?59fWjMvq>)~8%U$r`Lej6S7QunX>0h|$ zwuOp_tLgZaVa5cMPy1>oe%zE1`)wT;oku$_Wo!^pD~R-6Y9}}G3(uyKt?%$rLxrhC z>vTBwx?tZ87|T*x!=I6#phBc8Sh&-|nQZ(#_8cy#ed?Rk6u;SaVhzDRd!Ave#i z7ducULx)ZEcBQlNw(QdPvQQBAjtFfIw^rkb-`Ki&&B*8TnrFrNvB1->-@?Nl`t1MJ zzgz+SyXh0MX0~6PE!ar^a`^vp`2TYF|8n^Ma`^vp`2TYF|8n^Ma`^vp`2TYF|8n^M za`^vp`2TYF|8n^Ma`^vp`2TYF|8n^Ma`^vp`2TYF|8n^Ma`^vp`2TYF|8n^Ma`^vp z`2TYF|8n^Ma`^vp`2TYF|8n^Ma`^vp`2VkR_yHXMj_y|Vus8b`#{M0n?`Uc7Z0Go| z-{p;LK(G8qlDLGm(f`*u{Qvas{Rdb%=YO^0|Fmuno`1GR8N@O-ax#0L2k@Ua;QwbF ze!%-sf`7xb|F7ule>wdBdk#O~znotInl|BL?EH@!y(<%Fki`F7c>d2h{D60f{ZAbJ ze@^p1i1vRsV&Z?z;r~CJ$iT+R#r;2W`1gI*qo_a}ejmYsRuG5(kwOU~0=j5r*2yN{ z-^WkSD?&UHJbIIa6;~J?4=?sJ4FktS=mp-G>U=UC44#M*CRH4Gsr;YT0iBLFG1fl` zVa}|xHSeQPekUu6v%|c(ZtniG+WhCH+xE{B2*s}iCW}$|WH*}g^(Whb zpA>v>$`*EtpIxr{kJawq`}Z&}F9zLjy9P)1i+_G&+bI@qI3mi91PPsOcKiG}2SNDL zY-8-Y-(I*=QWu4Dq+8$aK_7`p0UDvTh}-%jW#^jaM+&8c-yffs^FLo-ZtOPk^?W2p z$ciJ}vW$Z(Ci6I_%fZQIp?1!j|G2#r|Go-jD=Pb=Px8vL`P=MqedG5H0eh07@$l*8 zZyS#Lp=Ub?E#I3EyvFFJ+CRUTl#mOHD7j+@smXrdGm$|JOV0I@U^5arroyFcw;PiD zCNU^x07Eyn$>tF2k(}y2q_})7cVAni8}gVn3}t&`w_>`<8|eP=^GPkSL={<;BS$Td z9Kfn3ul@mX>23gV6M9mKoDSTI*-V{02e$`52uGcK^eM%1B;0bQn`XWOFM8AD2dC9) zfe*VCY4LnfR~Zb1BqAXOA3sct;}+Z=W2|_4mlndy5dq-Uvy{~-Cy!-DI!G6iT6S5= zOtHT^wY4mGxO>~wqJ8e==s9%x`4K(FxWk=PpeFk^D zNIf8h5i|^&d^{_@>hrH;mwSaz`|4s*&m{K^R6z||vtYY?Twv;5(1vDsj*RhOc0JvH zTznC_jXEX$G>5g?C8HXf1L&ce2L}xZgaa-)HdrO_T_o8gUSq`g1fd+*j~<9k1}jkV z2jXZv)MUmr#YAO~gW(s3Cv)yg(4DVBAW!**&#&}QTKCLWPg5fDqloC&v~o7e%&N zIiNku*P#;V4V6bHHx!}4Vhtn*)W?tHWqy@0BJugAD(asb^G7`fSOR$FKL6K#Wf`$5 zy2E3Sl_Li^LL1E1M&@@NRI~8k!P6!{Y&A$V6Q>5%&r*lGcCtaa_TGGfGeY16afsr( z_Ha?jcFOSYEqaNK)D^DzOdQb|_9%|_U2LgOM0!}u47CZ7ChR-FfnQ{@ zwUCXgmqi99H-^NKsxqHhhm?qNv?HZLw@0$}yY=2w8f|0Jd+KP?!jul5BQY*%UFJX3 za8!_LAcs1!0f|{^YwaVVJrG#<8Gv&Bj>I1txB6I{AJGP`$uR3wY}=n5ec3`S|2rBicb8+`fg@Izp%^ZfmF0{X|8P648` ziic^hB|KLKDr6S~=}9!Sobpef2oJ}lrf7#AsPdXxY=9k{Be}8B+0N&6KXPiZpYa!& zao|Fmd{>A-KjhazL!X22~9dx!S*T$`9&(Sh5n0W$ivsp zp(ecN!4`$IhwDt#pnCPIvXg zc}aidjYtH|q{*B#4^@($BoFt$sC@CXrmy4(0P9DG6Khq1=Ur%@2qH4|iFlGe990mi zzyy{_$}6#{pvn%93x(q+a)LyNMpoFze4kvO9s*8H*(EAi9O+MRpOELsZGORYKJQ8{ zeJai36N1x}!^Xit8||Cr#)<%H?!E6-@nA7o35#6PbnN48`rWf{VB3YTi2#?J|4HA; z*2WM>notV-557TLc;oB^pIruU`ZZq!gt&>?PF-5CKqbnMRxB@)I=jFkJTc-R2%xOk?Z~NBMj3m6)_j-)a+#)gI7{w;RP8^;j zg8MLZQaM6K;G@pooXK{C1^cyJbntTTB$0uqY~1|i=$BejGHF)B?J8>mj~#Gus_a9+&jPH zn!%Nt(#o5Kk}CG?VUvg8uQyO4Z_(&(&82h1T}v=4J>W99w;}?eSwW9gs_YT)Np7V@ z*!taHTT^f$p>(-EFjP)Pgpo1(wiw;nsv?^41=HJ3b(Y``#CVuw3!xI^H=F^7+=Ok% zOxj7S=&l^`-0Vr-Pc#sH&o#uwon;S3&y71U4T2&gqdpQ1D7nQ{1l^8RxBD(HG;|-ar?_)pR&g(+D2rs8PF1*KYW;CnpJ9dnsqy5!C#|3FYO1hNa2<~m;Wcx zh*sRI5a`2exLH|F&}XZJQQyXF-%>O0ZsK)m0P=F$=w3jIT=4CqN9QZqF*PbPx)z5u zx3~{Yh_Uo-c3gvoo@mn4UY4!)ItpS6o1FjGRBpl9Y&j(*`?5IYq{T2Yq{m*{giJCO zdJitk1CQ9FJC&bO-Ci)#u2En>7?Hg*>QM3Vz#7oOIGt=AsZA~S$2iYYCWf2p;dia7 zrUqzefhJcZpB4tFw`?UpynaufZ)3z?+dD~M{(@|I`bl#RsPXP$^Bl*lS|g+ms?;jz_>-w$!zUttSYRrQ&++oruu%ZPm%84Ux4+osMienFk)O0jg{cj__W;YQd$go z?_+d==Yw6rzuHG}8(}EF={)Z_K5nd%|G*vI=xbWPqp(nlw*=%}Y42<#mDJ;kb5)hSq!#zdZy ziLNHdIKzdZ9*Sr&HxRM;S%Ft(jv&!PE$_oQGSlvUJa-77nV;zHW|aR>Q~P^CRFd0- zU!}d`TPgaa-!4@axUlAq776>&c{f$N1WyC4qjnp^5CDJS^bMMP&grM5&p zV|#+c7Dgi!RNq14+ALa3gSlafh#NDj|J>c0(WO*=7_>I5;~Rw7iJ62zk!czU(P}+y zQ2T`YA0Lg@gGKT3x|{pLU|5%71QQx;Ke(fi$NvS}>uKu$Z@hOxY`SOxs$1}N6 zaF@dkOL0LiHFo=A5MtF#o#SX@5aOodcRLFHh6ZW{@^TCNqe!%6&;qv}4o4Pn!LOXj z`|1<_iCo#&4>?V8Fw#2dYERdy#CsQ5Z2TkGg{j}n?IzGSHk~DX`>$wD@RI5diXzJK z)OBS7qRUe+vXY>Bv!^-2*tP42IodliUpE#~Ftygbsr1_^V zU)YT%qIqK4H(OwPF;JW6sgVU^#e>V@X{{u?!CU*@ZQa$!e`P<+F7j3{q;zBz=Y=gq zYS60K&%4GoOvqHxY%JxGENEI?*8|{5zm|e^)4zk0#s+0UqAMi)0vEebF~>Z#o`^|h zt=ZNcQ#RYcxXh1&KQB@+hy6=Q&)I}{cG&XCprWHEhu{(hu>MFiXEOUuH^zTNZY}7g z0aF0mZM!S?!rX@jh zn7HsQH%|-#0>Fp3bsdQ5<*;?r44JS*ZZ~4lf72U1a=hcYL&{h1_3Oj zsVYjNZmp`c8?wC=Kw~0xHYNiNPvzgtOw^!W5Dn5?HYRP`8r=O{d-&0vrLJsTp@ZFO zq@}LDB2$Y+vB5~`LBY!tF=Ah$N!XBQO(FM(1uOiDO{3s7g$EBc$QUJ=st;F{x9z&6 zb*?hzkiYG7O0_KpK@KXp?dOU$DK#2{au#2iG3ID2v<=yykT1y3&+zVH>nU}1hqdoL z9!xqV=j`3-OT4`{P?gLGWb>tU1fnerW|>cQj+@KcjSa%yr`2*5JI~R#u|;crPH4fd z#BYwaopNEKJfbR2vvRqIQar^_qOQB|$vps;Q#pWTJ1USkInAqCG4IguHf;jvc75Zh z+o#Rhy@5^;)>Z2@g4?v`SMEz$M_kI}L|Rq9u%Rt&_5@2|0$*w^xr=;oR)5)sTIuH) ziZP=*PS}Qh=|yG3<`yIZ9yrp}e8`H!Ci9RZ$f|Jmek(oKv^B%GS4#bQ-wbc?0E3~b zTnJVy1Q3lOKWZ5Abq_6(v`) zwCa79#oJ`(p+%%;*-UHRXF-y0k~w8TmDb$L$SY-EeO`s01An(rLDT!f?CkkF(#cao z;vbAZ`rIZ&xJ#e^u=;hv;utW+E~K17kCen+QK>ng;cl51nK}5zam^fhYz`kK3bVqYF#3yTO$qoRWrsKshsSH|{q}hGcr%q@SvcuN=}japqX#t505RwV8xy0&(=y@tyK)| zOv@OVVH*=rT-N{}oFFFZxA0`0D$wYKC;Y|nTS zI-`PIi>X1NcM;^Zig|bMpnDpk?&3eUuWIVN3^o1Z7)*9u+4Q+)z(lb}+P zvk9Ya4zgc8hId2RK{M{6zj!ak%jmNldJj~6hJ290zkaOxOnzaVD1>S71wXo)L*H{~ zhGIKy>=#$h#xx0WC4cX&$z#GzHMXRA+YjFX)(8^#Iu1*eqyY^=q&hbry()pu3#oeZ z4D25}E*yu1(i3p<)r7!{b?x`#cx%yl-oIUEZczDEu}flJt{fkTPL)5~HG(Nk`D^8H zs>(bHw6VUQw^DA=l^if6O=c3re*B&_Uyi z1WESbE}@R9>RarGpjD>B$Kmb!7HSLbnQT0p5WZBtx{S@pCW=ZV-|-x;ZP&5W1(!pS z{%Kd>VoZpSI`_d!7XvF0DZTHkxLqGO_$htaR*9pMD3ane;q*=$%tSuAJq+?xli1BD zHM2mQJrP#f!sF1$iKaJMO>x|GRNHlm!9rbJMXMv2Z)pRvSvBfPrRsZeA^Ya-x-|Tv zW(?zM=f~}~m)5#y1i)Yn_llY{GG4t~4MJeBTs@QkT$c=63e#r`*RJplFTEv z$6;Q5cf8wGI}ekD(2>X4iIK;jW|#|+v{&R$1g|W0O5GaH)|rF?Cy$FZM18fGx8?AI zZ$9_s(wieki;LaBA^^I|F0lO+DdavhTUP3m?&&h{b=H?CDa(KyOLv%BE-p`@Zl*4@ z@|Jdf@@Sqqm>B4Ju|o&8v8L`cBX`ef1`Xc=O5`hxVCHk5KHvvo3dKt*XcW(96?y%A zLftj!b@_d`ucC515i0Hzav8^DbcSfla9@lV0^iS7jHd(~Y(#=5g3u3W%90V3i5fhD z<{Q@8!>%#K5{~0a^kvl{OPCifBZ*!u^7_l5pHsQ=JYF{eWRiN}2;y^0y`It9a@DVg z9c!_bb}ul?%M0*=bs3nDt5!D@dfl;QTj^WSdm1$_6yx>yX}dzZI?HUO=ZbXMJl4nh z;>YwsBKj<=0}|0=2U-z?T0?W1WD6^C+4-A2MGC)nKjBpTt%&`i?r68L!*b{)7w?Z= z%WUHUYJE($bYlT3N38~LNE!h~(hu<0z;+n5bl*^&(xO0dc&wswh+qbkRWIly(0aP; zQLVN<>2mj3u78njz?$frzi>fJd>1uL%i}a&UQHZ21(TGheCFHJd!Gd^Kw$x#em<+! zE-Y#FA#s!1CFA>hZ#-ja_`J=|Ltn1x=UXnI-9OV4cV@6V%q<8j$7@hCjlt%*6lJpW zF6m#_yo+N(X)~#M5czV;0!xKrlGEW&My7AYIyoi;UNE+7gU?vv=Qr9YKTrO=LEL5K z`={Lt-WebA?gGwbMp=m>5n9+5qmcbf&oRO`Y@m!flc_fLok~)NKnwLA3H7j+L#{$6 zv1g3_45u$2D&4Dyk*|>#2iTRp;tcZ1C=4vV6gO4+8rm z6R&6i>aO{;eM#jf%YQV51X4+#`+`}No{TynQWxf5h96^({$#=W3|Dl*pJ!KsIY1j6 zF%J~`Um-Z<)ZuE(Orw|x%1hFHBY4O;>zK+O<;SV&EuUI ztSeN&-9+(br)#E@Q$?`XJP-c~@|k_}^#Pf;t+@P~uZI0kr2gH+iI?T{uu#+sU@4JN zcD(+=z~X9c0y|A{0xuB9MD`4GBv0an5%l@55cm*;-yQGbnHKR`1PS!Vf!hqIh;4!Sep7`HAdWR-!IJVTScIumC2BY$fPlT?IB7=+krdrf7CRfh z31)z8_pAcx*6)O!MmkKtp9I^K!J^PN5iKPxUMOOlNSQXu_A0pv;AxqX0?!SE|QfqzlJ?aF<~G^JnRhDsXZS7#%YoHTdRg zGB)kbAFgsGW}4`oPJ62DA5=2tIf{_u?Bmu*0o(e5-<0|l3q!xn`?R+NiD>hc=+gXjP?h?c*X)EGW7 z-3Ui}?Mv1~@woPE{rpzds5MGrsUe~gwv?aV_}XN6T7FWr zuI#ejuv%B8fenzh_(xgj>iM(0YhAID?u3=w!@3GjR=zZw={YfKySr()f^J6z$?NjV z#@6N<=Haz?OGy`Xpxtni_DqfRXI@KgMLfnOVaRzYbAkqAlQg=rh5CqD$qRPmGSXKS zlbs9lMMiyK^Etd-qIOer$_D^cIwz(@sILMiS- z-Iy*Nj3MukLIgObX1EMzTQ(kKO4VLX_PLu0nA*3)qX05LcKy7}k;|e_{FmyHdkt>- zqc8hpDBDhxR-*&b4Q^DPv`~tBgH!_8;72EEI0QA1DH#S@a#T`Vl%CMTC8eyvm?n4h z2Z}06)9>j{-nMZzLra4z>0Yo=kKg@2AV`4-I20ZP@Mu6o`m@H#{`-naWsrU;rlL}@ zda6{TfFo*_Eoe0K@h%bbYSDjw#0WIG`zF=YhX%E!+1#hKlv#`idP-N^oO*~593SGC zd%d4|ImxUqL=-u3Ve|CudSBL#X+w`YfogBR%G5)r>(x*(&3O|3I`$KpP2b9TK&8zF8-x4E15kop+e!D4S9XXA?BTFzN8@^?FsoAw&De( zwjvFFDn$E%llewU1WP{Jx)q?34$pWDXpN`wWd9QF?zBG8UX2)ykf5vyc5O^*MC21wW>~!0Q#81(^w; zWSd9YgnhE2VeGwOS;B&v z7fTiDWZDlaxy)eze%+1Y98Km0D&RTW;xKpN?t63n*U1$tjGy~y!FbLzk3mWc;U``S z_;1)Hy_TA|#JZqVg%t}PYGbb)xZsF%lLdAnDxFo~rfIl2-V)Xj`@6L+5=5wU7%s0M zjM_h~BFagwY!GXF5CW?YL|6K06&F-Fs0oq+-n*nJs~PdS4Z_t22C3?mPvlliK~mbt zg)2+FN{4tH^tOGa&wiG%GXux%as=+(kVv)I%5P=RVZ2Ocx5Sz`JOerFTg2KqnkLoP zvmY>Nju}oYQ1JN=c0Q>J{)*PJS`zFdpoly_D7%xWs zswIxC=95FkG8L(oSCsi#qvQ~--O2WzINtfJ8KA{Ur)zv^*V=S3m)_P2bQxMJ)qRR& zxJq?cU&4QmY*&Gh5$hKGauU159LfFLu+5cM2g8579Z+{|8(Gm|fOv{3bT`rH+s)uE z0yJIJt&eFN`sVpM)ws}LP!6p zQtTtSn(Gch*LfSXONFSyx7H0ZM6ydI_3)~@hHWXv6TGjdSRpR15s@XArxigeM>F0) zkZ=Xs{=F(e9s2RZ))8ZDYv|Ic0{ZBKrb-|gEQ*K6Y33Qtvs;N}xD0BzM0ieK(a>IG ziQA-;qwY%YxuC@(4^45Y5VPPGQ5)OhJvw-9@K{hMIHaJFO8OafshCY8qs%UxaA6qs zLCoRHxrPH4(deQJw*O55{uU0RVIFB~Q6xFGwV5`I1o-!9afqFH3P7`Rq2V$2e9J>5q+Mw~}-D_bX5_rIUrV2e1C@z!|v`qmw^10ZMI-m#*W3{6E^kvdCCI zzwY$pEK}<|yDhqPHd=grlYfP9MDaWm*qujg&#~~*8y94cmjM%nmfrZT)i6#WV~8VA zEL-MxfGl?yt>O5AaC6ZGMY_zNCsZY`k8VoUYx>9!JiRFeRKR^=kRQhc-fmoNcBzds z9Y*MvGOe^UgNof>RPCskp2pI+Er|ZW;p>#F7_55!#=g++Dy)qb${#Tw%Z0Eyw4qs2 zg<;09f#R^o>77~nJXu-;?_!h4 zi{8xQEMFl-gq96X=9-wxP+BB#K*t`|4UG|WOV0qN1DmlgPqmS_5qGnf?Zk3|qPlwu zi$tvkf46*=D+B}(J(QRBX-C{5_yQ~lKemUyWb)K3>{Rxp?=STE+-u^$9Pv7p-G97D z%&;1IXmJ{kI1dz>C%D!g*?%*^;4fqH`?}IJVz^Gsj6Y0XjS|*exHAFwO3pz;DaI1?WU54+#6Wc;BVX50@<7B=XVbRXbR?fXwt<{DS{N}j zPIX>M?>eoJpGi+q_WWfFUUW6<&QJdVu|s+rZ!iFK$7T9K1&iP!mvx>i&2Vf|xmmQu+&jW#~*%?)K< zu*sH*LJbiFy&;2?$AMqxPU+%7w$HY+A9KG672R=!hex9(!&Ze-d_4ig=s!R-73omZ zuDni^02c^w@ETbCl>i}C+Q)Eb-->CXe>Oa&wdrZ5h6ToHew`mNolf-m3=(Q8hd|Ri zT^cO8UwnXG!c&X;?%ClHN8yLwAb4pcfM;5EDla-2>jbQrSpxyaU}H@ko>Mcbrb5rA z$5gr2_c-Z~KQh*>=~uo=d@^Y_=i+hBVbeaQ@NFP4< zll7o#EwSwTsfkvoG}U8`^~yngHUV{?7*fF$jS#q{vBQ?iZb3W!o4(*gs3`AOZ!|z~ z1j;(>mb$luZh`(xF(soV`$U{u>BX%Jb0E*euLln@O1404QvIBOFL@UeOAge<2Gr_SWc2t7;ju6g>B3^|5B^Y!7VQR5UK-;m}7VRpu zaHouB`0V7}Jn=BDO|#|EKQr}NB)t5hz@US#zS9%jb6aOzgV~Og(^<3uP!)a0k;^mb zWl%Zcb}yj|&?zBC@F@khLD^riA*C>je)kXmo)FGp7eYw)m-${Wr%jrKCUkIkWHZti zI{ix7uHkcqPT82u`rrVm>{0^l>3xul9U?O4$}d&(=V~!&B#O{j8n8%#jXpYTfb2|g3jQ`c$3ow6oCOe4n^!W!l>yuK)ljB+D_vLHDg9X zlP9N$eXoeZyDy=$IYG|W2d%c22e{^|*>1@9Vnt!is2{Gc{{UY${TLj++m(!JV+~G) z5Sl0rT1D(HK3xI^H8pfKN(t472&xb&|1f{`RsA?s{&thqPz!c#6^QPZcsl#)x9u|P zdjpA~YFs`ydU_Hl8nh&P-Jw00!GoO#9{y_-__gsEAq`$XeV7s6iI~kfMV+D_@2It{9TlY&*U>>d5?~ctA#~$CH3?(M$Y$CSR})|#2`evaKw%| z6VHS6A_R#n$n;YB+o1cpj~+w%zJ2||h72D@7nerlLD~A|*K-bY*}QEQri17tVc{Pn zUbuvfll}ujtLgoA%i(-iHj1L!V1o z^N(P-QwYRz-15T{m72G6>0lmM9}R)SP?x%weMBE42vAWL)`+cl6yS!za3HsG(^{F7 z?++q^{A$3r1{Lhm9K5te=i~i&VW;rEK&7X%!t{gbLd39|9K0SsR0!1L;BGAP5c1;2fm;TY$EE9LgBow2s@zMqm5y@OouZ3rQN2zRZ9YQ<2w zZxJ4_W)F`3i3zzeeX~sf5beUq-@-LWy}dw}d*6Ay{-769g-8eQ{WoPm43fii-kU+1 zh*Q%~Qm)aXhu=uzrv8a*u_`1E>o=khNq~EjUSYsSZC}lXnAIpa3)Y4A68Sa{-VPOEjo#gF{8aG&{3{aVJ7x0w2^gR`5&4WFKXqbs+2q zn42_mU4)q$y9B_ygyjzLC?2O&Odc65Z8o5~qKBp}dL)F!RZ%1~&Ye{@cIT#RsiZop zZov^Gh{!l~NW@t~0PqpP!9xSVXa&H8M2M;D)k^4ySw*c$c zYv+s?w42@r^u3Fh4R$V_RoLmyc4?2Yt&?wJ?UNO4x+|-jbmxZQhh0gcaRm~-6MIKGF+mBp%Yk`;DhqJ;q#bP7MV?E9x-hg%_iILU`wRVt997 zR@4%z2;%aY3JavA$<-+ouc$(4lrEGpT;%SkGex0zzNqZU3FBU_{9g=Vs45hkN<9ZHplwK45j;Hd6cTc^ei3OR{`O$eBXF){yHgS5Y zIEnC%8M}(*L9r8LrJ(scH=q>x`BsbaxPp*jLYRY`!-efYPTuE3{o2A&V8VB?U;r3E zUDE@_mimM1#|AuD48Z=*2bGr%+OQM?#-xKndSZn6L=TxfMslV{5STr8>M5~Ge6nzw(m4?t0%0ixuUm*PV=>~=#w$dNO^GEz1zSX{VSz!i8<3d^4IJ{>PXDcfo37Az zR{W)<%7ixmw-?$qJ#4*fkVm2oQMPQ5M#ZQnlCd`^Jx**&k#<&u*sKgsvP_UTlL5c+ z-A2;4=cEr1^31m}VNB%{!iX$W0UnYLgi(4~F?fTh;b1P@i`ANLO0XKsk)uXxsZcP+ z^w|H=ydx7HQq-c4WlE)7kQJLhhOw%Y5vjaLDK~A3QPUzT)(X7To%z3yt`#D+M2XLbE%o%VzA7Gpki#5_(N+Za>uMoB&*{es7D7VH^7`QBi?h4M#t1yOm!%F9YdZ>TqA z;`%Fv@a^)y!|(;)>{ZI^uvi}`?1X4}BY!K3$L*uZl!_zt!FYwZ!te%JQdRX=KR{SH zV)IUMCE|^^OcnfE-xh{1#FKrnX4!>%W3?N$`4Pg*pIFR{zx+Zs7}NYhHK}Zdc-~O8 zFCVBk179By%!~nfL(EWHcI~_%oa^HKBHCYAKkr6&?5iIp@%^`&7U&u9pXccv(xA|H zTOXh|W8TluHNto1gI`$j^1vP8(dL6KhJzmfu0*kU1Kw{CcmsBJ4ZQ$*hlySIuSSU< z0Q`Q5pZW0wjGp?@4B(&o@q~|_@ipy1cECs7ig&=n?@4x`!ym}I(Bt(h{|Hg;t*FsC zx#!(ykIbun{2Q39;L-Y!tA1pURKHk$Bg#)4`F+ke&aaS@vy&I*FDdr}N|(7Ui_x7^ zJDwQy9}(QUID3QMCBZ+4)Fr|{*ys`J7gp>MdNtte5py+g{{p@h+Pm-C0gZcFl)Gq4$4iv9^wYY6%Y^4%x(2B|l?;R24* zCGDQ496EV}w-tD#A?m&hTUD}gE8ivGdLUbszj2GUGJknGz|{duU6*4wC}oqkal^*8 zVEcm3SEPLl$5)_zTLZN-Xx4#RS(o7#z5J5y7yVqH;upA*0)*-}h$PT9%`<63yK4vZ0{#5K@nB4{V zX%A#8;FCj=eK!CKejnu%K!2CzN9@Ds#tBn>K$)L;`NTN8@WLJN=*AJZ39KGa(9OBN zu+uHLa)jA+!0nXXaCn_+Whv}QDs-UjAPKGRqY%2l$|2{}^t)5>2!nKhnMX+MjB*wf zUmx(y&p+StMig8h07aBk-U81rF1JY-om#mhX>?$vg$LFM!80zXLX^iNA?qH|)ZV>! zDLje69~ zP^d}$%{9Kfij2BfL)YDs6ikR}YJd8@GUWm-w)<$FEut7ju zJA)>r8T3z(Zj);!4dzkHOnQ1t$wEL;-=(TVT~v*Zjp78}9p#7sZ~F>5WVek|C=!49 zM5V(MQ#oJRjaz6d`b3K&+V67tk1LW> z=5Ar~dqB~R6=_MQhFL3mayv(W>!~T4jKdox5Kr~ZPL{#@Iyfp?rIboHYHAqkWkcDm zYlm!&l2l_)1_15|QaO7Hg`X^a>#^Zj!$hvxlO5oq|V}fiAN$%TSNI-!=93UpIX;7KBaSKYb2{z zL4raJu_RJOv0nU_D_Lqo!~APup_Q(M;+gNTvX_mzQ7Gq77Z99xjZ>(B#@ztKhg8N< zsa}0=QF^1Rc@fpRPpMKO@GNoFNI8oy6vVfob!Jpci;YScUTbOOzT8*itU8@YUFObP zyuOaM8>U3AF6~Pu=At=dnW8{S{R;6m{hSVDIzD^cZ5NsD!o>G<_eN;@bc(nuxrj;*IW!D{fqu=<% zgo;6B*~RZV6Dm{8)UR>XiDl27rAOwcHNBRlk|gSqCdMNt5kiz1J~cpXyctEZsE*mX z*o4WT29xB80o=uvGnWQC!)e0iabxR^L&|N&3YTG%YoSTqsZ>nVqJjnr>c%8t#ZnnG z*}pD{qRJoJsA2+IDrdSQh&3DvhvzsyH|}cU0ZOHgFj5fLMU0S3EF0W0OO=mksj~zs zCs0*_xN6Uc6f8URumok%(MvD~!xmJ92%XqDi)UJAyb*mn@*QF z3$qw?Xw1(@qMKw~{;DAnL>hR)M3AP=sMUBhNL>+CXDiA{YZRa=4q-kyB%Cx@#_e?S zfYlEb2<6VI4~eOnSxR;5^xJ6`E74jfcltis0^)1iNI=#47a+WPQDph}lJBuFN;T=I z7o8pviP4)p3^3>po@%vA5K117PHLmptW_hd0IKT!woxep#HO_!L9SBjiLRPrJ6P4+ zUF)>lYu(qmnIjs;9F79wphXP0*t8L6Gj#BX9W-HHw!qr&mas(H6?m_p?B6TuZQSC9q;TU2j0iU#$<@sUm0jD~J6fTqB37g&0b7 zrk|&F9#N6_?GwvvQ~*knc<+&ius|&;Kz=gH3`K9gz$(6M#3YF}K_k5y%PvA=?LM`) zRL!Q=NM9|zdCQ2qz)&p5IZsjhh}D2#7D>ri*X)z;j`C#*`RyD#WJYh>Vm> z;8-?x^Mj`_M#C!Hf2UsInO&Q$``hr;u%^zud9BBDD-7XiUb%UnR0*e^)?&zQ$e5sn zgBj*F;+CKbva&qd#l@~+k)F^?*aCUc5J! z*0|Hh0zy8%mCGphNcDDKBP67ZPOHuVLpq6Zy0KGN9@33|D(lH4RxD0h-dT%Q>?0Oi zJ-;4ecFK7Xmdv3LlGITiJ#rX-?5A(nn*}2@Cx2SKOOh1sqEjo{z4a~bWZIxsxota8()8U?4XB<+`vWuz z&>ti0a(?D2@)wjXHY$h;rkY~HFGRAP& zVi>rcrXwPR7cx5kq*&|uH6N@upU*DHUfV)hq|*3ZWRo~qj*femYzcxPeGxc@%;4c_ zt+%^9Vo!~}0~)Dzjs;j}N%|~t@XwBpjHJ99!$#DD!Ir$R_;@H&k));B_-J`;Lo}yC zVr?HX*mhcJJP}ww)j=*3rDd35d%0$^To_3h;EzGR3k|bJjUod7at1ImddMuZfTh1V z@(Vm|_DL25=2N7VGcrIyJfy4Bc6SYAMAMGdJ#suxzob4H5S`KNSp7^6ki`ScukgyCPMCHx>cPf%SGy3QY zu!BOkou3MdOybB725GZLa3ln9TydPyPQPK^hJj4%vE$FGn3ZjKhd$HlAoQvkRBN0h z8>a1EBk_E{QfgN2b-WDO?eJ@FMy<*(I$EC}gW7DR7aM_{Q`r&N)qCGEs{PMA6Rb&; zTf65PW%?$quWT)J5TG7-=6+ApHCN)y0D4u+Xs z%h2Y(Cz~Hq|24yZYvOv`M|{!p(OIblVx-Qwt8*-9;Xr3QnQJi48TrntXPqAD7f&}kc)vl#nSyNzq_r! z^Kclv(s=wqvP3?;cMq)Z$Tfeb_rba{_cIRguh=<-ezKycnwuq!G=5gS!CRg7++QOY zwlYrd(USAPTRj$q2D>y>OlfHzBo_{|e~u)UUZ*ID$xCl5l#h9ul|&3;Se@>JSiL)1 zadJMt5__wB55|wIcP=c^+%MaV1y83E5MZnKMs_xO;)bp?ACJl%XxqR;KrkF*m>IPS zmy_R{!($hR9IN2Cg2gVAx2Z&=1iapf_NAGg`|8e5++RL}K2H7w(fE~L?(fB`_T_Uv zX9&(o#5r6;mDd?YFJdKK+#w?wv%xRGIK8rtV+E5y+T|vjNI1O1h<%t}P_FM)dzk1c zB@(mSi@e1@+$_k-McdeqOWL4LTE-CPjPd)Pca5HOKhN3Q=lH5`Z6ROld!1;{@+K^& zvl{72_U-vN{26%qcyokJF|HKrM3d<~*F+#$JkSZ`KpCfSn;0?C)oItST#P6v-=rVO z*zD0T&k`i>@Z|zdJAHDLM1)UJ;xKUTHOGD&VdNRDNm!I2PrX(ee7z*v7c0)%QE=D9SRY|nSmaBxmthgxec|_yZ#*bSd_W1>n&N!7(5JB~9 zz4n(O079%GyWRe}|QS2<7g{BjDEOGphAyhkM3rJ_c7F@``>#Tni|FTN2J=o@O zlNaCSbM_R3!coJT9}r3?52o7H{#M}dJy+@!UN(33`#Se00E94?Fo zv-z}z#?xUY=uTV6eU`v;K8OH{(nRO7rDbPWb+p?jyw~AOS6ZhlKiPfH9{}$M_B2npGH5NH$7vU0G|aWb+nuo2KQbF$H~aIi3Q5HNCba?&v{F|!ab zGI4UyF*9>=un_3}XTcu_j42br5B8Iyl&v+Wte9;m3VMul|Dz!_URW z!b-==z|QfnRSX17?96nWOswo2KR~cB{@i9^W1;&&i=Fi+f%RVkE6Yy~mVbaV5U{ec z()}F5_mlf4&d5l|#LU3*kNt#=frXBNfti!>rw|**KP{XrbpPQ0$8+?Pm5qUpf%PA@ ztUnn!IGFzL%73b7V5R$K%fEaqKNWGXu(PrKmsAcWMmlzO_Mb<_%KTF`D;pE*k2Xd+ z2IhZmv;V1=fq?m^xBRCjW)2QIMh@nm+L(SGJ;zT={%6^rcF-~Y==f*V|A_1U>jNU{ zKeqkD>0kf<$JX=nIRDEDg#Rc195Vy+|Kgt0O_;PAWIzyoev8y(iy|0K$OehdceT1H zfd6|8jAMBLWu-YbG2pLX<*0lr6g0?lbp%I$?rbXy@O34=Y!EP`ap{OU=Y@^s@s`5X3Ndb-^n zXATUZibBA6)Z=xbW7SPy*U?7Xx~V_J)0^^lZ|v+kAxVP!p;!zS`6|^z^<~155QL(D zo~o)UL(`l7r-bsVoNqIq+cor9sDw!UTn>dUC8<<6oJiuSNU~@mlTr&YRfJrEQo$hQ zn`X*UZCvN&p@f)4t&AnIrBsC}32m-qW|x_KQG-|Ut#Cu+{2S@7BfaPN7%n7yK6* ztN-D_W#nLF;`o^k{tqr(Mg}If|J8?k>Fw>KEQ6%8K(MMQKJ zsv|sd;gvC|DOJ@U|NHHe@BQ_HZ6;=q2|D8KVS9ah*(~nzi9~;zme zjZHucAlk;prmXq+ZyazDRA1i+b!yERhD0v-DKP*VolQk$Ggu-Xm;{Ev7iu##n&rW? zKF|=LKzqYeWZ1m9`4tEWw7@K#m6hHEm@%;c6sP}uVwfm=bM^~L9XxpSIzfEiFTmS5 z1~BF}`wJIlsCsNJ1&!TN+5ocQbXZsllJEh#ed8|?!T>v&S&?Kdho|;Nb#0KNAR}~? z>?_Un*R^BKoV4<*}e2hRIo-vGPq=p1!%X;{N+>Y-$;l!1A*g1jP zcKIY|1n;8M?I9eiWowHnwUVwe#cAJSC!um6eiWXv^;PE3!@nc(Z2S-hnWnX7zvps` zE=yz4K8i~H7599P%w$g5Hlu~wF_{m|iXID>?>YlBHkqAZ1hU&0Bat!ch$5AT4E<2j z6u|6J(%#1{41{%1R*B#Q7*h@Ktm+Yv6(TS#`jA+R@iHAqQ4S3u!idn3MLHp+>ye`7 z0u(>rDAOasriPhlL}*h5`iIj4Jj(`=Sn@Gt(}RmK9`Kd;AN-M^oET6BXLjU4Q!GS) zlkqK86e7uJ`iTIo>sh!)2^AEgL+3rG26b4BC^HKitIQ*LjUch? zQcDf1N`7Qcwu;Opgf-!fK~R z|AT>9N@-P2)I>9gv;^txeZ8Q%zwI!=q!Zz_#|tX`el_l)0(Cuw{8@wYg-iR!4iN#S z6SzLG@d!jUkNG%36|_xbWQ>RQxHXJ_vHMY6Hq1jK!WtNXjsph{ z{AGm8X^sFw_#L$o`KL{g2}6c)iyPe~KTSg0*JBKmoaqqhV6rKb9KALn&! zc6L^rFD|88V%bJC^VqRyLa&ExZ4`jJ|2)U@0_5aA)6eT`2{Bf$57{GZYLIy?wl_h! zZjaNY0Qg$~YQllPW>{APmey<^Un8nK9SU~B0bSA*cWgvB{s!TR05t8u%SM!`zFxi# zie37>4vT#-#0ABeDboSFJ(^Y+HFm656pwB&MMFeOBVcRh$|P=A(M9Up-~=IxWho!d zd+j9CeeHcr2=!{Dn?vX-dL4$JP8^!6nBNHUDyhPB;JBgj#C&%|bqyF3x$f6R9-oez zAO36l+E}wv`7!Pjc}atA{H_2imLq;kBBBY7t98X1NDKJ**Z@@1u3nQNbPGW=`Yj%# zm0Z2}8f6g?@k< z5k|>@6HhFhk4R6+>f-qs)fuTL4YeSS-3adH#tV0BB1@tySpudDf^7l3gmj)bS(qWl zUq*OqM|iyv!+m1yvV^OYFA{!Q|5Dt!#o_(DP;~!3{9AP+BDR8fGbdtB0lvIq7qm}c zUa~Dxe#+kB%243me$+Nt`2%Ys(pM9xS5`}s)x_mPI4Amb;cWtP3&!dq=u^pZMJ<|c zinKA(JC=6Muj*s8>FPhoyn#8oy!KB%(@tx&=|R?xz*l`+9sszfLwa3N?v5a%;bB9G z97y6Q`(%sbtcO@myzMbOGC2hDiEwvdp20Z8x$*Sl>WAD=P!+{)e@o6-vb|1`yimKN zw&kA}x*uTQFhA9#5*A2vS%j#PgOrk*G_+`KgCD6`Ca-LryPd z_FBqW#&lpm&h|88C(Eh?T@^n(%4LsKsNC%O3LGm8HKo9)dRf>XMaHQb2YM=Y-EEwt&nQA)nuw z1M5h)%X43V^9smGaZ#!=Nlh&3U*IU$vWicYqArd}r0OQaO^lT^FS;(iCMCl*Nz0=1 zHqGUc%ORyt!jI=q;)LZr`W3{NA+b)2$?wyNSikX*Pk)2mPUpa3%eLAb6v!p8K6Nb$hFhwdi!CV}7s*QOexQ3p z+7g+an_mD?5-c&~!$rfC{Y}9Sny0WGVfPC9M?gP~%{X*LqNbF*S*!`s5slP8Eo_4C zOtp&~myqj~5GNUyB-CYbw0N8(wTmKd9%MK5YP4~|$O)Hi(W&ny+Yk3PA>xp-N{n=z za7O|LDLWkQP!fN)RYPD$kiBLA>mz4r(%F&QX}tLbBW@nNNHCMSIk;K!5S2?FZXRR- zkcxkNcG!d&`g7*5(hRX@-BtZ@P4HQ9{HatO5zuGN6C6Oft} z@RgPc9VsIarXAXSPm5CA?SQUo07-=qTiakzEkuzpj-VjAgnmZkx}@!-OPq)TgMipDKr!ilEaQ*sb<$@ zxvGl2Ex%Aq#S+!uHE2_nVzF>abg4IMRM#1Qi8tcJFFr{lMJUDel=5V66j%8Samb_$ zWgtA!?&>LIl_k4Cd4w0Rz~2)*g00-t%8C=VF{Y7HR>@AT7k48Hp0b*1WR@|k$zD>} zFq#<_tV5|@QpSx;`6V7`&56m3A_OeOJ}T6q+sP@KH6@-C6U!>{n7M&erpc=-l}V)_ z6O$Kq?hMq*q{Xf|>r_0X73<_83RFvFf0R_omniPrSld)Br#BI`&|3`LVrDh2%WJEl z%9L#5&%>X~DRY=ukNzIC;Ad)PR5Y{Hb?~p!g-+Psqin;3s!{(9RtEZPw}T57)K)W7 zE0JOzSqT}b`1<3TW@4%)qg(+*)y;{aFh1R1B@?PWP#w9px=VSIocS7wbwGK`5_Y`0 zL}jHVF}##=)zZY`Pkt_>)s9pF)b>}#Nuk|U7;`89iNo4ZWR&7(ZV`| zBN|=uB_WJ2Zy=OqjH>+3BmEN1bD-+~gFPix2^bI6^w>!rA%1>`Pv`G6g7Jweh4UW_ zPRbdJSqUd8mO zjWQ4-l*0IjZITobgQab&w@x`dd%s)cQMmP#Wm&NYdZUouLZ5-xSfZj##gx9fEDI9~ zlWtd4CWZgV~=cfl^R~6&0{Q6#2!hr2Q*_Cez6Rr9dyBDNa=6cVPqAWdx|oz_u#%hnLxY zd7=)cf(Vx#41sxP-j*P)hFJNUM3G%W3HT_khMWVp&r*|R(C5TWso@X9ik7^82he8L zp`-x%qm$L<7A69A;!p68@GtR&qsqEd9F(+k{Fl^#qRA}qg(Jhen?qCOP!Aa_Epabf z-6Io9#7MOnG99#}@o8oHhu>gPV8mc_nLojyOJ-r3;sg=vp)p{+S*d0Lxnb1r5$P~UsU9`uAlo#o}h@pa24K?%H#B1dWppKmxJWxBp5o8pyP2VCm6B;^J zDWzg{e$i6$Nc^3ha@O9IBKHuH8P4TWUfQKsjQLSftuCG{2iunNMv!)QBRUBDZ5}GY zPuPr2$Uc^q$a z8@&(hlYGh(`;&*vIO~s+dgTI)>TkxLnL;ZjI#unz$$b~$;ICr1`{bn^f2w5mj>^a$ zrFKAty--qAz&5F-caO_xlTtGCl#~n0Or-iQTc|6{r249-%2hvev~t+V#4j>md#F~s z^VG8FxhBjiZ}iE#IluJR5IP+y2q9kI%wHVgx!1J_7Gn;iHK;=>PaWsc4b8?Zv+}7X zA>ucLB?l=OP*>1?DEe+iW95!kYb4i4wkar33fIr*$$J<_`2wN8MRo@2SXC7IBX)ts8meDBIqAvORQh0 zT(3m-J?8=wAblqptO$|D(k9E@hnh-f_xwl4zKZ}>D2)X|1#9UTd-sRVFA=OM#_e@5 zv2-gl*_du75e2~nx=aEpljMhO393aJ%48}ri=a+It|~FhA|cB|&dI3ra0ojwiN7Z~ zE2vUJjzv<=CNb-DAICD_&_Y=!bw8>|r7BTL&@ffWK}iZQNr|AJw3t9!s-J`sw6O@K zDov?QQYuhw%u#C5b6r*GrwU3AQVu`L;>#Hwe+?Q6(mbEl_4chdn_` z$ckhTD$7EYUK3mV)9Ljl-9$kWD#WG1VK<4QX_Q=Lo4n|p5LCK1&dXQ_3wLiFpP7<< z=`%(i@i;?nUa$zf!qHPjFO*6P^k>dXA;implKV%uKcU@C(BzirO-)g5^TZDjyfW~E zGVp}I@q`e0Lo^={*s@1k7lk<_;RVIv=Y{L$o?i*&1!B?Xp9Rm}AAB`V1rfaB@j^0s zz=d`Suj_GL^tJT_!KTrKMPW>oc_{kPO%ktmr!>@j!u|5Ex%>!HH zgVzP(_5G|DRPhQBU-yhW;t|d7%%5A$%Q}H62H!0OXUM<{$my9cdC@WKXr0#Hr;;nF zT}(>=Lf;bpCj7g4DqY~0@};{}JJ&l1iM}PPZ{^&ffFrFBbUIl#mu8SpPyG7}7wc{H zDNqfaI<|B}aJOJ1LAJFp+-{Vl1Gn+it*Ue*zj(vaOS^kg3rD)uuocf?p3R5o@90e( z-q$N#Z>x(>to~jf_g{5RKhvdJCpOC8T}#(n9`^rIz2CDr{X&7SWzU^Hpuo2)?Z`uj_RoCV8w2(9?UQF%tP87kDJ?w$T4l+}!J^{8CLMV#I|AC!q9gXAVR0>- zqG3s`k0Mj-aejOm+Myjs!Nxv&V%kp0N#>&Bj3y6BX)sGn2`!Yw6L@9!jTarol&FgC zbb7A8cHhhCIL`GM9f~4b8lqeAb=e*D&puHRskt2+DG%We6-ldSm%&j)mxMnbUXk?0 z-1U)HLtY)o;-_+BV#6*9FmLqsEeGETX`0da<`m}jC^Mor$gk5>?R#aS19uQTT7St296p& zsnSJ{a7J#4l5)pIp1c0hfvkG?_+%xt`oDW#|AeIPV|a1v&MLESAylun`u@xpWY0~W zt?iLXW7m7hkUB*GdWnGOa?kJSfl z=g8veiL^Dyv9>j>DRnY`biQ3e&K9+G-f^vUYfXMV7EM0}vCByOwyq=+;l_QfF?WNW z$L=z8(*J$#rDyA?dxCMIwTloP264bXZJ6;gT~ofDQ6r6Gt!o;)PUr8eA>Yy#iPP(d zDpn+R!>6qyjJu)J1HrY%ILJCinCz8hnBmeUCX<_kP8Rbevn8f0z%I$IlvX&o)b2{R z1(20h{3d^;x-v!St~Gd0*Q4;9dV_;+$yJ5Xj%5lH7_N8 zBiO1(zSw#IBqfl+Fw3Peo8RaRgz%Pq$L!>Bn0*HgW+1hzYfQ}q7g?X7<$_#57Uj*4 zq6PW}ko50Jq-9_WqC78a9!c3TL{>c@X+PAX`-h?o`D4EsdbXn8N@fC~NuqY0_Sl7--5%3l48nbfI~i0vGYG*tf!U~%I7?$Qs<`?xd!TvPZsi; z)D;udz}2c>VGS+wU-L&fe;N$l+r|g)>E@bS+U(caaL1C zU5^}f4?Ye;=)x6paV(Y#Ni?)j%Qq~m`n9mi>N|r;$5Ta(MPTCGHfmb!Qv`Das_4tG zcu6b9m5DSohc$<@NQLY6Um7PUCfz=L;u($KKA@yxi1 zh6op_mK3unBz=Rj)W$3s85R5ScfL*MJCbXI&^oHKU$RXoGlLWVR+SZ1G#4wYEQNb{6T3@+J>hI0mJ$l-dW2m() zs-sfGCW%R{Q-n!lQJE4$(@{$A(~Gqi;ZSbaKX#C0oU;i(q*?yEpuDVf!`{C zV0}pif#6DUQE=8Qhn{tRfmj?KAi;3GatK!FRdUJ|qn|Pi#e0tQOJk-Fatyfs5=CHqm`zq@BA64)J<4)6YXj z;@(Wv5E#6u)0d=q=@uz#lJt@*Sa6CL2~haj{w>G_=oJ()p7a~A{nP6Atda%imhG9C zqM_oR)ii?sqid?}U|6D6?(B9fhL8a@6&4pwx`-2`r<1Tef$IJGx`={|IsW8rCT^Vp zz}X(NMRCF}0ZTc}q*Im*C8L20kzeaFrOrdSR!s9}jJFI

C^OT)1L#!Y#8W8%dY< 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

p(ct;t8V%lmm@@wFcB!&){qwGTgT!Ap z10)!sk3xe6lMGObVz_XkI0Rricj0BXAX1L1g{-C%WR6Dj9HC4YLS09mQ>jr8o4V)$ z-LE=sIL0iR-uj0N^dUsjX0j?lTy*Ct?wqpH6;@XpEf6`n{1YWLpvTa0mau-obBa@c zkj5=u*MB07?~}ejqyh4uNMqx_kVZzG0T5|aKdlppWwwoMROsyOmWVO`H>B}OSN$UD zE1O?MkHl$4xtAEFS9F>sYwo3_)KLa-;~`=gQ`bCKQd|@|=(la5@rY)K@*R98EL=Dh zTulhe2^xwR+Py(`a96=xLdHi6BmI{zpMOc5{_i-AzYg60;WYmGPyKI4_&+G5fA2K@ z577=QI~&_SI}M!`8$xLm-~8I+qk!>d56p}J3I^ddnBSnXcIXVjxgX)vja!P{9_RRW z33n`A3XBFWFY0ba#-s1G#=XD6G&i#J-+j)zT_r#l#-5BxA)2nqj?K=_wl;`+Ql~c3 zl>(N%48(0Qym~3b&!&cvBGlj$@Gwb+X|6U?`g?1M+tVFOe4bi6e2)z`@hwcCs3l5% zUw0Sx9z0w(=@JojXho3qq=)`IcW95Hf}_4xvm&l%?aFnVI^- zMRi)Bm~{e$CUd_#5rosD)uQuZ4=GhU#XPeOAA__G&-(iGB=D$tOs5t>XN};vr+Kw_~~fo0-(Gcx)4Vd_N5tcyqSL z=}lt2gpGpiW(YCK6So$U?jD+5;E0fA_fUXwYpHU_FMK7Gd#IT&R`{H4@q2E4(+vZD zgN&z~n)E^rcG5O%W1A1>rXzO8@i_i((}^%&CWh9BHdw>i$b(<94Yn||GE5bXzU-Lhs;I}8H=;KGjg3cRMW944`AIlJ8bE8;0>%p*oxkL@x zKdjj~`dgi2hN@USb|hoPXRsNwnQ9Jv8t{z8X^mh7hw&~{;hfwOcy!|vn~J9&q>0#% zm`R~FT}Qr<7|0pIXCh>^##JVK`GxyUTo{7Y#d9)l@#7a1;*{Gb_dQ?WI55z8E%@rX zI|r_0KkFDySa(+ydS_;j@#)^j4Y{?`G$%2^T`W~Qz7)e(2Qhg3rd^x#+PYOAB|L2j z5tWoPlg*?wew4&V_7HGXxoaIVp;CPA!DW*kR>Z8bVq&yIR13GF**dv>d9wWuUJtr4 zy7F0yUQQS-v~suH7ROd;VYdo#{d5!hvK-50;)90S-L%Y3DnsS_0I##b2PN#ouUZ<>IBcCe$?)eK!u;R68^O=u$W<&kD!_6l6NdUJLnxsRNAl#eyb$k$I(_aS_sQ4ntMxS$~ov> zc!Ke?1*^%$x-;tI!K-EF&}rC@l`HaKDeK0a4fKaWYQBo1V(TT?Ij8Jy&Z=EIU2W>X zb56s36F9Z3t-PC`D(+^SFey*u@t8%Yp8v@Q2tfdL!@s;_`~&U#FFL}_$-(mP=?E_m z`#)cmFMx7HP4eaA^I^^(Ig+(GOGQDA7%Qd=_k9{HwTzodb6=CCS5tS@IUEcU!ckod zf()*GEb1((y?ql)uq%M}cows>Faj3-c z`{?_5^Xt}a-lKw&(qD1}e2>b)^4IGfaXQ$Y97w8K)bPvD7W27O0>R56f^h{@_t=6%mclSYncDTae|G<+M4&C0}MnOMn>-+|L+Vx)z;ON1Tc zM}^~fKh{Gtsg9{ZB92-66Sh>+6RAg&o5U}vALsO|e`ww+gJ7W0$A?o`Mu*4DfD{!% zhho7&k>Lj?28ZMB`H4|Aw7;D1UFyEU+frB~u7DukWkGYSfYgWSo)AtHSayX;SzC-n z6Bvqm(BkWr{Dg-@wtetWB3WriEg6OHYx7(AzCx;*Sa4C8fb^yj|54L7Ja(Tk;q-&( ztFvHP$PJS&rZ9cRm>`8T$b6h$KaVIyTDVh`)dcJwTGS5Go-;BoB0~hyo~{Hq%}>(_ zDa=C?hA|e%X6+cS2`NG>5m6*4n2&hOH$H}5I0gyEuzQ?xV=^07ba_@}4Q&L-bW;Y) zV!UXTaIbk2sI-EukEEBc0JTpEp@BHAH#u}P{S5PB&!JL~k`?`?3>bBA@_n`hAdrw5 z*oMP)69WtkqQ0IQ_kDR56_T+D9Av5l#VXM!+A+HN(2#o}VURRui*A%vbzpAVQIwxp zkliw98B{;T@-Ym+)xRV#m9BwZ(n4Nd8Y0aO^0lSHv%oL!3t%-wznZqxS!_Did=9$~4-%Uga-Be*pVm3CH?zuXuPcq3Zor6EVLZR!lV6H- z>8F*i2jT4VhD&qJPiCb--^^qjVnlf-WExt6i`1PMcHOza15Le-YB$Fet;Mcq#fR^h z+MRO$@{Xo%!gW|k1U^7%x}&9^V))Thqb4#dRt;GjKuWfo?nCIxcMXR_PCn>c`Z>}2 z+N`L^Z*)n#7P>ZI)cA=~7z`D48#96v4^+{yy9`>GiSH#HKqDa;s72Ci9>h}ezqotL z;6{RQUC;I!*34^WS~D{bmO%9$Yy!k%ue%4v@CeXqft-N>{aaav z^d9P54H_ia3q|5_hRj~-Z5g>w{ufI&9Hf;@f^`32@N1ZRb+n(to@l}-2?;&a3_S<` z@$rmBgk%sMV4AkZG>9`&Dxh7%pqZM2 zI&{7`SV~C$s1~rar3)tFl@jv1ze3atkR%Zkz?>~0h41kP#U$)&=>UTF#o?2Y;jFA| zqnA+9hJ2r{_JEijqXR7CLSpfcc;q28>6oprY>hmqYh*K^euZ-Ki1y=s_mTvY&;MJ| zW_;+^`GE939F03drA4o`gb*YCKuilpdETH(M`&YOc*Jxr<~I?t7%0O71|4fapJ2~w zJLF1=0{aF>T`RR3yPyH_O@#R0l=K7krJB$VIH4I`tkesERyw% zF_1#gR0^=YR#G#bR>VgHI4}Fjamk)U{)Awt7l2mI>epZ*N}w|tGOxTuQQPlworgr% zE=#YLK&k6>#Cl87?2DC3-0{6pE3eo})Z~HHUxPFy_L`u%Sp8ekXu^mX>2YK+K+ULu zUqc#*dXB?nF<&-5hf9e6%cv3Yt3z}ZI0@VAeCQRm^Bn z$D%j!a1OG|_%qRgHCq6dk7#Qq^JK!g@II0!0i77T+@Af3O>c-XL5OLTgDK>(z~!FE zlJQ<*m=I0~-prWxa=4sBh{ptnb=qfE|G<2opwWkGO_Qa;esAg-_ER!?KnP7q-j)n% zbhsg0uE4KoxX|mMc;C%MwPxqL%>&#aw~(1f$xugFO@6h;SCG3U%9_x7WM<_of zFW``4A&nGCw8%%INSCoCWRJ@n1?(%{l6pio#5Iqu?Q^_Dd&_o_@qhD>w2ev>vW2Dd zq8M{$$DQ|rZLyaHc60Q{h)M}bR35-yrR@FGQ=sUqm1R(a;3^efqVm2E)0~NA9SaU? zCab(v_Dlzmvw-#3c0u^-P~NX|`l~Nq&bjJjeR*YmrSC5h=%_>hJi@*qSeZfyr^eqH zcibsMenuo%NurO@pN?ed0!8th-?~zAwq(umP$PRr7gGrsBYL;^oU-3Y2>Bw9KSEK6 zGcKNZbz!43@`k`w9_>9LFZ~JdH>H?V+^ci}5T;a3i?}k5O{(m^$XSDn4v^@Z;G2+! zOUb>jvO??iU2GPQ()YOc()ZFLox9LOAe$1mzE?Y2$%hoX2)huw9=o7=o_6(G5qEC& z0NZ(=8qe0gkDlTs*oMvO*J-!)d|1m4=(!Igs0Z-Qzg@+{SxaOX?JB_PDVWf<&r?U>$+6H&Ek+R|P+o4BQYM z569}QUMOq`OGeSqM!2yb6C}n*M5IKKLnyIm%}P;n4~7@~vn~S8f6$mK)s5(iYHp>Y z7UMQ9$Bk&}UU@U5L+}USd-;mRydqIxNIr7@F;P8;AaBHGH}m&f62iiHSTMFr^6>X9 z56?1^Kq}}wTs?x|l_EmHvi?3xq|lV`1|;wO%>n2PbB_j{P}~IOc=zxtmhyW6rhh)* zz2m)OAp2zwR*V?j|>FoG;m!)rKJt z@noOc0@zS8eiS29JC@3{$;W|=xwer}gLjdG zAAL8(=FU9Z;YU{lVBs^ z`ee<_mqvT7`7M;cR%8(LvB2#v;K7p(BOf+QG94)j2Hzg2LL(F+6{T|Jt{(;He|Y%%;cH#M$oJc{X`C7RASpL#g++d`C*f-J2@ZEZ zmN`Al#GH&g164-lOsaDL&s=JJ5*x+Zv0ce!b=2vJzoWuZawqE}7FWZ;?M#_{^LbvG zeal@GVng1<@nx%+)vXSZo15FsruEC?Hg%F8z$a`LDzg$M5OjuTb{@9G&5UZbER zGLR9S(!z0JLV_5ztnpnVF%0Pqi7}7vF@P{_6pWfR&L!I@HcN^%cpj;9!M1+u+;~aJ z$bK~G(%o=Y#0j37)c($qecRi8rxxxgDB=q>3x>>6h2xm;h(cY@)lS7j4z3maDNFB5 za_sbhem<&5IXRd*`i>c%0Y6!sSlOyrYt(-o1)v@<2W~9r{_*g zLzYdMAaMiu0mc0T&pIp{APCMKR8=zeQ1D&SQ}7g7tSbXa}D|3@T@=94mltkm1tkK&wl=l)8> zgvFMttrb7pdsKQ}E!(ZSLc;2{i^B~H^YM?ppnw)10`IQDr+e7g%2I6bK+1DePQ^J$ zM9w9WB~dc%j`w%1KZNfn517%;OeaT?EJK(^=kf6$DCcY|n^Q$6=FV8~DJEd`M!V_q zGp!y;_6~03Qz~A}9w8nUzFnpL^M?2tD>soR=ywWpw(`ID-M!)FF;Qd4hSp*nCC?XX z$0}wA20V&5Z&)LwW2krS*dce9vi)JwL-zgXg$=|DwwsPIv5)GFBh+r1 z8;+AP_aOQH1~GrG%vqiyVVz=I7@j1|4qq*$07B@n-G7rHb*ly2@PnLrAx};>h<~&} zuamR8K&`ACy|_Px!b!*Nvyoj%Vu!l96V#_K{F%a|zqTj!!DA6k@0kV>DLIy0AP z()a^Sod1V7zmBQiL&4Ouu0C`KVPgD{la3<(hy_`-Ez7ony2m~Egd>=GfwyqbVQW2k ziq}*5G5O}O zN%wVL_dW=ADz^RNk}Y4~@n~gJE;Aqq1;j+jT>2q91 zZk`8}{ciZJ)U~{B<<~f%t5=XZw@9lH;c0}VH8ybEiz<;z_MKM z#ftYD7W;B~ZU}IpH8gF4Q+0OH1%Ov5Y@}7F-K|NTvsHK5CFgV$+bgU+a4@7igl9x z`9aq?09af~K2^bek!8Absx2@Jn6XHL@d^c2Q7Qn1g7L$}ZG=L`PTCqei@tlQ*t{WC zWz|dNLMr|xm_4xFDAYV%ka;#gYx9aF?*n7xnE%}@)<)lxCCP4NKBjLX` z(SM;yAdTgLO_>x7M3c3%5gXZL-lA2EWz9;eW$5UrK6J@N2aXDvQ35Vi3!_mvCcxA( zR#b1Y`i1cPfBu%3#dkMlC_G$V%12W&R+%g^B$Iv;oUbBv zJ13Mo_o?J4p_IVAH8oVI(+^Bt9ELEmR*g_-T4ENcN!qJADS9+BTs^~;WflFi)Iy$T z6$JPO(u)xNlUPvUa<%Oeo+>P<4Fwnj^HJ3H| z?ZcNpb~5@tzA8RBphqH=iAe#g1g0+Zgl=#jreQYqSUMntELk@I)nx6eri^6iMOFEL zhKYt`V~{gIK$Zm9z?5^^$c7TIkG8R+KJ4*M=h8NO;QV6sfprqoZ(yII`pXo^u7t+c zHj)7yqgQ7(tD;{Ht+1H%lJPrFG&$sRsLNymT)!O59U|G0isJTfANOyvLR24F75e?k zO1)e`ds9KAk5j^c+>>?-@C8Ba{B)tnbs^*}4Hc*Zq~SF(+5)Z;#2IX%+0@X&hZ2Mg z4)b>REYh^R+3;!Mc-$+7EBmXT8S<4e!HF4;9sNzH1{{KSKNI9DV&EGr@(H0Nh4<{M z8&$_y7-?4gcY^1z+bjiP=oXEMyZKFyGe-Hf89d6WJ-}}xR0X=X^haQ)8bnRIvX|l{ zWOyd4AD`h^6u2alH?pwOtz*u6)t&{CTjnjR4&-bBT!W2$rL)ATWxo&jisx3s71{g< zbHS7RsV#&a(DZ*g{*r8dsg&zpW$2V%w7P5ebcSd16Btmfk2#97wPAO*)IQfDiW5lX zYJ631EUnWfTeAPnXY>*yybW`bx?xxtaNDDjI(MM*WFhOtjU2SiJQsFI} zs^wA#aK5yZJfpHx5^lOP64kfiDdBAPA>}}^Ld*A(GDRp1*?Z1pZ2nZoo2XEzPdk`+ ze4%$SVsgZ^P`3w(7K}FUAE)D+8=4y%@$V%n2MwTkEP4NI9Y(npIMrOTx8`V-25k_2 zlP@v&1|XsaiQg0`EdXPbaLUS6GK#F`hE&>BWLMFxgd2A=@ox#c6``IdOWUYOblo{C zBz3n>SPP{UCDW%$XIX6jt}^JA-cu(hM@o@DXUUc4TYYE$qNx_n%62`By+^WdlzrAu z%X&z2lp*+S)Kt|EmCaNZ+T0ygJvzcVrj~x|>)?^UsA&8ERTm)hRh7dj9WPN*iP2tY z8@?9XQ^WAoQEl`#XAiPFw-VMyAVa!E$eGaEb$l(iQq3Uurfg3p9CSt~`{BK%p?IRm zYFP{FB!Go|Z6h8M(M_k!TR6MtNJVZ6B$jhYUO3p7!|eC^+`&2_>J4Y1E3uj#7_OXr zVo^Ju^(_jQ2T+h!VAMy-26J^ui%{@ou(-sF7fQBLkvr~<4wUY8<;vpp1BxYaluJuC zBlwDwW7Sl&es$Rd55?{XSL#yGutbwbywlr)eD}p6mO3-`vykUls*e*Mb_fw*J@vk+7p|M32cTfR}pA!iZAYef0Lur zB;k2s@sfxnIru{?o|u{RyWA&+Sw&%a1>fdlX~*K;i4=sxcPHYx_av{#GWSS7zg@?O zLVbS<@dF9!*xI@&%`Mc*1$fd82jYK;B~%y=WTl}4uh>4Or)H>H$#7yz@RX>;2(_hb zq;U3sN~IKato$YXXwkgkz^B8MKolta*8Fw92a&l4LGuLJJNYi~4~_4`QBs~ruqT2n z(?QDuh`WZKNL0Kd1?R+r&hh!vyb8ye3UrQ;vq9IhL74K0Lh@U-N<4oFHU zn~%#S0)s9Kt0Nv|Un4EHa_OTUU0#{a?WcL~lgZnEKq%g$`**>h`aqDsQZb#3O;7u= zJ+X3Y2-0jogF$UX$h4upI8zMG0Mf+VjCePoX*VR5Gp%qB1An*u@VfU8V%uS!`Gk)> z-2v=fw?z$^c%UP!_tQ4^t9d$wJ;WXRKr zz|{Fy{hjcx@uRiW&rdv#Z~Ni??8;(U4qJ~99#yix0GOA;vMz&dO9bx$+|iodCW2?1 zHK2gko2?1j*Mlp9+_gDbz&mY>3*`kG!djM4z}wEoiDADcK!)tQ2hFdrkZZG$GKg&7ZHYX#mfUUBmr?XiCnc;MzImusa%=K^KtfdfacPPk2~QH(Ehqpn5x|N znuN@bci8)F(TuJ|LA(8HK2Je=?x11@OyC39(6oxl ztjhkJicCSNhNQAXMv)M8ic5$yeN;=@szZ(g{se+G9B6_Wh+4l>8j0}N%PuG@R{B0k$US;>17fT{>Y3F!l zk475D-%E$eF{02SiH%E&@sQ7t$;N9(9~8s)18UT&PSycjQYMjmqZS}?r?`g8zbwbW zR}VqCa>!x2w&N}j{SP>LL$4jjS3lv<)3kWwX{I2bflJ>K6wJceL@m^?kaD(MCmz1J zi;w`7fy;hpmbpj1_Ip?-(_lUnb7>LEbT`I9##!Dax~b9y?R%QI<3W&j<#41~_iO}K z68_M*i4$_wm4k<DM%SsTFr2||x4=06$na7+9jtk!g#|Dya3Z3rJJg2jd zvzl(lW(E66!2_fZP_KIF)RcEYm|)6J==K__^G55&w^r>?;a5w9qr~@2vvPiM3z$`w zij*`3dV*48C3fK)`olV@dYp({TA7tjhzM(HenW-A#6uFK%b)y=JxW!Vz3LlQ6vtHk ziH8zr*|^+s4ASUCHO&{26g4E2_ER}(J9=H0;w?n!-8ygSE)S9O>G;8JFslCPJEz+F zzBjZo9BGP|3`qVD=NzH#3^MznSF~5@1^(~A$;y3e$0A@$viBfPceN_EU>9Bb$jNND zQFk|sMA1*q-}~hWyJ{^Sdryt07YZ%7Xq~*IPXZEjG2RmgueU>2)-mA%8FA84;Yf~5 zJB~3AKGKmmZ;$9qk}#(sGCm2j%4YIfk`BgN8F7+-dhm(rDQW}8N=SmkC)AYIEt;W` z6TmW&YU9y}m=4V2$7@DbZQ~n-5=DGdYC}xEVN<4|N2BhoJ1=RQykX&tu($HD7vl;k zbxE7Ta-dSD@d^#>Ry=jg!sqoJt=qx(fQ;uHOy4^*W?Ngl`XNsad`V2eyj`|#T5`WO;z+RVA zXX*FV?>t!I`QbP0hu`-Y$ziKz*yxsYx2jrz&pwg4K4jw1Fm76Q?dCB;dE$S2>hM)U z3&&Jw714pwV3P?%8Z+;jrfH_F9xZci03Ix}be#~ZigKiEGU>C_J|(7hj{DN;>T3PE z2H#Po%WI_j`7gB__iw$L=CT%FXoa%J9F?*|`Lt8(`4cG>J2G}jyhYKdNGj;MCM1U* zpppwFg_Ke=Vex^3mWYVPb?T9yWee@Dy5Ntmyd`T2X@#p)6)#IH)rmsWoiL%bTFrIp z(~oPKQVM*fEmm>&6?{Y?AN$Pqzhu(=8p{~ceKr*_pl`XumvCqUd` zK^md(=^1$#Rl??7ZT{Y9yf~_lZ-#*sA#w9*g4W*S$7+P}Y$tLKmJbmv$kGmiYP1Y7 zKpgr3&TOBs8aoEC)^nVF^kTjP>&{Q|qf00+G+Dqeb|*gA}jpm@#9(Tp^7WMkcpmK&2H2Cby-~>X|X4 z;?G&CQ0#HVYUeOxXU~7fJHxN9v^BvM?1_-_$GkBCWX=8qPvTyC2ILG1{ozZ@DePfWYEZv@=dt|g?Xli4o1t4^mTLD}@WxggDu!TOajorn zx&Jn{1mFpSu-6&4{9v!$(+JC4W?YZRTwz=fNj}G1-23GUhhqNP*a@~7rh5LH&4`sdlHU;CdiX=5|F041VqJkd2&gN#-w@vUPy7L{?`O!@MC*fp z4VV|}N!&4UmXUb^;m;ZH2RF_cJ|n%B4S7QO>-ybspXy?-+1G~=cA)>5gk6(<4j}AM zg60f;oFirTlDq!&8_roF`h$F}$uokm!}%V97Z@3~OvJKF^hlIZlkO94#xu?*0*h}- zU_kx(Z*!OpG-ufO+z0%I!;7Hu8OMuY4PrfjV&%;pRKE73GM@i=-OccpPn>~>i; zjqP@${q=Wz9?83gpw4BzgAi9TIjFarpTj!?oH)ied)zqsHhZ2p`X0BTa814J@h|=$ z`VKHQLGeSogA&v)%|xJ{yD(&#RDZD-fANo;=zoMA-TQrAW__;M?cY!N#?Q%rh{=83 zV{m>XZhh}KAKedjI=&8f$ItQq;{4dt-@o4@E+)8&pNoyk^40m?<8^$k{XXg%Ker|- zXZM9TenRl>_wNMiGjs0id)sq-^?T*};Qv0|BHu?h=YMQVPOsKqFW(RW$ourX%>N{a zjg#R&Nx}d3Ao~CRU<3aVqxWBesyP|{lcxQDFY*5s8~AUR=Knj`0Nei^Ho(d7pR}(3 z*Vq8te+d%*AFzQK!&SOK29uvAGXxovKTPh)Nm!_cXl@@xWtESGcILePKIvF)=xG;x zTQ=C4hJixbBn_|7=@G9x%!i`kCZ!k_G>nzH1utGSY9IM4TSH2h!T9^`mK<%XbLb>> z?!`~LRZm+p_wA^;i3_z4w%TP)gBytaRNz3;>VCYe%=tEV0BD7fAJ=5tx;&}hG;)Dw ze{%y8<@Ti|awcP)a8~AUv`ad-B|3t?8uebqDhX02k2_q*f=YMGu3tHOM>n-rU zIr=+CVC4t0D9|)8<1&u79Z^5-p&B-5B25BhzxWl7%|`LP=#IucECL6bXcBTHB7w&a z11VoJ488Y>IQRuK_fuD4-3Z~Q`8lT{n7si@42;2^PkUQoe(yG~ch^e+cnMP-|8&V- zBZATKUIu1}(q#|^_x2h5<+^>+>7e|)dEehdimShPv-A-8yGMczJwHDDAuQWO9=JMv z`QO2M@CCpHCPDZ>!c(Xj{9{2Jsfp-G}CY@$SK(Mg{uzJ7+Nc=(lAwb|BILARQ)mECSe$Jdo zc`AwOwJlhyLK!7ycz85Kj6i^c=-~7iWx>al#$`S2LpukaJm}BSN4R+e$xYW!?BV}w z;i~TW2N1vp6}vr#N+2fXf`-%cp?J}e=mGUoiv^I>^;WzzJox z!n;b>+a+CxaH%B(kOoO`Ju2=K?o&!V@kv3CoMgVJ30iXUX$#}4?wsn-r^2Jr^*p2x z;k$C&I-26Boa9|-wfqhsDQ}D0vk5aQlkyf(gg0>NYG_%|gVXLaLLE}Iwh<)-#20fW z3BX|V{Z3>i`4?}(`?z;TRNKUXoWhZ9^nS%k{3owwT7hQ0Il)|wcrtJZXPj$ry!M>Q zMTuP*5p9sHy)<(f2^VviDs5y2FF`!NX4cYNm-yX;&J@GnG>zRNfeVq;T@6#b#L!zH ztqv>8?v<3NiA)gDVsxf{uR16b4(DiH`D9hRzMXZ|7%}?pP`_}qqZYMWehtTt_v^3- zzoznsOW%R@^l4^uSE8p+skM!lVk#&}%(t`Wz%^Wk^3M0{_6zQxUP?QcsRydvr_YODj!E;sWoqeva)@-qwcB{$ z@G1&wQ`&{Y+NZ;?1@#W904)D(5SAoQ#n>qr1{6H8Z_D>6oYQS?r!es&r-gp<#I$x~ z_plS$qJb_Vuc9t$ND_q!X22G+v3;6~`{S;QzjgAg!_Ua0wrs8^Ucu_C#^UFsfhHv0 z6lU>9YU-&eZa?=enOQQvOEpm3w}d>hS8iNuK|*^j6+4Q+)0W=6TKD6Q7KJoeQ2!9F@;iK*DOvBICM7M9?;3;n zvJ`3fy=q4h)g{=t>lkqj!(`1_UQd-aBtAOFV1K4dlJC z0`ifIDr~~Kw((?VPgPy%vKGF{MlSAq*W~fX-V!+#4f8!|&VTx;97+?AT!=%Gp_~uO zI`$h-m(Dfu$4xmOp3e`LYJ2xb0m1W>78Xw3)fU~2=5p2(%-!Fv*#*oO1W@(c3TXDb zXbwZsg$-)AHOY<=SGljvPKcL!o>aHqU^SV;> z$n?Fo1uXVO3F}_qnF3Z9rP3G8OLvJw;sN=^jyfI~)APNBHHV1`invuLsJ@&DYS-nvcK+p(2gsilp)K~>zPC!e3El=ty&+6MYK z)b9!_gAV|cBYUKTr*`Ia4u#;%cJe_E=j}lK z5&W(0NI4=aj5nz0xs6=)_npK8WQo#aS#+E&M<~O72P`%=anb)$LhFiYOA+`j=OcnU z4_UkzCum006$H$Jg8k!!WN)z-o>Q7eTDO^(tvjzE(UEANXxzf1f=SGDqAj4@fH!Y- z1?IE4=^%7`Z_J#R5c`&XZTS;_DkKB0;f@PN0~9{i25^;%aTOoxNmM~-e?alw|h1=CUIj#%h zXThlLf4_u1aL#q{6lGINbdy>`7!CBL}zff|Hz=Gt~5d&7 z(P371x%Fg&- z1^^eC(B5dGn@@fVyy^+9j`4Az?O_gmj96gM>Mcy1&u~{SbTw7ITu-?W{b;{g#RBfq$+)twF*>c4A6aXkjjTKtpk!oJ#A1- zD3I@IzC({FDkyaVC?;x5vu=!?P~c)Yp8fh*1II# z#Dd6y#$hbcSxLYjf*}!uj9S@RSzdfXDlScPVA@}Mlukma|JzIcqJgTDr_ux17G~1b>f5wb{q@f6FWS{majakTBLuM zOZnzAE|o>Je1WezQbX);z!0J4kR88jKq#^g!y zkHw}Ui7S|Ol}IRzN=B3xy9Okx7Q9kpbMD806Z-fYS@ThA_R;iJ)|A~*-s1e$}-!!qc9dt&c6Rp-> zCng-0XgDDlmUIos9Roq7#f%cX#f)bM9J~U9MrP*3mvRpMNf^zu-{T$a$4}55vK=yq zYC1)?oAfE>^8)s>2~W{CTu|qjpPz~57k)3(th-h99Vhw=mtXv!UI@A*t5dh4ZDKSr zZ@9W7O{ds5Bm5=x59%kWdo(=MQ}CE1yCavH-DUU!BwEt}+V%vSB;*P5Th(zq+UahtvFOMV+sTeykH zJvuD8$QXIZ$Sixr<9&a|0|Fr|h6cZ5?NfG?bVAWvaHDE*sqG=E22@+Hts4QZ9`C1A z6+@~mkV{5*zF}wfytX}7IuWiqL5&(1Q?0+2b|5QhYzpwyty#Gy%j!YdcYpoqGg}W` ztHsBuL1y12Uys(dKTCh-wl7w@U4Q5PoV#^1gl*cj{nO9ef{3_H^e6V{BjJt#zZb!I zm+sG;W78gQN0{*OkYrY0Gl!TAX*@8FCP98Ee$)g8n?XObP%|xPP$QC@MmTCQR@Fkd zovmrCkyE2^0t-N}IJTgHniJ5tiu=y=1E=xRu1{C1+jhXL@~h(NEAOE8=EK$b{Z{J#;&$(IG*9G(!VDJuTbkNyKz-H4 z^TfjMM+5ro0cH1JiswU#tLaC)F&{T9(!5beH3U<85FO!5_8?a~KRUuwzhR8NHFt4o zzi|FNocCz?8;GvKVUFPbXI%YVYusM;=U-bpm~z`_a(Ot#;et_#sld2RAiYDPx6*aB z=I9sgFm3k)%IS!8Uut@iQEBD2uM=6!f^jhTlQ}^P4J(?GT=G*zDYfrufzpSNSF=vX}&B2y~t>du4_Bx*fYy$kiW`q5OnbV+c{Tn-KZ_Ww3k!Lj#}*qxwzz(?hohY zI25$(&;9$ekYaw$45c`)q+Lx~iN z7FOb4E0EKW-q7)&eEIEULQ-*>$D^Jbcb<7iF7i@>RpukpNRqDP*4>tBy{66&Q&Tv6 ze`>ZJ;lD?w@`N6pvzETyy?xh)dk}z!c?hHH204x27*plbl%Zs2P_kObPVhQ4t%eqE z^WUPkM8!Y}EH&#;pxe8*#ubMqu$$g`%u`IdjDmT7u zX5x2WRfP?@sJc~UtzXP=^X$kjQ;k-Vb-=!ydsooRZhp?+&(a1$7=(Q(Q=$}X{y1#xDgiu026mLCE^Ih@ZU)Fv! zOqH&D0D`*0Yj!0)&(x89C}R}$Kxr>VskeQu*foy%JJhS+J8r(OW)M6JCJP_d$;wKV zZ|Hr)9o+7Yq;-xZ7MtB=gYReOSg}6W3M+X>zKy8+c!_EIT2>-81vkZ(TCIldM>j|na)>k{> zyPwIFPFY;XaaNnE7;CpT?hnT!z?i^VV>k7;yIx)^*8diLW%l@N(I!9${bkmE$zl#9 zh5uQRPI{Q+mC7b-HAvbxr);oQUChz9j+$>h z-m>#JEupc8o=X2iV=iuG6VDBkoKJ=SqYR5v7xpaDuHtcgs@oTqbN+F+5q12RJ6YA#W9ko&A!1E&dR6zzD%iT+*RujobUN3GfJiY;lFO%dd<9kgL1*}i zEe~?7^^RAs)1oH}CctuakB12m7SB67gd7Bc%~S9UAk3okHqn-2*iNN5hpXPK?=V=O z4I_qaVnyd6|3@a}(3>?Y=-InBdFHa#DOOLr6WXwOa51IlI-|@kL)~>hBOs}q%wAm9 z8vIG=DfdL9o3R|jm=?^y2Q2VGQJW12NR#2p!HfjrIvis%N^$w5U>zX>810Xvv4o)_ zC!;&}S(A)tJQh+fDjJJjQ`M88^jHD<*(4caxmih>|75?-+&j4292d(;%3!umnE|1% z7CSThNr8du>nmuZ5RV0;FOLNtTIYy`CTQQJ1bH#qa%^W@f}#Px$x>5wz~k-wrG#iJ z<+W8X>(nYf@8QPC@jv8xy_o2dQ{`th;5Xrd2E%*)>l`6_-&-CZu&j3j&)weL8<)LE zE$o;5Jcht$v~Lifvl4V5Lt%NNOV-}KMpa}bEw*OT@H?E=2N?K*V}?eTqFhh@myG%N#)V_`uHX z@js&eGV#X)w4)ZY*t9xNwJwrM`Rt_ca4DD%Z>OPD9mk#UPg5sYa=JF$+TI{~oQx`#*7Kl?16!s1*$i{J?YC~!k}&d?Om3lWM;J*jDj z^~I{dofeIVzJeV0zrUx>=2RQ_Q=Wy1s2c=vh!IEgIU^8zuZOL3a~mE$duZmB{4Q6a@SZ?(#EUfw zdTw4`?rQn1ypwK=;jDibp%wC~Ytm|K*p0QvtU6x4~dqX@FktUNf1AhD-Vqbm#p|!lV zk)vd=<#+CJQJy_x^hIR!NTx-_Y|oTHRP=#~{DPmE<025%nt55i(w}H~EIzwUQO_Rs ze49ocnY}vq0ddj^;926WD)bmhxKYbI*pch)hzEMK=d3K#iu_tVZ|JraP_OtHeS2!? z?)vlu^ct{HV4|NbTT zPTpnS(&17{I~^*%Dh^~8?K@7q+h9aem$!bm4ZP1s$Cs{3s(0J~;C%pR2!Gryv?9&- z4%|F#lm|$PXGeHr;xD;wMovyLziFurvWq2X?(NK#&DFa7-NT~6C}LQ8Ee1b5;~*t= zx5;x&j7c~M>mpfr6?Ij)6;6+YufPa&)PG}A(veZ#A$!9yc+71E^CQUpPEcM>kS6U@ zZV!n}a|su0(n>~wqZZR=A_0WO63+FXuW3H+y?v|^n)a5IU=BB}_t!ipxQ?v#D z3@g*TZ6)<9E7(5EfU(K<07}X8TaD<4!x2+DO|8kP7>xyMiJ#eqM6K~$pIjWx?}=7)G3I% z69pDSwgoZVZ=4Ov9+SLgRZ%z1%6v6ds4*!#Idh3I;fTc)tKW(-TH3c@tKVcHx6`A` zJDrud?y|9(j?_g(F4baa2PdA9ruZBAF_kKm-lJv_dvS%}ghO&lDZY9s`!E5A z(~tbq4cF9l2V5%X_P_X??8R)^#`bHmK~#9V>6S{8v~DFsC<_9^N6xcd6;ZDWM-vWZ zHVc9&DT+tOf%HqLN+ArLb+P)A)p_cx&&kXS{d5%Ys+t_1^?!VeR@ErHoK$q19{1E- zE}7KRDY-RJB*26*@0$$!&60_C$a^+hah21ymwgq=pYwe+SXZ!IObfJDwWY3lG zegBKJ{%Xkq14KQ?sCKT2^lSFgN7!mEw91xk)0IxwS)ehSqN_SiFKolK9*&h&Q%MYq z9ce{X`<0F9^D>u+a(^bta8nFc#Trqf%Y8L4L+6=jDbPM~xN9`tgVXwuYu=QPp}v@o z=w3(IF2wQHx^9#t8E)cYTv&>S%|g$}64;7U%!ugM(E-&wh3Fb5_Z(-ly_~pY8Muo> zq&ql)>#F#!$xCe}?K+!^I2V@XXUF$1Tp441cj8`7`v^-Sh5f9o9E*AI6i6NG4plA0Q6RV1c0oHx;h8SwbCnIF~6XAoAnZNa6wO;&c4Zb{frZ+nUkRz zm{}oD0&h6~ZFweh&FN}Q3$aVK7AIh#x0c>f0-|+Z5h_H)Hr>eD9i3}tW?zi;Yj=7w zPoX3Ye>1CY{DqF+r$1>F#)nuv^w2F>*qL9DUe&%lFtcQU6~Am7drJ~LNK@9C6|G#d z$|yr$;tp1`E8q}EcaZ8tw1bmrBb2+Zip%b=l{3^1;h%?y21(A~+-nrdO?1#CdQ_-2yKo9|=}~r2=aUMH%#^rj<|! z#KJM%(&;pMc!oh|KUSHGWm(e#cb1j51iZ(wY!Ix_Doj&(iG7S3{7Qwa4_l|AZ3)R> zaPe5d;V9K5Xs)d`-pM+>L)vGGEQb;!+4YR3{`CR7DR|)5utkBck zvN79fUsSxCsN8;(4apP{R>K-AppB9|wu~E5=NcwV?WA?7^)AFbc(bmoV>$GSxvXhN zpp|2}b##GR}Do_%r^ z4;#IWrLK8l(wtNnLtB5i=got$eeJQF%G43l&#r>y3ZcZ05iuTysA3XDU%ziwQyfeX zn5LvA()w4JFSR!IX-VX$M)bP7h<#NPyF-a0Uu)o6ayKbE$)8A5+-<0Ogg@S;TGIBX zZ3z-^DvH30a+^gdL_+K~;<{vk!E2dJF}+n&_GPMxxsH0KyP9uVo*LwWU@oy>ni|Ia zkNY@v@pbjNVesmIBknDu;%e4L+u#Iuch`o--Q9w_ySrO}-~^Y(9YSz-2(G~;!QC}j zAlPl*{mHhw&-r(H!0J`Dr0S_2$Xv6E0e9JR#qye?jrnTWtL{9udZ|Pxqg%C=Nyqtf zM+q7M9@F&Pi{(OE%mLWyb-&an=DR!RJ*TCK$ibf^%CU1Hu4WFO#*dt5JC!3RgwBcp z-S(S@ht3{l%k9h{LOTnMJjD%OtUvZmOFQKb`9|f0M_$LURgP_|y_ONp`*d!+;!Viq zn~VFZAZBTp`5CnUxaTn;{!^9P^WC@#S_L zj9LM3oe1nWQbeq$7V&Esnd4nKe4&VSR%SfZc+HO#RmYnUW(%R8RhIdwy1V(-%pDe%E=qN5 zojz`gMaYR6=F8xmhimS0`sBiQ2d4x1k*TRYz+@14JSoZOu;Xae$Kb1NW~mL8NU@J$ulg9sQTdJtzI{1J}>vUi#g8SID3u z{W#}`%yBLKm$5y0fRXb<_P7Zk&*cFTB<#jJutx^^(B|K_X9gg3dB6k-yFMh0leYTz z>;(WWTzo*|{QB$rS2!TF4g&gT_e!9c>bA0=;`KfOwasK?_n{KJ+`in?~wpjT30757(vYX=ew?Opp~}OAq#epqQ2vvDpZd;?X zPG3pXxG5l}Ric$?*A*QEqrdN#F4|`Fp%Awjy5Ir47AYu)NUL8VFDT=&~wP@|s%4vMm z8xR)c6ecfHYsk-SW5q9sIGztbt^(CjOH^OG+M=#47F|qJC!@=RC5za3ZMW}3Xh+Z~ zr`Xj}UCPCxpG*iqLUg;{pO<0J%b@3&65vrwKd<^qUr9dKsb+`pB`H8{6z7a~v#R>* zmF6OcR?@0meMtz1Rzd)F@z;=h2AQ^&%F=l~Rkc&*@?Vl+g9h)LuhzsQw11}3J{0ze zF|RdzuwKnD27Gj@nZ|h3-NFQ{^SYb2u`uYbE)46CU=LJZ|B+P@H6}9%fRj;yAdo>7 z=kB)&S3{!h_~Ttn_mHtg8%~NJXw1{=oV|5n5T{Qs_cC-T*bfZ9!0WcS58tBeM-Q*T z?>4<>><1wkvHDLsr*E-`e`9@WW3)@bqK?2rVe=omeBVEeL<)S0+KNXaWqS(Vf(rkQ zzi#FY+RCY3H!G&|$=YHL=f+<*_RiUQ*KdbZ!`9h%$<{BA#KP9ub1Bdt7=C~kICaU? zFBEQtmuu-Ay(Jsoh2)3l$u7~s76Wb{vgHy!jOPhFH9rKqCY13#S?#U7Q?}5scZW&zLs-6Fl8HOmC2KMaW-Uks_Y+K{vEmivJ$67daypN;+Vt%)kqN5pm_zAFR?>-Dh3+~6cKIJriUfT9gGYquD5 zQ_e}&Wr{4rq6alA4^9?>lg7w0Q{ZGExZ)&1LZA~ksSB0lG$#bk7$Qi>ZH6uWQVDS+ zYbUa7hb-e)31QR1NhS$C^m}lHRe}T(@QDo;gBs@u651;vzRs!Aeof=Ei6~K8cKn)5 z(ljp{uYFt`!K^VWp2l}1DxY%`RHD?rp-Q`E^)>k%T>Kkc{8~FNyTar#y9RDq0d8pu zE~=lG_0l~q<_Bk=rSZ`-RNivxX3sk8)7Uh$$u65aCOL9)%eJIv6=zK-&MNNH97(w) zH_oh5Ik0leo`AEE!C8NbQI6Wd-(IrBNrEvPR!tV~C%RUA5!*7tGEy@NQxdaO(#ai1 zePhAVUdrldH?#gJZ3Ad&;SwBgl))i^Q5P5x4jim!EHuPrhi*SP>iP zpWE0NEZ5KP*x1;(ghqa`u(6YuXB2q-O}e|W7W~Q%Cy<-g+6-Pkwz;{{TY$N$N?x!k zH*Jv}B*1)A?%6o2UXfNDrYCTkmly2|jUG)Vf)0-bp)7-nHH#dU9WJIMMlLK)E-Xqe z4BinTr_E2;Q6AYSNcbj7z9CLNoS$%!pWsxG;FOG-} zIZz%kq1$Dr+htK6$ty?@R~`|i+f}36#iRq%`@58MyC0NCNDC5B3lhKwClw*T5GTJ7 zCBG0OzYrmJ5+`>OC3g}dcM>755hsVsPxz6apjD8dm7f4ANC4$0;1(p{<|iB!Bs?pR zxG9fZ6eL&`Bm^jruq%(uDUYZrk0dLP7}A-eV$~BOM2V4q5Fw8jCyy5;@5oQcQI^5Q zntdNuraXc|x2r<83%+#lg_6_lg0ByPZa0u_SBP%ckZzZR&YTd-l^d%b8(|4DZ1sKE zDn!^SO4urFn0>eymneCQ7S zQQKY5bjAQ9##W7~JjP7L04v6p3TGj#uFMcC<~T%K{b0BdjIJyUX{!^Os%V(1RK-g+ z0dN+UwblFU$|hqaJ(QTr8_ZO4uw#zH>LSBU(UFHJ_$YB^j_M*82PpWMaVA8VG8gKs zH3tiI@MHE@?d2s3qwFms`BC&@GIRQ9dfpv7)1BDz6I3Cce^==F9d=_?@Nf zjPSpOI{wZR{l7@_zlXRbMBiSF;!cikPWC2lVC=)*#LA6~gN#Mg&CJ5los1XA3*cn~ z^6-$cydB{!i;a^Nz{}0W$pz+G-7Oq6$+&m`JRE<^5I1p_v9PhSb|>Rv=K%o0a#LP1 z7Fl-_dmA%RM=N^^Fn`S=<>crtCg$W#rboui!OjK%vhnZ&$(Y$$*#K-DT&%ogT-@CM zwFhJc0s(C7tQ_2A27hY^CY3GN$k=&V-^i7J;#~hud;P!n{kLX+clY47ZyodxDEGf~ zgPMn_yN|O48H>2A#M|}09S;n}fK%#D(y|hYCeGm7G6(mDjl0iZ*=jy+;J%P`v~(g9 z5MWWYu(EM;cl9Bo6E$}-wV)?s`QU19;cDY(MMn4E&A^#z9?s7877lNn$_nObShT=h z!b%3@WGCa~;05roa&Ym!-M56+U&U`@?PO|;0KS30bItxoberd&(d{Y6Ppn8o7d{B2 zE8?jl9b(j>jWgsfKS^WnAjp7Bv+yeLaO;5-j{G(e5`P9?><`#k%H1p);a-lUbc!OB z2=|-`tZ317Pn%3skmTe)7CDa>)P2TXXfvdV7q@6nw7`G&+GqG-ow?RW(=0}BNH|;U ziy~^4or)8Fjg{R;XOSJzS^>B);+;V~vyCi>V7R4fRqM{X@pIkzkNBWLih*G8KXu{| zXjf$1V~-Lo#NZRfHPb9I*g1}k1jsd3MlXh{mS%(^6e4L8;rKAlph~d#rGk}04pR@& z=%S)zKtz#B60+%=i;Ue~fk>H2bc$sF8@1U|mK$#t(ZXBdiVM_+-BTh0(lksY-KrT_ z(#M7(1C5gh7)JI)+J85bfdBS!i2sCh|4SfAI+{6|zm5C1Ec_3&#m&P3p0xid7=Wy-;3+F4ga8gq3lj$f@9a0#aIz%M zZ>RkLH=8UD8(;aXgidk}cpLgg5xp{wu3+spT!q@ywC2?&5eQM0az;pW7z0TcjroP! z=HnH_^bmkSFJW|9t+!}C8ACfoStM@pH88m`P2=0}x9*FjgQbk!?-_2B-!pjK_P_6* z>7l)|gdFKl)HP8G8lcJ|zqw2(L9Q<2r2ukHhv7TVzAG=d!PI zxgzb3O^+5z7wXM3tnnl8_fR3&GYoHhSgGT&kY@i33{ro0$bM2TDL?l|W*p)VU69Z9 zv0eF&kc>T?47|v>#)ABT-HyV>y8#rDw)Q{e?OVc%YY;M)K`$KNx=qke;*sBt9y~oD zp6m;+`adD|aN)6n_r@;94Hwm>89zX=|}wzAu^Fx1fz>uBpfve!dH1jIU$yOq*wg2 z3nO_$#gI_kZsu!x1XUHyNkOooTOJJ|S+g^J*C+h>!XMLkRSG^yl$jlB59y{bLUi6T z4J~evql>X*6GCW1oZ}=DTm`}^E8@fxkBaiI1p_N%$mvYno3*P!{%sIyJUMd|7Mw=N z3VUgZMemM#6w$NE2;?bwB$@UloZnMlN;tPge1_E=kaA`=g}^c;2RnnWSz-6mL-?2^ zpe&0>w8X)lVPmp-pw#?H9sD>esR!O-QBFuyS-%3)kbt@wIhKAXFg=!lNkWi7IUZj- zH1L)DR{oK;fD91|c=+VYKsU@ZFZz%w1v6MSEcP9@mLP`03@jQBOUK3kn`l@}+*}>m zR7hSqLYLe|qVe7^gim2uY<`P?4v&^YKlaMe08~IQt{gw84GnXx9G_t-gqxJ{6=V7yP9o?UOqYMQHpX9R>!JPoNbeWXsA;;YWWAl-GX5V3Mk;)%G@A#c3GS z-+w;$wuJYiqwBL*7#0vkt{Dq+L;9^on(>vQk!eV5KJvk{YL?T~fyV+^4Q`ejBDrSA zMzGh%*C5$Z5f%^uHVKFoqG*}4*Lqe3$(c(S)JNxY!*8U=KCD&Tj|=d8L@x&tUQY)> zn8s*7#Kp{^fgmfg8T;^bnfPL`s1WuNNt+obGWbr0 zuV}^^dMb#S9AesN7&FE#aZrW04z#3sISrRG~L6`Yts$Xp05xv|&OJj)iS z8QiNPOz^9hecDKcjAoV+KPfpmxtE=_=j`ni<_e06iZD|mX~R(Hb-u;g9czwoQ$5px z&tx>qlo>=Q5l{k9{j+oAZz*g^l^%BG>{OTmqmlRz^78UfQzAN!fB^~L;(?dv$KT+F z#psl8=b%Q#V>NyU3(s9m#~cPeOG;)=P7ZQz@Nzv{WYmq!-RkP9{w0!iGlgUW_Seke zL<+zAT;n{5Qyvz6tA?HIDfvHx4|>vcS1`Ff?B-m#y`G&CO1;qs)8U$(;pQouflR{& z+Az$e+nklX5(=TP)U7eawVLMJCNkc59f_aEU7(sNqO_L|w1ZP;4J-TP@MZ|Z@Zx<} zr2u9zD#86%c?qA!ojLcDrS`2_8u*urypbGc?M{hI6QT*`jkzD?z@LQh_+>q7KO_5h zC(9--w_G_26@A|!y5y%s)fW3k8f{ zL_k&-EFE@mP4QRiCf`VGz`|0OcbJ#-n_Hh(#GSP}G`IqmyXVw+i+QP+2l?ORQbrd$=OY>6-T^GaWP9$qtlm-JpXB0XQ>x?? zx?7NxY^rKbql_+%LxTE|;!(c4Iv?dT(=!v0SJ!i_%Od_XReE%8ckt@dmDQD1Cc*?^ z=7+|a<%-4@Yw_h84{;Al_Z<&R_tbWecINhgKMeN0DE33wg1?225*$BunZCgag64!4C&5?boq_p z_xhg}S|jGi*j@PRM_v8HzsKp%a=dTNP?!5{ z^I;aX7SC_jnkeZ7@J;0Rv{ec4ihe?Z4N+^$cQpj&RElZte$Q)ELB`q zw9i00IIK*Brnx7&3cf&@;8R#_U)1;r5gR_C3+Z`(mv#8(lJr<;{kV!>IJ!-H9HAMR z+Nu##?;c_&qteG-!ei}esx7@Jzz-ucG!u~v1b?VS`H+yB^TR}l=>A>Ah(%_id%Pvp zc)sW#h#U!S{nqYxvXq+s!7P_dLFkzd@M9My7zjUg?^vj|DQVM|cresNYrFxBQYK0=a#1#k~zQoGK^ds$N)CAaSw;BgNFKA6<@mt+hX0RWZ zYW-o!V{7wY{V8VD8yRyQfjT}ufzQVC-+sV#upjXFMD}Fo{7f}F&d^iOHky+cEC^i3 zu;LmdKnBjJ_~vL*%BPTZ%?sAcsR(M6pSl>i%EH!kRA4Wtt$k81VOWUfyAs3K_=;gV z7M9d)E1C0)G^x9`xJEB2J=K5Ls+h6FQF6^-TT{&Z82X!@iW8#?9M)}U&oI1yS5GYU zdC+)jVl`dKq7HSmTzQJB$8M5N?`(O}XZKkwOoLNEbhC9!S2Um&I| zi72#KvU~)m%3&=2QHgDNN3pu13+NKPOjXy$qlzyuF{6lX(hINv;vJd@jjM ztk#WwuJCnrP_3Qk)7x4wc1|r6;^^H-KG|kPtFj-9UT?eA~)yCTQ)9POY>uYn_h%%c6@&M{mbl@%N*BUn{>aE9ktYCJ#ediyKG-yRwdmB%hRTeL(5P{WsEQi9e?{b zU=*(U<6UUUdKhb$a#F7CZ6o^IjYJ&b9|4+NLWK3TSl1Sjj7qulXBj4KF1D$Z_Opio zN?z9tEsT_18Ujr+>bJS)@uS&TMtpYZa!D^Nr|qoY?2|g|`_#Xw5>!V2Y_5C?(M``= znTRpA^{+FkpMjThNZKq<+m3cLG5kfS&a0R@*Vy;fPMq%<`eV9SN@982aS|(%M2G&z zT9wG0?J9|1@(m-b3nuG`C;cpCMyvwj$_$KJ7O2dOc?3vOMm>yKcq%-6s_KjkW6yvR z?LqTz3?*Mxbt9V&uAF*G|BO9ntDOs9gqo-p`v&JThrmGwzx(}W2s}^J=-rfQVPn(A zu0*LDI&vI5MQNS^8v=VDN;C}OFirKGn!Zy0fK_)}_{$JD!P{%>fLYw=`t7)Z6CG>_ z+#paM_JMNrX#a8M`gj6~f20UD1g2_XTNQJwU~#sM9=}%hbgG|S%%A$XRC3@Q8zLq=Jt>d4gQ1s z?XHm}*b(^60vaJwu}6eVc>puMad7V?*G~qT=KKKU_Y6zGlvO-NGWmJ3N%FTbV`qWf z>M_S}RopzVBe3gx$*gHhIURN&XnY}5m%NqBM{EMI%t^(>fgB^kU++atbG_}^7Bk*2Pd<*3SB#2(p8@;LC zGJdA&=Q5b+(rRE^DM;p9hEnG@C=!~};2S5L{R|D5yis{#3}cqA!R;dQ=`w^po#?baEgx|N}J&Vm8)=r@h> zY%Ve)8uca0=1Tb-GqnSl&NYe!|4GroQ<5R>d)66mtXIvinT;y8W{OR6bLtMuhXgI< zvK{IUl`2nj{W!aD9tj)Sw&m=zVX2gv^A%mV?nj#Hs^?x`IbuIZI}p{V!=#imNK#`y z0YHi>oZvSLsitE$t?O2xkU-uqwP*jug$tQ^Rz5 zq+my&#?KH@FJ)?ozc~Um)nla>e5J0%c2o}h))qXTEV(}!ogVjTp-|&Bqg+gA9(%%+ zpQvZj*wg!^pn)BMwjodJ+B$n0oHj0^^2(!#e_9G>zmqQfQ22V)ZV;`5|249ty1C6@ z6~4%anN@&NkO?n!2u4FO^WJ;DqEj)oz0rtnTkQfF@kFv_8>1lZ0%ImBo<`ANQ^Ur! zIy%b#%6wbh1z-;#=`L)Wfw{OC_KJs<@oikXe zS(3Q0<0sXJu%OEI3n5Dm5?^tT5z(yJJ=ezRCPeK@?l}?l%ltQ;m2vzefbB2s9H(z& zx8f1=sOrZ*PS5u2lmEzdWk&D^kdLmJ%6@0Vwv<7DXM<6vg1Jo!IiP}Bp@v~Al|?~I zr-sv%LE(@?5uoL*HE`W@80{rBl0)g$pn^N5hU1b&ad(cJm#^n$RB|&hqK9ED#!^l% zHqTB;>Mb^xah4k$Nl5}K$qjMPgEY4qi|MwMRl2x`1>RRfm5K{4fJ(fd z(xJJ4vcgB!yz@^u8t%gTbI;brk9E1{!(ir0y*`v9r-+^Gne{4o_1nrrFP;BcYcIJ&(B3Gz*xs&zII~W_MAJ% zY7bp-JFe4ND5d4kQ<4wd0)-JyadQXsBsqI(JeNovJmX)$8@uHCQSpFWWWol21i0Ll zi|<$TMBa{uS#Ndp{mjxnZ1u1^$-cd*@zaifao)_}V}5(X*UH^f8%nhbJNz{D`{?95 zJ~xOijK&ukcGhmQ=!daD7c5&>xYZNgb=`AG+sBVqk?RN7cPAJ2t8xTJWU-jCJCwzB zaUAO+1Wr`355>RaW)G=jJ!cQeVufZ~V|R1CN~N~#y7Ds*8j^+#ihtqH{uCh)EC$AM z+>ys3jQ$EMtMGAerjwJLQ61qX_Gr=Rp^EFRb0AbN^yTBq|c~)>};1V z^Dr6b`TPTOA8Pni)sU4TnX#jQ<`Y?dGN^XN_K0 z`tfU8@rU%72RHy-!$-O%avdi7BwSI6*n*RHd&OrrsoJd3Zpmv;e0cFZ|8QheRV)b& z;!~7berR`NjM}Se=K0u2>K5pTs!~7bv)VoJkc*Kd+i-1khZf))$HR93xo;7z#JQd4dQS}V z{11oe2ag?haSxq#_Z<0y`Py_~fgf}z3U4|8)TXoa`u}F{m&L@j-=qm3o zqKs~Ih^q>`#ak_;bTexD2%LrtMHb1?G8xN;pX!gIeJzvtB?@U3G&s*G3U$YnH4TgR zeaFT4xKt*7rG0JxrFEYL-zJ#9@2kBvs;Wc16!4TO>bCi0As2YpIA#VDOlAMMGK~=RFjqb6p|x zYUs{Nb?-~|Y|zA#ZKNpey4y&|k}2a*sD%=-D(CMQ@ucN1RurPt7 zy0=^dywNXPBqhleM@l3m-}7cTx0Qwql~5}N{DIFfhd~xACD%EkZ(yuyET(5x9HHVg z1tlz{&W~8kql*nVvM}4Y{tSbc4Ks-RDO-+~aTOzDDPgYIGD1)wOYv>wXFuCe901=; zT9$0{x#(;4$O$!bKNKhS6Hqg?qp^C-K(}PQ-8?OIV;Mu_Rv$!23CLwMtIqOsT<9#gW}*WhmP-Dh`n$KXiUMl$0_jycP- zbRrwj94W18uRF#tW2_;#`7%C*)y*o?V}?1)L6s<&_t0C&WQ>HUjU}-K;KZvH@=nqP z#Ie(~4}6_Vd_%_IpU+N^7C%k+AUo0_O`*O_B}l7c^Iis0gzn=7vo0TsZ+7TN zau!6}o^HjDY$u_BK7UA<2bhNn4yex5A6Z@~1TqX=hI)vF@WD;_#+&&f6r(h|qqjLP zSQ8*&>L63LM}@e##{SQS#mVvcQQ@SJC4A(RC?OG8+s(eTf0?VINlyEHV^c9hmr&zR4+QG2mt?5j zKT?60;qd}}yE!6cw9}ed09Gj04BHmE12uKQ^2+TJ`oZR_`{;q_l&I#m_BJ5ruWO8h zQuU>@8M{V#(`wGD+4YJQu73B^D6Nxrpbhn!yt(VIjW12^e_Mw~!0qCCH+a%dDVL&QB)i6P12Uxl zonVEHG)L4P$s)#@;5C4%eO&iYtgyfNkSltMQ}POb2X-n|YudxT$nd2@p)h|znO;sD zDdjX8XEApF1iJ5IafG&X#gYOoBIq189Q|2F9b~3Twnxql7$ko36t)P3`335&PzI4OL-&;}^V{Z8F`C1Fi=RMV^XK zqCy{W<>ye~&KU13y`?1wGh!F-y}>IBZ793AKt7D&T5#FX5)!{BfZHe=)$iHb)Q=Ec ztjsxOy~O7ebI+O*DN0Vp{=yrlI*4yII=(s#m(oUSdI#ok6#y2V`is@{K>ez5bEa=G${t=Ezo=INb! zm!JlPdY&!lGm2ZJ&@vk!ZXhhugPoN2zDF0HQ^Kfrt;o;*_u=`OV>ZTGLMJYn|9G;) zjT9YgvVI=9qZ>qy)X5P7!(3G(YPPvS^3USbFCWsUynUXqJJ?_K1AC*~Qir#hR!Nyg zeJV`hyv=I3FQ{D7zzcp+>Mi10u&+#XeMf1yBR$1(uY~gTL{K@!YQM8{e3x46YC>kb zBX8Gukr?B>aG;Y*hC*!-l z`hR2%oPskF*!g%ICatA~3fYTw_cgoNCIXaw*KJ$6on-+SEO=2v*%_>--)uMiNv(|)IA^2wkz z1b#CeWxu$w{KfJ+KA6BPsczmoMgbILn3)cSW@!t!Z0cNe`k04|`v_Ldh7R#Q z0W}xVTV_OBDKCYy?J1uYs44MhZCRwJ0zVkWWh7|4hz8`(ni)V%t1d<4KC`nm_n_H1g zn@Z4P<}JO}(I~PRSqB*kcY&@lWB!4L!e-G6wjZ!aEO1FuQ!^%V80NBaQgK0`jEN5s z*;Ii9@HMl0?nMSDLxKv!>DY8GmcwZ ztV2}eC>_8w5i8_6mH`WCvc4vt{O#&dMaR)`ftI<>x$!QST1ja2=J^@^IjQK~F(by~FgFreqLMB4Za>6|o;A3D4itE|UgVz>Hud0Mfx)eG8gvju) z*M1@ceL8giQ@cn-3F*<)v~Uy<6BD&&T_0L}y6;2N#@J|a<>aaFsn64Q>n>4M?bOLQ zLybH!DP|g?baH-{@npI^JU4fOW~N3y_i8IxfA?@cqnP)347EUnIrl)i?S$9=PA;gMY$Jj zQNBn3Ta@|VEXonRcq2+?kwN0X$Q&t@`X!rPQ`ScuA4rsbv^(Z-#Ps-rQ$799M0dm&cH{461?8-AsMV%H9Qzn{xEsv5hW9j z=%4iZ4957;OZ58T7@i1btVuZo+7QDgSo~4HT0?UNpg&t0nG^;kJJUZR?9rLgvf`Wl ze6N6h>H67%c5|5Ljv5kgs(V2FGuTcH1GXru1k0Yvs~2VmL^1xCMY-?IqP*k!W>MZd zMVu$==@wxwt!Gh=VEl=j9*l6u`({y2J$3s&lzPgupC26%_hwP%e9V6R2*p478u5wv z;B~M!&P>R5$x1tj?+zcwl;#l$84}RPbVrY4#`TCL&l(XBZ3o_jl%$Uf^|I*?3iUR% zW(I_ufd2{Rd-uM2*#GXmV-KV!5+k&|1QdTbVO=C~zoPc{`^OadpTn&>J*lnX#DmP* zV{xX~X>~=~v35%;mAxLP@FCihahsa@Q*oxu)mGBZgpS72&itCSl-d!5OX!uuv6WC> zo2A#^O3nxJwBcSpXDykmQg5zlkD{1CY1Z|(!d2+Noe$c2;t|$`6AuNz*NfjHI$A_H z3oq7-dyDkIx$yIcDr$oz$>fz*5tpos4WGQBy=p(*GoG8n{i1vMj#(i1xvmV}9^1G+aHM!WL78qaeM-dplGow{+CS@s#dPb~)zh}r?`gTd6`%|bh zPO}-cqc-ELpYUhj-Ik)j)SU^pm_6yb7~x8UAY^xJ6?nfF5xg0Uv1hs4mb?SpZIPZD zJRz8m((Ai}AIs%a49 z2{EuojoU_Uh9gDvMslhbyoc^sBJq!I`AOm*-m;{}1K2$9j_3+wxdg1lel%lQiDiKi z2oA94?(Pe`qfy!x1aIEobFN!CZ4>(UtPix@Cv-*4K?X*||0Lx3^yw7YKVJM4`6)=; z9yf5nq#04T;L};34v|U6Wdpc(fquj}JVS zmxmhDKfgAjj`E%vNKlK%4RV&EoTQsMPp3;0|Xc_i&Oa8pE4N{S79 zwvJB^+|>ehi4WYMpwIEYAe#Mwd(AWb)BSb=@K<~K%SPab*NfPrZ(bi>jTGL#&eC6& zKYmnr6+UJpp!v7p;NQ7*-_X&2fl&W~V3kZ9z$JeXxT1`rt~Mt2it6B+|4iVrast@6 z+28QK{~>U}R4gx$1I)nw7lF&c3E<)7;a~?-y8lbyas#;l?5sTh2LhLiivz&P$;!YHzl#0|zWs|p{73i}`2SfC0NQH3E zrLF=55B{Stnqkl^+bP|%>p5|Ohu=vv_2z2kOj0>yJ}J);^*yqZmIa&u=AV6RUk4hV zwUcuN>lVJ>vFw@eKEp#GNQ<3-*1PW5Ar#OW~h9|&x)0o9;G zKX&r3cxDPB3ml4+@C3I`hL#JgV>Rovp7i;qmBthlFWJfu2{W8UUv?Yqz#8Sc1l*`0 z(gwALhHHUbv>MWWe5|IxGx@!t;bbTVv>R|8Tu_;Uxj#*#Gn?3~jm)Da7LCW?1v0=pk^RNz&xXV6rjW)KQTLv3t+8imKdwm-h?K+s$D^fjXw{~muQQUswc z16P*nW8O6Ua(_F?h^Fa6Scqb(oLxA&nzjeB(dEzZBy3Rl9=n4YITZP)TDF!|tax)K zjr~{zrd8YQAqKM;cmlmac`R7?z_1m@z4J7ih?bu=B8DdDc`JjpxWFD_D~5{D5~~x& zI5&pR34uPbpK8yjn=5Th6e+M)rSfB}(o6BxKKJ5foX-jZ{ABVxR|&sxAzo|Q=}`8u zeD~m)CRzE1jTzJx1m^`BhYrjYjGN7RSd0AGDhM|Np4PlYzih!$P9sZFha_LZr(fs8 zF~nn+E5wX&&{8_xk8OmHHV+0P2Tp-RkNKO-2i#vEqYBx=6!Ils56y&ju zAy9A?5Qbe_7hX<{ckPA^vHQsq{T$1O1Rjl;^T+F)g0}4H)-kc!vNWvK*GsuBXt8aN z>mRDHFoz%AoIHdg%MX8sOk|0HbI1tht8@NGTfZrY}^zGuP%KA3?H7 zFp;s2j+DNq2i*#v-xttwqLM1!cJP`{0xA)+4pv2)PGOx>Gi#a4@a)cb zsa?zPu$So%=jYzx$${n+aF<_~J6o;CU}PE(4LPVG0o@VcV^E3HxW4-qZoLpBNzFF{ z85|%mB&z@ zpvC#8YEZgb5UN^N_(j|r@w!n8Ny3nRaP^#^8Km5za)@*HM%?2r?X*?1%qOSZ zS#^|j9aj@De&}gFEG#wi^fqSPVk|X>_Ux7bJ~UGkDU45=2&A~mQ>Wiut&5E*?g$0f zdxY^dt-)4?cJ+^Vb7j9>RkWxE)F9iBMklI^Nd==^uL?GWh-pQ2&C3SbA%o{^*ec*< zhmV?%VEMErclhK&Od}C5F)y*Ql9}e%b=01B;Gc8LSTgN=4)%=|5#vXI2enyvLn$qI z=-df2d)g|ETx_Me>f2DOLH*9 zqn;?+nDrT=vk5EklzLK5Y22Q6Fcn0joNy5u2*d=|OT8<&<+bvF5E$j*cJ~r$O5_Qu zF%|7T&Hh%fnV!)tz=N~T>CwT%voAW_`)lzgnH~?}ZdhiO>tjyi_$FJnIuMgL$cWq@ zXtvUJ1QX*qqE&`#|EU3*F{)v+0$u~JvdQ~waC;Fpf0>xf!ke~NYWH0r_Dps#(j))S zevhOr%QEbL-Gp-*HEA5Z7jj<9G4uElM214{cyBWx@v$xOz@<(4E3}GHxtLcX@}v$1q(s zD+v~v*9LlSUzVR|RsAb6b(e)$3a$**V&K%V&p15boEX|DUEk$dACKpOe{LyS_=?F4 zsT;1%H^bIBS_>{Q>V=o}m$lETCy2|qI+OlNypbEdU9u2hpXRUcTv(>;B7KGb36ruZ zCoyv1QoJ{6hV0I8t6(g>Zt~ggptOyX1s$j7d&#LHz4|gQ;n6yR=cOe(KX^p36{2K^ zuvper^~V*ANH$tGJ4fdvn6XRmu32DP1uT(W)G%HBMr`Img>)Br3!S^^5JU*5X0^z1ZiDO0#%cUQh5`U~JV#hrVuR7qVP-Dv70P zID5@3mUlI!w$;mqp(_$ACB;9Z6@#D&;p=c-+Opv zIBBTi!-x`fbdgHc--SeWWm>qajS@#e-Tx7dRUxM6ya|bV$ChST4{e2ykqC9qDZvi6 zqv|)aobh>nIVNqBNt^;aw*9?4lMWBpo(2J!Q&(2aS|=>mUuT*6Y@c#ToJx<{?uUth zb?@Tg9H!8^$9qsro>fGc;w{FpRI}jRx!u-^)0?@LXK||mT~2n$wPN!WH@+6s`@s|F z_8sJNFfcVVbgpcOqJFUvpmx2%=8$V`6EYj%^$qYsWg0KN0F6SG)*g5o>HxQ4(&Rc7 z4%KYn6OCztFK1n4s1#~J7sfdFwGmp5rYVm~q$(xp)*_BViAm1JEv`dl^kVGxakXM z<5I9%YtgS^v@FBQ%pP=S9rDa5V8|9(g=bXZ+FiOcqpI7nqN*{kD7q`OnMjLpoduww>jS)*P9FQ|d?|1OPAjHMvQi{RVKpnZT{4w4#wl?U-o%>w3 zx9|TW?ybY(*wS`yBv^2FcWd0;9fCt}4+M87c;oKw2`<6i-7O?|6C}7he4Rb>&g_}l z?|kR{b-1`zS9jH_dTQ0GRb5Zl@4lgpYo}fvNG{&!AI!JjLMZ!K6M8WKXSEtBhQbeA zqz2kHCzEh(Q7bnZF+)gB|Hoo`mxS=fXUvb7*a*M$z{;V~DS_L!7h z0={s@vGjacqN}z5PGa3CTuh>Je(&Q6pd?;@^~v4|^7vp#zYl(z+nQf>BWi{2a zA~Xv<*V7;@e)~OOOSju-C>_K5JSn~cZCCPOER&-x32RDfBQwtlhKZ_dRwqyh{!-GP zb2gE%nP}mIRW$6l@R?Ue!4p56Oyg6zC+&@EdQR ztWfU!q)vw4>CldogliwMe)oKH`Mgtw%c5@;w=&s zBiq9&TT9i>=SDu^T$Ti{d7(9CAATd4y|C?EmSRse!m+^`5r5(3V`}>ix8;(L4h%Z* zRJA)H55SlbQ=6QP!XsD6;M3*EZo7=di+5_1EE$?UzT_1z4;iGVdqIYDRqOBpO7A;W zBhtSSTq=1b29|y0ce#ae(7U|{FfX6(9je@ZF2AIANIW|Lq$o_3ePe8;ZPP%(7x>0u zW&~2Nn}{2^j$X@G$>F7(Qq91qxx`meCSiB_(Pzk+SW~N-;Uia}rESqW!2^?Tdcsgv zk4?jL&69&il>9Cpm)|SIG@D&_a)f= zoo4@|^Z#qsf&DL2h~U8gJ)!nTYy3+>?SI?n|96QsK0Yww{6`ZT{3X!N{-^BWf6JV( zv;V8{ltH|b%>XM>=&f*QDo0eW@>_#Y(Q~x3LXm|WXx^qoHqLsdY$6+IW`dhI{Hz2IQvVDG)$OVOJCOM)4fge=x++gqBf;xWaX=8~9ArIeYNN)zHNU`>-jA(53pTJ0-42x~6ZGqYeFMPZ>L_yShK(^3T?rR%bJhiB&+ty%I z+Dt?X7TIEDz*gZ3V!);Kw4JD-Lk|I5AUxyIS)Vw)zHxm9z*YjjI~)eeRnm!>OyGD= zY`f@QYTA@HV4LF8_4*X&=EJW?#MsV#d6($5nu89huG7q372g)`u!@I|Z>l;#fi)GR z#y@jMi$tDZf(B0nj$K^*h2w{ctCO? zQ9m1j87s;)FCr!@OamJ#qLY^uatV=k_tEEsHEAVr#NACOre8#2^nR~-0U-t=i9edt4=ZgXyPxO2D{F=Gc~N+P#) zcg%-O8@g#aaqr{4+c&EERCO--=RI4vB|M~Z8~!LbcHEEk$qsTUxU^m-%Gpo*FIGRAPbIvtz#*w3;Sc|50`4tPcRp_}DNrtVD8 zm(jN1U#KLUYu8SpcQW8kA8Rp3cJ=D9zdh~Es_BhJI57DkwW&}yvM{5$;lb^jXzZq? z@;sa2M*h(->=Gd3gXOdnL0%uM6Zh_0JrmjGEz5Ik-k)V?Xs;n8+dhtw9u!DDL0=}u zs0rijMs0IMhm&m$K4F^GyP=a`jV_hgo0-4aoLIu3UD?UBH`Q?V8Zw zoGsx1Vv@WjHd}eet%1|d2skDX!pL##lZxwy$sq|x;SoaN5xny8jF;&SPwN-lnLpi< z_(T$%*YArpV+NlOClm&SHFr7#Ep;XEW;V$`TpVlu^j!#=P-HIrd=Z^Ai#HbeRp|!B zgb7RXj03tD=>xNO5z8|U^}bBE80l5nMm`JdjKd5n>~m%n|J6q%QNCva*upEuWK*)| zw-$Jk-Qs)<``SQfUbNtYG`tY`2Wke^5dR3gusIesy#9UM&yv{BP!g=!{(%LbOO1^2 z!Zmqw{A0K9#6*UzKNsW`5l|kWXUD2u!Al!+3I!1?%u)i2V*Q7fxE}DOw~!w2ZP-%% z!)EbhM5Ks^=2h5Wudmdz133=L@SDy;PiYDy;Yj4+y2k3_?H`))|M^U5)N?-gIB+gXw=!71Q3sP&#^AcE#Gcv~a zBaL!|0T+DwL5v5FEpNsTgqa54ww;DQfgg|!AFoY38DxI~7e9#%0~cLcst34SSyDmo z+u#@-iPwTF9EH|`Q(6MM!YgLwH~LxX!n(pW@38$)E6zVY0IGXy4t!d0cxFAEi0w;H zx4kQiPPbv7!n%UBR>e1ZV?Gp}8YA16IDoWUV!C3CK<*FR_I=*qV#xaeXK5P+Tx@w< zF+ah2%r!eAo)kJ1B74m9I5C3t1Gc$W6*dMO&V3$W?PUb~pbyXC9$-&;U>{)p!(R(( zK;3l-U9ke^-B)g_p^y8AErhqT%Z{ioibnmNEqPsG8z9IBg70+^U6CS=Es$9U6?dez z1vRFWO*7hO-QVPmdP&dG{9ta$rHp#>;tN?o)8C|xhMqmsyQ1OFwA%=2NJ`r4BKjxq z2-jkm_w(D&$w-P=wpcu~yF#k&1pE+Cx8xo$)I1ZrfOg-+j0XBWBfEgzrnG+OKh8P* zAmcXiAD~Eno;iGzG7^PzpWQph%PpG*IdzEU4R7%ILb1&4ol&{Z@6|%H%2}EF4FWop@&;XqgyTH+8$2OT=d8{sZf2~`FmC3o zY6&0rIXv-C=gZFD-hc}R;d~Vkm#=Kz(BU2MWPp%Y)MHzTs94|}N4P-XoLjg+Ws8`o zRAtM+S3a-Lhv=ji{Q>o8aPNxrTR6)BO2_n;zps?XCbX}T$EJj@gvTZ&QHg*fgv>$G z9p3PM5-;!+JQdO}v0tpR$r_#)G)H@ePkx0!L>}@&oQIk4LTu!CN1d?0agLpE0J_W6 z*$3T)>42wFzwLu~<&Un|d}TBq@M6(pgu_lFf`!9C15yGra<1P4Im44%tl=Pdew2OT zMs)T;2U1i-t<8P5T{ErIDX7(hG3JV*@R)AGin3KTt^>Z4%o;Qeq*B0Hp&73)eXp{a zR-D)C(5TaJ$84Kt8Yoql9c^^bSF?M@$gP_|jMRO_ve|5LrUxm&RQq1J&!LV%YbhPP zyto#gzm%#z$|J&4{S(LCF?ZIOY??8&Mw8b2sA~$;JspT3N{T6nf0jm}~bn zTg@Dm_)i3Sp>`sn8#KKPe0JP~>cGiz-AbHh1(+TCyOQdamI3xq8*Q#IqcCDY^@bm| zYv(_XwAzu~1^Q3xe;g~4yH{8?zVB>vhw3hTLh@HyB#L&$XV^5)2wqz!?lx%r;{LfD zDXX%gdrX7*aDuk^sB|HyFMCq(#sX=tU~!6%@jeupymrIRXmN$G8sm#W5?)Esk3nbVgV z*DThTn$VPe@-ZwTD&-TL+DaqxpV~r45dodChQsmsX7%&%`R4Sm5uI$G>7wNAI?{%# zIJE@#)AIUe_oJYYZm~+N(4dfRIwFVjIDZ@4LMB21Insq!@aYe3X%ba$I`V~c@MZUG z>7e8wNt33a1aI0Npuum?(VpXE75(ZIdU@(gGdkbHHFPQw@f=KnVd>hLX3_WlBGP@< z7Yd#UgZp@i$kH-G+Ob(!fpe|nESFp3IQ1lGv~_=Z;Tzhpw+mx6-MNb^^cLrlrG^=v zrGgngPYcG(6Fa)RscvxgcrF|`M)5{>b-QHHha{y7rk4aoVlIIh#Y0n&ns~KxR}<{4 zH)o|6)LCvL&0kz2>X>vz4G(L%WtF`Pt*6mxvq`x_gjQ)DuedU|)ZVh|V7`E=(lR2u zsw6F*??dv`(XEQDl5m$g|B=Ju)W5QFMU7xG`98E#Q0U~;OvCRk;lqFk19MGe02Wha zqzXNtT7EXR zAoKu^?)+a>enAO^#CkW#L<0#ex7gQ}k=>bjM%SZ7LFfD4y|M|5Sq{yF^v-UjIvMoU zk?r=)gdVH*JoZK`c!xjCDWz@&udH*sZPwm{sp{|Ah5?HO+@m@_mfF*~J~u$YXzoo@ zG&dn+K-y71mxm#Tvbl0GE2G!DwHgxzjN98%Qp#Ri_5#afuXnfCHR&PpKDO9)UVl$YggU$?vh ze|_d}5od*+THq{kpN9@Q?}?0l`d>KFR?d_{C2q8SPT?m=a;I?c-+ORla{tpEgo@P;;*zfbcsYV zE4q6|^B18?>|Km`TkknaEkbcT>{^ew_UpCzrywhPU{@j$s=@pO$TAFFY83?CYfKPr0s&<30Nfce4GcgUi9vi?m&-njS?nRjS?nSBvmA8Q)^SD(OS{aQVrAO zj0R|8&{hw0zXDB0!gUNOYphmeVBNc^%-`=rdiNuw3p1|e`A-g0K08_#*G7?~o(4+b zDTttBG8Gl(xeiOBDzJIZ#6CJwRu7dNJhqnsmoW7*mTWJ#ZM`5r85vVsZtvA-pZ^j$ zcy1jZkgl9u;wkK`$XPt?S*?EjQA?w+!eF=_v}9lOdfy1=!!1Q&T)I@IDE&cxM6kwBKVPS zCmwssb|;!tvWOVkczX1s0bl)*4Y-MZ^%h*lIw;(c!z~=|e&!(munM+4xYpNhBOVhR zdnp-jp9e&L`z|c)w;Mg=5GV&)57ec`NV_1YZ0n3Pl8|TGbv4L2Kubz{#$<7zh$$n^ zrxbdo9-~)3ak{w%ewHJB`2acXQPS~Kg*f@}fntqMQI6P4n5Y0e1wc;SJ z+lX$dPGJB#_m(w$*e}H|1Ih9fAiYG(Zn+q+*PKmlg-8M&BbUztcUZreIvrbRqEo4k zX(TmBPh3ttZwAkjxWghl0wLyzMd}tA5l#sSkv52ihAUIZr8#0i1-%tHpSUdE3&(nq z#~P-wNNL9|sA)PR4q1R5iKcwgKa4(kpQfCTTT&_UHdL;I=A0}2EL#x9$9B3lFJ8>R z*}oXTH_h}}i90X;AR$_^zhLRzVX?Fa6CR37;o)Q%4Y$48abv>wl^aQ2dQWKXmBsI} zRbvE-%=M0#v(jjW=wI8mvfk(rTa=WBC+H2o>}H)4W+@d=vGWt5q@`r8V+zrKuPgPz zRg6oh@ZxAhLN8VO_?}%dWH;j+2a_j^JH`ELwcJ7aitUF{+4`Ry((1Ny$tm_hI$-;+ zNL?Kf6PqIX)CI7>Vk>#+$t)4;&(L4HVecu6bT?Kl)tMrqE#*bN2=RHib8ukJ5#bwX z*?hMltU>g6qoiU7a&s&F!AhJkTMD{(7OQInu(Ax;>*>`XW_YOB9<38vvL?vB8IzZ& za!Y7yoh%xcKirKoWr%S95~Bxdq0&}<8cL0Cb>4l7K5ncWT?uH>viNMvi!A$ zYAKarn>#I=yV3WpGK)152WsVuAf61wG4C$^54Z23r-i8tHRIgLsZ=2hhNM%Po0gh zRd?^vxWPNLCdrWv;qb;)5HBs+;cpehu(7~nrnby22+xC0OL0$5SyHj7BqZKh%@Vf* z9fU*o_D9suJs=oNQoR%TQpe@Zo1UQhyd(QO5RE-C8MsT24~NsnNs2;S58_)g2;8ie z)ICTaN#9*sVoR7wU)o(t#WLXIz?h?~%HphYGcj-h`UqRg&4xQ5WtuHfDRz1R@C~&H zOmDa?)jAJycw@d;DSoh5pwU^7?CTFQ@u1+b?3;G8dY<^YkooquLF@UQ?w2o%++o25 zY)l=+`w1pu>ZC)foaWovL&>qatCoBp*w|WUv4SSl2PEazI!1LNVfy)kO`IG|o48c9 z2v9gk+t{#&C+g>FTb)hKc7;PSdMAN0F(LGv4Y{%Uai>H}4eZPF*Pbp^`dS3W!z!-} zrR_glDg?F>G^JXfyjqkpiPZ_zul8Bz`I##09qfwmuFP7rfcphD92=Xc>>26L z(ONXp6fQv?{Jxe)i%-g^n=3-Njm)7t9Rp9C}Agh%u4r zMv=~TtZsX3)O?o013Oua*Ui=95y4YV0WZ6454A(pun9`xWjr`=V75S-I*TwElgPM4$(zN12 zxC&PICtZ5_dCcjUR8~fd$*)yAc2C=IX)#XiM9o8XPD+mOy-FcmcB!DHa0Fw@Z-wY^ z2=?#k7nHXr>Fb@7m`Nt0br1+6tmrykvN6^3I2xUzVBrv)(`Bio>ki>Gt2jfyBhZ+b z=2`wyjMxI&hj||%HT`1J&q4?e{feqXl+Dvt>8g&<>M!n*JH>JNi&hCSlS&mf&<|JV zJu}NsBjp2hZDz@2vaxz4ao4mmhBm}m1Fm*h9lo6-1Q6Ruk6~{L?3}n1W*TlMQp4iZySJm0nR}9`CY2 z&0+;IO`nS)>Ak6{%Zp7u$4oPo?k9BDMxeY`zxuG+TiR4E$wvnwGihiO(u@wP9_=(p zdUYbkPhEFH#8354XQDPrIvq(laLd_n_aELp$r6??uOp@SwJoJd@dXNfd)pF$T*+Eg zMAN!Qp8N!W$5_1I%bYpaGgehTM1l_G6{V_*R)jK#^*m^}fENtAd;3eB&r`Ot?{r*!ospEU zUXb4=IY7h9%g)a0p6-SbCRXM`LQ1$C=!GR9KD>D%Xv3(t-Y--Yu@gAn+q=pU3d;V^&>G?qpk zpe8xDfkd!ze>OmMPBP*{$UcRMkeaAlJcnE)iD$g#SFGbr?3B)!3RAAKe#8Q zu|K>udq0c!E(O-kOEr>YW&0h0=NF4HPYq3i$VhW;MMM9TxVv=JhsyG~&CAd=7)3{z z$}gX|uq#C)Ni2Bd3pZGaj)d*aZir$lKCq@A_}k)1!(0*;9hem{EN@R`ME(da7fr?u zhQ)wZG*@EtNY{%R+yj4mDhBSyY9f6hBAQD1G3r3-?{b~kcv}{CB6w4_BrqRN`XgZc zbe?eMT5s9l#h7%o^Eh?EUso2j&2l9w2aHhHvkE@wEp z(Qx^-RthA;W+2Gjl*_1F=482Zn|`idEnO8{ z)m=?l?vDO|^pac(wvW0ElqJJ32#X;MO~DTxSfFQ&=E#@KLt*vfx2Vy2tX$!E6@>yro+u8q zA444G=I1;*pBN6r!aVF#mOYkANEMCf5H~jD$0Ahr5&L*C9kvpDl{+-zmud8&RHejf z!LFC}+$Pv7%Osj&CLs*b??TbbD{G7QZ=>HSq%vyN-&sVIXOLwzEa-4bl$AvuM5q$F zhx?g$3=rcu9Qca8aVxQbyPx77D4s%`pDuztCDPh68QNG`D|w}Y#8MU zo}B$EUCnfK(n-p)#PI2M=y*%Jtl|=*^>u=uBW|I+EL7NLotaQWN!?QIt*G`2WI)i4LA7KNU{89 z`N$bz_y9HGxB;;OfW;At6n&cbpCO-_n!agrwp2!AXQ*QRL|>6GAGO4_8-S4(!Fx8o zG8@#i-$vn0hHcKu_?#uAp3i`6pU0rLqQeL_?=!1nw55N50WGG2xXiNo3@aD}HN(&? z&_`IyO@ZwG$fYaxM-P6{Cfn0-*I!(RckWzrgb;-y-9TA=E*2=GU8-#hz|@VKXYGrJ z(^I^8Gs&zwsio=SmkaN2TfLL#FJ@R2EkGJ;ovay7)idC)?;&*W(<^i<4divI%l09q zSs6h>x|_!MvDJIlA?MO~4k72FTJS4m;K5rvn@4Q>ORrpAW0p_dqZqUo8TEvvE|nB_ z$S;$`RoV9s3l4TR(rx;&$(84N~E|q9>Si>@72+J-S}o@ou|!Wf@*G^Z`lL&m4S|l#J5|G;=Rml zAd9&CfN4?~EFZ138!Vxrr{uKqIb$o^6APk4f#}kwx0dCzoq|1N1OgV+8El;qoRh{1 zcCC03j%-(0zFx|`+lTbKm>!j;A@BHFR3v|S{*v_^7xOE^ z?@-a+M9{!OpNr0ZmlTB}FPDWyR$HQh^$PBtGgP$cOwadW6T5wXa-FEQq&4TRisKCD*ZQ&% z?RDn@hgKav&k(e6CKcu0v}N^?Q+oDUY3~%oaqr1=p6;XAA7<(`yhSf*lM>Sg4J8LZ zQ!8HBt_oekukvbJx(eJ*4w3>=_`9{8?dQ*kh2X-3qHvK!Zle=AAG5ih=MXrSm09A1 z=F&wx=d2}YqX|^!tj6xOmD69dE*~noOwn#CWaK~}zelz(cmpd(K4M1FSs}ln_hy=E zu*O#wOO_F0X#mo*p2I5&LScr~iYF7v2d9spNzGa|4raVn`)bB9{vIiJcWJ}x!LuWq0*rpH})K=KGH)-#EZAA5z-r(TZf8>;# zRRP^A)=?cX=vXZ3u$l*w+fXlkNHXyy5p~_f(IWDBer2=#xo-A}O zCvJZh+rcKxn(yu?NfUNbevW?Bs@rb~B#AE_3C}Nr?~Wp@#WXe@Rcb=(l=ufptW^=AYPo7ZsF^gC(9C=P2Je6FfQzW(P`!&*szJJ-S~W( zv%Kc|%G^8>&YuN7k6-AN=BMF7_H8!vFIFc$Po!iYO5p}F)F6cQG4qz_FtRFos6U^f zEA8By>xrLTYSc5EETYfJLO-f?m2!R#D(7U)@pTPEl-cP z4(%5z4kBIF%dtqy+X5JmH~x?$cTwZwu2LphLF|isTB<+|(eD^AFp1+djnuaOY2D0Q zb2as7QF&DtihekVT3+`6jsA>vEI*SdX@ZWG%8Btl5kxIRhuTl9f#@`~ij{^XY-}I+ zFT*KzQOlTahK8|iMXo{28lRY-ZI2NjGlKjK=FaXOZcGYmfv2via=Q;AHJvAGJh2$d zQ#lR}RLcfUJBBP?$6evLRe5q30wRyP_7$q=pQ_ z29z#$d?xhT>lAU@4?tw(x`F~t{-mg>2??v+0-48L);RlfKwjAy?Ga^slwWHOjwNTx z{+6L1<8xiSz(>xuaIoO(7wP%d*IA?2`|i=7bJTfH$Dq>nVJ zwY>(jA6cVqp(<#%;gU4LJWp+x_dfvLuQ>s$&4&o7=nfDAMHl2PP9Hn+@-f9|+a!It z^JrSBELo3a_{+lXZTAm%S!6&$t=*oD>Kq%3+~kxUu3DZ4Rf6Z&xg8~ZTvv-bO~zY5 zJ*x>zmuH<3W)i#CtNNQ8ck6>J^KwU=2nW3%tp>sie6QzMNbpD9Z{jb1^5pl0Hf*EQ zHI()qIDfN@L{Z9?gUclt)fTA#$_M@@vKMN&sU;d9doX-c$R(i6$8jOOT4z>5DV?0U zxFGrchsBq+j;E{naRnJ70YE{!IoB%sGRyKv34<>9yM=pw5L(Piyb`p4mgH`74X)lM zOuM3Q{q%{Nv9@Mk;*2281+M_&Lb?PF`*sxuNX%4FHX6>lae^I|PwGI6#5G61CBrQ= z$BEN|N0rM~b@HU>&NBCyss0BY2IclF>inWDIr(jODu6tE&g-H8#I=+1m9`%hpM^9C zxaA~rjv!)KENn(E%r#n-3Zmo8W}g97GVv`16y{0MKvmEtTkYMp^j zIxv*}LA)cG`15@P&8Tp|JLfkF%Nk9oo~`i8__6hT_n%7JotVmU6{l=yg=A;zfweb0dJl;@a~MQ45;U~sqHv4PF} zU4{n1>gBwdc-g%)#8T}gtucol;a1ppG&*gbqpdP(*nhYA1k?Yc$4|lAvNu;b`^8MewmGR3QPODd-kbf&JbT{zaSQ=jh|7?)7qP+6{+J>u|X@8)tVGh zQxxOM15mkv*x4PPJUQNP%||-ljiR({jt8elwWb6=!Y8e(1SoqG-G7R|qCH*B@V@i# zSo1LYghfgNb&&FM_HFrqX8^fIsQ$WSkL1`h@Mp%s3r53r(#3=^U^-b}o_qf3_ChhP zCk)ZH1zfyZ=6cP&O&;fH=e$w5m>@nS@d1${wqHz4af5#z2wgXzfuV3>9civCs{lDd za|iK9OvI)C;yOUeUU|SLLcL$$&H9|c}IVV)Kqsp%9#X;dB1lQw zLl?BwHg49-j9=Z}bZ<+u#q!U+Vu~r+0r*G1CE!dk6C^gkCRVA=j0$Pc4hLyV8$hC3?*`5)g-PawiyF0+O4hgYV8#KgwfrCFUzOQ%+5IR_ajw_hmEz2u=DIC?WbK4jG9xV% zCpts(kqQX940Y-gLQW|;CUWGk_kl!+u9E60VI?@GTQzSqqUi1<)5g4Yy$i&rJ9wRC zZL_H?Q9liQM(6lOZVRK=A*87(t=>$jBTf-QDvg3KKVUWIaw=zZPnHnLl(?qiiZD!G zz`=TO6^0I_ceqj`ricK)UDEPePu9vA$Fw+t?Oq=eZ^F&4K`Dl_uhDh7Ied9@)Y+r; z(Y+~en5v@g7|sadPI_R>f1|XJJgx?kfuQ5)7?|oc9t=yUP!nXJHrt|sm8v7D!<-k@ zKUk38a?vTKb5uT#g7syVVs5~&=x3~H4AbF}l@!&jSz76Ylq}U_X>=zih~j)#ens*0 z0c5X~C^-#xd{73ykbupkswJAcY}2ZO4q<5MwsIg-IxG15F=ERoHA}E5Vo6!>zc;HT zr&HfT47g!z4(7JpzGcxpq8jI{A5gAF8>J5MbaD8atw{3zWNPYUV3jy6h4L`;ebbKB zx?z)RtsRjGgtz4?d53V8@VwfE zZ_uJ!8V=9B}URh5av&VQAweO`Uqvf4xxBjcds0pI$GD1ehmy+a#kx=`uWY)fUvT zuXnVi_?m6Aj9j+Uvz#*LIRq|fO^jL+Lm2zF`=)$Chd`(Z^8yiq2o`ak^Ce^`WaaRAua z+5hki{TH4Jz{bbL0ajG`FH{v54?BQ|3ygPw-9o{-M{FGIylh};9zH$*7^edBRqTAc zVC)L4e)OB=_)SNFsRpoDCz$*APm56YKY@$?-0#0t`_tZo>;7(_e}St0y&3-B!BnhZ zMur=#`1D(}={E_-3YIM50GqUOfi;{A$iUi6zo{2iHgKc;p3lZb28O2C!CFu}eB59g zR}SvKS7-g*^kiJ%s_dNXV5uW+u+!^rO(_mC9&lwgp5LCYtYnG2!5kmtYkc#ya2FY=^u5txWRL{ehW{5mjWLhHcrmpTjBs)xpI+l zff=~}iItld919mKFMx;lx1lQ+FIagAJi$T6$^Ab9S6txj^K$cmhN?bAo$4D_9|mjf@8z*xze#@dExP!^O$V z0pJB!VJG9{0*A%<+nw`&LErv_$o@AT2h0`z3youtI1cu5MU%RHdCQU{72-vUAucZ) zuX9x}=L=B>XY&PboEPz>%alf`1OSn9o-^J!EVh_USR{nHzDA{Y*0C(jmtNMM)Z@VV zp}!Bv$ow39#ymV#pKmjD%# zsrQIXi8l?ys8F46B?gv;U$%ckV*I08)%XuL*T#Uz=|QNtcnNt*T9}4os+K9Fp10&7 zbY7~P3nj}V7>Ze`+R$PxX0i$>_ZO22~T7|cst4-2aM1C$llbD%-zVVlWI_aC6A70hYd-K(ZiH+d>_{%V8- zD>Si^{dU{^2N(8xX!#Su_IvmMBUIuhE*5{A^X~)1{{>q2H*gI+d}%mn+JgaAbBo`@ z*MB;{f;;p-g8C=Q#SV6k{r^F^*!cd<`SlN!>-+0JQ7&#fIfD0qGCO&RK+}>0wKp~? zSzX9FbZA&;DKL_%V)|!Vy4a0vg*DApOs8!XaE@y|g?a`SQWl*X4#3aAPo7o@mi|*z z%rLGSYa4sF)2Ej!2ei`@85x3?tGiyg84?hX`Iw?mQ|VY$HiDZ0Fl6))RaP-JHimN@ zN7y~}*zq1y`~gEj)$b7@Lm)o2TQchsJ(PUAKzYadwiY+90j!BS9P53lpYMudEb_RD zAB95(gcs#(8f(2w%e_1fVm^gVQGp!HIH>H0$F?ggrCOrZj9ImQVoL4 zwKw|G3bpgJdkU_2?bF#q5F##fDW)TvsLje>K?JzLQ2y#l<{FNnY>ke7Fj<-O^O)=f~Czl zbvC7EWqtlw5S46D&xf7uBY;wpIQanjuks`#ITbRL!{;D0r~+HXppH~I*j9))O>aLD z0eu&VWLt1V(OrR#6d{mw5-`fWI-G?FAU6C!L&P;B;KP%l%95q`` zoc+o+3OBZ!MxpDfvk**XM6A@(!x#Gm?|de#86PYTVO}djUIr;pM>f;CdO7a_wke#p z*tfy#Z0@h`Dte6ZLsy9}|aRnCs#>nma{{^*!=N05EN zVJ!T18_tovo-I_j&K%Umm|=&xpPp@p=xFNN#7q$~XRG&%OGX-E%2sd7lh%ZLYA`fC zhJy{q%7h!o6n%GFT>leVxoRL7%T$y)bxQ-cVm}Mn@iJu)4uV9R8 z3yg75?V8f;UasTo6AWLZ_qv#*&Z8Oqq+l9gnsR7PX4!2s5yIVqqH4Vo*NNuqs6jAe z%TTZayspFOchR1oPVaJ9f_x`-=9HcB#?%&scm^JEoz|uXgGiW3eg?;|3?WSn`Z9^b z#Id{y!T!K&UQ*j9Jzv|aJYVbbS-iyh!^{UL8M!EG|Fj9hz$8NTo7I1t0?5dOh7&wxi`EN{Jg|| zu&FmZ`BljV<%9{F{QfO4KiNO73rujyAUuF+uSm!%fvbMe2jYkR{Ehn0;@yLy8Z!?!fZzJ){JQ?|B(#^bl}fv3bhtD&l-3l zfk`vx$4i`aAp9Hl5{@3$btR?Q?B3r?2U}QNA19j9xlUe0tNG457R4f; z*$ES<`2(x;Ap9#1#h+)k6NNrAK~!tO*6B*O#{5$Sd4NV1i7=q#!}2LQ*qfKw-O+aO%uj%cp)sC$_ao zcY(DSBV+n!ctj`sXZR>y{pj%nnHKo*eE?IhbKBwY(+8NfP=(qce_+WS^)p(UvnRgR zEUFVd8I6uUX=Ma8~ z9;U?LVypQ|>4|3v%zN>?gm*>woRRrq-foM5DX)IgeZm$})LEW0LP5n1Q8@0I<#UMe z!&)%$wPA|sM|=q8y24(2i>|nyPyz~Tw#16}Ki&zcU1>i3CcQl2_4X?~@d8R~dImsO z*tVOFlrLbzO&ZrZ?KAk?d=^j~nA?h$IoEz*e+el&7?<6$e!$>1BlJViJ45nA2pDpI zz-ZdmeV`!ece#=Ra~DRn!CgS*qkNW4gbq=oo+QtNu20?0cUXpn0mJj2p)bTg&KRBr zUc#2a>=Tk8-=_{aNMVowr>`Mo;m)49EK4-}&wpDV8p;O&8nCxQUD zz$XQ>U~j>Q*cpRx;q*4wQR(!yo3CQtAmLqza1_ru{aS2uZMgmLkN=OlyN+!nT=NAT z=rA)gGcz+M9cE@`?j#*%W@cvSFf%hlhnca%S@+pFb7$tB8LhOs(ym=Dm;bO`E`9n` za=p*{Ta{_q$NM4QvakC?KDW<%RUxBJi^cU(iAF;IjaB!CVKGz^&VITU|;0eJ|F^!5I!Ih zVUcbHktaGiN_Me%%q}Av|{)E;kbg6cU!{i1P>>uQjBkD_@0;S-l1iZa5Iu~8NSrt z*&~e_>q*jvZ?x$~c3L#hD#aSiZndk`G{^Sbxh^DbC+=o;S_VqA=-gBT;NY9HrmXnP zd@_g3l5N$b0uJidZ2%;!8XXP&WZDl7pslo2W46cSt=u*gc3YU<Mqnf1jMec#2Zz(yoOG$g{YrqTL z$NbEySTJaUj{nN#6<>|Fu3pR5dA*h) z-Hk_=-cq@jPMZUf&I7~VjO%$Dt{>7s?micI4^QCs#H}~r`@Dd-rTc-+X43nk`k~Lm zpFu~b{&?NpUEUB)rraNU#Kz}tU;eT3&7A_*9t9K^;k6GOL-hyx7Ymu$|9uPiM)-5! zD8s`Gbfn6+@8c;G_ix^@fC6q$UkSZlyU;FsLI#GJLq~9@h`7KAV6n;H%)wZ}cuy#| z82N-r=Lo@U-`1G82*CUWuWvW=7%&~c?^V&PzTOQO%Z^W8J{jN3s1bm-{$j3RFXB(c zSJ69=As;+SQLgVl3k-a(Z#(-p`+s!R2`=PefdvN#+vRo;&SC)Dh=)aa45Ab63sWg= zY+-J0m7Up%cHp3GMK@f9EN{iN;~2RI4*KoTjT>eRkl^}G0X!G}!3_-jALrK80r!9N zT)_i)xcoD_jktElH(2m3j?bu}3QntIyT-U?lpDRf1GqIuH(u}?oSiWPhPd#D4rrk? zT%7>}hq(0n4&2DxrI(8z00jK)ow`f^B3?u3e)0?>ZeHUC@ zeQVA&uVTKxiNA^;J$L^;60HniYyA}$_)8RADj%Q<8X$$xIXo?Mvtwnp0}UubiB5OO zLp#WG5}xc-oUPaw)=g>Jo-IS5{7j);pI|M2u&mq2*qgXLN>;BNxZ7HYCD0ha@@NwGIw_5yh zR}Rozbd_b{e%Q2S;R;s^rQ~8f`=7_e@fpwBpy1208I+hP?oi^RDtK&};ewL9l$g2_ z7sCh$6T|8q-}Y-2V8q`qH#;-j-JrxH-0ap>xxz>suc>J(!h3QuweMf{18$$S0Gdk` z=eiD{xlBv6;>&BoIgs9h=`L&g&K}`zZf=S4p_89jq-?Cw7Xbn zAr~vaNevf|P_fY>!)7RvTqBTrpW5V=ue&VYOUQUmY-_u)R5tgGTk<F?VtK zwDcxby1!uQ#QQ@4_?_OVFye=@a>{2MytJ4I3^S5DXsMxv9##5Z8Px|?IubyEI=||t zrh7E&+RMt0+S$h}v`sl`^vST*^@O5KC&-LnDquTGCt(kkCUwN3tkseBGgJp#t$)@jUt{XO*%v{NIoPG(X>$V zEeo04t)O45Y7m@4F$_#TOQMSKdpH^e5)HOr)t7A5bC$*}XuYt%^hKKVMQhF~5i*$` z?L2?+N7lz%TSX|Rv4{>RoO${#bqwd5xQ>`lRz5%ddoXN(JUEdkc>Q~f%CLGI7^piu z>UWuk?%Qsd*WVlJPN#NLX6kH1MoXen%YxskRj5u1!~FT_>*e1CQLpe2@`oCdMRX~|BGS72% z)9x9}6^L!kbgd7Ed=|qU^@d=XX^Nav^0#t|C55z68QG`tkceHxD^eLv@wSwNu`yFe z5{rd2{x*bj)>byb%pA%My*Va|hpo|5i4%)t;P!7qIW+<6TL044Y#P;QYR%+X-s>{! zt+LK~Kq=5@>KiWN_uU&6U*N8vYl_LWI+74)&zO<5VGWJSwX%wj$01x)_)W-|2l<#- zDsRg_Bq2^HWfe~v7*DDynLwFP1R|vrLOK^miku)Snh^JlC6ysd5lh-5@0-q>_D|_QF<-DGJLoYTa$9K6K#n~&ze&meSl*ZGCX5DM*^VpQaZBOrlJQig) zsJ?RTO_DddXHPn6097__JAS)w$zoW};!_d6OaHwq4&b@I0opiB_7=A?^SF_vB0aCZ zbarE@@0sbudOPxXf|VLFC207erX%;cO%A-g`}FGY2ENsUOgQFrqTA&&Y!aVfv?3pW zQvUgRb0RU@Wp^oQDe2k!b0p)?c7ultvJ+=lsBg?HZj3)YV42c(DzxhJFojBZ`BS?s zbxjug84rKxM;&+Y%kzDY0;HIi+RBTr%n8G(^b5-i$*H4dZd%fv18_~R)n@qi-7@y( zhPL<@)ql7XBqy&%Xgkt$MeqlOW9A*~5Je52xHN7?;5eey^sn*WeWLe>v+xgYSq$p% z3je_kJftVRB`V27ic^5tGuKPb;wEGA+`}s6$X@2OyGT=(Sc&B&)8p7XSWgUDfyLo2 z@^YxM`fl1(&^d|8ndjFtpU@q@=TN4gXeh)ezz}!-=g@=CZtKv+qGHSJ7bTzx^*2*e z1MssE|Q3Fa(*j2*>xN z1-W|BFKV0q1yoqJG^KE=WYOU%$&3#Q_E3`7^S+#0QNRvN*4o2|29|s`f+jPTs~<#_ z8J>a!WL^GnPJ_G2sV5)iXjF)}!bXSBz(kk-CMRpd9@$QS5}r%!#3INOOLFfrUt&Ld zcP5cOx&~yM3Pq6V=71@?nDGIpOgSgF=wuU?L3&J+=pnaf&AiLy2KDqSd%#y19B#}r zKIA}$rIvrqOQi&Y1sN`MUDy^SbF1Efb28kHH8*{>Q|Q-<#F_a9%Ax5F-l~E6ImsjS zIpeR<060+`ArFyR>=1iI1J|U~bbN6;(6>pJ{gsvsVJQ<8PF#8hmM#eir6y2Itnj-AI7AujBUyGB z>=6Y^_MrsuC(CRUqci*=U}e2BL-{f~=7{JiOSYkeQOc4BV`Nx#`>>flvzpf8#D!&>#2Mnhh|C8^G0*USrJ90sCWe#1fc+(A79?AL z@O&LIV3yO@y}G>IE14CKtErblv^L2SGe7erI!jpcUCDl!;vPD&4PF?|?8k7KXfq9u zA@mzIjwN35{{mguZN$h{#(zOq3;=XNr>455q_WA|*kPjm1zkS(V{f2+AArL+e9N~* zI?Gw#M%OL?0A2el9KPj7o~11ewwB0`<3uc~_QTgaE-%;qMeXCb-9u9%Gy6gc_Ke?9%IRL> zp+}RWoRRI49vX}n@-8!2U(N$-K4w~Ha>3V)>^}OQ>E%ltp@I2xlU)EM@(`o(lqtZ+0|t& zrg=jdSz3{9%i)!66P`1W`bqpMEvPhY&ONpyXRH zPRvw(nEf}><rXdFggn!+s_fy@i+=SDe)|o{ z7IegDnwh_>xCuuZ(AA;rVt!6}^pqh2XCuvMy&P^Z+!WjR%Wtb+U59|RRwp}+rL%J~ z3IR4XHMl} zy>}5+}yNbpYba>Tjs5-`u^aNX`hTHFVg5J9Fo&z z5S*jaWf9dB&bO$|D$smu3J!bJu zRX=e)zUP`FP;ISW|`Njui~Honb5dIviSxU(ez zivXv)isxDgveV`BZ{BR%BUbq=Y*wiPT#z@8rFm*ks8s>^vDivtGW)-3;0@;ZGpS88;ccA&#~QR?cxQYI_@qpP8mHI9Qp9Sri=Warb{pQ z0_?Bp%J^%#H2*|YAr}sZhU}Jy`#!&hmQ~`YNNK?aita2+!P@Dj{cwKOWIkAaXnsIv zR<46&cM|eaT~AP3>-qigwb~Y0%Vo!c>gA9qoe@_6v0ovb5wiX~ZWMw4PNHp5%O-{} zglA(}DV@~C{Dj zYAEq1(ihE%H>4hCbV6!kZHq5zvYg!G)%`G2k;;Mj56EVHy6p zC$fkYNbMXcQwf0(uKMD`H4cGRnx%w<$2Bj|P*Bj_U0_7|h6d81{WNNA=num%JVA?Y zq#7o-GE1sq>y}&wUn-Ntsz{7Y)GoOihWZ`vfHk4O8{ZI)PK?J>#MHjeN@L=*ZjDTH zsS3VWD$@Jin3c@V6{DQ_EFAT?YdW(bpymdpfOcJ}nN{0FwVdFkew zR8&fegD7ky67qdS@dt5)SQ4MM@0ROzv>&=OLHn_YYVt)4!syf~%)u`SJ5)2YXkM=Q z$8Fi>g%feujBCT z0e=3tk>k21TXtPCi#73)!j_xn!@^7d)xpb~W^v;m=rObexR8g7@@vK z3Q^HWD+#kWK~*)Q$TSA^BLu4&;FIi}ZeBYs?tgm-s%GHAw?x-l8CR{Ns#-SCL1Z3$ zUqzQ~9P2d0A)4Ua-yCIEG$-txOm&P*N#nsas*1S6+~?{{u0rpYQIOldKRYMQg}wGt z(c4&x^Ck7^rhRw7DJSI5CxG0S{UNFcg9ft~h_;atM2u(}tysPaW~84;h%cm*0tt0sLxT%v{QxTVz zLRMlV&Y1G1^Z-PXv~+8vYIz6fDS7p+8S2?>Hg*e2Q?FnWhM% zr*&Y-&~iKTROA%zv~m=*$oHBL0q>dlgO}>n?Zfoc)?{T;X3UB?gEbyPVZ%x2H69?+ z`W~LVobGE`UgNv>o*G&ChpB6%G|<-Chs#Lu*NidH=D>$RlM18sgdh!V5D{1~_Ufc< zLI%wwZ9^NzcfS`2$2kfO*oMrejX8)p3+kCbbN3--#A{KUCL*VGPB6eojM`;07I@C;G+QXx~1PzvGAJ? zmrmL|7%Yn;4B1XfR&NS-R42AQretW)j<+7#WpOzc76-rBD6KQ}r^moyNgIi_``NFY z`_Rt6KK_G*owbX!mJiOc3F~dJP5mWdZ2UA}rum)dLN?)V^ivcVo>JxRVd@$u6u#4e zg_(5t<{=F!0=c8?p?i+ryanHm4tqOst8_A7sz`EAS$kcild2F5UO=cGn5Uiaq!U-> zCQ`8eygIo@0E&y<&E3m*tm=4&%gUK~*+P)mw2X9M*|3hV_Ibx!f=I6VL`Win9k8B# zWT6LhCl2#y->a3OJr+L0Pjzzj8-9QBOAYBn#4F@@X#Q~81!V#MtW(6+;H^vwjAkXe(gRM7EdYx}&26-LbGbe7mLc10BOgU;xCQ(r zoN(pK1Eg&^O+NF3(VGGIPbvlpWpjaUJZDqb{g4j&?sHIHelt>7zgnG-3VqR?(( zvwb#hVYm{q<$9d0xBN-tbYI6(;nZ=JvLdc+Z)2;&-q=TT3L27)jYi>$N6q)R`CLFF zRF`yxw4KUPfXy)C6TM`j1BRt5EPj|c$Ir}}mv2e9&>B+mX>)I7F>Z{^B_ooU8NEK< zIRrps{Ez{nD1rVSc@A>Kg#L)Cq=Dd6*2saKeFmCLiCRo3E`a5hxi&SazMFYjefV`e zWlaPBN-4P{E_&5QB%BRJ-SaLHNkh#p9kE1UsEhv&^fl&mL2I*~+MWH+1b1{w{*o9m zOKu;Ua1V67*9|05O87Sb8dD}cKo6H~ir<4aw7h+2yC1*qBw;^nP{#3F<9?`G%GA=! zb{yIc(Q{ai1K!7AWB)b9a#D`qY7a3k8pdxXO95)8d&OfoEE`MW#Wcxs)qNdy}?N#x=a%f%vm9WGedVWf|!Q$@*e1 zN!o*E4b-93ee(aiq*K0X3cZWQ?)XnA2X!4m-3n+5VxM)opMoarq1FQ~p)%=(j61EO z)T3`Js$osC^?q`JMz0VI-K!Q;A)XXM;5J#IR_a!LC9C5m^{eZn-n&K*nJ*dDcTvnp z^?bzdxl}?=mXWS`o-ZM1X)pWMkUscC8koa^h!P?l3?+A=^mQGj;woUn@kgD$*g@1G z{FMPk6@ahIt5pRw3=96G+oo^rs7 zo@FvOH#Y#~zCqOVT=j)EBVB*8mTOVyybegT=zqSs=Wf;+Ylm3h@=*aH+}+#|=%N?U zKu;`9s2*dA5h>wYDjXb2(Pu8^)V=6_J_X72^b6Daq93Ne(xO*A+%0s3EOb)6?vY2c zdN#IYrndPVRdxP0z&8XTku|{5?@}^0n$y<&%oAsjai#M8{uXpGbeJ?t@jldm zOJw>v`n-K28)?}a4Q|tgb$!pxkBP!IR$+2*_2v1=+zWNnu)5|UH4<-lY!7-lJRHkD ztUSZkOl;l!vq6ip&DxXG#uc}_o@y$M$Ml$_Yu14&i2mBIciX-{ICd>soKZKRe zPCRxR^uIp+tv5ay>(5`9@Tw1vz!Z@FPypcC%GT^-|79xw!|!eU&0EyQ0N0-$lD{E1 z0OTLTh4@4?HEiZ+fi!hcHuuBs`uS(F>t2`JXTAs0_KV)sxS95v4Na!4t|B&i4N~c^2WNG5_5u2{|p^xr; zj;uoH&rBevn0IuQRtGO$5YuH9PF?s7*}4317R$q1Cd*_JnM}Yku)E9xKG8rGctSvo zSiNBeTk-JJj`08xYy+kM!Ir$TB*x8cQr=v!caTUkE{@CJ|2bAF7+M<1iH8ls$-u9H z7)H<4*;vA@l3Ji4X6-FZdo#0mIcq*IefW(?-;m;o))26`dHd>x)S-*7HN#qNQiIc<(+%>9X;Y9X=h7H{rHY@z z3vYxKoM?*Lw;xMZdEu7AzP=AXf6#y;2OE4@NzLLo!sy})1ZUD#!5rqxIAK7D9l5kL z1k2%M%!`X-;uRUs6_sLk`D?_^hxY5{n0a57+#jCU5#R6n`*S==4NADBf ztjFe07H*NB2l#)vTINH;8(_{Jx~|!#j3O%J_=<3R?4a0QkDuZlmH{ps9df;u)YC!B z*s)aTt+lv>5);sqq48O}8MpG)fCscv{HxWDsX}K`kBx-JOjnY~G2SAqi${6uM?q54 zM(&3@jg@0k_U+~1+Axi_E(|Li^%o6?Z8th3y<+ zz$d#`GMQLU4A0sYQpfGD(Gk7-r8?!Un2HJuU3cll#$O)XO-pHvf7J2tlnzQnJ2kS9 ze?J+lxFhSO_biTe4&k;-xJUu3>~wqN6eorG60frwH6mez(PMFw%ncl9PiZ|F@^YMA zQztl$JKsCqt)p;phsg_zs)!M%L|%qF`Ptch6(rMRyw)bI**Cn?uEf)r3Z>BWHTefz z$Ut%QL>X`(@vR_kFs~p2``~o=?O?(4WHif~V<3KNEPZ)>Fdm=1{iZGFah@%6#vvwQ zcvjt4b@p?V8EQT2?>F2xEO1oATC>HW88NbNPAlZE{?$Z-*^GxAM>M`6g z=hz+JU0Bf1G=o5zKb=DnPudVEl1*!Vb#Q$xUefjBYH3SzbXbTzp4CNu1Ag|oB{D{1 zR{PHe?${-DNlbo{PG@k4UL8|}$}0$I#;SW)hyMDO!BtK3Vp2sjRBWf@jL&xfuPbQg z;#W>w*u^Q`|1IC>uF_g7MYxY2AEtV^T*k8T{@4@6LXOo)ENF9VQr5NnmKXdH(>2&< z>Nuj5Op7);6hs>zHtu&mdWBt#82G-I)aF)DF1>&ZQ-6~hQXz)=qd>;AkgH<82w>kZ zT_tUDNX;0|{$byez0hRTdD+1{O61xv}T zYw_cfZNL^#xP3ERZfMw+tFRc~Ra6j5Ozjd_dOin6lVjHvQ?8Ss#!ijsS1O0JK6G+y zKT=m}soG(Kro+H21a%Epb)~(4mf}E)S58%l?06tKHtV}o zFi5+WPLHggxcYVAZoYXnO5}hjM#vRa&in~NTzD22L7wx}TioU{oglxM!>hHs?&h`u zqNt)camxNP%MSF0XEje`0{f@iB2X)=mtKk(fRNQ}1hrv8o=%sC!t+_7*A_$2ZsT!O zOwbcBF?H=I{u7W9Ov?+LwhlR;CmOwu@~i6_)SWJ@BFuF zi}7D-EjC6rdVsoO;rtJ3i=C65o{@!(i5;N2xahgq8M#>hTgAl*U{n7TRsgy6e^_y` zFabOlCnvy?{VUC-OUMD(WdL0Jr|RPT%ijJUDz5+af&Xtb*I)ehPsR1G?G}I^{`VQ6Ib!{gXa0dQC+KP&$;eYOL){{MOz& zSJPfFoTEq0C56~)&u{o75=G(&;3f5QJ2)%A6U9jlJD!>;rhUEXet&o(+M8ZWZ%?vO zc~hBFz?7tl;tIk}f>28(Ek#|3xe3VFoAGpx-H~-;l|z4jeJZ z40R0GS|%_?&C~yvv*Q1jH}-!{YW-s-`rks({xJ;x%arvmLbm`?6@V}QN2vvXmQ4R? zq;z?~05Z3pzTB_6JSnDlV8q;4zOL`z-jAMgCbL+a zk2;SgO|TJx&_N`7S8x3{t#jT$fk&NzsB7u)@$?Y&IuRIGKq>~5%~Y2nKZf>y?f}hl znhFK-9!_Q83cf-RUgT&A*e+ko)P8)sq5R2jueH?aWw8q!hV;{MeNs$W*&4L#XB2yH zYj?BP@)SdDlNr!7($Dth=8_66zq`?GU?-ZNz_7cLvtU5T;IoZxY6DY^qywUYw4kGt z>CPo8Xm1j*;6V^TP16)a1JPb-*puK>8sbosZaN9W@~1eu&rR zYAXwz*2ob6y=n;-5F+LU=P0H1T`)_1C)}s9AnXkQvI4rb^1&yCMC^mX8+iVZCHna^ z7ei_AdG#LUoSRmdwO?$CJW`g^M&jU<{G+h#hLu-K-lJ_FiktvGmH}yIrnPPucS!*_ z?|hF?+8xrcEKjvs84P$Y+$X}DQMJxeH9&~uZ^V|7Y)qu-gNLSBhH<`?z6&msB>~zu ztRUu$Z%f?rGT;8@YjF}f!NW_ILF|Np5jVvtM#W=BGe=3loqdl5r!7i~WjHHPF~l}A zqA#3P@Vj~mm!qfq{WWCH{ki(sG??3XK?GO1Z_pmNgfK^{JLO5hZH-r9VA4Vm0l_a(XxY>J-hI1SHnwcd^>KKpZ1t+#9{CUDm_3mxqR{Q-|dy-ToQnGXzq}y z-l1+CdEs}waR+j5XeLFX&qS6&J)l|Yp_FfEKYvJV*K)pJjp(>TpzqOFoeo<{y*rz} z-@C%=gWSX$^s`y?D*bS*?^qA*(uf(-3FXEeBIgZS+RRnUr>G)6QGcen8tl@|`udvi z1=0qDp2nVVl!>#c?W*m<%7PdqEYI4{{bclw6qj9C6nl&R_9Lj)5qM@7sxw^SmKT3` zD=m6~(_eQr%vFQ%GC;K}M@$)FhzfW3V>MzxBLbs7bdsd-hSE+o+He8^MRPdWMc~TP zZgKeh+bJe~EsUg~ZzsK8Kq`HCqUcrJn$iXS;4Q91{N7;SM(*sf^-ZE1m?X@TVy zI~@bKlVW_Ksup20s~F57M&xF~;#_BpaK9{id4E?J-Uhd6{KQtd&mli~;Q?Vwi)t(D z6CTBk^jb7vr>+ZIG0_R6rtQa_JZ700#FgDg9!m@0DjOl5yv&ffO5lSK8Xdi`f)hng zEre!KjMW;&^rxOY;w>={@4Tj*6ryX{f}E6KTj4BG2eVQfaZP`*KTIFLBr?WqIh2j5 z-djGYF^-zaYAs>THRV4tf?jD^7>8+V!8GGHE6mVV5C^s5vSSr52+%H#iOrn46F@WA~~2XdmH zPvyk@xpv~yg)133gT{%pY>w(RV8u0(oW^V1Ji%i8Wb5qBI_b`tSSt5-wak?@#`X(d zLGBWd<54o>xV@NitfLI@NKcBd$Dy@c645om#UAB^q$D?16dEqbh#Imsp(TYS8W1!f z7pc#I4HiVOe}9Gc>oY?pR<}d^$X9bZERpr=t9PpINw$M}q2bL5z}ry$oPAS&pu*Ir zf1Zei^wng-gzn}de%ANVy$RK0N`uy0E7<$kl1ShMgLo=`r_e)wXQ)PbN2o!0KhMCr zbr^jv9#D1IrvBykNX;hU(JfPl%KPwhNB`~Tj^7bcLq(hUI_Q+vSBBXyfs$ypYQwVR zC@>)~tY9l3?9%I3{r#dkvp}00qtr6gUPX zOAJcbFAVOF_y`_f0{4i_$J8s^BpUjyfE*i8ia8h1E7*i7+eGi7zpIl0Mm**c{1?JLD*RL-u-|EVqPm%D`es^sS5Yjgt~^vmocn z7gyRob|3%_9-L=cZ0tUM%}H1@Vmo^PFVrezi%1xUB*tV}8nd*T%Qiy~4GR^$HN*`t zke8K#C5eQG{B&A4(RQg}ykuCT)%S$EGNPI53pVX3JUwsCUXlXf!zbDWWjc2eb%N7C@o4X7~mZN9F0)Uzb0~ zBpIN7AP*=?_Y5wzhWLgfVajbVAsburi04N&7ozT4@YM8idLb7o$}1SbQlCgg4Sn-M zHf>GG8RXQFP{_kI^a9yO%BT45AN~L%+e`WiRx?x!sMdz(m}NjbVhq4Jb(9rFd<575pIA!MYl%+J)*i}T>+tdvD^Dlul%1sDNengNpcFV zcZqoAwg(100AYoX9wGRHB+oQ_VG_3-UWk7EjSqzQA~1YEM*u;5I48io;n5F3IsM}8 z1PaC|Td@NB*DeA%LNr^kJ$cF9kv&E%J{W!jFb}%Ckr=1^lpf(%A~2yiH_Th1(W}CL zcDXu*|Ll3%6noc0)y{W4^XQd&&qb`9;@b@4xFG2DvbRGp81ZZc0@PPK&etG(I}U^6 zGqc;=)@p$610JAC?1X1EVhgY}zH7ZIvORphDzQC`Fp@H6CrpV#$( zxt`Nq_5X89e=!K*LgBVc(vD*9{0#po=5EBnU&2!d5qb)LF+|}4@w5xMQMhpn+?}^^OC&#g`3y;M!u}3(>4L*Qoa%xD@92S9 zdXoA4O&>sVzirQR+)#z)?()2X$Lz8CfQ~qXbo4JuVI?TW^Fdm}2ZT@>%;bYY0o8`Caw2&7AK zhQ7@oHTL7q;BC#w+3oJnO|pHPY{$1sEVWAX*{3?K>PZ6~<zZ9~V^ow~;0cq4aCqxVE0 zlcEj=gyvkjaQs0hg!#6;7(11Yi8H6(!+B7z+KEFWc;E!!httDwx~4BBuOi|U@7YM0 zl-1}nX(!UQxC3^ekf@>}QVkoko5;HE&&7$rOLLisRH5a$8QrYK=regYvX1x*CXivk z8J&p+o?0&iVM{Hpw#8R*(W5BspSp>7RDLmz%gu89qLMTqWi@Fl>I-_DI4D9DMLtWT zqJke6X>%({G1y#tXS-qpAt50;uBN*?LSQeT5C@M4M^6(_4^z{3f7%M%YbT>}x?O6s zQZf=QPU8>cUAXYvGM9|x8L{BJvegRJqzVM%#5N;3D0P^1rKl@ZqPmT8#nhsV<)h&# z>pVO8D{)~(8}_?UllA?(R2-9nwGqc-DXqQ^b%!a9LJo0iK{hO6bqXZ0B9eA-R8^}V z=n=eqQb2R)y+{+XiytVVy}R(mM!yF|#Yd#&hhY^~99Ru0p+7N$j6|t?M>n&l;Y+xF zq#XSt&I>(0AZ=yNg8afo!~yCuVQLgZB$tA2tfW{EA^{U6fy$}bqWtpxd)dPijc|yV z5YchSPhs3`%E21MV+*k6E9E-F(0jjOaI&QZAF?G^X(dJ1L$S=92+c(rjxo7IL+jc7 zN2h$5WZV6II&h!(+A?v1v1t&AJTZI9J2WgzVW!tJ?XX+wewu)Klkbs0)l@t(^-PX3 zt30|;)nzI{u=@2Y=Tp;47Z_C4E)(N2Qr~Spr!)A}BBAojB2ndJA=~7kRH-zGT1;#$ zwbrcq4y1eP*VT0&E9;2W#2Om42+fif)hNe`O;H9S(iHoDk87p3b)|OQFLdlyT3b_Vro~C?JG!L+sx!6^xAqim#CAKRQ7iSCULw#I=yE*=OOV~O zCo|;a+{eaW9d~8Q^}tEu!+3aP?5J;(7uC?s&68ybhINonoN!`?5}9=#3{PKPc` zK@X9^P*C0H1|6iTYY+B2RW^nQA4-) ze5Nw9f06N2Hu35xUF@#Y2rE91yS0?^C1k5=EeDfd&EGjF=WU@hDxP}ipSEhCF1iJb zN34RNxAR^;$k-^$EuM{7xyLhst zpmpyzRFupY)`3On5cZJ9K)FXVx`xJYD=KHk*G;WJ+Xkwz_S54K8?Spt-N#a>>RCE6 z#=bhBqRS~~32FRwa69Z36+sC_OF#of!8JOq#4Bc~Nt8?mJ$xIXL%hOlPUB?CqyUOE zQ+%T4)!L9&+*PO3-|n$zh<7_E{MMlHc8JvN5-jmDH71m$p8f`9+inGHsrEh%$frH*!gnm2qn^?uZOb+7(e3brIaDuy`M-hZdxW?f2j& z21G%Lx;aVN!G#7DO6ubiwT31!jJrWE+TfTVBV_tq2gfrglmVP*MkIvLcu5mX8i97p za$?kEs-W~A$ULf4PO+Cc^S2pb@=Cw);c*~**XwKNbnB_ zMQ`Z&g6rh;~p5i(1x?nJm!(V-(Z55Pgt8ccGB`uV{jw`hkzy3d%UMWAx&k|y47&$oFcLm zAT}N&?vYB4mrO|@cKp~Jv2Wdbw<~wgyIWUhkX5Vh_|ELzD+fB%Gh#zB^}RX}pWP&M zQ@kn$GrGV41+J2$piI-Io-@iM9MNK?%Ysl_sCSzolo85_tQ3^rtOVHeqw65wt>M<& zDBSmHYT_JUhu}kS)-6l5ny1-Z;UVhAZN&Z0dr9C&tTDT7qDlqas0inxLaM1k>T5dR zAfeYLk^A^rm^Mf~q7XxZ@5f>#$;So0g4(N5N45#w@+o)%5DMw1lP7KMZJrQ9i|I-< zht5nj8zY120rMl8*CX2ft3KH`W27WPPP}qqqlyz3QpoOy?ta|sqH^UA>#K7NJq=!` zu}9Cu4E>C|u_o>2gQe)}ZSRMy_+s}(Sa=Tm?6pR_r-Oina<2c2xwj09Yfaa6ad&rj zcXti$?(XjH?ry0s#rqNubp%Jqrg-UQcVV}0UfW)n(4PeZT-qe(tL;1( z#HNcm!Ole(-Dk)QMP1Zi@D;f{vqoAURjGXnBiAYPn<;B;)Eb?+C=L$vO?JxV62y9l z?6M&fk`9r-hpii2!#d0w%uQq8*j=UHX_i-dZ0viFtK3##f$g&8l6Cpuuq=_lTNIn$ z>bk`kR&wL()f4{VJ{|=ZF^eQa-6Qw%N^qTGEX&!r2ua-ztn-YNU6+>{ zVH-ywrq!b+s2*2l2GtK)gN|&vl=bzJFv(VbPxFtKtf!gxX+MwIUbl<4r)qh3)yvqH z0D{tae35y(hk&*BjdhE)+X1k3ikXZJM-su*fkxB;UUjMU3OWg6EdgqZ?@u#=qQm>oOeamEriwG#^Px{|-68JW7 zg8Gg!Ackv`38m5bXaI+CNHPOf-v14cS#zpBJM(T~W3s7%3Lc`fWV8-!AgVzD{8o?6e1YA~dZl_R$~pYF=cBb}^XKTV%l7&FE*zy2p9enY7&> zoQ+=Ud!2tuMVZ~|9z{qAuUw|3J4o|ck@IJkMd9rs`8Mw$pT?ly;0>I@mrVnozTrp; zieA{Gh#XR(Yy~FgBKB$JRkr6Say-q_y=+Y-o76q#K-M|Ra_Q7t>Xt>uSC7p7XPeH! zFu&bR+0%pzxS7qy7KZ&**W@{Wo5^d-QTa-;)UUPxxvqqcz589Zq=D<`y?S%HLNYqfJ3l4eX5+1Y8 zy`hsKr!}sd-gu*mYTh)xESQb2*O)qWvEArW+Gv6d{8bXP2*SA1<)x>A+gFp9m6JH6 zwJXB$kSbB8zS#Fdw2E>uAY+UqLyl957~&MA&$2GDaTF=b1J0tI`S*@G>&RHQ5_EEj z_fuW(puz17<)U^LuSpGt8*Rb;hlfAy>=yc!z`<8_RhSI#f6|t;shd`wk%_g5c<-UL zG0=?TXpr_4)ARf5y0NV2bZa}4!kZP^_KU|RPn_OiH6WDkrU9(ak@C$M)8zMS4B8z$Y)(NR9K z4wv`XiwpD9CQcE0M-7=k@|7Cj<4@%P4R*H`po|=z+!TT7)+GIWxANpM>@uu74iAd* zvvP0+FG$ADHok(s!%W^H*(=NQTcv1PJRfXu`*|v<`-p}9hwSdlV|3Ibof7F85lzi!}ni*%?tdmP#;SX`!0oq0aS zAKK?QT3ueY#A{w&DnAGwTxtk%HGVX|%xrYGm^7d5xbPMm_{$@2Qin23Z`uIwwwZ>2 zYlQ0Jl&`>@97DB22PYZ=+j_edQ_SVrnB~0G{cv#sojM`ALrFn|I--CXeT~gsSz4he z{dnvk)}KH2GxA#^H`<;Ocjp*&Ymz&sZJ*D`rBm&mu1qGyjT$1Opx{oB{N#k6ovXhXm{;*rf1E{y72D%%PWGCl z%FR4_zP>2eQv#%3dRw3G>8TEP!Is~M^*R1q;3wv%rXt>vu$C@sYTSuq3(T2o3x%Fp~Z zS-uh}fYNlwTGf50;>OYO^c@qfh)i?qg{9+a36@8RG<)l3ff}V1*dhfqCXww~ZjL~K zNoZ)i>Q$cr_rNZoGR#Oyh4&T^kAE}smz=_HrSv};W&fJq68Qt)qWwFzM6Y6IXJzbQ zYYKn|Y>g~jh}ei2gPJl)GH-)7~1TaDC z0F>O!0Dt#yd-QM5FcT5?KU~wlAF*?>F|ct0WZQqd#?A(K#L5cLY3mXF&6o|?FZUlW zb1< z{OW52iJH>@u`MG`h(Di5)xY;6w0N0zdxs7EcwEv(4GehJa>FuYQuon4s@8zQ#EUb7 zgkG<3EcUFf^oU)(sMN^_RI!Q3N+SpQ7@DW+|8niRbO-Jc+v^jzwT7HGg zs@x(Qx@h&s+i^(;+*#)nGjC-9nn<)Ysg|U)0SS5ViI`XxwiyMt5(+i11WojbS9RWI zH$klw%6RZuGKXAL-hK)p)hBS3GfGCPwGDogdWs*h!K#gktq5Z-xP2`Zqpr)#K25~- ztn#ior47%TZ8@7|>obf~%Go`CH5sw}K0W_58T~uG^}if~|GDQHFerYH>;LAtX8mW+ zH9)!kk5Bgx&ow&>K)3zxC_8r6KT~!W>9aDbN@$~k$K5^-jOh4AIKgug%$TRD@{3J# z<8j2uZ}lR0Mb++E%R$-^KP7$uTTr zlil&QPo3e%th_@n9ym7WLc8vYhx826HT=mWI?W^tRKZn{_9Ui-uOY|=6qgBjK>NW) z#%Lc0lEFQ!mJ071$N_7;K216;R?e(XXF}lp7+RE&OYn?NAP@Y8=pz${;E5!}kL@1@ z2ia=xP$$r{&6HwJA#YUCTm_2mdf#hTaj)VbjR4n?-Vy}!Ba0P8oOnt3Z3x7%&3v% zVrLQ@nKDK@?ACRRsHTf1cN_(q=He!GwN<{=vqF}l<>xXRK951qmui;WT3(K}Gn{>O zHLN@(Z6EW&huBVT`(e^LxfF_k{-Iv`0;v>=55~v*9m?}dd#Aq~4F3bJTJ&!#v$2DN ztBb3%kt01o*KY6fR|_)}pu7H89tPm9imREOI-pxK{we?B-zHxGk`e&ce^$V>O3%%~ z!14PBkaxlK_xr4XyMNz;`S+OmO+Efs^u-?o=+CP!+kXmCv;7l9{jZMs|K8%u0?3)r z0USS|jsJRO0W7lrm_h#CoWTOH?Ei_(P3*V+V`cG&!T&DWfVxHx7B15lQER48*w+A9 zSjI-25WHTE7+vc_z>?n){oiz}s!8&LwpHqJSY`8c2iR@LNn*KtjOAcwzWd5He;*bb zDeXA(n{K1Z2Km7Q^d8h`;Ih7Ze>MgZfK%o3VE$|dMx6=O8%_L-y9VcddF17|$B$A-R2rE2~xIN%01c&m~ z4CRN|qPiQYLDkC|X5FtRHnY~$L}&Oy9BK@{UDk3e<3i~-Ah{j~^S>Mc|6_*sU-gOq zd^Px^L;llh@W+Y!Z$0-fSXwSXtj7PtYQPToR`h?K+GR~2UsScnkF6}JYynGx`y>=5 z)Nr&0dU|+zRW01_W$}aol{_K^!&kcoOk6vg86*VwGjJk@-OEO0BLPzlIGwuChnA>c$>n{u3n`EdxZ=i~BH`(q z-ku839Wd4$Q}M${GUr1IuoGBD)|M*nsYk>cxsWC3^+@bk+;kDK7k-~C&_Pxb_QUY^ zx^*xz4xoXNqq1~$oCsVX^}e6ejb}OKvF&x}bNRrb5=@_%h@j2Mgo2Wwq;`I`X+LAJ zq>})H$c~MY3DslC&IJjFa#+%>zQTq8hnII02ad0^x7gG(S6T4|=+-K^GH%?g${DyB znBX~qj6=lT+(scY-o55QqnCG#o3qLaRHvf=#0q$aI{#i zB46bb!K9FeG6|1IGNHdtu?DtxOwT*jWb9H4C-z6)k)2>zb;976Lb0;(saTv3)%q;$6X5@*LEs(!E5KP!;HqOE^9z4N47$Ff z*SE!UtH*XlA~YzKP=wtkO{8A)6NY|Peqkt4fAWqGN>P}?JIqrZrjyn)q=fx-*cA%m zdz-Je%osli`;6u61wGvn+BkjH1=Np*;iiDV}x7=C6V zNF*pS0ZAnJY=E0Lk24MqdnuYJGmmWNcALfO3b$M#M!vy@#|~ve(FIkEY@%2dAhHg` znh}5ND;S297mEYDxma(-KNolkRfy1Mk{K(>ti|~lO=cbv^AMD8)<0Zxy$Hi$7{yoM z%w20Zfg*{RY+ieAY9-^V&zsNdjTKLBg{h`*WR5)rhj~5)#>qM`tGsL6y(3A>8pw>F zlFoJEOqsIL$_1hNzH_&(pzd`cnEv@T-*EKTsNU$W?boiyt1eSPZShAxfiIh$k@&{1 zZw6k7FL99Hgj==)`Z~9J8?9S=T{&4V%sX{?e~sXm^15FkwLW(}x(R%F)4TjUYh!S9 zw{B2*yRMeM`kp*%6R>sMEGg;!Ivaa_yL}6R>O_c2%rxJf>h`nu!u-U1vu4uaoaSPE zle`76lPp1Q&ZiL`AN8o^e8q|<+=tSaO>gG&yY(+OUKgmM`aTsC)(R#V0aqw72BTuV zs#Gs_#_?QAx>N!rXH~;qdm=Y(H#SNcbovzbnBop;t6K@*e))BC1oXt2eRU0xkm}f; ziuG41oS*dvL>}5!jEK<JSrKoIX3GG)ei*1Xg(JSVn za=9kJR=$AK{3?tJLKwM(-*TGeKhaRH#gK=hLmu4qH|w`nSB~sUc?|*mvrBsDTmKi% zvd1NA(6-+esERh?bi>!-N>CSq?zh)Q;0Git#9vkj{cvqUcFTklml+Pxv`4dKf}uSZ zNih`~O9Cgs9B$OrV$4xS8mx6(o52o$>xGjS5-WmMfE1R<3=vl`OvhFTE|(dtK1Q{g z_dJagTflB_!(^%(bef5Py+3PhGjIN2IsYp=#CypqxjV7s%||JLIy20B0|;BA2>T&3 z3TJAW=~4sCWj^#lFWE>Hlc7# z;8Ps-BD4JgEEDhS zy`+ikv~QVV+Vop_blU~XQ7V9VjkBinaZB+K3EYsRiYSd*^~J$EpRAT1{gfRC8}=GF$=@steHMIShxOQwlfh2_%h;@jzk37T#0Z9)+F(Auhm5> z(?Z6#NP!bc!GZ9Y6UqCqTz@gaF;^JOe&KRM$p9X}9~dW)Tx@HE@-M(JUr!<7`h;G9 z<#lB#li=U=nUFH(q;zBPc!Gq-N&!yRkW(<{M1|3$7!aO#KDfettXL7Acwcx7Ln{11 zB(!;Ew4%)T{xBm~H~==-BZ(}1;)AxY{6a9u6x=iF2%o;=agWb1d12wmr8A#+e zy{&kH^egjIgd;k|Jn=7rlv5-S9JoE47Z_r(6I$7&9kQhbVcj?$p2+cv@{l$Nl~bUB zObJNO(K%q*c|-cTQqYP)x2Aj#vWrpGsgk!}=Y?;ULacsK61oZod)iY)j86F4Co;05 zw(AktnWC>uDj{-hL60|^@~@8kM+^E>1AOZ-81OB7=Ib%vG8GIA5dfhN&!@b#aXo!; zmc_Hon62~2ZBik3j=X;HIZlv%@jstQFZw@rH{AO;63K;H=^Cw-bKkS)6XSJ6e3#~R zWF#oVZ$pf+guEOjS&tXoMF!mLE3L;vUSrt-Xu{6|g9g`Ne&G?`8Tr>D-{bi|gF5 z>6g`N#v;6cea!8!YKr9Vj~%}kBnRtjdfNiT1_0d%S~CQB53If``T|tV-Ug9lNxC&+ zz8=~9oXN3=Z(A7WiJ3nKQ8TE%9{6-kZP)j@CV^W|kU#Hj+lQc?5Qp;%h}Vi=V2Ht+ zFsD9ZYgF?2^VX=jukh8r$$9BhJ^1Shzi%+(DZlNozc*t39#HKd2VRNWGhBove#^d% zb_D)&_SUdGUZF<=?DkyeT5Uf+m-N++i?8I>4lG`A^ICPkAD6t%4Y~ZB_W7ukb_^(& zxQ!E1`H7ux*y240LSf9-$SMwBti5&!Db6nlF`H|8lO_mB?BeC;_^2kFZJTSX6ifDa zR{Yul=yaiK$7F0vbbrIBCYW+fl-i*Lx-9iQHkrb-6XR}6@);)5S|Lu>c^EPFPgAnA zMAr^Fr|z40k)HyWbE(eAprB zVSs$(p|zf35JO|2wZCSgP=w1;%NiCY2Btb985U*YAw-ij7BsPq+6qUp3r1+&xlB!& zP0wO0_f18AQ_4)rgAixygo%lfMKG^6E6j~3(lc<-?LF&0;TN%blHM$Wcj(0>N8Uuu z5FDNO*=U7C)IHXVGdG%BgP9D@FN0znuA7dMp6@`7t-Pa{8DnPJ5goyt;W$}wxi5Eq zBQUO-6E&3Y%|(WS$7#%Wow=-=g{atI90D($|-&QT^x^L9g!{r-*gm=C}fGeA8L@ z^5eAUQjhiTyq{Dtra!OnIL$m}oINvg6Y~&NDPz!$4QP7EJ2Y~ZxI9UyJEwD|eg-#~ z%QTxsNgl4LQ5CfgXUw!-z=kVgv>XdOYHBX0Se5O0(bamX0krH~&MPOK-j{pKDN*`5 z5gG57zH{5sUV+`_<=Ni0=NopLgvFQEm57G~`mPT_?DMH32m35%{vVS={8Q-s{*H=r zquFU+u6gK>ggmfFygN~e)x(~@i1E3^T8x>wXJINV;0xqpWGu@lV+44(96xYm$*C0z zgo}x)Q86Q%kEs#gr}*~!mo*7wMP*U<7?zD2vz1bo*}O>aYWP0zbJO-|3 zW+vWS(d+k<^1ZtK?<@F%9cHh@P?~u7WZWfmnNG+I9=u<@y+pOTAA+e=!^BSHq{`q7 z=2DZERxxE+q$K)B?$B(s@+v*YO?2ifhgg-Ta#^6I1C(4QluHidq!vn~7V6>e)E%zY z+X7aqM&Emm(jwC9v{p8YzIXh5@tQY*EJD+xkL_`rmtV1Yjb@A=Iiud7zA?aHbSkGj zMZE{qy~#??RKT}lAd2;?bBLE^=Wc!YV4E3BJEpFxPa!b&1OzM$3Y#BZ2_+pxd+aK z?)@lS1Haq;uClH|2aQm@%g(YX1JwjgxpbYK@b0-lad> zB|n@W^bj{znNORiZF6^i_#Y2)3V3T(a1Gj(ieK#IlM#V}Zl;^cNQW~FC)1Uc1JEZ% zsz>nzWP9>$Wo4EUq0!mNAaTA5qxJdRq|?1IlR-?~jB+@tObs`=`y;CwDyd}GS-iRn^|h4zeTTBC#6QxM3}Mj7EL7GjTtTDCoNYBrnruh zZCa3LNf87gZ-kOmh_T&yC1L>cYX(R1@Y z<(}bUUaPL*#T)8heqvXvoYSOQRjqn)W*1hW=5$_dP`n(|oA>u9hgKQjrgoFoGgTHs zC++XraGzh?@-MfZQG%pKKP$+2)Vg!#f3U7o-c@pGTRFS2xKPb!9aqg=EE&6?EcjaQ zd~h9>`ss6#N49)mag}1-*Bf9+!WQXLmW?g_%CWSI-N#Rq&2mbnDGOUk$qQTO(33R2 zz-i(lop0d+hknzQ@Sy`EOi*HW*HTv>R_oT^3cvy4>Uns{d<{iHH^HP zqr|1UN-9hQ4Yyo$w(|l;3a3t+O#egIIKQ=ad$gn7Ms)Vo{A1y{)p71m9hvQxxw0*9 zkNVw(t_^E5T|;i&rgD=CK(OI}A{cGkUhHikjk(V{sGEwK&zgGq#BQZ?-;v^`aGH3q zbb-K_jy7{;$m3em2&}cACTc}qfocLQc=%nt9Y0*1ytB7|nFREjv9)Th3Og6Pvrv7M zFhNh1%S2k$f$D_BH5nNfymjzm$(f025A_594>T7|XyUO<;Q92pq%m~({0pR%C-2tT zA%TNGzlu)xvY9(Ler;?LU3Hv#6uz3LJctltiy-|ZRc+i#5!|93@Q;68I$r9Bfy!UN z(jc_lUP1Uc@(5~4ZcHs7qONYUVa<=pX&E)biaU8jpYeBZ!YU<&kI~3Iq#kF83eESwd5vuwPurXL`5E(Fv)QHJod{Dp( zL5D0mD-|H+&LsI`z60!Wh;+zs*5AX2BInoHvN?GARF32q+Tkz7Jfi1h>fM;+wToPE^-Y9G1{cs)V!i>s zP~YC*w5K$?k#*QHM{$s`cuWm~zq^#Z74|Kl-5YbjLxceSdHB|ue+8m6TktENGrmJ= zP6+(PF44B_SmZ@O8Oxz_MX<9MB%%BD%`(gvWe(f0fiVq!5vW5{7=%z*?wQe{%;qy|5G61 zk0Sk_fQY|tjQ@KDnSY;2&dv;|*08eyg1-Sl;J=Gi?3};x2qw0_CuskjYhdGM14L#2 z&j0>hod#eKfDL{NVt)SyKm`M!CIEt)zeSF70T2jIPR>8f8|(n);BShX|5I7R3OLDs z+m;m&Afl-%P~6s3rY}lmZLaf2$=W&Hk<> zja>b$mXyPB3Pa4K3&MSlIQaq;Ra+81%pC7C_B}z<3X*s2I_1GHnVg|o#!L?A{ZvxT zBydLa!U^X}pSWoack&V1vUouHMqP9tD`UAduRKuHtTXA58|Y(TOSXTu-fP(;MrTB@ zOTxhxF{iqwHFnkG*xykISE#-SC=P%Bw$|xtIP{PKh(=3?ZIH==^QC}%;!uZ z4u^7;>OSrw=}-hpNk~84OpB@MW!p!hszs%BWb|AVxE(2q3WEo!lr}f&>!(qZ5?h6P zkyHt3vyw&b72Qq51nt?C_`^W~YjP`880FKN5<_X>DraeR1841?=GYHzR<|btyGY(> z7i|htI)T*_iPnnrJ6N!YWZ%D<57__5Si)Zqg#SSm>MxlDwtr?40Dbr$6~+Hz5|}yu zfU5pofe|oQ{JB?LimzX7^OU!eb(<3t+i{h1yK3^tiDZKftmLK%fl6hAbr2g; zazhK_pg_lfNGp=8!GT;t!Q95tLQz5+gVHdO)U|=cv)ae<@Q@O5p&);HanC)AF1Yi1 z^196RITo0GLpZ&A)mYYX+p20!zbgSH0-6)0t>0nH$~Ob%owC3^Syryy?d5V3C?p$Lxdj*m0}zOeB7~0+0_?cWSv=1Ko*syU#Uw&;4n9|>{0>%QOK-rh zSC1^z((^6?Gy%JbIcFo&837LAwHV#w(T-M5PqhuRQfDh!BiFxe3c$ogOjL=y`^^kXYv z^>vU2XHG&fSmI~o0&pOg$fKX7p%CieP^B@JL_bTk!IS%~Y91u!QXk5KfgAhaGqBz3 zFH)e#*o9b0okulz*80|HEFh#po+@N4BV|?Af(R$2X%U_hvF1G-T=J4Jzfo=SV}%fJ zO(=RM%xpv8YbKCz5e(CQ(@a>mdZg?E@azI$jDD(}LdBK=Zs3X_jB6qOsi0wJ>s<%w zd|-mF#IWK0pLRZ^VoJKh=IFL<43(B*3j0I_z=(kO=tA3>AaRV4o5m`=EtB~5K^}+( z6upo*Kb{2FV!2!~U(%geB{k)dzeH+m(0u$*b)`viF1yXV&7={2s5mQHFV!!#1iErq z*$6QBFwl>NuvB5|a~B8YE3*vz84aOXW0`noAvx)xXVOV4ZEFyRE!PYD+6Vo;5J(8$ zQ1V{&f}M1L&;sSM>uMgmY|k$;*I6TugCk>hQqY{%SMXqp^y=?tPFE=7-*Bk z0(@M)Qr`+}RRn5%^YQ0du>^(R);@xDQu;wTMflnJ+^3lGgR&;n*_f&1^ z5(xMaVD*7z8**{Ybso4qm;&$%!FCpV^&Xsu>eWN8?=r6uAD@S(IHJglBI*WJU-Rn< z;h@FrDbY9=G+44^gFMVpB`C8`g@e~)Wg9{_jrrGvs#~VKy65mg&>k`m?u&Nmf>#%l z)~geQ7)b2sfBT5oW&ZZ%)v)ng@a9eMfN!C9`w<~SU|#2a_NBLY^$2?n8pTzJ@;uD% z8st29vmTPikdY6ubBEd!Cod{~%%vWe3=l~rz^EhWC-*IHJ2iX<2rm?Kmz)cPcny(p z!Xx{M1uw2l>I|w2L~>V+3*t-vcSk(=0m*BeE(C}E*K1&3s&c{b-ahU&xcouRYkpst z@?D!}T3^`herztt?Ln_LAU#L)IuS%&aT;!UceI3;A~sWTgw&@mTH_xYb&vr$!%Ic2 zSu&gaXIpx*-^#iY@ME^a2agMJs&?}TewEd#nN{wkW~6P4erAC*PBTBsb;Nv8d_W(n zKtY$1ZvsCm;MH^lRe*3VYWLxEeCr9d9=ya>Lf4Pt?9FWuC>f+ z@!X}BroxYYXr{tLso<>eS&^rwq^+W!X!{V4(|zhh$%|C-;K&rA*#b_w6#?nRg*u9& zSQrx%w^*q<6((IcQHd_~*^7FUk$NF)L77(`mc1)g-$gFmV9&<0^1vH6>S@ya*F$<8 zj=uGCT4{`Chc|sv5+SI`Iks;@pUh|sm_VqxswcRc(XKy7X{c+4MVJ{IPT$u% zB&M=o3KUhvMrs#m+oPY2$JJ0TY@B@5%^MVT_cIa$7zn~)zNAvK$wY|&GdpT{df|n% zt8_c3S+Y|%D1rp&HKnI&>4v`T#e}?*>=D_^R9s&|NRJHUjnKAv96>^zM`!e9iyq+T)$*{ zqc!$m&}JI{Qqm-yZL`iIJz?NWGW%0Ok91|Nu;16oZ=M}Nf3N={a|ntVdWV)yuh0lGrLaGytDOtW;=Jv93di4nwB z3#he4Lq%K2m1xS=cKmS>t+pA;v~Rw_sy3)}Yc4(#oe)jw(gB71plML#{)HtHJ8`~J z^%Q9KweT&Sy8TDS0sB-w5QJzHk-|n*9JP zdX^VU*jsNBK>l{6ts%m)g}r^N0zkF3*O$k@y3PzCE>0Bk*IYq5x1PLMakdUyS0I*Y zGU(3XpX*?W6YtpA5QX(3iM=Fl3tWE+GZ+>yln{|KSl0%2B!(X}qx=w7vVmU;i)}jq zVuBK4Ak*O8A@&%i(ZkV*m6<%ja^W4&!k5lC0s@H?o~sn+F|~IvgW-2}hiYyaZJT;M zOy^UYRF4$q`qIqFI0VGeSw@_n;Oc6(%*bDny?e0~jF5HMIeSdom%(4mRjTB;k6MNwHl9=rXG!c23x{a2z1Qr)RS^h?bxGDm8eK) zI=gejfp-tv{0Jvy_YjPov^=^;@l%mY_p}+0Gyg%0EUj5vSbIjg)i6>mf%t*X?r!O^^D0A9TL%LatS-; zG$K35_DP9+Mb0wT)GIWnHK^7lE85C}^3lyOq*i9|TNwLAc6j9N)*CLhZoxy^w4%G^ zp*r-dx{q+c`4OJ)L0*D^u)h5U7N1z{9^t0HxVSmHGgZvL-NBf4v32NAWW_ckV+HqAI+aQvq}SJS8Rew2OzzQnWXzT z+iyJq+e{dwhfVMl$|qvV+2CK*vg`OJlXMRe(n0TKtaN0b)Qjhn(bwy(mh{O~EZ8Jr z(O$+cY0td+b#2eeR1DZOWO_+y?KWS-vnR_`^h*kJpDO%>`*~PO5n0alJcW_3rL5uo zGd$b7-?(LmFFzqx;86)#kHZiFBCLSy%XgHX!tjjL)90yv#WI;`j>0m6URBN=k2CLf zduT$k;t(BHOjry9x$Ys&!v@uoJ7Ngyn_7lQgKri;?UEO)VMZW-b`?AUO|gJbE&M3^ zX%`Hh|EUY_45!hsKZFUm+_(4wdx&Wy8h#w5Z)>Wxc~)5`U_2=x+jdBkv~@ye=SKQ) zNlafsbHg?z^B@Vu)A2aTB0S?#g^nR_=a@WW)P{L~y=zF-yLdP0heDs)G@D@wP70s0 zfN0T=>doktbORp_H5tFnyexC*pXbk*iqB73Fx?AqbQM7%M)g|Ojb2Y7fgB!d@Eu4v zJ*$>WB~=Cz-};0=21YSN5HghdPY5`0ARjhAS9wQHb6yjtws<7&39CZQT+ViEJGlqA za|kfr(M|lizpq>zfgP3g$|^VDck16lgGiTBA&4H10JcaUf!kd}gJ zEDQ}1LXo(H%dYZjZOdtWt6})qZ2fEa&%|-#WWgwJ2}M{?{BPWY5iG%p`(u}*1?K`% zT)iKP6c*215{11yNe}L{nO?sApOwQZwA-A zQryf*O%35hOy+h%2P%3ZmqAP+^UASTD0sFlnD*rp4DkqhiscJ;GheaHF7UCI#ZzVD z%yZY2){U1%(#_H-s-(hk)-B7;&dH0-HUg1;T_)A)5+sU>oFJs~Bs#Vpa2RAl?4tWr z_>a-!-Jk|I)yhw!F8J}EcTYtE(s(TJVj{@LhhW|wWR;BtN0M@RgPUpiW~Z`SYNotj zQl2mv>bwVRDl?UG`0ut}Hu&?8W(iU-1jpE2r_!x#Xrx&wIOF{+%U3xW^*mK`@CZ4_ z8jHUApm>wAS37>vp4mx-HhX?8xY#B9HaWrZDbO`De6)x^o;UI_5CX`pBQ`2KNZV}N zUes%9>7CFzmB5i_h9}oz|1R-nDGG3MC7lxFv`Y&eJb-YiUjwlE%&FxgrcaxOk9X@Q zjpPU|oimr(+uKyE@gCp3CG5@?N0a#DjTkY%Y_!gK7#`Wj`B+>u@pfV3kAG8frWZ%0 z3Fon&z+nwIW0G+BUhSc9;-DsfuH|3gZ+)8knvqtUmz%;?V=Sw%J#^r@?f3jzIyxX& z-?=uK2ocxDh!61zp%9Zt_3fS*Z9iJeN+|p}e}95FbcvCzys&9$vIg?=X1RH8ngdz# z;Mb`Oh;|X%J|xT!7os{oxjN)eCMt}On%se-2T11dcUn#-Knhxt?)e8L_pT^)0?tkD z=ysW|b(DNJb)eHKEAf*CD%x$XBiE0Tqpfj`Wsl-hrKJH-9k2I(Uj>h^A2#^!;L5}8~KbTlFNX4zj~5Noe`JU7QI%vA#TQ<7w;^4dm=j|EH!tM zI+8jGY+Qc80FiolJC!mRyq}Ep@a=#JdLEi9_}OltTXC9E>%muLh3+-4whDT7MXuAu zTVk|pJ@}QzHZI<$rEszK%O<~mwWxx={`;*Qe5prx`qdBJuTXx8nP>xd)=tlOK6w{G z{!CaHJNmBH%~D7ruRQG~{n1F?{b{Lep}al9L1@v$pj!&`tGP>6ow3erGkY_p6T5AW zOV6jLCj-(-j-#M3!--44SAY)O+>ruYtF(#E^f(e?&l*M3OsDIE)0`i*~A)*<6eCB-W|&wo<(EQP3FxK?~PZMBx6@}XZGj5%zGR&4Wb#t z1xw@pAy@DNZEE>)dYvs!ycSzjE&WrGj}kJOM4&^zX%cj(hGjZ zLXoE8n@3s$+8)^-$sBG8hFfd*Wb3I5i^08!xtl7rpGc~qK@gO1C!y@ zQ((y}#8iqZ$MOA)Rka>;+7D-*95TbpPqip7o%PL+=-^cHZfeGjhBgJ=UWQJe4*(I< zvMRoLHv0o3~NK~jSJYR&W^W+ja z4L_5yM%uLpP1 zMrn}{r_aY(B`4++>hZm9%bK#W%d?W1)*!7!iPG1`Fs*hKbv53pC{9zC({HkLi`(oz zy1VqOE|3`8nVd#JqP%_SX`czlq-Pvsw(y%R> z%+$<=!u-bKnD;j2zCsOo%0-~DZ*_};RIE7a3ciFMRU$!@EbMZeyG9f+e!(Ujk|WL?ZZg5g6(=qXvw{i6{l%A zC3&gEb|MEIKlIgY38x(rXz76-47d`@Z>FgnX5uul$KXp#9=Suob8%g@k9W!y^c1uZ@Me zZ6&GOI%C+B31KU9Psf3Uy41QbRK<+s-Q^GLI_9nel;W6yBrS&GqtijTGP$YvA(YdM zpBLD+SUi;rpim#^{LMBG26z#+Tb{={#>1)+zT`FAs~@d}v!hzP$y4}Womd$%Hu5Jz zsaK@ULh8|dfiC37Z#X5&cag%;>)>equ31MPQ;8x#cF8*q5zL~1tDxt}u1~NoW@{;X zfq53S z@uKbob%vAi5F$aKNu-E8TXK-^Ur!%<_#aG?UmMQ*f%o|utyyv1y}LTgH{E4K9yhYY z>C?18EgX8y?nkKeUY+m!NR^Xsark=7Qs}4z%2@&|1^s;Y9(yXqlb0m76Pv&+7Jqfh63@N@a4oI6Mmn4Z$hhrZslgU9e&y)lo4CJ> z>})?|lNH#OrR+TC5U0d;-p4{vo`d4{=1E#!1O2oX?C2?cNA5-JqkgL86}PJcB5I}u z(}a)WGu|tX55!9!8cQe8m2gynsE_W;nkhu`M3Y(gq&1?dZX8v?{2Fl8E2=)*de`&Pn!1dr8-w0qw zCd#)UfaGn&uj(5=2Lg*Yd~LD0oSt$QN{qUiQm<##DTww0JD)PI0Le3Y8YwA=@{KgA z5KrMV8wG#G_309@;x7#86~ImXjWBU z$>HtFXI%7c&H_WWqJiud$rwhH&S&>d86Fwh;8Zy?aWsNCS7k5+i5MHj1fi3}4~ zaES~X(I6<@u%I(4-H@O|R&ogq`_qW1b_op&(BzdHGot6Jx+>1ghlvdn(Bu^xW1{m` zdZtHPRCs1bmsfZuM^jcj^P}@tcz%w)P_-=vT*YlsZU~E(tXPvB9#rKM8xB$B6B>R~ z-H;saR<$iMCPl}sXp4w`Pz9@O%ZYAQtts4NpjofblpD@fttm1lM{iYe!bPX8(3Bsp zRoxI7R;Ec;Y>14;putd{7aInlIZ{C`FeX6fRASDEmY_LOoEH-3M<+pdQ(aP45)I3b z#;weh8>XYFs?3xMOMqcSU#!fO5JyK(Q}wKnxIizU{_rfwGro$srqJHp4CHarswXKKcyY?k;wxH)F)HzHmVH8DVFEYS`cs>V;eB}tgRrR+pMiX!Ev|UQa!jgxmqA3jc8SUV|3to zT4&l*bYeesQFCVL4R71qA4jUVAH%D>J2llTzSLHYKWdo0h!thcJi<1Z zGA#R6UG-V5VnLvJf*Tz_FS=!1kibV=t-ZUZsvXWOz0j_-q8$yNL0qnMOf6dad{|BV zai9vs$3KmBi0&kkIrZEEWU4FPb_U(}X#DirsH~7xLg#i%xQzT(d)L_h5|5*32ymR2 zZT-q9#%uBZZ|z8fNCojt!n%>b*i^D}qH}VNX*<%R@Ei=G45+_k9iw(AgBgNjzy#eh zS=*6bAo~%)Frj8peH9$zcj)@DgRh|8<*zw|9iV%NpK1G7!3>anrLHsLmy&d$aw(pJ zcU*#Jp#;dELw9Du0!W@ScM`w|kw24gNjV1Z4952q19lm>;}`q{wMFh3vBTB>9n1l_ zOX?b;{|DF?WIR&Ov>mE`TCe~jE)mDf9i;wAFh=CAPmYN@K>hx~ijvX-5dq)mObGk$ zz(qb)k^SP2hWLzQG|7E}ppZ1z_+Ibc?s4 z)(~q=H;4)iMqeg)_+U*X(?It|oJ2N&poYO%&XYujV$c~XhH(ZlR)DKEq;C5|*U=5Z z>`caro@|30AT^9kFgv5MJY2RRdHXf=HIxyG0{V>s1pP*Lr~Rk~SLTi`3@`j7O~h<;8julnv`py_tu_D;#+BGcrWOcnHun4K)~pK z35?P2aP&0o9=$-1=<}ip3MtnC$l=+Lj6yCMOc`F8mr#1BJQM^C1QLX&3`iF;!SNi$ zUYw2nji-xYh@pXlD=_pysz4MZwE-{$=oyLajuRU6!o6;Nd%uo+V}mFnx7*dzM~Y%& zgCQdKetdhs>xKInY;gL~(bMOdyQA|Zq6;0I&KK(FJjZrF%R@8;Iy(7Kg>Lf^gEqJK zpI&?Vd_zPMLYRyYA=b9{`*=G#xe$Z7P=x~i(M5!rMRfTP-o@>GNuG|*e_XEs5!n`D zDju8;vGepPM|4ZJhVtRT9k|!jXUM(L!B*!xTMNM*0f;VDZ?st5t*6Ja#D-ZA?rquD zP;b$#XFa0p5`-I|e!gS56x>ma@WgEmJ<6Q#d^nKEJKh;W_>>X8<=~F2E9x@^M39PG zPqZs)_x`P+NQ4EYH+sGN)^ipS$Fev2crmyGr#ISVWyw3WE_1!O`iK9qbLUUr)(uVz zj&?nx8HwuZAD`xyytNSKa)ddp%k&Jxg5x$AalGs@b&syg3^q5KbVCGKN4RYfZXLv# z1_%@4ESlG~)iMq{)N_Jfxvd%-Lu-s@G;Rd9g>A9H((A*U^={wK76iR+opU=h))?K3 z+hW%X5vEuy@8ezQ#`$+>9uJW~d0QFpbcoqKZ#K(JdJ|!$+KjqCWAl3IEj?eI9iP$s zm%jIV&lBkAZtqod#Y%93H&V;qmc3tAU9P-4tNKV&xvZ)!U|ZHsRTTX8m(`dGsP^7C)AHL5S%#E$=rW;MGuU(v+ zcShPc7V-PSI054KTUIGGh2hS0K=j_3Avk;gX1Xds|ZvlbDLtrmu z(0Ieu4?O$qnUmST~VtHRw`75fJgL4S1KRl)n1uq1d_Agt^feU!f2m<4h zkqCxK2I1d#WYiaC%3&-FrJ8W30_1cnWP1xw2x%gD=s=Qbg*RtQW00_&ER zcZ0x|ATTi*`D)rr3$obr)0Dd{R9e%Nr1MESygmW^9Wz=yOY+!@RApZh1=u=%?Ad2! z{ajid3vlewgR(wyO2tgP{B@bK{!c~N8folNp0Yj#txj!{yg`C|D<}TanzFtNt<0%8~iVF1g`)$g7x!HnbE%yB>pALNs#YO+ksfe`k2vPnlUJ5p>15q!are2f^3NoYFGPN&`62iWt z)55RpPBSc!^3TP;iF_0B`Sg2AGwoYw{dHaIis^ZmJrm16gnkroZ8J#$wt&yD$5wzN z7GP13y~0IDq9gU@;b=;flvGf%ozZ>u0;H5Ig(!p z0)(*vUqr%xXw*w>*#k+(kzd>ex!dMnBn8(b0xF0BQM38$#^s#F-T*i$fRsOA@Oy57 z;iw3pEc@Fk zYNGo}6gci(-T~(kCvOeJ0Tp3!^rhL1El9@NjkwL4fML9OrJ`71Moye=1xs8J3+lRM z$n?108|saLAsk&ndu)Xz;M&vIQNWecGSo~_RYpNKr?l%8?}hjc^2GoES^P!#3sP(a zZA^kfU{xXB{(!h+RA~dy@bia0NtXJ-WTfIkfGRy3*P@EyZyUS~^_st$FbZu(>2Jrs zkWp`>01DRvSM6pKTx+B+*OXmmq!)H<0zqv>e!A6~qYMs<0Eo1PJRSGvl9)1S++Et7 zD1GG^$9+}`V*C>S0aKbttq4V9P_3>82@sdgn%PcHP(A7m91vefW?Dp+W6hHQq>iI! zqr?vrbwsIOR8=c!R_KojK@A*>bR9$djqt4cfxce>PTRXY_+6PL3W$pW4g*{?pzjY- ze#D9|G7xonZ&*33R)hy4WffR5{3ZRuG(1Qf*S`FyWVCoiTvM<7Q1ma>m%HafTfT+K znb%f&3Hk~8qUkt47!eOEeXlBws@bLDl2Oq_6+W$IB_B&4N#_XSmffevI}!=^m3P&- zSKqEWG?*+O;Y!CO$jr!BG1}99eDNeXg+yyMe28r_Q!qv5>>MLo8<716t1r;*a9Ff? zbFQkJ=R+^8Il$QP0Kt~3bMJ59n|pYrb|P(`*5JDhhcc}+VSf%sIgJn!*=pH>D{LD} z+@-5utMrBg*dB;B}Lz&5)`d7iDG0|1{)bYqKeBu$TRHv#$3GmM3U9qP^?Jc*I9UX6Z?Nc{ZaBbKRaYII=;@aUJLEae+qe+#3{pA=GADR`~HlgPQV`feimB& zc9wrovL>7HBXwhaCu>qW?PZ;^xea|!x)XFxok0AuzIvxWDfH#@Ep8dc46lY~tdlJ6 zbM>V6^&o%Ii!uzJXK`x(&n$r3tJZiklFh~W9#0wTr^Mg;GfvKgM-H<&CVaMC-;68- zmds3aBuia>(a#QJ*zc;T#l>S{ZPa<$jwVoNNO=!m^wbn(lSSyAMz|t(f||!2;R;TR ztff$UM@$*T*xHs%5){6^oyjhoc9?^7=p@k&{mhysjBH5FGGgl08{{e-9rx|T4QvcBq@%io^aJMMjSyW002P{oRRKSz{Y zZKGX+L($OJieeV?TYZ}RBEvLoue`=MLN&&wn4JjuTt^sSLxy?TJC`?BfY_Q%$KCbW zh!|%#2TdyqT@nnP)x@7jYUU$Pukm&AYh?6^V=>L8s)@3GoE1_W@$uEXGAm8W`>pM9 z2nxs?;?ivu-cP0^FiW&u+xz&m*DA>7Z=m9~=W)1!V7PpmodRd;AI@^}-r$>IaLre? zUSs?49FwoRjf|9RR=tIFf8@g3^h@c=^tE%ySXDi8R?rv26_P8}nrdo|d2L3+bD{q? z@Fe1mUWjh0GVh!@y{wxYea1%v-Gs@JtdT!*|t+`LB z#mGG~*6HXLKAD&mE3d!V4ylflP#mUroP?=x)GZCx*z51fvvkD97HPP)Bu>FPWFKH& z^Dy4{B@c$tP+fYp67?DjeT$4N9lKCYg3cK!4)Vq?DCD2B_=&9y23&aU=};2(ZjOJH zc$&#`vN!n?`8#A&Dy+XrX{?r?u+(QnvEgF8pw+*SG%KF=$eoNo!+cps;qEft|EW?? z>xXZ_-l;NIW!HYfa1y-(t+9l`Ba^;Ph8DY@v0c0B&)w4BPYX@QFs8A&fdFW3TYTIi zhF?HZ0(EA#%@Bi|2Z?A{+wP3pp>(Qs{Mk+X51f9Dnt;`sj=gL$Dpt5@wR1c#pLS(! z%d(-V!*1eRr(lbQ`r5wUp;LDcmdboFR=x<2b`9{Fn_h@5yRKhPUq+^xrxR>2Lfjw{ z5rL4c?>j*g)Ux;GFdRveDn0-vD=(^v^}Y;DU=g(9gYV zKV8=Gt)_3-aK;f{-7w!RuskHPa*rE?Efe>iY&=r86st2F8U>Miwb3Mij4eZi;X=0@ zLAT86h)(V`g;WR*BUJf-GoW#{+~A&JcDk%9Ix!#asm*k3NF@z$23eSv$Yp*ItQuoO zLDMmdUUU1(^PF;U`+I3+t%X$ZnJWC7g%d#=E;#W+s4y@>I zZ?X5 zLGH3WvP7eYTwTjk~TP?C~vn$jw?Dj(Tfl*trgS2as+BFRsTKW}_UkiDpQSlK8~ zi)0kvrgX>;3#zCXe)Eb-fN)l}#^Ufc?X#N0F)b==&7H9L1SWc2RhB>xHt^?}kVMK- z&|h7NB_F>s$kVU~_q63I(6?5kr|B-PD&&XA=C2xR%`3%{ce|D38Aq0nR47w#((A{% z)U|4Xoq`P-&fD95ELVS+dO=}{>-CI`*hp6BZoM8C>>$j`r@s#TV7+s-Cn%E5 znS83m>zY94+R)uU{WAB9EG`evp)KC0P9lFj)HJT3mDcv9sy`8JTHH_50)w78TGWRR z?+8xt`tpU=6u(}?rw59^TaG)K9g?*vfLo`bYM3FPSGOBK(x#c3u3N5s5UR!YOL-k{ zu3~=B!Kg;T1!FBRC^_j6ePxDXb^O!C$)18?UXqox=Ft)&7);TH5Jd=0psZ z#c|-6Sj$2g7dC7r^>_X)al-vV*1IpH8#4z8|V$!e7HeTAwC z60fB6cR)?&6e`73olCk>0eap((G$mzktG+s#E%D;GYv6g1sK``dP#DOt;kh_3a21Y zbjix8QE!{J7(j;jU1^&P<2Aaz9xlR9R25!+AaMlZPr=nqXHRB_&}tX3%QhWkjM$r) zr;cbfbuh=jwD*!B{%L<1!Tv-Oe{S!kN&Id6yO~K|#t4~7Ugn5U(_J_F6Jvb6{bdGw zU-}4($%6qgll^5Rdyw5_C%a_YNO_YmO?>~@_t~bqG`##RcDu`9lOC4%p{77N;?1T&3*!3m?*=B6sUvJn zfhNRUCw28UKUKOz4OuR~B@3Na?iN`UCX_D|^}1Wl_f@uT*Qa>VQQmlf=7#b!ZXaPJE{}X_@@aX;PClB5Jb165ra?AxG?D*Jw&yZReHCZaDGX(4;1L z#M@+pJ>I^_m^FT+$uVPu)`WlZRS`S!7%e3JPg92u@ozgGBVr%BIr?}-6Z9s>WQAV# zBRd_o_^(YL8RD~>DpE#XnB3X#q>W%VePoPxHqjsd%oeX|qCW;RC)Ts$F(D?f=aC^U zZDLMW2xs4D@*ICv!>%|g0g}YOXZf<~t%Tv=(folq}9fM){^Igbc-=cWJ(I91 z1y|T>V=Fq7T`cn6;ydH9Zs!~V-DwO4rYG~vB$%2jyLj{}+{bF_>n3Y!XR7>`benw~ z415->vNc=PpWliKa5Q(V86;NmmK%1L!Q>EI7aq>$nwVImm{@M=erTGQyWw5bjl#(& z+UMQllq=0SvrHXHt4xAZ)%}b{K@ak6H}hfnz_f((XeoKJG@7$T)t@g ztg*S6!3SHUDsexewC2Fp^>vt#=2X@JRq(yxCMl5y9?_xWUE!P4bZm$W45G|2Knu`0 z@gI~u!?(o;aq~0TIb)t=E+hs;5V_Jm24OYNsBQj1Ay6pO9mT)rOFiSZ>p@HyeFy3Y zjG_+i;7?Ei-dj~fhLj5w%6LaG$OH{U;7E@r-wgr?9 zbPn#(xIlxp|0BoAIA{YELhr(`WC~2&Hh{{3>cKtg7x;tmAT$gd@Cg&TKO>>1%oT7@ z650z2M(;xZN8VH(x(Vt=f2VXIKIj9Q#TS>m;2-qB_(U6+x{U#ShODYw2oK^wPeDm| z;;M+`DIPTX-;$>>h~#Mm2p7De_3t^;d-OAgj_7S6Pyj(oz?Y<-&;w5BHRu@qjNVwy z6K#+jx{hH;(1KS(+mUF^Fjxy>LwBb!*7W2XB1xkh2^VNxpKeNkf{;(ydgR^U#DG%tvAi$C$AQ|9yBT->QK zk zlZzuVrqSK57oJ%!s1XG^(cO+0o>B-aN<_4n2ck(Tz9EJ11S7f*7oOh`#Hn^v+<@in zof(A3DI)s*%l6Kb`-NvHUtmW)HuV`B!Zg3Vqlp-3h3J+H4u#lUcuJt+-gY9IuP;0c z5Wz7JgW?B=9={^awL_Q?p9rPlSr(Cze2$SCV4;;jK6hT}owYT2&h^7m|Q?)hO*-kkh z+-Y=Wd1j9orgHwnaxu6wB8V$M`uxYuaj!YzDwc?=gamQ58zC$Qz2;e4lYU3N=FxSZ z2>h-$+$|*9)r@8zHH~H^>Z^Z#S}^dOJv!=i@V(wx=n6V(M;t5`61OFFpMqr(!w_e! zS62U|URm-HLk#gpxIQ9W`bM*E3rjvp2S=Td)~(HwW^Y`V+|Jsy*Y5Fc*}=-|Q*O(G zKDf@gooFr78;=NcT3hydh1r$JYZ`gw)oB}&T24I{B``w8jz9f z8{qVa!$|k{!_&*|U6z2JNHz<#{`V#IH^{OSg%dj%toJ?CItDy)^2ZAI`VU8Sd7P}v z@!Aq0QT510!H@Ih$S{o1ZMyvW-k;RUoL4d9dLj8&AE?G7-zBX^wXSmGa{9UdkNDYOK` z?ZI#cFkA~#7!N6YDI-lHE&WqQS}H8;2?_X@8sv)ux}riqFayI)z;H4!+zAX9f)w^g zggv1G|B{2Qh|mwzz;G5Y+)758Nk-Z#EG$S`x*#G<5*aB36DW#^frWlB3n`Qe50gYf zdc*@=@t_~jf#F_YI1d;e4JpKxmR6FHK9307LPqMv0*V5GL1>^WL3BiRw6I-Tx*rXx z7Xv8z0vLo0TEqqhQGu?=(GLv3a2hb24N{mTBh3{aW(h)~LOcOTr)Wqh2uoPlO?cQ1 zH0&lUtV>!tA5w?|PDTf=VFUjnzLhs%xDTYzK}LEuEbJ31(jzhGiV*!k1q>&E6e5O> z%1DbzORvjFCqcv7!o#SMkR)CJ*D!%=h>4+tTF5|G5cC5iF#Hixr~xTVgcM>!3h$+* zZ=qplNJy;_VP`<3S~R3uWTZ_DpeYux3mMdc3ThEO`DS4AyhVI-t_p_NqTKl@tPV{M zQTK_Q?AY7ja$yGtc&&EV+MIJ@2DgfwEJfPXbD{?efNzc-8jL(%1p8U8R{IQD<`djF z>#bHN+SFs()C<1vHGO&GY_VG1YEwUh6YOWWTFp0PS&I?ur?^`D)Swh%le7iCIcRB6 zsve@Q#SC7cxOr{AnoDHkkr~}9!f-M@Zo{SdBG^lIHMrC!i6~0K5Pb7d?1aZ?)y#J2 z6FJq5?z>erx*`f$C6sJ(7f+{_G{6BcIia)HDeiW3%My@>Eab@#Jwpy0_xu0Y2(|42mJ zE(-hIO!-yhon2E-Nx6yE*Yq}i2luUpqV(y^pHmt|+V1A;I4_0MCny9zyt*=CobR)Y z%9$mZVX*~`z_1U~_PgEW_TAj3Fi=iKx&kFdbK+NycSV-H4+&j5%?B2(-X;7MZSI1c zHnO?!PUaC0nuwI&Qj|-)BB7dQItT}11N4SWr7_4?!_6kCYKzDOhN_rL6bIOdoD*4N zuFjAMHLB67iEee)S>j-%rLZu2viJS3MhU|wv+Yx#%x4ZBYO?44(B+$a;p=4PnLJci z6;AE;wg?c4<7Qf)uPiE2w?*c!HGH6LfA7*9KNIj;#Jkz&!H~kO)NPDRZb5z8g)c~| z{%ewGXoZLukRe*LDU&Tp4=q^jf@_Z&xsa=gm|F((ML3|&Na@v)%oT_kLN3v0R1S9} z1j}o6XynmaWUbn^v*By9V(DtJ#try=VR$3>I2*$Cc34RbUhe9v~ z$&YDHwP#Tq^@VinpQ}-qP9Lt~mYYJj+&2@Jr`MQY*m4xDxNp2#vD3z%YJWgp!T<1v)^omMCHp~hWrOc@vl zMoJ2ZRsJSJ6j6O!%vZOS^!k&`m!zPCmo}rm2VSXlVU`hkCm4>HXwu*jUldgB*gFf2 zFxD?i5+?(*CzSmbHoJrTu9QEf662FJG+MD2^&0mb9nLQBuEv!La6<_Gu6F-O3Yb|n z6nr;%m4o*4!`s{Gs_4<5gb-ZTcl?Vwlb78KQRy{roZc`Ksx~7*+X0R#td^z|(K zt7@-HWM4pPzn7RMuBPdS?-Tz0sxx*s7khT_5R>$3F)j_Mm0ag!9AFT}Urvh*XTX)H zUb0I}6nAPAO8HxL>lSx>TJ+0!av%OMUE~#ZQ4c(@s6koe#>le8tu@q*g9NSB>N!_% z85_oGR$`_rY#(ub?i5Pc{L=wI&HPI{(4 zX8HYF+#70Zja~~5anaJm#`_eZ^i1bPxq&dUbVR* zRfP^8&``6E)nFW4b4EAe%V;=edoaBTzPD6)c8D(b|Z1U>T|V8l(Z!(vS-clVU0u0y}S8# z(!X%q1n}jvDFhF7(Az0fS1%SFe|OOu6LwZdk6oVmH}(s4`N=-PA9;<5@d}^@9xKq? zw6f=qiJkf`ZGjkNeu0N~PF}}>msd}d7^E~#RfOz7D=UmZwB-Ffylw5E$Tw8t;zeyj ze0(|GHJK7mX1iq)Mb1yv>LdAPVhJ8D2l(Ba5jsZPPff4CE>M^!?k>P*T(dS~B=W^V zmi8L49#Fn~{Q4vP)z*f#g7=fYcxLYX%zXK(`WT&UCmj(E%snPteQ~ptj9dH~z$&?qzW$>8-17mh`c&c-L^$8TT9l0VGMog_Js=D&9{YmOYP>-5IUt3&k7P!#L0lA?Usl*ZZ^fpX>py|m^2c~RGyldAAf z5tC&c1+Ekp-7q(W(}NVX+jbMCEUh-pcO9gj z@zz=1@rm{tSyUd(!&Khs7)p8iAd&81pHP$$EX#I?Je4!amMzecRevg`)~^~J7R}xv zN50b7=uE#!wQRBgJ-~I35H-8U`ECOt7v_$wPr#;~s1?k8r&=}EF%Wo}E@w(w?=|1^ zrly&FBvq%Ue^MMF4QEfp$0Iytg3nSXXP z9k#ePzD)FZ@w@*rCeV1jK&YCdd75yWoxR}B(ti7ZCeY(ui;~a$m8HcU5spF?0PU=GN5fL5ufvvdkwHfTxCS*O<}-Zr+^L2NbccqF z94^Wy*w%FZ+tEm_ncLo?B{~b=igg#%HPgKBJj?m-qIEkARS6DluS!!5?uq~4POX;y z5;u}M^|w-Vczc$hi*BLh^sm?xGhAXNE}tQxPX zW|w@hjOoK)qXFA_pkp$=BQUDspa7^tG_D&b&71GbA{|_Bc2C$Ao*eM_orLMl@t^Pa zjQQBt8a==L9cHICdNp`|xzN=%EMjhO{{UK4~=ZB3^NR-M;U;awj0Q2e|>#NjGta`Rou^B%Ktt)v{ zL*Nh<2Df_9d|`2T31;nCptOs=B|7Q-<6Qp?bGl*kVx!{l1aiE(^~6rf2c=LYo!+{i z0k7|RsNcOcIz2+3{58t?Mv&XX!RN^`hYKI`w*ygmbNbLHirb4c)moX50+B}F)9Ut( zyZI1<$jQ*39L{xPQx%RZpYNwkipamHMeo@#; zE-7OnY~1e%6pVcOLp5=MC+GAh!S(}xsB9w(KQ9_eoJQ7gr(UkfX7NWuLleXxAuN0~|)9Y@PX=|>fR%ziy+CSfX)=6W2U((_0zRqYO zO}kjYua{&qbCs*Q#a*{?PH$yYKTL}H6IOpv3lMhX?0!Y>K*7gAU=`8&LB{%Z-vgxHchWEpx*5y{IYPe^fvBG0F~7F=GY7eW7CghF@Y}dU(ygLrO{IY z;|GnI*3mC(K529%E`sK7ymu9eU+MXzqV1J^`BJuzqdYVC{0VhX62O>ffkj@ybT3XM zx>;%%v2TCH!W^#H9gZaZb3<`hzH*W!G4=Ior8lIf!oohDW{|rN!bfV_!1<9%x~I*FB$X z9k;*GR4cYzmFgXpNUd*@!OcIL|Ag-Eb#rB6t zpW(;LtpT;oJt9b-JMdUSop2RrSqj@b=6VtSnRuv~2LW=+k|q!ANpI8l30@v>+q z#LB8!_6K{r%;y4 zy;$^%dbU1mOy#2G>mR6zGqV%@Wh&Ts6o$bf12^rJc8aD%9-qFax9xc6_O<3;KhLzE zdPOR0)ixyF>f6U(9X|ecdA``En#5O9r&#ZnB|i*tIE?T`|7FcUWUTHhTRnQI_!p0) z>k!FP*)aM9-6Jm4^ewA5wu9THazR!+l=VnXQd~rj_hp2vl96S&IOIR`O$wH-@>bei z)+Taoy?;(KyVp)==CN2;)g%(s4A2MY7s_Q&gp|*}VAlYV>UHN^OntBt53Il4y9?Cn8?X|xpIvo!ns7Qi zjb#VcrF&pdkB=}c!r>l>PdTY#?{v$PVqfCz%C~(UBKf8GaG~mWcz(Fh>k}ZUAmKUk z0$mm9Bh8gl478xczp)Y;V%4qZDj3&J1D{JUtR1}NoXk*F5YgbvK;I$$`~wooJemE2 zpL#}sdgeMXB$&Ab4o8hQW5d9XBoyT06w&hMSv&PuMV7#?H-n$U-0A_;d11oIWMZCzO~dqL8}*h*l;m#_S}peG zZ!%q)zq@eJ7Si9zk9tJ z_YYM4z;o^qiYw7gWF;SoZ3UU+dk%bm{7g#Nuq7qCd@b9~$MSt9MAthpeTxvz>>GlF zDiey68j(Lg4C%$lWJII)llxOPgibH=Nd-qDH(()Oj68LoU^j}vK`Y;QDmn)@IAPnxxYEHwVU%~}JH?G|W@4xGp46ulj&f*7 z!FiEBiI25)~Jz>RS$l8~` zadx`!t@=mH@>Vi3`_J-lEM9(fxmOrODoW7CwwR?xp?Z;drg@-G_(T=1*a;{LpNwn@ zD(ODAn12JsI?qe-H4Bj!|2Q>wxu`|sFaxb?`vR}sjFuHR5Q(#RcXofCHH}e=gZ(I~ zf6WUSe(!vsvtngC`-%Anzp>}Ez{Q(qfeVePmYumbitmXF>BxlqYdzjRYCAFn^XqR0 zOI}<{ac&C!G`JehI^aSN{Tb*`5o+TF!eV5#u37biJvBkPLB$?jsWOe-D1SGu#Oi*B^LiGvD{B+ z#ZE{RVB3AA@wz;W?|&z=z4XqOx9@y~*r6q3yHx zc`8FQ`n9>I4;r)I-fh1MmYe+q1eMEbTv14^*l6jp=JImKtZkMZFlQ!-RxN!O)h~Ys z2(Lc&?6@~?zcenvS*s{Us?A(1GOd!^UK1VOwrFUX8~(AZ*T{HC9QcV(XqMkq-q~`C zJNGnQKa$)$GJ9w$qTC}#$ZN{zCAE}5R7jA=MfDT;d;e6{!b7Q&VJi_o%qKMOoSyN2 zsdxWxz^?z3()~YjuK%Ac75UGYYk~hN<{CkT{(retgiqxES}O8iBt`S_3;!Rb0v4&$ zaS`0$u=6)@l4Ub!SfWUJAsZ=(I~0ftIK4PU?u5gz@*yKN0fgWS z+jVIikh4<}JY5`g%_TOsMYXO3%i4)^Og2rCemt`>$7JokJ`LFAeoVg9kI}YM7MbUf zNhOSDF2gU;Q}?C$tWKuGJ{3Eo9F2u%Pd%f|su;&oMyM0sl$-I_=k1K|FuxbAm`a^K zTg5dG?GJPn-7IE$qa0h85SX_Cgdr7YPKkbz`D;ssc##)=SFUl<8}mB)jKaYsK>$lV zNxx+BsNs6IkF|Io?Z#f0oZI##{KRgh>iQlf?Qhfje{~-UawC@6e{1jS|8zJ0H|kFQ zC0`oBBL9ytc)@?gmlo#b{lC?nAjs$cq3+~=0j7Umyqmp>aXcJ!PjiT((Be@Qs5CwSI$x}HfM%tLa1`#UZh5LT1 z)3d-^Jnz2kyzRd2o((xWy!!K4eN-!IaJ{^o4*~;73ki%X>hn@E#NI4C@%*#!M2N%H z(Sfre7YY6bfG)^kMw^%OcLoz+z#9hZDGk~BJfX8B1vofDx}y6j;M*cczFOQ?4jAC) z3Y44NA*tg+Q|`ou=zLwM?%6fh06jfXz{p#?)Q(5l>{8K;D|?c~Rm=zaLG3 zyXEI3_uLzYazqc%MkbgX_vUbcOx~gz<5!O`gA382U=R}V(A$q_wGANA zJ#9YUF#$`|X~<{hPLH-!lJ9U#U#J&O&;H|=V>W;Ib8)>J<)na*2QwopBdbrk$OH%C z(O-#L-B!`39lW=4nnSOVyC1d>^T!6P&?YT~$GaeLtN?MnIJ8Gw2R>WjNY|nGKkbh_ zv|3QC0QsJkT%Vt>Lq|tirAbzRVy~X8###sFjUUWArf$u#PKI(^!cBPYyCx?B32tO) zPQqS!Zj%}$QxVkNj}*U!1F7KHxjSBWfXWmKjR>3rC{+WNCA59ptVG_)@hDWWn$R!? zEhZ16KF&NLLHjMqlel@gdK@#+O9l25mejHXphX9RH)jv)gO?rXR<(l@IFUIPGuEDf zw%7u4M;TU9l%HWUCA5fRB2@ayvxDc2_402)#WMfJpaA>@hbKpiGtv?4-;n?(L2 z?x`o0?*P6rs?b2g}mDWL*8c>%9Ya5W5l7IPK^O6n7h07|Ess zJ!_jnIDS$2pMdIO3`g=DoM|}gtuED6q(TGXnl+j4*tIcAKAfT5t#kvedQWobQO>!O zeECa|b?*k6)a`(U_hb8joOkb8RIT@;%I34i2fEXHzhloMTjaz3r6(m+*H7=uWuTS^ z5fTl!pCa=cu>9q?PQrT|2;Sjp4Wu^U=v7W8L_fMB@BEypmZVHgXA%!b4S<16^$TN50Z5N3I?+- zu-^iiwten^ebD+H!n|;gZ8Kr4pWFE6P;PTs)vsEdgh{&EHZI| z$mhhS{ya4}TNCN|vYfqU;?_f={U%GbI7nsl7Jr4MIm0UsE6xL=nSy2-nej%*8>hGa zLCi6on3KmFr!MNtvn2}Zay4-WN!t#Q>Kw{;_EKw!?WNzTTRbr;iMd$6pQT#!YT)#S zh+ne<%0sIF-`gdFjD`C$jcd(pbDqkcnwFA|F+E`~#MVwNtmeY59^jIzs7cx*h9a5diTak5_d#FP zJLcyXAj%y54Od{b*)RrPj9r@^Ha+HMtoan(Zm?`~)uX>mSMMS8VM#dYU+Sw@{u_O*d1SwUgaOvX0Lc9K?(3_l=lW z#i;`pY$C$B(NF`#Afx_1>c&%&m`5<(-#MSYvEh{tiUG=5fC*30TU;M*srpsyh2CunXDzda6-)>+pyNDhs zz8$0-q56QIYq@+%Vn*M$#i}YB62INPMz19;i;dLXFA~;kC!|96!OZOrbJ*MKLz9)U zp6!Nrh8)Ko85_mGR;qBcHm4U(@MWON4{jAz{9$SiYOcE!qKa((?}1amYPN|TO8jHy z$^jMj8B<-GRutF0zqnO)iAyRw$%|PT_NjzYE3x7~zttkDJ&4F@(gm_C4F}mU4Tf1s z*-qP!$G7`pB#d>17gzI%_+$Oh@qcQoB@~y)e)w#uPE22c|8VmrRfhpi0nt-Ib04GEN#wq5Ie+nu z7+Kr1R@NsePM|8x=kDkVq7>c1;-AiLn*J_Vn`g_mhcvCa73{q9$jIIOUEi`5<3fOI zxmU~LZ-2wByA`g>o`|!MY*T5i4IfTm5SK7`-0Wcu*et_VjPHIG%7(wG$>t& zMyt|TT~3dvX7}KZ;q1SNVbl%Z0=yf7VaT*ff2HkRd3hJntEuw7|By6&YG{`s!-`mX zv6HSYgX999l_w>~>i7WbU>$}2m;To_{Tlu9TFE%*{DxewKRzh z`|L$jC*aD%ySAHd0;Mb{+aSJnvM{(~-%T~>9Ets#~mM2jp$92+kF_hf+^Den^j2pAQdtotZnJiXp4(Es9#GZ{ z38k8A9+0uH7g1xq_I$u>n5EG##y*P+eD-&e^g{+*eV3AH%Bhuq zWHxzpc6D#l{o25j@vnG-JnPdth12VN000qI+UfF(!Q3 zB9*m`n03G$25W7UQ>Lmj`>I9noPu-Mbl%%4b>av%CflE~x7tn_SPA&S>$fVGZGy$C zA*0V{X!F5!rdx%D!~-i|FCA<@VA}UP*1`E0_+r3J=a>6UcI=S4OTdaR3(CJ}`CEMZ z!`<7}oxP8xoprdI-UV=h`~+Ka9U6Z5#SY`3e>#D$D){Y}@^@yL@^yzM9cZA+Wg9#r za^l$bueLzILT;tb-Cjun0jd+6wjFp?apf%{Bl7gmtmV)H2=Ik}?Xmi{>%UsMHntfj z?pyUOtG9 z`PiI~N=S#~MP{ULq9 zgF9BvFd^95%HXKH^&02SZ_hzQc9(8=k7OKPaTCRg8a=<90|KCe+Zcm4i804c+tTHS z)LKgc*CtWXVsIswcr$iVRLXz8tiHNJKJs#7naBBJ8ijao_uv=TR;QqKXbc5^lGALQ z13AvxpcG2?D(LirDyr{#N%c$#V-asG1BV2|HwY!D;`LAEeOF)Y3+@dpd_+^(`DuPl zaW%cS;^KDw&fS}tCJ>Bl*tp;95XVjCr$rw_B^o)5$sKnLl~dF97an6ki#*YAEOfpd zO;E$}xS%+8u$zGoBjkOfBooS2V#7`J2zeYlLHIjDUVFPQKBZN=UKkz5RO6)4UQ^iR zW%#vfFFnO1WGKT02B`~Ht7rs`ZD|C1#i-Psdc=_}Hcg5QAzHFzxlCqygJiC)$*y12 zowPQ?f;3c-EQtUeh6dZ8B2vIV$?%2Md4Sk>Jd6|VW|5(IQkcxp#?SdGbM@OT47CW? zrLm?*SBi;)b-WS(s7_X{x3T>N!abFpo1f-KQxn%p>?SJvG zl6qFK4X=>ImQ7K`2Y3=}b7R-#c2DBbHA3$5x%?K!!1Oo&A-K z;`_`DJWujZ@TnpiwyRB1V8q$kQvnS1JjV6RG|5n|kE6xQ-y7*(M*mK;r`AZIp84|D z2H(@xs?AkivRZI=`NM#tk|6WN46aJ+@hidLo?|Ex?t2z2lY$ZGDR-bMn>Tn*=UB0{ z7vfWzW=^uBs+#Gmssdq1m7i^_0H#}JaFVD(!up+=GLZ|yEiBDH$Z~opCdTPS=h?lK zy*g#i-;%XKMRi-~o9iKlKU$}^JZF*Fo3K`Hs`j=BP#7n>lHuU||4kDsYm=b>9Aloy z6$r~TL+1{1+j-13Pcku}vrQxOZ(Qy7&h(Sro`Qx-l^iX+kYp7$Pec_W0t1pnOW{`O z+LVbW##1finltPoS_KH+c;1C<;QHe9(|X03YHjY1<>2*N!2(;y@t#~l5bwgjdoS#f z@*%bZr6{vhFV;wBPu zx~SH#3VuM^7-tR|7Em;Lu}~)C=WGMh<9C6Tx}8&zm)g!3^|&~WAugFp+7bvR^V6i( z4W(V1Evxl!FnQ>JxZ=}kiBsn zt@>9!GbaezW_u}H;JQ6~9@D&8iN2%5vyg2jf18!I!pwYo>6W*MW`zkR*gtMK<8Ybo z`xW>P$2uD z$BewIS!*2g&V+@LoEdd*Cj@xBNCb3{BCbjbt3NBE!8=PuWiO&N7ian-lxjLp_GdP12%2I>w1$ixwV^U%<{e2y7 z7uLt#ThDc3I-0JnXLde-^P9I;w?l$OqrxmM25yqapqVe81uszf)){s;BruSWAS%W3a?`P>q`o#oC(Cm}4L*0D?moTvd1XPDSb- zLMWUp0Cqf+i;zZ8)D|qt)ON{}&=$|VxxcxC>eYjf-r3=~%9Tyi7;|>QP`OsG*Wbee zl#%3{NXTh+04Qp!!TEBtdpP_2b`MKV)oa(jn^*|zHFj&l@E3>Wh}{{dm@1s$Mirqk z99fKX)9>);Tj3E6QMig+J0)?e3LI^cam2lTYY%xtq!?!yyE$B(FEy50fWi#AJcy%* z(%E5N5iRkhJ^XMcBc$}Uu{g_7n+>K=v*(=?^8FYtbi<~aw1~O#bW~lHkhVrJo?-Uy z*x;uiu`_>kSQF7v$jz=!3IEIwh3Va6S!E?PrLQYUPVzXWtn9_IBSBGe0F@!%kT4cWh z6y0VHDQs}IL(JT>1#RCBC2WnUT;3B%$71A(esZMimMr?CEoG>m1eSvP&q1b2Ry67y z25?d*C^9tus<<@;epDxWZXj?)Qh4;XB5M+el)!{VH5 z@*pA4L(y4~9|f`?oic1^c({VS1m3E`j`Rh|PtL1cr0QFXgHDNPLvBy)lsan$lF^vz zXrFs(h&6L3D(?#jQ>rGHkzWsD4K#F~fBI?c%@432#njz2^Y-SG(%YbfcJ#ZhUyQ;s zUHrqm1ww;Dw~k*RK;KXHlMv)-vqcx5XD#qeO^?8X2J3@mTt- z9rxyUcQZ_#0IrGB@iaWs_Kn3Tkwl7%?8(0+Ci5vr(4I~ftv}OM76}{aadvhyxE_ku*lp;=XMAtierq+I@Q_*-?_Dx|rmKDMejO zHHtm8ap<00TKGfQdv+afH3b>{B!u}-_QbltUghtL`DK#@+O>`+-q%H~)sC9ffes%p zrXsUYuVY1q4!@s%Qfr*hNjM#DL)mLU$$^Vv`R8_5+X{^xrwM@yOBuxiyFm?v>HGvm znn??-n4`;svbbSFE_*)W`4;AWI+wLd5so=qA6hVwRtS*r%d*i^L>-{AJja_fa?Fe>SJr>-~qd--p(U5Hn zqlLVztgVfkr>=~<0d6Qr{5_tETgtyg$9YOosE49y>w=4dd!MZr-r@>$t9>OG2n1e! ziOsuN5qR-uLpCg~s7T^ij$7IEZ8jZi&srblhM@kzyQ6Hcra!V6<4X)d4ZJ{N3$MHA znDmb1cR!KbqJBTIXF>e6*kI&1z~)(_Acs=0)l=aWyyrX|GH0)pXebPj^RzeB80;v} zu!>c;F|%$FTETqTl_;eIjPvO^UId@v>i8!~0cN44HIWr~aJt#l*rp{FE4c3a%`N-% zJCkm}e<+jpW=-2Fo5{23g_@hfZ)l8~x^%}U*lo<0C{E)E+H1Qh+?5N=j-O-{=^R{! z9=?mHd?6fzF41Q&lczdIAM}6Jn7^qXQ5tN7TFAU4`N5L@0q^gf2_=KCJp9QXbW@uL zh>6_2nMb8?ZE<8k1 z&Z-{FgzA0MzO0SJZksO*E-Iv@(qcG-3C{asb$Tv3gR3iVKNvkqmnCN$b-9q>hn+mK5704KWhI#82e`9>P7R| z-755~LgyJ8%B=AlpAROU*(KRhl)}ids(75y6O^WG`dA(-bt;W+S^aQa4v; zv7K;b{MuCjQ)FDt$SzEO2`Y!h5Q*^;pjHSBVXaz@SFY(Q&nLqF9F5GHe2TVcKlOv7w@YzECqwV=(o^>UJ_$N*%NcQ|KG=!Nwv|b?72R% z+_MDs3sEj4&-%ovO8KR>RlX@cc|@}2w%O|Gwu8F4u)R3UTRQ9^wwVle4Y3riU@YRx zr}ix;`Ru*!Na7^FPxSy{QXJESio72r)TY^piP27gq1XK1&jch4Jl$^NdGvR;#PPTH znyilY_=A+lMr%Ps)NjWe<}Cu3_t%*ncW=R)uT66N){X4PSM7eAqi4Nc_fZfgiI|AG zJ^=(}>&iZc3iIV;p&pa5AiYeiiru7md7mloFCN_t!(0||J*D=Aj;76VIQm2d^pW2t zO-RD^A8u?WnLw{KJ!-++lb~im3g1MzqGpEQlGS61BkP27ZVVA{Q~HqegeFC4uvg zQ2kk;HHgW#-h`vXf%~ZR%+lEvKZ5OdTg!r}|AS-i?J6Afh08)|fHYlE3TJoC8eDMw zlGQQ^SEhPN1E0Cv=dMtK=5K@vqziUgRWwdudYwStu zX70vtWXbJ&OYM|S-3s+x(Y&lIjZ-FEe%QK{hrb0B9qpmI-(aQ^5w{LENId6gC}V(* z6yCQsCwHShU&bD51Q!*bE7HUkR~@F{!C%|a^r>H^f6Y2z@DLO$md^Iob?x-CrKZW6 z)`p#tOgJ*-Z-30W=m(DU!>{9zj|~v=qKu9^%}K_3C+^Gh73oY?Jb0x@8C0liu$S{0 z*18lB^z9=yCL)aPPb%2t`S9Q@UT}@!q;HwKH(HSfO8mCa9O~0@W~1ZLY$i}bTbVI0 z*XEbQk8#kyHMn+=ZL;HOJgdm`I5D6nam6cZDr3@_D`Fe~ZGWZzaVpb;Y~UhDpDD}v@j1O;Opn_(*S1FZYi)&{sZA(SG?e0@BD|scc^#?1zGsnrTbXe-_>rF z0H2~GTIxQ)5gc_NMUaor102~Y=Mf!o0{ovEex3SzNTjgZEi1Nv;XVaGsCXX|5UX-4 zgzaCvPm6u6atjOCF4>2}zE-~F!gf%(rN(wpzU9NNQ@I6ThgEolM5a}EL_~_Kcgu_* zstYKMxTq5r?}K6gtAJCvWx)Pd{znd^;J=lhmK25|L_}_>3y6;>0&+|D=>WOK`|toi zrI7=50jZH9bpbJuet(f~%#V$#+7J^7Ti%`*S)*=SurCDQQgdR)epYtk#&%a}h=`0) z-vo{jsc$Mua$~otHsnUSf!KRV9Bi8kZSfInfTqeVKR{E}2@{*XygeZDZv_a(X9Jn| z^P(fh|8esrM#KPt>J0h&x*!^VUUozPpj&QPDpp(=0pjuT%gf95@d3xGtYMLS0CNzX zKd3aatUgs-m>P)>@KIM+Q<0RU`md2cf(4*fQ&E&;#g+t7`LxBx5ZDLhwD}+y-=uuJ zj65!KUcJ5Izcjurps^fxIZSdM_xKxH22(lok4`XF8xhkLF~;t(>J<0(mbuaDkgX}* z_ddR<>G_^(z1Q54O{A`jtbl;6DQiz@edO>n5TK7eZ7@(Zc#E9%w|?@a70i)yX?o*yw?i9cJYs;UZOkD zaoa;Xz=cfg!C-ogYGI)Wj=ZycxcB&*kR;4`mjWYnP#~H%o04^+BVV{$!@mz>-QFA2 zwA|}6woEfMv`#E*Z^Y|;&(ip=J*%I@-?XT(_PG+oY^9e^?| zvT;O`SJm12TSI5VFrpDK|Aeq)7=WUY-->WpA#zmPxUQ-Nv}>p;U%@o~_Gle_^e=<7 zDW5y-IXE5Kna4TY>TL1!_YVKKt3(_&@o{HwHtSI?nv22p4?WLtBkwSzBXK10UtWu$ zpqc7S^Wj9(^YeBw21d3A6orDB(B35+b9bc!U7&=~e0FT6_r*`YL+zkvQ@y0_5(KhC zmBA~b`zYKf1^T1;NZwEl;6UYJzUS;x4(xcTjop#C27-)x3#dE{AF&&)z&^D1j9rsJ zVRRpf8?pgd5bm&jt$;TcHb(*ViE+0uA~?}`T6{SVC{DgDz%Dp0 zbX&^yq+Jvc;9yVjM`Ug*iz5QHKo5QevznqkBtPm0BM5iM0^ts>7}ex2L<6#cSs)dE zQ^pZ;;1OyPJ{6sTN?UABv_5^8FYsp|SD+*mB77heB3vz1y3(91OWc3N2N6n3a!X1} z(sG*i&>u_#gn@j4Yfw#a5Ky1nqAl~U?*Ae3bp!GL!{i5A2Lb|R1J9rq;Yu+);7ifu zsmn>zC6pDFrIclr#gyfhC3eYZDbroef!@v%^t{J` zN@q@w{8_wSuVV~9ze_QH<;+j!aeBQvfU*QdX~HHCcV(cr$@7!`b`N)79A2;fxIOP$ zpoS%&BBO`9JWw|~pccjRlV8)PM@pbtC(sI}PLG5^-6%yHe%65+r=|2dJQ>{DR_8 zL0vb&ko3*&9z5gwyb}k-U9-Qu7=n^{?z_a^gq<3PL-#X+SBr<3cST={ujbxJf7zXJ z;R=VtygBZ>zE$qKxW5FiW1#AyH>uAZP)Y$xjeIHk#COIWK-H+ArC}dq-nl?a|LRRZ zW&JD2=tbb)R~xfaX>-tay8iOd)$ZNgfWW`5Hl|N{b#$l3=HPmvr$VDSvt|Tv3iDnI27c{W(c^zrOl4 zCspp`C0-dmOJ7lCE@#zJQd#;n{+ym9pWd6?^t&@WEE2Y_V)c=JktjoTSXd$vk zbsfo{xywXa*QuZ0&G_Ke2+-}2J;^d-xXiN6+z;GGyF6URQ)Tw7XsZEp8O3$;(_B0m zwO#-9?%hQs9D>5PA<%o^$-N*Y9{9pfInm~;{tMx2fz11$a6<@mB2YC*s0WvL5C}iz zMVkkC^x$aoerPIi5)TaFmL%bp%;A=(;pM0jONiv>;OIcoLXcN)AtC`X>Xm}Rb3wp8 zsCUq|d!x-CkQRbACN40X7#v*?iF_TLd>w_{3r(UKS>gdK{L~L^UK4Hp8```tY2h@; zzZaEw{uO=&gT4h#z79pc4*CaTO1OeN{hw$m+~KF7re0|Cd}#BGq=igq^SWsB_-OOz z<^EcdAOE^QNnp4=VDK4R1$77Q@#awll{wDKLuaW=u5kM@+{@i*sme~Jjw#a1&1k7= zpj-<_qQ}c_sp`JS&@RTy&2XuTQKgPcx(6WDvySy>ZL(B_tWvik-Q%UOROM0x;vXKZ z4VJ2!iinXV1kdBV9?r|9Eu;i>2_7vKma=-wxvPq{t0TRd*v_ZVR2&qeyqsj0qLPZX z>EpbrdCnUO%f|#%;;^N9ILXc{oK%>xC3-lx&P!NTn2)4;l5rjvPRr9aK^du@WXwm^ zpG$H&q=hP^pR3c`U(xh8|2Z6&l%l<#dIwvUD46z`EUVmcqwT2m&?F67{t3mKy1etw+SJaq> zjcut5*|SH&se@bZj#kLY_|u z@}3dMjaUc{qCqIV$Z!@8d+dR%<@L8A{xUIt`v%b|!(YfdjoFAoV)GD`r*Z!Zy&j!d z`@cP*{@=v%|9cewU$FfD?(zTSaR1+6`K;WW9RHbk!phdw%o&v08o8QDn3*`3nvpWg zo7r2qT9Weeu>UVH%ii7|YLahX7RTB8>(q9c+Y8i`G{`Yxx(GFM5GkeHOqz$9ECZUl z>&{^i&`=KQT2SN&oxdahMs{{?e-rHaMR&S@-CYol5QPJU5Ljpfjjf`>_uV{k<*CY# zGt*Ect3!t*5O+1Fy*bLT$ySzb|51S}nn6!L)D%zXOa14$ahgDhBzTIAT<=nngd z9_e2sG;fE;_sS4c=5;V<7!l9MMylVbInvh<`{0`ig~%O`|K9$3NE}Db8=+$xc&I#@%p3(q!yHQ}uH%mOndYGp zs%t*WK-31fLLwO^zOoEjh{52=dx{v?R`^VnvgzRK$;@{LjAX+R04?8EQ;QPG?~HFr z&o$eXIMLF=y~V-~aTCI^ykDCk8PumVpc^IYQ2dTcS^~{PQnUCK&GVvuRfp!i5*QX5 zeOwr&c~n^RJXm1?Y{)kR7;=K3grG3I13xk9#?H5kgDc$+L>o#gr?X&b@GX-rwlIDAZ$V0Fu%%eNAs$i6)G((=%PIH+jL1Ed17}n` zWQK5*16>J7+J56HDePk-hTkmEE!xpuQ&L3VL_|?w;J)IpKlm615EvvFLmzR=evn(U zV#=|iYG@-trx`Pt7vV>#gn2C)!KCKzd?mhlzN;z6hXmld-ev=6hZvT`UPGjyCCi75 z8L;XR)Q}2z+ad`e)o)Z?^4FYY}=A76_XA(RB)QX-?v<|0%l>o78c7OJ#<0po?5!Z16G2}3n@t&4`vf)=>t(pkvX()8vFEaA|G#?^Y zz8eHw3W^cm5{m@y8SQG&2U#a#WzQ5$CMYZB|8R|J7yzV@62V<4qD1ch1&&KP*xp?XH5gA!MMbc-wu@a( z#~1=yUBeMMH%>Q1=B3Pvt#sruJmsXlpF+J7_|M3;oTfFpnG?p3_x&phT%lhy4Ixvb z-!6vb4v`o@^PONO;-Zt1t8$#elRCGa@vpn zq{Kk{heY2XyB@c!4Nak{^6R#IDCbbN73+ux@CDA>j)7Po&%r{{6}2@)Jak~0VrYVc z7J{W-gzvqUmifFUJubp~HAGEF^(@-)q{fI1%Ih&Ky55GwYEz z(1xR4;&C}F{+L`KB__nOYDawQmRv8ML2Pq9c99+m^uvv0EgurT0c=w<-6`pov065A z7*0Q4fbFxwB{^~CiXaM+?aXJLO}mynL<%HgljB!8azAq!jg*+9xJ&;+k zKFExbB8efJn=oFDRq==km=bW#`7V4vvN$AZ@#Wjl;b?X|n0-O~1V#^wVW}$FQ^8J* zHHRw}`InBBcpsG=y1QxA?}3i_91oZsboL1<%yCZBZygEM)b2?Nrp%sM*@e)}(K97w zB{~b_pkEf1nUZNH9`8sv+H9`oa?c;!uC9E_?)g(k?8l%s!}T1wuZF}eMd_dRAboxn z@hEaoMoJ`E7NXH)$lH^0$7fCC9ID(=dPX+Kw@qvu^1Md-DD+YZt12rqwy4r5lvFH9 z;w=6>?RgOGjJqmwSY$p$RZUC=coq++<{qY<7fUW!TLm?Xt^V32rfNLvB&60=>G8QvUq9 zVXlioO@W>JH=4@@M%9RBZ1;Iv-i%(!9Wj{F0x5jCd+;|(9dQS8#^yTnj-Nb4inW7y zYYNvTb#v1XghWg+R3)Yu$8(|uYt6TJi(q$$2B-1g^IIMmt>{y2kPpqhbZta1(Y;mf z8ab4oWE^(I&uHf-;&$T+fr&D(zGC=Fh2v3oa51QgXQBf1jO5%#^o-!-{!4Wf#Ln2B z_*E)WjpNT4K@xRhh|a}vx3E(s*F})4M#!HM)`uDGh--&ZK9PO%Va0x#(CeS;Pu-cKn&Xln-{%POy|D851Xun3AlV^myw!^oX zpm#yja|pc}uwi0k1afo`J?~4=$^G0ntR6N_roi0zG4K;gg*0ZwSbMiW#S|qYTEPPh zb=QwWbkuoDN}zTWqC4c99UiiADRt)3zM6<%kqdcgW1kUbRs{3~v1vV|_O!hOn$kYy z$^o#k@*ajEn22N-u0xeQ@oF*J6puqhI6vuhbo&H{)M_|z_LesnnnkP$68u$AUQ9@D z>@x&PKT_Rx&{aPGGd+&k38Scl%hcUal3-27icHfo))>M&kXMG%yulMU4Ckg@F$j?-3GBQ<~JW`nz8%~FaJ1_x6m^-ZuTiv(v6l1@Htb6ja;~+Q^+2C&LVWyeNGmhJ?oKO zsV%iBTp8{ru8EkF)UgC^rod}a;^<87|Hk~CM5B9hek`RiHZ7N)rEg^*TDQm))hT4& z^5nNAwfHv`^-T0~pj@1lZc7fp($M5n1nf=^q$;s~{!-2bX^Z@(<5 zaqoCYLT@RVI=}9eak@96^7He%+jV?--lfe5=Lm_LC-8os=_P{ld?yGiMgHj(5nivX zFEN}Mo!ZWGX-a__^+y}DM`Bnqnv-IlJYsUf^e}MhH+Wa=qqwYSHjo8mFGM?sZ1NL; zz{nvixr+U8PSk0E`m~{*@k9H&Lzi~`C|L4KO-q)n3gy$7@Q4xvuk{|4V;;UW;#n)7 zD{B0V;UOVFq@p51BXjq>z_7mpL7YNuoDJsh?xIkeP#bs4pVscDhRc2Si!rP($Y%2{ z$ei=5S#@!GHhu#>Y)8e9@{vXsOZQGo#8wM7E#9_tw_JLW+o|N}l}ZgjsV+Jh5*uP1 zIpd(=#*{itAEW7Dd~$DSJJY!Qm>!KhtMCJ-(r{rn-|c_Z^6hL};mb)_4^sU(DPSGW9f=!_ zI`-pY?vL&L+*Cl&yA`~m`%F9;uXrd@@6@I2@;MXUpg233Vb!u#3!l!j8j6DKzrT=W zd7G|7HK>Uz?bkbN{`L=;%!0c1JB=lzb)A>TTQn9^9|u7J?Y<;Fy(7;Lh;cO)_)vj# z7nr;%i!i9Xs}!q}RC?X-@4B|6?--A`(XMP~Cy^YZxW*R=2_G02Tx;92rDqndc*v=y z5KYGW8A|gVp2?0*?$opD-t3+so|b;S6+=r##F=Zik!RTV%8T|&--JDUkd|;UW2inrM$PC5ppr~`wrYN`>VPn+)`3_(esV5?a?rUkOPQ;M8OVoF{X}D z1M#GKt&3yv@)n*Hpe=~8y|&lSKjfmirr7{8^{;oUY`xlvd&O^JqA)3i!PPk;@c*qi zoiW8xyqPQ?qBLg2vfkQTE>3o*ep#?& z#A#1r+MmS#ZBJ;LmmkJ6XDXUc)Vf@r7pK zr}kLWwpD8D>t?Pt-3$x+=X-Zm&HaYbi$U&=Sx#o(fTEkgRpvpbb6*Ey1beUp#4!`) z4Cxh2wlPQRof-zhswUdXG3VVcs@78(Z?VAXsYN68Xod~DQA>y%s&OHlHrs&kx#Nh) zFlzS>Ps`(wtIUse+(hKmpfMF9ke`=qg|R>A&6JI&8a6=kDEjsyqe zW--{;ahXK((wcEkMQM_fnlzb+#k9`5VWSFf=TLoC6S{SR(MX#)? zlbxW5Uql|IFWHiScV-zK4RFSmG%FTYaAvfn1X6^HSgKCcOCj{IQuIhDIAN!iPt+Rs zLTJd+S5&HuDcyi(*2+=zm+F*_tTb5EXh&GajYAVnP%g5LQqNH?nmS(DMJZwJVXSAe z9DI!#Ky+-WlAYMa#qfY5^<|t zo`}jbEl#WC#Pp$RS`IJ#{mTls?EbcrdiqcmVn>WBr8bt?ORaJc%P#Xw&oOxn=w4n? zT#2Y9NZjJ@PfXrPt})4oOZFDTzK{l8G1)R#3`OToGWt(l^@t?ZYC^`H?-jn6;&cS` z$;;MR25`>l)9vj7xfc(#tf)?!-JCF}T@=M}%Dg>FCNmPY$^Cfcl^?IJl%nZaYfV>J zQYb%3F4ocdTobEY2i5abG0KttwKi94F%QpPf`Sn_YsYDHtZ<7ofsPt3DxPgD*Dpww z*`>d&bkUbMMRWWDnI*`6%Pgz&@W9pOQ! zT4eybtgP0SL`WNP>RgSr_tG8JO3G>Pc~i)-lYA?aOJ%J@S5hZY`!pU?UwO)=+*#qo ziyhn2@;RgbefSB-%|t&W)Fz|^^vk5Nu_@z~BQ%DdF^wD|G%uu`$_0c_r5FTYnr>Xz zS5mCLYN#DCurW|U$N02Xu-vfaWfCke`;S z1k+bRo%yh)#xP&h(M%NWi8C)8bphDhJe_i@D8 zW=XT&+|_s)d4ZX_rxzp+WjeBEuR@F(>i%cHFL3 zdKbE6@giw_EpJ*a6^(jStB$ln#;-Bry9j4#TSg@Tcm3*Vi%07J97p!t+Ow^jr&OJ{2<;k{h_s2RL~qu{r_(*)l#uclk> z&LX4gh#d+o^(u>B04ipX^lg#qa&e3*L1mSCW~ue!sCt*W!aBCKc*}kk@f~TO3hc{F zMJIs5z=O9MXs~<6St6$b%$TiM;INNfXECgJpifDOl%;;jR;((t1|`3v0n2|Y_dQK~ z#&d7gd^gW4`ziC(poQ%;HMEY^%+;4WJ)AW>yTiI?S82cN6H&jaYeRx-iBS1zC=ygm zm8+`9=q-1S-AEm1;&|z6wD?$X2RU3=i|e6Kq1~b6P3!JEzg1alWK#Rkb)}GwxS~`- z`s`?{oT+eHHGsQ_;NjocNry!AF{ufbEF3rksLhJW72Q&nj}8@ahrB=c@Xp8v!a11A ztrv#JYG$4}G*1`&O2d_MXeg_3nj#f~`FiCfXoNC3+!CZqfE@s8=Yxsiiv8Yv1%jcR zG9ZCkMfrAwP+3Zxrn>I8Uc2DYxIOV20~!X7XzGY}W_vKuxj4$vXznvBuU(rdM`LKB z5g}aEV5=dToIFFXAW6bQ8Mj2@=_vD&)$B_sdbVKRHgfxfs4Cnn_aRc^r;sZYt9gb| zp|t22#!cIiISsGF3XPWt5hxFi4HV5O-sJ@jC;|hbtrCf#s3&4m5{Zx#iDrR6FOn}j z^cwHA;3&Ix0f|Izi9}gc{Oi2Z=M-z1SYZ{r7<72_C8o;5GC&?issJD`em6cbo{q{W zJ2}`&6=OvX_=kZ?l>U&Xs#8RND!87?wJl^kv> z23Ksie@GQVoeo@mA(YN=Vsmpfr^U03GDt?9ygVSN1z0?Ro27vU#1lkjCw!1wN8g`| zJwE+YJq@ijci<6AJf`SHh#{yLw`lT!tEu`~vLLaMptRBOYTT97YC>W+X0?vOXjgXm zKr1L4H%Ad(5S9Q$rN|>5|_DP~49lJl1&VQhILzjO* zgAfezfb{@(?rO%Aksrz`oFXJb=kRfMI!o9h`waFr+r9I7-$F z4e?BrV=m~A2 za&FF_>zR{ZTa*Db?FH;sgnTFFt1Hdud``NQyRqOFJmVHnEz6qlIFPmz();085Z502 z{3mkU`CiV!O=r}osV6qd<`C2D9RT#QUTynRtbfq)y9h1f7-0> zBpzw-IL_*&{wG zmkgO};Rg+};X-}Tp&?Q!%)Z^(GSPWUe5hct5u#N&4YK`0ycGUhB237kN6^w52elpt zRiPErE)J0!*LNXu`cl$Rz66l02+WDEPvUF1HjazPP2E~p>HuXam)pGE2qiQ(ZFoL{)GM_g##QeC9LuLgI=P$6ax@sJ2BMRm2sJ^|tsV22ZR~j{!T&CvxMkLh7iyYz>Tg}S^)gph$|PiN4+`esZKW4$UQYe{ zr%^h5dmkkcHj|M1-aPAodV_XMKkLU*DDLVCtl55ylf0{vTXbuU8y4s>ardLB;M(zc zo5A04L?H69Nh>eR`cEDKvgSU!$f7(2TDP?zHY+EjTmfDh8FSA?Hv%`%u(>TXgH$Gi zlOOf3dq8*q&S6TfYX)W94t{5zaE8C(UYw zW$h5w+3K=#G}wu%Ej9Qhi`b8wlv?o;is_Zs`XLgWX@$+z%F~a@FmASmnFn+lZU=R@ zoEXk&-=`nTT@~WR+Y@I`x> zGRDsq!j1d-IAluUcxex-68AORJrAB+&M%eQ39)(vDW64Tm|}dUkKXP^uWe$&MKa^% zqQcRf+4h`c9)0B^3I07{vjGv#L*#uE7u3v^bb(GLx|#7n+kRrQCYpwT$#RO|@M%re zP0KcT^hAg(w1xyMGPWa&gsJ-Rb^C-Cu_Ot<)P@k#=t~2((I?}+oqKONyMi(C%&>n| zldmS#vY^P{lB#0W9+Nc&#GM5CnB~u#dq(%8hjX3ono5n2+I8cWb&YBc6y`7NpS%{R z?%3Rg-NjR@+E+D<_V`yshWnL(C+;|We;q|;1Dh^41FlakYJypsuIRt`Dfjdjgfqk= zZbyzF7G{j6InfCm@&s#iB?4@+N~w;lpim2H*ne(=hbPkHK<$4cqvHcMx+>JC)gK%y1Ns7L^O zV=J0df3d0?E{&{e8)?~*ldgn>_D$M}zg0WqzLqHDSHY?cjhymzn!2|Yp2l>E*JF#0#~LxJn6G12S1gs>koF%Oxj{S2V%Xd_rZiWaD+Z;uvD9#@ z5Prd<-at#M@Z<;xp5g#iYPQ{YHp)*N=&)oeGp}j;FbNkz^fy9jb<+m%GRB{-)9243 z@Ao3)-IkR92YYWB71y@)dE@TxF2Sv^;O_43?ryEjTFx1cJMV0Kp|_aM!ML zZuisYO5eWEmmcpsMyS2^SZgk++Ha@3 zJ%6#p>F5dOHpjnnkvxX_02?O;=zzdBUxe+a0zSiVnJ=kCg=as%_w8>iObX$ACq5PeJE-$;@@5=jkPm=qIaHrK0$VIDKZNeT;u ztDQA*5yV4z!&#^fPi`PVDya2OZph;_a}mTQ9|JyOxspgX&JiTe90TY~Q690dVe{TI zEoQ!vU^wcrjI$!mqT2Wdit*}+bUQ}A<0uFWtsxxR(z^0lYcZ{rA6c-rk0GkIK zIbN^q$GLIQ+_b-OQ5^bq?4j8=B`kwl-ZZ5a>#(?&73zLNXpO{&jC;&AKG=GU^Rp-= z5ZDeiDS`VK*IhBCeEv$+pz*YhaEycZ0T>t~RcTdd&SBl8qQ4kCGzIJgQ4B(#D;NhKh7n=C-kyp7wsk-3W;E77@2 z94is&#{>)8c-|<)uE-8UtDyAOZL+7(*6l=4Jn29e)LNw0@f#jNE#JK4bMG5bqQz@nKT zP^78Pm*lo7@r-w62yGM5(K7Ok=A|EPlL4}D@c9^{;47UsLhw-G5~U;NnV#S<+9v-~ z1Zh}I9Nogw!vb6FXB|wZ3FUDWB4L!I%)ryt>tSk z6V#U&x*N7mptUzdeMtmq51FGC{25$ZBeXB}R5SEqEQLVGr|D5N)4~uJ3ju);pED@% z>743E;H4B%mxDb=gz#F`=7xRU*HL=WocXoD9)^o1mE{yr0peeA`aXIcNsTk$F~ zd|>h%xpx)(dXo3D;PF3io9tX| zQ&o_kCeJ0t<^>soTSD#+jbN*H^4t$8WtUg<@dNUw;L!v4m)yBm@UiXw5d0wgECPPJ z1>xsz{y&cI9uE$$_x#Vn5Kq(divJR=`)}y-iv9V;B<5~s=BT9kC*5Y_K>?s(6Z5dJ za`vR)XXj?+!Chg+vDK75fOJP94!ove#<>qGR<)dKX z;smhrvh%WYQE;-evr}-ebMgPrE~CHA0RwneoD^LAJpZi7%k!Tq^78zXBJV#sK*P)2 z)6W%*_DRS|{_#mQ!41woTbeF1a*|4BuHXx@1iQx0)9+8ShMx!63v$lZE);@-Z0c4v zb{?MYeiU!SEM3g47%13O+%2u#?VN2W-u$m=V55eYtE;1x(;psY2h*f%I$&pTQE>24 zaPso9@^Nv3y}-dw!O26x&CSEg!Oh79pa6S8Qip<<`;YN|-1R>MU%}4!4;6Yj!CnK; z1AjCtGbbe9Jfq|Z`+f?Xh+E+Sqe*7Cc(Y~JFm_7>%Ng>VNodO}I%)vpAoInIl#<52 z_~u+d!mXj*s;9~tqEfp(X?X&6&U1XVr^{qCESx}&B*q2;0FIbGhr$mv>`QE*VOi7QdC zDZ98knK}O5j^O3KNO*{>ns^zOq3gz>oEuQ3(D7uDgL=;pXuDtGeDEwJ- z%HcW0;k*=3c)9{#9qzV2T}_=iZN!z9)ZOr)`ioH-ng|Dya;nRYzKLNd39U#xopam1 zW$PQe&HM5s(7A-lw(dtY3WNx;yY=hAa|xutDqa1)i3@RgYIl1ZlEz?2{YGs0IolYr zGC_zIIt;`Aw8$^2T@vR=D3*f@$eD ziaX3qR$X7)sR=L#A-unU5;R&?z2%`$K-W@IYp1A3U1L{i*0$FYciX`ODjkNqmbq~p zUPi!Th7{2^*?T`Q+Wr2T8X-0uTLF#zEgLi1@>GtE7-8fMA>=S=$W{|@Z+7F?VB!fKugjQ8R4tgiZ&y!BA^c8(v!{!9BfCnKX3?dC7a2WvDv(&-O*=-K6Z z_B>&ty1#Jr0n$lAx<=)bLH9i9%|R&`wwb(AOa;fB)8 z%=;q0wt8Hx8>87j$%5Dn(%u(cx{<+P!1loQoI*aKhOmvnZWoOJnDwRj0QN~UN6Pyd zp^!aA<@POxg(XP#0oUaaW)l{CA@~r?zX;6N30@r&Axnh@_1?$Jr)y2$G{Kx4&|1fX#=@sW-5Y@QMPg6w^wX#8;0wqjcc?H z(-zudRPB_U=w*hLPNHc(v8dGJ)Hlj&W>w*#Nx_+!yCpB!=5}oeX$ZkA)s5NkdAH)! zfN7}$U4AvrU~du2($764Dy6ukX7%l$F>ON6dqixg5H8I<#%4gAA*3Q}w(jEXPajxL zRL)fD`eUP*aryPW>5n0F5sAD9*u~F=)6Cb)Yej_EWW=zrTmo5(_Z{><6lEas81E2r zx{QQpMH{0^49;hqG(kJLO|=+8u7rVjxA;l5Z`PtLS1+_^j;vQ6wOYb6vS4YuNi(U!ZY)ZkI5NWE1Rzt6+-z%WUp0Jfc9(egSKmS z6*qQy5d?YQH=%PUmyWdXvJCUlUhQ7;uORq(kioZ2=2py0X8C`!{J&ZL-z@)cmj5@)|C{Ci&GP?d`G2$gzghm@EdOto|2ND3o8|w_^8aS} zf3y6*S^nQF|8JK6H_QK<<^Rp{|7Q7rv;4nV{@*PBZ)rBe#FE{QnJ> z|6j(!{1JfhKf^r!c&NZZDgWn9^q;f*f9~9WV)_5PtN*aY{}Qh9?^*u;FuH?-i9vazYjDs~;3_7pCe!m*aRl25vuwkLl~=7biX2of+$7a(^Xv_~=tygA6KiX;lRO;2lx-Xr zj67Yt7FN;EleW(KzJN%1X89(?m4q-1-T0OTKe#fsVjONmPg&*94Buw)%&IRHt*8wa z_E*_UHnzk-v*dGl99)9t9RohM0zG(GxU*2%;}R`xr(XisT172c)F_3B42c+pK+7SiV<53dvJWu31X+$j-_&DUk6}QsxwUMu;k|HX-eh4Aho5+jr8WJ6f z?iRhJ4pD|dhK(xA3w^tJY&Q2J0pyQYO%S@8=R~{B*u$A&((`~BV#O*2b;fL%ec5ll z*2~VR9pKF?3}iDxZYR+-28k~&23~MHv+xMHuLa->dMcdi=qydv>w;84(=W ze$E@I&k+hB936_Bb#_Vr7>h`b92vUSocLS|pm8@{UY~wTY(fR#2z^V!;f$eyIfr=( zm#hyuBxt+JMAA6hs@8j++r~jFK@dqL+=KNXOB`09DBT1YUBIdZ(hyHxnhy{k)QAQy z2KsLN6z5q}F7R|Io(&TD!nSSNUT9kE$*k3Ao3I87d*I=(B!|yEQo~#3lR>sp98l&o z=h0*^?<7{k=R(|QsEi#XlzMMaoWQ;_D9?#RwMJ#`8Dpn^B8|dp$oo0Fbz%1rc)Pz| zPO07}5`Prw#S^Tu?cwz63w1(3h)_|e;=)g9@42Uu+&vl!#prawrcaq!bo-_TbF-{G zN+7FYwYem!NrjkG|NQU0aCNh*d(zchYH`LCkWy+NBd@Dl)FCka3<%$16vGs@_E%Ue zD{4|^I<7r3R! z1NO|0y<{y4K22>I(DAWv^S`S>YG*qU|GcZs;LH*Lx9X0tuQnFM+NKp3?R4bnRbTG) zjmJ05F=|;WTJUIld?eoyHSdR6_o4FH_*xtW!_m?53yc4Howt#(#tr=8XMEKl$f~NP zbXlilK~1|ZDut1mgW__8E_J?+t7`4nbzB0oy3kfKhF8M zz`q6kH8$^8F5){JskPhSZ$dI3`LWy+ivw)wNK%uMT%{5el@l=KfG{=~t|^}4NuiQh zJ-I~`d>>;zy+LYP``{V24?zZ^B4b+H`rJWQ`}s3Cg{M2Bv4>UZBWn$5hAZ z-gBo=_DfLB=j!t67p>LsXbOnh{jjKwxNKM{4c^l?ki+>9VM?(?%LC35LZS(f2;3}3 zY3K!)4^|=k=E%_ z(30fEPBrP9*+@WvRdUCp57R$@99`}!#vT>6nJJVjtdX%9ik{is05g2j_t`(A zXsXBYfdS|X!T7U3uP4F7oV6!LjsrhAc07w%naM)3e9h*NPAC{JrxAu!H-v{77}rP; zDvo3R7Ox0VVH$|mQVg5VN6g81r4FEf59iqvX+1uqF4VfCqeC7VM}=cfGbr{#&(d_0 zQDh{-Tg0^xi#bF!LLzd)+z#jg@-E9*kmtG2|vCqP7U zT`Ykz0XkPfi@f7!=BIhWS^5va>p*&6j3EPdLtxq$v%sM^mceg>k?}6E76FknD(vfz z-P3gkXPZ!f5?K5Xu#_#^;^SWp$HQY_ZHJ`xO{XvnW5!%z@htdR`_e&3I@?6G-%dY| zS?K7P(taEyGK@VsBQ{JVcBR(dVyqn`svYoZ%yV!Pa-JWX<XN=|dCR+rw~`>x zNanNYT-&DvBK)+Wy#oB90rKo$-pbL>m?MN+XqF6hy|+K_V`!V`QSc`oZHO*Vu*Jx$8gVZ`=) zX7|1A<d$L$5Og!Fz-7dHk}VuRu4a%(y3ZF+8&YpKaUgxbN`}f^8f3iOgl2 zw6mr{q~GKWHDMe3U9`(NCfWw_6Rydo14%#c9p3sTd%_lt@&|nSXt_iUVL3`Ynn;i= z2gCjMl})0ihD_la9)s&OY2KhJV`+LExf^ z>-TqR{m~7Lq_>{x(kwY#Ne@oM>v-u=iU0+Nfxaaw+c@Nm!R)jAOQLzfCietm%+dY* zjv)WMt3Z|LK~4SQ;|u`_@5kxm z+UsJ+8BZBm=4R9~RNpNL388-1fGACh=K1_*;A6b{E%8ZO3Y5?0Foc{p-O;ILO;J`l z<$zR)OgsjTm8aW`Xedru#mti!_4}C;Iz+gm5xWnsX=1u>GN%g7Rh1MLP(^HtWeD3$ z122cyq8v(TC6wioIcpbCM)vt$B4*q^j8FS+8E@7+Jv33?7IeN1mT#0``IsMkcx0|q zYbYO+XBQ#bolZa^4d290kU70{(T}VLqjzvFn~)^*qY1n84xxQLHD^Pf_cXbAr}lkl zA#Db&W)hNSQAc5Ec5l?JKD#9$lLO?G#Y$*{J9Z1mCT6%asRsh(87p^ zBdggM=dKSOrLLAeRZ-NEQgYfU`BKoZZ@oSI{egUpI%+AgvEXYPs$nZnBrtkg`Z03c z!2LBWIh>xYl0+bIzg>qd*w@JJa);8=!>np7$i8Am4G=JJ6&(v@bpwe%j-iOGAK>6F zZ#^5FUVHK={Z0&=?g6Uy19c!L3rm44=7($DJPE2D?nIU^><3;{78rzpHwGV-VllpA z7v?-^cq^@`g`<~6%B%bm(acd-XXh>3!Du`cIa@1$rX8V$^(@U0ldF%6s?|~a=AbW8 zwKO6U(d2;QCj-toXarq$(&el#Qudw|at|XlI>J}c?R;OYeUu{A?}{dwHKfH-jnEQz zRvjK`K+0k;hBf>&xxJY+fAj6x-lq)ay5OGE+Wb{r&zFe_i?$$59v5-tQPrs^M4u^r z4FOsg|D%2ZvP*cppNzLOR;4s(*G9%Zha?yF-ev=5c{6>S6_Z7;A3Hvs2DruglJMJ> zam`prNWT|cwIH&MPx4iHLLzP~drH#{N8k`yEs$_;N{kgwD_9n}O$su%AlKX9Z#%%n z5^w8ID-@6B=J$_RO~?uqq&bvWt3m$^zFAW6$e;6KV`sT$-945d=C043syff}T>Kx) zjhdUES6Wj?7Zj^>g#$Eig;I4?+^uXdHy1C~Bf1Xs(9u$2!Z$AqmRZLz8lnd0Ktxrp z=4hl+KI&Ac)_K${;%$B@9B(Gg#|52lX&30m(-H_AY$2B1cNa2b+TE=hU+BwCY#ZwE1|0kKpF!Wpb^J0*#HQdIv8I z>{sgscpYirKO2AXc29{A^nGgDV|C1S_u6TyXk$5|IV~-h+OIZTzKy@jUyKbU01kNK z{76Ze#h_GiN}UA~QtjBO=r6n4t;fTev!jqdd3(q2KGR&Pb&$nNc(TL#^P!zK276Mp z;c%hOeo6YuE*Nn3qxd+7X6&(;rsLjrc#RxA2w9#xJKvKc^?jq=JBHa}G@Nk@X#{|< z^|^o;pVnt9kAn5Rbb1%$k1Oq+mRqwj639HC(jD=4ky<+~jdxv3HoS4m)~`eONAQ9z z?6t2C@maghmWYo=+5A>?X0%fab>@u4hCWBU_`q!|MaiHMA8|D#YYc~ldIr><(-idQ zjzgoK%S^N)Vsg%>CLK0bD9a6Cy1~h#2ObM+`d3CR-kz3xLVbkvevIeM+D-(Hw^r3k zztOsi;={tS*}pY>BtB91!6dEmXyIDQ{z>wS1f%2Y*=9;f7kLtT^y5z9a7#45)W;Tp zj+%1ZR-P9HNxd*-ApTMe3QbBK znSr`=c}U!Hzy2el2dZ^Z+Q%-O&u41_rZ&h^qexl5=*9h$$JIaYt6$;jKB4q09}iUiMq<8x^Bh#e3gN~O|Uvz>ee28K8MB>`=^gch^WNsZmX z{u~Q^92POLvlF8PYu!4$M9_(kyel@d{n^~3mM%ucbYv@y?03s!H5oSX`P}F8RxLIv z*MZb0SOFYFIt?}+WJ_(U9E%)$keE$@2JXECR`if?x4&*^$}E)#1$S)S3-mt9MPZcC zn^|lvNK(%DkB_@ZGtkmj+;pHHJS&%viJM?Ur+vLhDxuWom~j-s<2-Wcu6(cUil4q8 zyKb)vw~I!Yuk6Dac!Ner`EqyyP#q?C6Vm~waxvk=Z0k3^7i_+Oi;w7$}J^r#>3e`O=GpdYBcQ zvSle5wgqvwZ{Zi*wI8YK=Ib7Jw9m0oOXjZ}X*+TaSHAg`x%tErRY=M+mJG2`R>#TjFeWy&{ezgh#?&)KCvZ-s+B>M`_f zo9A9Kpn)Xk6kDzZFY#Zk0hq&X)@pGoAWa(c(o+_dPTPbU?(8^EKU`egG`!5X+}u2I z`6i^8*k-O<++R!|0+qq(J(-(ZK%k-)zBWiW%Q#Y1#k7kq8JWcA&HFX0`Y3pnR_7p9 z(6uEa!r(33HJPP(-5RvQVTj@|!#RzR5R(AQ?CrtLRm*(Z@*M)EP#cT_IRgM=t`_{q zb9UnkPG&}0oQ29|id$ol)d|C7g4Z!amw%YC2!EPs(^Uit%rncr5z7L8>Wk=ie4NIZ zXJq>n_KbZA_MI!?w+|m2c(|?5r{u}gHTXRA%T|80efo5FTt5&_U*G9{8iN?-T5l^@ zqnWQL12Ri>t+BZ|oJ^p_Z~eq#jHBQwH%oO8aOU!#$u5Fs$#~XGbWe_r=$SU! zs2~LK-p@Uq%Hfd_mtWla`vb0C#}{?P;bqFziX-RYZ`c{~v>Tp3_eR{ctR2c~lZyb@{$T8Pu}+*VuOL}4gwewe5C?>^4w6Tq} zP^+~yj_RvD`SKx!&~g0@a;n6+j+{o2Z42Gw7wUYg-DODE$}y-KpSpZ_5DBrB&NNEylPO9ra^K&`=0|NL zNgWG<(LBI-tdOHdT`A6H0$`IC&dEKx8})||J_%MVXdT(u5ymHw`68`ADk01=b=;@7 z`1_Z|njF-VY32bmwZ1M+H7zLC)u>HQ&7rhEBr0%$s?!+tusy=#mFm(^C(O#4QYH-Y zO)fP@wQ?#bc^0ZqdczpYswpdzH=y34wg%OS+I?3~ch~MQILfp`!5hCi(lYE^Fnr9T@Gml2fi_$V9H%4WpjN5WFf^^y zaF(X^O|Y1KJOBnK*ds(*uF;`S*o*G~GwK^Bs5(e32fv(}w`0q)djkU+pr7-VR>uJ@ zQ(ah$tK&E)n$}KojD9$13xcg2^%0;QwoLeoz%XaOI!l}_y2X9~Cz5N!awvF)R;E@( zIup-F-@tp~&ZBT~@2SGbqRcK5IHEO?Ug32XCmr92HmLu&_l&b|*e|Th^?A#dui{MM zgTeyJM?NK2EybB;TO2McRPH7dJ8dZWnp!{mCr?MukJoqpHjHb_OF=@*jauqH(lJKl zL+V6%YoA}FE2Zz>j`+Y z1xJ!5eP6f_fT7Za8G~L8A6eFaMI$`hZ-<&F%LY)+!8ncVonmfXT_li_6)AMvPjg*) zYP=Vnirw~uQNj$}U0Q;YV7=T|jr*&&;NG*b}@=yF_yI_kNsR zsFC6F7C{Bp-uIgnj7SYuqxiiLFK1M&JBNKSQgXy14T}qsDyH*GcWG z@`7y%$qlLu7870n>W!+A*37NJ>M)n3AW}(zp{y2j^&@$tj25(@+TT%bmvvynkH%8q zP2WQ|l2=M-q!eTA&JAnTCT;zY-#8=_7QPGk{=hBa-29^K+Rqw>rr=4dkJWOAnUmcn zC*%gxg-mGlQ#8cOSfwr+cY4dnn`NeKV6T8Dy%9-2PeH*`sVs0t@gui>nDG_tvZ51= z@UD6MK3DZ8%LOdMoB{4uu_JrSYwT8-OwI(IgpyAK{kp^fx*xL>1V^~Fu#LQuzeJ`f zC8k{aMl^{eXmR1M^VwJ)>Lwx@d>Yv#ue_?(1vbF`%o<1o%vi5F>DvHA8z0x z=tw@LL6c$r6~*ClO0n&RzUDxnlF*QP@e|TSlEP_gP=$A~1TyT(vy`pmPJ^S)r1rjC zyD&V&*nW{X!vf1D9na9Dnp+qA{5%t$+IFt`J^J=yAXm*_&0<+K~>lekl7K5me#4 zaHKtE#v{kYn&wpP9z$GXw96}oGuoY{AwROR3@7T*R64~1qadOt?Q+Cl>*tm4y z?u`0USZTPk@IKCs=$+?TKktvJQw^#vLGCvWWQFSoMXgp!m6t=kCEp9>Yu@_y=yFq9 z^+E{OrcV2wgN*q$BR#mU4rOz^mm9^+sYapxc1MaU!v zJ%x|m8lrjJCyaeE{IcmDH73St;&CsK+3j{8GnQ%iGP;Y*TIg{fH)aAN*|=cHQ~|vk z-=$^^{&_*q8oYBsnJMCW9|Ha#!l{Q};#h~_+U5mM<|k0+$Sx}DBdBw7_twyO`+_l3 z2h=%k#g>@~I^MjX%3OEz3mtQ2o$~NY7;82x*lda&Q)U$aNrD6?b{SZIvtB=FH%%5u8_T6pd_fNqE=;@(vZ$@twg@9NpRCW4Jork2}DBG zhLpLDz3JX{vP%IH1>qDTWQzB|_R`)-f?%M&;IhJfefzvpUij;ZnK_)1Sw`r%*L}Fx zeM;R7ks)=tpVO{Um5ycDrLM4WU41>Tet~zFcYzlN_6RwwOl&jkgWvV+@tzIxuV#^a zmhsX0dbT=xuY0Z|1)G#rt`X_yp-dA4lT?wCFM)6jSzSnV3qo z1JPH3Qpo;p{0y_NknpAdOa_Qf_|kI**%t)7C0w)c{Y3B3i9>nH-Z^oG*O!ap!hUSw zo4Zm3X6YNU83bJCbhHK~nql`z z0|N+8%oclGdHak|jtEaILE)R;z#jz8R-lMYYhW(H0>{d*D|FvAO1Bv(fpR64LoX)D zfpCGd)(iwRR~U~bOd4n-GuDoXP$X8%uxDlfodoNLU!CU&pQ3=DOPx#IP7tz!>4kj zIIF>aC?^GwANOB~C)sQ1Bi2$QIZ@1ptz0=!tW^o%IQR&63U+2@p6NMIEQb#ob);|C z^-$1&jzDIhA`k`W2?PK&fsiN+C?hD|aKz#1Uwf10EiR>RO{gTGBm^Z$!n42jn_9B7 zN1;GLn}t+N{Y>BQ`2I6pd8u<&E?4KR*`@rDlkovPxN3bVFS6V@s|K!`gR6_3vm%bh z2La%wE`x`m6W}CekLqvT$&E-2U^95s&5zF6NA1F^f^YO)4%c$0 zx`DGlz|9PB)9zZ%1>6*_QSo0rObv3mmaEqboUH-(#(;YrujK;jgb!$IRF*BS<=FHC zXHRQ|4`6FlE>_xq9Hth0dMMok8}z`l2M<%d!84V?L(Q(`Fu|5(@PMX=(qG`UO25%N zH9wS+)u?@`(mSWh@!e2OJ9VSCwUI{{6FWgdFYC$eIB1==wxu z@XYbE&*1J)8PaymWon{Cw^!9~_S)frrORsa_zaFGKSWpI(VPhFsGmE)xY7aCyM5q96K3szr>P;QHjj}`JS zJtIAFF>AY@af)iAZ-(DYVDMTyPGATUqE-2~-Z9U-;?rR?p?NvG^snq)+PiV@Iat>H z%#oWaSYFDps{=kP?LBrNwo?|pdW$NQcc0D7)zo*B@$VY5*pzq6th6vx2yT4)Tp1wv z`Bn|yeH0p;Re4#XLw#NT8SrhIJH)XmRd)Tv>87*yPKx6B3j`ucsoz-5t=cLhvgm z30dBro}S*`o}g9I{CtJg{F8*q7ljive=U)>cGVgxv%RFwH%Aps!eZ|k5maHJv>-HR z;nT0gX)B6SuvJIgDtG8BcL+2us5RYj82O>npCHnopc(JU82M4s-@&K9Lr#AOolX)a zk0wrQB0(D*DgOeO{th<%9b))sY{nBL=D?xvC??sw2XcJ6@GLx2hu! zsv|Y3BTT9zW2z&@l{>VRmgt%nRGJq8l{>JNmb{u5f|?g3nitHP7bu!d$c#&f>Bk}R zRH`F$sv{bzBi@xea+Q|E;2a_8o)WY~noYQjek6=bQ0anj>4Het;Rdr-lb;L+@#J_S!xpD`satFL3PvwqwIh@yj(w%272pfghx0B@qIIUCl(Dh> z`zG7>Y|+wpTej~rWvDxuiB>0VJq13@7-7ZR8vv?fOVo^T;_crMeT$f>G$x2Y471fV zC{fENkGEFS_RaYH)9ybQJ_6A>{S?r+`;n znT_?;(AQOoZWk6Wn=KKDU=-(+e~Cl;+#o5Ef(aZx3O#CCe%E8ad z&&k0D)|mb;9cpfNR(@U{?*G!E=HX-I1N_bKzjdg2xcFE(__+QrI@ACzPF4<1K7J0c z4mCR`D<^=5ou7gSti}Ad8V5UA^O}>39l-mC4D%nbDH!PZQ;hmg=Hu__KEA&Q@c!@X z{@b*_16cX~aM0fYtpDVO|H2gipQ}-W6}Y*%DYyartbFVMu*&q`h}0r2YggYG|4FhcvygGETZFVY9RAZ`RxoS+>0b4i^Tt=X1=g ztq^-eT<2qbm>kKzz5B|t?V?;fXZ?Pn{iH3tilU+`^x$S)SZJcJNSkN`ACVeE5 zJSCbP?wfU)QLGR2AE?wRqY9!gWQXFS7!#$A{XA5H16F0ms`P?rDunFFsc;GPN_mm7 zBFNvDo}Lfac-X!(l!>ExUyQoOYi&cUx%mX4ppy{uFCV0T$$8PXEI;{|l%6U$he+_#p!CbUQ~+t3S|mM>9_=Nh=E%OE8`Ow=rN{cTVtb`a9ey zAmE*b6yB@P&o#juI;EU1vvf4PsPW?ZNG#KMp82p-f>^(yTvW0{c8BY3Ufm@< z8Z2uyyy7Wf!KAU5`>x|4WC20;VGy|dP;YGXz$2;;5$EXWSlRmXFcG>Gsi$X|1seu0`V z&QD8wlM}6?BCw*0-I&rZVN>oGFn(d)W8r}Ga=KmyGklDMnGxCT0e>XHwW8V?eflHwTZwo zckwDH5gftFrSDu3JBNcwJR%6&Iac-7xzmNEzbX>&o=Pi%)iwintrhn`D{T9SGe3!MDsx$G1vqRR52R;WJ|>Dw# zRig=Qd$0f&WI3+1I6GztKq`D}$qqz?My%NB5VhwAhO8L4@c~X|NtO)JuLD^jewBS# zfMPJQ8t1?n5W9Cj%+#={NT5#m){5$)Z|2uje9KQv{2K#cGGk!ebJ z7%@cU?PfBL-NyX1bU%*yqN*C^mlYooM%2!Pzf3?_!C+rS)xz9|HIEn&a5}5CwdOj? zX&CLlDFmzVcrxOviF7)S{rnNC_38lm z@y1hG<$xfwBo{D>)_j|ZRlEK*(F;jd-?mksrA1J!zyB$#K3utCP7J=sl0E9VG&uS3 ze4?>Y956>}^FsUP!VbS!z`Xxn!DNS5}OO8B!D5j$B7m4?Hy3BaU z%qw4ci2EfU(+QYrwQF#-Ax`G!UztSuHX%^(FHq%V<>lqYu|mGaK$*#Qn=6Wen@H*q zDCfQuCos9v! zVZwur`S3;+BJJl61S0+gHfK_Da&jmN1n&Jk2JnhWE}X;nY~$-j?p6zj#UHDy15JmM zC?zBbbkZ{=2xjX`cd2-JdGXsJ4w)GL=qI@!o|>AH5l&36ll|r>mGjfBbkz6@-Qp00 zz}KS!zhjua%bXzpmwC(t;~s2Z;CLU`VnTPaM#Cn*=LhIlQKV5iKc>RaS2=67tLa%z@>Xv_)9x7`I3(B4UYDgQoqbijB(>&MI_ zM&dk3y7J>rARz^iqC}TW=!xO<0bN$1NQMq*MsUc1?%;-QJZQE>ZBUtflKw&?!V+9T zIz2bARTP0A+(Uk@V@}2MA<5dEnqO47sLT`Z8Cr;Ll~#nIyR0Sxy8A0G2vudDqQxhge%=B_uH!?YKGcD%h*Dp1x7+H zH}59g7g@5x9NeH!dRBcQNca1VJ7ay^V1}ZA{V9A{GB{gwb0ge4MD9ZE@q&s46e=lb z7jS;zB-DjTY$G~50!T>JW!{J72Y`J4eJp?6uGlq|+u5!w)Ca<6ZTaL`+CqRhV_KMc zYKyKui&GMhY;IYJdrqg0bqQBUpxtwl0WxM###Mjf^H_wHWsKP!Vcp(RW zo|~3y&xR6NamLw=5afugF#UORVQo`tvH_1pnYe!G*bF|{pXz9jw3`ZV0Zx8S+eJ@hOa5bfhT>ayF%>Wv8@s#Fm+PtN~Vqg31N7Y^mf)A{inJns&zD-c@qj z)=#f}Ky~Pzj-QX8QCd)%(K=c^#N;Da%y^J7DipH+)S7hk5DQ1jRRPn(J?yfmNhXg)#DeU{3i?**7ECuh+Tcv!sPKVSCp{_U+j~lqG*p@h&$*$p5t@w7 zH;FSa8yP1<&9mn2q&#!(J!knrr02=eI}Ekbv?G-3vM5;jQD{4IjZRW_=n_ z0<56X6oNBMiUJOrXJPKstQqb4aY1OGOgTCrnYbbESvc{rvO`hYk$pDx8DzY-S!;W- zG%1MO9|3YIh6(T-0>8&{r>wueK=+rqSYqB@RCmSj! zD~mEI-75YthGVy%RB(W%h^+VcXO+s~`uXUqP4a8Kc!uF{Z_`=QiTri6bo95+HB|V16rexj9#IVd7ewH#f27le%f+Jb6uQMcVZZki$+}V zjpd)TjN|U#_tKANRtp<+7bG*+(bxwQ*09NX3=E$V!l_n2P6F;A%VyD%`~h zZfgaDeb2yH4kySsF}znqNnZTJiundsQ4|+>~Q)l=q&slz;;z@4tk} z+Y7E18p&40tG5tl)c2^7(FYcnrz{&AUf<7u4fl)Mm)BzXWEy9iI6P`dR!%lW6^m8A z5|~AzD(B>?*~aoesC&mCN#1tdceMvV#e!K!sdN zNDtP+2cVS@yxq}gg9`z3e~pUeBUXufl`9LCz56;4=*k>|C``?S<(7k;U&(zT0?7=O zB`1jy(3x5`x@#0uGIu+L9t4|@nHJ@{pw{wf&2;Iw4aLezl#FRBOEP{#{-)VhmWrgn z!mYGGK}iH^Rwy&@;7epsA}5@1*}tPSQ~gK;nkt3Pfa`-GU+v(V!5Q@L)r%1|RXJ3f zUP+TPs}TK-S@vr&NPXNY+TbRD<7Df2OCWsA(&H!TMAN2)>TnfQSyGw^0|n)LKYOm6 zH)TP@*x%FU=I{LHiJKToq%VFr&P~&Mk02O+>Zz6adQPfK2`0u(3JDD!BWdK7K6NIm z6MV&>a!X2Jt7N%_%*4G*zDAP?e8s@e|B?SZs1LIQ4@L2(^>_aBi%g#!;eYakx>=MRwL_@4I=D7%zc3BWy?txgV4_=RWO2odQ5g{OFBHP??z< z`@0o$gnNK{fh!nZ(wS(dpqce&K?OL1#0*z3ETpqBFi8ewpU&JI`=Z%3EVf95Sd%Wz zPD2uxTB>*O6$Tkv1X`Q%101So8oD8xAE6cs9U4s1Z6~#yQ{`tSYFM&p|7v(|1kfTQJZlYn~?boQHtFh+yxM7PqZdNbMYykUU6ifeLycCn|xh zQ%r6jmQcqhrsXIo=9d^r^jtJimYGQOR8EvCe`IN7v66_Mr*bj&R93-AL$xShubHSi zCjuGESo;T)swNJ54!n6q-M#?yHTVL#k#7T(5S0!hYR57(gcseED_yy&nRJ|Erxn+F zWL+Ged#msr_T>Z+uC8a#4{%&-n)nNU_a)b<{!*Mc%%K^Wj$CBsQI1EztqV%jHCAo-ecg8nOc zEAB53k<8R0&Dn#JL}T-`s%6`O2P2To1fhhnaEQ5mnm`i=))49P(jQm6k(OXcGZlvn zZv<5$2AM_#IxP;_BnfFW5to5iBPLT3mthv0;U?o?(7r!_85hsnm5||AE+)eyE@Ks! zalDIV{&(L@Q7dUTyg;cUPJv%PNx@D*0w`Vqua~&+JA-#G5jkjm0dhsMLXEhDugZwM z#JoE|S>byZa}7$7!48S(9Q_{o2jC4f+v=OcF; zS>qm00vfdA_=zYG7WxNW#0n;nvlXp!BC-NdXkOVbqU_9EJ+-{1igqPW=($9r^*Oo0 zLUHnkkL5j(%gxZ9*e?VSF8Ye@9$Z!fI~$-#&Cwbf!d+$w?;*IQ;QFQD@Y8Vw5V!-> z@8MZ8hnwdG*~H=aMd4-zYi6Ea@MZa;&}N_bPu}jm)sFe$Jz{VIQoFzfw(_rPv7K}^ zb@*k9`Mdz~1BnR23g_|zX&FdGwvFDLBa7tj#Ng2-)(RX$c&ZY%V-Tw=1Lt59uu}uz3QWyAmyk;g@FPD}u{SzDGb@|a(1&uPQc#VHM zZ!K23IX}c^n5YfA{@A6WcrCYZ&D=w?b6f*UvRS_w$8MIzi{Nzlx(4U-g{HgN$ty~C zr-$=YmEFg9q1u6kJiTM#YQxR;pQWB}ne0A+Kd+?E9Nr$~ z&nU1RjHURntf%DdK& zTKnhtcDF9bzs2(Yr&wX23EnKxW;>dG3F>Q zt`zmamOX!ck1Zi}yZAU`L1Aixo46#H`EM}|Z z+SE3Ap$#?RjhLFuw%RAJ@X(~}wzb6j5WBMY<&z8laDof`?+dRm+Ct9Su*(6DHYCww znURqqPI*CB1KN#Wzf9VYgpb_ok7dqtIPGscxbiu32NBX>zw@7`nRC>cbA*|3n9Mp= z!|&V>eU0L%?nw^}C9WzS*5oTT>kCs&Vk4aZ`=!d%1!@+vL*GF+{meth z+Fttz{YYaQJ|YNWk9AT%^?96O@-6<}Fo(rP@-9tZIQp=}+gJ#F#aIi!Rwh%RZ1q zUpoB^r}|7@gA)+^8`dq8qlZD(EmY{fq>hde6(ejUUAm@oQa)+qS0Az_sB0kN)1feP z-zEfEZsr`Kl0%4$S|H+H$OqSVc`4GDxC{!~Ga}t<3iRWIp%~inVuv=SA}aI>i1^T75ep!8i;JV(|AF3=9G?q*}Br?|N?Q zmVAE(N`?8E;Lm5|-6sPw<#m?QV)2dQG;1_R&Sh+N7*5ggckL3A8#%BA0t$NZg|LXE zLnfa2i8v|hnq-YCXNY2Pjj#}YE2>sUl$KMW-+#=_$?e|7KF;>GQGBA84=HZS?U7f@ z+iGu`?U6bZHqxMbcO6uwYA=tRt%5Nho0BP?aT!aT9hYV6soFo9$*NP9jZyxrRQ?RA zYnuI>J;++E(|c5{Rz8>YJUoqlYv8%Gw+LW!iWAnsXP8@bVu-D#u-wU7# zk;}$1Tg)d?(?BU*Gq32?z$mG0_a`1r5;hcqj&@nAYPL<}&*H0~Ey3U>E*n)OP*WdN zAIu;Ytl538A0r!g`7mqtru7eSN*dN&Rllczp-q z*z&V=_wHp(`H!{wokETPHdmzpbs7WXOxb*5`6q@=97kC)DyAlm2`9k-{yfEkd{LbV@iTV>{RrV)9Xf81$BNkLg-9>c4g86`_-XC6Dm)||;M z;bfyt(sRhY1MEt7_*$LqG`rL(y1&eZLLyHzQ=O3S<|3RzUVhy;Kv zND_m>m=KDFTymFIq_qHxe9iWujVSFXZ1$+t0LGXmvuR?H(_#kvMh*nyQ^F4fTY`g( zy=pP=r1KNRY<~|Cn&X9yzf7l`U8WH2m~J4(a}<8XD~U1i2$EDo22F-dH6*XkF)-;0 zY8nL=^EAqJ*tBJD1B9VVwE%nTjrkcitV7U9`;ne{=G;HP%M(@YT4x?FNY%rg> zjC%YrQ>ubN-?>mQK&serAlrgr_Jsb1&H*wmQiKCrL`JY_`e-fw;_iZ9-c|moCihY0 zB3hJVL!ZU+MGV(DMGE+3JsShF{6J8HEwEd*55M>U=A}R7GqlcySsST+=v^X%LH@}yk>F@ojJcnq&IP=L_61`#ht|kcUxqVs@2u(&()u` z;FIRwiWE&X^K^Y;?kHiKDn1kKEzeskUhNs2Mqi)){`-6wz2hr$YeSVXPRD`ny*t2)JmNnEdx7iYd=)rUR_smut_FHq&;W7}&zqWcTv&LPE_G zJzz)U&9{GVU%VE(Y_er@7Q;a?oIy);nL$EM)_qfzJ4;&b?!8 zdM4Vt(xF~)+0%dM*EFR=^~u`}b4Q7a0}Ica0_(t<2y|m@k8AY&200j5N!bBuM!6cY zufm%kk`6XgBW~f#@m2FOx;0n52iB63hgY6vUt^pc*&UCoq}d&xtCHm>JOuH&ri zaGur0#imD$Ph7H}D|c`4#bSi1UoRb+d~zdOWOL_#<8_D#s1VWUZ&2f@@%cG72Kotj zbnvp@45?5roZ=bf_x5*^`am;erkpu;sa8*92%`~AQ*7=qOYwV^FWb1|5m z{%#AW%AW0B)KX(J{Ls#mQNQi_6pZ-T^>)JOTdd<|Bz-{#KcR;^I+})k9n1LPplww) zIek?<3DlQdGHsSOKZ+OKYs8Y43D%!OR4nKM>tF_!%0-e-o!C>R=60y)q=Q4OwVpo7 zxR_=2>D!o7GBRg<(u8W{+HK@Ms-Xus7~esQj?TqUtSeo23Kyq|?&k7o)lN(6m|@_p z<#A6nH{PW#lH1jI%O?@6m_;T%3mG;d;(~wP`?3z`{%c4;$PqC_1ZYa+@l#qojuv;| zV5)PB8TH`TQhOT=Y}93_XPH(=LoQo+=1|aZLUWpXI4d|?7GFL``8^}K-RM@zIw8Y5 z{pQJP1n48`rgp{!NZbN7_2aH3Z?PB!jb_en-#Uk1hZWV#cb#@gxm>d8ifo`FSjNho zK~=Lv5(KKFjZVYGSt!L1a)t1PoYSXG1l1&Ty5|DU(TRc!&yUbx846deqKFXWVG-on z0j*pmb>6M)pf{l3v%?3(cNrvk63NTKk6`H0blAby1)io(Etfhqr>()&{beTB@#l(yZj^x>;)~yl0>I zQ)sqZvv-T4@7R}2d`)Iex6M|i{-T>ubanLz&8`!4=J}kyMXr)Fj|B9cA-QO?_cm0k zIz&Zi^!EfD-b!j);m00N=$&1%B33LJh{8;rAx&tZC&JJO1KF(o7<4QcSByO7UV|mA zQf(7X$yDmU7W+#QoiGF|3jAly7%r0bg~a2CkxFKX&I+uZF#qUgavihsCFwI6H1osG zvrk(xfqng0wi8Toc2=WuYQuM6fFC*94bg*$=js+el6`_+Zfp@fW=SE}&95yQ*vUaH zlMB6_>VSi(-_vx%ZDXgAS_++ci@3`1dg7XV3J@3;wIT97L$aSS(Zq`ja<{tEp#|s-<`D z2^Db?1)R@Yj^_|U#CwAY$@7MqkCmS&#YA<$HO;DrK6t1(;2OKWj%C?9qtE~CC<8JY zIW2uVAbAsD!{v(fv3I58QJQZGlKN26aPTIHd*L23c7N#z#Ww($taOK#Dchr8%$mU@ zT+$)xMekhuk5H(RKe{lA=0Wt!#jgh22g#Mte&Bb8xHv53mXYCP-MLfBE`(DP-J22? z2q*y}$=0V^-yRe|BgWe%**H1+sAWf`RyrNDLQIn#k4ew4Z|@gpBzOe)#cK+P=K3}h zd2fu7wAc!^sZ4~VSOjBw-#x+~VAYFgPr9g~!PF0NB96$TNd~~Mqh89&`;C{tO+A%# zl5)}mD&RKUF-3Zx4%2tiAirr7%VaG_O&5<)kHocK=yq+F1KGi)4L_a1yt9T*wG1wp1r7R%+XqApwzn$jl;%Xl#Q^JcEHK z&18vn_#G;Kgo+_tLf8n^oS-~JN?|V#Hq(qW)+F7iu#7et8$UZP`3mi8k^n)6DNcy&OT6HP$_2b@mhm{(lskkUniKpd^ls+5noHC$GUqU1 zNTy)MUz34a$C{prDSRB0NA8Lc(=9?El}B#G*q$y?M8p+WF%g0{SaLCgt==Fa7t~TQ z{VjZ$(sQbFF+*FiqK|$?>f%R#U>e3u ze?}4@*U;_^lRXlL(WiNbA|lt(%7+O&f{tBNei!sX-oCYD2E}x+J}!{SIVqWaZV5Gt zElNF*33ZAs(8lM;Bzjbwp`pMseQYj>@%FzsL&?#nd4`pMigy$q*(v0E+vu^8)L2a* z+}KI#Y(VHjy@T*b>Zj?D;?-GwBFWDgmGm**pchMwvUga4r}~^8X&3as-q0-U+27Di z_8cC`PvMQS^Kcje#b!O#fZ`N?ipO7vkSie;-(iRK9ON)R$lDJTm_~^DE#T`4oU`|< zJ1}$mYo|{}58)IrtQG4u#8rB@ zyB1obJOj+YI^iUb_*MM`-^H+j3syOZ6+a_q6lP5V_Hd-y&~tmyH~_pwyeHirg)>OA z#t*ySqQYpn228cyP%YeYMLxienlnt(9-A}Bxg`pF(7GiHd+Xdap!F$OL!_npem8i`6@9J%m~(iXA?$Pb&j3yUK9}ECt)LsSYwgnw`lSi@ z4I4|HzZ-D3DfmsnU)dcT7kJq{9T)gNL%1vaT!h>8E!o%uj?aXg5GZgp{$_(e&$%1) zkv!op++sR|VYwzY2Tk5XJN>DFd7?#EI3f1rA7MFe&^^I5LDz#wS2*2(Wb2x52(k=p z_h^A_hUd?%&wH`~YtNKf`nG$vZb_YynQl?oJv1ffKR%;W9%Va-w#Us3zXo_`rXKfD zoN7K+A}6hQbp}zJaI1IRn{YkhP2RpAnF4&yQLbUEjNfiZboAbCP<4#nYT#(=nrm?X z=-cjOuS{+B0iEmF?pgzF^=_@CyPf36wXKYqr}^FGVV@RB&Z*7~r2q>P*l z3(4><(H7%=$je+IvUf`E-&cM0Wqe+K6=!sPeed9V>ZU3FYR;bj@^pNi&Yb^B{%88b zQT(;n&0GA1+vsd`_}|iy|KgJRzwp|B0c-#7cEtTgW&f)qF5CZyhw1<3h|BiRPxGIE z;{R$1{C|!oX2hds!(;d+s@WJB=)PaD<1w({F*CE!&@(eIGW}1yn3egz0LK4fl=|a-TzUG#m}XiFv0U&# z+3u|gFTwQ7O?4z+ACO{?2s(`NpENcwkorBNY6|ucongmms*x03( zKVC!Q)eTm*o#t(N7;~@q4e4C`=JQXc10Kttc-itJdqUuI?1>uO6F;S=Aeao3W%46Q zY?4Lizu3E2qI>GA#+b&;wK|m03o>ICBIrqSY}T4kKq^0;>cZ|5wNPcNp=1Z9V@#DB^#b?Eg*?|5Kg+nIdNY7th3hYlZub=F{QX z8dyMbas7L~n1Pw$KedH#(T^oIE4=rXZtjsl0wZJEEQA2QOC}d7`s>fRAvrPp%dgh|yHV#^oAHI#q^4DuiN1yoB4(4+Vq?7TuiWkf|jr4nlr>Y@h&+3yH(^LsG_67w757SVDJ-HJ?$&1~_ z3}q%y%Nl-Cf!A3dhKwb!tM-7B{RoqtZX4ieGZL(5fGNZXcVA*5Fya@DjtNi*DWrqj zUUQw6&BPBw{jG=2PmG$VANPQCeTJ^tT)UaG{9uq@hFc3$SNwIYc>VGS?pu2V;hSFzs@wDQ0EK=lQdJR8a`XU4)<8aFPv9 zYD+h4cM?P~7_63azD6H@z%5v+l$$xtfgIHOyfb+6AG-ciX~zn4vP(G_Hv}+od8TG^ zFh1Nc8g$ha{Nne-%q2m*n*MPs<`_zbn*#o*_vvOaqhD`1cO-3q=}qv(5H$0c1II^x z=H~|{v)+z6Fk_EdZ#kGhO<=|x_PGCZn>%JQ(4~<&aul@m#`wEBCx8J1g_g^GKz{gv zkrvv+o4Typid^uxB3gLHAn_v2sL2kUv|ViFlG}n3^pe@+2a$jf{E>*_m=tuCl?dl8 zQD+u#$&GP@K*+AgKHYrEZ;9DJMO0l4JJxaRP@<}g7axQv5OYLE7~On&$lj-L$WXT1I_{^Dkm0)wY*A?&kdiy(ic?cB~pIIr0lXQ6AC;q1zT~HySRz zJOR;+5QZEgq^^Z;b9J&To;K+`)*2lo={Pk%x@U0LLQZ}FM+vt!Pi{F;L_%5j^uuZ^s8V(z zcM_{)>)`(4Y~$w;+!#4$LvdTml zRn1my57SPFC)Z!|`w>iJ7N)~7Jz8sC^=Z3ho*64LxVJ{eC~t*THsL!$6LkgZ8*iDX z&(vOcY?d2t!Twkt#ACu%J!5Vgk8wu2U-3E&t$>-@fV%{wwht5t)aAWdOlGhXyoFu- z8JkG7ai;0MJaP3-pvqZ3DLBdqSM@iqWMcJqA3QRkNXKDW~Ohe^M7|DW&c)6{pZos)6-2+`1Q;5 zFhgsV#5!&BTbx1q|A;dxXMhunSZP%DRp@$EG*%sgfk8oRl~h3pAlt^m&cfQ-Hc`1d z|B@fip>*ViK!&4%K>Fobf}+UFbLg7HEj^a|{G-jt^3KW}bwA2{@;2Rc-@40sl9G|( z`;h{H_j8ZL*ktnU9yb~IUgAfhV%YHO&=%v7Cf*q|yr=EMds(0n?dlH)Fh2K(I^waU zOwlV~0;|6+y%B+oM@Kwa$3PV%coLcF%H8mzcEAHYjT0Ho216Uhf?uEm6+iQAGL;$s zxa00c#{*e&;hmT+sw{fF4aGhEnERnOQlZ|cd}#IY>u6Ac+4Nh{EP3aJ4eNr!2f77Xe-Kf`(D4b8MkbIc6L_- zqnR>avFw_Gf~4TZW(W~$XXt{^?Y7iTRQC1ZoO0-T!`FbMjwKz9ZxFmBeVW%QZ&kUI{ecWm868Yy5*{2e`y=oB9}g-d7y+h#tbg$D zJs$y*y0+Kzy-SS`C`%%97{Cvh`!sMSz>nG>jT7vN9Fxu<5p(0Qa4a2uS8`0vf*vSP zILk*@89YE6Lcu6hUyBc*5`eD~n{$yH1N)&I{Z-XBJob<>Vc&}5?!a9Xa6_Yk!b_Pl z#!V#pVY7rV*;GlZ}L7-%3OU}e)HNehlVZ?HDaLy^@R0?vD98?34 zwXZQWg=@f<6tI=xdF`?S0cc)$KJ`t7lSq^h? zehv^D?5Jub=zMioDe}z;l!I3P#V6QJ_QH1JxQ0Y0BpmcEG>!GVHq6WO8C@2v2Cx1* zs`pIH3ygrUjS|9)0VHkPRRqpU!||H@P9`MmtBTiaGwJ%aCcE|HZsR*zUtH}kf zzy8q_-)n^IY%vB<`@T6p(&NCShm=+Wvj#s9{v3nOWV&K_4jmU8MXwf$+9AAJFa_1@ zbm%DB@8^RaMqkp;drh%PLUSvtQA}@E$D}j)aQZ5$MQ4aUPJm&QjUn(c-}xTjoc>;H7!O(i#>9~Na=4sLfXfJzdB%HA_rP=? zx6zwpO`WO1Zg2V->Qg*oKmb`m)`l2-bhsfzCjU>-aG~cx@xH6Ga?Q?no6mFu+d^O* zB}N)yHbQNUtsrrYmo}nxPtV8$ZHSmEEG|@^BRCOmm7_@@9eudPWoov(oXI-9cfP#z zD!$`P8nhV(Sr5^)W4-JbG~=gy-1+JCH=j+0i6~4c-YgHEG*!w5k2NNJG;?46mdHJ< zA*OkBZJ+HW!b`e~m{&ngj=E8SRJyQqK^SfR?6~uuzb*PQ-*%q%7)~KBfx^9@S0QUZ z`LsZI&cfWkfq#_(J6>_$n_=F_yp9QzIh|S7B5SszfIXl2*k)1i>rnPj=ge1Mtc+9D z$@&Ul0nitP4>T&~3j@2a4_qb}$gUO@>4r6}&r1&vC650w3gJMU%2yQ2ZiJvNV?*2= z3qG=Ea4{W+HllNj!!FGqxj?eS^%u4%&x zzW}mSMT4L+hDD<6zQ{?9gC;ZHC(b7>1&f?>UkO0%`F+?-?xpWB@1^ghMOt@3hXpJO zoVuRvEF~WjtU{~;tU9dxs=1ogYek$n)dMW&eJWgAcdw)ubJPl<4JfX&R_v)=!dn7h zMY$pvl6OF_MCyXJ1k?@HCao@P*fLdpzX8%$h1D~Y_gL68k;H{Yh=()$xqyb7+xZ{2 z``X7bx;c&a)aH~)mN5G!9vYT>NC=+tw{=W%k7Bmlf+u9NqtV+jSmJSF;NAilvUwxn zw-AwVGAI08l+*;Q`jpf_1b-H)32_`y+%d}KMe0VL5dDR!1)v-XqHn+_3a|2iF6+a5 z3R&!@wm<>)MZChgXM+oT(m+=~S3zz$GO5AMu*`uHvv=PN=90zI+}1@X3cwqRPr%i} zyd8+5#Qr4f=DZ!(&#Apcm=L4}zO?*mHbiI#rDWoH(PltGO!Z@G#eUiqA(wR7)u|XT zNFYR7)9ZBsk;jW1G*H{_Ni>2@jgWTx0k`eL#6RRPA;MKP1l$pbYW*9=pok=GVONpQ zC*P5vsIFTdDLoYQ9LK2Ur`n{A5WMUz(bArHUD+KNRRA{bHbkoeW8CF@gwby%KHi-8 zML$ zF>`zsvnT^#Pd|1sB9mHo^kB5>78!qvOmOUP#l;}Y`dSn5~{PSZV|3enc*%@*W; z6cNv+VD2^BmG5q@bMK$v+=~1 zESX75?t!rbAnHP){|*{*B)j5YQOpB6YSC_EvR(0~?-e%#JNSQQ)=sT3nO4N}4atTr zJjSc~$jV7OVYU*F`eeZbhSWE-T3QL!22Ztd-!HI7CjS$cim(6Pz z!|Q8=bh{8Fqg!_ves`0TGQpE*$ZSoQ3wN?lX;#osGI10sRXd*M);^npj9^r(VPJ4< z6y+BGjh3(zpn}Qp=k@ZD_V<{N+`DmkGID2ij$Dmgp)<{_mV6vYnQ9ssGwrDHj0JSFf>pL9wrRTWw0Ee&+wREEw7tDA|hC;n0;LQ@~#9YY$6 zC)GGQJrq$Mo|H^U*D}}Uub!s~Z{sm(eDv86nLkT{JK?|REfJ(A-;kuBtF8CS7w<^% zBYI@sN(j2SdI5`f>#S9bJ0xtL^!hA0akp*@X4H>CyD%8Lne^7R;1_uvB>Gh=gyS{DH}XY zI1?re4AbtXL?sX?5w3LQrW>vz&I0f|mqJp``|Mqf9a+^kxd_p}7&!>sKRkT>@UhIN z=OHt0nqb5@NXSV5Fv%|U#9fU(L1XPlGo}U`nG%zvAxSBnNpucin@UVfVIW#Mv@1BT zjygW^c2t;)?__*LW2xD@o++|!J})S;Zn+7AZpa!rylfRSyVk*Ra&o#_w|=?bCQtEZ z@(7y5vg=NDVS~88V+I$&xOjwy)W~TG4WvaRwXj_n5yFM9sD0N+BwcDleB`5BWM;4? zB3jKF`?5_qi#h2U441??e_Ow0POP|iSU<94>23%!+$2{`a)0N@zRm5vV+&_EIKhRA z8C`m*+;L<`XrZ>pYNz}m8wUVq+T81s1S55zpNAq$Mh3EuwqurS;EyzBv~*RpCDK?& zevoC5rK_2Xh3m1-Vzgjt@vI{Z^XzhZb+o3XPp=olLBWGmn7--4o&5ri`J82= zrxp1Pi)Pqn5&=S)Y^}IRJGmIHB@UXTf&V~VVl|SN{$v0KfhVZ7QFKn^IjqKB!pLjE z$3KvX%Zz4DkB~!W&`RZt6Gmk|WvNv2e3xC!LnOfh#gt3Rl>0xBNs=o*ZTFtQV5pko zoLpb;=`m2&@pn%VuW&!k@!jdU6H$|9QN)ekDEI*9{E2NDoR!HB!s%aCGX9YNUH^}7 zmG27}l^mI|tNscu<6IUYtYPR8aKn1%Gb>hiGZVi4@8-W`T&H62*#(23yCyCq7Eft@ z_X#rM>y$5=H*%;yDZ)xiyq*0l&R%!wuY`+RYPs41{IR)5qUF}G*{UnVt8TkE+#ofb z_}KIJZSltS>Kc5yhl;K&#Q^zMiy^Vg&x66SFB2{c6Ki(7ziU|Gy(2!LM>sK@9EC9r zp&OjX#(p54vj8@yi%v|Pe#0ag0oNPsrpnH?x+mD#yOK;Rc`~{Ox|{iQmG&>_y@ z!cI``dAkur5B{Qd@!R#&D>Phn7w(JgdOVkU>L z<`S6#C{W!|31HgQ{B1b?PTXK8ryB%6+kUN+usVYS07oxwPeIUw z@*6MKf*vvJNU$`r!4TDUkep|w$5TdVGS}lJ{X_=T$QBzriv{upc$TECtv(9AkaZ#8 z2oSN_V1`mga%1Zpv?N1Ivak}V)6-|BQcY@BzXfPmxJ?iR%hF~Wr4%ul) zV~>~+l-n|F8Yp|*0#4WhC>Oa42kp1k6Q{X76dx0B4ohCQFC0y(!)@(-KF@Et9ZeV3 z+j8#~djBxof{zz1o>sE*Ab!DX`zStCHg6PJc{`gZPBwspujqD^SKh73K5J)f8E2+- z_sTePU8e1|Idr!|g)#=%0w2;4P2pXFWf(9u-6|qNE~~&V9WvkkC2l$v^Azx#oS4^F zilADv9x?;YBp%^GYqs(YnK=v%3np=GbvHW<+$h?>!HG;x6&8p@s9`b|&gRRGw3i*Y zV8CL+syijzrJDUvENB@4anxGRI!<{$Zh1aNH;myqjNB{hoP`seKR!mc1^z|5_kx~! zel&|gglbErD|gPMm}y>U-YL%VacNc`Vpb2YCWUHo62>wPHuw(wI|AJSH-e~{+~cfT zI5XdM;UTO&j4Pyq#7ho=lc~OML7$^mgSRKYb+iGKTTxSTfN!#=cJDD--WO!`5f+h)XongJ9;O{C^JPYUK z0d}N}xtMb*qJgu9Dy64=G$fYE_D19Jw(@1|*9Gl+f2ir`_KQoFJY9z)z%oq?nBsQS zMl{b16Af>y&%@J{@j>R%ru)NXkqi9igqF;=_b=h)cI;u~rZrJr?1&PrsF=t#-*2%{ zEPc8qNyGyi9MVg0MCs7kWzl!cy%8pcNQoCCj8a0%P^q~5e%Q`2rzQjW&6Rp=)zm5K z+x^Icc4?n%bPP@=Cq=w)iVA83uu#4gnScv`*V=E^mDHSXx}h~FWs+TaZpk?lyHLKSf0)v~w|4Cap?6m5XzeFjKLKqvMDWXgfm@=n1 zr&(CS_?cY5N_29OL_|Ui=l=UdB2-fT3AH@|FO{SBNMV69T-!(Z0{&Ue*A~8|cICj8 zgK-X}aDbs)Oq2U03tSH?MI z$5>lu*(zno1T_=N4orv&m4#r^XAg%=tk;jEi2Deq#G=Rw=m@1wea( zgQrrXL|#Jeog}+*fyc!*3ARFqs63GtNbP!HM~ZS}X5t)!T}V?!iLmCxM#4g&UkNW- zGR#}2x2h;>7<&jQEqUyKa-ye0qXO161HmZkh^SwLV1}{s7l(oL z%vB?#>gMSAD&ls^j`Hr!bXU*NWf?_d<{AhK%>0=?ezZdPV`7U+>>MB;u`)+jSja}E z&t$XjTvQ!W&MC#Nf845lst_UqXtDWe(}uqq(4w2h?wiqxqynN!j&|0TDS@RCNBE1Vek zIn-q|38GsL?Dii*&Zs_4GU7rcZ|QF#XJw^M4*x$w&W}^PZy{&98OS0(Mqa8w*t!71 zmYNdy0sQb9F?Bvi3EV7(z+7@r;X?^*8k=dmTLw`|?p(->U@X=Z-Id)HM4D`6WI%kH zLq~rTk{%oX9YmaLMI=mvSsos^xZs{$b))hG6Fn8+?@quxMw>Z5B+Zf`K{v0_aoQ-a zCY^g(wL8dds4`#omhK4Dbc3*QSJrZjm=xDk_2V-%lN^V5;zq{rRLjWoUX^FQ#Fho~ zsskCDOpd|EzS22@m!e1Y^+(G%r(z7@MHLrIT~M88%ygniI?rjcnn@51-Btjk~j1VeQ$e| zlIIVU-s}cCqBq@Z&F0i~n zq|p4mq)Z+h?b`x65ra3`;U+u?{L>aP7DwP+gn$GtCCK$btOc#j>*wjj=7##lM(lfu z(m?}IE>rH9jr}OcBD;!n*48|=!k{%Q8Obu8k1rgOzvxZA!eT+B0%lpcQd*J4{E$++ zlJqKyg<#`uI?gR#w>R#8?xR5VdqY;$u^cJB!8m|iB+ z)xsuuQBwN}q{>I^qb!42I#Hsa6sft`Hhe9zr-J68rQGOc%Ia@>ZXu`%OALPtn?0$q z>+o7`p`1qIMc$r>H|PXg_S0)iP5wll*}N9Wk?%LgwY6wqXg7@_cj4Tg0|kk30fCHj z;^M)+40^xk=g#jF{N4~Ini7k-f#J%jCnlBSIiI2s*-TQR3bgt#=>U!{Ng-06G$!X* z(L(W73KECC(Sg$4t{iF1{>)-=OvTcY%}}1=#Ap>I4b(2{fT8Fe!AfmXDy9gM(05v! zAK!g(h^fxRYg$UJDov79$51(xH^0_OnLi<6ic(q_myIZT0oUD5>?6Iw8;k#B&ZK$p z<`GJPw?XoQuh2(2iziCu1hG_h-Y%GxtTk=&mpVP@?>JyTDIgSa{>*}HcJW>rao-5@ zIBXD-(Wt~YY?wIgX>phHgmX8|x;s?}qV{cyIBe%Q>~vzzRd&%+LO>dFaOpN8`ESZX zBe?-FaW-mVUvcr6?U=Y2a$^0AgaC5|#3f1b6)IwW%6+!N%e-?5@?V^VL>UNJ)d>qu zvQ4aH#LOG`X@~50bwbS)3)I!{8;9i|xi04ca++KuL@ZQ9EXQ^5?tJ+8#zjqb%n{$ff5CBEN& z7zLx~>B{ipzqw%;vF;^T5q4*y4v$wVCP7ta_S~XyhGjgk5V>Wd=MC@CRTMr8=Y-Z` zW!Gw74BF$H3~{Z8%~xTmt&1=2$+#t=X9z=bgJZ?v2(xj9m^{$aX?HnK^fQWrbMu2w z^iz&Sz2ZsnhVM>9bM6UW5v1sZ>l$xY2v%K5lb^#@{6MdB*- z2QpGn3a(f_W~OH;T8S~EORyCvM80LP))JWe5E4m69e^mjj~4YCHXIssF*v?L@MlW5 z`yW#GKaf3s?45ic@K3ex#o-bj@K7iGOf&u~eBY_xJm4v~NAk}J2AyK_X1L{!)8%L! zz~=m~=ls!S;RIy2Y!tYn@HUqBX`GOW=9-Vo#r*s)3#&sPrC-C$wsL60ADv$r&h2Kn z?-NPde}c;2qx|iHMDhkDd8J@D8K0T?!}7$;sm4#W@e3GyBUGvl>BWh3Xf`uN#MOX% z;}`XYxMI2m)}bF++fUE?zy2&cjI*CG(Wg6^d)IB>Po~{bVAuO;rf(^}i`5D%7sYDN zy&|gWKHs-0&$jQ zUuW*TY3=tT(j^o8&^@rh=FYYYm-V?iVHrB3RNwLL8b4Y~|NIe+;n{w;Kf5wpk-^Zx zgFzDS&o9VLVp^BNu)&9MFWAwT+s21snbRYM(V469-`9aI0^7AdS;RhVj0xf{(1$WF zA%(G-ixI(ijROnZck^EWFp+375$BoHY@=a2v*_{=P!{0@am31Is)=XD)WmbtUKvD( zW+ii^CoaU;)nzu9PJY}8egO5?okCXSwAaL4_Ib2HiJs7mj1;uXiM#6KZh-!xcS5_R zy)By6Hp_3fd(Gp@Z_gQ&PlNmxat_TX8O?+NTu>P$oI1aq!Ed>Fhch z=zGnk?gU2X%ZxaoZ4htr*(nq^M~|A^rie(MSrZM(3;|Lz5C3+~ie1_|T-hNL#qjphAhC_ewTNS25urWg@uIVE+tT_+ z^85rJwWyP}2N9Qw=iI2x6uOgN!{S|$VdJR>CI3$MYrMAeEr%N`7`>s@jNz%DwC`zJ zy74fPlTE{-ZSfCaVsD}pXjn`-Td5Nb+1!PV15d+Zy)#MQBUvLG)=Jk~2tr?80yo}` zw3l*{b&hDNbVmNZP2BOo&kZ;nY1Td)ff9!~G;CrATXkXM!f)ud4$IG$CUXY(Gnm^$ zXK}HUikZ02J7YTYY_M&>YbViYA1$yuc{{0ScWhR$p5#A(c^BwZFP|E7FACyL{}H&o z2JgJlxbdk~Ig~?f33U+rzSFFjSKI<@k)b3ZNs1Du&{&C4IFItMPNW(mB$HBRp%o~^ zoSfHCAvgJu0Oo9!m$pZ)?7UZf!;I*VtULKo;v^lDGl51F5wD{DLYSlikJx@HLupH^ z?OePCC%IeaCE4XJbUqV1*bPk4KXd0;d*AnlT!tx0`jQ65`{9%=(49tXH}s19D!Ise zEBZgkd+Vr3o^)H3#@*e$aVVU|-QC@xad&Inp>cO@pwY&f#@*fBwb8=uRnN>j=Qnfa z&b$A-_13ztU`0koMP)`t?1-%VYJd9!eBZNiE-h|J@$Dz*tWn1o?qJFoI-ZFz>Fi{e zDuv~t*{e+4(P;77y>C4Et<*w@+0IXSFC@hj>pQ;xbUkok6B{9v`BgSL0@ayy+d1~u zPd19+`3{R!8vZ0y&M$FB)k0B6+R0QW^Q*LN7cp7G$GX7La*B|MaSfHV&&_aXiQrkN zbqSbctoxP;W3@vo_6dz5Nn-w~b)jZ4zx7!M?o2v2Z+v9!3I;_p!=EchA5E)dG^OoI zDvMRxO_v!EHWTP$=ie@G7(MoZC)&ThSE#>Mub4Ehs8_KgGrwcG^H`#IU~v`xDjr+Z zI{(gSkAF^Nuv0;I#}$tspsm2HZ`0eVv)Glvh)B113Kx~dX2mrC|Dtw)8mjT`u_rl!WQ{)hjt z%K0TKaPD2>$`ho3(_GQw52sXdm#0>7pqPGQGj}Yb=0L?IO|&2$9YqIM--PPaRjlHM z`%y-vnY3)*Nk>df>oV;yz^a9DM^hN$yfeKHiGWQ<04;OPGM0+BXR5Pm+En{?d9Y47jdbtrI|Mi(N zQt8b*>L9wD)3?U*rO|X@*pS!)2Q^aa>dg$Ztt)`T1n0p)>=lyDWLYsHIO8?Mv#&1i>lf}j3Ustde=!j8KfabUFh`O#aVcI(n3WfWUS-K^3Gxhr zo)?AJ_6&v_Qf(^y73?G78BDQ=v0xWes9$`CWBo-!nA#oxnw0tGHhRmFM+>Ikvd0k& z*E8}f6mSdO9r?H=IY%_?3&d1jjwm(X86h-za856&S*=4t=!Y|1Gm0d?=uwuhIsHZ- z!i`XQqY2F#8ixAK&j=8)9C4u=99ZzKxKywpKX@+Vct2YZCl?t$PLb)xv2F{3P>WA)=w&f z==6u_fzEe$7Vz8%SZ8cw1C3{x2lSMTJtsxOq-N0E>D>W#%pPF_SzaT8jq7T11znk1fb9OVSL3dhY1-EO|M7w_05aJJ25-#E5t! zvueNQ^o?uvDHxS}K`OWW=!lS7i_wB5ixuO&JTHmre}VTSKK}%-yaBkNLHcN0zWQ4gSh^6_m||k78lzj;OBj8AWwnqi!=Tg z4BaIkPq@kY`&xv_y5J?G6r#S-&t~sE^xz#))OXCk!YtguYKlUMx`=JfVJ@MY>L5HZ zCL17@qDgtbG*68n8|8g*Fy-a_;&BNMO0LLP<6k`!+M^*JV0>^uo|tz`$c3@(!S|59 zB+PXlmml0g37LC?hoe+i{3WXoO!yVN4~*m`oezN|leO`PzL#ecv0JY$+KbZbLDVm>2nqOg^0WBZbz2T%wdOp!_;9X z=5NG)>W%@JGkM=&l;tdL`mN@Ni1t7i?y-$75AL3gu6ypDyDb<(b00_I-?k|JeSjty zK{(G3Bn^wxkr-!gEZJr??_6c?f~9BA|2si6e{7!DUBf-#E_oTrMZ#=+bhf`9XpbL6{0Eh~C(N#jD>%HPj2)A_ z1dJTRyk*V4gZ_7&p8}o)UIjs?TM&5d1abd)UKd@SY~CM1o&aDkQ*(0vmc;fKed+&Z zEdL)v_5T}3?_cQ9{|l+-|3UTV`O`K3CsF-*{vs#+pBRd)oSgqeP}ENt2T}bo|7eNp zPcT5o8m}+~v6#V{O_O9!K$rokDcI=-7_RTcVv9_T7XjkD4hP zww`Sb4@r@>{#J+VDM%wRSS4;$ozA=S?|G=76LWMzsgG)N?cMG*uNpr==C%y2OI13$ zw~K9Np-K1Snu1r9THy;%l?U9LYplaO9{E);L8-+!QIlgaM~=9Z%9bAP{jhqd>3uWm zR@JWK;n4P(2v=MVa=_Nce2%(V6&>yOVJAc4fr>?I?0zN5c2mY$L_rG=L;JV$=ij=@ z{J+Ea=lO%&|H1hG+o=8v#Q);W@}C+1|C`PqY@C39Vf^c9J5aVJ_%GHB9YPUe;7~|) zu}sa#O*X_r|GE$u&;ojHFTbPUjean>Qg=iw#*>D~8XF&NAV-%CDEXQlJy35=2n z;%n-MAr_Q?C$A;r&e!Y9-bvP%>j0E^Lt_7jDv0CD{Rl=h zF|3KCh&-@gO+hBqNSH$Uv*}(6b74akk_wK$a!sOv&Qf)fssf(8l>Of9x3UjWs1xZm zi%!w^Wm}K=x0$t#*=9Q?b6g+0-6p(sb9mXU!kMYF-&Dv>MDSv_$6QZdryrPf8oyK2 zxe23$3DkC=$l+|>wC=}51ktz{#xNcXzgJN1T1xJfS^2sS%utXocACEl#IG+kH!=&# zzv_C$cf5GrxvgHFoQ`V6`{shbhb~zDe7uNA$)FzJWFD$(+SWx`oaAoidDGw&7;R`o zLU3h2ZUClC_)TBt<&{`I0cHj}`n0hb+c|y@INoN7FSwlvglfsGKlt?yat@NL{_xAv zGpkz@ztcXfW6o>3!pq~RdyYp5;LC{!3lOMv4vSe%-F#b__Sf$~czhYH2|Qu_IrFv~ z2p^OhlVXfC6e4azkt;NhF8N>s(GVn+xz)7?hAj8yB+#E5^UEcwUlV?k##MFH#T^k<)WcmEjwnWX|0s0tj4rVr|~>`!d;CcfXnj_dah<&}~vZQ#Q* z;C4yzY-K$3HO_PltQNxVr*94T>F@$Q>DIi}R3O;7ta8YDy4}c=ARe%Z#dTvjkx4|^ zyzftRl+VV4GWC2%nrXJJR3ziwxgtHpseB5Ga+%Ytra^Ifphj(k)jY6akQ|4_npc`j0v5PsS z^B9r(gmh~LCnpmyX?82NODxVAS<}&JK2Cmr$0dlM_ZT4A-l9zy{@|N5qJ!14bRvRG z(jAEZZ9gk%(MJJbP}bDvhV%(Pu?#$>)s+)<+Xw)v`+`hM-L_~4cI-<@0FgqO6EDVn zgqlIvb&;>548clmtxhi@6rz8J_<4%7p8LxtNO2LnHd|H`fMN0q*sngYx@_6Nek9!H zg0l}DfM<`d`))QwVl+-Vv^EFb=s0o1xpwG9`+CKFvfcU=h!8AybIw&xa#DQ4T|+Xx z2WUE^KY<|wZ^mqF*?kH;L1E8wRYf4jP?}zQ3<#DCi1LlQ%ouV>hJ29c9i3X4q-c`t19a}bC|Kh#YjvT znIc~G&HE4AVna&d&l^p3WZ9Uul4UK)kcb)Su6cSkdy}&9T0BW$iHMSG<8MC1$w2-= zMYa@Dfmsg14dp2LY!0t7rVl+^Cn#EVa=t!wKtDQPU3_I>n(QtFe!=5e&m%gYbdWpI zbuRs-6I^%QeaTPcKsVKf+Y&IzGB`QpE!_u|MDVy-uz>U(UUNx>Bifx6Th}QYTyaR4ej7Q zq2zaF#Zn3SZ-z@=<4NX6U5_+YL{q4-httf=itAZL;YIN(M>BOJNN+1W`!kQjqUjqO z1dd8$Bp`)X<5yP`-Q)`RTsa$pND}Hsp9YCx_!7C(_ip@tG+4jvN=Q-bt?@H_(8(w8 zH{Yb7=(H?$6&iz#a&tb-lm9xNV&MTHjzg8Ee77JjKa&~~(_y=Yk+#B2j zzLfrck&n37i)W|-?)~KoH%y}tW6%__Hu~1{d^De|{rTBXeMfXG zDR_>UdSn!#d^Z|mk%|`$a$D}2dRW0#8&e?fRLqVr)>ph9Lq8Q-P^6xM3AsE(e_Jsd zPKIfHuO%>elwB|GlAtBAc%T0gCHcH?N^`6=L1_BGdl|m?&@d#D-KIXvVC35(iX3nE z_$nXOucsuzzUY=x=pY_97jjl(RJGHSW^87sHug&p#L1q$MDml{PLlP|9Sf>!ZMX8p z%$&hGgRL`8mT@j_yd|KjC0}&r$^YK@_e$Ssl#V~1B(nvTTv0j}>3k_d4g{@6!MK$Q zs)4V{6LE6j&jAPD5)#o^OZ@|X%^`>+-j(==?86gbgL&N_-8N-@@2FD{ zter*9W33}(8A{f!8-=$Ru=S9XDAe@K-1?aG>|*IZyy(nHi2RnR7tTFiyfy34yiwzj z^2)vzzp1K0Y-q5t(MCgd#|5o`J~zLH70^@l6qPtDtUh2{Z`U9Zy1{~=cds-KrN?() zl*+mnvQde>RWACc`Q+v4453!H?d&;TzuwIV`VC$;4|0mNL+4-l^#%cklA5QZ6SE~=0ZorRtC)jDI^AxnF7&;e_+j?boC7OQTVWe@@+vEuV zOhuH_?($>~)CmNl)?~T#$ss_aC~PJN?I8kJYK-4k7>inO9|E^mqYi^Ou6a^1xBAo* z0)|tW=xW7mjFK6It$gZq=TD-nu@vS~c&B)IcKnuP$}%cX{s2c4X*&Jxr-^%r5__N&%<1X@2A?R_m3 zal<%#s%(p}`b6^k_Inzlvq=fl6ax}-hyS%mgAJN=$8dt&s6l!<5FicG`2=BKycC) z@QP!}F)V6wHI@G=k0>!ipjg)*unC4WTIbk#121FBnzIpQ_c|JEy+tf77Qaz2g5ezf zN$}_dk%s}u^JMkV!oxXZbREt9MhmgPI^j`t^i@x964qA=(40U@=GI5 zJY-8vs}xd*bTeC3NQ)CYoPrH6JV4{vOBW|S+Y%~w)#B;te1M*NDI+51R68QmohTpw z=|O7Eb9HG&o2m|L6LWi5?POF;YmPZIEwRP@YT>C2V!gR#1~Yp@Ei1V+>N-j%DeUP& zQ4nP|oIA~;ryC1~5r=O5!oEcSpCDJjb)RATT)~1!E46J8o+34~)=gnAo+E*oKZIg@ z41cj$^hetrZW;e!>{V*q{WTG+g@D2QV1hg&okXh{9rws>J=%&V)(1mu6gha5FBxuc z0rD-pj{B2oOqaP$a9nq0iwhFBvaw1x9@+l!QCcTc$vEF8v`gue3U{PtvHEHjJ_K=Y zVqs^}=706_aJT1^$%g+CuNa9cZ-Qcn}Ko#HrW%FA~#!UKz@`{Mp&d-+yH(eiN zfsaPVho8UwxRFCw!ZhE+AyYvJ1OPl9N3Hv*G87Y*&?OjYEtdQD5T&CFet#sxNq=AMrJ8gNT3RlkgoPf2t&jQUgff>DBuOY%yx16ECoBC8c zd%(x3v70FF0c8#Cfo{6IU+0Iy(2p8qs_MKj{r%&HINsI7TR?X&OujnPt7-#LzE~v~SCnei7riTP2Im@i! zG;$7(vx3}6smW?^My`F8J|Pd@GXxT{Q|5LJ%0_YiW;1aAv8YYv*Z(6${Y}u$&tc^x zJcCU^H{StEv0>VY&o5`e5LMBoyE(FqVD}=kz}B{dqAJ-9fl}tSM~Ojd*{~Sv#u=RJ zv%19sGi<8tk$$W46Ogsrw$+nAUDUhPXw7;DItvph(v^rjDYJruvz@W+AESi1z1bfRbx_s6III7c_a!KN+<$hyWas4iC)397 zq&gc+Va$O52TONt=C2LhOrf|a(sG3aMbdKBs1St_5oKbiRf*&4)HuJ|bGI|PQe%FC$;2L<*CB}bt z9s!e|`#Ldg^P@sQ)xxg*!$$a<0wwbvnIl+oravzC)i=LdIW=Z$x1Zbxd=iRqMUB)T z-(LZG^;`&a)^gE17D!h99V)>j2WPf%?id}xnqeiOl4mG(DxsqBPj`uwSvRAvp2Gtt zHzTKwFZ(3tQX1wS*Yg`)7Pn>}9B1K!xgSP84j8p=Whd2{bo20kw8Yjlv(me+XEA&+ zId#-ouBM|`U*IVz6Scdr@fmO?QrD=av*9STuq{&JJ2qa@6#%z$+)_8~Y(c;_ktTELF;^K_wXIFp?(xy5p6ri5#p=Y9Z+YJhH60AlY;pkXz$q0j$> z9|$Ucan${PvT=(3JxZd9gM+J!tFy5qqm?NrVB+86tXaB{g3u-GVrp*h3W~7?!s>s; zNd#q8UCr$@K=v8t|Bj2u^{0xotFf(>sj$7Jt@)pK|5zDCL>xRxbx9dn*_hb=yx2(@ zc{rIk|Gd~i2mVJMB;djFj~ak~4vF{=@c-5311kErhTOlO@Gs`vfAq#bnKl1c*ZlvT zk_itFsDJ*}#rppyDkA6_{$j)ZkCsf1X(geL7HLR3h?@&LRYAlg@SWA z5Zq0P0QP#PY;k+TvoKm$vcTf|?%7=xeXK{s7Ye9KK=0l#m0oWuLr+A*$AuqTzs3jE z+Vthj^eQSh7Gt6dX=|$?w(_{2Im(C>n3-ZcEnfI};z*NX+%s+(~;orFh7wKju$ zBb^?tce1omJ^PtP$jtNZN99ih`xlAPRz7ic+S@v|NSFffG85cHV5dd75PPTCDDN-) zm3GZ8sIhKuRF%2DSDly|wp?%aCaEsF?Vrrb2c@1 zAq5GPC^!-xTmY6sw*g1;-3#o zvXQd!fI#+lsg%D>%0I;t05(!k8~<;4AOQj9e@xXswz4sMQrs{g$! z|Gvwt3TlG0vAv6d2 z2e`+tRQu#46(ocZ|8_k7Vxs@A?>RhdoPX{m|1kzA59qhAzX~?}Zu9b0ReutE6Yv;y zZdjv~&rB3a3aejlqD2bDrbkL<6^g7^6GYOoBKs^X1}Wwwoct5Z0(0;rB5u_c*CKlw zfg6`FEv_i0yk)y1sE|BpXM%M6(OY3gg)n>ne)Hls)5Xwh;%@CQ+mdI}YeE_vT!`We zWcDWt6@&K-2OJ?4uuMe~5(m8v&t;}AASdZXu8;lb4v_rDQ|J=H)ARh=yqmtiwE4>m zr4b{a&DHXu0{;8ca#z01hf_SuW(NHjupY3wI^_w2mYu4m-iz;$BX{7h#Mbh;KFTJ& zuW4X+;U7vG-3(-}hc>X(!L*@_C~bzEv_!yoAiBC1T+;Mi_u1k$KkOiZX*XT|YGp)8 zl-&Jt$(l9U%80|LA#?WpArXbNrF?(QtLXf#)8&IUc!(xWUb8D+P8h-mmGLJW=8Wct zv^=CG=siTpF#u`=OD{Z%TyhT_br!WTLC^z|9BMvUQ00eZV}1zq!Gp-$p3k|YXkEUF z9{7&_udh6k2Ck(%{T<&Tn}_ZV)cGA3F&c8_H%W~Si0%Va{RBrnCUM`F?+*#rPvmqD z!E1pks3oeyNMDUp7e|%9K(e+zkWZkmS!gSn3!_sC8@cT5oJn8db(5OFx-Sm3&CEuu z`^J+(3e%h>k=9ry3NwKP#)6Z=kdtu0pmT!bhLBRyz?#rRDMwA?M(fNOqn|jzeZEk(-sv%OV(WzB!a0)f;VC zNUB27AyJF;E_zCNN@28*UKMEK8t$zv2!}I%=(JGL`qJ0~{@^|S+Zb`;Ao|@@`jx=f z>vLEKkYi%66$yoeD_p6R$&J`1EuJ{O_t{j73~6xc-NN97pUXl9#VEK1Z+u3BT^5ZU zK{G!nt)?5=8I}up?F37Z+`iPcLIp8?#xF2fRx6wxu3=2?s)1t|7PA5wxNi5-$g&pOUhY}x9Wur?S=(LmIVce zJVLb&_ofyWNvm5{SWXy0V~bC(OVS|X#*s5m8P&y!7~2#o6&Qzgmg9q0s8`D0s7!Nk zV#-ne7uXZZUeT8~h*z}YZ~z#YH!c)SaX4C^&=Zje zA$DPee>e;D^aTrQ@UaI?59$*mv@y*qb}%5uKbmann9FvtVABW$bFL}00>dI)bD&MK z5%(*82~C+HMUOF_#8eFnAr_E6*_84XUOA@F&=`{LIIUa=>lK{>km(<(TwZEenAl5~ zE!WxgIi|pHi*jy?St+&-h^jEa?G0aCCXI?+=u>>vyF~-CY zULhN}`5;`51=z`?@3-Z~ik?{rET`kAV;YVJ$4rg}(|fn|81hLdB3+Io$HPf(TdHRy`Ks*obqtO@)zFhoo~tQh_-Qr@WWZ$ zk$7UN?qxpa{X8fSB&rgI@q@8(V)G*q9ApIAy?{5*G&}Jx%r-kgfRb9|=ILff3i~pL z?X;HQj?gT}kA4_LEzup3Sx#Jj7|mP6Pt^XQn^Rnl^q-CiwBk2sxEu*MLA$*El7@pd zbqO7Dyq7*tpU(T*fo^M|KF2mK1ObIL+r(>T$Futl~7z70y{c^Nul}ykQrG zXIRGR3dSWo>Y6If^idY9FA^bqRvz}*A zE(Yaj))UI-c-9k(WTxy2U!YKN*UeYXV+-l5i1(8EZkEUsA#aArlOS)V>=GFnlrRYt zDQ@#4d+egV^4@JBJbCIk^8;4G(dH#b!tw4ySo+cKLuxuG z7pHZ!%Pm(0ta*S@J~ng;SvoSj;;)gu1cs^|~NZGaU^ zNa+_KQ){vff`hN20~0i(ao&`Y1q@S*vt}$kVo%b|D~{fBQOLl=NDPIf;S=(BDbHBu zEM&TKP9}7;bs!NZ@6(}IJw0pX4~&`nE~Jl!Fid6>W(t;uPYP-4`#)OPB?J{+T8$dD zGn9y64}2OxHQ6zqsJnv1xR14(8* zZl@+e3OKt*ZLC24?2eDJhQX?$%2RpzSK37^MHeH(sjoxk$;P2LM)!h4SHO~st5#p) ztVx>>48k>&Fl`p$1Wa6ENQh>dW(zb7M{Uma`(RIi5v2@Ac&+Hk#k3Bt$)v-E!^iJm z-0}sPQ52dXcrN$yU5CD$MUCNyV)Uv{60wi1t34^=6b|Lyps@GVQfk5Dk3;+}3x@)iY~0|dVZbRg9pKfXTq?z;gB zp6ZZ!&vWto+WSh_F}|He*fFuqgzVw`z!0wJ(h}TT#=SPNjX@|dVT=(5kB6 zq{iE!nVIW-U(>hsF-`9TLC@K0Bbxcq`6kWqXmniAqmG#?VB4!>?ZpNA5&V$hr>}IU zInJKv&7{HC-El!1|2VDy0~-Y+gH!dx`%&GKwiZt2ABCLEt}0l-Y4xefPt@3A#Hj)z zV%TIuJJ=|UORwcXB3O49++<|Cy0!`vTB~;pjxuY4--!a7=rmOocs6Mr(A~E)nxr(N zJ(G{w_jbyS74?!sR-{_}q*hBafZF^60PA@;SGF0$Ik_p>)H;eUK&>XKM9Ow_xG}?b z3pI7omNw4pdd)XAkMIU*rc&TZYtEDeCrzVY0C`WdA0HGGTIC1*fe$rdbyPdRRck)x zI7r~tPZ$NiqTQMR4K@-Avi-SS{r$~f`~BKa_yavLUPtTXpI-zJp)$6`Ssr>YZ-w`85|`Z!y;DtttPucFQa|5VPY^OfA} z)I7)^$XMAC8$&jq1;w9AKA(jEtx+Onc4JK$LKLwKeNsHu)&sCALSf2yfW86D$TS*6m*^MGQ!MRrVX@>S?4&wXH5&r z+R@_!N@6^|;uB+Mj%tc83e_uX_WKS8HAF1=CqLb#9UK}?Y(Qs=8jbW{mXS7GPBr#8 zBMdN@&jxwXuSx)IRwDe>38pohrJp|9y?@3yXin(1qhuL5B{{y;@LZ?(HBr8(ao&h{ zPiJlb*b)EcaYo9TG1nXY%?utEv`~|pvGc$ws7P0Akx~rPaOWq=WQ)-$zxN*EsldU} z;YB75NsWCu*j87Ldh9%*_QxjwGAf46rW~zCwgj4jh1-wyU-XMcL1z} z_;_)ocoQa{RIqi$u~Am}<%BqmDhQGDiVpm$L%2{O540ED(b4m?^tW^Pl zs#R#482!9g#E_Qu!uFJ!t_PTVV$OYF#}4;dPs{B()$5G=OB5ee^!Tg1rEc?20_Q{L zyH7sM2U-U-Hm~Uau4+=FpEu#CD3c(F*shlJ>*ekhJy8}k%|@F)RW)(^sa(BCkov6w zp9}3eIs|PVX?q1zIG9X73w_F{#l~{NS}uWa!B5?Y05(v0(|3Ln1IzcshO-!l_JcTY05-lQ(8? zek1QpjQSPK`U|~8^j8|a4s&yp+<`Qy_Vp~^6mtZsH&_&FxW-g1@m_m&Ph!hT7YQiJ zCRlB^ow7*hIBn5!l|oj+v>WgTy@zorr8yGKAQOuTrO|~GlgXu{5-2$-BSR?B5-2I% ztrJ1f-iwB75)CO)s00;><<1p5a(vkyy`43kEw7jNW`~J}%Mw?U6e&p*-Kj{V1-`B& z{}OEFY^7e#{l&DLs+aSNua(tH+gZWc+Sz0#;YE?kiGk|vS<_Wtple6niytAIwbmiA zewun+vW6FWwyZdO#(`U42F08uGzXaP%XQWx_Vg{?2o3A?2Q!toQdCc@!df&(3ph^c z#VG-KW;~JkO2fEp!y^ya#30>Rw_=&*)k){k>o+qaiUspgg6ZYeiIL`l#%6zn1q;ij z%tNk%c9gqLg|<2Z4`XJpWZ3sP502*!bj2Nq7Vsnh#_V46Ub7IjZ(g76N9L>fN$DXW>1#0x`-X^j|68Zo#Ls#p|^Or|Y z_-nO%_=hrEy-=^-R-flxvlxRk9aN6du$NGb<;`BUJ~7h1>^RMFFY#m?~1*ujL5L#vRw2$6+y3= zzC8JIA}&r1wu8NsBneIRIDBmYxsJdu1{EEZDinfGW|#Sef!jSwwMIhkFG8Js0o9XP zyC70ZS+Bk7ckBk~1S(}x8fyPu!&R;3uAxdhPTTD(V@8nsBoAght|N?yu_gEggE?Iwwrm!g4Ax-&weYiDz@DQl66}>9`<9OtkyX=ou)X$&LztCA~==b%ehGES8ZQd9U~L&t)JC4q-`&{+ z4d~C}Ki`Gn%2A@fCGHsc=(kiidihE_tp_>DQ6(5OI@x3=?~O!$w}Qj3JYX1FG8kPU zenx4u3H!aOM2ZO?n(qA&t*uO*g;Pt*{Mp!cff2T;CSy=re^eVG6ukQ<)b4V4J8l)5 zW9D{E&a&1bel;(rQ7!)(I(uIsNhbk3p4TUzy7u-s`8q0|>SAs-a|%U4&VVLr@K1n{ zLLG{QE;e>YBFNJit+ORTC15YzjV# zQ1$Cm_214CoDRTn--ju!dR_|$Y#9|6xA81|w`?O-3RO6DFfwKHb2pfZkRhd)3KZt)tSoMvGh&N!#xMD zR7Z6Cv`U{>NyT=_nm{yg3-Z7~1*l}+HAT0~iiFSo9Z+J-)U1uHgE;n?Jp@db)}*l9 z{w=2J3wQx>u(7{`P7{Z+3L$(Q#}8_(-t5GkuXWZsrlrJv*Ia^PDY@V|CMBAf7EWlyDiyb*ZV0De zh{aiawGMvJ;^l+hX3`(~&K^;==o#epdtCeUWK_c)LaHe@olBH%rU!%-A?VG0WH#iy zeI~}!Z_(7XjhL|JEYu$nVQvP)cEMn%`X%z40H41ee1e$uB-6sNH6P&&8sBXtkb->T zEIT?sxElM-0ey-qLu#`SDKzjSz|7{oHMB+tgQZ$4>obwQifvz5s7zEa7PQqtWk~^m zzGOtm9jmU68lVw(agkzzG9f72+_BxFL-NyB6n35qsDZ0*8nhuwr}~~je59N6P;@TM zzs?d;m~VrQVIAeJ4jpHcHT}7dRUU*TW(2*lJB+}XRZQwdg;h+7#fkJ~P_Ua8JABk% zO$AO3LLn;$PLc8u!;Q1}%}{~34p>_BHfAZLmHD}IiVkZG={){Mx`QC0Mwq%vOGk2?ak00btX!5?T4{h;89qR1f4<={5#1I$LaGwD;3_EFza7+fbLp zv}P@MEc_$Du!9&mO+E(7SB9({|KbtXu&eI_X+){le$}!FTg-L0J({)Pw6E({04JnI zk91;q&96`oQ{tT`l{;%djHLx&F2oph5(T=)w%Sk>u%+FR-2~qZreQkJkuNIz9-YOL zP>Dih^PXu+-fm*d?no zr9Vde+mD|MuKWZJ_Ux373K;1kDa29w)l&K-wI7B|qKKc^2tIf6h@%Xi*?w-2Nq%L$ z!{DqK)$c!;;%zDOxD;HIqMKcHAWu0CA9B7%dW30Z_cOisSbsM%MNuH3o?k*hbE|t( zC;tYHX0l@eC!B>oh^iiGnu6-GFOR9>`i`B2ZuzL89*KaK!7lEqf6=VESm3wn@R6YT zn-rpt)U7^_UM*LSC~_?t_Ux+}U2b61OFBXn0D*Y)70N^mvo9itU3_9Q7~juR+kQJg z3XP&@U%(;m+TeJpt|Y-}*LPP&*2YFwcCaph*6~v!3Z1hu(G4w&1#RZI-B`UBL*e}! zxMd$Lw<-`Ui*j_CGADsgVEE=}!xiJUnmbMDt6bBiePas3u2HAx3T5Qz%V$5n6>iloeb;yt$i7DK@8Yjve>h&v| z6kMe^!>92E%wt3>=X;L#H5qY}#m~i!*A|{mHe=eBR7pbA(R~@RwuPZ}pFx-Uq~7

b0lrB?~RsyX9d|fP+L1S7Z+vo-+OK|C>?%Em0>G8MB+P=xbp~=PG zH&9O9oUNCGO%IgR{3t$3i_w%tsli^bKi+PvSko^#MQe}LER10Bcgu0|jnU6b1IYQd zP77mImlOI_`v`UD0vvo*J*)eew7Fz(P7-ExJKl8+-e2u7o??$tJI(lN@}K)W_Q%V+ zWC0F-P#JnM)R+lZuS1Z`c-zfn0u18!c6DR|A>Vq#Jc(6Tjye1Es}@zxXp>)hp94vS zY)!gIZte}!E@er@u!b+UM}GD>Dv~Pc4f(2(VTh5vyz%hH>6)?CmuAJ4Z^>jwkq2-KU1 zePd}+tHK3HL|97O^ouYQLt87bzIFl^pM< zj=l?6Paji+E9mQxI5_Zo4NR(9Vo~d6NjQ)wVLLPHb3Xy|Vu`qqlG&KEKUuD4luS$F zyGY6jTFuQlnMOf#WV;>DL3Q$(mY*Qh}r<4vdsE3PRP0O4N^x=I3pt(HTp{RTYkMx6?pdbnD1*3En2BSb2Vv z`c`eZPPn=&T3t)8hL&i1%tJ8i(vM=cEv19)4+Z*dNWiIaPZAmaGJMHZoT3(0Ugd$h zz}rEgd@QNLx+BZ8-p zqnv=v#I7C_1FcV;ROspAD|fSVqHvszWB-bgp-|Y?D-1m{Z0 zkO@h!J3rvr2r#g#e5LhHXEYPko#M<5Ks_y^bL#9ALR&*zAD>!BTwfn(JT|e$0xfow zd~^&$eNt<~DI^%s*7fK|^9LZjMD=XMq(!H;wP&I-VK&6X<6<(Y4biGtmi^dC`nbt^ zJ-~(#;NvxTanW+{^lblAT3~AZ#rA1y&??hkBHi_MKkH7wvIO3thR4Z=HzlDZw>JeIW~WH2^^w0KROVHGM);=k>_%P|`^rYG~kcmq;G~ za+>9>F(7`#JAN1DicEFL{(0C9V<5%C$T{nmm^!~>S0_^@!cLV(@B{TL#8^<|;C_}Hu!gf?-q@YR)MAD6Ufsmd z=Ukn9GA!*%io&K(By75zp3Y(}O}V7lO-5GW`E(Gn=FB?v6ECmk#>?Plb?f=Ya}&m7 zH#_Ynsou*gOtaq8U^B_)4;P;>n=7JW6s~K>_q-hHLRxr)JQ=k?F>x{#;$x}3eQAa0 zxrEw>?2fn))wVS;If15r*4qp@t>4?zrAVrLv`;F$6FSdl`FsZL{ z&e4ap-pkw;e?1Qv@2u7B{*K+tj80wOC97F~o=UuRk+Q!(ET;4W?nW7|)ooihHK>F2 z=tq4a{NWHR(PmPl&2S6_*&yGvYDWauHp}Qrxz=X}&NdFal(%hL-`lfP&(g#Y!zi1T z@;i`$a@U7!QZPze+sxwDi$Y*#@1$tg89SWgczQz%QCV|Ne?NYX#SH}>$Gcsb89|{3 zOW8ke2MlVW?C(jiyzd2l?QH_2qq=(3>2@f$Jo28O<= zyJ`Y99iiTKG_=0<&EneF3%$SX+qw_QYk!`l`B)k zIBg((T%vM1UzTs}aalYkCuioGYgld@6MeO*`q}tV=ssw0wt=knojs{xkE_eyI6#I0 z(fpi&JKKGfaM~W@aH^iM9-3 zPsPEpJ)xjo!Nkb_xHq!{kc^WVl1Y_IMG@*dN{{yp#TWtPq>zxLqiTQRWa)IjwEP_mMOzIqProTH-Mr~*T^0KBZv5%P)c9be4uL96lWYv!O8 z)p-ENOQ4nj!KSgB?%;k4ZecXpPu#-F@p16l|BJh~fQlp7^M4`1-7UB~GdRKBEx5b8 zL(t&v?m>eD4Q|2R-GW;n=wK7%P43;jvU~Tw{h#yBd*{5vOwm)_)m{DTs_JI=e(Jkp zujN^1z-MfNfLF?c;?$_Cb8Hc}D!XAr!wn>8Xil^6YpJn|B|Plq)jD`Ti)KLxk}jIf z&i-;P=9uba^FC{H0DYn+_EQJ=_{aF2vk@x?ROx58m(rWS)yL7kCP?Vo*rs~AUX$-f z-A%^G0v0_yyyUEDO9Ks;^OBvX#qlQs_yjwar`ndSJkQ@-9%))7lorT{Y`ui$9X$%i}`HYW`o0A^(&V~xO zyUt$J+iLbCh?2kS(=~k?^>D@?DHxAgZjgT9_-8n+8#?8u@OhS}8Qj%rEcvIx0}rGyy3TS3gSef0+5VIaOqJ8U>B z!2Q!_Q{g+uO@;ob_;rBKjUw2*~7e7$ke5`BprF26k~CAF6^FJ(X5;3`r|aR?U4; zyS#$4IZ?@|J*qqEwN5bw{Xt3A(NM`yno|1htW08LrOW_UJ(cS2_#_FtanpPh zMU}g|n8-7aBYw6%VQ67p8jl4;K9Q2Lzr6l5^J~1PZG(Yjd$Ui zxDkS%R6XM86a{JnR8GQ2e~9AtQcy+U9)jL!@VHH+4yM4fBc8bTIEN97qOr#1QD4_l z(G9b-uKIkp<>JFxH2?4(iiZWmwoiIZF(_|X&0)PGDZ_Fm9rEfdQw5eM0-M({&Y zfQ!SunH3KnI~sA&L+rrImAmXjw-^l*j4K7jIE`mZBY#=LI5ERWVPcWdO$?E#TH1pv zHt?!Sa*-OzaJHi12eC#})eQS`xo6altm)lHiP&S+JOjnFM${<-jZ&W5woFQDg$LZp z5mgC4+Rcw%;5qong)M3we~A=l9IW=|dFA*7%$0x@bPT7|m95{N!vY!JBOl;(OsK}I z_py@nMIs}N@F36by+!JJ%9CTZrpj^fhj-PT4y(CaRz8_2#-HDtK>bxIAiLX|2e9uS#zH(khT_>s5(yR!Q!y;i=cL8s0j^nx2LB+fe(N z_bMivHU?wr2WbRi)JMNIRmvZkKV-^;oBQXLlOullg>shi2sdvYr6FL?C4Cbs!;xV2 zIDsE&3Fh*j-u}EVRC5G^y26cm9=~qRT+A0Yri&JF%}kD2UHC;v1Ftdgh=*7{S>b|e zC!vAUXnigd`G~aKSUijrSrpxzOS*Uj`trldD$i3-^S0Tn@@V5u;(L+|XXWyOITh3t zkU}hTxci`3ii9IlYffD2JnjT{Fe5%I->@^y+d?rZkD7VsH^*GUdf-X-i3`vl6x28* zECzypMK@TMef^hG+JC^1{w{<62RP!t+uEvGSUFi}$o?z-gNKh52mo?%|D6J1=K`?u z@o@ji`YR2>#lgzX&id+@Z(;cV4haE3l>XeDT&!FG9!MnqoDn+@2P+>t7Y{E)ln+tSLuM%9 z001FD`?DU%MGiqf*n!-vJbc`|yyP6*|4|(9C-jiQ+(5|X;{^(8vGQ{9ar}wg zUv|t5vCRDw@jvT$0jz(H_-8u+IS(f`C zcv*RP`2Z0AU0#SEFJu8i7H|Vu`TiUelE=%+%gqBZ=;dN(XXWGMV~5lo2wCFgg&g!B z)^c+}O7QUUkh62LvjTZ}{*Vcf6aUW-ypTQqX&4;jTz}h=ix*Oc1G44c4-6pZ;N)S2 zG($*DIoUZ`Ie^@pKynU_|EvUnoDWF(oLW zkf1QQyr;5XlWQbD=Iy>xv`@-7`fwi~qs-5Z%lqR_S0{6*!y#y^@RaMuuLeByHPnt{ zAv~&6K$;ieoX(e3sU!8{2DWtg9^pvNJh$e2cQBv*LCbOGe6X7M`pv-9$M+Q?X`yqY! z9JxOl&?G69K5P)az1nu@$YLFl61=GkUa<2c=U)E5r+of0wEQ>9=PwQ8pDCZebfEw67XD9+fgQlb2N^5>Eye(8{ha^Q zcz$*I`a#?>;h*x{#t(9->10#N6!ntBUHKi&m~90R3F)dpxeC=D<8O;JM-y&(oZ z4oh{koyVYo)4Iju*N%@+%c#}uiyAm-x54*Jl#G<*KXgj6ma|GqgU+4qpF3YW3#OHX ze5P`(4h1--E%J}DARb^)$1sUO9OV*B@6fV7l56*ybit^btYlzzUF#86Lto8=v z`QksJDWD3?mXZfQ7sO0Dy@f4*d$)Uomm9eA0CdVl2kAkrO!M`4%)WuagpM4N;tPD4 zyXn^FV?_VrO?uoIpmg0g?uoKyh|c>S%3>;a_3J2=Z@T7NbH1R@C`o(Y!k}HJ(D!ch z+;(=y133Dda4^{3j_f|-Puu!?jQpk~7kIOsgsjJ=SD4Co2VDXsa$K~8Y=z!&AIJ(* z@*H%z794}mQkLS(AY!ZiJ2%lM>=9&Z05r~7H=MZb{3 zG#-Hm#mSJfcDu36kS!x;kcrls5OUDhh+z6WS;ugcs!pYNXzI+iXto`JUb8e<4LoX5 zEEsNS)~WM3UK$)R;?Fg@K2{>(mE+LopC69I*C16xc^#$?H_1_C@xK4@LSWJGlm` zVJT1~7{-7|9$$ueISVn>fan>fHd-vDox?$ff=YXWw8gkL_22BMOF{hwF9`ff$%_eT zmk9x7duT5{c+S$#$?6?=CAq=9}1R!ev>AS-t!zbIr5oO(rT<)ZBio*z1>tm2zlj7 z=@Y2NJnY>v(@ZD~yldayN}TP{*#ATbo?GV4Fya#EyVBaxfBdA7x5v-!ArB&`DR>D6>h3ohVlyYM&E_Z;0|Mxl(CdcUsSKW0)#VfSP3~im^n#PcwQJ9MKZa*0 ze5*Us7TzJO#ky@W>`fg3#lns$^S~Q4y?S2$06sB- zu*b~l;hY!)TBga2qrNx^$_pGe;kGoTu-y9)>P(Ag%+1=T&V0~>p(M?e zzH6%AC!L=V<04d`iqPl`#4~2VyNkvBndJ*>s$aJ0)vq#k)a%#xWku*Ps7ou1?37D*ZAE5CTW-dqFkitI7RN^yKGJk29vUo?u9h5NiiLo3gLau9VUF!hr~(T{6X8K*k;AJ+-8MO{qr0r zr}Z~vG+rD0T<6(hXVG%$&;5!CeW>Wqq@?>Z7dr<4_%@L514g0r_7MQz2ZZouq+B{N z;tg1Nzc}#)TNGzDun5ZkSXea@Lok*y^uz=t3KWdR0MA`u9M%!gfcPb55&|N+kCl7G z5#eT>X3^iCv>Ydhg7i>=M0-qT!vaD?>C3mii=+m`eNdmNRSoZj5Dvx30de#ZxCCN7 zea7muwJK4cK}-XH*nlt!0;L`a+{%*-f@n;TJc>B#Ggd!e^-u)}Irh5@7*NxB2w&Q(OAj1f|2vi z?*$`WAhYxWNUi4HW(Gxppojobq~A|6CGHyuWbXG+6iR=)&`uTo24Y&xKWB!%el9R! z&px)w42F3|Q3J-E_v>UT-S61vir?=9IMew$MU=JmS)V$LNwlHJ*+ z2JPGNIh;wKVOV$z0{WQ41A?=Nr}_lIh{>%%0Tay00kJpEn9rGy@4&!AW9VlDw<``X z=AjA2GXlOb<}<>L3*u%7a((D|uOzWyto#Wngl-^xLXkg-(2is}j?f<1G1Zq99-wKB zJ|DtjF75~%NlBmIY(*LW<6u}YkM7JDp=C_-45hWJ3x=-g^Ki#cH^JQut8x+C3_EE3 z)SX~A1K}d3>%+Sfa35g($(UTI{L%m53_>;iiXg%2zDbaveuCbyZ!2_9$wd)r%bZs| z(Jzoeb*}@61Ohh9dpT2`7hY`BRu^AvTUHl4L8Q(lPJ4Jy+1+tQyR2Yt$H7ey%eOsJ zFrH(77l>se{`axo18#u))&R+Ip_3^|fb`Ztp0@JVK<$+;7%m_L6@{RmF*69@W+UDz& z_1gC7lq?uV>l7~-7UuPXzL-0@qWn=jy+dF@PJ|?U8)4!g8^0j7 zXs-f16+RS*e>CEi%ww#L}W4o!JVf>k@W4q(xN-U4{;>&A6Gg=)dOw6jT z)|%bZPdz7k#*OvaLzwA%$9mP#i{MnDVxQzBQoZQJw;#*4{o0ctW4h@@A#~o*$9R~IE5cc78DSlQfwV<$8)Qq7p zByRuk?b@&5tMWDVj-tv26df%MjV5i}#luikq1qI}O(2+kKjnmfCkUxLCT`yXA)=CW zxWIB*J*Er@CRLp0jF~K2HK?Q7Ue21eK;nodE4>ItCUWO_7v*G=i#F`?#HUf-|I?ij z38!HG#9jB7X8B=wxbb)Y*Z@mt2D*8#epI?nLy>8F7WeWS-WPX8FI|s}!8h_X^2;7M zwr+f`+af028H661ip>Ru7h&+M`wuHJkA5NtP9*s^(AuWQ0`>D^_xSn*N6&6z?UbTQ{e zl`+p|8c96u0@@@58!Bz(e7;zGJEMw)2DRBd6x)Y%ItqF_5{B>dXkP*le{ky@9-Y3p z^X2N9whUp}zxn-)wz+cyv(sA`AZo6U)c78LZ_tzdnf!W3+ywJo1)2E%<8#-#zt0bW z9x68Dmi`|+i5VG3*Sv4}Bu7Lazf%^jFJ-E(mLgZ`hyQm>#x9=q0Wklc`OZu{OS zhFId@;Ni9Vp9hN=!PLQ0uwPT?1t}nu$|!nS$as}DbYT6eN%hi_>tNFLlKfc{xrvMQ zn!ijR0nz+H(4Yt-XYa`VX+DAPJ3?q%JC`hITiecb5&XP<`TbUW5bS}2*m3Vt7Oh~r zE~Q_ZZ(_opDgxcLHN1b3xY@<~ZA3pG@z9POnwGOSSHw7PXLNrSvC_UXafA|Fae^$o zh;!LDG8mVWM(?Ug)#n%1K*wIDTCf{(P3s(4=k8c%hT+{29&_75fu8fu8_3G1nCCWF zeEofNL+9B=(AoRd&*R zCAFf?DIi<~#)eBbp`)%Gjjr}xRaZQObPky^N5_lx@;fJU5V~^f2>ph*lxSfGDcH17 zl|(t|;ZW_AeYyMXN|UFX4X4{Ai}AAB-b;Yg?QlV))Kkjb_0I>o-r%1P3qt;tYTr1{ z16i>u;(Pd z;}Ywm!%f@}KFs^`zM`KGc5Q8o1%k8$316{eadg^F&^nSRm(5wnIWnsDYWUBF^1N2! z_?Hle+C5igW(@-QGWTk`ExwNYbopgh+w(E7!@SzzVm*RlLFZHF&l}66^|dgCh`VIy z#r}w1g68BqSR*o!1UqlW5%x}ncK$c%a0p@G9Ky|db9+% z99)VO>koy-08`9_p%)VpPo3XFqqzPm-?T1bJqJj56}3rb8XQEi*DUzRJ^oSqPl zPMw{&JaNbRVdpn7AsU2#h*ld>QJ@p25Tm0KiENN9@s|pV%KPGs$yDDfi(~o;8y|xS zLEUtaVIVr3tR|2~(@(1UA-_&QgT_;V&a;}yp$`G9ZX~y00(O}UIIK(d$AGf@>VEr#nnA+T1EE}t` zP3vuosO`vumy{Wfiz7b?vDRz)8R1+E{l?I5^LH(7D`F~FR^pUKNfwiaIM`mEw4o)W z?nT1M+DsN^Lvuabf|qcXLv5pNgSkEt8O4gTB6>%I8N4ocYhYO%)>Rr zCXaV>A|cihP>{7@j0X9zKv~Qq_9drX)mQ}cXPHvL56&@ZDN0$}L~8Lw>NJ^T`acxJ zhiK~AL~5*L35n#yhb-A_1-b;<9=U)dfz&4fAM!S~N2Tkp`|n2cAmqbQ$~0{YU4g8l zyik@O&%J_Wnwt9U@l$Qx+)rIGp(x?!r98wTCmeHcPk1_o=kz!P!$?3uer&{jyx^=%V?x~LY95-8 zBGJ7eXd4NOt#BD-WXF#6mOZNuih6im^uAqC->2({Ih3ceKaSaX|1$daq7JNwwrjja zJwEPj1m|VWy9M$unOijn8#zhp)&6*GKkH-N2oc-|QsyprlK8Skm0x=4hahH#%U-Wv zueYKpwh}4|k9@vI{*K?^_a2f_dEQ^6Q8>v$+5u!@&-vejHaTcF$2$Q)_uk?2Fz%`~<3NZewml>zy=# zpcRHhXyDO}nTN`9_VG4C?Oa%aQ=Vk1X!Xh&!B7%BEArDw; z8a!#U4uFcd*|)R=rwFDqqTFFZ%dU_gO>SG%bXw=)j_MsPNNU@IBMX zI|j4}Fb*yr%+1Z4wg98}<-H{XrHHaM2hA8t`63Y&xi^-DH5CE*Sz61cwn;!tL33Lx zV%ym4OPGF4FM2%1R14p%29v&Z<3k1ewaACd&kh>S?H2KVlcFJF z<4mzA$D(jG@dau=qwE1YETdw?=_~QNVNcXoOu_}aBgvmBZj+tu=HtLD(lHrMVq4@U zMMu}+;2l7Ld&uKNNm*QF7wZR}^?Z6JSZU*8gRe0Q6(}aQNwDvtxRWoV3l|es=)eD@ zXW|mHZ@)d`pN_3{1coJ#WIFTeYubKHXoB1avwtW81f{$tb1E!oO&C4OXgH!~^f`Xm zntE89*;uV-r^aWogr~<+>rLCR4=zdQoJd8|+`5%z!=hrBb7h&z3jS`MKm>Xu>;y5e zsSDFB;1Tw(9e&F+l{H6E1G_xz=dQ9$D9Fg0E9g|%RN3j`o}*;vx0h+$maPLwl7MA< z*Mg$;UxffX1CHx!nqd>Zv|P82s2rIx)Nd?GKR1JAo^#WI7Nxg0QXFX#z6(QNUHp=n z=(^jv%vlTg*vx#t+O_`@-YCmiYuPd8B}U`8y@YQpQfQtqQ_Ei-Td6L1Q~ z#6yD@zr7i%WAg>5JMA)asPKHP2v90{Sqb{wEMqraJsB zIcAyfV*g^V2!m>hMB`!U$Jk@cxGehRM{G;Hthwqc+Wd-Hb*Y5{CFazz0W)G&da{PA z5B0(jy{_B@u{gRgAuH1_W+sQs4RvAKkv5*N_A)hem|%EFgF?mjouQrqv{kTtB+pDz z?N62IFNwvSIDunP<3QFvp7rC+9l1MF_ks!Lhiq*|Wu~{bHY6oxwywLTtLFYVAtRIU z&0*nNGwdx3MfbI=U9_VC3FmN)Z05&tV)mkH&Ve(BvwgUEew+7d(Q|*fU}H6>J!`>2Y8$$Vr8D-f zDwPQmOLb{u$DkLUoz9QVxf^eJYJE*2<6-63xia5%w;cXmL=9=k_gWo_*?DR?A3&GR z^X~DCirqHzSWf6LBnWqqApazK!J;#QF#{{Ta@%%;f=RhefgJ&?i17 zH|YYW$0Zi^VrtHB(v8j6E^Di>Yvt{&*k{n5$-hDUgLDsZv8BoUYZZ^)DpX?b&0c5L zhbU5DlT%36i=%R=%Y%TIjgGPbd-~T>W8Qf)u|9Y9K>PRiZYr9#aHrW~v^Etyz$h)T z+s}LotCn9ZP`uto89TX0pW71lZy2h5fk>DwC*NaEWZoe*-(BcETrY~=WOGIFQ9)|< zQ0S~<^JR>h#ji=hVNA}(8_*HGqP<7RG~9A8Q{OQ?I_Hr2al?SEotZrJUD@3Rp#4z0 zI7j{Pg_COKx90}pRGk0lZAx}?Xb|r(63Teu8SQ}Mj0h1ej{{b9 zXP~n@vG$Z6P5kzK;|CaGt6xKy6LN@zx%q@&$jIo?pc_AYD5LqYsn=JX$`ztF< zGG5kd5U;n_+)B$Ex-HeGlC$6H!31p&lf$)3-WxX_);>y{M>)>3w%eWzl-DkzJ3GjeH!UC$FwP^-fWQOj=c|wJpnF{xdBaF=%*bB0};CK zkF*N^MYF1mQ`bYo=G!^;s$?t?89{jYdvLEESz)uMGpr3a3f3n*I$*1Z$xoIOtI-*~ z`Sm%yQH5U0l@ZC4G#hzci@>gvSLn8!1U?gFoR1LBfhegcVz*L`C}Q<*5JUkN1cD&3 zx2}>)^=H4s3&qpeO$X^Y$^MR}t!BJDcTAG&)xpx_ z&1coRwKGOl5~U1!n<5ELG54f8Jch#eBPS4aL1=(cH`?<$dhAEAMq~E8Nuzv2r4ET) zG2Z>du#MctPb`UyR_+~F2Fj$btctj><&!2Y;~8W7>==BK_d|J=;q#c=7>;~D<0Vmx z+g4Nb;;g?lzqb`Z7pM@O#$u)u`I@TI zD;G@{hrY^@r6wuZs}a(UFOl2;(n4Z0kgXVkS%`P0ZDc=VJt@{HMLp>pJA_r@cphZ{ zb74mj3zl*BTU#y?*xK3Ib)@0BL~LU6+}r|B#!(F(-*F?5Ibk@S>C)Gp>ayr3H!++D z`H;9jy*G4DOF?nhhD}w6V7&+?3&peVpAJ2L;yvnm0$-tA{EAjtSDK-#aN+#v;<}7z!w^ zvufTbXi1FLP~m0Ce9mx5KUE>>iZ|pQYhBK0Qv=Blb@5B~Sgg58qv8SMe#-T$IS{B8 z^9>EE7$MHZSj`|@%$>tow|LbIrYCtQlBU# zc-+6r7^K5{sqvV(&nc)cBRZ&8#mA1`XtPbW$>|Yns0>&E1d-I6f5{j_tSQICeV2m zmAL^ZyOK$5uYlETaaT=!rXy@V4W{64grQBA^Us;h)f-hOv$)TNRZ=`temLTY=%bS6l33?X6wdd(rzsvU z(`WB?(vbXCXSbKXhCD^@@Cw^z@sO3)X5ck?TExQB#Hr8K_=D->ZA1YcZn-}eF~cTPH=UChu3`LdqRNp_SN7)6*ikw&e{&fT@x4Nv%?=&$Jt)gVBBGm2iK(TT zW6Q72ADrrO2y)Sb$!7SNj5k-Bp!DOzOAi{fxHkmX~nCi1jAk4Wlmv~rg&Z_-Vy zYF9U&ESR5Hb+G-X3t|Md&ynGR>*z-oEi&-IH~H?}-p zw_j}s_0l=65eh;UD+9As@?b^5i?OJi0G}z5#bx-=XTHLcD-jhtQ5S|o=#T;lJpYj;UBIqXmG5z5)GqLP=UoE*Y(I!((;+qjsvL^~5omoVCi42^4 zgo^HUEXJGNO5JS=p?VQkYvqvut&Orcw>Dx@Y2Uu$2z^}E-qJfhAWSv2814JOytpa& zy*7n<>a#IDlSS=5mI^tu1-a^3%l-$>p|)-N0n^#Ta{?>#wh_Q8$zESlWh55ExmIaL z>T!~({NjxEh(kSnG~4hrCtJ;NBCGdRyl~Peb+eoN?_bJEZ6sSP5E;?#b;pJ5rWeTx zHdkb)y|_I1s0HsdWy&ej%klQW|rV;JO0Y*U~gGihhouLR&3=Y#iN=31_F8D<4g3RZp z?Xjn${W4P$==om3RAD;jckbusZt z+Em@8F+sg`OO#Z?0Y?Z^CLOaX<=_{h;IoEFYmdy8hW+lAd84FVHm$s#%cGvvm*dT4 zmZ*FwB;hkkh*Jx;@WZ$`8*L_@-m#(VwC&Z@gL8(Mdub2^Oi2xafGN`_YW}|vHN1L% z@dBA^s9lF#(XCkSRs1koHiV#ujDvs##wc)_+N(e7-e&RSZw>647$v@Y%6 z{{>3P`ufRXz?WQ+aTz%y@O9^x*2`5M z9ryW4`i`!j7Si_+0f7grjIiVAzJ^8iMLs3f$W-YyY#*QGaoQ$2`+$rd!JWCM#Bvyj3TYln290HEHgG%elY87k5Ijp zqi7LJ`OXmigKwWWGag_*Hu!nwLrNa^PdcGF#*}Ht=0yxx zwy`54o@v#vcs26&j0eN*W}q{@qQj_UK zO>tIph%aY-KAn9TM(N5pnu_yqQi{LPRhY~op|<4AINsTP(Rk4w$>R##?4RiQDRFbL zcC!)}2u5wwZ{Kh1@drQau~C=C$8Q;2RSCbGgPVmF&p!s}OCz^g^rj3vL+q#$Z+Ses zoPQsncm4)F^XHpu){$bMkN@5oa=3yHR)Wbp#=2Vd%id4UJXv>vn8&@pGGuyn?u@MU ztF^S~`dZzRcH3O@4UurCw6RaVQ4L3LVSPO2H4=Lo>{KV9Z8c%(1zn%0C$Qmi*$^L( zW;3d1p6v`5<)pKI8`;@o_XGQc5M$-lmi%bcNh}Q6YJf_`QZZuwpl%X}B%3!yGnXJm z^L>MxoB7e9bL(wvZ-f09IT#*6!mfodgsHP@%C-~J>rCckB&pP*sVONQO{bE9P55@< zdM-&izCpMj`#91avmhcIiZv1)6Q)QW?V|bwZLySIb9OBs1Nn)=gCCUjO^i==L~A`t zkRRylY3k`4U}$MNX>YmCu6BxsY9B1He}I7L$dl&irEtb&#=g@gJsh78_^35JaMl@D zd@?QWm6~)jAYNkiqEkhVz5k2>q&%k++L3l3&s!8Mct_FTu3-Jd$vWZ5jQ#%o{xf0p zm^wp{koW!06%ip@QW4JPZ+zUi8UQBp2hgB51OMDLwqmmXOW{5O?;3U(^yX;;_H++X zKwxK3+{HKFvtqZ6>f#&^_s011G}3edG)uy;6bqbQ>=qiPU!LjQYkO#O#|_wuC}F>t znAly00q)%z$mVU8oRIC_Jua0>tmkr5ck~n{UV0>=HJ?+AllP7DH7E zzcPIfHjF&|-Ulj5N4W3Ey9FAwI`d>P=e|T3c^EFIVd=^|7A$*~Qg5`}CKJ|{Sb?fl zN$XdLJjnElJ+5;BRR@! z$D{EbYX{3@;H0z6!JSV6XdK<^dm35l$uNWV>?f{#4WlLfzXbS3UIOzJ4u_O>SIIHG zE)=dyRMsGZ-^INGtj??JHs(k}|5LK%+SbPxkci15$AE88a__0r+1hOP*{7C*AFa<7 z6Jt1}NdhxTD{tb?#pZv-7>S}qY0WSWdDwdM`LhxqcmhzLU!utIn_htKVtJ>cLGM7;~IQ` zI%ws|w>puQ5XN*Ms$Y#nmdHTKQ=IMJ*Bi9G+Y#U)+Gb349do^LyH9b6!w^g^6dvJNV>(R1VT^V5VGL;h zcl?3dglOy8+|$PJ7%$ofuRc$Jqjujd`U*k2%gmcos$w>Zw+eh}o}db6K-aTb4?%DFQLqFI)v z3eF@yjH36DnjhhQs8w%aC*o>X6HM;`+3&z<5uCw(%CTzef57D5>OfqM%}jb3Y?vUWEbVKvi&rl-(w)C;xygwpgy(s!L*HbnFBtprj_kc5#U3u@`&Lr}%2}LU zY%U!$J0&k2gZ=%DK1uyE=P+Puk@V{RY8o4F#<=e;Q)n6+3-wO z(-JmT(q>oK#(AcmRreqXwwIU8QCE8RK}!T%N8?`i*L@0#)mvw9QXCKBnPLexMnTF- ztw3!ge|n`k!h=Q zB6(gUM1xPG<=pW&+MfLZk0x?wcQB{^K&ghz-dk}4pmddFq0q>X zRH%n8y0-D^6C*`4Ex!vLtZ6?J`Aoz@J$bfBQnade#C&>2CsFb{f@LyGOosZmXMER} zJ<2OjBMXkMJ#>C9Su8;^kCKAtJtogl#`e3dyJ&-Eq#FFJ!cZ@GjoYv1NbroXZRO0E(wU1| zOOa;MU!QW+BaddZ<=ccyoOgfp!TW2yn zvAYQRZsEHtrE!u*MOTh5py1a~Gs23MbotD8LPy*K+5m@U3bk)(yd$6le|m*?eH%#i zFBS0rU=Q+l1^oZdK%c)T>i>(#{(tcK_%GJh5F+TWPQw2N0r(p%ATBHMr}&>RvO~;m zWF^#{q-7-(O`IY4k~zc)$HpDvbpgp%^KpYX;K({!I{mT6_+VjW1M$!CA*UCG_%&HD zkh3Yfnp?QqI9id@|7S5srkaPdv%Q7GA48o#XbGDZ1fBUm27Q1KJm&u#^x@{^W(9C? z0lCR}0DP=`+A9M}`_u=@1^+2dAASWke`Ts5O$AFv%QbP#J^f%_` zPkjED;LqPlqJIwn{hc2AI|#%BA(Q@!3_TP{9t@G81 z^rFaiUj16XN2d?$)0?h(=IAzV#tlR-u5a;C4MN=WT;EmJ9nF2F+8%;`=!X zGiNo#VsReUjJ2(H9?kYN>V9m)Gyx$KR z9>J_oEe@};!+lt~`|iq6%Is~Zp`ih&18@C~?_|vb+X(8?!A_UPT6|K+Op{TSa2JbK zE8(Qn#io(aD~dgqa2JuIp2cKfO5)~M_gYR8RPT!BEzF`m^_F+JmjIC zb}GzEPd#dhmijCS5uuo zq5XUGhnJJ;vmA>P&iL~{shC~IWU06~C78(|(6IK;~psFqc%YNJPk@i#JIr!E8 zr65od?6K%uYuHs~xD0}U3Ce40`xC7_^0lhlXV7-NGzBR0D=cV0hg-t}G}-=wlths-5&l zWOpm5ZY**S4!d&oR6*5jSm#sdPTs2B^!J}<>TtrLb2E;b3xj$3`3*eB)0a07c1?U3-#~Xc0j#BzQ?c&1WHVOa)p-k6^Jm@r)1*hFd7xBq;W*rUv3UHYs?Q?lF{+#m6%3 zvQ4zM4&lryK^LARe@7l~#lTTvT4Hzu>=+l2C$$1h-rSF+#;4(>#Tkx8LhE0^;jQI+=T4+ya=P6QMY~k10$MkW@l33Bu|L zA{ZA6(QcfPOB-U(7myVC6(&s7!H-V<0XqduIY+Ov<#R(r;Zfhp7rkt z`#J6}xjFdZ1+oRQy?#w(+#nD98O9S9X_~mpI%p8BX`y_;c~Fp6%V4C2DKZPM>_OBE z`x2A(N|wEAsl8(GfQh~DtNcx0>1as2-LJZ`T>}5bM<)==^3`bxpIwES_`7ZZ{}3`f zz!1T-GuG<)R(pJKXNuKew@&k5K-c8$5|Y!%lbyvAU-iMMi{L%1UmqMZuENX+JFhlQ z`8LeBr4}8|o4Vbkm7m50LCv$itfJ(uxPnYKRM)2Vzq-B|ToIsbIDbq=?}wU65iz$l z=M-5Fw9(o($`kZB!z${J1A-WR*t4b%?|IlKUEO*g_ppe5h{XKPvu~07ioBcRjrAR!H@;^F zZlPH2DruLhdRW1J2uC2M$7twx9Ln@lZsItA%*#xXM>fXnKCS+@9lPJ-QTrp%>br;a zcPu}TD1(zhXy#$c)o>!>eoKMaMOOh9ePwO$8K+C-jj-SC)UR7DAyCab`ukf+7b;P5 z)qP^;#3;nZ7)vu3vq2aykx~k3ixLfym}Gl;`U7s>NKV^s0twR2=$3oTN~UbwCM1W5 zz9yfnvfu=q%h@W1n8v$ zVL41YsZ?WZSH1dy_-PG;svTo0aYU=>Sv?ig>Z@dw;bYyo3}#H`PVOy0#&T}U3i?`h zd^dn(bIbhr&4D#=LVrT4^h^*F^-H=-G2o3wgO}~TPou>vTJn+BC^2(ciiMNbm`be8 z!YI?&!$-d6Gl7|zG@d+9z{j_YDj`{4q>ae6T^}MjSa&uW2xOgU=S8iM;|NK<*7IXkR{lD#{Am$*jA?Yy*+l-M zu@LeOi={E+&Q4*9;FU!rl0oFfNe0qWnW@MQ8N(C4g$@~2!N?rJ5ReNGDwgK<_f2DS zLPkuk;<@fNW@`KBmd$qIU9q+-*8=Bn;pp|_+yKewGNcN;AIEgyS1Qd{K!4)yvqf^? zw{EoO*Q@0b-l^5XXdbXU>+SX9vlmWx3Y%MZ#U4hT%~yjYzt&UppwuS<$?2)6RAr@#KE=W$ zz`0^05GvJ#p^k>y>km9OC)&vbEQCJAjSAlAMg{Is_AbkT9qsqCTys22N)CZEEPANn zon5}(M$TGdVn1^DEo=cV-=-4p7fq)!_;hNu@T~KxSf*XOt?=EhH@r~bxV`3IK|fi> zF|=rD4mRhhAF_#>x^d$=FXGpuoMugXTUwLun|P#tz2jZQE#PTOdPwKN+S-g8@X{*Y z)?1SClYa-h6*W{q)RrwZSC!NX&#V7T5>Fh_RM3y(Tv$uxBSXfH8NiN7OsGuz{Zsw^ zM~sD}D{^ykLKy5(8XrLNi#b&6Op-ndWgGp=x?g@`oR4C5q0wnW%Fb5sPQXk%o4 zpMtcA=6z;lwzV;}Tv0G4M_y3XtM{=SSJpq8u>@3fEta(~BbO@4^;JSoU2RtG+mAlYqWJi6y{I)k0_+(%ICgtS zRYf1BQ49U+)*gZLi@339mS0r2sBVFuHOoyi!f$Vdp0NC3k&ES6ZT>Ij-ZCtXF5lb5 zA-KD{JB_=0kl^m_?!n#N-8Hzo1qd#|JwR{|dOFWDXZD`i&z@`Md^qpRhq|cl>h9{Q zT5EOp|6cdc;i^qvW3|wbkU*QKNkcgeQ}(1GshDuHV0iA^oKeO5ige;8Z?dl-8F966 z9MK}Wm4yWau7xFp7S2h25z0|P83A*j6t6*WgkJCmGcOb~jU#algAy!*kQ}`L`B1l^ zSvZG2@##UDL9U_s8;1gD{x}cvnYIRKQE}` zv10T1&-7kUz6tWveN2OLw?$iIaNM`vCPjj;grM;GTSY`p$L?dogs+INEb)F}pkrlQ zBtw58d&dRYHbB14Wh z5y631k95Ca=u4Pa?6Md>Z$QEeM$s6J zKNvWr5os64rWE?hy-Ntm2wdw}_yxS?R`&%>`>68~ORxB1SF=lO>vM1#Flj1bN1{t) ztDn-Q3s0r zfO8`(&GZrWe$IC#visJyE3)-?Z6(zA*48F%2k{h`OU2P8x;60ABdsTd(;>bmB!^4v z!3b-!$oqnLnoXd@g#-?TMW>eT4irv+M|Oe*BXw*7?@eCxYnsr^R60Ek|~r=M!$v z0OS*{!q-c5o+HGjiA(E`9pGEYBJSJlBrd!?6nq=87bcJVC`WGDB(NO_<`I#0gWQFs zYnR}&Gq#Tj7RObO5l2T=T#C21pLB?!o@g0S(KaFxjY_pq5=ba8JMMnizn<#KwkuSL z{NNqjvZF1}kM8!G4|Gl0IFd;bDG8Pt2k%m=P!|3OBST?4_j93Fw1uRCp~;b29d z^Op>z{_y@!Ri$6FnmxjG=UzEiYw~1u$fgSubwV8z>J=$g7z400Xe>s?WrHIffnkz4ug$Xd2v0(p5i-8NQa%K6&`4BXH5rYItqSv3-?NO^) z6r!8pv})2itS|S8(!|QS*WdqX5)nO1AJ*3CBd^+%I?icXblr?QV$yixALavoD_4$h zT!n9B>;8Vs&coos1DRic z(A^KxEKy@FF?hhPp8?-HH_6OWz*?k&*ig{vE0Hq`Qj}l|A2w?dEK$XB@*Um1>%e`i zbzmU)D@$yesKJR{-gg7QfQ=d6peZ1$V9|O?0zffq+sXRfujIQy3I(e~YuC-x#t~)I ztWn@_A=CmtJtmxU`tVR`xO6OC(vEs2xLbQR^9VUNM5>)j)RakMpPBJBnhgN&R-$`q zGWnAHo$!|emq`S@b)xC7rSt1EvrY^*yfy3yK&Ni1y`hS-ijF$vT3wUJ5KDp6Qt=o` zi~B>~{BG0W@dB7u-2AZ#sN?ENvOxE`Q_t&<)Br-c^2rrhL`NO>=iRd_g`rND07ec0 z0YbAXnoUsXndLMW(=V?wvJ!rzpRrZXknmt9`MHf3ie$yl=7ULr`ZY_a^4Oh}(I#PJYCJFJNKe92>=lk^3{ZKk-i;L|O2FGSVaUUN98 zKNr~u1&t4?&2XZxO*v%$dVTS&?l`N~uFBMwC%J}X`!K1rR7$Yw#aN_Fg}de09tV+= z`|RLOv`dAg@YtTCtWM=nNo@S1YJ?(zCW)HNVFL*g*;qOX>PYCyqDUGJcK!hxZ>{wb!KNHHc zJ8FaU5Q|J;^E0Z=YQnnym9Wx*i@lO*47&bDO~3K7vLeE}aCsvY%P~|3Z@w>czz+$Yu%`F+AX0;7N|VT^Ypu5fXT_dn^p#pqoj^bic5=My+t@!q!r! zwW-<{jP8v~rP-uW*SP%rIw2ij-SaJ%VKs`Dga(fMlj?^C30O5L4U(2(dt0sVRwMgP zc|CL5nvSAUyL1CM#|+ylQI!+L!MhD;qNsUVL$%jd2_c;yq3At~l$uxe8BCf^oFWwO zFu&xx52~xFr!=yY9Bd9myGW}bcdRuoGHAkyxMN9U=9ye#%7kk7I^4*M*WxB1WM!UX zmPpEqq^a=3hYlL5OLVNL?lV*}GEGV`WeOyR3~gZmxbY-azxIEqEk`b)NGg+bt}`+< zfAh|qOnl28J-hPYqvyLGN~fcnC}T@0Q)gz2Dvgq-t29wj|61zFXV+liMbfz<)*vxnYjRQL*^J1*HGZ8d(N6Yf@t@GHYa*yoRHu6l!#hm;u`i{@- zwPW6VJJ`MSu5}aLoY@Hilf2bk6_)Ah_)Dsrs4RGa3o z)Z0o7=>`+qyE5S?rLZ)65a<|EZ77m7JVGNDF=mZeR(_7VdeiSHwy|c5;#)J%muyW-GP0DdX?qm`YQX zSbMcECncO4G3~w?E9mD=%VXAkn!K5KOPjDQX=GtV8%uo=y* zQS6#x*TiFmoHWfvfKi>arFI`BD)X!Hch`2!252GEySg>X4;5y0#ezR#ueGc7%ytOd zi-&1lPncWM)^n*x$LdW??lf3)6NM!@_8DO!P-&PFKa#o+kv3#PYNJlT9k3$1>BriY zNPdOW{0!=%wwlxG>32*mAR1RP7t(~K0>#V8Mckq4{oh1$frxL>+1*O@mW`T!;!5#H@NtZ+t z$BIHz2xlw0jm)3tp?Fw{fl8{5mKF)mYWI9Q%uU0xscB6Rdb1SlLtvF6*8#ar%s$1nklIR0&3&24cF=_>7c&^eRIKrC5HJfKNd)SEFwdXeJsB`;EPbcJr+Ag8w?1imj$M)N-g69U$j;^VrjAaxBn*j03Bl%> zG)sI0StBv^L9EPp3yJ~ubNb_=VUlzOixonk2&brjR_;8VXNb`D!!xwM(;lL=PApv8c$Em&@UqgrlwweU11N%aWRTN4?b0Th&%2N5D<7{N-#QIi3#2##Hh_2 z>5(;(KF}@c+8kb^)sEk|oPzX2tWxq7ufRZuLUlVJ6I?i~aIIA`n+L@ndFFh}2UNpW zK_0m{9*V>IcXCV<^%>+rf~LJ6X4!QuOnjC5J5o%2Up0wpRr$rrzwiVq2*g3XdW^w5Uyf`dfL)j^2E{hL-C z5TMM|%~3&O6`B|TnxvHM6m{AUqcmzE+_@I&ArTlsz77cYn$=@Tu7-Liv$<0)raeZ8 zUp(*|q6A&8$n<6%1Dhmm)v{#K}MTU%&3=y;pkWc8Tr-1?!0mvuR9hE zbJZDGv(CJ}qyu{yi@1)jnLi#(O;JmQTej;5C$z!7zdAp8jt!of%p(oq|JvLmpd4^@n9PO}PbpI;FGqpz;lioGW zd2;H0y5@eZ-2t2JVs%3FM#V}S;yso4mNl1Fbtjj}v)Fq0Rz34FfD&atnX&M4ojhH- z(ZNw>rqjDwWF?8tRE3LfwFzi6pE@1)G*4pXU;3H_KD@k7@qnxCXl?n)IYiKb)#QSg zFP__G8>C@5_+(Aitfsvp?pp!`;&4-pzl1}7tcecMuiSv@LrUcQtD zni`k9S&U!XxB*A?2kj|JT~^!=SLwSK%Fk=ylM6z9L>mABb(d-Q7LA*I9n*+}y-!{$ zb54^L6|Y@1mDz8gvxUkuDTtj(?E(IWY=%#p&3I!LiR~95&qV%d?1Y|mUrt75=hgXE zpN2NbDdrz$cQ+0ac;8b^+5mheIyXcb2U@ag!6A_<%w#B@{p6d%_>_{)EBmVL9OsAi zBlJSO3kODcl?e~6=A(0DrMl>5rlnp4da`|}M?_;SJd@d+A#pT|OjB8fNi zTcRA^Hs?d%#*4Q1+;+HSfy;nhRmoquQqO59xZkHR*7Y9Jbf;@J`dY9?<^g`S+kxQi z{bKDSV;E)JliUYJ^Z066pgEou16$`8w;2=u;yKd73W7t|Bqt@HK7+PDd&8R&qNC`{ zCp8@2d$lvM7N6=UBJ$khg_fR;w>(Z0mYBI(dYG9HQ`QYof2g%(4Z>16ViWL4I%}8% z`i%_wW!)G)Nj9=0A6-ZK{Dj3$o1exVi-pqw^I0HJT805%3+_OBzxfsNYQII^M9}Ge zpELEqkpAA+t4Gyx4>Rr;*?A|jrrSukejnG%_im#~_SUr>h;da8gIhq(qqZIF@dbdt zC9{Q8s#)!>XCA2-`-9%cr)#7bWht0LA<0>O#YC;5e!HwC_^KR2MNgp<$E!JL2 zV!v~KI7+QLca%Mj{6i1~mX4ITW<3+S*eD%3t->PyA!?IeP%F2M!$<~xM9a`&{S-ad zZVn$VN2Xq2+XDU?mZL7qd8%iFR2Dx?w^KIgEb2|G=Dqtjj5orC25a-1r)HDXkM9Sv zqu;t)y}!)3z4YM3Og&6>n#x;_<_5Y?j5l=<3^`>}OZAqWpK-O>9Ez^x={~;*YD&~X z2CEL!Xv7mnlOe{4GNlI}){j?1PJn0WZImC==H^s>U0k13tsiO$vp`W^b5qpy+zp<& z6u_A_O_V#%jYUE)<0-X|T8EE)U8eMua>V9IpJ7UeIY?#}lH-e}3^HRSVn6yd&aSd$ z!K^V^4QP6nLP~2Vcj6ZW(NdesR&HYG8-bbKin6kA-+r-OAbKh|F ze3jH~lL^-pPo-A)9L82ofvC_TPNHFCHk4~2tC0OMJJN|x9gdOQ*oHaC8MQm#fomhM z-_!z;s$&w6l&Uc+6{uyDZL)~itc_b^CtsxY6UFp1{h3eB2^3fmG_()q5ad4gmoh!A zNhMuG=X$T*Xk$H8t<@BcX4dEWl+hb3)Cg)bd}FX#`r1{HiiC?i_? z;`z!}Q|%^Mi;4+bTf2I8UcC`0jZ?KbyJ~yDShulpk5aXvTlyBZ+Wk7{4DG()x^&)5 zP=#^9-%53Tmxi9euXB05+Ksub0Hc=f_-UrXsa!swCABkWkE;l$-YO-A*5A7&gn!{- zGd<_bT!G3mt-Z^im^YSp)_k(5v;{zN5VwqUf2lVe6(^Amwwcl1H?q{0+j8X#iS_g) zDWtHKM!MddI2QY{&BNQrdBrYO5t9d4h4yjg8pOd`=C!OC58jl;h?IL|P|u~;i_4`i zB#=Ed*?~8CUv?h8bAP)Nnywm!gi^;ShR

JMDI5Q!mxe%86$-P`#hYOy~~Vx?cXd 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%0Abr?yW1rj|;+}qM_lNq^u66!x%K@=Ol zF;5bmc8qjFI_Hs|s0F4p8n6jtUUYcLlK64|Jf>m6n7saWsKR+}g~Cb0uwCZQGbWsQ z`*g`kIOe*;g023{3i*es%J1$29ts?qmTpmgQiL$W6Os?i!pYYiAYFaGMii2RbELsX ze@n7yU&SYho0pQ()uMWzpWx)(lnQyA{lHoZ2({%j$Ga_Bl3s!}+_E@IEdBe#8Y!++CY((JYin`CkRU^dhu;XQ zx{(RatGh$W+u>c7d`oL`O}?eXQa}8P#*8`)Z+x>d-&K+P+ztP{88wcaSG`jlXN3Go zx8K7leUozDVP{Xh^M0VzP2G@yCImE~8IJX@HQ;D*5s{^Cm?V!ZCdG+~_fpq`b)oOb z8?agW2Ss~WtJAM6v32{Rya>&?$=sf`$FldaQKW^02}5C34exnBB6Xy!^id5F>?J;a z{Yr;pUoL@t)i}X-+W0&%!r+FIe}lQ5$p-784P|^Uk*Zfym_}zLeB5%)c<&wgH!}_^ z<$jaKlsmVDh@dU{hNQz1{PB*X1ZC?E+Maicvzy3HbacbM2lHbV1Pdm`G*~YuW8>@w zbe&{KIDQ0KOy-y;eB_arVPrHTT0BQvV0n|@UD1)K#_L29tMUFV+5=JD50wqtkRoid zFh;q}Z_rU38jLsofPl*xm*lzdcbUe$M{+Mue(&Eh_1Ilq4Bq ze2eBbF@193;`*Y^tL~xcp{14#=WiR>XOFRU(GgoIEL-1-^Pp<;i5&>p#*EJjs#7lv zCBV}F;MOGVF9Au1Z`*qmJ&=#rWGyw7eR{Ie(Xn>$n6+JR#D)58lW{q2ZQZ=7=*j&V z)oPyx1rr&*+=ha%M%4cx?yaKRSfX`Z+c7i7%*-S+Gc$9{%*-*xC^IuNGsjG^W9FDq zjv;1<;cBgYA2y9U&Uv~$ddzBdOKMfstd`XE&41=7(yk``o&X-A-r)Jh2r6w%<{T=y zWH4p0w$ZK9 z`mA*s?Xu&C0N;XX0ADuI4D1YLb_F1KrMHr=gzMC4MdITHEm%&aUSR^Q0n@rb=-mRKT`ASAM6^nGC5#jZvvI z0wOS`wu~pyi(j=xT;N+gdB#E9dD-Ja28i;Gh?r7|>d1oN^W0w2N~_!rCj{c5(P?r) zh36fLEt0kk%AvHMzP%_T#);}pGC=V`u3;|_L^nSfJV4Hut}BNdsGhC3KY?_ks|4W$ z5)))(Cg=Hr#Qe$Z`|6Hzz@gg>@=9UoVWKk?Y_xH_*P$HgK98>KjudYFp#CozyCdID ztgb`9+>wIQ;e{_V%Nyhy7B>uetdTYpws2_$$JS;XiL%*Lzr-2J;94s{{<_}+-I(HK zgOds>{+_lhNIu6|F;szNF(Et55PA?8xgeh%InXe(LXf+#9{2s|WxNiIYlqaQ#kt#u zzB$5|$Yw{CH4aAnn1JFSCcK6q8F;gah{MTDpfU`pxrW_n!vVzkX8Wi|rhI+Xf7G0| z2p*E=M$>8WPaH-4g3?1`Dj1RAf}2lK)6+0)#(PZ?pZEiCa4I~*n=U1BC&UkQIt>nn zOcrx^!Y+1#1Hu(b^Cm9(bK4tT7tCsx zh(@s=sN9oums+GU!%wcmmBZ}v(2Sbpx5u;%Bl-E$xa2&yZe3X~hnTJnT=7>-^Li!U zfv?O?<6CQAcMjA9L#!M1Y6G8w`?{-KLCK>iIwoy4;EZ$k;B0d%Q5_q zJ4|mF3c(H3?2IsU6H}T~f-&74OC{lx)AW!D#oKCU2n==^yR?WweY?Q2{KCz=v?@Bw z_7`<2YAyLJekb3+%GzoGV@m7DXu6O5nOO_RJSL&eK7I6$sc^e{CMWWhCP}s>eeUiE zap&nNCXGeGGE2MaiquEZG>)li`{hXuD9bXh4uQeJ zET`1x06?db?c^`~ZXt)UT!w<86%7L+#zOgJu}jLq3Vorn>iZ3>cG6hAtm-nV#`1<0 zmWU~bTO4ELh!wiC5)G)pHYepUF#~NY?Q(g}F|CNPs`s-^*2yWRg7Rs^N)J!A!sO+_ zTE&Qj@B{{qets4F3{7U$B|Md;3gOnmYJIguafb4GkB;)PX8~Q>g{f3kseuD+q>KD7 zo>e8(2t`$lo9b`!cEL*8R6P#lAI#u$( zVl%sel7+Yc<+B@%>dB6tXB;ZMtRuUNRMGVSuJTd_3zC_m-u~)IHviN)9aXusir+2o z$!C?4Ii~N3xktR9h-~?4f1l+OjY#A@^!c<(ec{liVnGTy(}l5?}Hr?Z<#4+AnlwAXbMXh_w%|x)_+48>h`nqgt8AohKs*SKy}7PuGW_A zv9zBjtG73E6pvF!nqTG_-g4ruKtA)%1{HN6JjWePXFB6CgEoA3){qeRvO<=&UyxHf)ll|h-&d=(-pz-l1!l@ z)EA0C_SVkYYB*lg_6zPF{>z6#yZUO{k`@jjLoCGQcG0Oy_{t!EBn(C4Nk=iyWY$x) zlP5tZl|q)xv~>;wSZ^sUIc+N>Dc9J@+PsB*TKkF_WRFZpOGl}~G)#SUEg}be*%f63 z54x`=vh*2l8oS>89#oO`8)nJz94SrOm4W8 zeL~s?gfNHS7)us6bG9v~)`;L$%r+Q%x*#qtt5W-66-REk@{18k!=*(SoP{naq(1Nc z0KR+{xfLiy-h@Pe3>*7AO6e#kRd_{!84`W)ifA$*Dsi-^x&9-q>G@$z*e*gxGg>C^ zLT~T5M8n!gyIV_tUk%4nd*H&W<4Z3k9wI$C^&vuz8Yd-sk)ad^u~?5lCHE|-sZAg> zUsx)P5)ZS}&ixPG!taZ25@!V=Mi{I!*NTciFC7^?0a4$S(z2=7_frIn91UQ#=FE}3+@6?|vUd5&!e_rOl|#wHA_XDK zHintqoilw;$;qX!2306-jA$kRqNndRk}r7IKuG`zM*@gG$%ei;K;o?Tee`8}pZC2^ z{V1*|iLGeLxXEJc463J_?({cT)v-A$z16Hu|A0*F)WLIy{IW%yPL6%GR(6pcC(V+N zrqWoMojVXS6AP>hqZauzSyj%@s4?xfl;YRcV3I;2MGbaOdCn)7rQ=C?E!C=ObxjWH zU9U|XEl%oP?PKklAQi3z!W7DbEJ4lz86)EC&n`8)9W(W33{X?Q&iK*L>KVrUEgpPH zkC6I?TfZWLvw9#@QB_XiAEb6I$5dZe>t8|V+xDKB6;yP`7n~p8gc%tfP85Yxv>30>yIJLsar<%*E4+Un*dKc^Mn1*-CkAMlBT#)NJ@W>6Q|-#XPZc zLwIXjDZuIpbU9Pymg!Gbyl>Pef6-PLJuBv=PYJf+haI4PE+wb?sz9(%O}vY!fZOKl zSPzCIVM{a!kQq>%?onJkWy4A#>&y+`8xL(;s7^9tnyFx**FzbSLt*6xt>gw#jtgQIE zy_rsK_~lG&d}f-$7(J79)h?rJH^PWJ#Hx_ISwO&Ona60^!<8A4h^2fkoR)Q(oUlFi zt!1~iR*OjuDxpcppe+uw zEuuYc?8>USLUJ)J~fxbF;Y(HUZ{;F zCu5a6cLWKnEtC6F!^tdp(G!~|F_v{$A$vzq8`uv9=wt@1l|LCKd`2mOD_r>WsuFYu zF?|Pt?FW$pg4CSWclF;3G(%}Mz zPsN@ppKz3WOM=r5bfiBRPB4xzSnvIL z9Hy@sbA7IQX~!E}_WO<=h`tX+KW^l>y&}?XOZ{;Fr`Uku3yQ$HnqL36D2*Zd&QV1{ zt4JE;v`eP5T^b=t&oOV$7H9lPqz^U)#FYr*dJS{7-0s-vK*irjT!ee=ACxeh*_6G# zE%jxv4T=M-CLI&X-71xKeFd1vWe1k7i)H7PuB&8sq`V@1v7>o^2pUxjBDCF>$mU5p zmR>lgp208mC9~C*%@5=V(xz!{r|3Ve?77e}cUP36Ig=*$G{^Cj7(zW8>qnxd zkqV6d>(D|u8}5A^PZ#qJ!PM;6OWSo$ z12Bp{rpSAt$LF;CcgeF+-43ct#N=Du_C!nropwR-g0CR4)}^_q z$5^a5iID3P(dZDvol{x>E*+h6csk`N@Q7NkQiGWNT7-?A=f=aakObuH%ev&qMd`%2r_FnT1 znm-c=6W8-vAP!2vEqbxZnS5r zs!n`8^9b&i(yF=g)ypiWYYWt7_s`h#7d}rj)WEk+->jy!$6qJV-)d&SZjPz+^EMPT zc=q+P=1*ya?5}r%B9sOa1_W1qsH5E8Bj^Ii{C=O zOP|-$s!*x|yiY4Y_Ux2I&(KgW^CAvDQkhXl#=VH@p1@5HGGlZ^5+&I0BSY#IvmY@V z^uWFEolFCOrC!!E7SmGjmAWgM;})cNh#4abPy&v~5cqFId2OCZlp+fs=Q}Sp)8XdD zmfMh2fx;S^tmXY!h4uQk@$E5ZVnBB@h}feFlw}UsgVZP~%}FpBsnpjQ#fIwfsTUnS zMwm11qo=oqu1#eudF@Nfi*|Ex*Q(G2@A9G0#4(%nd_~I`M{ zJrM7(5mG8TAlx?FxC^=l0@{E4iWmwV3gyZ!>YpNc7X)==Sbkzy7K!%Rlg*rq+Y2dE9n;l6rVpPlR1Ekxoj7cL6-YY>fuYa83J7p3 zj+C;y!oRBw(P!LqKbz;g|FFCu=;n5+11vP2RmU?KneLOm%fF9H&Fe;iqNJtIoO zF!cjg8ZUaMfNgjK@4(xih2*mYx_NvNyHwM;LxU-@01kVAlk~KoPUzqlc&y;Rap6y$ zo$w_*1j8dc+>}KartOQ)F8(aX4RdODnc}2eQX?L}k!!vC-3Z}QXHRPGJf8zX>kKK@ zPBjy!s4F#Xqt6P6Y*rbntYk9tY|G?-nds4~>(VmSV$rNjnxst3(mp@G;8bC;&c?92Da^LiP2 zOJH$!WH4_0K!elX-nzcKUln<~1Fo9r%RORcy`HhQY<92z-P+pf;Ra{x@U8sYzi2Hh zr1$6f)j&*jV25tuJUj&z6FzpAf@aX6m72z`f{>316BGKjOJvMpMVW^`1)z+|!^q>p z-?ajY;<2v~Kp~?3$+mULGpAdl<(h>>r)7wcuC@;M;MR@19*`Xnk$d@bPqefT73DJ$ z4(c0wIrPRs#UiP-TfcUY{w)Hlg69Lik>H<%<1~-seF)a?*X988 z)=e&f)=kfbQxnfq8obbNF;5ZSHlFO6S83{71f8GhE-3$I0fyr{PcW-ES87-79(fm% ziQ)l$lu8tu1;>eT%I=xM+uZaaRN>K%NLREz;~Vf?BM+Y(9Z2WK9zs`mDck3}Ny&&h zEd=@y5T~hjoMqS4Wvv%syJMz22#MiwyK1CF>uww}o^umqFhZKZ!!N?{rMu@yqUw}X0bhyM9K2tx6sxtM#%?A zNom#3)2>PJ6ggD0A0s8@eOns)?G%*gK^1hn^6s7?_`Gl4lAFVggR^wr>-s3;j{E*F zsJh?(D7=O3bNoEMs*MIWi2Tr$TfB}y%C}0pGFrCr`ue^>L>3VJf-KFShx{-?pah%3 z$?fIRyhttpCjbZol9UXl%YRXu7QCV7XO%(Vd9=EfZR5!a{(`TiYjerrttV~i-RBUr z&N0=ynKAsGh;$e*hHaj8tz81nl`J*n)&t>Tslct<|*jSu=DJdgmVG49H1z}Ay0b9~w zBN({*<5R7SzRPzDr+EZ2fC&01p!^Vetyu5Bt*@W>1YW%`8Dt)IlwZYduIe-_kyDoN*x4N)@gkHE07VBJ^k{XVH@7HIu1{B*`Qn z@Z!qX8dLi$lO_-Gm?F#0Pd=k?mv1=4TZGU>ifSr*vA}7yv+`JL4pp8Tk{p1wj}@^h z7mn_mg&+>#7hMrmy1k`)etRS7I0l`6`}HH4$rZR~fIIzNsA}sC)WZ0{lxyIB`*NuP z_c1o%>_E6$$z$>nSsDq7A+&SqKl*I>gYj11-dcor>3Jwmpy&Hb=G9F=hNt~IH0`qM zuQuw3kst-M6q_g~sB{vVc`~n0EbIgVPt4H+ZJ)v~?g;t5L{kc{WaXYW{&B&xPPVKV z##1S5iCC{N`|&yMD>s@ZQFg!-b4l~;75CMHE5O(R19F+l#&=^1vIvq8vq15eC9e&y z#p*cK#(rd}Ty)c9`pAgTb$RL2NU2W>yCUf$t=sDRlgxo_K<{LMV)2&GPpXtRqB>Kv zTiQRU)YIHNnL1fl96ydf@Eo~AxCujM97@_rTGv+?(@!ShGbgUTP(9aO8w80A{swPo%R|<$I`O{ z!5bHSeJx#*OEhTa);vibd$DW^&>K>B`c0AY3u~kKnTLm*ha7Y71xl@kF!fZ~O96bX zOw27^^jqj#G?CrzJUxC;>M(KrE2Xj{ww+ z!9~%z&Lv{TKpRR^e2a=%0jP@~XGhwh69UPyom^K+C%=4Adg-4@=QG`lD+amS%-`N_ z%$nRDGmm$x2)14>l@FiX(ro!YFN~A+Ty9t&+Fm1lQzGJixJ9$8?*1Mmu;fWePrI5@ z@$s+}D?(HsK!X?b^gfd#_Vn>(fDqU_S}X6vdpCbh);__vZ93FaFmSrMWFWOYOLTf) z<$vx`>iDSNTzCt7nxna)_dOE39?F7_{-Z!C7k*QqkUhKawNEG%M&h>u#2ab6jgqSM zG2w~NJE5~U;X7XQ9YL}a7ZgAPCkGM4{9-0D5DNY93DeY6gbX429FB@IDKG(>s_Dv9 zisLT{H&x43A|m5o5?fizoxym(12Iu3>eswLI9j4}gHC8Iwy%LmJcj26r4pt)L!Tl7 z!$MqIoD)Ml9#DE^txe3)1<&mb!$Z#Pk-udG0?9*P*rM_zXjsfn5~)vBkxfq$QAh*LpHZ&7oSVQ`}vast?QiW#+Cgqt~3Ha0p;3vHt9L2 zIE#;=hQ#srh^7ha4{>toCf2=in+NI`wr_#aX4s9aYN1dMF!I-o4=__~>471xbQacZ zBtc%V8HG`KgV5M5oSm9;ZmEr&oycY9$TVg|0>B?IdEwXR0Gb0#F9Hp=kiht=Q03vW zb9c?cT+izdLNlXG@>877Tu<_^a_5}T>{)@|vNET;|JW;<7MOl6Z<y0EUujYBMY!Igq7g#t z9E%Ct1EYGK_Vq)2jsE>R>pAwv6|NUztlAG{Gla7>Ii^uTFHB%4cTs*|oMq;$@R%FZ z7t#X)urY=C+?>#esne7IRu!@$-QyQ)kooi%p63fY*q9**glL6wmn7v4DA}0Nx^Skm zzmuG~J&-$LcyQI5j=M5yHy-GQrJeJx?CX0G{dOT1_=a9@J?=v2^kv*t0Bl^~oGiv& zXtkTnJCS&r%ykoTbZIZgW^jYTw!?NBm0v%1G?sMg%c;oraBpRj{Y781e?&E7Kt^g(-xmZ;vp-+ z5md3!;d6BTKWzS_bw1&J3EYBH+cE+q=2xaj?-Sdj+F}L62j@oN*UxTqK|El;Hif$DDL9V$g>~p0Vp|kW;A>!Lf3zcbd*~Ky z#*iFD9u8n0xKVc-&K+Mr39N1MM&+F|_fnqr_$2j3JT}IHO;b)^ghXi2*Nim--nfi) z1Kv=bwH#gs8(L$_zb?rBYr;h1_70@N*muyz)_?zCJTwPB;W;-3@<#Kl6Y^4@()z^q zg{WL}Z^j0jiEPHsLSGC)w&NBYkogl=T%-CETSLD=T{W*>Q*WC$9GLhN^u@P?21TH) z+4DvYpK}EODZwU;(gCf1RIMFurzquO@R4`yVHZwp_CVr+q1!dI5Aj>VTFpl+=mX8{ z1^45K9h?ZnRq^8x*X)H>BpOr^L|$I-DyR7IBoYOp^)r822x5O5Hi-g}#$>+lshGXE zVk{;+MuWzs6h&CfUap1N-_}&j{3@bAc@*W|@3>=kkMAO*cc1<_0eJOffBXKH`@TcC z7!1mN|DO5JddvQH_3_63_5tzM8npMn(vSZaVwz(AE{tMswx$kBnqUyo!PMHF3_!*z z=5B83K+H!wHt3WR>@0lj05)ziRt*nJM{P0y7Yi>RFMt!Q*e7A? zB5P@DZR0`4!_LjZ$;QjYN5(4WVd`LOF6LzIUb{ zJiKJgoE!ia9yT5}PBIQQHa0SLHcr0(_mI(lyhhsA!IFav!1gaj`QOOO|5F)FuKyvU z`QIDh|G#X`oMi00WE?y^EWDf?;8tMgBjeyE$Gw2LvzP$gFF`R;um$PXw%{I0mRyXk8?pKfD<2$y=!n2 zFO>7L<=U{>_w$XqOt|jy3+K3(%9rK?wqziNwNfT$vybsEDJ=qW3zt8(y|qLtS@AJ@ z_EkBxn@6^<&oVqSKU)^#2=wfM|DXJ!H`2-)JVD;(@YxD%S>&E;@1(5L7Z)X5^wJn& z&S~-q`05>`;dlbaMHfEwzYd-MYl+PN?mz$MiJZCqaoYdM4gXJtOs@Z=kZEp8#!kj6 zu0+PF?Cj=f>hNEk;Xj2EfJcjmrQ5#)+QU-P(%jj?l8jZ+(#hJx2JB}X|HTX=414VAHgUgStso{Ew9YDV8yazEQx>h(qrOEMMh?&}X^S^4bj?Ogg5 z-~V*&PAXiTPZC=22fkm(vI19}A?s{p7P2*Lb9f zR3aDv?XKO$l}JwWAMQ}3RRk&jx8CFaPay^WQB`&_b{;Np#_a!3z?zSjlk2~<$A9qE zFCW(b^3{&n+Y2;Qv?xGveZ;yssI+n(7VSfAwn1(E4Yx=r7-(lr9cT)~?x~pHG2PwU zpN0Cq(w{Ei^cF=S#^ORFh8Eky;Hatbn^+~UJk$h{e!RTp2j=HZ`kv%H23l|X?%d`- zDk>|BLS({|eLA4Aw3_*QN16e3Cl8UP5i|ZWw!?X1K=vCM-QW5CwK~Frbpyf;R@C>t znR+TcPv#1W!r`meU|a;}$%%0ODP%1TnS7p})_3$t7pReew&~msv#~8pi4T~O+E2w! zd0L#ozN7~UDUgnWWFYHh?d5>KW66&Y3lLu>YW3Q*jvd|*zNUUU6|jF#K9Z+=LlXT! z{j%NLea3(V?7<`xgXp@gNoQRe8w)@|CxoyRTYlZxJE^#YqCyg#Wv#6-8G13N6usdM z-rL`ZNC4!$5V>?fep5u3oukBTnq&Kh=dz;<(mpgr^C)B+jNOD(N+!o5P?bfGFd8~} zO%sRMiuzfjYBBVD^3%i_Gu3#MfewsUx2cd$WqnS0tlO@}jgt}SFBNf4m=uZU`}h@+ zMRQ6E5e1f`NZe7&NTQugX_dI7eOxrG>C(Pcfxt#*Oo*hiij9n$hbS(Bi};KPOFWKU&_vJQcAmkkG4hiLky4n2nle$Aqf zBf^+DB}63yu@rAG%qvEf9_bomGmUV78MB9a;D&~e!W4yipfCA}Zoq6>8t2%QX^IV| zO*hVOTAKK?s2D0N{6_-L8$Z(^B9kQZw|l&bFBEp{SPJZDTDr(E8D>mYU?N*B(r?KW zHob7?Bl*SmRYNr~A_ULlI+uZNm}yD;IYJsns&d$j3A+(dVaT2c0tO}%*Ld7vdW4Bd zEYL^mekk9vQVN&|pin0&QHurX#_1cv!5oBtgQ5Gq;z?cI2<538L#@h&=9x*)q^=6& zXBt6ldP!s{+l0ELhq=5oMqL=??@U8tM?#b?K|~rMTFxX)?}PHpr0x|WP*9^3{M;P- z*Q~wKa@)Dy`rDt#Q1R(8k7=x>IX#f0xlMj|V_D2xGj^;R^Z5n8!fLepFug((1lN#1 zV!B5`3OgOvb{6v(Gx|F*%h)PnwEpzC$KC}2WZIvYZVMc-2HYlgLZqJA{aG)UcT7!F z?&BhoPb1W3dpd@x#vkA7HAEN0YhW6_l2hzw1Q2`h|3So~q#O+_vrh8=V_sYwG`T9# z0N3z!^2-yo2owg!E>08|0i=?1e>t283;#>TE1jfNhz{AHMJQXT%sjytwy!z^X511? ztupiYrhrhL0RmFAQ~%q0_NZvc2GN3%5tADwwyXihLR}_wqzg5QX||j}#$83_cadjX zZbJ0+9MY_>;n05&?{u)?CH$}@Fq4x97}*An{&{=$ax!X|UMM{$9?7vYwPMG{b?~85 z6A^d`|5QAIbFV*$$Og+9r9!eykrY2lp-^Hn2g`ree`+8kD zoOdYSj(x<-@Bzu!iHX#h2w)@ai3QWu!v{8L#^$)_5!jj~1pez8*^lco6QX>V!!$(H zkCF}%xH=_}bqgkqcxbXX9HyM>&#{ay`~2q-aZPIq8hL&rml+NX!i!Jd}9ek=wH0$&QmDi=$YXGhdF^@QMps5OU20 zE|?ryACk5O@^9(^T3rripOD_=;zq==)m5CR;U>phqm)a6%g4+7k17tmJ+&J5z&@Yn z1G|I4IZ2H*!DaEeE2);oJ4Fdh7w6;_!?eczEUPHfTc7|*b*ZwX(oWvrkODgFFX!^l z?mRCq11fF>(np=fp?^ggxbR#KOW24pKJ0x8_*%lN44{gUOtC3Or_EAyBI8NSnan#> zyP@)pX-({y+&tucjtfxgrxsCHRb_5dr&TJeT9U$D{C(PYC)S;CS>n9NdWxo=oXX%^ zI;ft1m~mDrwP0r()+)BaK%Am+7|5|`VcQHKXjTNjqLxQ^5E08Xl(l(aY>8eKG2f91v4TqJ=%wWo zUldA85v#QIDe4lr<*Vr4e!Ep5m_xX^v;Lhy}?ZpDKdUPv}_q+pNR=?Da zIBa>5G=ah`p>#mZ_xZ@uplq0p_YLS9{yb(l8zNiCw1WM=W(ygz**?Fd8A|_wtKoEG0^O*< zaCL@B;XiP-E*P$+$clLGMCdTb=z(Db2tONfU}0v30=kGF_oe9-y!MT2N6b^?G=9>Zagsz=*{51LkZZ2Kg=GpSCf$YaQs+#*T#U282Z)Lkrksv#pWu?& zj)cx$^X0>^iMM=$d=^p^7d8Oj|AID*(R3K{Fbu)UOkj1zEGgr*@HUnrT$i;a*S3i_ zgYpmMlcln1^2Lk9{nM!&#*ha`3}&mrBGF&<`IDHF>;$aAn7B;W({?AeeUr8^)rZ(S z|5~fJhw5{D_TZh0fX<>45b=m?l*%f;(+R8g9 z;&AxpXymV>=KLAn%C35H;Dz_DdnE`z6%2|Uxr!C!gAwlSpgVdqgg(WEc5(WfmSoouMX!HdOaGlp zPOfN&a=X3%oIpS8(LTHs^4j~_yPOS~ACsfl1BXI|Lz2*jj}bnQTp;3-C=z0Ub+hzM z*`)b6_V&6kb6PmfoXe4|2n}?|Xj9r+Ieh|DZ2FPy(=(rmjbTxtZ)SFC5$}@%l;-E7 z_zbHoRy-(5J3L@JapxoG&ncAOH*qy_g$J11sC+w8v^Fp^YYiw@(T|f32>>a@$1L2? zE9DM7<`B8*KcdWnmS4MhC>Z0eQ^lapQr6K50;p+X^pTe3-q18V*JC@cO zpHaxnF|;)jYglB7?H0CbdkET+Ui_Vo1`@j%tdwA<-%?;;YibE7k?YM2rF!7nN&R+x z^$eTh)7PYtd`8);ylVN05}ra415iwsoOkg#?n{Mu=&VZg+HMpV9A%Mmq80&GIi{Z_5HcqP~Lph$@lelyfmsP$)g2 znoQym^0As%J|?l+a@^~o=ZaWb#qWa~NfR5URu@sG7ZXPjhsVb+Z$b7Y?80D-eVUWt zD77$k9iXx@kbE`yh)i^tz?l_kVNFewjisphTfT3E*jj%2Cjq9tTaUWu#-#hBNN=sJ z++OZm0+Ft(_iqiJ?WZLTo*f@4m@O3xx96P-F7IYE0RaJT$F2|Gn~a|#dBPG_Nqi0%Xf-O#wdm0P`XZFmW5fVxms5 z+_tovD1!3mV%@{`g-LR9F~isjRr^s~XfuM18N+=OhfX(#?wta$a1*4}x+kzggl1f}`}d#tJ6l5h6k?7eNg z?7UBnm%lrK<%FM5Ea%-(xaL=L8WIfbg9ZaQj!N$pV@$1=Ze5p1Y!~d?{2l18xea2r z(OlQIgDEwg@EfNZW=cxJzsS_`yZxDMS3SM&t zg#(gqec#sVo;?WaN*JpYI~Mz067PW&OAJ4~GJpE|e8yl;_ak>g7 zcsh9_Ox^2;pj{MC3|<`C_?Pp!HHX`|>5#BjTLfiqu+Sf$#5d&r=?nSgGZy?I2~Kk3 znq}KIe!WKxR3-VpzduzJ{PGyCLrY%iyxLh0cDlo271DRwX)Ysc=)O4KqP3oWI|vKu z3?vQcAAP(-N~o(MfDWZU$Kq34ghk_9rCgPwHt2nQ)psC!#k|Lh^WXrT!~n+d%+8aN z-Z0O(*SBZOLDnAlDCrhZEoS>!D)U{wsV=VGG_#uioW2phHbMPW!%Lv( zMJJWdB0d4gOL$m7>ak6ro80+w(~sJPkrCf=zH6>%1t8wJ#<36965qtO1WPNbU)pY>%>5$1k?>dEz)o z-{VtZjT*$dNy0pYU_obF6rZ{ge$nuF!hxrgpM4&`AuA*va#LT?ZpyI?Z1k#aJv&PH zCH}%fWl@QQZ*V~r_+54S(*jrd&yUJsDl=wmyRE(DQngYtd)lt9AoUQ$<|sG}_#`7( zb43f)sbBo8G-E3&sPb8}v%jqs+jSifD2g2@ikmrFd{r&|np?h&q0USn^Rdt-od7Vj zx^tac83%mALA>FN%R*(Nt~t(Sgv7u_xm z26NoN{U~2PtK$*I{6IGf(zvhd*eZ7j^t95LX@!GZGwH3VyWLcIGRohv%**~hsO%|t znSIdh_Pq-!nls!P>X?P%b^EETzj)}(^rER|9Mh)b zmvnUkB7Ke+%r9GmOr{{R*hbkjPAmaW)pfYF1d?M+)mb4SrTD2cH_4agy#S( zB1u8_k3TJs@=msW?=Q=}(BG#Gm6rq|DKB@Ej)B{bRLw~fnyfOi(tkwpWuu8q*;W)V zkDN$oFX1qiqUTp-UI`B-031O1XA6QVO2%l#GX`w5=$dl)#d^RdKF?ZKVMOV2*SE|WKCOin&phHX2{ZjNgYSBb z1v|}`{mSkq34;;_6DNnuaFADAHR(&N#;uJ`gRj2sC)4>{?$Q@`h&#&~G#S92>VX`Q z{hQvs;cv&s$o)(L_HzT%kochd_cxZlk-U}Fv@=bj2Vrh|`DSW*c5>mLMD{V!+yuoG zlz04f(&=y+ zv5%dyPg2PhC!=z*-mD)=OP;Z+T5VkAPa3vCo^r5sw|q>s(V|u-;xb+Wx>%BGiCwH_ zo@&YT@yaf08G9ddBa6+@oqR&kn3jgtrA8Tp$STHfwG_iqyM=pNCJ}GW1ugd^XHS)S zEyPq^E5=?z_*(6yNZKbqw>+YkxAeHXIFGb)U@dZ-W}nt?Y3tGqW%a2*2BV|LDvLA` zN~67Wmm2YhRRAX zB&AgwE{%Wcp zk*3>D%6juZBlJ_Aj)H4mvB5Tod&ZdQYem_1O2-P_-5>oW`R0pCGy|))><9bk=cvm2zIXe30gf{ zyb^6W7cF-+-ww8`C*EQTIi+w~<;vS!={4>R4pOc#x^O1fLVGzy%Q!0Oa;d0VlS z^dD&7weHiOc`K&9+2JKhT{!WP{prAZ2ksf89hX7 zUC2092#KIhGYY}7*t}}2rd)m2(l}z`V4~a_c-rCa{_kCsY z>>fYzc(!}P2LXq_xTI@+wk+jQ$L8*y$VLDfH(M=en$#euuB1L^(-ldjMZAyoTg*V4 z)Ij;bq`5KB-oy_H&{3CR1uAK>9@fVE6NoQld@H-JM9t>4?(xZ`$}C!lnv+N(x?;O>xq{DDsRM?mWV`ha zw_|4w|vaLT- zcFN-)Z5ygupvb7EI})x~T#r)Y4kjyvPW{SgBYux<0`K-&uH(5*`TGW2pTdgWZI7P^ z3U{#Rh*k^mB+gwjH~V#)6!z(X`XVG zYl`i_#Z(-_^6%<>U-N*8{A-QCUuV?=R0SF^B97WxI>#DTn#^6DG2uC;Zh^A za=gscA#!qwyNSt(^wg%gso}Qjm@5i$YfRK)jEB5sm&NDu^auiFRJj;L4XH~WD(yUU z)LdKS*~fgh&5|7qOUw=ETgNqTMPBFOss@5IRNPEd+^5axzM`g;eN;kA*^A8tK7_W@ zc8s#AnAh#8@G%kU6!2R>Jn`LuVRa}?dPvQMZ}i5KzkaRewfR<1g~@7CREC7L$(2sx zJuAD^z(&cNu*9r(nPj4S&QVG1cHESlfpX{*1NEl6%Ascbeq zoAso$o0B?@+isvTJ62rW(Fw^X%uz-aMJCCiQ5KMl0sQcCSoZ}$rn%*jMJ16S)67$u zfD~G?@mr8g;T`1*hT^C4g{_IA?VJ7^vsH3VG3t?2JSU`jnxo3%2D=dUXCVwv z1x;LK$4Ol=M#+D z9nRN&M65sT*3Ed=H*IgK1U zqT^7y?oZ&DtuXFA&iQwggtNW8gFoG|V-~(RsK16;W^Wk4W~0`@OQXU6pq!~;DCBRw ze{(M)+~wwq#S)ltu0kaCFz{K_aXi2Uq`SNS*=wuXFWe#;6x5-hKBN5WyPHJ z@Yf(<=pE3nXs-&UwM=tcZ2&o3xvg3Kaw)Jrw_pQPiiR_ayR(Xtxy7nt3brW)0+b2% zDIENA=-S)%`g(5D$y@%Bxza-p=xfC5d^YlhjgiB~S4qMW$KSsWNDnL}r|)}pB171h z@vw-7t#mMYyrqBq2=VcTrX{1$s)ca1!Wxhr`9<{1+V0#2^=lMwHw_BgkZh9}7S31n z+Z`)o!lTP`v%BYDG@ zv>H)7wd1y34fB^jjb&w0aA=!+{g~JrC34QAi55V!lkJwqY%4eY z*txGiI+bn0L2c*$de0|H6Ye&?2e=wIw+Ij7ONo*Q4MMhK*s=@1b(aXie!Bb2AO?Hn zFXo)RTy*@Z_~OIqzcTJ*&)Xk1x-)wB`jV+>d-a&1wK&+5QLbbnP*r^u7z@2{Q#9Et^3AU|S9tYWzH-$FwuU}_qWZM*X19WhA7F0;>m9?i?}S| zAqlwKq_##7OZ2KPqD%CAH_d~}0MH~lpr296G!7;NnfY^a?{)Z?ngzuLgR$j#%abr{ zMlpPSMTZECBR2XuZWSnGkMj|LBcf48&-Z-IN7QEeHCXobXUKkN5sO=; z$#cB{@QfWiV|3(T(aTpu)YdLfW_|PrYoQac9EdP}rdALX{Y8jAqJWnVjQUG5LB7c^ zelC60nNePBcV9kzob(X-^l34&ioiQvgdt`zQk0*86NyrO@yFta6L3mSBu>i{D7FuZ zQ-LoaK$;gSPe6~i3&P($vcsn4JUT$}j(Ziz{BC_}T6AtgbzgEmfMR_@e1W*x{N#jq z*c6v87~lmyl?lXoxlV8(iG0(02@I>Oqy0foGz`DQx`&R^MWy%af(Gg$bB5v=*47U7 z8=YXof40GZthJ`o?Basg+t{?*t+J*AYd*o=H6VM!(uOzC$pz_MS|Ag`d&2rQWT2Cc zkyu+P>+|u1GE9hv(^u}Ih7lti%n8y!c4%S~7F0s6Z(>s%Nb_QZMxQWMe6qn2uAaq+ zoCadNy6{h*P$1I$C>ImS1j&!P48x3YlZZCwnnE1A0&P#=9_TaNy^Ap>IcyL}s%T{+ z#7^K8v%=iHEg;eYhEFz%`cUtz6}QaqtR)BMfDmx+B##I}LCvIGsKw&%ByYPrOk-F! zxX&kyV*~XksQXzl?g7nU6M~eCz7$jH%d zetL(0$&G7es^IMxNt+Pufo$)frqd@%y3F*xTh%VpxPl<8H3m)K ztkpZJfvJo1tHG&D^sD~yCm8cPXio6hHgFb$YfbU>J9y9D^*fP3G`GJUY&}rvgp5TW z$nf&&Ay^E)06|`Tl=+%m7Z6aV51s?KC(w96n)id}#|y&M{s>*h`Pwfo7}!9D*9QTJ z@AkjryCLuRZU8S3-^IDFiM(Kahjw8s4FfN}zV-nbUeL?|AikT?P2vRYIheUbX!-F% zjcW*Ti~ZRj*C!-!k&tPd@QyI0D%m~Am}`tj2oBE(UzhTAWPOkYG;`44#Qno18xZe( zz;?x7fmrn>U3zi>m8rhJAj&X4-@*qw>tj6OuG>04;eJNZSafxPnXI|5f}5=NT||h- z?He@(;^LHG9U&xlv~2;#P9T-JKynw)(g^ATvY{H>1!b}pd@+=O)2nf61W`BB%i4gG z(+h|O1I;DTO5_WW(+vfGfO18D>yf^rLCgtn_r3q%hEH4Vd;#hNG=xsI&NiZ5krxcE zP=S}Qu23Qu6t37J5SD|-miQ5RNGpLmF21L|gJ2n5sh0TC`m`&7G8bq-bIIZgSNP!> z{=BO3f_>e{_0syp#P!nO3zx0yZd(G!(0ZF`-N1S~%u8p>{f?w#0O~}_%@=7Ym5p+< z@gb<)+n#M~y~~-cXT9s5tp~{K;uyKw;GJ3`dGygYK=H!3fa2FKOb4T!IMSsVR=%+o zzVQwn>bwO0zVUoJOM6|i-o2Uhh@O>s5te?tL1%x7-2iSl{J!aLw*w4zM$hu1vA^u- z?B47U72=;q&qju(d1wN+xa|Pdz`ah2Kw4)LEoM-HK0Q)l0R_Z>TcCxGXL z7x;DaJTIN>@An0JfW_M*`->;Y^VBcNzlGTTq86+8!v;w0y#urF@U5Mhjf3?&(g)m@ z*82{8{P_>)fWNd+WA|N9{NKSy}~MDBkj3yUqbvZ zfcn2hc!7?lBX~!9eF7=q44v=0x=gBdiO8Ty~ zR(I{4sU2V7xdk>^0{DuGhW$|?3>98Gu~#?mWQ1Q#L>-{ET-~H zv-;v~pX$8*bcK2v+}L=%QgMBHdUJgOJgw+>>|kG=-oLr@`iniPgf(uwxjdPGgo2EL zAcC-gu_0}qfEmzMc{abidairCydW0yL2@-qBYPG@L*lH%YwV_q1(Vgb1ib8=TN7gX z8Tz*NJJe1*c*z+i=sia6)t;@Ha7w?>!3=hSvVm<@67d^-h?WXsNTXky!oHGLeZ2sO zEp*>h0eOYo6o|F4V`vCOq{h<4uSX6N5kaC(W%-FHWrybMf6OMu))|&2_z}6QnIVQD z=an9;7lFQLX{2R8bUpaB`KsL-|2Qp_BvQR_KHdtumlK6*1@w1&#{qdlG00}sGs4@v zh}WmkItCPX=y^V7NDpqvjM7v8t37BCv@XC^z4hLxZ8Fp&?!rc~?dXN|kqOP)Yt80f zXZ;@b25dNyWBw28iM@N8o9O7wW7dR^I-#D_G6=t+(`D`^mXvJSeYv;re5Xu zDdNsWjB-1_AEe>$sUO!amd&Zh2I`eW#D>e6FZ!$VRy5-JtW{LgiQHF_GdE zrNW1qpmP<$dUgkKWtwh*C<|Hzr6hV|$M2Dp;A6S=_aJVnXDo~jluXem7%zh ziqr$@1k7t=0m|go-_=ObahCUkO-zJ#xJ-pL2?RgNs3U8NlYD&}hUf-Y(ZR8vPifba z_w39F<>JsO5FQAvh*-`O-d{>%;%6H6xo34qkhDN+5tgIS}bDZ3akiuGnNXVe_Rz0!?r>C9pMeMr1ysQnV1N{oQtdJg- zIt8|AKimQA1^0_tjjCf2h>e6M3et6RJElY55EBK=<1{^oF5eMV;oczAK$wN83Y?T4 zmYejEG@8$~euyjs{1gfJptD5-Sj&$Ks14cZ7y^u-)lf*pZmxE&vXYG;BPG`urB~xy z$x?#bGNKca1zS1HgaPrizosf^-aiS9SRiP0*j1UxLR+`BMAa%|uJntrqr*UKajEX; zSw*y);l(HRL18(1_|8*5T6(Nh=UUj`7iW+t$wq<6iIOG`EZY;C6mfcM0GmNE7787q z;VDUDDMDtQD#;}Dj|}KGPcIwRZ>va(uIt`zWb7Xv_YE0jwzy0aErt`@dNErJzH3_S zSDXzAq&2Q(%HfXkoWmtd8(HAU6+d6olv)}veEWur*{GSgB!>SP{`=bs z5Ly2+_6wc@c!5s3Y#J;x`+9NwGvYH6;jR>;QOAH0wp}hYk=5{CQ;_txv{qXoV(4i4 zgm%&sd{eW$?ky^Sx2f)Q&_0YQcjF`)mM)krV{gJyBx~4k%C2r$3UeJ4=zHb(Om(qm zS`YU37gyHCPh#PjHaykHD_0iG()iiYTYKD2u_38*x7{8yUwBt^*)w5WL{KK-es2mM zX*RSu?$~KPr8$1Ww-`(d{9THdVZx|=>;uzP!yFz3NJuo4`Ude_;l0g!Jm0WmEy(G8 zE!ilYFov@d6X5C8dn(ELS^Q;LrPX6W5z2e)6LzqNbaItI_n<1>yajgn_LoLPZ*!Za zhqX1151GB^MYa*vxI|Qq21b@&uz3y9&)}^FG2Qsq;^I%tT74USq&-|tHzNgHsV!pW zQbS#X-@6J*MUT};J&wsL+zimdq0NpDq*I3hELIn@!r5IV%1oi?TCw@Uy<4~H8Pb~< z7e@H`!K`JH`2$pahY!UJg|3&#cjXav(E~Yar{~EuuAADYjb$7InNP2oCfa80lgv-( zirKMtK8)MKAhhy_i3EuA8BsMd{pKs$b?1>^;ay1VbUc>23RIXm7!ffx79wmKlz~>a zKs^+paXqaRRPWfRqigA1lqr@jO4|($b{zMOBaq7jCf#giZa0g5E%s!t--9Am9?bz@y`>3$*@+Y zoJs6EGzndHfLC+mzc6ic{33%@@}TmbrEFklr0kz;FD+Ifr!|ki?J-Ao(f_o@8I+67 z!P%y(RQ?R1#4!tF3FhhJ*taXGFXzQy5JaN(ILluE#4Md*SEk^~deur&U4mWGet67I zQ8gNUQjQN3Bsel!*#A+|nu>`HJJw)~ej+f9YhgU4I}mgd*$3wrv!y~wBgNEud!g*FG` z>!I=ri*yQ(#8wS0vG_zT6_KCIvJ?bK1Z%i-%}zPnv8>(d%3bGJ2P;d#0vjJ%t|t{_ zi5B|FVjZ~E(k*#QWt1$DAhpYo%d1C$q5}S>cJ>x)c9Wlm<;Djl)p7+M!oI~kToMPm z`FxWX-%tO3s@3cr1NsxxLMY5INlu^MC^CqLM#Nw_hp7&GgKr!00j#tR*&LSJo5^G= zv8YwaGII1x(K`^~)Mq_yn%r*^BORxF(Pn~ZC}|$DJySBP-?d*VHnwyza@duEj_r;@DmTXHI^wd-Y6In%CVetZ=bt;3_YF z@r*XMlO!H;G<`rXQZ5BTO?G)NpxnsNHWdD<;$G0H^TxF5&!S)1jD%W2dcFFNy*T1D^_sid^@%Hn7p5UE;J~ zqcItGix#N&J~j4G_yLGytwbGBa`hC*uKV??>GP~>{!E{u`Y~BryZw*5f&C!&W6sHa zTzR6MVBNZ0)SOEUTg@G&x|OhkDuni~m?8dV&sX`S2|_idpMQ0pl7-hBwjhhOrxZDB+0=nq8V6%Rc0jnJ|G$5w533& z_(m;AS7`(F?b1>On{17&F}~K8cG0U6gs!n=_*Z4wdGs&>q`je$!G4TNiq6vR@>q<@ zPycv?JvxRD?5g-g`Q0NPOwpX1aAP63$rt(-8at1RJtS)l39ba!aH#`J zI*Vz&F;Hn6h~{YqE8UTd0yF%!bwz<0iN2W5Rj%6n(u;}DPYEh6EO08x81nsj+=+rE zNs9auvE}rM_E0~?7Vz-5j~DB!usxW1QMNDPWfrYSok@GY=wv0IR1TQwsJbBj$eyQ0 z6F3L02sxqpHAt{qn@{A?h$?AN@BLgdvL9H=HRENFO|bzzkrzBYE2@V(Q`E6{OW=Cq z%G0QZ9+^Z-Trb0AS9@mkRJ63QR`Qg<1zlVJf=aOPt#ACCE45WHiZZ5|`Pb%oms+fy zb8+{Una%xo@b@CS;X$y>Y3dAII~GJf@>;led^SdU;0>=me=A#brLi2>0dkIrDLrO7 zAg2N9M!4$zZ+WS+qEFfp`Nxi5(qFtsP>Q*HW&*`@c&97cz^Q+wrY zI&6r?w;nk9O@c@z$&B0#-qDpB9l0lZoZpsW{FLNe zi#A5TF;9QTo%((4objbNy>Or#fBDC9oaAjmY(;Ty+HRt%I^P}>0MjGbfZ@1bmvu1R zvN$!_Su#xkMnk8EUd)IPxs0f6a~K3b*Fp@TbS5IV7@$2J3sV)>*%>D@V~Kw)COw0l z&9OE7wXtXEUShJK*pI-B7Dq+a=OD}^)HlPdC@^v)Qyx82fR;DKsX_%yE z%ViFfX7KhbCv+?C=i@S@o{FdGbhgJGPTOUgwf0&R(l>C9pq??H`*D)2W6< zYoIHnc+cC~Fq?<&tr4zl)on`oHg`_LiYu|--G48oNeUFJUfOMDrAdz9rU##F5;4`a zqDbjs|MZR}qz^F+^=}KSowmfc=a6S?;X-FQcVL?6n62I&SxR&Bc6X(C-LVSA6=S`@ z+7Ow?1+jN65acP+OWO_DU5fprmbMwN%P%52xQZ-6ZOXMDplU~ZmVuq(xi!gB$X;rU zWuh~V(=#I^#u-(bQgu(BhH{dIG#HD z!3?a-&j=dgp;cVP75jr3tJuy3soL=^LANN^GMap(l>~x9I5&a2-R#hyflCXr_1v<+ z7I2}Fo~XvqWfl6PUX;cRWiqOw?Z!o;F8ZRN$GPjUxwzXE5wl>*vGJ!&TFfik!#orj zHC=ZBdmHz77HX$emuK0?oK0Q3@Hq3|r~42)2+=7#&NgsP`x6!-W;ZK8%*sh$jcxD-t$w zrzu=92}o(XLjLi#fTN#F(t6kcloHeYfCYVMU&W7YgsDV`TxLZjNlL(CB>tKPEN`ff zZ7a>BiFC1ON(iSf0%4GJ9+$ zlB}wnIW9%WfR#yf2^{$DhKG|EbQ3^Tm010m{S_UC-{M(lAI~FTXU>&;UeWT-+SndK zvhkQD&nr|Qx*B%b)>C^Dyn32&0mD&g1ud)l28_j5nEHnK+UQ<5oNuvMvO+<*=1984 z??Wm#v2yBPv)<_HH>eAdn%5Xb4jJ4A;|9AkVHO_K24RjC9PJ16dfY{CeL1A{=f7}% z8y3{>v~Ab?Cc=n$4arsGEIu>LqHn?L8u4HTHes2Y)os@U`gIq+ol_@3%Z}qe zzrR4BZlmi4yOROy>qz3GF`n#00gCz_BK=D<;thb!#Kj2oh}7&>^wa7|U9bSA5}7#M z+Y!~zvcjJ*AGhY4Y8)Zvp8pK3Bzxpq399poGk9s_s5+5WSW{0t zHQCVQQWw934(zV#g*n_E56F{EZz)sR5m4e9YcLFLbZAEsrk+;~?pp2s^e^Xe3c2y==@z|22Qt=DwL)Tfg``d@5tRhGqF+XOzGG@Q_m~KRXkhJ2ZUE+H}5Z zs32-_yXv8QwWRoKl-dLBtUlyt!az73UnkO3MZ}+(UrYwA65kJebep)5A1Lx6xqD_s z+dA(JlkQK`Vj(Xz(#-V(rp|GkJBsLt#*Ut-u-Abv_%LFs9P@Y_8`a zd3Blxiw`3X3|L3UY}dy{z)nzxm{o@+84~7J^5Q8miz()8uCF(AdpBL}*D?UmGcsrh z*TZT3T3#pmbJ_V!PP?@MZT28Ms*U+%&ynL)60+*3C_8u+ROj3z8dUOvikqw6l!XID z(2Fgkpj#YLY8UY#gbk|dW*@y=NOb@3rQEoAseditRYH`=W1gmi#3eStIU`k};Ac`5 z!Pp&9+&)g447AL}u%zYunIo;5_-V*torH0-L;Y7(-mSQ$pS8Q(h3+*1OU}bM>PM=Y z3@I-YPVRb@E96+( z+ZWIr|0sr^ToGqw2GQcGrcQYH&AkbP1n{Obh%i}D`ZY59x0l>8#c=3p!cG%~MUgpD z5g9O@bryo5jZSeB9f>YT3g}4im=rH7f%`oJ6wwgCcf=`f2C^e5i#ZgpH-O1cdqIh3 zd8+kMl}4vSh(CHCuoEWvgTvT^_rPe~er1-i2Pv~FOk?>)qIFc-j1%C(f`pb2+Vrj2 z;@p+oJrBnXY3dxj4t?ALIPQ1OzxgfEKQX0F0{4kx2qrK=jQ{gJf+w7lRBF}NJ;sK% z*NfeK>XUVAsv<^^Q@Js(TicavvJzp;dd-UG6-4)XK>FofBOZun>_P)bUT81q8~;p! zOY>%u^a1w>bDPZUxCrjN1hrYqW6{p?q`?m7H9C%hSy+^@h6F|2%S24va(fgivAl!C zU~FV(R#Xp1t|A4wmO`R(&SuuUC8-&)-kpTdXW=H4=z06ow*J@CDa?$vTvc;rX<5dE z_HjaLgVdwpjk*MSh4TAnzl7=}A+{VtTmzj!HoJ0z^ac8Grb>g!h6IC}X_q@I)qA>O zxC~{65begH6WO^Eu|NGU8mTAs?|S*R{#$sSW2~YjD|5gW<4J$B=xXXhyFB>ZJR2|i zo4DCiQ7h8-r*n&yTC;_1OxE;~=Q%IY+VHYnYf`LZC3S%Z-EQ^5w?cB&>vnae_<~1m z>yqqt1|XC9}(JuZ^h!fl$fpWKuN*aA-S` zT0M{)1d=5A)TPLY?ms>JX13f+mt{LYv-xdmKsN!Pw+GI|bO;U*e($`|tAi2RRhgz- zJY?AjWOAt|+0wQ|cAYw%2YbBTl+q&o!EvfIr2t|0dS-JF%s5GH1I5wv5r$7#g|XT+ z{fBZi2`l3?W~eW(UG1Y-lh|HSZ4kTBCz~A5mP}|aOl}Bs;XIu0&1`y>0M%n<8|jUN zbpq)ANL=P*fj2lZL_G-%PJ)*ghfSav|9%mn=VgM8x@CDSRL%DjlLhg|9mn&&Q|1~J)GGyxJYiefcHxm;B(yTi0>R3*9nk>#%-}$6 z*23)e0qJ+&PQyZxWva!CQ58;4o`XVmq_%j-hHM@&Ulnq%T*jGyam<&)%V(zUm&0eO zJC1mt)^rFki>7~Vk}CokuDa>OP@R!oyDa&*_(5CmtFkysNvtc(H5m?Xl_OC>m8QL^ zB7X9ykK!_cQ^q}Ko<^;@_hLEb4^L~eu7FdN;bHK#naP*wyInN zR!o04`;Z7&l2G%e?9wyHe0w1(uy>tyrH5E!yU8hVD_fI&!v?CkHMXpIT~>izXIeml-^6M9iSOD}AF9<8PJ{j4egROg{Rv5!36V){u5AvLS4-xML6f%Dw3+?fcyK5mcpZj5#FIm{Sx*4kM`8Q3a~ZKh``| z96BzF@gM^h%!G@Z?jkL_EUQ-~tPSziGiCAn4<*l?brJIieS4OuWsANcXlx|Y%G&H{ zm4It&5la1ZZiZHnf2m#9%Eq}lo7~5o7O!Sd6%!R%o9ixEB{#7F#VQdmXATAqHKr>B zTD(N;ay2c>v*S|v&AXXY8}kpC8nRVxN^EXzPs%b5nE^r+6|I;a?vkC_;>Ko1wgI7r z0aqNyZJ~xv>`5HkMBjpyBVI)+x|*CWt=GR%(IZL1ACs#DJzg1?>;+f z39-++uspIDs`7ku>U>+kWdyQTA(4XOx6r=0bd#sWpcvEQLMuP~<~%&rt;9 z!#3dmsrcO6oyJz@ym(MA}46IbdpOJvq<+wo3Y4^N^l zY8FKS$uLY(1^%B=$b<;Z%rIPVMe(s>n}dsOz)^O4N*E9=S1~BhwureAZr4uh?+a@} zJMz8I3K)eEj=t2)UQnxb!YTF(Xj;v`*-tB&N9diu`_lI7U$3k0JP)TckNBcZ?9Gzx zElg=x;EV<*T!~|ql%&7M4nX!Z}qzd!CY!+!s~du8a~Ak40u zT`s8kF<{J(3S1uLNW$78x&2_lxy}5?P01R?4!#0|i!Ka$9KCY_P}1zNc}1a>o#<*| zLREQkq|kCbO4+JPLpDiUc~Yz?`#N?tvYyyF0F|H;&a~tOtIzJ4tgX#FQoT3#s7hls zGMM+(ZhKep3v=?Bqu|5{x;FU_A$hg22-^!ozX@z7K40{isk0g;VCQ*@m@-rwy-)|4 z9TY1TMwyMOSiJ#U@ujsH&(Jr6dlauwvwz`RpsHN(vlYA@%J?=lqcvN>?!`*U?n!30 zi&RG?{%Sf(MCi$6wj1fFJoSiwZnAddwfE}gp(H;RO*k{2Lo*s1E08J6--#rv@;?}T*u_&qrGR$#(z zb4tb4?5P!7{F67VN#j@RC%Ef=mux(#Nmm14`436r(E|$7YkJuBWAir#37s`RzWQZg z;MTTLBUss}AMAEBjllfea|GtF=`=8hJp~A}8f)02;XHgzGs=R=8b3fyGpP<|z0Vph z$EXTg$~B&^t_NFE_Kew(TDX$3H1W84={fmoVcVUM#JUqleXl*1yyJfTr0zpXRz-&396F3r43P|YI-DDdv9L5ZBiYo?JYvi+fSec^4+j2ZD8|jojCK$g3 z*MNd3b8I(ZTO)u7D>b$1q-SWm&&pjGU$Z0x11Yb8Xy}wlqlXSNK=(PHbf?POZD!r= ztA6vjrnSp8rIpH8e`t&nVA&leobIy@i6ZAc1Fmj&l7(C5>w?NV==oGy-+NT!`0B-U z1d>PpoX!*9_CZjOIW0s)Ge9KXsYR=M!@hAm z0ciG%+j+efF-EEK+H`8oaM50ZPG-^v^msbD7#CbQcB7kod+ z^vurkzXBS#w$pa;b($hU4kNQtb!(54*oVp6~?8CA38tc`KAmBW=MeO3chQHYLim6-AhDC&Uk;DDH}IO zJDXUDHWHUmJnQikhGStK#|#Yc68M)B=u;~@`GhYoTk7f6 zbF@0!eUJ~`gkn5TWxZa1+DGsOVZW1&J6lan?X)|b2aiJP`pJCrCFN2fYNu;kdFOIJ zb~09l-^p8?`@-TFidKcM0#xGm=cY!qgZFut5ckPh5L8yi%fz%rT?vnZ@%MJn^}tu@ zue7^_HXv~+9vEzw#qL#-inQjAEo}Q-!ZI+q^&}Q!1w52W8Q`B7iUjZIJ}_`^6Z6Je z+cA!_g{kva4$Jc8KS3}N^W~0n+{JuNy&ipW86G&g9yzXm-orl=RW@?Inp^KOzBL53 znT7Rbdl(@d&~4sKi>=o0X6Gg~K~pg_)4Zyo(|OiEwozZIprBNmXU{Jb{C;lXI$(#Z zq+CH^!JK1knJde6sJE!W17`BnFi6%o-hTqbyqvFphC5fIyB1%e*!jkK-XQ2Iaw)(YR>t7TZ|NmfC!9O%BrM|VbgS~^D zo(;8`fwh%AFsS}Tl9v8m9`--gXn{}vLxmRjq>zCIV`978;iK z8xv4+_8-rI;;VH3cnAHv?&>>h3JmQ(>a%}>|DWML*1sio|KqT~aJx)Eaod08SO2>* z|0k>{C?@p&?eBHR04$)GkfODSn2?m74X}8IK!IK}haZ1-EBvqrYVnF$8Cw$o$w7G| z6Ek2P{vaUZ2kOKckrU9$*clqxnOT_-ko~X2fIAf&ZEP%!zQ61IzN^a8ssJT<+1Y{S zPZewZLvr??1!r0R0_*;}bZ1~-|EF}euRJi0#QoeyE{y**_%Ms6I4q&U$@ydKB(BL zC26QxQo6nn7Mep|RRO-4$@auth$~G?6Xs(4%*`&DVa&Fc$HQ3Bh|y`wKSH3o;oBQ* z`)IzMs)p>+PcuSjlzBfYb;R4hfcJ5kgSFGj(xyq+fF3g?+ED;{T96gKcZ%`r{kezi zj^R1U=i6%qIo9&BBLkhLtBu~cHF<#%Wh)eFDKH2oldid%5$Mr*UbO@O};zW+M` z{vD0_--X2gIhFb+9{&rK`p0qq61e{bl~t9|H#af>g4O>SfWknTSpr}{*;_l>85r5W zN0+RfwSj_>129f#Wrc(ZXcdiIfJcaZ*E2B^_{XE*KOV*2W9XZUgNTBIo`cc*!6J-6 z31?te@D6eVL+%g8{m#15(*yUjzSq|Ke&8$rkcfUy8K7!2^PfZ%v9orxdHg`S^dQf=kcvPZ4SqMi1M=hy3k{y}y%>;LPx_WArYq=_1COJADv*CjMHH?ktYK$b7MhoVn#!uP!7 z?T^pz(S0z}Rb4>He?o6mipz(JlY=p;<*s0S-LZ(ab)vFnF90>#d@>IQ=&=Hyq^>GPf!USwiTq;g?` z)@*A#rcw_9&!JUd2eOrq~1@-f5@ z-~zCYZv@jbXEvcvLP_%3vyZb;Ts5b%=G8k5-Ery#dh~xjN69FR6ShYd z72>Hjq}F?NHTH?;FNQaz*XJnxNGYbOFsf_f#!@8uMy1BZ=_0PRIXRK&vm^f#)8^?|t zu}bvpiPc0AN9lfrBSeLkF)XV!jm}>!+1TGW@0>%Y(J64UP}cHk`D68=E$u2 zXkP}L7W6AZ)=QWzb@`~eO4|q343OP5`-#kYQ5+!$K4`Fmlv+!(2NV4j4ZbbIF72Na zIrfv8Y-hLj-dEqeUdHTAsMY+Cb3mpS$$ryldQ3zKT@vXY)OK~{U(5g2xzc|OWcJF1 zlieRr<)m~pJip@bDg&eQQF=&gfaaTcc4`B?p3wO@95LudLZA&6l@CXo#z+Ym95L{! z!tJ^PI<7{v*x>|9l+fz}qIM#a^Xlx413wB8q^C5LMzbbPy1yT!*yJ=6ZBpxIR3@|$ zj0d5LgpZ&Hmb0x&78V`DdfBfWdWW@&&np6>0@ASXMN$+emGmd<@io*Z(6aj*Ly(0; zkx9-gAIe_Wlgwq8aJLPmblRC)lh&h7fuRv>yyucv{)BU$@2iEtw>9*~S5JcK9v}0^ zNfWaQ1So0K4uXCf+24j^6S+_|;*Wk25#sE^ zykF=BvM{NW0vPGwLS2Ow#CabsBdd;G+W^_9kKQr}G=2CFzqQ&V{O}*cNOy+CYho<* z@CgaqXkQZ_gx(@i6Sw6Xxx_tW$z@^V#uJ(o0;!QSEWTIZKdkECFD9;ZD$>erOw-KX zaX_+HIJq5-*}qOJowR5-9iV0CGkTq%F-pjE1i0!lv-$XSTgUWYlvJ?+3gz%jKl* zJhd8I?1Yhc7zfG8cnCIn9u>5Y!apjgZhNCY`Z1~~yL1-n(MBmhK{J5a z-x1LCqBEEE|A?`KL^*cZlQdvK(<4xTLdumM^ui0BizO%*Ztgej^O)q@--Ik-Lpaeb z?>8L;SB(+Mmgb+|d|8S-fI-zKz_ad_7WxBt#e?SQ#EWK{Ud=qV0&u5SR#1C->`;1i z^em2vGHK`O$;c+JK%LAWn>KN%#0C4YIR?q7(L$Ps}jmUejgH)?A4EwnzLef?+_9 zUt1luFtNS*Koh>?K{F(IBni2HqzYSP^JB9SxSP8c`>1lWRRi3(09clFMI8@!`C;30B1`!u+Kf#0Q z!C)b3ke5|W!&_F(!k^%j$eKZ7F)f2brPV=6HyzM7Wz8B)Z50e|1_a{yL-G7X)kbt5 z$`#oXiNfRe>gC#<{Q{lig~!hWd&n#2MFf!Xla+i67Koej%z@VXiP0Z4)l0@t&K*Vv zIc1H!RfTGFgDoT{-PsKSpSO_(?|ZO7HmD0=hSZ0C!SdCes$4u1=2!ngZA4hS~N9 z@`PEWDvZQwq$Og(CMq*7aMcO;7oH~>vW5AA_#6Bg@~ zvn_&E-ubrrs?bLNvO9;^D1vxY7iA3^X5)4>eQ+ zR}M6Q8uGJ^7ZR)d8$IJqu^qwEtKT;IsGCwdf_1j=03;sa8&j+{lr0C?s*xKrtTxyz zz)emM5uHKL9c=)|S=Zatf-UJ;ZsiWms)$bS+5@;d!u=*F0L#M{>d@k#M;JiiF}ek5 znNzv#yeO&D-wrh0Z@O^q5S@d)H=kDnncN}nzewo};8(?Wgh5q>1I;BV;FBbmxK58S zBI_1C;1f%3YKLFog$aP@HE8fKbkV1C3jLBUBafCSob(WGF$DJp!m?N42I3ip6Sx^s zczEsdVRGvCC0Ssk9=bc;+Typ&-porJcf`n@9{`-!o-Gs??^gtwZDIiHN!RF&^#i4L zwr8(`OZ-`nbepjAmRXy$^A=_szw?$_n^6CD!0~OG&~;{TA2>U5I4=l03OFx5BF^G22KL^F zxrKeX5jz=_1AOJ#x&Zlk0F>9-D$KfpaTA7i2MdJG_Uz^j5`FWTWPkP%y`g=G8M?7` z`$h#cQe{9RXnA9cL*fK5d5$f*nPd}S0+`?sBLdAAn&oi3oLMVFw!A*6R?w!UACgMc z2i*2SIYT4*yyzk6T4i4S`onmHSzT83_z}Yt?k+s5VY@4v%$CPj#w?VR2I8GZ{VWJh3g?JT)46V8^W* zyUeS*N^Y~&%0lLdfK-4+dDQ3m&YZ5jI{b5;gwBmlT&FIp+C35rUqPkvDz)+|_NS>b zme6sEm9iMaXdLBKgc>3Z>XLr2HODs3!$5#acFpUl`wJ)YIArTMZ0m8~>-QML_%xQ( zaO$A(616g$V+w-%W1S;hYK{IoYrgtYcH_k@JGPTBf+F__E=#A{D-$^V zMssD#HoQ}pw~(usS6myAloIxu&lIcDg|Ks0f%}JowWTa`6-6afD~4K1N(}@h<7Tzp z=k^TQJ7UH!qwTpyrJIHwH465-N!i_{$5XTmhkNJurn;<$JZ*xvS;<6TTA_Xb<5;CZ=gQ_`N?h4;T3T)C->%y|wqiX=(Q*dh zO8bSrNFLO@tel3SNp!waLsv28ZS0KF_lD-^PJvghAn4fQr<^(dSaYfzG@mQ?$E!py zQMhfo(xed*kGQvf$$q_7UF|x*-MhWhNy|LNB0Qug7MH^<+z)!dvR{gfqA5k8^Aq*gR(gUZlKt? z(i!Ro!Qjd`1%j)&{(ro^byOVDwyzsP2pU|2yEhJvySqzpcXtg0*WeC8gS%Vf5*l~6 z;OZ67~K$paZ1ZL$;>jF$q^}m%AB2B5n?(^IuAi7}ajD8`gtnzo7acQaB~0(uCn5$2mQ~g#FpPKn=@v^8DWSO3*d7 zl}XSwz9ma=wtb;K7ULrz8B(Q#uWWN>QkYUT+)QcJB^*g<#-M`CZd< zX*Y1vEOj4rVN6o(xHJ&h(R+;pbA^DTk2_4ycOE2k(1BQ`rCW1DmJ7OAg%JqY;=cBK z>utUE&1=1`da@FJOXx0&d5qtMEQv>k(PiJ17r65%n)IGfS+s*mqB1)hOz#V(xkwhr zjI?+fmbR*73yWSe)eP1&mKpt;xYcwPmmy1juU&?r+zL6ak*eFQ9p!t{ zi0_6s1oilm#7Qv|_i%#-IhfJ?nO=`>4yS0*?5FD;76;7h5k88_PI}vO9UX0oL|D<1 z3y2aK6-%z=Yf_2y^-E>8?&7^}a4+s2_ND@3v}z}37K$gM@H!(^^0pUTP!;Z1&j)=8i;9YyE?-leQ9%19(W$p^(t zK`bTo(KJPqRfuJw^xPgt{-tk*+Dklz{>11$MialXjz+2{A5$E^-5CI`_GQa{O||)0 zn=|e#%tNBUO;K=QG@_eyPPsXt$Pg*J(n@A$5RzZ4Cs`Z0JHq91f$9C0RkD6oEyJMxOy1`y*EI5Uk~tq?IQ`=?0YtNU@TBS=+#!|5Op`14O}#rwu;g{#e?loG2M=nMYnY7o#h&?PQInSVa!zpe8A z(y78UU*Ip}%frGyW|<=}f0JO&p36BOjX!3^!Z%jInIXTDlwOGs|0q5kjbH2t>8)+F zdYRbFYd7rUX-gSYj}?z)lNzY+>sw#TjuS(bO^Y)WZ8$WsD95ZdT54$`%5fmkkpJVud~f5u|w-h>Q>kE?EmR{g}Om2ph$ zs9QW$ftH=!%*!2nshQS`*M|Tiw6VK62W-=k>8LKQ#`B3p${YGW8`BAtg9$~Qv$g2e z9N)}EudM{TBPsFiqK{RJW9&F9XENlElhVzFU2W?hXB*62`jgU&u?gGJM0Rds-a|)D z0{!;D^DO?XpJ`R%F!5qBOC=)vzmus;#Um7khhoNmCnHk{rcjWdQloNXxD`JlE)^}E zP=Qr_R(1HfF4vjkP1{I+YkPD!J3gygN?1y*68E!BHLj3I#!ikuO((MrFc<&iWi4;* zb`&}LYc_KBWHxCwIEn4{+QWrk5(fe01Io7yH|7j4lw^C%^H^6Gxu_Gm5oX>Gp9Q?K$%R$(BMA`bn z_fBwt4m=q5Q}gl&WcgZa3dzSbntU#h&9_u^({0)l zuHiaPeRDQ~>76jD`t%;KyxDvt`7f#$3?|<7tJlkW;(HTMhZZb^eY}N-VK`g7OUG2eQH6_+>-0MenSRH(60{> zS`Pa1iQW7COkIiZeNGEB7ZQMx%JNsY-i!WyWA!snnC9m#XCwnDI1lL2&Um&Ja-T^pE>ie&)L`OU}~eo z1RI%zlN!JJcU$PPd^&EEksI zQs-wGN18qDqhaKvD7B0v{gNwX;IY#9MZjLkfj(#O>9&zNF&WET*u;hcoi&72l_t|N z(yUmE(@FzqcBHC9UJvDSS5+wy+Ml5^b7S4RC7EBzL7p4i4Q8?J%617Op^MycXh=E`_~aD(KK zx<*>l;Jgjl8tKf;qPKkFA*YX+wc30yg<#GYS~ zj*_YkR{GB^zaooaOqLS*pHgCEclt36vijZXd-uwg5bNr=Z0xFEBzas_pLx(D#mLZ_ z_+ADG=v7Y<7n5+n#-^N%a2~o`sfleViP#arz4C~IwSsrXEhGJh<~2?dHZvWTGnY_( zgj3o^stmlBYf}ASuEi)qLV4TBdKD9T`Z`t4>zJKu3m!DqaM~n}jEF=6*yjpQ7tTPq|@zi9=SZm2xV>3FLgCW4% z;>ktts~*Dx!@9bBFBt<4cuqx|({Ms0Gp|`+odz#!4TQbhpu0nD80;qv0d(oT3$N<- zpgg^iUy+wnm#2h;I|W;pgr|h{)2?$TmRfP{wzCbf;_|0PRgb0`8TRb}(^!K{_S-uz zQ#CX3w2_qutFdB_Be^ENoxW>xvlwwvb`|`{mc&k=s(%IdPmAKBDYcdyw*y!@db!G4 z4s?V#i#$zg1;1s&NJx)o8|EZiQPaBOzQ{HY&AdH2#0X`xvo;}2UetKhmMr<4D4X$4%} z#SAFv@a<}KE7rT$jb%K*-d@%G{$`$?U)M&*#%1)>&K65lq>3U~Ors88nP1mo5AQ{M z5X0sBRGwttgrxi$^X}mMnUWuCMZ3Hwq#JYh80wHG9ZpDkpquk<&B&`bB)lsRTcB7i zjPh!vy1au|Y$+|^r`CHN`DOR6)JsqMrF{MdBF- z3kwfT?-pH&HhSHk zJH|}o_pK{@ue^${PiFWcg# zpnvaAYmJcg4KajCE#mUYg78b)x)wU?pZF{JXbPqR22V=#mT`{2A9KE6gyXd7 z7Z$dF zGCw>@(i;>MY)zWq--TeDh`O>{8g(jStJzm&B)W4J-p;TcYm2(U-z2^`%_gnyUbtg^ zh>7|l;TwgNx*!_dq>U+t_NiUUc2Q|Nwr%9X?dl1PdxiTvxVsGI+(Po=x5Z6lHr1nK z3=Y%@q#^6Q@(($IRV!Cl)v0JJYtXunV!$vNd=A|zjq3b!^lWK~%bC=G_c5ZkG7-4i z#{60go-yqoOD9aXGi@?Nv;7?e&WNTgsAGZN&^X&NQCLO@AzH3Tz%D$@3oc7YiRTok zODhh08~(WLAV1Rw4~xHChHeImehrQ}x|^-#zWH=^ivM!Y6~7FQ&6Kt?$JdtVBKt#; zYGHr$SiGNWdlH!5S4iYTnop~&MxDTeN=j;g-Z5{gfdReuk!wKAW#t2hZj`?YVjko+=hTFDG+TSy^punKi?+0b&O+ z?K>>562%XgX>3?}*J*4V)$%ujTHBGWA2c(F3=>VcGYjccCa520?vIZq4M~P2uI})q zUjmg)T6HT3zo;imsj0{CHI{EaRkhqj+pl}EZ# zM5Wm@lJr6gB&m;rsOu@9Y*dR{E@Imjirr&fUoPeb)XOi7K%at}67SV1{BcB*D4lWU z6OPru4pCu99;=N_&O*-AOHdy>QqpM%re+paMb}6rY3p~BPL)NAuywO4qXF6>x9fFj zQKfzzwrXSAQsa=5_%7PAo5oAT7Tv_Ds848I8`_oz#s3ieCKmV>Ys9xTVj}jrpEa_Tyfk*1+k)h)e> zFW|w4%ChP0d&$+uXs5>tx?J_$YOxF=b3YP!khx#YesIj84Mkr5fMMBVtr6}V7=UX> zjPKUTai*{C=%a)aeF+(%#$RhI7|&uI?P?yNp+Jg}k!PN_;Tc=;>%P2?w@q9N40`uM zdl%#6_a3Y9+z^2?WW^iO@2ui!X`W06TVFq%7P37q0hq zlgNwTbv1`ZcZ=d%wwrw*6jZ9RC)30gj1u$yE+`vvP@bl-EZMH_P<>j=L z#H&DMk6A*GA<1Y8C$hDA(Ec2Hln~wg5iv|hBOM?YM-7IYs zKOK*S`RO_(puTJug-tBkrj-LrSO`S&B6O!MRfLB;%3cKVIUo|GS%zEiKGwRvkZw zr!O4O&S^Zfjo~udvFlHhc>dWIc|l}|BhiPKXhe$dLytcg-m+B@yx9V+()j{}>ejCT z(nETY%0h21`411<8{?myT@%^;53<xJL1~Nvp$f0;GU|`C;Q^ zU9#_3!6jhlCH01u3hpifh5nY#dsOYZC2@SGz^RWC_?Y9#^sD`24_oeR8m&vbkC35u zS6-LArGr-mF`CQHzBRWp!WuU|ML()|hCaQaN-~ThQ6Ub&YymNT*{nKoUpD7#i^Lgs z-pg+}BqNXbSG(4tl|Ri*L2jHS9q>?oofY@|`Cr&OYYKd-344bT4N& z^DlduV6Jq@VaILi5L2;ned%wzw>5p=@G-s((Th2v$xqh+O0DuY(dOKwl^d9~o3x%W zokDVopK+%c6fxPR%#se;6v?BPD{9!RM`TEwwc#NH#Xwwm8}QrXuEhUC{l1atV`x90 zYZp0bGu9zmLR+e-EeccZ>kz?vBrOpGPIFpzMo&oCs2X zE_y+Ru9zG!LY5>WOVhRyyINMK@{X+0Qcnddf`4Mq{KkwjVT#Kz#HUpVKq>YR%SgXp zB+|pk0zG)^=XiOKRL@V{c*oA)`#W&IY}(kul$E1u-UHXpYYwbCu)Z%F3;7e3@bRR6 zS!!hoY*vb1pgbOG4Ea|A0Xv{JO>*_}Xi8-4;;Ll!bvAGKfCchN<1_MVvF0_k_-h7` z0sLWZSy5uKvmSb_P+1_|0 znM6zBKH~gWrqVYYjJLhdtfi6BOyoNV!=8e8M6;8u!IdqcDZ;A`!m1%>;1$S1-kP4Bg+X)bHEjqQ znzg-yNKsK%-(wbS$>GZ>Yb&fx@ltlaM9W6Meb|^+MxFJ@_S4AZ)ju773~FV}von>i z9p+D?GcrupV)Jc4ov^=F=sBmyzKRqdT(-1IuIacrc|@dhXy*{vsmo>mQ{nd;&xWhH zlkYeZ6x*>GjrQ#)gO&YZn#YyZ!p{j>`7s;(#sW{v{(94`5;lKUbD>9C3q3xwySDnW z?YM@$Pr2^X!?Y%nsmY3h`&YDx{$6{Aa|Z8w-(V{Xoi+^3M6me9G=95Dizm6f4`Sy} z*!&5=QxHxX5}>ZvQ#Cw6!}a+v2xnA8!*V_4gN`YlIhSH6`@MKAGwt5uVrSFIM&yRS zM+-}nY453q%{W+EOsXOF^C3%u0UFT z#zan7E61_ENm#Bjjl8D|rWekYMN!%~2fZE-o&3pYUOn!~k^MJPVV_NUx0)Xtp?0PSn(pB-<*+*eNpT+vxd8x(rOe1Y$~r^orA zSgFvu7{pR=zMBcufrV2nf0N<2%8}&Ngr>az=qm?rOQ+KT_H(8Pw?MM@bwlWS`{ zSEsZgiFGYRxh#M6@QOlmMR9xh`T zASuUhiMXS)=FO6w7nLq%tSEFKiL#4!IlQ&gi5MGaqr=12u%q%H{GiNB`{(qgy(TuE zU|D1O4VIT5%c)0RsvNMH_?f&8vptH=TQidSk;tk$n)$EmGi7f}_c?R@HmsX69ez9) z9$rBm(Da_dL%ZkG=jT4?y^R;r8^SM%WJ_lPw)#~Mj|}Y-k?Y1}cOGFQ-m6=|f0V`S z>6_$7T7wvymRlz_HVS5@P)DZX-z_+*ui1M1LxBRvE_d2?X37EcqH&r&FKwudST4aR zkncovzcEY8Wp&;z6VC~~cG5#Yo%z=RXDxf7u=ZWr0+TauwtJhBco|+2X`X#p`1b-X z8#@6o!n|wL<0(NGJ7xV~jrc{~M}Tlht|ghEq&ro}J3$e5s!E>T&sIi%Xd{-0gw=Jh zOU2CGjv{g%te1w6sgRUo?|9W%f6f?QX03}0_;(O+CY`RD$uwYc^u@23*Ol|A*c!M` zd`V}LI^18#YJaf!(|H}wTdj}%3{U&?BdovtJp1ac4~0M1w0u$FUfSCp%RzRw4KtrU zME6I?cLHN{xfcb{(Yah%8>0PCgk&6t*tpEuR@QGK8KkX*FX*NpKH>!mOBgyfCR>Hg zjRdDxHZ}esyGz~g692tallQWkg<(u8Yq?5@Q$L!jCnJ5HfF1C(9|x!JRjPM%bfn`o z`U>hi+rQ_p`R0jYE_M5HYr25=<>=~p!{2wOicq_3z@w0aZ+PfifU9y#YoyaJ*0!1bKi8s;RMNw_dAed9*17@WUc(_Q#vgDHn9>Zitw?PP^=)7AB~?_;cfbfotQe{hfwF%a`6% zq2WAe-}@dcB4oQ$OVkdB6QfpSoH$x$ONWh;yHfG@8$)4?;V#B~u&kRI9Ij)jvxVet z{_Ha@yYDrR^~!8y(N)5~83!Yk*}m~vb7+U9>F1#Lh}bIO{Va^hC)?K1f+GKb)d}4x zOZluJ`Rm~J&>Y`Cd7>b%iypfL4$WbU(DfFR)7r-E=|=psx5ThY%VMqRB9b7Qz8Uy6 z0NT_pMH}na(K-%!kL#j@nJlS=586#|DdUAomT^4!+0v3E6T3`T*ltvvZNDc_!Z+$C zIk`P}O#7Xxrwml4oVPFHcV-Zcx6_k)p+ z?qAZ0XbH72AS0Oja)Dp&#YO@1Pflmt+cwG{c|bDY>33~hT-T$n%+b-)sTrv2PxFHN zi;>PmJx1H|h1L~{a2a`{{3gJgS1!oWOky8cq zboih1_4Ml04AkAOM%1wi;s{I(NO2BIOYlx1xt|QYN!FH8(^fU6V-_lRh9a2>B_ECKvQVM&dAqq%{6}2mPyr=N6R!&P1RH5W|9HRBlB}NB)9XMcRbvx8o zrPyvm1|kQ`aD4mU1Fb$r-|JVRZA+^8eg^n?A6UGpk;Ks!uy)$K?Oq2g-Cp)K>gi2C zGJ!#zmX}1V@@X&61|9}$iP+21bHod`g_NuHr}^~;<5_FedcLscoI`%Ady9IV8v9|m zH@9(%1REeb7hgeR7iX${SUZIj4M8@Z)U~xaN=Coub@|>8tp3Nh(PbNgZ-Z4?)Ewdn zSHSfNjH#Dkx`ytVbTOeRp2SH1ZMw=c958SHH}xeF{fw?rJsRvWlgx_Ib)2y;*)e;y zF~RbT)$OjFK}}>_a5(DL=Au z^=>z}y=&k6y?}VJh$R90Ed3QbWGb(sw(t-Ko*GfI=6jI%+gY**A#eR@Sye2@4G*7R z&|r4<>EP_+f`^;*6n9p`NseYMSHf_A&QGB(I<=x&N zbF931uxZrfD9JF|LQMxTGSO3FV7~SsLyWoZs)u3J)-6>mIp_#ZHoBzuL8M} z7d7?iYxYibWdr%HRE&V`9(xwTNKxfV>W>o(Qmq$dN$rBk(>JQv{E1K8b#t|8Q^&)# zb|vRuIc-aN08gu{VT6aV59Id#tQb`UZti=CGbdysRBZl72QofsYH${n{3?lFMs^b> z`%NjV2=*^`Nv)E`g4>QB#{FU;a%$lRn~2Bg5yhyWl9A86IfsDqDBleiM>HJ7TQgC% zA?FQs;NYjI(cMNiU*5iEHs9yZQP~l6w#J2F}ixx$!QE01&Rev^{U)l=5{?R+nj62!gshw5$gpoeFc8d; z2#0c8$}mY0g7@3V*Zd&7n2vFjp}&{OR6UC3K|J-BPP$K?$b|k1F9jn`+m4Y5i+R5n zxGKYLoxyNn{`{&cphUr!itYRiyo-WXI!v|%EtcwtgzgqrV8VvXRFn7r?}y+2c(6&jrJi_WxXI8j3FHd2BHd`!4ryb-{aW6wPOxkWaKt%=p)qk(%o&Yzef=B* zh$q;vPR;9s?vo3wCg5hAb>;?P+|*TmBP@o8o^%n08&q{CP;7am%o}$I<;JY%ia=&v z8r#l7aFKbXvqHma)>I(`UK*hE;|iL7+vORR`j z^CLU>_CCo?l1L$6IaIm_7$*(>UcSN6!nvYWSHMReNiwzEDnR}=?Cv* zs!hWfWX7ND%T7gGvv)blCbgccmIvz3x;5?hNi0{MCF;JEY@WO8!OE&mj|W!i;$OlI z=CPK<^U-5-(!EwMWhchsqS8%ZbwBlN8E^i1=Tq)J`aeQH|Dss%A5h$1==@)V8U8(? znyQ(FgPFSY|D-*^#SLI#X5rxcF9ix#4rTy17w6wi|Di;|!3JPuW&Ov7|4oqsz{1VJ z#sb09U5#w5OoZ(%Y|S8W`#);`PuQK2gNqfw#lgnSLc++-!UBMRM?e-57H)2C07Q@i zqENxg4TK0+a0A)@yDSBy*ng1oevVQt)qp{-?BR{|v)F)d2pl z%TX{xR0cTNIRG5YT>oeyGYKmf8-SaYg9``=0ffr>LIP2m0B{4D*||vAm{}mv`&;n8 z)*yvANFZ7itSp=WE^baBkOXoG*w{!of$RWC%bD3o*f{^Q4(7kthlB%iepYr?7H$$w z7Ra@Rh!wDra6wMY!o>nPSdWDLZ*dMFGvKdBe?tu9<^piDbF;FNaIpgc%K-PdjR^Y$x z<>Y`I!Ntu*0%;zA1qi9>pDXN;HbCS_Affr^CLpAOzugbw>^~2Lv;*)D7yru-W)e1b zE&!ynLz=_R$_`*-;bi|C;D7q`&x6?^Lx-99Z{OyE`1zklZ~!5GvaGyWSHQ_FH zH~N6zVk+LlaU+-HknM9WvH5<~J?106oR<53ogYsZ4lJKUEKN)XJGe@9lb841Xi-w# zrkCD=TTk~Ez`6}2 zFNn3bdOs{_exzix-LE1l5IoPf3W+2B$niS6d2~S&!6f0y++F34nxJjJTUhy878bY| zsa=W)c(i+cM11!wBb3f@d~#R{&5N_}-W2bvQAO`@O)}JPxp%MTdNrE~#6+|-F#T*$ z&Lde-<_aL&7x4g?VBU9pPCYlWdvxDU+o4oGkoa!hAdVCHPXy?_ld6X5#dl%K0Da8~ zih@!ZTHYV$^*O5s(JaAvcEMD@qlVXrgur6UY<(ygV>cr2eIR5&H6#fwhg!thZKIsicQ$k7{#AMvc5`7w zm)B{2Ew2iafji9#JzmX5Y#A}ndPJJp$Ali=e6lTS_EB=GJ3tryC%gk5pn#45$sd## zm?XqubNu0OqHi!M6|a01nB(6-ny#FA0Rp+t)f+FD6iieS8xXLwmuW3Xe!4l0Y9mlS zAy$4HV4IL?nDIiw36EyGtuh%Rzdf^P8ex>^3zvyWUo4%vyV7KwnAB}-1^4ln=B9v^ z;A+YMO%f|j(q1>?TKKSHrL^-7(xFiW_ClWg@>fpUP|hux*^4UU zOJ>5rO-o=xbTriMVjzo-^wmC^k(5A<_01R^<4;b_I4QHCVGvDfO}lQyhn!z>wjXH%alW`)ySjG!Gm((KJm1;C`V*$lIV}R z!Cq;jTdoYl6N0!#(Srowt?RMD*0d0qwA@@j0fS>mC79<{VZQ=~c5K1jd|5G3XoDkZ zQT0xw#fB^p_7iQU78l2eG}j9m(A(-OZUpWZPm3BzTj14f@i$w3g{?7dSj^4p6AM075T|7@+ z6=KMpz%ee$L^I5}W~6&YR71^Szi?dEYcfJwP-zu9nXwJAt8E4&(t1nTGC>}sKhG~; zUhBQ$>Ybp>9j$)?k@hubXSl$}`!4I_gRA-gqQP&COx>cBI8NFFHw(iygN0FgzD5xRA=-PR+It=fdjfCBgiw0JNci6g zhCyLYLc`^MClZ2+JP=e0H-171RucIWNR~7m@B`PVjhHfg@|8v$Z!M1bX^I%aej@GO zz=|mg2M7t?{1p5_0DW*@(k=AF|Fi>q;{VuPxKXPY>>swnoaPUU!ScjNrz{Q{AVJF8 zFlH`0Yz}wQ3dy^{M-u+@`f(0d0whe(cgTesiFRW%`y<6a#t2s$H0U@xRm~FAr;{ZF z>XnMlH`wx=ovBs|n{p*q=*DeBDPT@H6XpMWC_phO1?snqE-)}g@`pgC(1SBfEZEf3 zOq1d8H;B=q7_aXI`^27L1`E>91|onE^Fc1(XDV3rKwqw())gg#CH<^NI!)w$(=&hRN_XXYL!3FVZ*WZO*S=xP3Ou}F zliR(J0~fYWMq;joSOGK7dbNRJ{*jznvVvylqJjfR$QIjtPqZq)T>oB*1pgoxN7C2e zCHyCNb0fejuldgY%{dU|`e4IJU~dLwf{Z<#-SRH#KtXqSOS~oR%ye17V|!mqPH>P< zS3+>m7a3>M`H2PF7=A5KTua8|WrkQs!ebMip@7(k#a~#kw}?PL6zhguH@5shQY)zZ z(4Ap`!`Xo>g# zYU70Q`fg!s;l{6F$NWj4N)pzOnBED|4+Yd;dBgvL&^&eT2+eco(}I?LqgT;;dZV`* z%zM!Oz;OmaN6jJNr!eeU@%bk9s^~^fWlL(;w~bAY8@ts|z!N9WrOy+m{gCw&=UF%L z!IuZd`N?KS>bK0UkakBwKSYlm|0k-m9^%8y795mmu1j7%u?;bt`Dv~TA7o7vLOgnwc_-MFoWNgf=x5aT`Z5DA5Lg$f#z`+Y*$R(|?S)N691UU>Pz56gyI zH%xFwvz93Hu-p?@aa!|&nor!I=i^IASCHfdk{=8npQyp0gl!(vjxwLD!Jx^ajKLrk zpQJ(Wj%Q9+Fg5Unt!XN?25;qH1Cr!j;!o($3-nif2>m(Zncfv{aY5&Y_T}QUA6me` z@r^iN6xRW#?Lek0eoo&Ph#6XO#nIjWHbnztQg&637pA%d1z9PAOUmlX|2UZrvo3{y1ioaX}1b%+GBog>JvF&$K zG_eisE1WwJMqocA@TBP*Tzz0r3%xPP_>k6@{g7hcvvEnd7NmH=4>7g5_C0`;pA(yG z1V1JWxsazVF1W*dCgpPn^^rmEiWGNbMGj^bCE;EXyU55OX72)@Yznmbg>2^M1!3*v z&kO$A>7N(SwNpQ9a!YQcU%px1NE49o_@To_WD7)y_DgdWWa7HA)e)#{=VwB-EVjzd zFdT4y5yI5g=If2G>qXFFz%I|%swBhIZd}IH!d$YR!qgsdQ(>qRk7vMERujt{Fs_xV zGmW>aV>r&Zy?98t!Pxo2sKMDKA1pp)%ZbPkIbc1-fGs=mAankpGw~29uVLD5zq>z@ zOR(_~pLoMu*_IPcLtIlGu>w14tn7==V6zrhxp>{)P_s^DUGJbK=D?v6N*vSZP;9jb zj9R9Ay^flE(3tT8JH4$&xwXq;MH64bKatQAjm(%zzOdY_7p@(f$;F2<^G0i1-*V9f zJ0&{}dADU-$ykR(it^tzOSYT?WGfYI1J+J>pGofV434rHQ(X_f7F)NCl^wIHmCx8~ z;)%4GmvC|@ip`ZRo2r}b@T#k;V@2ibxRuWxIUR=$X(pKrHTNMOWY}xkxwj*Y?KuP4 zEz7JI)-sBBBTAOo)u-6Cn?^#5tuhA6EIC6XCXU}F3G9q^*6${Kd;EpGb~dXPrW#n~ zjU*bTH$&iFU3Kh5c2riS?W&iezEpYKW?!rAnrwuAgAe{T5f!+*c=-tz0)@IBwr#0w zPQKVT6C$^-IX)4(OXh?lj~O-d5JcwF3xxG;)s$(3olUzks%`S{b9RF1{n_{6p8 z+{TC8K4cPTgyP+)fQuY9q;3ez_M-T-=BV}Q=YVnZhpbSeMfS{@v$<1mr{O+VnhC0v z+8v)Q7(PJr!r{eJg(Ek@t3Nd0=gcv3E0Sha;*6OGw;iC**hvckDRs2ysBG(EiSW)b zBJNNrN1m>4z`6gy-#zxGwbQ@v0@n5d81+q$Pbv?Y0~**6Th-^ zX^A{`iUiD#l{y6B33hKo3&e44vc9+VEhzla{i%8d>mu2EHAk0P)7}?_cq0*i!{kGD zXg%L&Q=SYQXhsKzr^5G`?}QD0Ozr?^)V5s2BO`q;eE4AkOE!*2-L4+={Nv84#FK;rExEpaBV9xTBZCmt3l#v&C;v^X zh0Q3Y%!~`*6om=#A`A7+`$4W&Vg+R+98oAxPARx22uTG8Zg`*JeAK?3uPtI z)&0x}mvUQQ00fqF?$gbxI6ixjj-Eg-tqm$bAj?z&*XJi`P9#=s>i zqpSp(iU38Ayb(lw5a#$pv=ogT74zzT{kBv(bv3D0F&ns ziDP;mi>3ul*EgA;Ad*Nz&)u0PYELBrdS<+71ka=y3X6xZPM3WZ-#8iUC9fm;U3SpY5@{x0+iN^i$J=tI#$TQk zbo*d)?<%!d7VBSBA(Dy5P{MCP)mkJv>~=syti)>!1aHw>T7`c9B>Uldvc0S|KAOz! z_yb!!soSy4^PIVq?Hc+N_X84{gp2{P2f+xLFH;%1OTSW)wr5Z_h&b$KvsrDs) zEVSKy1<{r;lX&TK%)G!o0~7VjGrP~}Sy7NShv-6bXd?>zo~Wz~rsv$@o+#gXfY2$G zGe;HqSLrI9g{mvAD2j-KX{=R%HUjzrvgcnq@J z$F(iWRge04X5}LlNv%9EGK!<6eWWll6bKVzGv)DE__+1#IE(BOi<>Gae`}7ouF4@U zn8Otp7TK`9FD_jBWFcoa^8Nk1uev2UoN!y|X_*0)d_6GRnx~PnvjUi2Wgdbbm1rrW znVWztK9nZ;^N|3YD+t>QPnLlq&D z%x0C{U&+|z(s>%q8sefwB4lPFhYbs*C{@HHBc-I!&}c=_sefA1W%49F zQQfLr8ytXDvQm=}%PC&{(_tj~|9bu2D&eTEtH4X{i%k$a~+`^3R z3QvTd2+!kA3R-h|IomY5VBL-QUUmP0l&*VFv}s26#Q;|0j-4P#sleil@z|feIF8fD zqsPY=-**wm;y02v2Iee#Vk{r237_OZOGh-e&EeR}q>zwsxiieX#)H)Y04#Vp&BgpZ+AZuZT`C z8r$wKfvFl>XI<=1ivRNZL&G>kwHlpysD2|XHz+g^1H>%dJH3zDhv2#vGaK_T46Sh zClB&~Nh5hEN;%%=Y9bXZe7=%tKKsqDZ&|LQxI{go!-J=B(WFDC(^eAzhh7k{)HWU; z3X=WKEJtiPrqNrtZ;`#jChuITZ>a4QKal-s8XDZ7WM8N}Bq_=u-(m1Gf?D2p%&H|W zE2y){uRm_`2aB720}BVQ-sE>{Ubz`R?nsH=)2+J^#wt%5^sOj+89^VJQ5|`^aL%ks zh?_y0hLvR;V)*PD@$&^P3+R5BTQI^71g#oh=LAYvPt8Z|OhNla7z@osAy)^BQWUI^ zjohmVd6}Abb|TAmcS(G$D)wkrMWl8kjAVSg*=ae0w_Am{>VC z!_6HZ<9~5?S3!}yU%IGi8fd(6m&V=Q-QC@xaHnx;+}+*X-QC^Y-K}xo_1ph*X3p%H zn5((iaUwF-1pz^k-&ZRtlYHKVJcowMRl;a(Y1T?w$C2R7)}TF~;+$&k;bgVueL5Ah zvW1a>3y8kFTn?Cb$)1~QX6e&sOofFngKcIL#Wrn>#8qB(-NG1(Q>R;RVa`g~n~>1v zUq~SzT&<#h5W}zg-&irIoOh+nOa-Y%!5PCEL$3tF(6>Xe$RDTH8HKm4n zq-pDMq~-P(k{bSHOtDR~)5w6vln7`{Gvlgd;L9R}Q{Z*7CG>}K#>CxMDQH@c=>Y*t z1c*%W=DCrLR#)b?nM0aM4-NNSTWFE6Ww8H3rd@wGuEN^-8yRH(L8hmZN}7yLUm*>@ zg|jxZg3uU<52OUejY$?Guy)&=dJgCq(+Ym1T#7QkD>7TBn78JdIF`_2vTB>RjOL8p zyT+SG%G-3HY)YnF1}uxmw=v(=ySvT>q&qRt6UuOR_95F?*^W!8={5Yt=C@di-cL#z zi!{^x;!QZeb`Zl1qO*%nYF;?pPoWJYY{f&4GyhRPY(9(!4?HhIa5THj=9bd?D7uhr zL8c6V;(lwRR!s4rS5?!K$EMnei^c$KjbwSF>^$oqpmYKjK?dg&}Ke?DC;$1oHamvK4I$ztBrfc zDwFcniz%SwdjB~;P42>6RFnK?yR5PBA^Mn|M$mGT#0!E6ycuEOk5?d9 zboiJVfvOK_k?8hjn*tzRGaHMe^Z}wHixcCqRp*HnT40fa#}SG)61<{d z+d0}v-pEr4)WNV@>Dvh{M=dVSWxn{RTy8kXtO5j|DwoBX7@hP4=f&^ru(LHLX1sh1 zkuRG7C!YbCGS-VBby`C>Xvt4YZ&vUqQU8&o z7X>VjchT~;@TJfRDhsf`%V$paw*i1uwfSaA5pkDuBkN}Jp!89V70B|^{ z51{@G3IYK2r>NBYEVtS}`V)A$BxiNYI68A_HA)N^GCGd(re_9kcX#8pjMi;(E& z5awg~WLLnG;x4*c%>AwLFwH7g!9|kM@pr@(Pc(!%u53Y+!249Wk!iAliDDzbd&mo9 z=`NoYuYt(Z;a;jBHCL&BguM7!k`)vf9+%5_W=&6MGEyQMOfBUA;KU5Af>nhmZF3ie zL?D2|i0v zCCQl?CT?7=v@G0fP+wl=Su0KZEtbhituOa9B?K7lIm)2M4M?l3yyB-ZtbJWefg*Zt zxOK|C?K0=Rgr_H#F-$wsnAg;*UhP<|b*s0JG`a)0-2n`nnnd#qg(Kox#41kkRjBhW zyzkjIUAAvhLNjP`1@wJDWG0~gv?JGA(V;VX?7?;czKo@f`z#p%d;X+ zK&XED7?Ha?&hH1-tcXm#)@6B|DwHNFa;ZD8rT6F$uwX1kkklEdrJ0BlujW%sI^Y?( zSXV4Y*0?Q7rTjl zFm*L_(Z32~yt_kVOn(dYA%Fqc>vteyo{)i6u_})X<4;flB<4X2>m(A}2R{|3C{h16n<} zQ7N5Jw?2%CTVBL^$V_ZnPr{#afBOQ`1N+cguUE6gkakOs%HB%TR-_li-*zGvgmYQV zb#L|Sb!xHO@j;s|JkNt_tLWmRE|#?8HUwM%ZAsNQ`-0RBzS~)t`k$sxrcWl#tTE}{ z@%z#DEXmn}p|`5`DsyEcODX_V`*E8@FG$#+?+N`Ox&n{}W(aJ^=!VUb6~P1U;uXOS z%2U{a9Mu927v%k>jGNWf)z^pxCE>T>FS_=p=Pa9nmP?S?6^P!8JaShTUApQa8=Ml7 zSH}3>Ry~S>8-5|L?nrMT-FRfBES3jT+`La?ne=vId1j&huucn{0fhlLVxmaBkY~<} zv-&pa`KG4ETE>31NoD=N>L$RHoY*r5QeZ%r)O#R7nkkvM9oxV4D*+hW=;-p_kXcC! zRB3a0=0;hEmeyRkhiVS73DzMdmsFe1W5YfbqJYBE4vB28v%P(ryiwe8NjxeC!L#*^ zb$7_Yx-c>@Yljm%1T@0DiE3KN3tsf&B{1#ieP^0gNu^!r{_$jTzFHWBf`)c4hQ%0xE@ zGC^17-S&nU>iZbzY5HjTX}R}|xktP`M;}9Wsu!40t9mM%)_-vNtGA@OXKa!iOtb|B+^HtO@Pl|3>)K=P#~5H|V@ zD$89ppPV=GAsp&tW{V|Br(6rUQ8YgqvyZl@RR?V-p@GM{2i zM!SK5UZUL13v|W>9GOS|=$0KVVk!kvs`X@c6EwW-&y8_*i|Ry2hy(;hV#Kq^Y*3bw7(-^Kg$NFf~>(QyW^7?3i&&X$tR|YHz zucC0!VJED4&IS~!%|;3ayDWiU{7GDtii8e2cymdmWLRF{Xx-qNC2bOhG+*ipqY1e| z-Z(u2Y_%*#6NiE6N?f6!E>|GzN0OsL%(L$~TR2L$sb;MNs(2nos!r~Ti z=3fO|Z>P!8#rU4Y>1dK|E+d)idaeW>;w!5kH#+6w3V7v{4rF07_|YVytel}Kb_m7% zP8{-vjY$=fnw1u{svVT2p~7%0+OXXj!i?{)H1;%TBZUEwV(J^vx|B%TNKEzG+dq%Q*LerjPm4ir?_AQLUSFuU}qAZVyrW}U1`R^z7MU8Pw^(z8KH5ic&j0upu z)j~DTk^><2gXLmSEJ9Ryb4R96BBGHtVU5)UKc(9(cT)t4X}N3lWK=3zJT9kR@8rrZ zo=IBG2Syituec7U)YsvxWuySi?!-nrA=!fiO6^Z-?-v^b?^FUcDOX5*G0V9S)x@4M zEXKgA=c5ZNJNt-z&a@wPQjtfXqOtS8ncLONE9aC*!Glr!ehE7mjqCiAio61=J9xT^+LDu%(x4_j^BK+$(te^X(Ukf-PC&;=J z#qpcgA_S8Z7F{!2)i(E?L8wz z^nW2E5c(8jTkQ?yHiS{ERki$Te+jWw8=11sFP`Vv#~~Vt(X*zMquPW2+MDl{Zijl6^IAJcBKBTfEL|&iZ$y5{G4eH z>;I>U*-{qf+}I$Kx+31BG$D62Ao6l!;#;CS`ifCcs^en$lPK|p!=O&9w0q}U|JC(! z4EVtYOW(>BZLUJc&P?WNcI?|gwtvmnAfZ=ZXRj&pnF*H0ui6iZ@tNeM^8yVc_yC?{ zvN7g4YL(Lh4d`{u8F9x-(I5$9-#~Q;`b)qSqDvM$HrFI!NL~&Dtr@0!NGbC;GVK!U zA574roZ9MU45^Gx3`Qz423DTFwYP9#<6|*r2LP=qix7wEbyX#c$CGWnm?2bXTvnvk zYk|l0(A7tDte(5_s3t!ru#+E;Wd5+l;O(kXXbX9v4g3R)DWx@bBJ|V-R(%7Xr_C*0V>c_X}_V+A-#+;}8@6*=IqU$1Z3l}li9V5NrT?}rrVzt%3+ zy3y+`ha6mpsnrOhq9N36mwD7{U;vqa4ieMvceT(-WbYfWV~-?%ly+UI99ASWjqHmo zvs>LO2=0;wX=?CVv)f=`wP@v}1@7cq2LTlfO5`bRVLdT%N0BJQ4 zgMvr9=-Eun;;;2Y$aWhl;-Da=_{fFK>eVrC?y}AmXG3&R;Q%dLd4E!A0FLNzTxWY{ zpGJrDEeJ7`9VST&Gf5RdYNTptVsmYJ+drkxjc0ioN}ckON!48YAdE&hn^uBEQ(nR_ zHXdn~S_n|*zNk}289aWd-_+IKBFX%kv-Tm5mv~={#BJsk0=Rt8+xEVUN?o^cIbJUo zFawa>PSct$=xk`2WI38oE8dcsEGmlH3n>2LVUQ2uLLpN!pv;PS%Ib;Doi+zp%f2#RdnCkI;S1u7!u zI^+g@f3*Yb>@?A@4yL!Rjq9e6vy2SU&og0Wse-a`ZEXdE**tf4!X<)^x^C-f6%q%|K+^7Q@S_<7=O@>R)F0?E{#K2)x>fDQkpC>GeGnW;cjB z2Z#$%1v|&z3Zn`Z`PIoLFS?uSHsxm$j#{y1)ia&%&7E5>OaQ^Z6Y{$_0@BtbGwPI(4KcrV8;z>;Y{=0{&sg=EBU ze7KEnCbLIL*_g)=U>HL}VEXkQsutm@{y+u{SzGFnJ|-UPlK!<4M~%if4pbi@z;YQJ z#Cdb5NQj^{-$Ix3mb`f_w^meBTb|Rxd;WM>-u&7@+gnX1Su78f`swX?e)zNFX<^M; z%RxQ-T1ucr;ZN}AK?8!2g8G4R%n`=4jSIB6SX~ak!&(7w5wGuEh%<*!(F|{yOoMBu z4SOAacDu|n%*JmY^1NKG_B*>B<+yX_g4)zV5~)w|=~Xc?o?IxGqceH2pZziQR-FVj zAJ)aXvBToJ7JiTD?b5Yq@%o^`prGD++w?DRI>uMix$9kj3w1nSdRmIHq}8yi4(@RK z%D>|@jp2VvHkN;!DQ4+zb9`8wAS(M7(2n{|x4||*fQ?MFj_Vu#FZJK6Hp^Ub&c#|M z;%%XWprmOGHGFLO%yxdg)g=1Bw zEo?W@jlurhhlowoS;lO-E2H67pbOvr2@%jF zFF*gxt6flBiMzv&s_pO%x#=0i-yxy};qbYo!rE&2P)xK1X)M#9W9iz^!(&U&z>%Ja zR(u%x!e(&yX`iPEi*TdLe6tzivW48AaG-h;qsBZgmJ}>;)^|k!g z%rjY_&+_Xk`Kc#R3+X$UKO_VL@m~Fl(g!hCP+=ViAy#~)$Y7nl&ni0F)3dWUv`(QZ1X;q+$nrL} zQIEE14@wU-unou<$AjkF-q3g?1#+h1zTJj(K!~$WhCq4LR=n!Uon`&;GN8FVBBQ4c zxj`Z#8X;oQmLXW#?R7)lBd_Y&cT6Fl^2g$`SbLjssm;v}vMh!+$5{`-V|FYUC!<#1 zaxPKG9kLL(FGk!ZlVh2VBW0LMgER3U;TNn>AcMau#W2DPbYjU%U@7phFc7dYsI)TC za*#S-#cDdR%^2$xOc3a1Xm&DT`lHBElCqqe-3s7h}YO+I|0zb zF?OR{Rn-ZkT6b7CdzyKFphs)~??-T6McAFUl2UA`m5wl2NMbA=+?f03JKO3vZy``RI)Ae^ zLdH-iLKHi?cZD-E$YbMRHyBK%!)+45=k3IR0&m? z!&`|t7Pm0ogprChl93)>FHnS6S4XGQg6(Z|(vNCX0%)~$W0$*idF~l}#_;vWN~BNI zyk0K!T)bFKP1KT|ddKUp$+MdMrO`;Yp3*1PTucL48K33K+nA89yqtD5s!gWP5^1}> zGo|lyS~)74MlZfFfO>r)vkt%UHF0cZ*KoMS-{rHC1(!!-W{zK-0ykYpGa!>bD`Ndw zDrnJ5uCtToT0$nyj~mTfhfp(SCIHaF6?a4BE~dy3bu{;v_uH-4J9|7#fa%GPjX*<0 z`=(LO#jTL%zuLkX)&qvU(ZU0%#jXdJ^%TjuLBqXXx*2P z-aojQqPOgqKc0R_oaz$B)LoGM=o;^$sq((Ng{$s(9ym%)Y0kzaXVBp5TmSjs`WB}& z`u6t4WxMTl@B83$dWm1_@#y;2iSvfO^_lb&zT;!LwR6kcCHVcQpKtGysoU_^6BWi5 zZfIJDrL>^o7KbzErQ7k!l>^Q>^Lw{*)c0E>JJ!^X^Lf4J#DH-?r!KuRHBNI_(ds835>XVm4S}Ho@X{qz}w7wCqKw z5v%)UxIuk!A`xZG`G9BSf`K6kX2k@GoCXUR=f9o+J3`&)OF@OGE<2_?W+UAa`) zR*G~&sHt$%#`Z^NfZ8#&Grc84_!Uy7B7(oYTwaf&fG{7THD_&YI+LMzQE$=-;J(s; zojqyFLx-kgI65uXTji3SgHm@AzyWFq*cG zh-$q_mQkDhe5w8+S3*IH$3VgBJT>48=V+VeWa{RA6#3nfDnD!HW+-WYSZ_g@!Sw-5 zPejJGr)GbwBd{NP8iU3DD!@BJkaUwqn__rp@Gx{=gtkz(TFb6}zNAbOCk#+ajw=z4 zTvJb%bP=XATOp>`S{d^_m!}QPTmDqbZT9gQF49}M z=@W5KW=RY(D&ZQ3Q6}Lm>K^iM4O322_DWfYis}PmS!aP5nCQPZOyjM69GO}9d{G(( z3Lf9DLD5yFXQ5r5je;_&9&AEKvPB(hT>x6z_V!}QPE**c>E6v>aqI0@UJ2aP1#N7` zY?Yk?`rFBzAh&L4@qH#xZ-!UmI?^MAp*MEzLwyEFKcjEQyZy5Cmk42MZ=$Q2fudZv zcnSGzPXB;+wqDAe*K>+4eIRAj$PK{asHQ&C(KsCp<<)<&hhGpKNgg-x)adSk zynMztIY=}WBcHrWJNb4tv~}#TK#3?gz2j~P<7_gAI9GQEj?7Kx?eaF_(5r42lWdP2 z7L_{S6O7FrMPsVHFGxfQH=p(_9~SLINbn~4jfsnd@VJ!tTiv1wf1hCYWRP}x9|MjV zf2Lml3jbZlPm&yJOc1Sc+=c5z?|#A~M+wyAS?rY;ZZr#b9A9xg{j5@GyuV<3My{zN zil{+i!-KeBKNn$w4X@t5bETdby1+p@_IqKOqoF2?&0WaC`RO2oWe;_MX&2X5W9r;u z%wKe6L%%=s{E=ao9>yUEbyaePOMO4C%o3E~wOQXUU}?Xa)_Ug+rN8BjQ5hMSOQ~dd zqkqwruYY>P7soSZb~Kh6SSEQ~p0SZDai;UlBnQ1^6eu~!PCQs3nz+_TY2f@_+&kFw zOY>Soau;jwWEMZqEbr=40n0Xe?)kD}w(2-hl&^vrXMO8uqv36f#&-VW3rumA#D&tMUc0TgH|IGrvLR1 zQ~$SF?*AgB|HoeswCVqv6#w5?(*J91IuPzN{(m4kkfAdG>Gl5%Lua99p#_@q|LvyP zX@N=`sIOVsS!wB+SQuD=TpcLlS?M{Le=)MM(lY#$A^<$y|8CZq+30Ei!QM>&Gj^R7 zh|=j97=U#9zcTDB>>RW};SJR0EG)oq1EznlHw*9u0Es#aPH6ws@HNvGxoIF`tOA7LJQ*Xi0qhImZGND$D;Eoe%A_2Wt zVkdN~s&tG2{1%<$KT1Zysfi>YUjwt$z11}yvyRaoL))FAwil4?;Z{!(%|P&OCy32o zQwAFOegAKxqwQuuPyWS>SwnBYgI(+;(Z1zxNb>=x-}!*Z@N<;csi+Z2f`F2oiu1NA z49yQZ-Iy}`1(#zZXH@|TVal=)3qi&_Vge^p;o1m8iorU^3WvM)cD^)@A!dTn)6|9+ zy~N8=WWs4<@sERHaR7L1@iU4!v11&%FfU0ne96({p*72sTUq&&nb3w_#x5(5(QTI@ zTf0nSrk0QGO_%JjnU~2<%uHl_|@FzarHJ4FghDg@GUh!f)NZU1TfNz8ifEl)l&vV z9Aif!*dy{yA( zr4~E3$6xSv&LHJQG*&3Zox1T*kn12e)AvD`j-TqBr%FAWAZCsLu?o z#C>_n{Qa_{`wRwz7c6FN^{n1!| z@T(?$LEyO$M28vO_~s#Vyjz$+Q@T3o&)?Mj~0JVZoWhx1>P>i*U@45U0#D^!Tb_=W%4WK422`|^90LpB7EFSCLrj~ zB5$8^X?qarD=N=;@duW+4badH&a4(92LjM``-Lt zM{R962!Bw24iWns0OJy_yTE)$RPHM#qDSt4cctdx2ZiYEh)$q*VZZasfyAE1)`DC< zm-58=I6W-XDuuwa4bGI;N_K6HQIg>GcYIx7BZ)11eNWCBrr^dr&lco*+(mBP_I17x zbY$DM=?L+11=E@h6T4y5?N`O*!+-i}rVxi_0DTVY;Q#9*=!p^y`V2pOgZ>V2r;z_F ze@l?nV`bIL%pKXSJM@+a+x@|Sc-YoVq(?Lt-(e+6it%J zL@Bn%crxUIH^Tf3?KI}a3=FPSXGo&qkp`%!&46UUG}iJ8KnD%J;zW!@KD> z$cJZ=4;P(C7Gt6ArvC|};BS#S4^rtF#Sd3xh-YDkEF2;9-GUw+Rh{@rI6@Q^Ef){w zAk{P$VEsx+(7b%(8s*TG>m@f=cjXl3O zSgmetuVk|6IMcfmmB|OMrbK`8+r8)ZPqhTNJaO$K*=SriZP&4TU-O!3_w}V`*h4vD z0ZaXPCa@fFZq^@daaODCgSHbH3`qlvd*)`WyppBM^1_zAQT6l7RC@RxPk7iKkCp@` zX7gx zPvGk#i&}G@Zo^}XU94?1C*^kScg|Px&wf9u&yv}4Gwu@ccRlk8<_|MD`d)Os6Ys$F z<}m;2t`)_+=!orYy8YNvc$V$xdC^_zdAZu|d0}m!-`makOxR3qc5a+&1~e*)wsfy{9+UkVQp*If2ZLlv04*BNzMF_HB28uF5b7PG@{4xf^ zgvXA9T5SlpvnE-Nc`t!_Nsse5ZbbYlBJrz^yx(3JU^-;&j*CkhPH3=V!uacaz30`7 z3kBt7+eM({e_Q-JsDm!qp=+Yly|YgI4%XZ&?T)82A^zHHSYQ9i=F=s+s}9y)MNx5U zbJDN6RpMN0b>PjWJ@Gk-8r4%O-BnLaX`!oEN$1v0DLuqi1o?JzQP|Uk6{?FXEyUI> zeur!8UI#XhdJ+6gi>AGyqu6=g%U608f)AuUH2=F`f*2^(O;$@cYD_x=Wl4MOO1=rbz~=a z{A%8^*>Cqk$;xB!K)itYVhZHA#15*}0rZ<-*G~Z)P}4A}sJr1?QjfY#+vEC%Z~p1T zSlVT}5WyT%`luHW-RT9#Pvh6=*-6`6d?b1ka$_#X?SFA!mOPcZNcB>ukBPde zDI}?&Nw6tIP6GrfcBriP2OTKZ)hNx!iUKsDTFI!vJ&~I8B69?hR2%F|Vk$)9iv!lg zxrw%Sx1a@oC8}=Sw%1H2ldB}lLQ0Gy^((TTzY{P-C{lQI96X}ER$1NU+kL*j=!8gp zEOnWaD0atDQgjy7sgtraA(}|&V9zEks5By0Hn&8U3c$H`uTABenGlEP^wN4s*8J2E5-(*DBVBbY2EQ;F^34UvVvhcPuvEGd_Vu_ ziWl(pL=wM#M~ad5;U^S+<%!$L-6q1Mxc3M-k?Hmq3!)G&-0lr$e#Ldq|M>x5dLlJV z0H-$Vc;fGUkMr6mHoZq#FkgQX{CQ99c{6Vt8zucp!x$sdE#hN5Z@ZgpKngKq8xx50 z3RlMv6Z?(s~c;5F<9N{|jQC2_wMM9io+SqJQz;5_X6MSOmU(V7*{S%I#aA z%+0qz4Bj(C%L~d8g&@761{q>}KnG&Tb_*hk&Q!}s#NMMw(uZaB(I?C)VMNW|qloIm zUiOGb>MBd&L59MTJ4X7*6#A5`9-V=|}0|S9vwWZ{8a0uK%kr9f> zY=2ie{a)gDuvg&J~2#?Y|ez z)5(Wo-orE*&C$`T1kKaOd;3~UeNHjwV9>4UO z2)vhD^e@I&3bbA4R|=b?T^h5zY(s{toNPm=tAgNK6qnil7E~&7kEG6YygqBQqF_5N z)mb6+sO?!Hvp$}CT5@QuqW z9^Me&iN`ZcR?+n?V#C~bSLL8+17w~*!?me+J;*E4Px}&9xo@{>++t7r6b-W<&)93g zWDl;UIhWg?+;ZE4^Uq{nKag~Du5(m^(r*a8ex%n%cKMs$AZ-Sl)@EMyqjg9>?Q(QT zKIOty&vmYZEuZLeN3)&iz9Vx13ykd?&oi6z9FMC&5S=00roZ)y%=VC!YkF7Y<%-bu z&^V(fxW}oME9&)3^9|Nkq3!PPi(=bdIGmjJ+V9u1o36;$^P4N7{!VPpyWiVj+HVmz z1DlPXS$T`vYkp+UWUhqwJCQx^DzzbB??7&by4+%VA-~;ncp?9=OXv!HvWozgTkuU^ zf3sq)n{QnO!13s^Gq}%?WGC3q7`XRvo_5` z7_a7aA5$$&v_Q=P)IC@v+qErJvU3?R#v0di-hVc?6ED)k` z``}r#0MT-Wv(4KiJ%V*;n1~@W=YerrwugpsD|+m2Oj4f7t5!j()hyV^n@v>6XQpXz zswvV6qRkz7lRPJ+;j@OI)E4}kv3s&ZH&3zMT11} ztXj-miU)RU9?-)@^=dLA?S_Rjz8=^OJ>|3`WkAvPRQ|YEYu$vZS)sXVx%kY> zsP5iSjET^_ot-%UNj$bkXW1F2En)L(76fAsIX+I`Q4@LJA9YcQG?;2^I1-ns&1qo- zu|F6U6&?;v+wu2jOs`w3Kg1C%q_L^V>zir8+pErEvz(@dt!Nts2dt=q^x3%;GpeE)8Q zQ>mK5$iBUlcG*B-RKl}zs2r{eiK^65T}&{d@q{>(34wFdEKw_7bAYzo3QaCIG0AVZ z{@rXP2P*z%o!le!IV+pRVRTffnr1;CVL$)c%&EWt&(dnSJ;h0+zb584QUl(igsh?L zL*g}$8Gf72>`$hi@`^n3T8cVkgXk)1x_?hkOT>5#>sPe#>cBSeqAQ$A?}wh{%Vo6= zXv$`TnC1wGX37>(-NKz<2~IoVDusREV!1N9jP0m?G!hW$)G_{+TH#QFuBu3AQMRoe z-X9fDwn`?qc3LkRmx!t8s>-5S3#TNY2q#uihN_i?R+UhvXezR`)LjG&El6f}t!e2z zq{j@X1v1TP^%f^BsER`sn#2nsWo!0LjcLXPwyQ%>yBbPVu3XRn8rCF3nCY6!UbIt#nG~jZ_uQI()nEOCP}I|W8u=%uaOEP_l1&` zcwmG24b(*2RSj=juwC@>|s!%c#D1CIJ#Y zQ~Qsu+<0hsFGDF*Kgm`or_23)r>GV>-x)?ESqd2tc2)gnJ z1Al2L4(P}Nfm3SRpn~4N7m-EheotEBM_Ik0VW#P8nxX_OTD2ISK*=MORx1rh_G2tpm}6Z?Xdq|QhOa1I`wNMOr7 z_KjBTMB9e@muAMAeiZ=dJOXDj$Xv0h~!#dz1NsEiPywMIGG1TS7OmFb_}=s*Q`OcYY@I5*)wum zA;n5@;wMufYPtLkA(>39y=dF0Sb>n&dAnDLaopv}z6bqxgqD$*R;3}rSk^j! z-C>i*4p~rwaaM#?kivon?uJmM@%O7r0sT~IRO0~dtR>N3`wKeke&*KND5g=e38Zo; zV8Q0rf(b|$dua5PGPr{@@%9du;PpHuDqxEOGV;@y>@HLWB{E?-uWq1bkgVsSzAakG z_9BOjZIRTLi(s1yQ6@7n`pW&N$aFG1_6}zCco2I@2JASr#+SqNH1REYjG^?&at3lL zaVwU=?W+@I4JePblFkW<-EDiYBYFqi5RfuqfjhZ^)j6^vuHQNYa}js8ttaoUgM3_i zuPP?~3>ry1sB=f(W@~TsS)bw*s=Ic*=o(P7KN<-sl&yfEN~fSq9LR|J=b$%Wv5+BT zMtzLclY<%VEeFVu77mrLKtgX)f6%zgRv(~(`fgv-JwLapRoJ^Fad$_zynA<(>@*)8 zYG90EB_}7I-rnGC330RXRz|Cp?x7aO!ZiQB(!^;U8ASG4J;$odneCK35?-QY)wbIG zi(EB&=hOx2C()qOqE`zAj{?zYhk$!+x5B=DMsMmLb>fyemBU&AUk-laWPd~g?Gwxb z47~N7_WLvL)Bmunb7o>vMA=FBmU}oF&x3(ImCy*u)6EK1-Br6++^PEfcSA+!e?I@5hX9WaT(%);*0uoeT-Xa+yRI#4Z zN|BU`gQ{8?DN3mV-jRE@3LcpX+S3m8nOgN=w2hwb;cNuZ#;C{eLxVeNWfZ^VnV|ZF zTb7fM)h5QUKRq^;i|}He)$QsS1v{s=N1rg>b}uCAn7whVjI_MpB8wt_KS4_6Gv(%F zV2Rspu0k3qv(NJOX8Lziyb|I$g)YTKXvFsHOMu~b$hWm%?y{AhPq`*=DX3ZpZfNL` zZX&Ar{YJ2neADSM&&of4H3lJCV)2|fJP-qiavC%%RCRmibOVUjV2=vXe8jRUM8xo* zq4V5!8euUGRLVk<3m$Gcaix*>B4A)~gt^B|<*>kuNfd9zjr|sBOZW))M+mb8VzI=M zVhO$XJH)EH&-(CktGgZM#?gy`>qec*bu%RJ?zoe}+DAPIVP+sAI#W2DR--%ZsH)pc zI&oJ<0;t!KOL9;sc5-?P;0Q2}p<%zc`J2T5*pu-M?=Sz4)puM5FD@a?g8Mfb;NJW54!PnBBfsBNXL2S6WD)X+hHIgiO^J6@Vj zpL3n^8e8bH01MSFOiC8`2goTXZbhoEkR{dTX$aZ@Mi|(>RU9VF+4W6 z_ytqx`OhogTe=4^La=?5i5BRCBi?0iwTwW#)yYu1-f0=?9z92lz{pz|+BIAv2h>r*_2TW=|pGv3D;Z%tp9a?`xHiy?e;E&3wdWqzXMp;3wQ1X&e7hk?18{^n@s zm-#ZcqqiA>(b3B(%zbS&L*@=uFzFMNs7dQqSFUy1_*y%wpV0C*bijNUW)i`gjeei!y0fb@PV;t?+57_0+WkNHl^LZ&Rn` zQTXUs+hoYC(s2}T?y$ZgjWCI}4;K@5Et!K-5Jc`~85PW#Xk7kZ(+tkpE&=(8 z*q8c+zYo59Ca)m4`s=m0OK0nMIQ}%chvSnOLA^q28eCJa8r z>4~!VJzMT}c_v?N)?V4K@x$zKd-GABw5w|C=L~P`b-_A;;148O8zQ2fp2J#{j=eAf zI}?JZRZpDoifX^OeG-^)K&~;e#S3(3Y&iC~_E}$l{`qN&Z}ub#a?@VN-owbWgPS{% z)^k7C(5UNxf{(L3!JkPIgG8#Uxo{kF@ zoRI`63k;DEt@1l|j=$`iB#2eHVbebuua~{vcNoQepPC}_)+^r~S{A82|LeGRNJN+VqB z4IeM+W1@sF)%%aVJ`K2wy}>etVQhr%YEy8gV(_}?Gw$GWp}?eS_|^V3iJ0d=N94=4 zs?b#^+bOmI!lTO-XEtyFr5K$Fa=BP6QJs?^<&Zh)x-sOSuW!u9^}s<8LWw7XK?~m_ z-it39-M{@)GU7kbs7OivzOno@-anhRt*fJzyNk{LPoD}O;F93^i(uvd#HRuS1R#IN zLH-?|${)zZf1@z|U7w2JzxY)C$Nu;mR`UOZScM00mi*StnEus?!Vefg{!nuKqn!i* z$+-C0e|IEc2H}LU^YCy1!jIqB3`~#<@U;9EeEd#vQVIS|2l6|`3kX+u_yHj8k1}2! zAjQoMXi@$P0R!|Wf`1hA0gVC*9KdYyn^S}RCZwqTp7&RC%3oT90l?dDj0^_2N?_c- z6)?Z^|DF;6d?oyUxLkMvy$H{5CJvCW@UwIA{nnuTy-`470_+Mv*Z_$N51?k@0>msl zKqvgofb#cebMgaL6dpkK^5@JJz})=})%o9;Ep7nb0rV!`PrYm{UD5pWOq2ghQxa>) z7e_VxN@Rf82q~N>Sc9K(TftgiV^T_w@bS(nAytY9H;-j{a}p!-M`zn_Xsg7DQ^LOH zN+5y19#XePHtCD%Q1VvkTu=HNF;FG@O^CE>cQOGI0Bvol49=ci){L^a5x=-5?QIkl zF|}#7?CBJ|4oBR83rnYWI3muhuMKoY0Z~l0waSsHWVI8m-#^^skW1k{lXqOI@bs#c z`nW-1Nc|E*j}OEtrkAe%)k|4%xKVk!GWyXGH3AaDM5NTDu%76ko`$PftX--D$&aZ} zRx{PAnq17X_%U%h^Qve(xki17`Bm$BPRQ03K3yPnGVakUIz7KkrU|Ccf-y_qlWI`M zyh%oz+D2=ZrvqE4Pxxm1vTGV|4Eo7FXtm~<>yG4`{^>dDKQ@#6k2CY%SCk0;J}>+W z#`VWQ_-`kWKU0+O!hS2D99^E;di`;Fd}=FWYwd1hOU3aQ(hE=p{WHXMoH47cqlrH% z{-rn2or8efk~C~ij*IB4j@n|&+;{>t&O?J#7*+7s0|oAxZ54~{kfdt8Iw`*$n8_uI zLW?JkjLbLRo#1G_=zkU2>zMrG}2tGiaZDo}441ZvX6)4j1HGN;ZN_LuvV%f)2 z@bF5!K-DMyD6lpG%3^O;|Jale;DvJ*hDJyq-js;Eb%rWHw&AnUX-PIOui_PWa>(lL z+}--2Xn~pJ4a?CUe_QNMdA=06{6RU#CHY27L|>qUK1z@(>kZZlf2f#Z2K@x9hE1}7 zblx6<-xzEb@8X8_Jeo!pnpWBHQauKQJ_REAG_skJ1PYEH_@whI+!4t)ODG&!Z`9%R?J9Bi5Cs2ayf@9N&5z2Ov`bLFR8k7Ye|cq?yAV@;cHm& z@=dw3h~JR^&uUnHtuSB5A?co;E^&dTQJ~$>kN9puw_(~k)l`NTgYWv?iWE~BesNqC zZZjU8xOx8RWcUx*a_PS;*jDcDPk~dCr3ag%wY!`5pRL!Nz;ONTPP27;3Jm+d8qa`@ ze_EOUSH~IPyyE_Sld@wb@bdy z=dF)*_z*8?-1uC44W3jqMVBRUWC3;Oi|cSw#yeZwZ!(K|KD6dlKi7!r?yq@l+tZS~ zFkh206N>C`zah4It@Hq=+UIWfCo=%($Uh$(e|v}j1?K&q#>9WH8vH5LEBG%^FCY>8 z`@#JU>gD4HY;^zYav;dX_utloT-2v{@?EF>hbwl*xvnG}Z=c4=*(FCLAR#v^nsI>} z*sPNVAnR^qcpzU+Af_ZIDwd22!b=wr!prO$h(j(tLes#@r1Ybt@hKbXR96NGDO@l- ztEg_~L@3>LpZ8Yo^@;G84{gi+FLd>FU+DfitQz49fs?>K9ti6%7GiV{`Vxu&cS!|z zL-u*OwTWz<5^hcw4njuAv9GQkv}XtBBMxV4sQvBe89{jU459-fT$g0?w+$m|JP@1! zCfvw+Xl_o*M`>la1xgU74KM#njQFOlBS_*o+?czYTTL8`d>Nbr58S15LHpTA>`{j# zTx>6#igQuf>$=z1HJNa0Wbkui&wTjX4&|$Up~30Hg%q0e*K@7sBEqS#!A&^0IvNu{ zlB^&WZQTTX3maM4jBhVMA@(4qa%G{ipr+WRCRs`b6T@8xbCV*aT5?r{!qe^#n86*R zeNrEoDEmYk1iu15R#q4Rp(J?CZ_76+=oGTr=VI!UZ+ZDFdU1>h z>tRR){C&Sm`r5>BF}TpHj)4GGyVlpNx@cU-7d0+E^x z@w=*=YqL94QK05b37Z&UIvgr9ORzT!M5nnkDv89y?cTrR$*R&L2>2S+# z6--GX)q2>7{)>8qoB^CGCyJ4U*cs;&WNG&Ow{%&Em<@17MVLlKsDy77wqF~tM|dM> zptx=)-?b^IvE58BGloWqj73m$BHVm*Om1n1Gy3FB&KfVvMeNV?5)Kp+g~W+sC(X_J zl233M?CSL{?lq1KG3%@8kzbEt3DMGiMfD{7-Y*5;p4eVPr!MppisjDbW!sw!*K0Q4 zcvVqo1eX);*JHxPGMqimnB1N2{Th;<2a(4ztd%>2vBffEy>SSWZM-++I_ar8nj!YQ zHJUQ`sVj?jq|Xz|?OS_LB~${p1n=wLai!mWC4tu>2|0-x-3BdCq2z#E=iuL45IqT9 z-4-sD%68c8FUeHmrh}K6iOiH|mq&*7W52+u(=C(JnZTxDxZ>$7KZ0}ZVD_T!5xKXt zDcT+Oa0Th8CWj`U5)(N%pvUG?Gs8H&G}lXyG{jy9MUhibM4uLIUGzg%=*|Xw=D?~R zqCDfm!#_08xh)B!fo|SGb_kE~zYZz$;NC>|Zi%{y(f-!eLwFOu`jf7o;?bd(0et%q zv;%KtfO4C?gKXt3S_h_(1wl17qg% z-74qq7v8)elpTl&`s^SMco5!SPi(R0%Z>x9s+Rn=tN+=oA4uL=U zR;b^OsNe&25VHLaZV-a`VEY+PUKq!=@(pQU=%NQ8)M@*ahJApi;#VQkT(cSPU~mITy~YF<-0Edwge$t6 zgKM@p2j}%q!Rh8)(&3-q?51n-xjuZU&DJ`utg6ZCv0sq6etG_BZ$e2qHV(~nrqNpN z6{#VomH%Ty-r&^{yy41oDRcJeGzXpo+}%AMr*y4B7`RC}0w&I3drL2yp<(7W>i9Y_ zv+1yI;!HV+oFm=TSZ?>hi|cVCrB2Aq>8GwD5%bqW=9u_<2V&RR&&o(2}2^n0Q?=WCMhi)hFbxaMJM<~cRrZrqy=p`>UO8N-4RD>-R0iR4dB?^ldZtvsg`KgWFK%c?L{;rP5GkarI{V zOg^P`DaA?~Jf)*`H}zS}q|z2rBr$&qx_zRVygt4+>=`9Zq_c<_9dV*VbgzY~B(;c? zp_}4yNTW>*`(XirZL&`F7b!g0KR&a2d|C^_-5b@%T4Z77y-^bGUC{o(VbGvk_PBPv z`1((e_m1=Tqpcw-nA=UJs(lWL?ZWfCAUxK3F z<5u;c4B*_hcr&?g?S;JF9`aP^jqSzF)g`@*RmJ_nABTJDzT0aTw|}8nF~jIj7Q9A3 z$b@;n1kbRPXy+qAU)cQPm6DI?{S z_Ck;^$`a`Hk^EIlCJaIvSDuTjA-|G68cA8G8uZOrRIW+S#MeuBX8`EHS&ytpIV9;% z2}qF&=cbhFlsHbvD4f^L{aUx{a!%4eBu=L=ua=Jez@eiL9TqKP9K=^YSF+{fZq-!- z>?fk*7v`oE>Kuq4k=R$Dl}#h7wIsU8u=okBE#qgd{6_O_5vLgj+Va-C zU8gX`Dck2VfgCyy+Uqo$Kwm~g*?a^e)8(&H)zxnTv5DbtmbH6KF|1-AWcy~GJNTqu z!(nfyc$4JCaeIc1qHd;)z8`kjzxa&E9^!jjB{h?@h)E6dDv10{?EvPYn^ka2qyIRD zgu(L?e?K-ZLr+3lLHc4t@hg1e0;vO-q5t_iILoBmN3rD zp;i|U3Xa5+Fj1pY>CZF1sX%PFRj=65yS(-bxvbnXvs}Y zzbj)ql?PrsNJdRvtbh4VurpL(nzO>%agL=u5$7+*{+$=)L9C}hf+MC;DV{)4ffyZ^ zHvU*9UWsKGJwaA0OylMEe1VUO7rFxGZ1{>5L{0YJ{YkKXMgTLUv@KvTer$1cm*G}} z4mRv8=q9$;tN?YcEp1Y}R`TSd+;Z@qCbiSfX?74!9s}rc0Xc#-Rb2CO&*_yJjK?NL1cp;;A>4tNR zE9JRe%A&!ibbP~v3&yP{-QW)68eT~vj$zD8)(ra#630Xr@$;h^`uqD%bcZFBCL8b_UXWGUI{6*QRZZGTx(Kh>q~@tjORNhonZ8`gR^Rm5|*VdJgdgz@4&<*iUw zkFG*2YtKpm+rke!=I!Pm_=AaOl3Psi_-BfBB3MA3i_B3eTk?-oW7w)dJcU|*M2TA^xe#r$gZ`9;S;*)cGJbu0cD5SRT?h6P4dd#l zbeS4a?O{p_g%e*dCY4Pg>YiuWY+}u&1-qYe4@r^Y*2BIBiNSsf$jKfx!h3Tvf#`2L z+4gb|{S~t#uAgAoW-K}39g?0a``|r)q>Hs}!$Gp)5;CX;nl~ zNE&vN9$fyBfw?wju$0Oia!K(rTMkZEZ%C&fnD^u{nYDG?=!7ERJiXc*JqAyD?bML=LGWaL(aL zQXiM}4>)6oZD}U&Q@G)W3gWyElz#nRj~;JSv?OOp(!S4EroM^)l1NXupBM1;L0j5u zx(>hOWH4l2fQmNQnkrmZ6k>sniRgh?*D(M`q_s&YF`V?d#kR*Wa1nT9=psPbtSflZuM|o`~BGGwrn(lj-k|KVdZ= zROEbkNEjkz$xM6q=4)tZ;+WwTm<*Z1%YvSwwwIaNGa8+`QrZ41rBr<pfc=T*b@9`oc)}iA}e9`ChTA#oH_9J|dcM+bs^w;}zm| z3~@d?P}SDgO}AHfqWC_5RqyVWan``c%WN59zn*pybFdu0xht7Hgj}9bKhXbvo$xlf zxAZ8)W-P4IpH&F2L)wAg0d9^WbH4Ozy>7W58Fa7euJ4Uzz`$35y{83=P>GS$(?VE* zaBN^+g)ZqrH)2Op(`g{Q3G4LN2EqKcQUsT77iYa+GV;Yj;*@?$39hHr_DeCn0fHAJ zu%ohtPj^H&STk#7o~IRs0lEC$EWGYsePuR5%NCFb@xR0x zyGcZr7UDsvUoOqI*cDI3E7zdpePFaNNLGJ0PTl!gE!>1!%tAror(lvsHuEajrimmI zp~hvKYyIsewHQkq)>)d*{tqS9@d+B=A1NO;44Zs+*F9|BlA{9aFRQ33eU%t-A ze)Wymd0Ih!YMA~7R##w|_)4btP59!~>E1I73yOmL2`tV~Bqv+>7F2&HrzvLYmeF)@ zFt3p927L+RYiM7NaDC0YMa`?ykQo^lr6##IJmscnNnT1PK@x_{vm)z+N6KETpMhS4 zZpL&FRXww1xoX{?X*u1hA^oK@wDkUst>1Jl$A*Tjv+rgvLB7+A+Zj(I@_?g- z=~?rSI?n?SK0gE!a>$(KXi52-vBl=u_FE6lp&-8v+Kdx5az%SN_b6&IAt4JE-BVH| zc}H$uErB*%^!(ID=TOaInJB)A%-+M^%SL#HocH-t=#@nobH^Thgq4O|zaIigy3vQ2 zkd=x)2nyh~Gso*@uW~8dNBeiTQ^L67 z3ecw3x3n5weTo|{4l|?=Pm7<~&fzRw9jP%RL*Ua9~x&LYbK4 zDOg1;eYS8lrg@4Yr?FP*(t)}Le*|(|sOF~oSThC1NDDY-4eWpo`gZAR@AInw=;tNmbu9`oU6C!(QH0^}K{(kE9pxm!4@S#V%Fq)PenA zNEbCZe#K(hD``(AwX&0v=oEE+bnt#cT|1X)B~v-#7pWX(_69} zP6qDToD{3+$@t`2Q@>C1Kfa|WrSQ@<`|Vmw9fAc|=; zdpFq|g6GmIvQvj60#U}k#yQb+>lRdUxPO{HHI;aktWB-m3vznjeN8Ko1}I)A>- zLa(XtBuDm&(DFTlPurWfslATh*iU($tIU^fnjU>UmR3fg7sEU33pH%KiQLbdnE#-< z_F-epP*#L2(&hl0eV4sR)FMpG;T4P6bBUj`kxDzoT3dJHV$`o9R+1jQ2Q(`2*^$#4 z6MF4OyPei!RBzJO5R0NYj8=T4Ek4S>eLj;VvEz;De(zKc<4++?_T^*4V8nzthu4+uPLkqQANf?R;D{GwY-azFFe>z`qA9hF%$>?;C=) zU0Uo5I}1C_MPAPJiN>7YB0MIm^p9C)@-g@JnEyhLS$FD#iM>p#yQxL(#>)ad$npm7 zC_tGG#2kfbNAsf#*`G<#qd(j{5+RgYg&DozD#{2RV;LZDdB#PHzZPwIQM9+*@{1$R zZI(=dlA#rQlH!nmg}YhojbqekxAP$zKf{;lY|RBe`u1NnuKbBc{Oirs{d4>xY-L5` zd&WZZVJVTS%uhDu3vD(s3N&|l-v7jg2$Kk^C`X zp;*VhU-z_06e{QRh}kPeHGGzFpB_FG5P;3~$=H$harJ8@2w(RXr0;pttl0mt< zuuJc)YMSVCoUAjw&)QY&?B4%m|03FOHTawUxL~?8EKx=2Chv! z_65irkzj&8{!NIevZL%6WRH93JHz!2Z@P2a#YZ*+he2SuhzBo_V}ntmguRj)q8KyQ zkHhqWWZc-Gu6q4g=1M60OM^^mGa|`Ow9=d$7g*WwuBQMxnq1Ng0)qJH;dI}nWE^yt zeiKo%xf>D0aHu$i(yTW9YmoP^PE-!C^>@!XS_xmE`yeVG^ z4+Amx-owoa7etWY&6EqWa5Jh?R@A_Z%S+O25?^-{(wu=P;z%?Zq<5fL4V?1g+}KGS zlj2=_D7)4<9syB>fco$&oqLJlYn{B3U14Zn*)A)AeT9JPFu%@yTmb7q1w@#1r z@Ozye+2LHBCvSE!p=NJ(d7)-yy97|P@?ByA4o%OrSfa`sZUXrV0hM8N9TD|mZygck zVQMIrmS;#TgkV;qu`o7R=cvpIo4{1(sTQ?nV{Yu5$~DDdENDUTt|GLcXx9@;QL?KE zeUusYg;Kn>A|o)a^v{Z&)^RD`rH1lpol_BDYj}ziTx)uA5Rg@LM8*ElsVT8yBk!`ogvVk*^|U;N30Nu&)P`$yHl>DPP`C132B=%96)HhorGbJh83B5Q z!)q%sg6|bz4X(`CZ zH&(<1(v=<>$@0Sxs8{9KYpXK~RvP~(i zP1n48(LcRO_~EWEbyjf7wIR0?lNiWN@_R=RlI07@{xrXlKIP?LpRw2f!agHB&Je41 z%F80#xa-~99Ei8GzU52dfz2t_Z@7ZemVCexG6i$6%z#Jl&bB>6ZC0u4#(FNVW)D-rl#7t#r*OBk>FZ>t5Ol^`8zMG?%9C=f z-RrVl-K!j1;&?Hye&%$EyiiU2_|?8{GFNv<^@XL-qR_+Q*D0Mq)r4kb)kghQf$I4k zrxxAEtF>w;=rI9rEdkRT1Xnis+D``_f=o6q;#LjZZLxKywAv`HCt&{^DJmVA*(o)JY1+$XOC5Q9xR{B~g#mv! z@nj%^I4P6{WEtib#sbRh4tU=I>5@6)9+V9$1hYf(7;hRU^M)ekut6X3@@Q`ow~fP^ zLH1xZyddc_j<6TFL8@m2gP9<6NRZkYcGzqeOwNP)Y3#Okm^xUD;U;?f6!e1jhGj4c z^n&^(WSedfHS8L7>zfkgaKv0U=oHeUdPX>y3mQe;qVmt*<_*(FHKX>=-XI3ObGXHN#3K~Z2V+$U6EpE3fk8n zGe&izHjwk+9@GlU1-sE1NHt_x;0#KI@r5CQ_#rL0Es!b3EO`i3ma>QF;FB=Buyv3s zC;>zxi6|*5Ngi6bEfi)5;zo5swS%ZIp5gd+2Q14J_B(>KQJui$5FI>!a1|Je3I#LZ zsnBF8Y%^p@a26EhSv-*>kz|%cmE@Adk)#fd8&KrTu)r8}2-5`7qN0K2o|Y}i7xwRf zZb3ufNL+y~EojLs5DOQQlC7L1&6zc@WqU{#{Mdx*VmiKZ@SQ)}!a^U{EENTE$v8&S zfO|;`0sq7`0N>QTvz-6(iuOP{Y2B7JM(jl|DnPt|zJeShBT2=k!u@v~JsQ%LS?XXiGsKRF|+ODfV>pH*e zjSXZ?cLlhm))k<0Rhy~`pzgGC-qRpw!QpB z&DNySuC69L7;F3&FD}FgMcd^hNodzoIcI_d*NDxq`g~oN*Ho)EqsZ~kV;B9W3UC2Szk7$MO#RK=Xp6=X6`No1a)%3N|sAJ9Y} zFhb^$AoI^4^RK9iDJ5h+hDXnYM)x7&1f$ak0S`nPAxxT|$TF84ka=-Q8T0VyJ_MX# zRGOa%GM9qU2b5IBvl23IBmi_gS_~d17=z{~Smx3XGXGIR<^>W?Fqq~idh`JzWL^<6 zj|!Q;qbk0ZkU0&D-h#*J#iR*9m$_t!J`jjLz=X_yqbgpNkf{%gHUr8qXoQey0#Ie1 z;>%nD2RTbsOiNWfL{&^AAu}5uU4V!q3LG1VMhHwJ1V@7w8eIU7bBuy>jEHlLgmVm! z;}aS!Bq@U%?Z6*>;0T#lgUn+==C!Gc86{=ZL!v2Aa72ODfu?~M?+cj+ns%isuB9rD zl9b5>9uhLxq0xL{(G(yYQ8=0|N|~pW(FbObd1T1EC{^(fs$w6i;#R8SZb=!x(C9F# zVqr;{YTzLu;};SwBq75hDbpSvttazfO7Y`*rJ}z*Bszm&_xrSFlzXgDkoD3Iy=D}V z{0CEFpLVvxldy_vHckC6@}~JjKD-bgAGf9DZzXjzFAUXLOHQQ`5BNUV>*%0m4-+|in06R!{XhkK+vyc`1@0ei>}tO4CG&kL*47af66fZ z2iU#LUno9l0NrzUvHTN!Pml`;3<~1{Ftfigd@x>4fV<}71+XLSr?#$oKtRqvq3!v& z1=zU+e&gC4icc+F9IYkY>|JaDfawoDPfE(&9{|_bc({RpmM{ST0B7R{AZ{4XZ{C`Z zpZ~900P^%-nD#$|eScx0{t1@l;`}#hdw>=M4nvFTA0ov5OE>(D_xis;*>mv%flqmW z5U89ye7|9L4jFymc>e)mpw$%$*KU<2Z^{A8fHzEP1=1qf^4mjPuz2W z?c)t6OWGY~MA+1Hb{xlBhiI zgb&J!@4l=&3RKB)#8_KxBR42OJi|VkBEARZHdCB**xpY&Uyk@Tbf!;doPXZgwY!Fhm5^uH5;T)=k|c>ZZ590#EW>Bz2}R(4nZCut7{BkgSB5&nB`P?f|lh2F@rF zfh@T_GW`(M445eq1}^>H<@N(JZsvOHdaK8M>-3?g{qFIXu20oTrI7BM!xdE&2pq8m z(wv4dm!PowW|(Lz96Iui=#CT7ts)7qv+=FbTWwvZeYi}3G1j=;9lVHpZ>~=Rw-+`FqSiaBKyVuH1k*~~st3<4B!|T& zy5J!4Nn#kP_!UcOdauiwBFl+c13!r}s(pTT28V4N<2FGWTZPo}X>u0sK)Z&ZJw7cw z_H&DZ&+yoQFPs7r1+fMk_SYoT5(|tpDM6K&N?8cnuW>$0ptFXSHDCaibfq%PFco5W z>mp7lKS{Y1`BYeEgG9zR(Zo7wL%5~gEq?Yw&X7EXsFq&L;M&n&HD&c~S6>}Sm+3X> zRfaaWo!}rv3==q67E)>279m`kYSK_TIYI9T4D=W+V~e_^T~ARW36`l)yDV%GjPSuE zL_tnq?})4+b`BAC4q*|T2>whNr5-Af!y;k6CqX5oGS)hEI1@b<;l<1c3v=Lq7EE$*F9y+nbF>!(AEZ+T;1 znjzg8)<=lRF0Ap*MdSv|Mr1~bpQ_q#fmbiXiYxhhuZ1TNp`9Q*=69Fn*9G>uYkXHE zSDd1(dF;y`-+x6K;SHj!O4ITTV$Oji9YV>9knILkAf*Mtv@LI?3^0_p2`f)$qH-;m zH<8GVtMP^J2hvR_&c?LWo=J}(@cKZhi2$=?I!81P+#&u_r<9YjAP z^G7a7Xd8346po(5N&i5vDDEx0kyuz3X~A(6p1E!7k15rFVwO_pwaMZ^MauAcbsJLv z&i$>VKl)a<^ciXpvisoawy6LH<>08+jrR?AUMTt*ecns=9j2#4s5fYRk?!00d7#w@W<=p3dtr)O`2KsBeCUTlddTBehkD4uDL<4ARuI@yMAJV^5Yjb($9Nc zJQ0lChA6A|r7siqWiX6lyO&$a}?9e5g zqxX&{G~6)^R*ow7*!}J1+xfTikHMU(9+8e==qh*tmmg~<(@_>*!m=4I)q}YgLGQB| z1kOKJFV~O$<^JNqB4?Xj0Ao8F_%q38FoA9Q`xm4yTb%Y+HRW=zAAe?ZJC&=W-&DU* zxzg3uQ#s5L7!-bPa=X^Fkg{7W^(t`cK$BJ;AA^#QM?BC&?{ksPsKgx{`#caR>W5K+ zQJGEyhAQ&Mx>$#UbsS#-Zuw$ih6EXi`@U?#}FN~uu+)X2yRHslP#A0KI> zD^{NWTw3PxnJ11Ix}>#;tzKJIp{Yt0jGnO44E<)`Y-zd@DWXxB?ue(abE}vY72wS1 z-;@uZTs6#m_bIKzDX&RN?dznObGxN>`ih)*oIPVK%i(Q}O0r_Q7*?`p+J^G8WVPB_ z_pF4*y2cM?T2dRXvF4X)XJy52*o{^f67!C<0v%0jqn*BN+f`h|tzQw&TXE1JY(d3e zxpLY!nNQ$OGZ@9nR=7rg#%)$sZZHdS40J`+gk;**U!210pEf2^_q0wTNmGUVfb7LR z(BvC!oDk*6)U80HgIw`W+c#v?C1iZyyZgC9YHj#qzK+)L1%Zk?iRHiYE;Mo0buPT# zeMn2kvT%-x59h!miRyJot9Y6vgM?}oN0_ktFoxEYmGztz8oI9gi4!Z?7e8~4j?|uw zy?q0L&+DEMYFHxFh^6TxYsiq?TZ7j*E3TWMU>&h=yD*Z%g5Oi6!B=I`(qg`n`qmYv zw{c8JXD#oO7w+-4?8s|eW_iGU7*U%w7N;?Ocbsq)63oXD0Db6i>!_u_3t)WTtGjrg z(pu7MGoeeJB9`}3rs3I}OQecj=I4!5j_K3Th*71TK8su4@x6VUZQ(&_VHw%Oj;_`r z>qr~hjmGlhV=0t5tj*3^as?Wf^NkRL9gMZ%fHxl^d1oh%G(uwj7>;+?4 z%6@I22pmhPj$CZgTYz=c%2P^|o`V!C2@WfF#QG}hiR3$=O9|i9RxA~8ahTu znACV`>*)B;ITG>4=ixiXMM+mmE-FNYl++D{A&G}JqE)?MiG(8MsLQd9#xUrW;yiUr zvGj4{NwN|U6GuOUbf<$L*pnKqVT}L@38A#uxr$@8C?Ka_8706by)IOu2ux|1T^7@P zY$h_4c7bq`+>UJ5zKYx+9_pX$6`h6{GbV;CGa*)vsEL+e(a292V-$#!=(p$3AEUqR zU)HN2bI!z)I_lQZyJA+D&I~1g-arHU>0m-fd3c<^+fLq8fVCzQQ6i@!P<|`h$~_QQ zW8E_*FtY1jTj3E;pwF{pDO$Ag>N}Ktj})P}s$N2KhnTU7oVQrWD6HaXn&PuF@Jpu` z;md>-&B{6^^A@c!EC^NuG46+jcu8^%iZ8wHz?#WQ6E@oC2~CK{TvsCFCRjGehjXMWQ?nt*^wr#PsQ9EvnSInQ`vyB9{T+|qtt>;U=1-@Zd6|Lb zVsfKiIUQ`m^bVD&*6>CmEAk165GIZYJ$WRV)*(74@?xPMvE}i05M3CImQT_^*Hp;ykd@4n8|s4TZO1~7N^nwI_ggi+e7^HVI1 zhFKo5fKg^5R5)+xTUf*xN)7tou_m`7a8Zrr9K{xD_Y%b8mmlNSe0zqI$|=CqJ2Cqd-QklMsLQ1rjEIegCx6O za7=N+b5>$%JLmh76(swQFZt+oWAeWhc!Cx`H9;5VghEIs4d=`~yUr#3wc`nGa8ACA z0e$*J-1hgl^rmQ@0?y8PW-Zhq*|VJq+K)W_M{gYRMCvk#M8*22W4*uA@D5Y*zDj%X zWX35SQ?5x9b*M~`PN+}liG%8=bZ_m1to>Jo&l1XY8ou85$!vTqqI zb!!5^)_Bo z3@?($J+to(89u-S8B#fHFCtVDC-&80w?bMXfv{)#45wrJuG#l$4DRFmMJiiqMG?fkZ%!DD=<|0dlB7Iyg+a+n77G}ti8fANtq(YH4jtDbk zOue)9DpWa19~Xr=W{#V}3~5uBVV&9xt}sLTRAHMYErv;3uUwUk@qN8)*7R}Q>`m6x zTpJ)bHM;ErG!+Tvm@yudJ(a4c!QgG{6|VAm%%)AnZoE{HApwSCvp|&^ki9fss>iT8 zX;ZFZH&!aguxN{$6l2b?I&M>?Qe_L1Wf05O886jhAb@4lrN+QWI8r@f%&CgWDrmO5 z$uY(ZCAKgv1|%2>d#WXj1ezL@jgcIq%*Zxs*?(;i`ct(F$LD z0vBq8w0uV0s+6;%C&}H4=BrVC_VGZgUH)_5X{j@xkML2E8w!xiQbyuQPvwLJUb;{? zQF0QjDFXhjYFnNW9%Y2Zw&Yb*X`3%)=@Z>m+uV@(UYf1U?HFIc+LFPCrK8gLb#@nl z!3zDA27ftnRU|(%P;GftRNM+MWiZA zssq~m&j>ZqHKvamK!u0Xfo(Q#59sbD&bzYxJA6v?k5+mA4G;AMh{gVcm zdURJ~b73v3%zXX>iU)NpO^A>-GO*UsN%Vr=f&#!MG#)^CD*9`5&~qA(f&p=G9_<-z zD5X&Cx(WCpf8ZK4gL{)W&<>h`2&iu3hq{CB69&vtgH*TaLhHeKRA)p8qp0_t+|LAv zq&|QWac)uuh(L+BH+Z4qxHpKQv#9q41NI;>`ZLr}T9DX@3h8*noID5%?NJ z5j_wH+M++h3T;QdPaH4?Vd46x4!|S0L;UjxoIzK3{^ zSj1c$$QN%-)`BsV9U&hi1dayzLe|u_+d*bjXCk3rz#_`qBnbV~XFQ>Az#@v<;$Ror zGf-$Ps135Fvh9hG3l@>v)%T)}4^9xB*gxYSc}|qJ#k`f*+(Ke?SR=1Iv*tc)=6(K}S-`4Y`|N${RCTq`=X}0f3sISV zlSW;pAXx$~L;*sNohi|$WGWKk3K>I+qf?hHNR>beF$c>)kdb^4JCNe2IJ5g0!8Ay5 zlyf{jFr z8O4Ap*C$1pE`bW-0pWmXK(HWDka7782~m&%m>6saW(F&Qk-@B>2pE-M>R`m+^2LKa zsDQ(jo2V>@_m6`;cH*8jxZ;dQz?>xMSrd;lIm?+Df3~@D6DRCh+lV(g^DoX2w!d=Q zAnI9b2XclF_EdpDCLjkeU#za&g82M8>w&nw93l1P~4QK_9^BXXK9_;n< z`gL*uEfqlLz_DI{0|asUbxr|!x3V0!SwODcm0Lbxz#3Lq!sF8Bju`h{#{fLVZDIdN zpefY#oFrh4DlEZ&YIA3u@29K^mBA|(#se~m61A)#!7so(ecK?Vk z|B1j|haS*|2V^d9?wA052EtRcFK+JK5C#~H0v_JGj^BW1d~?T(IKU{Qf5a2mME2(4 zTwkxD2a2{Ezn^;6eLvMxP`{tIsOL6yc-(0XH1Rz6oe2Pcwt=Fzsl9prnm`zkwOR&* zO)t6|0wMT7_Ph5}qILEA{6N;o)wNNS!H(_hYKNTX#G0%zPrKyePthX#KMTj%osod+ zZI{)Vq%qHJa9x&Rx&5EBMLzf2!|YD~*3&i76|XZVM`3G4S+*Z6$(89PcnaEHMZ%5L zNq?}LaMqBn(m#UJj1y4V74jrN~`3IV4=m;81+e?pF1YB#Y;NaOy zSLE^k-UylQ0n{jhZH74lN?cY&ZzU9y^pvws&P&>zRG5%`hVU}|MX=9@NGVGhH?RET z*wXRRG1x{}f5zyy{Q4x-^Y~RcOVF}#{W%Xr?FzwpL4%z=_+SQu{8nh2n-pr>6%*hh4J2-j@ z0UM)TqXP%yrHoyNp~~4t%t(AiN!GO^+WLHCeLnx?BqV}BATk8dGZADS4J-r?e!zxY!66`rox=|r!4T6lsFF#UWW%gqeHIn z5f3O44^%LxL73Adlm&~D67?a$H(|jhaG)MA*pCQug^g%KfoQ{lXoG>s2m$+HL0U*4 zEhvx{9LPKz_y_{>3=WpYoJPl-c9xXj2oBCe0Er@i{qP}IsE7vwlm+FI5^5pAc@U7} zKTm(~3Nm;F=$91If&{rDL_E;IoR-C$hR2+yp)9zjEQpkpzz7K@hkyW_#Q*`^MFH`k zKm;aYr-6&ywq(CsKs0@<2X;>NSkD4j1fy15jMN8M36VOZ6Z@%q;hQ9Aq5HA2GXzusY0 z^UKt%5H?m}Hrl-%th&akUXZCVAZa`TtjRciPuamLKCEih1btr2#tL!snPY1FT;fI> z&%q)s>V+$rns<1OR+fX=cv$wTG5YT2gE2cax}*e+ChrE#Ww2uLWLf`2>;EKcTsVj- zm6fg0#%!F0Mx{l_)bR3}mp%cObj@yzJ`;y|=~`5p8@28jJO~YbYeT^A6;Ez+qqgt$ zkm|lxW>Ojk{#7i5t3kIw5{Y#8yKLjc;RdW%OC!&C#fYI4eG2otd*m@#WOJ;KwVxBm zKbSK8D)&kkD*(RdUlVHBq3hGkw?5Uz>7zv@0eyWjRumb|e|4QzRwbDCQY`xAO{ zCXnE<|3_ccmHs)R;0G_GpzR0FEL{=o5|sEb7ZACpOCkc-aaaW*_V3Bv+uZZ7x#z+k zkehM^J3$t0S*7(u63b~fym}^p_BdGoN3|~s6&M8@#W8=sC*e5 z**cSmF>trm%9+QFB5U<=`?ol#;? zpzrWvba6I)xR9JcoC;8+t}XriqwS7gi{Bq1Gemo|ZyyKXBk8TbJIwRg)Kmxg=w41& zU5iD_g5`n_veVplMaEKs(gu)3_hon#b$bwR5&cV=p&|7qjCR7ZS0R#NSbsV zT?n~%Us6b17*9kpBjXBi&hEY@L7O+nZ_Z3?GeEB**ZccYFHWay2V#VuFnxId>w_F9Jg!-WrO&UHB=^M8f%u z_b_Qa^t4oiZjfA$z(BPss<7cm&Ptv}qx`cdxi&!+D??aSg+`Pp;SX}kFQL|&nj$I~ zWcv6o#5#o{sjbeVXog`VtJ5s=Wmy~|Ef#kCz(pfkZ}fWIeo}G`hSq1>B(;X(KWVCI z+BDGPmq?*f=5BWw#4qh=7yf~Ct@$P%&J`n=BNsi>>(;&@*RIAIBFE4Smv^T=!d+_; zZdm@=)^U)5@1IkGFO zLYrL#(WA_I-ru8psgWSKAZ|%+o3rJ0Oz<3{M~(I5x?fFcEq-rEOgup=vU9J`O4zpV zE<}QNaweGY(TAaXe>S6r&%yV>)&u#K0)6=lAti`;PwZYcL&H*IJAJVln~eb%S;wKh z3-flY7v1GX1t*Ip4tYGfK&nu4#0!BgOWHesk1oheV0EIc`z6&)zUqWZ_P3YmM4Rfo z=3-};+msf@=|{i6f3H@?Mx1jAy_$5bPa|a7e=q;l5kAA~u|B|Yz~4=o*+@cuoCZaO zvw9RL%{ki~nOJ;kS$`(a73>vZ+p*APwP%_Ar2eE@yXEXKk2HvjdlhgrC`54}=5`Z2 zZ>crsK*SIxZ8T2&f^Sh;n6DRHn(G_b>(pn;%qA{I?%(l56^3`8%yXcIN#3-T#gDo`)YfX9DS42s-(wSOC}g_k%!k7jfdliL&3J;6U2-CYpTP4*fedj zfzKK?XjQcrNGe)?8REvsxXb)NluzT5!?Y7-Z%grE zm_Oy+RJ0zE-w*`=VK;~E_GLb#EJnQI) z>-+#q`D8C$me(2@qrZ-$#>J}%s#mYzLslG`4v%7vkaGEI?6h|1vY|3Itd)1Ho;PpS zsux2y=5|*%`q_w)AD`=bEBX9;%DU{2G%*W0p1ab=?`G070^2W(3;q!wDn6+JF8 zZEVUuI{a{maIlU-Z8Bz)Tnkt3`MoiU z(9@cq6mLH?k7U_$BV3i2DD?H;<>hi+rz6YV=8G9MR6Huj&(84;! z0g403pp@M_id|=*4MGKsdd7%_M(N>F3HgUozsukRof?d_y1Cil)IV-GhbvZO_R2>{ z=2TvNBa*D?2VR1uT+55qT5~_yo81o7Gk94Mv^sPZc@Fol!e{rs5E#a&Fi~lN(olUj@Vt4?#KAZO>i5zxt3*Ep>P|Ihuk< z=H>BcY+V<%-|a|M04gpZX3;M`{kwCzw)F1eO=%s%iu_E8{zbda+I|bEK2-9%`e!4Q zhD_HYKUkO88#Qt#*qcRHK#^EI6Uo(CdTnlc?vrsfWM6Q1^6WGHMm)1}-H&6*YuqNi zet(7YtoJ#tYZMaod-y)9=VZhDji$xJdvQDbfJVs(@wQq9cquqPXlOCX;ixV0=z4<) z&{jr9LO4BqRhDA$yMv-gNn5Bcz z5`nsKc50Tt(pK;=O~I)I-W+@Z;VOQSInp24-VKq-sc^Gt*_qkU&`x*^cg*^jpFy#z z^VRKK1+JJtlpv?Mw$qegf&fJZjz@`Gf9!BHHt33}bh4s%Dp`BsW`#|lJ76QVi0<1p zo`9Z}rEVMU&aaD~E@&SL2RO0mCD;N!+dpCxstcD4NY7uGv)k|-t|fUOdiq=~qW$b) z7rpH|cAK*`{4RDyp4!KFRmbp4*E$9*BQ4{8T?dVIyhP`1A!=IXn6~FzIdUQmjlXBp zinm)IwMzFAA6o>=3MhsB;o;pw4qKMPDbN~Dzka|*Zfb6x@G11*q%Z87cTA@L>7n(` z;f=mY*<}w2?NCaST$~6tsRmcepWmC)V;|23`afz#ySoYhU>haNu_ACizL*)QnCA_r zp2W`YyD8@o*Fz)Y&rGi``LMj5NGFs~S|*6VX@4LoW za><^5M%-v|9%Go7pRdQwFUY4MAVkAYr)tP)pSz)v92Y8j^|qRRLx1IcCSI?pJH6fI zJry_bZeRWd;d-m>1uW^!z#@4veD{ZTrnZ1M8UPT^#8=Hu|yOXQz&)8WXf6!|^ zuNPSbRd`%`MqiX4B@*HM7FR_QaV6f^OWZ?FlOm2(miUif>?Q>`BZY)f;UV~21S@Gw>mjP7`@ z1l>#?Xo$sy=%%m;_D7YXsg2!VOUoB(KTrWuyQS|-g`Z$KKv4(Bdu@h8gpRqWWUK26connF7{l`P0w2roKo-2>i9zr}8t=eHZF_ZpF zo(&~`I;E7#Pex1e_A@^%T0Z3Pheed}Z#TU*T=%oy*e=hzjfZ|-7+JYUDinOBKz2H; zZ?0+!G^p>;9T88Vv4P1Veu^T+1|`L3Q1W- zenK7UG?m>8UUKiR=Aj$w9G%OXSQF4$tuLvA%*tK-awrQ^{1Cd#P099UqllM2`@>xe z>FNT%j@wyc5^QxDE&AlGMYl59B)O#kEjk+R4Qr_hk#4eG18SD;LUXFvwVkA;(|5E9 zpQng~n>V|SvXOiHVd%`{39XRn?Zz@C`4Y-PMMKN3ikeTz-NZx8II$^5L{Y)B9$bvk zo8e69{mpqbUH37P?blqEW%b`P?w8U}Uyko)WN_Tu=E~d9m?k*C5gv6W8Fb#savwnD zs}Ds7Yz{aFrHFk-w|f?XtbTBl1>?((~P-e*lxgqr4f7I-0fj!8?=A)=t#Lb7c;!V(%Q$uB=wq zTNS52`uamVtm*5;fL`2u3qGrj;u#XQ#==XZ5rse&U!Bp#*5^wlrQX6Txbv!9celE! z-!GX9k46K(lzMYWjBXuDwY^`QbdqEV>dejqtQMy51L~6lA+mJuLTijFGXpDN%_YNy zMCd(h!nv!pF%3(bjsP9n7ojfe%H3~%Q`3(JoVx?u+brA~i|oe|#}a6t zrt8?7tt!Y~VQeTr#>FWxQ)GHg=2Y&o@KFu=@fx-Wx1=t(m@sjuaEPmHpEid&Y)_k? z!UC#HlF1s?yg3-mf#0AKKTO}sPo=!Q=>Fp6>vv{YeN&G8Fn84(@*#ldsQF9Y?R~qN zv6s8Udd?wTt(M!Yl~a%J?sG~2209xms!|+_%_W>umg!rrdo5&yTY*9SHhQ{@j@ro< z)aoG}{<#z?Wwz-rH@OsKyy$d0cj^*hH z){ObhqD}Ij$90}7!z-q!NQDw_(2XSibTJuu7=1`+2eNVaMd&O;r@=CuC&l4ki8sc! z-I%Ggbx;X@|Ll|6SMH?$6qg7QkV}1^QZ%&^Mwxb1C>28~arGIa@ul`s% z8Jn3e)~}}S&X>yv;~6oCij%y91DlirUjY2UC!Q%>#}KtMsI1at)L%RNd)f56E_91$ z)SY)(L@YIuZ+;s14DWc=VXT3`N>tl_83!*Fq({LdCJ?;_UvDw*JBNOcZ{2{X@aA z=pTjYY!BJy2#up_#nvjR!kQv=owyR7k7XHNRrPEAie24dmR?yOkbknfZ>Xkc1 zBYt`JBf4bMX2ypDWh;=iJ4=Q+o@5M`aXcgaEjD4SgpvZUKCF?v}}w&o@t9_OjzhTf7t(0OHG^dN@0`iz7I9J z8z{*~%}0Bkj$iqH8xXA>^}^as%!W}fy+4DowK{!j*4+w2GtjCjuKI~jlVjG<9490J zD06;SvfH74-e`Q`nx4t*i8w=EEV~iwMp%+bY~M&L>)$$Vtj;OYwa72BB94vGkzD-S zzdhBMW={Zt4>`~|QF2-@bbiY?xj2>IeDo!WmvwKV-7Lx@G8O86FRLG@UOrk&N2U8;Hd_5^^Yo|KwMl8!v zmARIUy!_3a#t!JdI*CaS35y;Qz2*MPy$xSZUly0m?{_&oWGT@f4t1Z`5JFW*lo1(L z>eE1+Z4}EbAR?3^`kKsAuQATXL|f-eE ziP`i3rEP{{eG#Tvrh9kFh5P>DkxFAql3r zh~eEYnAwr&mh024Wf$?!Tb3tVE}l~f{q?UOx7yy-7czX43X;0x_|qQ#SZ8G}^Bjq*X+VXL)kK(ZD;IawT; z9**j|m{R-w-xsxPrakY@4;2BG8J*iFu-n_LV|Q3gk_oni`2TNdqyLZ*=K`uR{BOyKb8-HMjQD?ChW{^VBYvRv$o~s%^uH+~&cpYAqm7cM zoWeL!htGXuNLSy=U>hJ}OWB#plitXE2!uh7po$Nc^4mORa9B_j4!&~lUCRI9Z<~Zy z=DqgV@WD8A$I+P><*!dWAC$zS$4v90tp2y`U45jTxru?r9=9+d^4w?E&w{sNg~!&` z1iiunJ7_mQ{oB!&);$8eRmMgCjy>`|_rVOi_9uT5nC9jPtSxJ|gE`x3eLEBE+GB{m z*b>0pn~u~WmA+d>PLf$(1#g&zuFv`j6Di@Z$P^BI*}XSAp7Gb#Yi~=9GX@cSsc6Vy zsK>m#CZ?ryiAa*BtaQKPrF4mA5l?auRZ-3hkwTZl5J=`nRPShL>b`72FD zXOkblA6}00L?R3~YT2E~_OyQd_Km&y?|=7H)wuo})pBl5etv)`{C_H9!Ntu9oX>xiq(2Qn@zK&*IcvY6yS4vf z@^%@CDm*#81r2VD?J!L$xUDc8f_&3tC;_fbjde?+1{Q}Sn_$*c7W;&R{0=3QkdYf? z`TV(J=jR(uB3U_5|4fWTN=mDq7s&JFugLz>{?n^_UUSOHt+9QO{i$>9x#5O^e<>3s z%(Ns404<6A$`UpkFVujsApxKz)(ZQ=n;Cu>4$6Oc*IFPy>fGlkT$PyfYEG-)1^R-!&zie3sr^9r4B}sH#!agJf7+(7&iV*zLA(}PVFCghd5)4S6$w^O?6_1LZKm^P3{kKG4iJwWZ zaV_f^E-4>>Viagc5q!?!$LPPi_(OAR@_XqKM)-Xa1O~aloX)lk$q^nO_hg_31;!O} zh*1y?4o}t`PsJUY#{KI)L9f=T-vpdCIJfzrw+j>09Tn3{|v*|Cy$1S>ZIc&3gARLqC||PP8zjeG~tv8cy6j6rHUlF zbBe=;@u`S*g}`Ux?%*Dn8pX{eqW|EUG-4Q#YN`o-lB zN@uK=sC^-Q(m8WR{Q{U!Ob7~Vs4pkNpYP^2cv|t(%y!+l#37M|<{Ki?CQ*{8T|~d* zZi?zFWshu+cztJ@4}QnxWDP5SST|#69ADl$iG4lqu?TOn-m|-xy5GPH9~0RV+7q}d zZK}>w53J5B5CeWBv*WYpRti_FP7}KPuT$3tctc+O7(Qf6;0ksovip@b1MlSPWf2hWmW(Docy}sT#dvK~uPxAJoJIIwG;d81qe6q#< zYdvy#YsBz1(l(T+@rgLD@u_{2vcn7kHR1T#W1jJRwt-lhA}j zaObpzO*jDX_;2a>kg!t{DZWj4;V~G_rb4H56YCaoqf74pNFat&mqaIHal(Lw6PRxF zVO0{xDdy^vUZi-u1!sM@JvF60P%)5Qom^d>kCTOxJsGQWkiYTtgy#g|D#``EH|*)+ z6|NPk?1IB9g|mjLg82!*gUHSl|0ldj4xdwqE&x$&@dHGXDIV)5%LcGhq_8R58WPE% z{8v^lPrjOvRzT=HG#*N_1o0jaZGb-u_R_~7G5x^0&%Ok?jcV%n?A4*gI^$}b#pXic z5bg-Y6hTesvswb*eh+jJ7lAR{>hFD$+v3u=9Db5}eS1G*CVUdiV9FqZ^mP;9sBVTY z>-J6}L>n-Kwp^E({+xs-Y|pZZy$;Muay& zvdx%UV*F|%_-zPQ+Z0d2ewpWQy-*p{g?KiSFHzp~w~}}0%?FW)upfC+h|nGZ993_h1SQ1T@OazcXo^q^=t;eUbC3yz(J)!SnJw8fkp z?KK9RDO@R)uv_8NYfjQr(B9I+IBOMokCO2b+W2D;;p*hNTtX>5NSa*&ZNBffSvPoo zw8_%$hWnANVp&AJ(dwv29^*m%##?<%Sy`$Cq3rGRt8z%M&o2l@U-28M##5L)qSIJI zg5R^V-7bvgJAkvrooZIC6cqH9|gs7n@+mAh(dSW(Iy zJ@Kh}&bs0Z`ZcYw6rEGCSX+xS_hc2+a%F5DvPvT5{T^tO`nlnUEi4Tb9q_lL8z-=( zc$lC0V;d@$@EZ{KrN!RuDtBd0iE zv|dZJI8iU;D6AelL93np#>D#$V4+1eD3sD zQ9+jG5{=OoybMHiLs#9h#YJye+6J$%iP;NS#EJ#4vy*s1&qmU$-%wc7m@i9(u3|3-)KR+yh@9Yg%w34C%s2TT0gW~rCg!>+nW<3Ch{i`y81&vK{{P zN?%euvV+qW#_)by`rc*50FqLhi0H%ejPDTUtMzQ2q|eo_O)KH}wkCCxm1)@TouZIk zY;c)M4 zoKa0#mQkgKnVRt^LiCx2O)hzC6$smnob>dcQnLVd2r2HjCNrm(;TEB!lK>)j@*qAN z>4ys%9(i-A;mS;imB9SK65NW3b_B;vhmA(oGI2xlj=1^{(z)nXl$hfqZp0J5+|j_7 zT03cCmQ*t)Th?CHeiCNO56HuIkDj7TYXprXC^g0*6YuDai%#)F8d)G?Cff8?W-RoE zkcx&o$N08j$2u9P_MPjh%lp`yYt>d?7VA41`;qRFqX^tivE&j+gJ1Onwzfvvdq&Sp zy5^X}3-d0HcQ?)BI3?qzhhPjx0*gbOBmU2EBd6?lD8>#2 zHWzj#Lh+RfC0OofsSEq$AQFn|W_G{}yCT)t7YtvRmBH$`OsX;xDa1jM@YKixD(NH< z*iMZu9~unxX-xA`yad__Kqy`EawY0&GqVLuECnC1$El7e(JlX3wa@rWqmevZ?r=uk zU~DbgMVH`MgH#qq5%S0P_OA#XeAl_3n@`G*&ed6Zi-`Z6JdaI zkyQE7-r+$#OF{KR>3h>zlA(mLe{|B{wHVjxAdMAbth9jtj@1Ym`ayFdAP&?lFTAz+~c6 zm{vkf+<4+szhaij$dFI#2`HaSr*8@~6_!b$B2?;LCoV&0rnM zHwbCOpsPj>Q5b1laK>}uN9hkPR)ZK0&YE#8$u2_`SVhQ#?BH%z8WNWoc$Wqx=N3#a z7QfVjLKHY^PZ>}9Vga3W{dPbnoz-Jay>x=QfccwF!AXaplwo)&ziDM{D`Lg0b89vm z*zmC3Ao~cCP>ZexhgTws$1^yjWQ^eDikMjoYNo8eG|WCCcGLxCx`2E07GQ@QmV!Hr z2NtNJcG~7=wXLz1JVf?QP3OY#BWvrhII6xtv%54{4ebsod&2B_GL~vWx@1F|VgrAa z7)s&J?`XY6Flm~q@%YD0=*AMR*)uD%Us*WtSCtW-?{80IY+#Y z(c%TnnVsw5ul`>)cfO1mi09!k5Z(qb8-8?={M(l5+O-{g0v zuDQGYAq*dj2jibA1lG^Dm)1}u_M@g^+ z*^?IO+?1*76?Sj2eRZho<##KjP0~k|uzfYCD(l!AL(Z4 zl2oG+v6mT=HWVxpq`j1O1*1h+lB{VjTco`dcA26@n38g_eWj>{X`76x6BKqeqD82a zBIzy@rP~yCC8HhEMq#l#-&5Zz?3zS7B#l}{uhArZrE5~4Cd2Mjq9&njGNJZXEHS1& zrft%twx?|}pl(;PNR!r8vIWq@r=<2Wha{rH2(QTBI-OxHYM1Xt|B3eX)t?u`;BA z{|ji69HQUQaeIib|*IDI3TBXg`yBkX#T|J95 zz4lZZYrz$h2!pX{7R!oGRNpamTU`ZDS6vNHGhIobY9-r==8+PHhNRs`J@$PhjlV-4 zyLeT$-!!!zUa+e8x@w^6?I%-28b?SP?HvEHV^}3H|rrUQkzr%AVUn`e9XJdJ~@ag z_FV&uB`<+g5G@oGa*Om70#HM$m_8YO!jN@(D1L|lQn%#hn~+5$QW_|6$i}~^q0iVp zS$#?n6Iz!~eP-ZD#7|wxC>@x7A$^kIDV#SFrsDsChalib#1lHGFxVgQgdR#7VvQv7 zcGDL86;VWHQvv*qt|6rlC{p(iUE~T*!177$qxm;3PO3CO{6UZCZi z;O2kGAq7+Tf5;&{b5D;a6$Z|D3BC|!uoluCqBeE~rMjvqa>x$|Jr)!@Q{EID!VTU* zO2uZRQdcgBlAsC!gUP{8;2p#`I?jkb8*nk=E)L;xnmPqp5Dg+KL!z81AxKY8O2*@9 z4||jHk3uk%8DiDjDk}WI_KYHRJ~7 z{x9SZL(#3<9nOM(r%6x7*Q#4Ly(^QmruFgXl3TY7z?AFBIG*wEqyS9+o{Yzg_3^;+ zTQ`Dhle193tiE;I2h5!H@!Vhjoz6gzJrGn5w3Obuy*~oLBfu30^k#g%r+VD8M&QS> zSbOVM4tU*xz%M{x*{xd;ko)bR2T)ZsInx5%DS#Uo6$OwWCq&_`xxXVef8QZ~6tIRM zL~+|YIr1#Izq3Af-+=?{)=iG|6#sQ~J`Pwj1a`}S-NL`FBc5Vsp1BFaWq)1k4+GZD zfnA;4guf2{GW$E9fsV$3&}1OA;;*ZmhuB%ew_FQA4y|n3&Kh(^@&TAoww2SDvMhh~xu1@| zc-=8FnTZNdyA0r7;B~(R++Tl@t&@ASj)?>RXSE`D=8Wx?mqH`3H{ZsM(Q-ug(B_mffrJ5c{C zwle;?$1*MYGB)y4&I0w_wC9MQC$s9icvCR20tGEH37?NMbb`5UXI6CqnBo=%A*j`u|+PpgtDtNVndzm8LbZHs3v9~|o9;&TH zmjgCRq_JeRv5)M61{XRP`f*yZL$vr#o{0cBM2(9kA_G#R+GK(umkE|L+tlEI9w0*x zxS(@3ulO4%K@67s8PDg6U~?uv1X$*f z@B$HefcRW-K@Vs)XB0MPBKwNP!3kn8@fzdf_A^cHLBU84EP9JkDe-YoIe|Qn#@yGekb%{ReJIAyC2u`w zsgS8I#;=Vrm?LPlvYgMx)38sMs}-cP19Tf%RO1X>rRM!gH2`RcO&7B@lfjP5d*0wf zaXK+stLDdfMVew=VyxC#Xhqs(kuEWQYch*n=~_jaTaoVAXM-O|BE-l~LB9{4r`~{H ze<1_1jpl0x+w$-p~@ZtcJo5Y|f`fhE}$m^ivuaP{gr78NPv`lN%0qM-sb#r}F>I{{x#~gznHofz-Y?AcF5blj%{th-zS(jxp!K zMYVnNn32`Gj$rvMNrosr0fDu`0x0~IJGatof)WAmq_1Z$T5BdQ*$fX?le%HlQZbGC zlgB^k5DNl}<*oWE6MznN)&v9S5Ftz%;u?FoM!;8N*ZawLuJ<&?sso)ysoNf%nkj0# zbp}BvgfV8SZJkOo(P{J$TLY#?8OI+2x&#^LZbEL&?qFRK$5O{pJheIHiF50lyeh#@ zUA^`9Cp@Y6ViVc*Vv=NsZ2jNFE2E7H)SA%`5ZF3Y9zCBQ7`8=``Bg}y6cENd<*f&+ z-F2u)B`>BiG!yGmnBl$8NA}lxD5iuWQGo|TY`Dtn$R+7nG8Z}H4W>5UO&Dg(2E~b7 z>89t$MCRc?qGx^iCpp2!R?We#OK--~zGS8*<~flR6k{v9)~#*P9Ly!0A_d{R47Q)D zc~1tkI6Sox@nQTVyI&{K!AO{5k}%PJ((h z?ikZMpa9Oyn9e)_D~p^pF5D$>b5^=scn&lM)CA|1_98ab7==tiWU?&0H+rx->nChV zZ*M+IANqY0miOebA9z9V!)UgWP$v{r3!1W$gs;JLv~7~w#%jUYmJIpqo4P=SRKC44 z_h|V^{W8SuiKP;ARy^ON;<@WR*BOR`$_M4bvlN1ak!a$|Z5&lNSFXOj8w4scg1?Mm zhvCmH?-3sHQeFhlI2G*_(@)eo-9|KM;ub`zHRP1u;*xw36W`j(a`)y>m~>iMC(X~w zGDCa~{%rBH+t%w(ZoY`V;7+@>(9S;%PM#8zXrjF>Z z=D*SM`>akdH=9;456L#ywne}2P}iNz(-28EU}|KI3+|H3-n|1ELOSMtcf>ncygBRk z5wY^_=?c~jAnK-1QywIBa%ClQt^XRQTO8Xv|LZXWP!U*{x%baEo9M|`Cklpg;2aDT zp(sK+Sf~ZdY^{56{dW|a4+RZA5y)Fp2B)Erf;1iF^r#c_##!ldKES=t&hVTpwtkx zsB?T~FEQ0QqB&4_${0UTNH8g5E6{0Cq~b`#qjG>6wXde-e;ezZ%{q~tbh7rYv-D@6qWw^!$%Q2eJ@44j%f7P5FXMWlH z^TAfmsn?@9p}^?W2+iw_3W* zkj3v<*yWnbnQP9qbSr#ti-@l_fgrwGC2&Pm*KC<%z=Ri9B$r~j%j!zRPG-dBjBt>T zplMMPxzjWL`4CCtietz)HAeWo8vT>rOk`H8o-UWYYs;Wgnco5`^7c-ibWC9qn3X$A zldc#S)i}6^) z^aX1xSxNz@Sm}>DEjt-2j2#*rzBXykRAjJZpPnBoU{qQzUX9ni&WW?Psj+5LYGvOpMRbx3lN5 z{+z==^Eq|HK(JWM`%h2&z-^!|r@yknn(5RuSAw$P`*-PrzGq7a-jA?<=NuDkleg!? z0$Hm47z*1pn`0wN_AF`D7)JsdX)Z+rvm7IRT0GC@?3+|Yt$(xj zrq$uJaBuI}YM*Xb`!iB`X7ViT?N;NX&#tf^Mj+9wDZ7(W26-|x!@23D3sciCwfb6~ z;x?rVEG7RUr9`Z#)T8_;VdQaLTdWo{ZquVLfj3{h^AWj8`_fPkWco~^1cVg|# zwbq;~HOCmm=UBaMmR!a7-dl#iP-yyB#_Rv6Um?;KC>Sj(ry~oR_l!XPK+$A-sqZVP zR+c&R)u*oIO1!4>D8R5o(Oio6=KKdC7Dk{&=!y5Ubd@vUIel6*Z4S+;7g5;m4~8XL za-5Qgb!FT5gk zBfiA}4>*2AuDdPrl*3K>Zo}nDucT=!vOp+i;;-uwEIuX)tsF)e&>nDfp@NK$9!^HkAr?**p?Iq>c&D$@Lnbh@6)S8i_ejvS0`)J`1$QwkO(JH~; z$izye3RXw)za%Fscul(b4CQ+@K#N9|iYkHF>?k$McRI(83A?Sk`%inf*(0Nx9F#ds zrzqBP@>T3qC{zrJJOXve7zSfP#l*|vp=#|m{DOk#Wh671X0=CTgu~uy1MCzibZ0O< z!I87mZ7q771HWa@5S#B~^S0LNp=~7KTK2v`7`U_t(oYzoLnY*)a}ysD;avE^rA4#p z5Bz^6O=HT0$(M+6`RGsINB;&aI5C-9%_H8^p$uT$$C7VqnuWusrKY@YDZtQ76`~I0 zqohztqPh%-<>IL5-c4UaJwbdFN1V~J+d6hHa6$($Zre|v^uuqh*mdkD-e${|Ao4-t z#Yv5`J7W);$b{yz@Z!)=t2}T0Ogxp?{Jzq{#8Tnw-pSg#i|{=`^!YA`>$`A`enZx9 zMA0)6k&LoX071s}ph|{F>$%;{R*c?*@|wSr1Po;Oi&t=d^Nv>k**BW#>Qp}|(0X%t zacYrvqi-B6k;Mo?*;-`Q`D4qq(d_-yzp-~y1{lk%6WUuq`upP4{CqJ~MzJEb-D7)7 zOZxG`xjUgMR!=pF;G%j=8z%t;n;SsEhz$fJ&C90d^WioBxyUI zTRU5Xc`_yMl0Y_;XIev|d{SIaov)}_se`}k0`3ChMY=*xR5dZ0 zv|8(oGC#2_JXv*F^**MvVWO2%*C$nUpTS*m2*vC?7yr8m4P`=s2 z9o{GQ5zdwqLGs!~*iB=`O5=m^oV?C?VM$P##;{QQKe5*Db5~c}-g!MT)@sYqcJbl>Eq*6trPKk>v>_zL4 zqZX@l%jDSmG(q)MTx+OhoCBipm6eisna7y7NDl!{(K2b=-14&>fu0`14(-z{)}j_y zP_O56?~%U?v$Af~fBG$1rM+juNy$lPD-%7Qk;ohMERm2Z#VeOpvuG!%@pI}n8Ky+& zB^?36{Wt7MDI#~SBTcT)Davd+r~BNviDvFo-k9)LyO;SknVRh#A9Y{PrwvGjqUnP@ z?edpsxU+8U5&}T7|luf35})b6(pS8n?+{M;!x?^qUnyun|;aSJ6RCzND3S8Nf)f zFO#g0@Bb`0g{ta^%uTz!L-CppQ_+TG{KhSULfjqLB$vD%DwT7)@mlP3d^dmN=HG;9JuTToe2O zR6?Lh+l`Xq>0>;IJP4MM*9~sOX(P`{$)LY!YOwH=#m9JuW4qGRY{53y@2XLyW%zhH zOJhSbg~$9cR!ht-XRpJ~T|i&hQP4MuzScVtb?8t973QKQiupoZg4Q()Hz+h+rh0xg zhw#18yJ{CvsdMazC5xGvDN*T8>Z4U|BjM^B4ND^)s5z$zP8+KmLDi<6P^d;S0n2Bp zyyn=NXxuJ5k{VTwY)HZr!Jc45T?*Q^bZsQRuV68ev?Iw7!KTyR?C4gMgRo!T>MA#b z>?S4_j@?n`@}~92j@}($|16bUkKTobx4xFxW&T^XW^+@*;!>oz@_No|K-s=~i(tAc z;qD&$UPC;Xa9Q%BHuHCv8VnzV(BGr2^`2-q)#xI;VNFyJ z28(+Q`CjK6POX`71a%b0Ox5z#g>X2LttSeLwgN>mqq>FTqhFiV?+Fc~cWf_M2g22@ zFVaG}>8;r(u0tS&tq$SVAtPS5qTYTio%b@Y)>j+Z9i?wInLq)!{*)+RE#p@ru;6vy z&t7w-hg2z=Rmu#b<}9-?B7g^QA)J#&7-YM7MzqC=1SS3G-yl8*DCR^Z+!B^SqISxR zj#aAF%E=Q4DJbR9$S%V(pL=d}%U4Oo+Uw-3?a>ZRHlv_-sF~j7=*IV!{g&OQRE4SJzzxTIP;!FS~vt~7!vq>_2_B=k#Zfni1_nNJx zKFCe*T7@Y7V|g=ySiVRfgT;^{-M9BGs}xbN0jZ`elBl1b<=S*X9N$q(Mc(1;&1K zAtopUPs5-Xg2k?%A%T;!NU{Ybx{OEjrMpVya$_lklaRnkP33VhtRvm<=03-I z_`df$y>P?T;|VRmEBS_w`Euit$6e-KLIi)YBl!gKLQ7JhubcJ$i7`x&v`tvxt3Onx za6APnY7N%e)xH#e@9T&hapdD7y9@;!(0mxh)0Xf%P*S+I-XDf6W|I5*1ytTgROHGN zd-CPeJ^6~uXo&c@UWMu&e*q;K9hUr;q5c0SX!`sMDe&(FPZHzodGh~}7 z&a<)wDAu35U%3wCQIz>dzO!K9$=*V7N;m0nV6sOo&P0&km5EiMpr z^Yuk6YX*Z=o$;gmXHA@I3_RUq4I!0L2G$zU@T<>gS|s$U)3Nfl>{Zf6QU z6z+6~gj5Km!H?kuFmsH3lI(J~YP&c3kxUwiPvW`}6l=&HWVhl65vRlA#Uv8BH{ulH zuYnX%5i|*t6jq|}*?U?vQ1zcK*<)P^r>8tC{y_srRW{6MmklmSS~_R1U}try_5Y<` z{eLO*^DkrmPclFMYWV+P_5X#;4(XVKbOx&qV_wEBW=ii&8HtpdG zi|8t=DGK`czybm(PBaD3ZzPW=r03^-U3z9dAKrN0xVgq&Cb_QOraPIPwmi%nJ)uB) zrGYThxp|14=F0f=;ASa-sLashZspp{`j&f7DETM57NaUs6Mft<366o1)oQGjn=gO4 zq9ZV3%+h6aIB)I!E1)!K|-x%|t4Qfa=!btJX1 zyioZAfre?SHJg;J7=6GHxPVL~7WdZbwrAF0#i96n^fb3;M??2`{SO>o<`0{s@a=d$ zF!iayVK52e^TbFD^9*3fuG{JsY(@ukPxuW&;ah%W3JZa=BjJMgIe z8I8Wm{rdE5*ntse>zf1QV7K26cCQw9);zFvA#mT!nFx9KYJVE+JoP!f3JLr64YKwzo?g@@vyXi{Lr(nJfw;Tc8G zpfbfrD2yJNJSuFLypj_q7Csm=v&>rI%^L#`qKy}|Fs5nVV__AgP|7*BLim(fD<**8 zqi`2<&N8PM1BMe+@gesgP2x;TPDDDJa|JTr8X7+BNOje0dtqcJU`La%8JMM?Zp#^T zN>3T0W)g9LIkHzC_>4lCqA56YKeYHTOq>c0ZlOCtEdM{Pz*@_ zHRQx%z<*E&0b9i&yX+%Ts1_quHKMd+EY{-zTab_PP!A9(?RTVT#YtkoUsR9vWXZ#G znhPiVk~&lTFv}xA9$?(t^HGrx{qaQVO>L0Xafj(mcgP-HC);b|nm7+YVd5BPG`FMAO;V8;~ z@TBTA?|F@-0NB8}lwdjCifr@3e9shV1#nQ+{HUqnY~^(fm0qN$3go75P?h{K>2mf z4JCPXS2^G0;py2g1zSjrJw_rQn)wP*L+Qk(9in+imkKr2M9;AO?BDO2w{<#M;OOjx zQICueu^6PEyHje~DY`!Ws#N&r1uH^;Fo=kJsg?ywf`BlHiHAPt`NlpDic3p##~)_T z2!Tw4c1vy{g@yTn45LN)ndPeiXAJs!<_g0l*Sw z!E=znwL?R|uK|u-Kgp0m_2mWoJjyrWgyE9K zhKYIcKp2!2fCl*62oWP95c~~n+4XTK*vW`FF+t)1H~hktzLaZl9k?J2o}&o8Eb_LF zy}SNE(GpTWCVw27f<=M=Q;bi78bXX4DJ5h=0aHwk0q;SK?}r(l$V2wtJM8-p2HXxB zV6ee}$m=SCkiaLCn-Nk&gUBmsLajiIUvQ3&1pt}55=b=s7|Se4An|(6)Gq;Y%{=D0 zTeYA&=KO%+XYdBrs!f?3Q9bY18`V(1;r=xn+e3&r*6_`5+{+>z1U}T7 zMpEZ${0+Tu$9annx3Xt;B?wSoEm03@ng^~N(8Ndx1d$ftxg=4mL!}sDd{G-6R#6Wu zDvWqp)j7v|B*_sByJvR=RuC6uEw797$@hr!33pE3XLm;!8RbD--x**v|K5X(W<*Fa zM0$n$@nZGfaNqEWz1**lCQI8qb`j4Nk%6V|`1`wDcWb$dn zzhw;H;{BZ~1(ETDshf?s0^NV&BLp4McqL|wAk8x%TFu6?OO*U|+D*;z?xrvpLO3ua zI=wOLjBE+d>XbfX1(zuvE@{ib6~+BBnll6YYLk!Y|kUlcil4Ia{h`Y=)0Z7~A>5@w(U~g+!TC6T-b1rY5&H)}B$JnW3wj;_L z;ac|WzCmKMv2f=jZ|?Xb_JQW&C=q0H!i028K^y$G1nfy%W5~wP9-)m%Eu&fopfAbZ zBHd(s^78VuO$z8T`ILWU(iYB6y6z3yb1zHm=4JqHiUr9;9z_a@IVka`MJDsVEE*a$ z*2r+vk`6zZ7K|;KSf4EL7Om&r74FcdG^zyLD)3&}ecwMq^3h`-^UQo^e0ZvOF3vgj z5`v9ac7^eZ3!qfg{Z(4w<#s)A2*3?V$BZd3#j1&v#;oi8X^1OEs}9(15j-UCKR9oR zR>ihR%_vF})u}@v-9Mg?ICD^KnQ?#3m)biM)(!xCL@(YvS<}*BfEb{>pZ4)F5ZCayD$0WX=Ysuyrv03LyGT~=w zjd{8v8W;L9Ro3d9Y1**NOyIlHx&`rzjsfZxNR*@tb^fuCO~o-uxnS|+SE4QNL{&w0 zlIyjSRs`$|%$h$mBRJv`dn5-;YVLpW#>XONzjMG%B#iPz z2eAB{FbF|bO8_$l#~T!KhlI~VWl}ZZ-Lr>H-H~aunlMMWW0@;ND*<|W$gxNt`t*lb z<)$%sBFM%a{N+j!6}Gz{aH3@8 zGfeI-C(u3%*Bnhx6kya0dvzNzZXzKNf)PS(j|6QW+B=%MP}cZCTSjZe-GWlpD%OC? zE0a@#zE$3KfIs!hrRRm*JK}=}rC}fvx zMFOd0yy_mFURi05q{?G!O)F7$+NMh6Y1!#Wsd5UH2ri$zmeF*#FP}?17IN;p{4MI+L1z#!Mb>*`j;ze6IkQ|?Vd!y4z00n1=qf9egUOuP*bh4 zv`~>!VWg(gimr@CR*slfAwlG_U~TlCrBPTEwJoY(ej$&nJ*_!@&_Ni1rOsFyI%F$7 zN40>gBTDKoi5ufp098?{@?xn{@vBs%4V@YRj|{2E;w2~5Mo9S>wX!_PWa%1_3i%|( z-HW+>*nHyBYA2)l@NdbQ{9zp>l}ojva-bH(eHG-*A zu0tg=b0D7$Vrr3-4P6d6F-Nt0N%|peQjIv0Dr?G!BX?Piwam0-{+(4>5penGO;AEL zIai$715VzSd*7BRS?+1Ec%~8tcSu)2t=QxZx-aaZ?722h;L?$nnL=>55Ju^nq6{`{ ztiG_IP3IeQ1^LQA&NEfSCi4(B4t2DmxjS(UuBek8b*5|#fDY- zOZKzOl9K95=?JVxAVo=qQ-%6>J6Y+1+(Q_LFlJ3Abq%Be!TjMXJ2lv@uPAAtIU1X$;%_S zSM=AkqaxCju2^JauFKl8eRgnVClg%Eq@1Ip#G|83H1RSM-$gSk!oX3wcH%tQNAQhP zoSOB+$7S&O1H|K3?LYTIk zdW=~W@UH{4*%#-nYhsxzun5E@k)bv6X@;AdZ>%*%9!8qBI^74OY}M=u1qqntU!G}Y z3B+u8x7m-Evj+JGWGBZxkCyWCRzrxG-kPho|A1}o1aMY)v^Ox0rLE6Z-$hl~Q#I>Q zYkNNVn{l~Fmx9)&B0~App(!m10`7ip%oHvzRYfTX_B)IEy-uZ3?j1wEE-H zS0spMmgc>DYT8IVw+Y*`iq@?LP1vc1v+32Ws;pj&wC8}LyWoxX&o10*8jr!Bsl%y; z4Z0R7+(Fo|w_Vq=xkrEVe5z4A1Rg>|r*hSl@iuQ-O777q2{|XdRl%Ca$lu|eFOqH& zF_KCzDk^_ssWOk;C|QB4509ckxjuW8i9V8_MTxNN*y1i|6YMD)y|WfQenh$W4Bfn! zD40T2hw?H~u7B5mFQ1wC{7V|65EcX~JJtsjSSj zc;&c?qQbm*rFf)T#_NU}hpi;IpTRUSBc`*+y?LeBXO|_jnDUa+rqX1Kr>$~%mA`uI zlT7~zx9~w_JvDV{ngXiK>C(y6BB{WNr*f7t${Zu6bLyhDc$>7T?OR&`i_4jOG<$x% zWKC+TmRGJ?RAxwL5{FcnK9Jv@k&8`D)m2W$TD&@6dBFDOme)UtzpOS>dEc%RsexG& zuBBt*)bUIreNfc9a^DzlC`_fM%v!d0rhx9HMde(U#<8b$1xtA*Qn81SFAGqai>M(} z(K%AFFpQ0~@V+))qp71eS0cY1TPT$MF6*~|)x@wBH5Dzi9d`aJvWLodW@wc^5k#L+ zu)QfcONo+8asd3F6Dm@GM!hv z#h0b1c?4$(A^sx5sx5(OH~^D{{F!S06Mw^aEV9NAq%=zX~}*p z%AY7?l!#`9!VHv%NWT?{mY^S+dO(3}$T+Nd0VVYyl4dk&sh*2btA&I>`_ zi~c|8cRG#GZx-m&vvlSb=obYeCybuScp(vZ0^mG>-kzWh07P!jge{S{9T*-ETpq!= zUTMCAFz$fg({tPTKBpZYN z#CXiYt43e;!Bs*J60WDxY(=PHLMcfL8QfhM$)%;vmuZ5JQkk1y_|zD(@Pb7UFS$Sf zfpmZX#XUjsY*1+-L|rmoFj~qzLh8Jbc|llh2426>J%X}lxYw#k>0Hyuh69#d7y-f%cw7r4t(QJiB?d1W58tu`jY)_7iF%zwA$ygPOUXeqi!V zDLo4p4g~}eJ>ZiHh6OeK;u@l$PgJZ|$94UvB-FugnGE}Rozc9GcsVx%rp=I5XLPnX zo!NOEmZGL%3(D|saTYar4hw2t)EE5gV7zWH+1wIy!(zGJ9n8BZ>0G8G^o%&FIM31< zr|qB&-jJZ7LBs@gP)ylD_{1Q?lGARx^O&iEHeM`?bTB@pRErB^356=$>ahp(_O>$ho%!;V@=5JU%BboV_SX@5Ti z>^p{_!l#&7T)HZUc>6-&b>w0?=n-~$ znJLh7{?vO8nWS*BO$f0Z_YvoKsY~zyO)j4M?`da-*?KnnDme%GT1XxnNozA91#<2f z=M?jVM~F{Q!wT;RzzXto%+;*>L(@!G+zO?pVUu&CdjSBOAauc;Ep*;rx{jDE(c$zr z8go@Z@mOkMv*hlK>`e5G$;IMV+H@IqVFO_A9<56Qzl!~Y_`$PFmHw;@@3ocS?AGID z0@gwECN@a*hyr>|nsa`39U=LIvN{-xI%R$y5K^doQ7H<*5#iz6#3e~kGAqM!BUGR* zqM)T#cIqq=z|AT)^^#KAOxAnVf^4JCJ91ZP=M|Sff=3$Gu(Ekal!Aba(C{jWIZmtT zVn*<1H8AOB-DaXAbMwBL;WxqPN=tMB;whEys&Q`barxUY14ji@nh|JfEpL#g{K4vn zvLMh+WF{5KHJZi^{mfP9a8QwG@tZz|8V*!4$oSjw1-oe|Fa5*Jfc?U@fJ4p%=C}ks z;Y02f$JDg#7-m2|W5Xc}p}PKtL*|nsS1->qv=+9ST8sA8zUCNSrlQiWNm-?*oUAVeY8KQrtg*(Nm{LEcf zr2>4TX~?pvL)`*X>yvrUkq+;S&Q`!fBBQ5hLrrVr*Ajd4ppFWTc@~3-@gtBH_N#Tw z?_1^=ncbL}gJv@0uV{{}C~|wP)eTj)7S=v?ft5h}2g*-09;hE8hxwf`q9U4+?&cCmB>*&s=nsJ#%(S$vIl=tbBVr_;9ChNxQ_KGkCQ)Kd0z(iHD$GNP!#?u-k ztm>2ww?gmQXwTJxEG51S<=Y8;5Brg!!>Hc)siocJd!eFv%DBI}l&5lk zO>7q|q?C3`@{+hn)6-LxlZ^fnn*8QkTx9%BDd7|OJ8i@R5z$~Mck2svw==vZkgUBS z<{76D5f)g&B{@}LQBf1km!k1UTx3@PA&{NXkDJ8MEw=v6M^8kmpt!atOKrsBey2H% zX(86GYqon?3BA3f!;7ps(YeZWS-Z9#0!=JhlRO|7W)8rRdtq3JEvAG+aTM6=gwNF*onE3#t}RdnL`_d|ljxycA+NpeUefTqkO zWzU3Ieo&8in4m=~-ds1rE6cmKP6_ne`0w8{??zi8ornWEjMeGNYSB^r!*P*+U;fAi z;pdHJ6P?y8v8Xu#AzA)y()EKNacyL!O9Nk3$VE!?>JcuzFTL*+E=nPA0Lp*oX%z>s zoLC@{%vk?8Xg;gbb;^0sZfV1Q@p$n#V;Sf~WzTqu#*n4z)YZZ!f(&5g^Lq~G=N=tFhAfmD<}jXkceAPHf_K{CJMR=a7~Js-U+53GcRN& zGSuI}A;Exg28a0_22-=#K|gS|8TNkpeu+3>L%WvS>|DKRJb#Ar#7UQp=?YYMH@#imuae1s)eC~ z+d<)Lpjc$X+9lh;bn3bA>*7cI+hmOfUtU;aSOHvC;#<42zUlFE6v<#%hPbibO`2@~ zeakx-(%#+Bq_lPTb=wAUm>7a^IZsxX5A{L5d%ix;4&{W*)J+8 z;ggtQf}5tPXbb*$msc3NC-F}zT#*{8djpkV<(8R2(~$}{`>o z!~I|oczms|m$7EHoi`a~w%s@5P@evy2k3s8n@a<{Cjh`|*FymM=#}RspHu4J1TekH z9$Zk5_ZT7>a-4gnT?4|N@Nh=#s=B&0Owmg;M#jMBeslviD>DpS2P_D;7UAk0d;78h zJe#FydyLjJjzH&<8Gd49WYiMQP{kokqp>ND*0_CM<7~ zowe+CwTGHj7i3sqA&q-MA({J!)H5S?b=^kq-|ux7*7XKzf1&ICB3dk2HF;f(Ikq}#2f z^Gs)dCA-5zG8)5Wzogg;)BQVUN#S?+bO#=LGU$Y?T)DZ8?|S*4@oUNRMwT zr|Z{SuFV7A+g{RHg{Z$i*_*KJtaHEA^i!0Jf`lr5Pmd}Wq+Wq;P{K5U&_;r2Qr|&% zG!D{L?L;i0>lDJD^>0NZM0FJAIPb{mfv(^RFDCcGwX{CI+JmFxtd6P8)Q#v%waFTF z$0@JQjQ71yMr|W$hExnY_Hk0i<-y8Ei3KFI4D`W8l1hf^*pAH=oR+@FWJacO{peJe zK^qo?OUQ4^HQ9c>UdBX)3vi)M>rH`NVWg@%kwLC=tX0NAbIcv|R9{~M0Qw{iY(t7? z2$gDgY%A0zwiKDnwLfNUA*~!?6qefcKLGc!X z)d2Nxqq-3Lc*XmWZjolD9e3=|%iLdsG8$?_8U^x z!gNg!)RrKY%UZUc-8YDx7iAV(wp_F7FBUzjSR3&1j@$v&(>XPKyB*xyCOVmXy#g*9 zS8Ik|Mmzz*6*xRtO!y#~3lV@2SBXO+SKNUZXb*B6xnyBjVe&T-#%qB$|Y6 zV#wq*fUlYvPM`(b+u)V9THR8%9GGga7;WtzZgI>Lfs{+=Til)sOa)y=`TTNi*^S?= zmBB}}iowgI84?}VGBkP;&Dtw4+Aok9Ch(a@pOASgz>g}Pn*MOuxrD}Qcz;O;W<@xjy5O?Uc6+ zd)*Pq9bQUylt)Cy{-=M#hPO?YZ?d9otP|oxNXu)`e(Jguw-P$>n*TCrg6bJjfh21N zXeFj@Zcg+M4*u=XvwM;b+Iq#Nc|B-R<&p?l8+)V4H8nLEH5tn8D_4Q4n?@z|7HQ1% zxUlzk;JNJ0q&wwjpGZry-KP80@I-D~RJY%5$XLsF$l!g9Th7}$*u1fAx6uqTe3R_7 zT%O)%nVE^l%u9=2S4RpTTouRx=+pwk9^9ox_X&?E5q5<1gJZBUs9W-G@+cy>Q4om& z?^M!|FTtE~Qa9lqe!8@2(yH<}d4mLxhLCY03U1D9#ndrX>Y>c9WuK;(cP6_n65q9h zH(^_8TXQ9X2`cLgMDPgy=w zkENI%K;8X20(WPMx2UcU22yc@l4D{qa)iARhtHv6r7e5!5yo(kv!OLjHlua=(BZ5l zott`eEaVUPvG?dUo!<&w#ROc`ssUwg)W^XHnUzTBnN!Z8e=A6Dlma-mB!l*0wRvQv3@BMcL}uW@<)gHf-Fw4hPFhu0n7&mI6(XhhaTDyN z3f4viOY4(7Pb*;#mk^8I=S{aeR*%PEMVFNxjk|+8?{drMTQjbdZAkh!hSX&d>vjOj z(xRnWVo+s;iUN~+YPEY{WrayNks&_?oHC7Gs7Zi-6)gBVL*2a%Th*as-94>nmDIU_ z=2THpZr1k&+uxo0&o_dHu`3HkGzJG3+l>-Q+~K1iM5ESuj=bX+pH{2;W;W09wqMWj z`=*nvo_dSxz=p@!i1Y^cM=GtBoz7jOG4^e5;0Q0r?~a}6PK0` zOV@|?bzkEoHn~rsg{m3bfae;#i0i@x62X@l!Kq_~>}S=P=d<_9u%6@@Is&AGy{-ca z*MM!c?@7cJcn(A++!S3uG(v|TM*3V#9bv#%n1<$DY>+VZBiwzk9zWindm|g ztztrdcL)UKIkq-9`x|(g5yKm}(2l{jekngaozZbZ=)|f=Av8{C{y8_(j>$124&a>*SN zeKSVHkaL=96!l0VS2VT!^z0#$XfreWrrxpi-f4ZPYJD>XROD6kbTa#2)y8^xFh!Nv z%nT7OM#a5W_N-^2_(`kBkor(>I1LOTF8gWelOs*%ENFR&K9M0H==qU8 z<6mDP*+*ad1G0Btw+1D3D6Howsrjkd{f?7HC9?#zh%V>ImA&4NKUEEZ-$0iQfZs4G zYU6#P7u6?uhac4Yd52*^?1XvVFxU+!zY`-&t_W6;tl3`KJv5g3q*hdF48Ltx(l^MK zpW0DpD?c}4Rn9?|3|P4W9$IsE`MEI_yYtio006z~kt{#3ibYum>d<6O2$9mvu)oX?B8jO2vO9(-(?rAoFulA`{Xh+uC;A&Td zdthrw%00C!iVu1tgsNW+`;ObO!o?9R`^dJ1`i%G4zcu`}GPN}fu`;kVY!HCIS95NI(?|WC3{{-d z;vlbtEU)V2L;!d9?3g4|ZIIjFCtI!Cs8)!cKt0{r%VJc3XEe8Y_H^YukpjQ?&Y{q;S@MFGCPHSfMQ(m!ja0skB| z2Ed2E@b#Gcoj^30&*lA>v6cS|$^ZiY8mI*vEexz>l)u9q|D!Mf11lX9J2T671f;OZ zzi9<9F*4F|GO{qR5zs3+o7kulu&~l`aB{FPe-n!f8Q6=PSeThR6RRH)**E69Ee&!u`7dRh@(>%RvH^kSE?DooO2I7=tysK!z!V(E>h}YzXmt zGE^*7BQ%e@t<6BP7?h~y|NLcLqP6)!%F7oeqjN*Ppo4?czfZKgv+UeE%yKV)|cZ^#6}`^xr4+|CjOp=ji1B zOz6+_KM?vG84xfM&)42bSQ84`vpoRY_)ju;UC&#}ti%lP`8WK+1 zBd?E0Z{6N{ipX}LVGtc2JU%bR-cO(!p5eV{;F(W9eE}13qJ0YLLZu7^OrGAnjtC(g zqOv%Yp(uy+i7(qnQ@bzyLBHX1+potKyRQ#ef(-GN3w*dfEGf#3+0cva&(Evv&!?}} zkL8xH&roojl)B5WX2y@83A`7*&kMWlXwp{9xE(t(vt!$@Gd+dc{WuKU z!BWD$^7Dlz#FT?O0cXU3iYU0nbo}>MLn{k?(DPdFBpY zsa@iv^Ly^1E%t+R_o?H5b7cGR?u~`|AJ7eQH}C}tvFPxUDX1|`<<~?RQ;_v~+^5i3 zokU?oZ+1`8JWJ-B8PMy;hC&jHSAs~JkD7t81+ExK+{Tq1570lugwFn1ON{GtuR!~2 zVF<|f5a$N-X8g5(`=N|}?t%`a+jioL;Ohr<=@~bS+;3&SoW#y)Zgm0a#$ytc>;UHG zV^78zBX!n#Cd5*m@h7R3I^)Pb&6w-MtTk;kV6}$S>Aw zCE5)hc>ZiyQ@`09z-vHje!lu+-PK4LAD{DE{EY#GoZj_Yt2L61RJJJ95G#Z--EFqk z*iP`7*mb1<1Ce!0FB2~RO$Dw@Y3o|BiJXmoTvpJ@XI~)aBc(*@-145Er>EC(qMNPL zkDnBvb_<(vB(>5=PHr8LpNtRA&Jcn2ZeU}y2_bvpiCm|R-Ohd7Bsl>W>9y;z;v_T=UMGPS+50?qv$OqrGlyY44TLb`hV}@f2){~<#SuC>As-2E z-kEoauma=%hT@P0{amC>8SHlbuJs%TDv&^n>WH%yXv0;xMl?auhJ_77S(0PFA4)~>F=;QcO}SVNevJJ@A1Oc)lT1k z*{;+dP*^fIqIDZeSAh92pGA=%ANAdLe8~_Dkg4*reOW_knai&76raMp=DVpff!$;d zIn`pMwVmh;vE4b*6@XDTQ+g$7gHyU@FC8i|z(?c;KRzrqH%*iD60{^Ku@GuVe0LQ8 zcKVJ`*>|D^C#?7OdM@q-LTrod7i{OuA9b8IgvN%8VwM;-JtuC(L0nvGwH5<&!VTNG ze#f47xoW$SR)SPD_VClrCIbRBe9fq@deq*>ZQa`~{4QFy$W7PPtdl)kn!y#OaC~DlKnC{_0SE|DE0D( z@HuJRk;e4bDKcXrf{~Vp3KT)Ng{~8N=7mxrGDCbL7%M`@k zOKl0zN(6r7$_8$tk2v>cnGkO#&g|F+f-thqqXwNg(%U@OQ@HE+TX!e2NNk6fAH#x` zEyR_t7&NyiC+*{7+LzN?30HB7+5C3%SBab2`<$lGPa26jC`yb-L~+Sbl1B{0f0`Zt zXHr)_Q1U^j;pA{f@ac}Ep2JPJY3fmGIw= zAE}z|NjV*UEZDVf&^@P5M9scjlonj9H#QG2o_(mZ?^ zRK{kBB1JodgXV&bg`m0$Z?{80LVK7H!(LQzm;g&GUE22us2uC}Lbe=_p)hN-2QE%) z-GBgJy|x`Q&F`tlyKkn^x6f`t`#$h$bq4g^!fO~IfR)gx4t!h57qpHX;^(&){SJh< z_0%wBMfV5lIwcd?W;zhDizXc0xu-8J;GDFkf{tsjy$|Bi0o~?@5H)%b|$qR{g+PB$^MDHk`D`~Om zWR!KSTm51SGf7w4NbfC0C2c1(Y@%k4Ta750n@SDqbRQ@A8|OOr960i1Z5ut;b#&{m zMy)}`B&=zU)?@w~^53@`kZ689Ju=ez48kE%2%I5Ac}#p@3V%&c&V}|kf1WKZLuoD7 zc@%Vr^7>cWBG?T<^a`d&NN8Zo>l-B zD$`sk?xxCor&5buzB&ZVNz4pm<84XG3GKn{`02yHT_x8G>@D7X9NT_WYq7sWTz7z( z1U;J$fFTL^j0ip`jECi@)%d^oddr}=qHbLmcMI-rjRp;7RC)%>7l4}HfP^Le{XUik{*!j!X>Ltpl~Ge9U@nI_X@7!Z)}V-GgbyoAcs$@6?7y}; zR^K%iEu)l!!idSDyjBc&2vTTegH1@c34wwBgk_A$3hC`_l!?}>`A+pQKvRTjD3$FH z&toYp6pi?Zza3R$A(1h%=vK^@0(-h#R; zaa^Y)*_&Zl+rqOrQ0-&Hivn2na-2@oKg_x}@m~N~HP2P$*^%v&GgKEzw2V)f<`*|q zVdjrTJbO6=gP8KC$X~)BW?o7!;q~{dMQ)F0L&9VB9OzPrHcUSuKc*5ryJF>>EZRfq z!|~zWfU;f^mCqYI$;MS!H(u+N1mjtGtc+y<`akj3gQu3{R};1Lv5FEtmb`_*Ik9!0 z<0NZ#?zFMf))3J8(v?}fT72dBo5MA*X^?!_mReCzYra<=AzF`%XHkKyUc7{P7PbLKxgKJJ;Z;#Ab4br?pD6#@J;Z%RZNF!A7i-em7=Kcw1Cs{4Y zu2QUO8}^QBH!H341uSA!{9ww@N8jpN@fjuz0Fs% z*=_A`ViYKn zoosFc$ugD5!#31f`e4Y7alsfw_sha(a=cd7w@nd|+Qa!rzr>^lKw0fNGlq zo#y(iD|HC_`GW5$<=&7r9w#2@R4^` z(C`j<;{BQEr!)7Y#+lPPBHBT9DN z;$7tQv;8g|b(z(kc3k?bIvYIAb=^M^!rK%w?FhQD(7UYBF9*0vu`gA4(jlGm)k%7 zE7fcge=f7}udXC8NaVZtX{-e(Ld*x)%dEd-G^AVd-m?@%NGMiInNvISd29qx&Q@AM z^xv5Gh+;6v4K@^!x>AE_@dOeU$6x9|jG+aC9>UN8uevCHhIfL?jWo>}`bwrZWj z&pZ1ibiKR;kG_$#L{<*#viN0X8M#|{dsi>4f^TN*K@vke_ki3XgY6a{y-Ruqi4M9f9II+Da#ul!UB&3z2b$RO!%qIHdjv}r`3n@*QmRAH|M*#IPJ!9@ zqkOhqa(h_3TBT00;ES=i7aa$|3G{56;Fs2`Jff4|8fV#?8G(eSp?bT#aP#VQh`I)A z;ll)B!a@sBhwxUAuoq#Wanq~HOf=M3V%4Q97Q3nhXZ`R2!xg<|jM>!hP>L+l3|;C3 zR}G%c_^bGjT1p==Y)GJZoFP$^@Q8JgOcKh+Z_Zc2VZNA<++kl)iDkJB_!OEl(6zjN zBvpSqEL@bk!>n49uFj;F#6I7tQf-ub+9d7Z>g)czX&`vSDEk8UciJn}_upF=JykDw zSS_i_h}*5$Dso^ynF``|(y+ZIoL>*KHDG`MV--|fMx~tYBx@O@*7m(OfWFOF?jpIj z_tf`D1+PY8ahUCiy!cH(-KLTIy(GXTz})}%30!J?1-y??>Ar31^;tiIav`fH zxSU^QkqIhE*jRlsSs@7e1Muxh_y3?Io9B@+fx+1Gi$PY`SOK-Hvh83d!&6?EEwt83 ze_+cuTv}`jI6kBBFaZBW9;sdHh+J|Iuk}nH+iGfd4MFuILvHkmZ z3z|t1#OAf5b*u`|_BXY|J#qPNiPhixB`Q-QI3N(7)8Y-eB-MwbaS+Q!ySnfh8?O_aNNlWGx?1&==MTeTZ$0CHG}^Q^gf zQ?^oQ@9M1Hy=s$qChfi`FyfdQD%+%UEPflqOgNSYBafp-8tZCXO;nkTb?fYQPl{ef z4g|+4tE-5Fq^`a|{*g_VP*e5ltdrPdqDaR5zTmDWnVw+l#@5CvO0uz)FCOMai)>D` z#TGs#=c3-JxAHVh@n@kUbn0c8rEY<*{w|2#7qN(V5Bf1k79dgn745m&+J!qZva?#= z17D|#5b{B)h{x7q;)?~0zGqZmuR+U%8msK=_GZaY7vy5T@;y!Pk9)0oUZ8L+sea20 z`Aol4G*2sY)pSyLmQAmaul*0Yls0!I;1JxIy!#qUy3jIj43*?ZEDk#;Fn(-!B2S2% z!w52ee`bIPo6SfXwb9lE6A4Vrv$1!DUhlh;7n4$mO>!{K5smLo;IUXjx-;BXuHT=} zuT{ZI7+AGpa$_~ag;U|Q45}xFKbOzn?CI23i}$6h^UNO4^Lz5jj1ICZZVTGiV%Gy{ z_B+Z=Fq*o#x~tE!7_)K!>AcC^Ua5x@%}(J3A&eDH{}v&qIh}y05-XWbd1Rc#H5zQb zSR$ZaWpWA89B8fG;JePM1&1^+FR*7SmdNOXF&bT!w-yCroKJ0g_>#6g>Ym0hDRRoZ zS#XqOF;$?~UcEog-==6HWvj73HCh2DSXyTH0@)_GMVRx3PA$%%bwyRW_&<)c6D1cr zD=fPIa#>UM+Cd-C`inHQ*rGmv7P8%P(^J?5-4&{|3Sfa7TjiTjk?f+55klf0g}r7U zeUeL$8KtZ4q@?Hk+O(co5RD%BZoY0?f)({5fGsGujJVq#IdDgS83q!dXeJC6-B6?_+@K7KfOJvb~!Y>NV>5EN^T%HYc z8JDQf?v|eA#q_{dxeC1y3NtyOef=SAOms!-{yEP(lrL-qBDUIXXP|{SB2aaV{3RyT z;_D5{E#_2~Dqn~e>C(_KJXz?!u}Lgl2Y5=hWt3mY>8{@%{u)3FZC_8;xt>&4Hp)Py z7+ERK{?$8A4440)P$ZQwn68yHM=kSinQE%DMEw){OG7n$p&y{I7J;bYvI(rv# z2~cy*Vf>40+9OZnztB4?5R_K(iUs~7P?BBd{`4d?zRXQf@$4r) z&Rhd7LN_|MlV0@wHspcMmgS zh(?#e{X%D}>_!S^o>f(|K8zFT&wOGg_HcXtcG|tAtuh6|YJ#RLZ+MlVfH*z;OmHku zey<)DhVS)5Pi9T})|7Xg!ILLuz)6zgE0d3~WWRVUy?zMx2kJvgzLXgUMFWjaw|D!~ zlwxx;b96xRBcqXkw5U2#zb>;T8}DJbsHL3FzuI$A*QuShJ{3QURHvSb8L+MP;jnDq zADz$%`t`_HSFg?$-}=xxGImh&P_KUg!y#e7{gu?r&R387SdzD$3;%!=NZnkS`a>R9 zsGJAjpjwmyN%*Bg3q?EHDyROT6#L#2d@_OAWnplRH0B?l z#iw!WM!>7v;OO{f7An0^ZB<@QI?6`yVLlZuk>AVDTr^xl|Z2fEu2nSV9-8!p3X6; zxj~KRAmr!==9_Uk0Perzoi@?yY@OW*gMW>3iNC5XtDOV`{c3;$tfEiZ~odrue)DH;K3Z54JOm)q_uy#?K` z*uNMnuJ-FZ`2}8WquEULcM)J}Ab9FUS9mWi^=LXnPfxUdJs(kSEI-AN2pp1Y{3}Ab zXYl62J@3_DeA5g&5f-3kKE$gjblfHv#z@G2q+`d@T)%zxUjy% zHGM4XGiW)Pb-jh;fN!J1diMlr?2muCjLT&Y&OC%U^UM}ymrL~%(f~KC%QQG#Y>PBF z#lV(0ge?9by>0oRnUlrMW)Tts&4b{wZ;4w4o@^-BBk?TRqS255_E|gvKKh$R{pR9Q z7Z>!(o30>^Ry{2LAnY~ZH;$bn832FQj(xsTsalA|2&F_5;5Jaq`=Y4{2x@+KK2FdC zcr-u2&zmzvth2n$O5K#>)~}tTDu}x)<4dA~tI84j>PrZ_D*4fF{;>G7p-mZybLx2z z|4f#}30i~B1o?oHAzt76izjDVwp{Jh_vi>fhh84d)Ohj?De?HxX+6)rPbPz5O<+?N z`*lA)2B@dTZ@XaY&-5ciDMimZnx`zV>3BdIZ!~jMUhQ9&=A9}~#Rh)MPO76Jqdb*6 zctBBFLm+Vp-XsNf*6Z1!<0k>5^6*3Vb_{aWx}YBe%^Exx-{ALt^3kg3{>Vd?<|Y3A zi|((adf-$F>AU@ZHZ=)ILZ8x*xks@p$Z#pPAGRUtsXYCfsBp$bCjfn+8EM*`)ZvG; zM0G`)^qcW)l3J#X?sFC@$iN@A;B2)S6!>zp)E)5^^}`lFHNR)&&P1rc2C&T;-Xdxa zkCUq0IOtu_;kPEETvYo@t$oMI2hw3<&P<~%61@j16?g1j7&qc;->-Kn;QKanX9^(- zpw2>ez%s)Y&5B2ax_R7Pz*E)B9P(&Hp8 z`F@dhfYUnoj=9q-G%9OtHrn#Pf1O@mV|S}}?$w=x8vjGuepiv1Y~nT}chQ*GtB4^@Zr;Ol&P=|oL4Xv)USsdwVm6XKAEl!@wbHlo+E9Et>2uB>2>xOs`%$Dh z_V=YH8{I<{wN1jEO+e~gvB-YPRIoLB_s zr_qk*=PGPVZFQ@aomTpt?VelS1UF#rm?^H-AK}z+YR|4c5@TV$tQJ-VV_^x+(l>Hr zIvaxS#e|fVW7_vBM(hYHrH>L{JSSR{7kjX`HV(&k;);l*gRWwD&J*u<57!0&Exghj zJ)}o&fu_5+<_awQ3MBy#J2#G&d~Q6*9qhsMo&u*KeFKB`=ao(H^=R}4@;Np1mtAtq zHT<&&=PfSkO?cBlJI`pRxT~n*j_iS`NHy@{-Csl3phfDhA=%ixN`(=pU1BRAONliF zSRJ=oQb+yGZ+I6l@t0n$s2@P z1nxv(jmRCXpW!!>l~R~EZFVmnJ#LsZuB)I4%-LLjdv|!5$$~|7J#t$P@ z2VJU)**p3vE%#g%EJXQ6k)Pxm=uGz%Sc{Ksl35?&^uLOZy%(#^c2~M%HZ2h-Go7humqg?mwb84J7@Vsq>`ZiI;1DLVG`J{@h=T&5r%nZc?lP z7_wU`(H0Vtp@wa8RMAu!p{!~v^g)gk%)kFv?`ARoerC8G9OjOG4hGf7@CzWGxhnTMYTi;OX1;R6;iNPk*&jFJ=zwA~lTY zhlmdB>s(LPia0yT=kdtXZx^xQ)9Sm&(PfqW zjnhlC8scFGL+2bJFzqOnYl0hV^$Jc_ULUd|esKQQ9-&oxdJ)Dj)t7jN`r+B&ksrzI z{}VUk=8J#W{r#_*_;d^ZoLw=(|^kgBO@f=5V4TK}pligS4Y z>zWq;j&@`jb!v2_QyfP`J@|;ARv+7=bM?&AmKP|xB4Ir5I7leTdlhOY{426YI!qar zWBAWSckEhQX750NW)GDH69;&&`tO|o?U%;<;G5x0b4_dRIWZ#W$jw!UvTZh@hKdKeE*)DCuFRL|b z&ZRXcoh7gc4ub$%t+xj>cFy4Z1(Mc}!0qs1b@g7k-;vud5hU6DGLdkVuh({h4y>v7 zfMUG0(2|4QQ!jJM)U}`-brThSh!pIK{dfYfweI16-|lZB4^JfVxH|N-8IDX-dS)rW z#>cmoefACSz;&1(n&adO6i<`WgaWuxvN_|Tsqvn1RHJCA9^50a2V6c>n8|Cpjj&2D~F zDP5{)@RazI=prXQKeN5n4Te=DnJFOY7W&&D7wCI|D5jCZb9qFs#y|B_wkHBcF@>Ie zeI;fwi_g`81#kFDufKFWjKdA5y!VlHlwUbz!~j0nObCbVl>yhm^7nK5^ zz5b~L6O0Up)L7@i%@@{RIBfi}EAe*}1%6|mZwcAW3RfI7+HNTMt#M@}WWFxBVc|g6 z@uk&H17#NAre^h_gB8(V?CtAE2CXJfqt1+=1w$IKl+jQb6>0py#P_a4Q%R)NXdNam zf+2wQil-b4f;XqOxs9igpU_*C zA5J4d&*-fewoKIEa@CJGiBiuOcWGZhGb)Q+giJNy91o{6s?s5Kh||%0$CtNP(!?vo zU7kkXwbDIFT!-I-?~gC1vDFngSyPi@_tcFF=VZ^^xJei7SHhXRQKUDb@UN5tb-l!VlP;K`TQH)EI-z-BaPmc%+-1Vr*W#qL1oRl^vJtEIrq|#O5qc zI)&NolRS?p6xX7Y@O3%$B#oxb_L0-$n%dH}3aePRu*km8JCHxqaAZ{_{_$ki+dv3% zFwWPxEUCSpfk9nhdk8xjMM5nHjQ45H%jkLWaNCGa;4WM758B{=5B9Mp`#Yr+_v!!hZ_gQ+(C9E{fK?4nkF)s~NR~nAl8Yo`(OzV5qrj;< zIu14x>T7VAbc}+#xSJ8%0LT2O;OFTih?L9mB8Gy8$RL5wGLX)@BVpC=wI+z0zd$pa zI+DKQw9z2B=x#p-;%beKrgcsle*bjgyKO`xKJzpjwQeQax7^XVHaU#Fgmv{H{pIL# zJ!re5Su83GJF2_0bj%b4+V?=7g`H3t(T<$%GwR`g^;finVxq#MfCRbsJa}eBnQJZN z2$?S{JCf@QPpEL{-Ic}yhw$jZWjsg+@NqGGK~IdP0Q5hV-yOtfAo;7nyyWiBCuX~7 zTaMWToL60VWezgbwa!&2ELh@ce?JXliQ84b>Dg|^AH49*h<0P|qES&uge{9HKvI$Q zC5_17w6KccE5T2~h&2v#@*%#|+Y}wX+w0+vGxaAXTW=qQF)fnqF$Tg;T<01IAz#!- z7TVK*P#1q2Uho_*PbsnFT{F@JvlY|YrM@kxfLCA3a%`v?>xKYL744g}p32KEvW{zR zFwpxu+jNEl@SsXo_tbGNaGaIPe&j`Ie8a!daJA6*Tq8#3gOThv{*I+?C+_7Y>-at= zO;yy?Us*WJOSgt8W%l(NLXH-HUA`&Fa4$*UemV@aGXLgOCCOe+5xoYBwEy0sQLP$T z?30uA_x`AKY4vTjTVO1&ozB{oOh_=D}bHF`vlUzPQvc?eWK`4OlE^{k* zS`?N%KDVr}Jm#ptv5zO)EUMXLg8K_&-lCLZRf3F=ag*lbpJ+$6@gs4=NBK`Uh+B=KFcibhB?fQKCdBQo*S7F&I=mR2%B(^$-1hL<3R^#dpJ*N226-FgwP_(7+k_&a8O?^$-+#VfdRpQe8S zI%E*R;{yi0k)+lG8I zb|rYz_dY0xbjqBQElE!Bv8C`TS5?TQopqA0d~}~K+QM6R>^o7qsn#7RthYIS!G{gM zTA2N#A?@f1gjBR3^Pj}0mt4u;sFvy?;MFyaQhwQZa*>zzDPLECftakNb*IeuG$$Xo z#66mWU&{$P*jI*eR9e)(y%6*NcnjlVxBc3Kpc=R5B>gWU?KF-sz44P@nDr|`PhNN5 z%?CDLHGIusmz)f;rJkh8H1q|DK0jW97};AlUU2b_wtupyGKu9+z7FGuepF5|kFM>Z zXKKvaf(0L=N=8Q~etJnd9?hYxY~9-K?6}&)gh2i~80Z5hj8;+G@6p+)v=9Z zams^z7T7$q)yz@TY0h7d^p(@hHN3m3>G_yDNesP|%Vx|HYXm_-X)5R#*Is$zVF)$h zSqHUq=JJCrz4;TYZuMk2`c#@iG41ex#nEWz4rJ*nNYH5EkDjJSGWBSrZ`VG#!)A$F3AOFsef;c+=<#k3 z$j`yPAMJ>(<|%yFXa~IKNIGW?+|c=p27a zi@&H1ZZLmGg}mjM${Aknoy~^bV9nV3OjB#nvbi3=_~UgQ*gVWSe=crTE5^vypF{yW z0!#lUZda?^Yf(d|2R4$g%Yi5(RX|5bobZf0jJY>EPaDCkZ(PGZv0X>l5BTJ0DY__a zS$P6tf1U9dxAN%}W}BOZX^^>@=(MZr;bM`?*#V-x-A^(Lu=+>aDqqiNu>KyLpA68X z)y=+S=mIQ|Zq_F9>_zX~?{c#{j()!+Z{cTm&SC7ZhI)x@GIwC@#0M$6PqsW=@c=)Q zAJR@cR8my*y;yf}ds?a~<%^x4NQ}I~-9P&|bosn|&BuXWSCbH=K-yd25`8jV|{OSjylol8rt3x>wV<>eA^dMMX`Ue;{v?Q zDt&9?{!KjSAZpwH-KP*?>rmUCg`1z5k~NCXgD<6&G`$~Sn&C_ z2YH(fQ0nw zGZrbqGCC3A**#3oN+Xg{gUnbh$cI1eKjVgIEFy=N$%v*fqle{G71>{GQNj7rsuYN&Y)Pht&rVE|o zbZtg4af(%NQ{xy^2W15+NrG$@kp5ou_dc@kEv_=<;g2n1nUTL(=B+&P|5e%+pZl|4NQoKu5o&=C9|+mMBwy~V*-SSqJhMv)!_Z! zwLDX(^sJM-p@L6oIG@x#1wpu4?Jw`I)u6~Fk585dvnFaWe}3A{w@>W<>hMFp3G*b$@2mpc4xl1Xl|BLyBzE8?$o;|}R=YgI`=?+H~zXUzk)-hs$Vo!{8%~2?l>A<8B_+_ z&!}wYcBFWLP=A_e?Hc^#)7~4C8v9V}tW)C+*XlN(vGJ@mAZ?8B=)0EbFL-d^M5dqH zKB_HK^DO&#>hpYoa&z&VHz+Sl@3Brrr<3I9WX)#CRIH#O{p!sDc{?CluHGNe^4rI=T+=$^4lTDobz`xHyus&+SP)U}{2H?|st1P%s{fX8$VxLwOB`7?m~I3`K1K{Dmtkm7s1 z{{g+iq<%B|%W9Q52etWB6#$vkogk0R`Ev)f*b0c2?VtahBn=R4dpX|Z##fTvO88 zb4HI5LY{Yla3vhPY%x!uIqtB(tUZp!avvl6-5{r}sLl4G9-l!T--8CyK#G_OOYSM~ z=J_Df4O>}wtzD;T)kD7@>=@N=Hp-O?5?%EfhgAkfyZ#sAeWitpyD4Vd8mFdi$Ar|I zF=>1TRE*SKW2gB=wqiNbzGR&(zagtaRUMOzKgL(_ESY=Y9rVIO#s?&Nr~*)kox{aX z=J$AgX}3Q^?eW;!nRuYZ{7(yapA*P6Y^ULakxD!COG$=W!=s?=mCO)g)R0l+vsq3A z)@=J(ne=gt+)Zget$?YDI_((F=dX*2n z-#*s4+o#yFnk8!99x!A{e*8*h+BO4ah7*4uS-dR; zDIqwk7}SQ|pQ<8b{awOszYvFHg%{M8;j>=sITza`G%@$7id^}Il`uj}C1JWuxato} z6f1$)2Y9#H1_9w*9SlEO2HVjk^=mf`6}j9fBp;xdo!Dh>*9Iz{fpIRJyG5{&c7ewM&CTJDHH)E!g=y)+Gedw8m45;Z zja_59y1xMa^s|*QN0-(4i5F0!bm+`Tcg;O!${Va}_uBq@>aoqYwN2)-o#N-RJ?OHX zQrc1xhss2vgvBYfv0@W?%?O3!$1Jc2xPto!3Ox9X9?J)xc~Nbk)ee`N3e|)r=Diq= zU_D;5>kIus68db1U-5u#%%8Ilbx;UJs@#+LB!d!}?F(UBdOND_B+<^Z6f^=i%xt4$ zB|-J6ZG#GI6D+j6siCI+>)#Xf3mDLcpQCGQKn2D0H=HjMa5KF=>H}j7Z@0`}5TLnP zswyjDw^O`@GV?)|%Cgmaq$Ep>Zr zzV|s%H?b5v-=s-Si#cah*{*Y=J89}YKq-F$rnf6tc3OHzKrlfN5a0hB0l_&VJfg;w ztp@su2%q49;iF8i-@ySILhL7mwMwvIXl2@go^c!Jld~9fPvnSthEfWvF=K4_2(vmm z^rMRh*NXCn0p+<&x8^Bpv*1j+sJ++j^&jI^i-&NDyHSm7o>9V)c~`d1YGus;ng|U) zOaaCQ=`b>NJ!h<@lw}BEh8mhGVMZX>&P>{iaG9D|3_9JMoT(lQNA25DSs&+uCHZk3 zAxZ;>)QV$R*>WLtWgQ$3;bLWO7@(}rh-E}V%Yq0OZ4hok5-+_F<8RpjDYw~7ul(!6 z8xiB^pcRiMsfQ<2p1&xGE`0zgWqF0w~mh-OTUpWzw+613xMVZuCQm zwNT}0sE6)77R-3l3lSiw2&qDIjtD2KVZJ?E6dadW)<->ozf^;-hMZ7lsPo}A;5W%l9q177#*I1UDn@r;PIb&7#e&Cd zTC5)M+B*dIPKuCbB!Q43rXZvUNk$R~DZ*r45ZwL1p{_1^cv84bld6m`F#Y%;GE$5& zJ5EMyKBM+%=$#b7FA5<=Anp65L?LE~$UA=N`=Zujz#@clD=$D3EAzF1l?`L&e*eT0 z3nyIdJR|Yavj+l=kkGF;@K3!+p=PPm!y2mrf&MXzF1jF6KVQ@AexOKDBd=ooQpmoY z7&$2Q^%|>{qtlHGAA0@R;Ew1zT&3H9($W@A1^BEMoUj{H`*|+n;b4b57*dQiz3no_iqsTXWuSNDDHna6x9b_^$4Fxw~ z`pe#l>ZT69^YW7ihK`f8;M%1xZ4n`+InVi!fE@?y=aI9_Fu+U!;e9gg(l<0A1mpyB zQEYb}mq83#EaqoiNB2rEtP?lpSUGWM`a%rfWad?mi9z?rPou+Wda-n%r2h+xfXkEW zy!G|@0D(o|Rn+DG7c638@Zu6GJ|&R4rSE&?Y^2W-rrx(njdrCKqr2DQ5AU!D$zixt zhR$*VU6VCg$UD0FtnaXh&sI$9sK`F4Kk&2b!(%CT%M`g%l+B)#Ag~B28genz{|6R9 z8W@%<34ukBJI;Rl1a>Ju*-I*E zgWo!ZT78hHg{}(I*0RoFi`d_dJrY5R)SVSMp6S=@U zEaDzykQdXLD6O;0{U$|`j$n`Pi0JqZi^$uMvXm!zhec4NyuHIB@HN<+m-31)Ecr1; zllbUg^+S@#3#Juu_B??A5PnP@LaRBT6SBhcfL1aS> zyKX*&0jEx>{F77f_h6cpNY*#RI-+cMQ3Fa#x&tZyc9`C)MWfso{iyS@1Yfh837VwbR8gDahUCf53>DXK@cbnf{{ z#PkaYn^|PQ){p!r;iL*T_`-tedKKXgbI_7f;}Xhd7bT~k8giGodwUa!zOnAC4X=(t zm^N@1f>O6o!HzO$!NR$s&ReioE59ky)By{w#FMB=mewJZmpGE256Mj6_R?kS`fRYV zr+udR{2jfGs~P&C68OG|V!<~C0&?*hAF2gv2BC<66hx-wU=)W)a%-|^A>7`=)1 zuW<@b{jERh?fk1W-)yZhNPrx)!jpo2Ge4p87T(TrGj_ag8`qOls-lpu-0Sfh0rYEj zkfJv9Rh$3fa}_m z$!2+Fx+Q;`M8=Ri+mQUsW#+ooIYw37I0JL1YGrcXwBc{&2xSx34@)zG~P zF6f|AKoEV9PT}KXn<8JaMNg4T8|r4W@(nW+9#6acP^xxK`ks}k;E9+=)ST9VZ|6c# zwxF86lWV->e5!V}ya-)6JA-ibsuc!N3%>w;EMaVS5|BLa=U2WFh0=BW#K$JT%R^uh z2r}0HfknK1d51*^zQZC^?!F(R*sL4;`VTCkkH52%|7xDEv_5-&zN`NX!bHGvW#7^6 zEV5|!BQ#y&f)E4e(W zTSc**O~S|82lR@Zim`Ho-wTW4xgiarQdDDli(2mfNC?!%HUH|=6LWW~rLHs^FF!7- zZ}t404L%P3W^0$MFs`*KsW@)K%_DvHJ52?dnUsQ!2@el)7rzF`0%)41p$*^}^*OwB z{aNxf_L8G{(7X4QN~3K}b_RbK0zmi@XdAGmcfS%{Qc~|??W8HKX`RS3<-<(xt10+O z@@hDroE+^kg4{snyRuME0#i|5lpd>~>glPXsp-uHTHx$GZsfrUwIbO3pvDjY>*C$A zeCF}&2rkTtG9>I=Gj%d6s#Uc^;k#a&V;2Sx7!3 zX%2__fow367-Zq-0+QB*e$7hy;h?zmwEbHnAOu9`$qZ^~IrfTP$0lw4&iV7mcS=QuhjqYZ-Q{z>jp(`Yr*m{RZfzQZtIU_rUOy#{bY9H*k>Su(Lv4k&Eq3BNGBy4k=R_;a(; z0m75`YTCT!k9IWcBiY(weXb2-f2>og^IF8KeOIpO*6UBZLG{|eP}O8_Gmq9f zex~v4KJ?qY&Dfzym@=RYt>Jk{E^;NOLaW#U!&DIk)1z^IenXdgzOt)`w#ccY-&mu1 zPV23@N=Ft~`KmMZ7%Ic#MtXqkpKgR4J5^6o*TCl8qijrgc^9d5&Ho8Nf6v(SQ#NXN_n}o{5fraUQpu$Kj*A%4ZHM3@ z@Ek1DcJj#@D7VY9AHd}moWja_{8jSCr)TrUhU)TJ+r@KQB4o|($r>Njn3! zc%>I1k5vA&ifLo;?l5R3h<@_&Mqd{~Yw6Uw9I?^#whpmYv5w0|)J=O19DNFky)K?L zuP}|ME(dRdlD{yO#%mvFF;xuza1h@0FT5&K>^dJK4r$09!1UoMr1?IF+kkN~sk7q) z&*Z2DWO4!orcw?$VN?Jg+UvXeD;+c@mDB0zTEV@r`}A+Np%q7XCasDb086~9GG=EN zf=~T^CaAG0s;I~^AP;fv6ebaJ@1)jtql_mU>7e5-D)a6?+N9JA@|)BGSF@lB#cn3$ z33ZML)jXvvsyle+V?P%m<>Lnw>A#TEcj{^`nrpah`QRX$_o>-iv`&o+$hgzH0%Zj8 zo^r_6=~j|ki31?lBTktv^!A{^5VZ)zooA2o)Cce{?i&r)B;F`GJ491}H5Ar4G-Ou@ zpP@pBNkeG%d*)v+hSum!pH(qc^Jq2L;j%=Tql1Sdf?-My6OixIk?&)Z4~^ANhJ~XC zhc+j}#wEiV(jofDV|3B+Kb$CnsoJ9V#B%q3(j>!@<u(qkm6LUr2mU5OZ7c-lq zk0nnejEb6bi@HX%Gc&bh=XpQ_uRD{nqM&L)AdDQ92Vyuv4uEmAM{MOk6B9Z6Ns}>V z+yskghd4EdVP}tcRxonp9uP||i6$J47J&PB%V;zE!*36}Cx(1TKLA(YKOl*aQA~dr z525@JBn43rMZZ+Sml>K{B#S?Yl((=?(Cf;WEmns%EvSRpA7paM&1q-xWmu52#Gh2g zeZzCkl4Tn_6V?F5W@rtd)bs`OsRAo!aP}eET!H~!?agdh;eRL)|Jvip!=lK;Brwgf zg}+MBRPkVErZLgq?!rMgxgx5w4-n`>sO^GvmWVavM*?Gl-#aY=7D9`Foi@II z=R*j!I*r}}Nd0Ph0rRD9zx3Ov-yh|9`A3?3mlK(3?++!G@mm1SIA{3nZ-OUGHyc$W zvD7fa0J3j$C%=9yn`3ulaCXPr1~J^!3$Jkc)p5yvdhQBG5G3(U943(8#hrWLv#+9x z`;l0(PM|=yob%9Fv<^f(FHDRX;Y2LSd&+;v;aWW}xvGEpnweA`l$rxGSI~ynDHLv{J!*bmB zHAmdzbBt|iBW2zTIY!n`d5_;z8s?md5yvFCO+3Xx`g z0^>c$MW_N&802_c`CRvgd=819`3_+^%@)2AE-xWk@5H!6uGw`nap~REcgjDzT}1qA z)ycITQq9Fq%M;eRdQR%FeRTV6rtj`(O5CS#;S6aEG|6wV)^ti){VTt56DWKb=GUKlnX0TDB_e0l9kz|g}hVRT6=@`r>bqxDI zHgI$S(aZ(I3dK!c4pabbU)@5lmLikPV~pfcFqc+bXJT2pMrt}<1^?DuLAZc#c%iZ0W_0MjF_&*PD{`DeO>YFzMBdcFN(X3fW$7&^#XOL-mfDex0-7ME>$MvQGD(G*#e$AxqS zC@LwOJ|(Zn16N~xwkd~mladQ+%NOY|5vxeb9!@$e6?%G4E;4piqi3YGnfGri)U0sC zq@BpK0DyT>Sj4zua+;U}c@Z9kRfWxF_4dwTZM9s}Ja)5JX9BHumox0%vy9FhVQw55 zr#LC^@MpG@1Vb)nPI@c4OI%xAf8cu;D4)~sslK31d`YTcqnTCSuc~eV3xX{qHwpY2 zB zMO~8DYNez^F5Jlb4UeTk6@MTsex7vL$|C~<85!g4`PP7dA>xU~GM`r`Y)TkMkuX+O z!U|iBzQAlJMTGY%beZ-9{EA~9m9gaVf|Sp;3iA)oQ$|}C!dRc?G6up9%ls_7y-$;r zCkkhB(~vPju8xuXrL3QDJ)82V5NO7%A~pE2gY+><*ZBUw=S5uT19=fCKwbnbEQ&Lg zZQg#OI%fXYC*wbH3R0o-BSkRrciI!wG#!#5#J~82g1b-H^@iJ0-I9*IHv=O)hNs$6 zEnb)}jW?_RFw~7@oUpXPn7$QDw)x#zU4f%{G=;XFu}v)C1qNE*t5|e45ux>JxwCMwT>gr_lnlx|;GV${Bdlv6E%%;fONkadTUICEeD!@dc_xtT zpK<0kjYOqdmTYXqAc(6EkG|q#gi>k+^3|1$W#>P?y>cnaniQGUnRCkim1uo}NwfM( zu2?I&*v}m~*dI#7JBNWPTJ)no#guK<3fUZs3lbIzJQE7Mh`8_c{$lFN^O3ZRwaaN) zQK#kV~r}ebCl`&dH9R_aM$Ly!jchwIL z^Kq&BS;Xk6%O1W_flo~MVP~|y2V{|cV^uLo*;9P{H3Gdyj$a9JgprKGbC4n9&b(s` zA$U4!&kFxjJYs)l?$6Yegmr zdkehHq8=Taj`l@Mw9_{QUq$5dnk5a(!%@gs5+90LD)irudxpPH0Dug-H^|0DNT)5kAuk z3k?=y?~Jj6&hLOTZe^K6Kjupgr2T7Lv9t|`Y0%z25np5@4(v}{gcT4MVO}THc_o%A z3;aVOW3Xp~J`SD>FXOaYBE5bN59)$EnrP#gb$Yn}+kh2|N-5U_kRu@a%Do=*#g4*W zAjFHcg>;r62r427E~qmUi}ieQZYQF)f7U9ROMcI%X?pnE#e1WHEV!Mof zFGAd5iq$oWzC3Se)I+Ug*7E0n15t3oS?1U_|)*!8X1XQVH`I zJZ|IWq0HO`1gsG~Rss341*--gtw$3MIobEU!#V{)hrWrgaSzM(TLSJoH${MlC)uH7 zdPonoHv9G0>kP;)pJM8VZXhk<8c2&kJ*5r#X~^?Qi#Q8T(fx~lnj2p(0PwDGMe6+4 z0Y#cA4%I>$#T<+!VY;8=9-`;^rPc-tdqX^cJ*+!7)qP*Znc#w4cRitpbOG=s%V=a` ziqj>HhrR_nvno};W&;_ft!-8@bFX7@nrOk+;u|!hyh^2LmrmIT zaOK5%WWo<|C~_}s;`VDYJYO7IGS$Pj2rK=%$>Fyd+|03LF;%tRWGH_>k={Cq2cRYG zsu8G`@9?-c`SEow$)?n<^8mwat;|WM)PkR_|9V!ht*!GgSjHz|!_8hHSs`oXECmY8XFxIgb?o`q~x#Ylsqa?O8Q$9<1{s z(W|WO3K(+b1UR~zoSmbL-QYk+VTb-jR3AM_&LE6tT6?L1O4qA#cKC(~mo1m^oJ7BN z9yFy)P26?z^0Lni^N*RDA2ZBAT0}4Am>Q545e1}0Fn7A65DdaIvv3c0uuGN;uoA|4 zB$rIqFV@eHr2|awU7ZL6*lrx`;T~04zFsrh%Swo-tlkvsAZqGXUenT5MWCd|Gv30JWp&APD zW)=__WQaIlu#2n#(jtu0L$F{fVoRYcGc07T!2u`9!^vig0b2AbF`63sfUOLb| zx_i^t8f}|B`?@VIaxV?MjdtnXE-7Aud8a^mqcby)=BA;&!nx^f-5IykooXu~ZuR1cb`Q=`} zo^#^+v>f5h*dPhgvuqjGj6Pk*0MZsaTLE%v;`U;lKl0+MWUpGPq?%XxCA3qksXQuQ zU-sFf5k}m&I4JoN-i&W7V6&+(6PL$O2;`UJiK1{+D+<8zQS&UW7c7sYhkK;Fk!M#q zDi^hwa+X@19<<#iFIo?%Vb?&R_T^ulj(< zp9_E#EvC2Z!c#NMwDi$+EB)&+foBtZ1o9rSW zSv2>?Gboa2BrC7XXf>aeWN|#oJr_jTpvC32Zw8DFeY}DCypIGY(NC4@-(vl?ZuPxR zvf0uxu9i0ty1T@uES%6Ibn#hmX)U{d)||3n(18;{y)|((64|5}m3*TvJ_5 zh#aE%K)Q=O<|_oYyZlx18{aFadVk$zT;R6{@c6j?&Jcu=Gp}XHGicmb0>tGNHwU=l z9Ku&b2Cfx1$)CNQ0l09l81FmATO{bzXFBe&y`4QE%`2Q(p@1{oFTX;30(!tanf>*I zaG+}8B{3afpz7d<{ZsV174z%hv4Wi+*jbnZeWK`0tE-stL{~f_ksQc^Yi@_dF?eI} zzF2&SRQl&J{d$MbgB)5l*{|NhL~s+Rr9yn3>A3z0e%)(i;kZS3w~}{Q0eFKS$1*%!dZ4|RN0C}u?P_HU_EY_4NUK-o??P#1tK13 z4e38g4YqDIneakI|u0iZ9hH9|o&aepj@qr(`P_AG6kgkl@2cmb7ZB2)+s5oj&+`ptR zEAd6Qtth=AKUU|tgLRonT$5dx5$-BH;eXN|2!S8hUak;RFi&(B77|x@1cnk<7JS3e zh7tZ#d&I5~I@i#y5Htkl64Q|(E6|obq-WsuyGjqBt5;lJglkt44+M?yPheSwm&Boz zD_)jE*~?zb#M|jd&ppJ;H9ghcw2SZxk z$PUF7qxMMihp+7<+hvwUAKhCsqli1~^);f)A>YrC^oLwsVeGddU1464O+&6IR#%Ae zkgn*@3`4Fs^nn`?^^Ku_ATidsIl%ZCU2YRD4{Y`rotfM3>49$bZ7r|46M8MLJ%MWDINPwEKT19RPGcLkxWj=}GiYM(^hCIwa4L2v~jG!f+WSGc0! z^`CQ(=m5S)@&7^|-k&HDYu}%AyXEnWU#}q%>o^@SE^9d*<7l}rKi}AXn3ws{UJ`SLH(g7uEB>LUObD}D}J73fj56tTS8y7D-r?Ysz2~W%Ql8j zsT~hpselinLceDNg1L`p!XY5wfxOV~r7qR?P{a7;ID6nu0T7VtTS{5Tc#1kF_>z)P3f)3eH;Iishy09W{XRZaWCiblCjkB! zV9tH4O&x!9FuyMWArC<0L&R|x-rNUZ3kZ4m+T)+s^KUZ`+5R2!;J{p-*0=wGh zvL{`9Fa_OxyZQVdt`#C%tDsUNSSDbjrKL2&(LZ_ZW`+;ko4>h9=hl zT02K2^rf$vv7yud)`|WtDFw(iaWQuO2P5(c69FPi{{JoMe;@O}@@c;R1Lol$)&3Vd z|L`U4mdHIBU3v?R+A`Br6@tF8GH!X0%*P)y1 zmbmV)u3lcjp_1Z%sY)k}p3sIet_ic6!A&16MP9ete7*X3;?WbHhxiW2fCLu% z`pAlDzpdK+p;rWUR0l;X1h_A4Aj!k{fFn9kODg7&T8E3*$StLZaZ5E#4E>lFg$lv z>_c1Bd=j{=yY=Y}0&%Yrl?J&Z4smvenK7KcaIULD&gL z@aG#<#%j5!#SJI^-W{b2=N|_!3gaq&m{}A>vl|+;X{|M|AQ$J7KxnQREmR^kIORWv zrK{l(C48&Tk3hLlN)}{5&<@!LwG=E8bsqck0Pulgfe8?%F{$2eJ#i?txMBxit6y4r z1JtTy$Ej3=3a8tiDt#+}_v90=rSB7s`)4Je z8e>>6qn^NWqb#rL+l%0;UqkTUx*M$}Jgnu4$&|7XT^C>fvY)}UCDr9~KonFVBk$LJ z`v&xa1Vg20dy{Y9o!7?QwG#VC2nCN<(SuBDFaS79m8!D8Q+!wPfnRivFfPW1M9%YH zMbA|Qu&gOJ4w70x%@!!j_U^E#!t?QKyf{q@J$%~OVf8W3xPvM3lE-)3Pii&JOdD$T zQx5|=MEZ2o;|N)MZ)fxfn}TO{Bod{`nNeks@{=GcFc52a;B@;1S2gW#!meln!6c-#WeZC)H%+GuU z%s;VF+!m|=UvLrdsng$zQEa-mIE#^U+U2Nib-F|y=&FZ}-DQ3ogG5p!4TE z4{*B-?9CCJ)`v--@1K{hRza}&m2AVLg75rL{1q6Xn%W`0NzvKuLy&;TVLLf!<1Kr* z^=b52z?g!*h2uc>X3(%jf=%Qc`49lTvNqh*&S^O4F4xs(AB}ScZ13{Lk-@x?lOs6Z z+D^C2T&w13fP}!Alf_(H>BgA+MbVUQ4=}75{8fCAj^abn)Yf-a-IPuzb>4iCKh17< zyh8)lC4OIn9Z(=lLcY)g{TobjFo=E`{|&jD_-1nzN&RGRX{K)qv)=#v^ni@%Os+Pm zAmV98TTj{c^{l0wn3gos5Qng)HBymDv=gT%KL0)xwau=8QQV1xw`VZ@H$!{^nDERg zG$JK~LYW|0{ZQV+6Ql7e z_?*g(?O7C9htHdw5r^(rj~lv!8=%aBaFdwGd%vicez6zRu~JMX_KBb=7Nr9Zdkcim zaCH)Q(i$!}Bv9$2N)hb9zPWdAD^5MnexN!BA_?+K2vd!Wy@%z0~0P_ zvJIC+=BLs~&k99%GK+Y`agSZl+mp*3?9$LM!`V_bK1pC2j>-0LK(q&^FTT$&Nm;Am zI0TYE6uFT~`G}r}ufTm{bxftLvdk#qLR=cRT=oT!zM#s%i$49Xsn)gU?`@l@?sd}c z9W}m@WRtxGSf-AOo_3dMDajZ^vr*@#$Qdp`D3*fzxnF4$7^Q~Uz43TT&IA&$;BEF> zz3~n`=8J#X+s|0&P};TXSoAJg+L-N76Np5)TQ2%CK_oMhh_?$`E78JHq&SNWtm z+9=+AUJgdV7+jzbFZI|QG~0CR=xSPNF&P(2m~US7-A!iJ;Rl(z zdrcqEeWh;__$!(|(AbtkC+t<8b5=Gn)mbsdk6(QW?=5l0^t{VfZQcX(nsaLK=S}mONZRw3 ztJ7e2-1M#}ot8@tJp%7PJ5yPGpd~zB-EF00!Af%W9Gg=%Yql_(vt9jU_n z;=j*Pp$FO@e?E+~)m({$P0 zyjodl=iH4y7VW+_ht)~X@)ECaHiNkJ1xV~9EB%Tpn`Fo zkHAo^(83RjyoGeJG1JLucGt;g>T`q%OO&U<<2}*HUS7p^o&BO+TxoGC(ak z`=N|-##I5I*9*S()aAKxf4g>Hpts?sMVq~+3v1`DmqpuEC!35L=?sRi_Nen^f(3OlT$`pF z0brk7)cR_f1Z9x#VZ`9Ops=D%uE=-E&J6q5(w3PD=c^ECt#!Q_k55mnwG%!QA1_t- z0*!02{2OZ0t1eDh&zUOrG-h;&Wb+zK9Qk)R=(AxQpVx4w2%_DvLgEj1KLgM?y~Stj?3S`_p6{a>U)(q`*bK~F z0xrJO73(he-3zxpqDLl(HX2~><_y*Mo}|l1{Qkmj!!(bv>7GmIl5ipjt#~8{b==O8 zev|ZvZ+L^&*f)_;niXQgZW3j4%h|HU=n3^c(mK;o<)I9lJxw~`QiFAkKMMAjV4lU7 z*uTQ;@FoOvEDTIuBd-l~k*!r`>!WAa>9V{{9KQ3m2M384J|64XBgT@N@SzgZ0(9on*$a>r2V>D z7SQjZ-~V`GjCGqTk2v;Wd4TTLdTlgaj_c>|X{#O!5AWDv+3b)#^lJ!*VSUQ7S!+wm zwp+on$VLE`2n4F7c|TuUGe8#+0n8cL+X;t3Fp;Ao&h62;aDi>bEbKI^z(qH4OI=dWQquikGZplce-iN9{|W8cLK zrqkT+iNAK8PeBhoXbQMLF6wM*b@d^%WMABtLgmCJ>1rg(oV&F+qMjzxA-*9CX*5hn z8AyC(bWti_0Wno$RL15hMJYZS4(LQO`HZWM$9Q9SddwYy5p8Hs$x}`#)yc>D;;(P@ z_Oh zwc#HiMov(F7(F}?>3|KfFpMpAANgT$N0~TDqRQ zuAzcvevNTkLtPW6xk^4*-O43Wh-!yk=yn$5z#kmn8gOgJ-AkjST2?GARF+QN6{7|f zMwnyGv14!pE88ZvLe?&<-|3O=J5@OEzR@lGDW3Fvu5 zOvn4 z;Q{A3P;U^wr{(AKp9)4ztz#7-brMVS^g$#(M*x%#Syk3w5heB4O}zAQk-4^1#s*nb zA2_H7xOHp`-+xOLe@U=e*Xl|S9F51I+fWcWc;0{&AAEKl?|ja9iP8=giiV6XjZ!}Lm+`63^Mbi~Xe(8Ag61=W9v)CiY3{EWbZ^cO zB7djtx%>VUdt1dFOXnT_9&VBlC+-V>5ms#QE<#3-PrYgu-b4Be%Tsew6?N&cFK2nWObCdLGjkmb_C-v2L&B zM&m6$8fdjR9BO3p!1sS-e`D5d`9ydUV0lqL4Mjm(-F5 zsjCyXo|8S*!dd^e9T-IvhompGq>!1P26^?`&Kkw=9Y(+AQ$NJ*)TubegO9gp!=%b^ z6|{IzssYWfovzfDp;65R$58Z>^QNeVBe?8tpeQj+#c{>e*Fn*<^c3QM{hU?2p_^2n zX8T9jFK9O`xEsOnousew0)srU+k4P#dmMk9!O0WAv}*p#BO2m6SW`VxemcU_d;jyZ z@_m}lizHY5Ux0%pb&)Hz&-ARD^5sv3E$NOtmvg&o3U67?d+vRWJG9MwlV)!+JZt0R zJ59EF?;ORwvJ*QoSp;{@W<8tx@RGzus=t{Mnem>$(_X8U(}>1r$iO?QjZ0|uPk6f=!uQ>U?hlOTYi4q;lm4b0B#jMgIutIeCP2r zI{MKFesqu!(CtyK%&r0$$8z{xrs^_yIq2_FseAzCGrVHgytQI?CGn$?xoU&IyWRB> z@VY+eeC3UE*`*xB(a;kYVE&Mwj2X>^{hdx`7GeizUO*0oM0 zdQfMCq;H*a0k;z`QQs`HJ2_O#D`yQdBY5fkT{?fY{cdeN;jffethoohUwnl8pmxcZ zME@3h>p9QH?d@_B_Ig9Z?z91aby4De=Qv7cSm9THP%NvS`gP$%7TOH1x@&)@#C9iy zO2uB-7H*)`p~67(58qKw9JUU`*CwII?`M!^(aeoiRMrNCo?=g_qXdk; ze3*5?e66Btt~TA?_ywC6`AzX025>*$UUuyKer3#ryww3@t+NualgmD?PeJXEx{fDe z3K*kGC;cG)Zx%J2KV>vKHcfPSf8?Y8`*D$Zk^{Fdc<)t)a#q_g2x2ce1BnZi4kOC{ zMLO{xN4aNK-E-NwKsih!N?_P`EXM4PTlUW;(qL~gHyVPGk)jL2aO9qc-~No)>KpvSl(X#fb$M!-cN>X z@w;U@xs{9CEO7DSAf8z^+#FJP+ltA*`dT;)hA>2D+a1x5}Avi_H~_*&s>yYlSHHeE-&j!JXNzV zWN?9Rb9*1C-0nlYf0pyHGL%SHSu=W z!i%rcLwFY0gHwJ?u5e@cQB2hm5^LcB9z!G8Skzmx+oHsLYbO z4k6_?x*>GV_K19V;hj9627l;Z(YNCgFbU&eRhcmhTkj>Vk!1W;V)Q4i z0TmQws0Thds(H}4?Ob(dzQ)Ia_@`NE@HMew8;lmYH&%RW_sPqq2d^hZQXQQno73(p zhexOHi+DK#`xiP1_hwfQCLuWOU42-$EnXbWdC>Y5{-b5+iXI*F#}wX{81X(`tWSTV zcVgF;SBzFs?ys{d@vvrcclY| zQ|n{ZUhlQh4YMB(fB|Gk0Xw(H9xAdIxxRlLLsx9sg2>}jg(GB*1?|c1_;|wl^Gn_v zTBux?QG}JO<`cB*dd#`9==0{S+1jkR(XiV;&%M}5Ez6~k2fZ!p)E}D4wjD3xyL@FD zw6mi$PV25ci5uykmS1ci-X|NhXbG(}dPKvQ^U@m}b*k^xT;}XcTJ2uGYc0{n@Q~mA zqv*tEd=He(EoGPU+qK$CZi0&1R@ycHY{l6z`yy{9%%eLh$4#t5Af?PHP>GGq({+BG4IO{z0hFgpXQML4MYj3hTyHBHfH}qYR9`CB%uw1+{{zL!f$Qm>QRa9uKKj62gIB^CQ~-2 zBhvM5gkxjK;IvQ|F9^v+3k#s;5%>#ra((B**aB%5HNYXfCvjdTP)^M@mqxe zF}%Iea~@OP>GK{>?sE#}v!+Y#BR@R6wMA;iIY_BGmC?Q`4O&uypU8-Ce}+)>>QI|_ zUG7maHdWeCWA5piOITp<0Kp0~+wcN#Ar_qIQ8)C?ZhEXu=pW@Zv6@LIf|Bm$PFwWn z>9_`-WRDWoNuIr_F*br|p|n1B?9abu8>VThl0L~-9@^^egJTzSsu32SL^p_dUt$P7$IZzuI!9e8b8;5#n2;KY+Zh7!y3Bs zuwl0-frXern;tNV+)*;J2}tBO0>7v764^#{4Odxv-Q~|ELoSS@gry{YV*k zFvDv^s2YkB{hW&SHCIa))uBeZYXx({(Sa)Z0N7Q8$a*Pf?Z#VZaf6K=>G4i8=xBwU z{PiJ1mqVB2wvG?!82lXEFyALrS?(6x8x(%hyf% zhwa~{Ls@>5wS)I4!N4iK$we{4G3%)ET5Zy@a?HNfz^@%n-+@Zik2QH}SF?2@NcJ1U zae_;P3>HVj67UsjD}(^rK*X$B!8;0gze z6xtC;^aM%=2eQ|@)b8`<5}Hv;fCNkDz5D~}J8y0M0CVVoS42*H!BApQvD=grT;%!o zB0>EtSJD0-0S3Ws{9xvz2b8$#0ur@cP*GkZ)^t1yDbX=QVC4Lkz-B$Gh3MogmVQBa2qQYW^mZ=1>J!3k zlz1jE?!mpFh7VlSx2_DQFbnJS7V>fP{G7a#{q8d!+q+JqH>V6UhHTurcYX+|DW`tu z&3hVGz6?5K9oo>BXCObojX7|!35hf!c-5_J9mJx!`5WVp$j)}spwKG|e9oI+8XR=v z*cJ*kbm2nT*L|s~>saPHc*+B2dk<#Q7|$ecgLUG5xYN}tVF7s!q299xKLMkKf~8eN zNSQ!Xs9i^X$dkp#Q+Ekl{!1aY-q!hI?#DgvH9Q^v-vI?S$6+}J;GB$Gg7k34gTMoLI%YFvbb2>S zE16t$7CkktrzXgn^P2wdQUbWF3Z}TxBok z!%b98$ZVyKq>BAI&CMLQH&FV<>GH0|$2b1<4sQh$d>`>7IjWLBnn&kE%ZgByOpFjt z4wyZ2ni4T3)nVVQlQ`UAdA=D>8V-XU2_De2Urb`-rrT7_jQ@%1D>VCKN#IIzU|F80 zkSd%XtI8(v6_@%bp9Y8C-M*~~7;q8#5vzfw7dy^0oH6TwB@(C3BxR;hq?oZ8og?tJ83 zB4Nv(K5`}gE#1=YXS*vg0l&>SrjBjA)_0w2YKJ*lvpAvNLc(cT$S*b%68bVW8DPzy zQct%y4o5F_hsnFBwt=7znO&`}-e@iykyM*YA*L^D9l~>QbZxUte9H|!L0!j@9g*pi zxhqNSppR*hklRr^ySdndZU2is+dFGM`St*cA#ZN8C1Kp1Rvl=9qs_&1rSmNIqBdQ8>0~exy*{CYjZZlYZ z+2(Rs6cYqK&G+3Q0gITW+b?ld)o>tIl;FL+y+Z$sJ&PtE7y*MHH~%dt*JfL3$eXen zPC%4mAhBdINVX+E1D@XWq}ZejsOFgCLQKTgz+hmxOb3S1Q6o$P`ouzg#j$WJInEVA z2X^VcotFj7@BQdcu2oK)pzv%~YwMw1X-cjsvTU!kdUNFH698!qiM4b3B!sKbQ(af| z{2PzApq~b-T|QYBN(T`gYwdZ8!i21ktN}9;{?|WMc83`|pk`0?yBnRyA{WxOxYg)g z_i}U4DI7{Mrln}Xf2v(w?IYuJ7>G8(Gpa18)-6|g{^sMUA%rRa6+#wWEuVFolZ!p6 zf=X8{Z}-8QQ6Bl|M5vou-8fG)`!+s~+)d`pk5%f`#*8c*l(doB7S!zt1{e*{pAebX zMMX|RF;{5-u$E%1xzrKo%=N>5`rxWGkphrU*-#AG`N(J|>N<-xQ{qkiz5T_DvSt_| zZK;V5!*-zNtekO~W+LfN)n2{tG33_@#B4UA=t=B{J=e=jNcV?+uqc+}fVcgox4nxo^F&H*rCJKx?F)XK6^PDc373v_B=6~3FyJ37CwO>Rbx)>9Ba8MD- zj#i)$aHWdOXe9o}V7rV{(UcQ0nS;FFI6ScyQ$s0yf<@AIO&Cm1jBTwvzA&|`r(>1s z!c`ays49@6;O|zLV0-^oWGpY8s z*#HX}oZmY(nY!W*psxp@@5g28t@;Ce2ubRD1<5?Ww{Esc6Lpy>@nZst z{{5iLG+$Ss4I!tgN{D*RkcDsN9@Do)J4)JnLf>qa6)BYcb?G%@VpP3QWnqwRa#Dob zU&v*nAfW|Z^1<1XG`cikZAh~&FcdxG6F-{Rw?|o&X@YQgtRzxO$!zJcc`9nA@Qr&Z zR;+#R0yy1?tr!UUT?&*gDGa%!Yz^Sj_-4BaI5DdlKk*IA*z!nJADnFjdfEKhWYW zkdyTth+tt-t5gJComslr%Eh{Jyr`nyC+ofmc$LXdZjLKb?Zo=TGj~STf)(+vU+W0MgJF19Vpm^R*^tNQ6k>md8{BM~{iMWz zJIoa{a~!;{E2OJfo=ETwGTYc+4tWuAQmN@Qu@l(YA!K4#yR(s%qgV z8UvZ2gN^a?4HdLk@(mUvljSs(WuBPEjxfK&0b^_KoP0PpQm0io&*3X#T8CvmhMwKS z{oR#zzV|#jdgY#GdwE~cU>_YERVVm?ox{N?&U^l7^=x$~7=x^N|L+n^S(*O7%-#Q1 zAC{Y)`F~L!mVGUdgOB{Yc2$WH4R4~$0@O1QUGwPg)DT^21?dkbgDk_Mn1&+7B;nk%a_*Zs=)j3yAb|Ca69T zU9eatlf$>;$8x?pOss8)+?b^$NE^mZc0rg}43OvhdzYT4Ii)G^egs2@_j7tT^><<( zh^r)7b8{0p2j@2zXwZu(5P*x<)g*;}(H0C6DTtN&)kEvshDsBtQUyp;K}k(ZkbEzn z|2~uN+*xa(6{?*LXgw^*5(pS5&$m7ZdQ&VaF*Z#ByIp~wfd|vS0+3gVp}6WMVUQvC z=7lL)IyA5#runx}!6Kn7LYVNJUUz36wA+p=0xUF=zwSczR zOCufHYVP{s)jap+4)FDjGQ=1c3A<{p)?kZ(JYm*ohhn^g>OuH0FnROC2Advm`*Vsp z^3vzniy!C2QmHb<%Y2uzx;M4EDBuIXjhVZ1IYo)zY>?!Ig`W?OpEfi@+&oQ87iggA zk2tu;Gu@*zJq#I3*L+3Qg$C>Ml0qWPhe)bPS!CD>=ST2^W==F_8k$j*h%GVeqd@5` z{?DmcDKf~Fs-SuST=q+tJA(P$55M@h?5OUkdJvcvQPdC7N|dfHu=Aad9DYB@GwD2( zz1N1|#eW zG(4s~C5Tis{y+K^UCv=y!jPkiP?Y#V(hyAW3=q@)uvGJO=p23h`J!}NQ++WA=S?WyiXp2ZIQOvE>Ezpq(=@k32qQyA#j8dk&FBaD8Ws@H-y49D3rEXy1guK zD8$HjuW!ML5mqVY&e;J6Hj2?SrhVY1^?pFT2x0utkD1C(vcoUJa9MMO4NUDx^-IH~ zeS&;527CwL>d)WiJ@fNj(zt0sBS%=|jO~sz#+t_em78j^M@rbS4M_XgG%XwCWub?Oa;qX{)RS942};#V^2vO z^K{|&Wb}omRMD}>J>~jmcMgd`kn)&Ak;;G$wjCQH%?*3g_=sU1H)((=5eq3cwxU#I z@=V6eI^K?iKh4%UUS~Ns3Be(Adw~KZZk(JnykOfJoRXlxQhpB4FVruAtiPN>MeQJt zUT1=Qn?upQgl^+}0bzo4N&P84-xE+X-0RL}2z4^^tE9NkmMsr7Dispe11s1&vfuPR zoI5p)$o#QQUzuI zA%(d}@4mqIiIZ}~iBbb6r4Vg37L1vbE_j#J;FaP&KFMZex#B)LRpZWZ=B{63s>O$;Hs3K&l8R^JM_D^XifVHD`wfvHm+JC%#JG<#av#*j8c-X{X1Z#SZVKk z;)bt5K9U8xPO;2fK?MH)q3*4t>Uj2aZ`^{r2X}{!1b26LcXx*bcXx;2!QI{6-6gnd zu)I6JGxHvqbLY#oa!>ZZE7tNPnjy>{<<`uUuyu0ceJnig6C$_Z1pXHOqo%S8z6 zhS>n?jWkIlgb!muvf@}s98H<#@eTeMHfuFv>5foU!D25di zi~LYP;zb~aVs3!04g1a;7Whps094EiRxIt9Jk6kZlZo`38>wC}tVHpqga}+`7#Riy zX|kS)t~?_N2KWgQ_E*7sXblI9cTjM{B7Os8GA~f|UNOd=2sSTJRH*qYLuEtU^Ly_R ziIQz&rjVH{!{Nnyp1IzfPa!+FUWDqTfjRvOCUed$Q2obTCPbMzq7+WYnkI&vype_@ zMdtC9efUv%=1lmW_wY{f^3y%v;_uZJ*o1xi9avTT`{2=AG>20^?~V#%kOLH z$jckE!JSw}^&;G(R|%u=2A?Sk$>$>%-J@qw6>aZ9CC%C^206XZN9-1C7eE-FNG2KK z^MmjuEgmx+SV)h%J9?}W1V z)@(b7F95qi8(<>L`i{%W9O@Um&YbEOtVv@t!1IEkeQ{5_@$J_=vY9a`Z;%;A(~g}N zjB`z#UwG>?;Qe-Z+rILC{ImaN!yF^i=cidlhg3MMo#y*b8_};PSQ=s5vw_b5!aQh4 zB+S`Bi^0HqkV{cK-mkCM$h=>-cMQEix(7*J_%DY^??L=R#ZUZrz78Mz(e-^k_Tvc~ zKH+QFg>6HMyb*6hLfVyV!$R7ZcVQ&#RR$)a+?$cZGjdNmPaYYUy`Qh)Hv@-jgD!i~ zJW~8(_>HLF@#XipUbsGjj!urASwE!Q_o-cGHZ6v?kL`G(v4BZn_x$uVR)++CKWc{v ze}BD4uwO`#NAP8zvq$u0-`z9xW^nhOYuhJ+xEvCY&HPrE6S`zX+Jje37ZBc zL7OhD?7Plwu$i@~c72!_eo?+IXiY}^?=b5QaehG;&jEfx1kVY6LGlh^eqq_q5q@Fv zH-LBKc84^-uxW=Ny8%1=BD@=}nAzx+K>K5{^Fa<5@W)+<&9CpAk{ml<;gI&w-$C?u z*nr6%yl$*8%^RHgiI-2bvkNccK96oJX^X(}J{7}^>oW(#oGWLDT^r(d={2X3M+noSgel3M4{sqbit5(uaApw8}KHWsIX^bjjmj5$H)tbzeye#~D(k5&|R8~|2Du!Aq9&D^Douuw=#TOw+_WxOVq%J@3Ms61~r+>dS%B|GDVSg z#gw%vL1NHf12?%!0Vokec0AA_G&;3H6yCNr8e<1_0@~W?bjgj7YXQ0qt{HSVhfPyy zX-&m*UkiIKR3&O6t8{D>#|Uq!hXifbA1)Be5E$PW^ zAA+u?Bx^Dct{1~R);2m>2JY$Lt7w%_D_yIpVXu}BWH+xIu-8k{j69arCG@QiFR@ER zq*Yn0sJ=5Q1i83LW-4Y6WFzIuX{@0WZx9oyOJPg^iF-*}}>``gD<7BlELX{AyB3E)0 zF81HyO7TSK6DZxMxWwS1Jx#+QlyA%o34q89}lQANgC@Tm|r?^sk1Yj zByJovwq8G=-eN9y88o>P8rPjj!NDjjsH38-PZU-xk-?Nbbx9Cae%rzj6VOsQ(H%mm z;#4>|!v}7-t%?IFkvhaqMp+dxLMyhcbH^!BKBTA368JHOp%U<=`h-NmvP}J zB@c$jwK1wzDv_5!RrNA$R0=`y=xvA4DwMjSDkj+Xmo;}*+U<6m_jImjNCt5RBf&W7 zQNEsU*od_lHLSw?w`&!i zIJDV2e;XbfR@Im{u5@{Bh9Do#DmU(tE8*ADTMW1Xo!*N%S>bQOZ=@WSukipbTGbJ4&n1do0V`0yIY&^4cB?0`Db#Y-N8j8Lsblz zS2^O2^2cS6621NtE`;!(eKhz#!4k47p@`6+C8gXBV#yFMa~yfi@kZ;x?}ZwYD_T@- zuJn$bzW9-Ee2RHjJG2f~AtOaF&K7pTOx-q^S^aw8)J^!p)*O5MP(aMbw{#K75ux7d zYlMoL-fq?2XUHHi$}n>5%0s^1OJhBr2*Bl{=bg4_#ye!Q)${8j<)EGwVapf@B1;+O z(W8X-_kR4WM*%Ro4^BBG}J=^Mihr%VgnGPi9TdaAxVh5^mfaPL=*0<4E{yWA}*Ex(`DIFOLk z!G+7K<5fcKTV03nw1U@~IGjBK0k3D4Q|t9JJ{U-1HHA_Gl(Iacy&=eto)@rNU1Kz~&E2xob`^Z=8 zEJ>dQPX6iPp`qkgV}$TpD1_o?HXjdV8nV<>8y_vNEttj>Slq1xCfjx^jYlHu#~Rp0 zlGJoFJTKP_wsRv1gU=(duR?jhkoCV8-0=l!TA*FP-l>q%#Ol~S^Dui|7V zZU%pKr&p_lGSK?~8`NSeJzo#*oWg<3q2B$HUg>}08E;Ld+}t@+FViz_eQ9fAoPWy7XSLZU6(9x0Stbi&orZo-kCQfI|E?t}dj$(E|J#>oy#?G~I z#^n|=_y?K$x!&4c$k$}yS(&xIFDAVZv(9a({jgcsp7Ppz|xc*xQX$?aAkQN*A1wh;_JvE2}Y#n#WB% zzePheW=EQXclrew#SJ8bwaZO1k#Km07ke{5r(WHy^f1v=N+9L17kP=hzn+toi?XpF zm9)Vaw~Qvu8R7Rm>li-je44Sh&+%2?+(f(5_d3#^=8a!W0~qN__U!sNto1#hYta zBnncz5~qQ4w>jR!5HrtkRs6gR1=qCU*ynV9CEr^GjxSX`svf03XsOA`!v})9Xx*^T z2a8ZhOH>jpvgLk!x+p&{>w3WC*8UtjN9q#_lEyrdUJy?6WW93A^c6;|QZUT%HE5gz z>_O}#jE$}xd?aD?fGJozc@s>h&lXz9zvHBL`13`DUTdJu!3OVVoA>3%@IOabftr`(469Wf3GY2yl5u>o7gM{f{hvHyjVqoS1urd=dO1c=@SQ-o3ncJ8G+xJ%+ zgoNxph_s350i5g%T+D1t>_qgeTNoNTO|M9f@VTntPstZYO;$30F4R#q-fHX_}> z?FckdF=ZiQWBzN3=ARunSXutv+5eXq0Qdb9rhjsp`S-#2|NTUSB}M)?()ssrP~1pH%X126!XI5___mWhakgO!1c z1;D`x30?*{{`vT8{f%z}*6<~e;v99~44~VD(+x90;fBOF)a~;MKlFI*K%I%OKRMZIk3R#2TtOvZJnZpnu5H;(V8_u$ z+q$7Q$kUrTvpZ&bm6$Bv{Xi@lmvWirzVagePzXj*0Qfq!DpSLY{=0KD!A!|K@fivtNUi)tB5G)t*+ zQ!@Ho$&3y&`NBG{q8s75h}jqN&_lhaxW!5D24X@0RJ({3-PYBmShEcM6*SFI=F7jm z-TYfKtN+f2=iiUB|G68_Uqk%Axbghe0siG)@DHw2|2cyT91yJkn<-r2jfUf&rf~lN zK9xmrfq>5}oiz$u+_hp`A*Z<+qQWADAk0#>&Tks6STb=^(%MwZVDucKrByHkcx_e9 zuA;iSidbAgzUNL~L@I`;O4}d4Crq1~0t!aa9dlws(+|Jtj|bmrzG*p@tB$*_s|jw_ zBloTJtegN4CKLgvA^EA1EdLjKb&v*Rfz^e++Ai3q$#=|=H?XkIZX>~8Bs>y?pd(x$ zyg$Y?yUr-Hz>Ms` z3zpQ?88l|O%WYxv03ZonZRH)e>l|lW&=R~~^A{IY4}bQ)$b+yD2;`nZy3*QY9w&qN z!u4$Y0$?0cM04Q~34*MC8dIm68yfOKK*j?xHT)G&j)GNk0ZE1?z{pTuR%!fx10vwm z;y0U6E-KHK^9$eM3Je~HC@xQ&%qZUwo_WXGxM)2t(0Arr9|WTvG#jQc6kA>#5$f6a z>svCA@HrCWNX4|fw-m{d5mYEHg^8Md8I1NW&&Nzkaira;%7`xSH`mP17(31%)7tVd zXM=W+1}frmW_av>ttrNyIN6|kIn1BoG)W6WMI=TDEqRX#jiUzwbu36M+$#VthDm51 zRgKCL7oOiS#0Tq7^I=Pv(2!#j1my)p)AfSXhDe?0P867RhKO03jwRwhZX`<$VNzWS z_3mc`5}=J5Y)Z@>LmF<>pD&%Gf9yAIZp<2Xx6S=l+_OE@lG*LhiNtTkROWVdq8}>I zsre$aPfIEevJj))&m%~t7UUUWF@bQ03b%`R=fr`BfQmx!voQ=RE|fei&}m{=BgufK zyau8%EfAM3D1Z(g`HW9(!CE0SStE!B{%T3CmrTWwJ;jJ`tQG>Usz+l&5HckXske&E&!+0QPzE-1?jebaaPK13u+XeHAISNRb9F zq^s_-3B1(6=>*CJX2b&l@tQhpBn@4UOzm270L?Cn>l%%a9&HUXbYxrA-t^th%aeei2|5E&pEkg_F>-Xhg;d2@BIdb)7jOVu^~6H{w6ZIk0<4D=pPOeb~|S z3>h_eF5&~*pq&l_;DXA^cNS-Msk_`WJ}3e=0-qrvEWA$}p&Y7tNM~(+D&~pL;q-Ri z!dvU$=UtU84--*9k$iU->SKJM02UFJlsSm+5RYIA^ghIy0-`;C@GY8wlX##0L3<*_ z&+03BuwBK&V`|VL)hBcRl_6cFpfo!YMcIobb2dqPRpWp1OLv-M0}*BK*n_dj$L=IZmg zLiFRTMA4fdHW_f}Q5?mERaywLet>?0yP;Cs^{WWPoWDl0=^>K|fC_HOC95?v*@2bt z0DCp;b=8O_kRS>_XRYYfIw4vzqzAG+2`TcR+~ciRm1KsQf4PtJHEM*37Uuj~**xca zM9&e6yhn0_1+qOMX@G3cvR_|)qg-T$KVLJ&#J>XBo{?t?v6v_F8Uf;kO6fJLz}E^; zIBW4=iH+$V6L}W`tr@RKOC(7&$uTVW4E)V#ydhC-s6+vTy@)J9QN?nTF6=26;$U;N zU=JSH(JL_*Fni=aBJdf`=hSY9k`n#c6@si=6yAj~(#=S0pDab|^A(CiOfJ~V#WJkggzj(lKOSUSLLq2&xaEr(#$VaN5Xg?Z@j;y zOrd=D)hyAh{-@{Uc!sl9;H4Vxz5V+36W@k(!U8PvY;^KLi5n$<%LWx1RY})5sS{Ai~pA+TBO91l#dn-9h(#B5>&DMcy)h@z7fD4)nnrl&; zx68U~;iHj3pg4MIv)5BHTl9bYd=e9O;#4dqWPF zwj_@Uz9-_Df)LB-6KbHya6XRa9OW~?&sn6Im_v@x1>yv zD_=7a_L6$QM90;FIU|Rj)gaq{*VGmYOsfp1P~}7zv3HZ{V|&EnnJ_aZZbv$)z&Kl> zfvCkPaX?~EY$V_?L^*#(79VZQP`v+YhAv$K`a+y7^ZD4*7c@Z%^@fXY_!Eejl^Y3B zckJkhse7G2386X>B$6>jRj(vnPbz2dk0M^|4dxj38pS!1iUs_BkwdU)Zs_ z9$F=Wty6(+n&el8+;&13*#oDApPvlco;zF6@oEJ1=zhz6fV%JL@qFdqbL5FW zs!`o|1tBNFwt6m;3Vkz^lCyFZe5q;1V!M@ujsNnCOfW(32bW}#t_v~=kX8$V%3J)2 zE7fTzed;KxGbwN*OPZ@V*NNc}9``uPb*T7@aW({tpHd+&zbD`sC89(84a~IUglSSx zqEuzs%ZEO0Wp=2=kZmN!E4jrGNh(Mxv#=61Ipx~`XwdEUVEi1;3@e#L&L-4|EC+>` z3|H~pMX}q#&x4;8^YGV6TQ**%GXhGdHyWA9f-tDg&d`Xr!->5?JngmpsfEAxjPR+7 zYv!FQ%#dV`WxqVb;8M|3-FT8FUer-c*|BMn1f0t_%fM&%;n*k4N|cBU^!1QSFkv5~ zW4FNL5XPGOhYZ($ZoO!|2!ztYYv?{d@o|=kN_o1ste>SyW9*bvRMgrk3YUKNOjKq# zJH0*P>)iiOiV5Byiirvd{i&<%8$c3rDM4?3zl2h@Zfbrqviump@297f?nJWjRbpCG9t%7)YY;q*r+?uwpn%S}U1C+$>e7-Bn0Z9tcccuua&b+NT-vZw{ zWq#%dvZA3*+)$Le7Tvo(v5>=0;p196wJW)-QQsl*byd_d_+R!?YN>Cn-=3GNPV=>U zEdq+}iQ-39{j+BmdihR|k5}3c^RY&AzYy|x$EYN>>QA*2KybZbg_`8T z6vjr?dTZ2Th>MUHymZ`#lt1`jD_98NL7x(i&qgkE`l+PV?hFc`>ZkaGwt9Ef8AHSvS7gj5@Mw*KMWHp_I!vNs6^oOXOPNewH>0 zBy+_3O!?fC0Rs?u1hF;Ym=SaPw!{gjTXI4s!vBLYfdpbq)~&-fQ>4vjaN9!0T%a$& zp<7D?1uE}-+D`&P#ZkW10!Lu$MXHqiPzHTJ4CPq?v`2wGd#8}mWIq%FJoq%8Az)Re zQ`Rl<(f%CYr2@gr4H4xW|BGVkg*Y{}?%tF3uOfh!>le~S=%U`qyE5V_Dkf~KA%pXp zmENC*IN;E~l=rhQEAoZwLl6m^iq?}079R-4@^Lk+AbgrjF%&R*NGp(7LMX&snhS+q*#AlWqXfe_)g3m-c#`x z$HXoM)$Vd?C*H~*>UR$h9mn#5ofQYtxP|}ZeTHY+35GnyH2!CBzz~FS{Egdp9dvKq zbCw@$)P`M_b~>hgO8a9i>(Sp@5SB`!;}xNd8!AW{zJGHd@(`>^yasQJhqq+M-a8y1 zxThwYwXzrK*es5}c#rx?*uv!AAKa?V#JW7CV1-^zcKa$(w)|jGc(x?5Tp3@r1Y~ez z_SiZpyT@hw$2Ys%%gDngoDUTSnm~_2tq|I)sQav^VUj%s_a0heUBiXe+~v$wNw}Sm zbw{tsf>{%ny7vB1{4OE5Bvx1dUWi^~!VC?>nCSio#)O@pVrWVJ55{Eb%3MZDreW}t z$SOnu3oDeff~g0TIbtM13Uk_UO9cesJVd#RrmhWT4`-iCR$ua7&f58Ne+NK2x5M+g z(eY>L+RlaZ(FV@)`P*AC#_P|?@(x$y;dEht^8@#Aq-te*-3O5kW0%26jOH!3%({z* z)#zkaLIMN-lS^KLZNIVHn;6rQLyt+qdoll8O^yRDqp-jUBGg(v!zbMES?rQpZ2kxRm)4(BMRMH>O=|w_7jazxVzrX%vlWh!wSkcHz22EIt`dc7Ls=%J z@61zDh*KbfaimqwaY6dtHqsa0@)zu|r7lA97qk+4;=+4OSQM4xvc2Q4fFDyV;{_8o zO|CYOF0!>tbnV$L(cf1_nW~wWS^AZXHI3uxi)+3On(W{eb9j}Le{(mL+%ax~u*{{9 zUxvc%({jIW4E;(8lB&421=);A*pu-}!!U>=r0dp{>)um))NDs8f@awvls9G3FjN#4 z%{FDR2s5JD9-t9I$%;N0HnpjKo~=b7o|+!Ys19c&tBG$-c40X^ZZI}!RLBsF2OtasFuL*lX&kD@grg+%ANScIKA%E-;zd9 zpo}ZY6#X=ZB6S4|MwwsM!u$<+(gn>Fs8c710450Wl1eVmW`yQn^xHVi&wo8S7JrK5 za?h);lDEpD~{UL!0BKN6%uts`a(i+f8l?GXCJiGr3E=9xKYzi@MH= z<*0G^8Gt#r@2TKFZn0ZCDHV_t^HrsC zEuo{?vWbX_9lL5p(qMQ21N&zNoBDvCvS2QlaFdB8QjUl@guZM(E zw@+l`m6HkvPK89tO{L<$SZTWEl~yqEMguFyY=J8$nV+9Q#!=m&36qi!v~r}kB1(xD zVOmgP>-Z)FydlskCF%x?S|$95ixo&#iX5X|ghlfe4OT0e&&?@L2!LCb!Km^943Wwx z5N(vMfvHk%P&q%_IE2o{HBma4&jh8L5(*dnsPk!)Pab>U5U&t#Y=Ki9kETTPuPQDn z`w6z)cB%CPok}X}`?VEOjhy1=+~cz1caV;BIgJfk@&b7QBv=HN!+Rteao zXB|1f^670V)*9{}a#}+j_2>_>hlRotK$?;8r*&ikG&A_2OBvNvIfuS1=fT7_wLd`d zq0%iD)iMPYncG&CjEqT1Rdz6pRW(X^zl0pM3N^WVj7ddOxG}KeU7e}*9~ml%(y%_C zl9O83x{s-;k)#{SitT$fV-guk%L+RZ)p-dU{rwS9bib7!vSL%83eU}_K$eX+jub*r z>+{K6mlbaC^N=$0PM#cKJ;&r>vChwDS-p$smsS}RH==C8$LbfE>eQDgqwxn@pK=3q zC&zWB?i^ZXE;&(bW-2$ zVkmc^x|3MJHlg@~tf9Qsz$=xx`WgOjKylF1u{=5cS*!$P( zH);jXt(qQbrw;PdFJXiag#D}#g?p%~Zu5Hymfr+SkaTYfYxQz>*%wyTqg{1U0+5 z^N}?9XO{~=^oWae#)3NvuHhmiZ^-mX7e9GhM`D#?X=%cUbdpFAnY_s12#Usqm=wp6 zHaiT&0{QP;g*R?mpGwx? zyFd-b)inVGw%`m~!U3waFfV-?*?^$ZHdCLqEefwJoc5A2#BSXSgJxVnrt8_r6_TvW zds41BlW9h^C7DyWszUd6?lf9#10;FZxsrO&@3tQT0N7zRWnIXJGzn&R+Sz`Mer6?= zi$C36f8g4DeC<(9j2@0-u;*~~(%#deP7^5MZroGvEUVKdUv{SHGI~Z3-i7;>x@lPQ z?c|#!L&eFv^Zi%k7{1ws>~@Ob1}F4a=0RXRULYMzlv8F^>jd4XY15lIo8 zmLXM@vN@HUaoR;<$V4BxqPgixowwrMp5L;hbCY5AWCeF$Ek(?ugRJw{Ir641H7hU6 zWA<8Ql9i!@`hsZM2kFmLj)>;rX;!@MIjZs3v~Vs;s6`w=6H0 zB~ac~0+cP6K43)Hn^{2q5+m55EQz?iXR94Els^@ck7dw}kdpF|OD?`WDSbdoV(C^= zD=sxDm_BKsDK{&aE}NiH@2qknG1IarN~rFM!M{4W2i;yi6E6%K zq!#*QM(@P+eyB<#i(yUOo=h|-BS!=FwxOZ*QxQ;B3+gO@gL!=+P!`_JqRiYlvF}7f zVVXq3;M%%)co4}HviwFmH!l=|QnsP6SQt^Qt-E7MwOI5)hq8?;Kcd0tg%JwlDpV3K z=L0A^HHwv@U!|eA8BLU&ALz=HCFsYJPyA9Wqu2=yKCOLaX#-h@ZO~fmu54vC7TrRW zmdG0x-d9%MO5)^-+!@@R^HqJ za~QIhBE#J6g?<)^FW;ozad|rl=#})#-1lKZIjCAQCT`N1Jx>zA0^kKPBn6`j4Sp0F zG#3gC!H*(>C7KN5j>dS6##AN{w3Bmh#h`gzF4COnTu*1H8#Tu}flF1QVn#=rrk)YSw7i?PSe( zkW26T26hUL&Uu7VW&E6)Mqj*DaP=xHW!F7IN;akp8S7&vuHPlD7gP@!0KXMB-EL5@ zl$)$LGA(3wme&hN`s!W?p+J{_DsW62Mht<-!!RhEyeCL*tFf0nA?v%5p6Mpd5+*_( zAjP>t7|w=k%z8&c{oUL!B+yTCT^M(53!NadmHG$oq7{PYm zT5df~dcEevsWr1{7sR$-a}A2#_PgypHm_Lh-1o42@i@U)qEy0OcrS=dhP(C?l&m80 zyzk=2C~3#TZ*i1VN6sh1dH2RI%rf^(FuXEIq#=F~Li`1vYkBVtjF)OAFnc{%`l3hy z6B-qULs@Y+g;#)&ndw=QR&qS?1vzR+Qf3V)OBsR#7^(1RE@ynf7s*86*C{z1aZN%+ zm2VH+Yj9|`!9v>1-9l;5^g;fW#QojIOzKOmoJJ~^xD5qz5W54)v*$)MUUtd6)vc%eCW znDM=D6l(|fRJ;d#?LtKJMWA^3!gBm$W~Q6tftg!Fk8TqI40{?a zV!bDDBy%qexefR2)Du-s$89(BV)fkt-+lUYyb`LAwWz-qK9a@i zIQj`Vg|VG0CDo+XZ#)GDgENQN5~=;tsm5Tsh(Ke;&u>I`wePjH{{G@|e0vY~XIG`$ zf~W5BFOr2Hl1lobr|O9>+7iBqW!>Kvyd^rL7uF>^Qx~qtR#SUbC_N@+9Pbk8a~z=8Oifj6nokO+57~{ z?84~8cxE=!xdPmLZt5-eBot}P1_|*5gDb2YC#W1Jt;`fyY=9u!tC;~-i9Mxx3Lz@% z5vD!Z^PI=p2mV<;JMKiUO}!&{r%=w`K5_DZS(kp(n3UO#Wozo3?bBNkRhscb?H`VK z_RZ^6RM<#lp8LGF$8j-U{~>QQ|GgW;sBrXUc1(xIEzvp4w?O#7%)&mwIz`%3VT1X* zTd9@fJBPRlv2_*kxB<4dd3X#+ekmNaT`9uY z0Ny?jz5BCet*KYhBJ<>W2@1#&CtY?6B&9R~1OYkX*cR(2*Fh^EO=U5D?7Iu5NMnVo z%qC+=6+~r^#V3R_zg+fRh5zD+D<91~ENQwrde#3cM;zbZ>2%kBE_yz~J+hIdq;5wx zNg3DcQ#vZ|AV9%ead%`N?Dgr0ivV>M?F$Prhn z=NT-w>wD;e5(4_Tt`h#m5q}N{a-7wo^&gl66Ea%fGCe%Ru)ex|jZdqg<6vIqVR2h2 z?b9bVH9Y;rMgF+see?qfUH%b(=y}Sd>!>L^@R1K`zY2(Yh?LAN73-puLvwZ z{YbV1A6>Ta@uK)(KYzzK84Ndt5p~gEdWXBdE9=?ydE^w`0(J|QXPe^U(;H-jWD@9N2>KPkLYls1=D`X4Cxizb)3e&a= z@qGhkv@|v~>p`%RA+l*J5_L@JFZGgQD<;CJqfon&B>d|uLhM6La(Kqt`P)~&ws)%5_Mdfx7{P{%er)o#SXe^rT40Gp~gPdQnskH z58Bfc9o|0Gm9HnF$oadT5lIM)cJT^rL9v* zYAxgpkG22&G&eNaQR`nLKP-Hx-FondmN$3QG$B%{y~;DFIaA8r0ghdOc~SC`1Y6XR z5j1dhyu`a-M+Z+G7?KJZgc-(n>%zinb{VUG&pBxJTm^W24C_^AFXS&VmObvFmS;pt z_aOzl86>XITD@N{ETSTnU7Q0s;<3smSye@CB>n zX~_Ky#F)(IlxaX-q!44;s(hF*<0IPMY~*_w#6az5LqVQbl<+Wftayk|uPCDuMp%ZT zK+Je%UZFm*N<~BmK{SZCghWIFeu_|-$)sFgKZ-wmX+of zRPa?#coY{ZC?Gwu&%ljvwI#tf&@cdT82J%F3??Hm{~S*zm=3s3lIa_$18=O~AGv#O zeP9Ujiu-HCQ2#p!*Eucv9?c_01XF@2(Tu>-uTM zaLaRNm0hn#E;GX~ukiJdm15Md@Xik4+<~oB#<_+$d3TCaeEV0Y^{j8dQC4t1KEs~F zW9BDh4;iV{&T9m$p0im&Rtf`N(WRL~eIrcM#`y-FCQM6!7|9jtiUBYnAJT}JJ2(?U zHy9VVZj8bmyr?lDXB3_HP-;r)_~~>-awDQBsvEB*$~RygLO1g89KvoG&JFCWCLz1W zYhy&t0Nl=K7^R2C4c~po%ni(a&kVQ*L`lZ9*M<-b^R@&N42x~_tvN8-ncB7>bsO70 z^V%5?J9Ovy_h`AnBN-5Ihd|fnH0}}u(UI3o>@~(75TI`8{y=mj72#m^In@W*v2jZ# z!63y(f6ShvjfwaT1bZE+2kKKD=`-u4vG_H*-*n85<;FDMkp4Ba8}{@Ls2g_X4H0*g zIixQlQf&V;T3U<0g6YIjBCzUm`RTW z-!R)})>n{qNM98BS|sFwc_3AChw&Wz9NC4Ey&kFN({$a_4Jr^Bxo;nEIdpgKd)}+R z`ufb>RP%JhqGxbr%-B>X>;Xx`9i%?n^AWxb;Y$#Gp8E`)p+UPPz-m3nXJcIHfwrzm zyVVz2fdM2(R(jykS71Ox_(F37iwrU>MLb=ja)$+agm;Fjy+wD1`Wtb0BZbz4c1Auy zzJoBgH-72<*iZXdwI8^j_CuMUeiM`7e~(Q2 zIPpiGmv z8KX`X?_VT*{|n0BA0_TT05gI5&p)C0CpquG2H^jmke8K+nG>kpi=g!%P=fz0IFg0#J^<9m@NGSnn@8 z=P7x}Uii`EqOfbFE$(IIl3qfh-d9Updkbs5@oi9fpE)zQLNMewF1&cqUNG69jKw*5 zMcgSGv^#ze!P-KIaY9Ff=kJNWsB;m|khM49+Oj!z@`yYQKkM)crN5BKf6p3Pl@1nM zLy?@sHpV|Kw#1bKVk58G%Reuq!iVcRmg3NA8eMrjjDL}dWSNb~-n@q3Gri8JDxcVK zhO)=$xa?ZB#Iw-eh*zU0&WpBer`}DO)ZpRk;qESLx&sGH1P%P#q4N*G#lH`o|4yd* zul?u$K%n}k)Bab1>Yoex&%K-NA1sFcTU;bi?EODdH#7gM`_M)Dx*Z+|a>&&awTCXz z1U_d!4iObHPHiUa23`KdSf84a zHlaaKzq&vY!Njo$NP(2a>VlKK@@{-=`nFy0x#uFuF~1#C#fyT^pL8POIbW4{5Ak%} zb)`3Qf0=&Ys?~;o{{B_-JJo}9O%Y6S48UU>ie9vlWJYEir((Vv>GSFyEO`kG&gxo_ z($cX_nwGe1jhB7#6}%mJg9w7$AcqRc0ECwG4K+qXQt#%)%t}s10FD5J0E|G3eb5ab z_{ib{x+nv5EZn=ima^zxsdc#o(`1xHj?ln@wkRa+P;)@6`*+g<0dx#d5Du+$MGGra z#upexWMozFpmqNK(5~KbiHI>P7#-*kMDZxt;Lf4yC)tsHh=}q73(i=ORFvrBEQoT< z*9Isr)KoFLNz!zP!>6)roMiiMH%y$}Q6bXUp z=~SJlW(Bt};f;Ym@pZW^tpbiaJj*xGD&ZI%R&4655L2Q{*tOo9;o84zYtlMnSI|&u z%UjQ`{?6#TJT_B{oU30rIGn9-8s<9T`oSO~kLL6JsP>+1IPk<0u{tORo?WS+$UJ(h zT9j9O<1O-MmxZc_pI4Kns$5gfn#IF5&3TNSX(JV{w5%Q>ueEnpVov?(&ArSwGF1B} z)@vDWY%L8na2KZ_nY4KdJ^%?Ap6XB72@#`ckQ{|2D9K{M`yf3~%Koo|S@FqDps6IL z!ZSMJE`8oml8B39S{Ir9JkdnpmV4mvN%EEO3F4x&S*=$cQ>>uEnN^b{6e&_L8d_HQ1j z{KKe)7`9L4>%xK@rHdKm#{)%`LBv5q4Y_?EOnwZ-4~CWqy22HWzn(|lw~*eIq=3dj z)0%qX8Xa~uH{i0p80)T%#_r4M#pZrI1}{o#xBjk^C9 zf)I8DRaWtqxW~&7gyh?hDX4_mE2u~DLo5i9u^!Y{)n_sg_KzvV9%VXq5F0uM$eyK> zTM!@m8nhiuH{r9y!HR-p=YUr^CwudmBas^Ch%7AA8srb?z-f~m7?{W&7UZfvO2L*J zcQ=?^quOr{#*Wl5&2rN)yOR4@UxLk+u)yvP31lUc_X<=d5+0Rrc*Z~X4%l?Sqy4y+ zl(Bis&JHiput{6d(1{4IoIgzWFnq)7eEalKp@ZQhgwf>xJY`|B4ENxs& zoq$UlLl;vKQ)7D*;5$+OAA5Hh6z76q46kaqc%|Ea|>|rZS zHSO`S=ZD>&;Bvy48ts)-`MulV{sBaXI>O@ZL|Kfi($$O>$p6U4JCe!mJekJL zYCf5n*6srf(k%vrjm67M>b#NGr3XIE2ZWv&Dfu|K&U^5|AQz;6LzBJBiC83(}MtHehyOPpyh z8UuF^jhiQQ{^&25pgP!b*Y#F36 zLWB@Z<{xdeCN<;#rIf-#HW(G*me~%W;PK5g@Goi z-DscEmj;`LwJ^MsA0bVJGhf`eKt0RdR3$> zXxGL!2lng^gskU@^JzY=4xxFcpCH=7iQ*3Xn&e{ zBjPvh??Ro$`Xfc<$62K*seDx6loPR;aF3Llk^f-7}H*!dhs^!-cC{RM;v11!248&NxYP_*w|P|cL{xQV7T>rh{ypW!0!|M0?XujfSU+-1I~^=aupS;WT0L(+tKkD{2}1u zmwNVu)wXU2={^|Oz}7vVWv_xJK$ESUlm>l$IC&nQo}LbK5jC5MN7TtH*lEAn=>we2 z?6}O-J)32JwDeV9(9c|so_dSYsyQh$IXM~pBI=$xs&Duo zOwJEtpe6PX{Ld`q4)-Vi&-z#V4?LKM@hAQta0KB0!A32=;6L&I$6K&$u{ZpW4Z#2C z<^RC{1B5l$Ln9r?Yg+@KN+lz&Dd`49RldnB%iZoI{|*1M{fYm-0vhKmOnF|F2VMR{{Y3r}`WIza49CIB*svMfQn{ zR4yIZyx`d&X1H?GsbIEXVgEQ0eTuZr1eEB2pDn^FK)yM%;KHs)+ChP69vn8P^S!Ss zTGKIrED??+MXuP#g5F0=2abQ12?$gvdS%%U@{%V88F57z{@U-_{GR(hp$V{^5*dPF z_k{epcQZVm3?+Cz{=A5JnumQK|#O%b0lEN{a8Es{?mn_?=?> z|2opVi_%r7Oy8(NDW69@FOE64cP;S1#4m(6?RJQH4LL$m1o;1sxFpK^A|1>428C5J z+k_@r%3YItzj3y-bh(M=bo%rX_9@Gcix$IJcJn<0VQh)ag;R!C#xN=9V&BzIY_uqV_eGScT(rG9$<{JENY zOS^8c&a}?8?ymREuD~wzEUpuTw+3_VQe+A6+P~;SA&MpMS+TYgicdyow2Pc*BU}1D z=(S~C_J&-#CF2ClPbHqDs2-0M`SXIWGxXOa_%zWJMJ6Qs)4+Kf4USj!Kv%mR7K!?W z?ANxIyc!npChYtr?78t_ZB!oW$BbTuoR{$~nTNYW4q`E67_$;N34`%eR|$M_JAta6 zSW~i*!xPI2vVOy|54_=_QN&Y5_@h!3_aBYo4zbusKRkeS_31tUuh!t5TmqG)m~Y#e z#H(`!c1=qb3Z#Rt0%mQlAhPHoEdYss8o|EvfkMo9HpiCeBw0kusTsstG{{{kyu=rp zE-A$6gQA%$j|ngq*k6vUc0(ktuo_n0S6(I*WGvWaPPAuzG}NlD+X9t6MsgijUWSk; zwWz{qQU$eG;SN7^SVHA`&G>>sFNko6jls=G5ta;rHzewtq9B-6QRS^1AmTP{a{Q=I z8JEY+jDXuPk4}*mYt^B)Ei(rt_~aLxHiLp|c0}<=m#jkOK-0JAvLFsaT}V2*9v?u+ zlF7E6y<-l5;pR?7gnS86NIMbutnL&k_Mi2Rgd9fYzq9`2|73sie}eC^ zg4@b`;pVmSr#|jq_1g;VF7tyM|6q9Lx0PwER>fZ)t26k@Y)(@_>|bgseuW^6OpFk) zG0{2;y+-*SS!Q?oR3HCT__-(JNQ2;|n8D6XJ(GY$xYUPd9TCoflTSi=%~K_jLM5yd zZtWhN-%6{t@)L)fC2L79IpVnbRHRfXSw zJ8d*_3-h`Dba>w)tp4Wkc4;F1ba*yIDTZQ1^C~Qbe>yznM7;rWfWu3Db9k~e6$_3# zKI8*`b9nhQOD^cuA^?XcrbIShx=Nx>IZsu8{}+dMgiavZSkdZKu9!^otow(#pniy+u4zK19 zhxh5=Plp#`8x{ji3Sq2SSe!`7L_AqL3!Rk$2#QrJmp6;3m!qMhdNU*!?>i_Z1`4Ui zEQ}=P6qY2HF8~fg{X$rNgr6l;$*(j^sT zg>|5B4$ofyjHH!BeaxImZXU9zgdSGqi*=qfw2GZT)UUF_SwXTt9UiQ=b{LIOHbOv)zoqBgG>7~-OA;{$=Ly6GMr8W18f5}1(j$vqVSYtS<&KsC zBp$kg9{&8%(4z=iKAfgJI;rS1;gQQrMs&a_pFMd*PDXHO8N#K@SHzzh=Nx>ZLNxTM zrkwQj87NRXA$tvp9?8CRa7pKkT8!UteN%z%UhGA&c zuBZ(mj$NDQ2ODYG9N*d7NszG4R6-zWK$3+u1lNmFb^S3OSbVr^Y6|oF90P0)@HIaD z&hlMQV~&KA1~@zgBBgbJ!yEs@;SsHf0~}uMo5MSMb9gv!4i5<{(-d9&&EW;VIXv$- zhsQPWhr=^{b9l<)d0ly!+JYNz4o|o!b2R+T;mJrJfxS6Ak3Srqt~Qcb2aObw#RCG4 zuzFmGMR6QSv(hfOxVjR8V>|vVOL@QpQk4LikGhslY$k^;&pZk`kFM&|?IpFesNZm?vysyY)f z3V#^s@mxKMqUs4A9bn6)Z(HMpcpITlpWk6#^^@8vr+qykK=BWMy#GXy;}0Q2SzedH zO6pu0ueS_iUyAaDXQHup#JohowaTTuVYrB9R4r%j$fg@ALl8*`M5Y^^Ezhcs5sW*s zaOFv(M87I$gV?(9UQe$aB14eqseEM6SgNEcgQtPswF*rtS2RoKrealXr7Gcs8%>}2 zDWu0C_1_z?Nf6rd7iPqh~2x9pr#i7*}SwT9FaNrYsDi)7;#g z?h@NHGl4RSGDNjwvRVaO^1-OpC#4y%9M!U0XKKt%w(pmpRl{76w;{t1`3!JYl}WdB zEFK}|)7C5Mc`Eums+IQUee;;|M(t`%vySm9c&5&e(8_k55vVAZkUD!p!v;y+tCiTx zNar8QWs-}_SLc=08PpR!qjmI)eiw(*4I>@{b#be!7neZOhO(Ez@~yYJP}5NV;#N-| zEh$)xRi$~75f9E!xD+UvD=$q4T(A_V+_choe8<8}pK75N5I7m_7Rylu*XO7xr~O6E zN@K0d*HZp{Q*`mbIO%H?KoHSX`uox5qIA)eAZVJY(UcEXS*;hi=Q&ou@>h@I_||9i zFuJnm(T1WxX}>`{NABljb^yd{N?MnRGva|%2lln6`+8BDKELe8ox2O+&8uv;9eZ3s zq3N!xFi;4m*{`Chqo-gOq};wwn4XP+5+$`4P)?!ly?*SiDEf`z#ysNpqNhl&=S)S5 zSm_Rrn9FvBv^u7Tn$?Ihv%g}tTq?;Vxa~2O9iRMhDU3KEx5Qo5-k3jIcTtOMB^bfk z=t`$mirpCYn-KvB@H`?)qb*o%O_o`nE=#FvuO2Sgk!NEooRl;u$Og{8700KdzuQB6 zV>^HA0#;O!{yjX#?PJnIuKF=3&5h;twM&CkM^SdPDE>z7t`*CW`5;=MEDRJ2m>L;) zV?uy!Lcn?g2=*KqFO*yYzBL)|F*$FOwCicgsk>y|uc0pqdJgC#F*+kL^a=P?nWQ&K zHqjA%YSSNNdU2?s(U=p!56ECsP5i+^O@u>CdbCCYEEB+S$zhwM01gkYWd39P-yB~1 zk2iMENPo`somx@@N%oTBtPU8RW&3Nlnfm)d%`haQ?VQ>@6HvZO2itCp?h=kM>tR*BFx(hsGCHcw;hJ+IU=K*+L|8%U-q2x7bQz(JW_~Znj(~FWcic6(0 zYyd}M96C+-;o}aX4<3EOhdRgDRq`SOth&Oa!Fk}A+@$4H&Nbx195!l#p#t#dBjVC) zq*rG`elS#iuwa5-E>9?Q0Kl6Soz4#+7!>iuy18cJnCWv*A_$Q|bY^T5Vb;r|av?-} zz(}Iae7R<7zh)Yo>6@N&!$FTFl|p0#^z4E|U)w(L&^b&$UlZngM|M(-avoLWdk1#H z@Zz};`c%!F2??Y5z~_GL6Vne2?~H+apkcc{m+u%y&_I%P3+xtlBMm&05Ll0{b>S?Y zSznfN6P0zFOB%Ea{YDgV)+@mOBRBfDT+-*B9Z&ZIuJ*HhWq_&!y^E`0?HC1oXr}t` zeg35Lvok>6b^F|P{P9IwH#1Lkgzuai2>_PoF!dqj?Lu=3Ao%cFO611gE{0M}J(Fuq z0f%lFw!@RRZfKHRMi@>n=Ea4(-GzH_W-so@>7@seg>a1!_wn`<*pcW*#hlKVhpfUE zaTP)Tc|nC^YpG`|mCvwcQ=~VXah`}}&GDYRWp@b=dSnL?tP802&dpZUobmJLq&FX= zeelcN5+Br5HY4Y0$<}ZSCkK_a^Qn-=cnVz0x}$IPK2*`P6n6cYs&6Xg^e;K=vjqz5>&f$K15I?qE#tX?2B zhx=a&n+HJ(r0@{Wb+~+We>eg-JjFMM7oEhhDixI#)yT>_0r6@KH(vX&OvHTld-C_Q zn}ise*mT>G1VQUjvBS68%h2o?B9EGxjxl8aha_B za3>`#rHqcjTo)F>!RJLMUNstXv{|PVvv-69sK1zn_T{aX6^>r!B?>Hd;z9UN!fEct zc&Oi1@kniP@dlcX5bX7o6kWNlY&p5EL{tLZGw@?xn)DD9p?+FtoE{pZ%IMwZ%BAB6 zQpk@YBxrB2tv~bR*j3uqFsObhc0R^y&E~0KP_SRjxSsJ06j1rPWPMYYeVi8yTc`0g zw5uPf1pS=lVu=IF#6N>7l=Y>&z_eJ5F9l`T;&B5Yp43@hoGt+3joobj4dM~M zLA+g)-aVXS&tx>t>tk{gI+)`ixh(M`8UVyAYym*L;WvmE_XhDy=M6;w5Rcjp0P&yz z5HAb>@sQG<>ZK&KOhikDA@TqaZ){nFWpEJz+t|7m0P);Zb==8$Xr6U9si!`7ZpRQH!n?>5*ZS zV*Eje9e_TOqaLCiUJ=Su#XB-*m@=YXI@k)crCrxxM~xzDh8f!V3GgPHvPiEz3QrJ_ z-MT455L+U4qk*wR4=l6Li7LDB1bEF3&!ZQ9T=hd$CDdg)KVK%mMlo#J-l&Wx2$j4{ zHE!;Ti=Kpp?)TV@J`O|VZ-&y6w)C(ig_PV$fW!m5G)hPg~E1T zxd^VXkGMz{dpJmRG>N6%tXVXFB?ig|P$pHkoHvKT%j0?DMMMxG)Tb{Umn&+>N?y{? zO0<6Z6FAyiMx;H+$x1=_NSp@<*@X2dR4n$$Xk)LPxfs@?fboD>@Z2f;sHA<& z1N4E{IIFg7Qj5|*DhJJSO7SB+gK+#^Sn1g0wC-CRUgOU=eC=S1E{@4iyNvD`C`#Te zhGm9WktvZQP~MYIv(ypYp*9NHlnvx=F)k{9G2dJ;hbr#Xud82+mJc4IfRrywt|0ZD zd!>9B5m@;B{WIk69cc{WDI2Rha?8%&%m`?S%h=o+^^g?TWIw&Z;MuN`s8$%Pw@)Ps z$VrALIfnYDrSUE)u%lg6#OUBM1Hc0P6$1R{;pE5I+loR~F598C1nZpK+FH1$*!5K+=}pO-AKJ{X~6IT%}M4*bC-#Ata-lpyAeXdQ8y=>dtdVo2{o6i@uY1!v$S zlg=Z$7W81$`cR@(oAFhh0(si16fKV!LgrQ+=0xJ^6Udg}Y+z;Mib;MVl1Yx2ad6ve zP@4p-8+_fb4YIQ+d;-dL#+BSl9AgM8cm0`mMtEhmkMIj*;y=keOz2Vgjpa&4F@rV4 z3a`Yor(>p?cN3O%J6Wji;*jQ!*_BZ8Zmigl`;mHVv+O4)q&5hxCw~fdpSuiLHMR-| zLYkY;$WDMmjuCLB)rxgmF4GMCBE6Ld6(;zMDO(Tey87XCVmc-wj2#=*>v~#&E1DPVxHDQLJr1n>|)fR{=@4>3=48>2fHvg$;4vS|Yj)x2q3WK>z+>juw)asERxFT9e=PF%~vV8|#y!hhr~ z;UC=iSsr(DL6>leBFRG%ZUJuLZ1!~VY__BNb6+v8=>_g+{sB&Tfj!&ivT@+O_^+eg zxy4^2A?wPF*SWV+i61N0&1GZiR}yZTOv06X>f~8g<%J)_=9aZkaLK~g?zws(7sX16 z>(*RjPwUo6d7IlDolLU!h=hKpP_`Y?D;bb*e-u5v_2!9QoMl%l=Cx$x8XknGl^$bk zNMrDHe?o6#J$L%(yS8_wT5EQOXeN8sdgz;dm?8f)PRses?`4brB)TTurZ}6TP5P13 zm4IgvhMzYU%9Q~Bk$ouENu_i7y!qv^GwLb}wURvw~YU3 zPhdSHA_3bp;6y$4MBLBd5m2aDux#YfzEkCBEPT1ob5^wPJX#EumW@5%52FI;#XCtxxTlN&mItxoLSB&bUOb&-nkQP;;?6BiH?&)nokh0{7z2%_+D!Z)U}MVAjxK z<~fmR?KzM*!g?3`f@2&|+wb0{%n;te;F_kM9>+ArMp?~cSmtQ@{pX<2cZie3!C|UE zW}QXkFEc_dq!)sjrzB4c0o^>23GH-y-!>+weg5 zTPf=h^A1VKgrLyK~Pr5VY*6scB5B6>HD=!b@gU6PLclBK^ciFf0f_wHIv1aDGZz+E< z{VQ$EDd&D9$TSHuqmI!tc9a5U1>(4KvT8%r@r3O-FUhbTq4SjH@+L4!^7}9@{tL zFA~axEl_*od;KyFA!Q(dtHN`JfgoJuB4x+fsoW)s-4i}@#1AC%{#nc4n1NX2dYL!R zAdsYEjv`<}!jvXAk7jb9|HC}RQdP$!ZkKI^H%8fO=*V&jH@Zzs&^6(Neg8wTwiUfK zUEKg0MolW*wpw(yjr0#aZIs`s^untZBXb@%Q1?2T=hm>?*$ypHS4|3T)?2`p-T5ctaf=ZPB*0|C8+PFbqPLSDN2sz+&~g~IIM9Xz378G z1?*E}IYQoX*k991kl=>P-8coAfC=(Hs**@zMSV&TyRVBvF9{G!G`{|X{MxI<5-nGt zB9JCwHG)HuSa^70Mqu2k)JbK39o)oR9QicaZGZCAFdRJrj}LF6{H>9@mk1fGsB+Ll zY~OWcd+C-SF!NGJN+-*@W+hXP+P15{qsqlWF4E#bkNmF*M4Lv|L>1exuMyOq#($rEF{R(8-meBU%p}1jeS2@HWh=#3bb&= zrs%I33loQXgf{E1%b5l>1LPT|1D}K3uMNJ$`Ej{IWAxX{N{Io24bn9=vQiQ#kH{Ki z^@N6~HI$X7lFNq1g5AWq0okXJTw4Z$MBp%wzzkHUUe^JMKCxQOqSqJpCFc;v*JjS*#IQM1oYe}BAFkmV3O%l}S<>p}#h(`?2 znH;@tB49{kpf*1nlUmr}9-&)!Cvdy~;Zs~VbSA{W70wo%6~O1B2#*l=!=`{t1M#Uf zngP`#PVlg?egTvRAk(m8b&D>;6y+1VHEe#s4D!*HfK<7A(ijb9#Y30WfI4E?LpRdM zm7st*6A*L&9x?*s4RypCnKa~+sAXgp?hbDW@d;;1s^gIBwO9-p0r?opTnR4_WvbsD z>v#$)*Tc0Ka>AVL<6o9K+$qF8x{TQ(+-;fK{}K!%XZ9*WUTyr^>!Ld(Ac_72h%*?& zJmRspWc$Qmr;ZBr$pM?^W%`7ywD@NY;HlM2F==*tl$zvRzB(J2-@iK5)IW7`FKg3@ zvGWFsml~SaV6m=X&qKF>)i0N5MXa2v()HopQl|ha_oC5L#}tgo_v`0ckYSfCzmxr- znXj8`!G>M2tQ;h9g|P;!l*H!^{!kN?)mx=C`r9jcY?-n}zPnLtQeoS*(txrSfp$f@ zawz%~Fm+Dh3IbedMCkx&XGZBr3HacEsZo#Gf@{4DZPQPG3dXU8u^8dyaFV>KcDLX#bFG}8xx9TFmxgLy(ebN@cT&2mLiBi zK-&tlO^<{tT&xi)Z^%$hIR3y+ODO(8jw2&)1m%U7E1KfAz%BDjfM5-&JIq}@sXGoL z;4_JCb3nKu;GiZAzeoR4(iQ9jxHll-K)M_vSWBvO3B?-#!PhGwLfTXlI~^psB55(W zb1G^xl(Pc4O#B1ZJ;2A0DBFZE7yPp!p+O0t7LV-_h;bYHR^VfA{i)BBeD}J0Oh+vL zZ(1+H&qEr3tN#c&3~;z&eHAhdy`;fe7Q9UN`&tnHjQT2s${WNvJ&s^V*i@}C z+#Za%OnfRChu^zqVHoNl)a_Q2h~L}h9*^JahNhRp7_Si|KXu?D{2w^+mAf5jTiFWzDe;7|V=Yw)w>>c8EQ z#WSAeGEmp`-+{b>H3+7TYfHM-I7#x=Onf5$a=y9J47 z{&+#Evm&6|3k}FNK)Yk-)NoG6sGhb%eK;bs~TOl`~s+@(5fs=_70Qy;&0Ar>9c(WnCxxFD%E>GUrMvpx>0Yu2F^|eG4rZu~C8nJqBf=ef2gm zQJjf)n_NWVNOCev%gi4;X+LX%f+#kr+Q#Ka|2op<_}ssAihQMJeq!Ii%H>(aOm!TO zE&@fIS6W`405|f~wyA4dqEAEiK$nL^f*HPX{q$uu!_1?%ZcIj#CEUKkU4H1ku2D;V zY;7#+*1!`6n7UZFm`N5+wq0O`XM}GGi7&Jt4x?Mi4FGs)C9zR|*!qD507%a+8czUqn{IlEV zCzMXtO&;LwbK$e9-CWl*nZ8aReuk+6j3cV$t+cF-{mfD8# zQhT6~slR_dwTRRGhz8&H{N;?D{SDVX*4&-qzi#G9(8uD@3p1R_{zkyJ8knF zz5#S0jHO>@+9MX>TIc6uCMseG(zqAjWUqV2D8P^cIL`s~bZrnCvkJ7-3S>UUnjYYZ#DZSIF+E4~H^ z#UJEcp{@_bwF<9%YW-)pv*Ui@{cG@+EW_J{Rr!Njjhu6w(G~Dn+S}%4n_53qZ{f?r zaxK^~2@^%ysJ}CWX}i(GBKKn?-9~84TxM8@K@C278 zmK2#ro#Y3xUp)$2hmwz`KTes=1vC5A5EE-G83zA+w7oATE|+#M5RAPPM8g0 zB!r2Vg-@*=G1N%RCS|)VIo=Rq+bC~QKE_O0>O3guOB7|oDceudkdue466RKX9gCC( zl{Da1q1HawCL}}#OZ~29OjIR72vOnP0Fm^zLqqguvO6ljXP4?8NK{fJLJDydSuU)|8|x9pD4yp2Ug zKDRH*7T0y)D!)YoU$vVO)hppf@K(NScmf;+F*U>l?)r%i$fyOQK?|3a>fZNy8!DW_ zI6JA?@i1=UR+0z${7oXyOpuW0!Ws6-vYc2S9FXKzE4)}CoGiKU%nn6Ae9OwDpKQ@z8(ww{E5{u%u{dLL zKz1}X8x5bx!qEq-`m+q$m0Ag-Mj$>A8VU?8u?Ezl$TLl%DrTm2a93yU|8S?Obz(y^ z=Lwu;go#UH3M}+NF3VITy|RK~@GF$qgiKhtOe9)4Y~vxzA*uB@A$4SwYLfX1Ho`aA zhJXGb3zEN(WgAgcResfbx?Rwvuts`q+j9iW$d2<{wkr}yBu>sL(it;Qkp6#$G z@lc);VO`t6JcN8Z6k&Y{*#WpWVO9XDBBrFAS72&lL5rrW{Uzq`TUowZ1sZsn+Wd}o zUs0BorD=3wot%E|?ecRinZZnN@(TU{Cnj~|_s?T3N{f&OET+^Vs~RD@n9moDjQ$eL zufT?I)Sv(D-#>o|)cqrH@jkBbKCbXSuJAst@IJ2aKCbXSuJAst@IJ2aKCbXSuJAst z@IJ2aKCbXSuJAst@IJ2aKCbXSuJAst@IJ2aKCbXSuJAst@IJ2aKCbXSuJAst@IJ2a zKCbXSuJAst@IJ2aKCbXSuJAst@IJ2aKCbZpcw7O{zyJ4+_5X`0gg3AE&sv-PFRk+b z_=y2U$^Sa8@W-L~zm!5?|4Uo+e@r2~k1PC7#ueEAZGh*0CyVgMN&DZ%75=zG|K;rd zOUC9uW)T2MlfOUk|I^99&BgLhk(8fWde$Gfk$k$kM5bV~CZqO6K~0Gn=a}Z#LWk(E_>aQ zgDM?RkvRDf`^xtDIsV1kmjgSjao||zITx`I?OPMzmO^+5eqz+X*eTaP8GgD6Y;Y2u zJGH)ct=MG5HjifhkwdWk%r>uFEf^7C`8e$@GJZeR@Z3xc5tEOc$z=Pgkb|VY76ys} zqnZZ72UkmiY^Q1h#=4U$Vk{DV_ywAQmSA0A0a(BwPax@F z{Ot&jmyW^dy`I5WVS_ZMQQ*bBXX<3rZ2{ZLPv<5$H?Ui!vyx4Q}Bb z5aDIZmITH5OV>5XcI5sZF>d}H5dPnWSoy{~bSL^GDu0nvgrjpYYROzUU^tNzg{{`2 zLb_0Vv78b>trtF}K`H%&VBx*qs6MwO^f1;LL=Ni1PmZGxxt35wS<=MAQR?nD5 z;AEAI^2_R>N+XOvjxDrHwD`>jl%EvIWYWJK+Q3OeNHK)z^pVCOY7c7+ml2Nh9LG)Q znBo1)<;=RD?~jFD@9`K%2#0HtY#S(QFm^+GjiViygWpN8>Z}V+CghVwW4bi;x;D^<6tJrZy0tc z#ar*rKxxyXQ1=;F*9#o--${4&za*{RrTZO=*UPAO=Lu!zyL5k-?(fq5UAn(Z_jl?3 zF5Tay`@3|1m+tS<{aw1hOZRu_{x03$rTe>df0yp>(*0e!zf1Rb>HaR=-=+Jzbbpub z@6!EUy1z^Jcj^8v-QT7AyL5k-?(fq5UAn(Z_y5<@{Vy%u|8U>`XZrU4@OuAZf&WrB z{*Ryd-%0nkL-T)1y8or7_dnrgmUrp?KauVn|28D@za-t?PTK!2-T!-z18~><9kBmL z>CW*#j6E>3urdELb=O`iR|8P@P5t--;IURsaFcFQ$(-bnd%rYgY`%cW*SP41*~)d?HSA(U)jEFjr9j+f9(Tofn!eA|{GUnp`nuNFtG!-UQ(;-T zh)I&yA7dcCto2!mt?;`rB8mGlwteO?`jM_di%HkkH3}R!t>o6Ve`u}Ma` zP9wP7Cp&14x}w<5vkz#xe9)S=&Nw8C>DeA!{f~N(%K`Z!I=LGA0v|&^=?l7O;ZaAZ zIaJP4&81%YM(Gm^LS-0N;PmcKNQ(Icm(D~@IeT=SVDxYJ@jBd|K483jEEz$N?6YMJ zwqOh`S+(%Oz8HY>NlKp#>MFe_RZ4{SQlNS;p0~8O&Z05~HLX;xo4K}Q*>H=Qbzc-{ z4b1~9&W`qF#bDkDFe<-_G!g_EU@Ni+7C4SYmP;(jW$$Rig)B&1Dq>t1O)xSt-@uqCB?VF5aK)>bk=LDl+<(_#gsF65o8& zk>&m#T@p;8rm_qkb8*3qK@zFV*yc#o6z|nx5cw0Ch7{6~k3=f?S54)6Voo0$JHLP~ zjin@B$(vY%e=jTv?vj>co&H+)rGRWe=?uP$AS%bhtpJRfIxc@~wdf~GzkGlgxuydy zd06zL>TS098hKa-Sk~<+Wg^km(<`}@H%k%KsAC}xB~S_77vcfYtk|nh!Dx$dsw1bq zWT%55WXGFQ8J(dw@W*p@`1bh%uov9PM~Qh~jA#2Q$d0bunrT!%+_fLauz4R3e(PD(=yr&^iy$FVtaMe8l zOBp6?A%(p%q((1hTDS_o0;8qMsUOVaa0PXiRK2u>|8WG2`b!t{pjQUW@J|{?WK14P zhPkRjATKo?N{WNTG-vagqgLtFXF`&X+uiQ3sRlY7nUw?ZYQfUR#ncIKX=CVODrRbIZ(>Ts_~&f^^FJ&c zT>t!>>E-3FHh_I+Z#Ma{ZbhC$HbK5_>}-WjJ4haiObA74WFNw4m%ss2T3QNZD<2pH zW+O}kEMMKK>dv#G$*Lk#w;S9hZ@VZz3}yfp1Xy_*M>w*SDlIl`y}xkv{78TE?%KoC z^&rb_<1Wj?e82ry#!4b85|9Q6Rd*8h3b(An(;kUm3UFz*ItMk^&7`DuYE z>O5aQ$RbL3$+@$^@FHwXQBD^s>8U@Y4qN zw6ipxgAqV;11(fK{KD{6|G{EyL=kvMsyh=N1cFpf$}h&bUvxY=&`yHbwGRk}7NiAy zdSzl|+CM<}qj!zPFG>awtiex;5@qNI99eCHH000KY}CwH+5CJ~tLOWJn7*biSVh~l zh>(cr_sV;1;ecD|8w5Mz_@xTaN4+2lXvR~HBsR!m=U2?DAKTC6fCvGv{1RhY(IG(t z14=an3kE^&V@C0C4{~Of9hN|lh(vj1dMJDT;>gsLZ4-nbvHsku>&HdH?FIX*Y@)QF z)-yOlHr(^9gN8D>970c z%tuR+yxAaa8PwVQJ?YYTGl+2v)`EVZ`QVIvK7Z(nd_HkJ3~`STmf!j9vqKW0X#L_I z{M$fi#@rbB5VB0r$*IAfbdsnT`N*0g;shavTu#i=DY&&D6}4zLSaT)W5l5v%AeH?n z^9I~%xDU;n7tKLur*)PEJ(j z4cKvNQD}3GpmA!2Vx+|Baca>jOwUO>=QohU(p0ui==X?KZ$+b=sBv<)jpl#ItVqyf zNZK+Alj7{!=tm`&CbD8+e@TrDcA}GgvHiS1cCVxy5S$uHu7dN8_IU`)vV@sOMcq?7 ze6KWl=jS(B%`q=hGFnIS@_MH#3M~k&m?k7`3$| zz*2QOz&@WlHsI>D$(W%zGKBnnzx04aij&onlTm;SzIYn*ZSRPKFfno84|&p7YQ*=0 zl@vmeox2Sz8`Ot`btk4jd|oi;%JM7g+DHm2B#Q@vQ&;!je`cu1cWsjb3i0UhE9%-v z2x(x82ipDZ9T&E65aHZ=geGmnCmI5D`FwN9(4tEMjFp%Mt@U_PMWd!p22{k&-R<}C z0E|66j07zt?kf;Cub;z)CK?(6W-!>|=-1J;ApqAG5)Njd;K5B&`qG!268T*>9%x=& z4QTSk(_G-{mpDpo9ei1Bza9M<6CA2Td4@&Wkj<_5&&-gh-#!Q~x88E(Z^I;Lb zKzw)qObHkcLt35-&Sm8gNJsp$UYgreela6 zCJDWQJvf!7k2MI^hQd4%%;?d-$-gCi?Z?AY_Vwq}ji9YfV*5qZm9;rSIE1=9`Z730 zieXtQPJeqb_38WyF)o<4KArr08j>VeE(9xF(b*0-ufD;!`aO4WM9{kfVRYe(cHUmwl1J{bZ&W z!;sq+axO_CVL-vqM>y>tJF;{Q;R&kO_fcc;7fQb&y)U^LF5?!JH0g>7OqzJ;w8R6_ z2Lw_UW)M=P(BNf1uS*yNRKXRI2^Yr4tSiYq-skQ!1p-KZZ+D=s0sZjcLZoE2_>5uT zD`NU0=OfT-tTtH>8ILt3P)gqz+6&nyWPMcJ5z4vYy+VIo$;Ej6_{U*_D++GuNK0}( zImKFtrl@CaYGs)uY?;I>*me5W4>y!;f$NN}T?^0bQ(MgjIMsd8ztMdIL#O?#mLu;j z2x5L<&BSY=NN$J8@R?A2OVO3JBkCfH1w4bQ76!IUZ;%ZQQ|`)Mq2I>@1RR$IdRp+v zmwar^{3w5(k2u@m!swIeE74`@nlkxhgGOsYyf~av`^koMZJ49JKqkFTbE_3kFXqf{ zy|0z>)93k)T;3{9TsxND-w$_Pyn@$HTXrsA&pX@Ns@ehx#Zgq^At=97^|Q_ALPXZU zxa~mO^a>bJP?JT&k?#x_nc$?!V#J%8pnnVhE_X($INT{Hn@#C8%)5&Q-l$Y^`iqGt zB4wJ|1?HK%s$}d?!jtl6F61G%nL#aGHhFEH4M>I2jScvRi8C`CuPl6{p=Iq`{>N;` zfx?z#mw}Ss$AnO2!5nHHEPluTRtY6faH zwW8^lgD2dp&mSnWP9-!ZId)vrD+*^h4{?Wkb?0lP8=!I(6K<|OXN4h;G>(R5YfV@b zXazhmebNNvrek6ie-zB z$lA1Qn}6N%aSg&sl5|vJM&>=r|7@TtO?O|&)mf$Xq#}wF3lHnTyVCC}x2{*q@MNlnA>|+sZ zG6s*Iiyw_*xHB`hSSkZDXCjSj*9)2tB5kcE^A^)%;uYVzY>sJS(p>9NA+Y8T&+h@I zPZE`j;K|J+AWST<*fNx7y`ShLFMlvp_Bf3Tb2JfwuOUe=X9Vp@`Qv^`5I3PX>w9h? zyvv7&(J&-Nam23f$32|ZoMpl|+?L{302;MkpJUE=CAhl;Z%Nn;r|Tp<`TYrMN7_4x z_kv7&&4)gvH~7vWRks{h@$Pu=7u~AJW&!Kr`tv!X5Q`Lyz(9#RMmN{GYXjA}0Yt=a z+oyA>UU8`*pVUxU2RzLm&fYFmGHVEntruf6sCc&D} ze{8ARLZ{Qlawl1nPP^U0urJ{L=2v;Zmx*+3Zc``6T#N5hFheoa!&A8IES%>37pI2W zX)k%A3^=D_SiACfrFKg~C8YH11KF8LT-_-K(XsWZ#`4S(fgeklWa6~X@b#;#I<4d{ zJs3N=WRp7B%l9jeNJ|&zanx})Hzianiqcj$S(FN_e!UK`Al1TM>!4KVg!NX+HGZ$K z@)~WoN*&L}xGrC19BU_5KS_8Z8?jGnFB-?a0t{=bH}Vzb$t_4V>QqN}mFE?;x6;uj zHVmfAbQIkbSIRY{8_9MQ)oQ0rpKcUY^$WyEg{+PZHK<_GYp3n$q&HXU%HE`e6Ijp{ zv==L6@X%|0+`n)a(N4pmuDY3=`$0dm{X7d+G#g#axBxdB-KrD?(Oh1Y#{0nz_5<_R zRr~5+iwon>R{tM2Zxs|-6s>6%g+t;Fg}b}EL*Z_TyC&{Zg}WB+?(SYV6z=Zs?l#=} zFnxRGM)$nTOGjjE`PaYqiKBTUbA7vlg3O!jiM_p9wqDem*=vGvzk^x)^#TpiTS1^_Pdiuu-}!ci3nrlw^^ zWJaoS*YjSZK?R<1WdrUq9SHOhW!9?nmEwJO^I1&|4S&@)!WtYK3t5itEyNK)B}HS) zX`xBS<*O>-R#tv;>SpEa#4NRy4%bS9HpioLk0)f5m|sU@hN&Xv=Ve`m1@ z^zm%@)sJ`}IReEECJEA!Pb?Q7F@5Gf9cEisMS4(a^n|UrX}7Xi_GWp6BCiS;_#vhU6qv-yaW67{%hqNY>%NmeO1bDF_}EWO_5 zT~fp$m?Z!>InyfFVRy!=YC6{<=FDWao5ZL5PSY9sSeoHGM`)_z2PFouXkaF|g_`5Oqt_6xq11hoA zD179y#IIV2^Ia(vhX#(>nPcT26yue~;L(+Jg~v*xW|8C~3v0CSDlqi|2tguozpJvJ z`(Vr_5SwB|Q5>Xj;evkllgBnSuq?SDNE@I!_@)Y46wza_vJFuFDe?{}jnT%yVBeWP z@YL|=KWfn0m?wxz@?=-bM7wk6t4!GfG&YpbTSai%h@V#&1j1pAI0yg8ie2EV9$MH2 zc)X&IPbfx2mb(`JjnxA!KDg^#=+dVq5x8leD|pVLXG<_(srs5e>PYtCT~|Nl$?F_6 zj6HaE5ZLC}|2Pj>%pc$utqV$H>ehG&93C%KS1CV?Xe@w>O;1id?kq@@e;Cae?$}2K zd1Okkij|elN+il7dCs-P*4%`PlYal)#Elb>Fd~hMYStWj_#@STuGK}q;{P!ays_gR zSH@0mtO-H!wVTNmk~(`+Nr7*j6zoQ0^kwtB5_DJ0bvF=S9^FBR%GM@{e4I1^W1~uq zSyNyh`(jy-M;s11o=XH5_xys1=|8P#&zY*bN9&n#s{)pzX^UX&=mkEtO2pFn`7((j zNPdElvg5Dnp8#Q}iJMK-R54Ru zG1n~xWp2yD^18`_tbiJ4cmA2ZtmxL#b5ktt*n35}ySYd&d{k#{T_Eb)~WPqj%k2T*h;6rwYF@f`j`b(+lJmsSjHZ&tYSyW=e)wIdof>o{<^GV zo*l7TQnpu22`*~z$BJnPC*c-7c}N8K0PiikB?lrhIfN z>6zVXa*;_FkR_W<{|MBjr_*qKtS<2{HOTh9qQ@tqTd0@e{|2eMN5TeIX@ zb(;DIaT!OGS_4<3*?yb;;ZS!?X)?kLoDo|b?r{=MEk{>O z%6gNIk$B3<{xzkAyvuukU=2Uj%%zFAH8*Zr~i7ehy~io37y~4PJz@H0@;E+M23;_{*XZ826H*h%KZ@qR4rIR{`Dz~fmN*L* z&AgWsz1IG@2qBoi`<65VZczkX6G!lu^zIv*r;yk(WZ1pGSYdna%wn$I6rdOyIR~04 zk>FQc*K*Ozx?x-MxW*2Hd=Y3$!yqL6BG)hB`Si{-wOc|z{<-{)yk)DX{dm-tfiv9r zc=VeOr1}d>#T|ypY;sP%pDm$@)9nsK8#shr8~Cy_boddXY%VWT^2J|#XXra;XgN^1 z)9Tka*E5dqb}PXOCLdmWW?}|$yj!%HDQJq2*HO<}@OtVK=p+K} z*+hC>O3A?WofV*1gH)(`P}P$i-Lvs&OGo_f{C88X=(?e&-(NwKl6DU~OW!Ou1KgX{z|K}*+oGb~HQ*n@MjPZ1{e1R=?8BVnQ-wo8if$=CymnKROH zoB|JIOLb{IB3XW0G$&JahWZDi+M|-fxsAa-Z0i=1}*zzctWn>P4)XRL=AU4zi#c134l&g6?; z`8N1sh9##qc+VfX$3!inGwx~8Hfhl$Y0<50_|_IY^3%>orf%{|NL0A_x@%;-6g-*u z=TGP-zeU`pb#IP~Lp;BOSIU=fdNQ~7N$=>Igh#Yn5cCro8^|zG1csT8E+&Dxnuv6TDWvSJwxm_Xt|hzjIRmiZS^scQZ{kn!m*s?oF0)7h|80 z!Es3EmeSw+%(A{Jl~K|-@LqY_@``4j5>J1TFmZn2HdiCEvgYR&d`#Hf^2p2CqCbv^ zC!PN4p`Q}V@yMZ;X6JIyp1n*j2f7OydAGg56Kfjq>2&h;tle>`^zM_bUxZ*?%% z!DIY4H(+u0I+cZ!X(nCts+^|qA2pGOE_sHtOA*t$9TbguUSO% z^txtqG$7Q-K!yG@!>dStu&Eh-bNo`93dbQY5LwlV2=^#+bq(f}m7O)S<^jP@+hCNG z&`saGV;F*GSM5L3vh~f422=*F5zO4YaS zVW>wmFbdI^2g%VR8DC+Q@e4l)tN!@D{Y5>$2*>GZQc@7)uOTbgm&&^RO`Z#PzPO__ zrhY@tt*h6R=uKRwXitkL*+rMluxA6*qEbbns4u`*y%G0VR(}%1gtKFB%Yox9kTWaJ$pkcJeXOmi4Qe%@&r)XbUG;@>i(6W{Y zZjiPcw6m<|ZPi+`*ewW~)zVuyar}uE4^_s2&xqm;uabtD9P>!qI9|p9oL=evgJ(nHMbA)yj z>A`!Pjy7n6Qdf9fClpE!VeU0STC@j$G@x`2Ax=hD2B8L%ysZC;oTC**kDVS`i&j_1 zsrcp9mgd#Q^)3c>WGf!R-a~BDDm?u|>!N_5kkXIM6<}Yo5|b`*mL~%h*HY+M)~sy9 zCX(qSM<+1zEhIPw7^i=~Av1a>9zUa>rrSU*{YNuFgGmFaj6s>DCZR^n8F|mu6i1m) zQ{F5lbCvYB+sJhGXTcvvx(M&|w6rw!3LEWOWm)&Ym-LVI{m0kQMj<(^S-2b#Jf3_J z+B6Q{B`c;s*1xTo$!uj~=s24A#@r+V`^;1=j00n9^+btj(d$xDO15JzKmS?i(Wncv zu5ZYHXQ=xwM_klOLsM#2UJ@yQz7ia=uQ!eE?z(ZWPylxWpL97SC6 zwv)JBV;+Psx}61~AQDX3Bbu}2m3aOp zkkjX;n3##`@(in;vkD!|V_PZMf)Pn*CqtKG=*yKufw|TPV~SKS7g<*>gbF4y;02;^ zMZF_~O(^C7|M|*J?Q5NTFPq#5FCHWwbn4vqrnab~|ARS0_4z&8wIA94PhQ?OsfaXL za%?e&E3}GBcBTx(fUK{G^wfDE2Do(dkuYr(AH+{5>Nc_D0izh$+XVdUYv&?^@1>aV znK%jG>SKwPZHib8Fp0@QHn=fA52;Cr&qp8#%WZB?V*;V;ElE(4?7NV43*ImvHsrG2}e2F@%R$%3_9 zhfpKLrQz$(n#jWusl`7?KCe)6!PHle)-v`?bm9|FI*$Wtx%1H~1VC-Vf=<_6 zl2ukZN_7^S`L7zER;Mb9x{q@zoIp2ejCD!$n|i@<+slJXH#fIS&x4J_VNm-ew@VsZ ztavtK2P8z$P87+ye9Msmj$vF&sC13CG8ABHvLUoaN-B2j@Hck3n&9lt&$(8ymgS(| zqvQ4|&|hRNk7=@EfRgyjtu?2Az}jM&QQlufrteUTj#?YRL#gufW%XtRdvt{5KcMj^Msrf6*0XhqU=`SYsFC z`&Ad-yH$j0Y<(A8iZs!Ke=P$CZ7tR|i-08quZ;(#70KvX%LDw{NrW7Rg!z)iOV=WD zo=i&#b6nE7lmipYWOi9XP=$y$WG%`wy z32!F~O$C{tf&3Cs>~Kb+Ettj`4@IR!haC(u6-s3ZLFb$%nsVi-YpM;+7ol2Laav-iP0`QjE7 ze=e%CmgnI5a(Wj~A;qcaO8&^A$w^*Mq zJxO3*o3D4NTeFjbU0r4nFlN^=i6-mvPb13$npo*+sK}3;1F$4XC7U+6tRu+PBdDNg zw^Uitc%b|Mdw(gO(Y5v%btweLJWZ?u`;*uo7$^NEp)&sE9dI3CrMSk?6;s;b3(w`3 zy2`&Vd4iH;D1?13NhUI_`C9$_v@M!GjYM^E~7=;*`nekf?l)|$y= z7!m13q=pJ1$9y)UU4M@biacRTPx$l4_RgVTCRj)|eza5tC`#Al>tJ|_hSelsU}l|G z&QYc+hjJ=q%W+q3a-=dcRUDr?LWwdZxmEvC!Z;U@auqJJgyW~i7@sM~kffBXHmFTD=h;^-S6s(*N%s6qtQ< zu0ZfaOW7^e3d(eyb%~)65Yy1r_nIB&EKk?hno{R{>@lno-0Z4?njxqxWPq8Hxm>%U_vB9K_DuRZcgNg)`V>%)#zGB!psK3X=8 z9Mr>WU51hVGkwqWLO@Xz!YrO5v_YpcwPw(@`S#~ot^PvUwRE2$Xc>mRx56AMlR62< zfJ29_JvDwfrI#+pEW*fO_1N{gi^qe^z&|e(i_} z4q?`#=9^>UnsHBtAz+)eK4XUIl5uhlsWW+t4JT~jh&!S=CUn5k{hn%{+?4fuJx$iX zI3f@~5a?<0_8UQ4k5LZ#ICwKsl-;5HL$)pt=vTavCggJ(LgP%8!FB-d!D)sL#Fsd6 zJ0DkxMU05Y8e*(w^9^a~x|VYdEt97$?{iNO@H?L`cMrY919O}F&&n81Bhc4V>ly-&fz}-Z9)DW|xqEWLSDCmRjqg}HjUrrNCP*>z zbX4f)jHI1oeVl}mF}W6IrAd$>(^+4LRU`;a{v8F#;>f9o$*Pm+Ef+2@3BG4=32Sqj zrS+0^ug}-p0r?~POdB+tMqPmgL{bTNX{I$p<8_n~MQ0;Lp|%*SMneYk<(?#(N!g5k#;{`W+#G0mtXd55nr5|J zsI&XmbkjRi(nL;oc2Ub88N(Y=fUce!u_8{GvAQt1>GWs_>ntIr_$Tnc$IEW#)TwA# zlQdb}F_?ngIlFK3pbhVa*C!BXhWEkLa|d;^g5JlI@uJ>s0}H9$^p$kqkk5y(t;^#g zsM&d4h-TPjue4j>x%V-oEDJG+u+43j0{NN{>u22sQq7h+itXgQ&9r7>{e0pLOn(>1TCQ=Z^({&?w~F$(&?*% zZM!Pl%Z;4h)Lmx)VfSC%GWC#cjz{euilg7$k{mpF^h@K$aQPCb_ut-13GsaraFAVHGJoUv;74Wt zUa|NW-p zzICukf=}~_saNub2k;N^3jh?{g0@6?K5+xK_w{#406Y4|Fy3$0fW*0&o;Nxc2Nb~w zI_VHYD!~Ywr)MpIB&J{l%J7apF?8RP#;`cYCmbnrMs^RCw4^bFU;y9V4eRib)Q1AP z6c1GXlOVJDj7a3cXa8jE&}W##@ZqNz3fxmNi~-;ibpU&`TMQQNIhjhF`18Bz6VB)N zee9v`zwYSQvnjv62}VUIjVTzD{Cu(ml2}6ie6|FJv-sjBFlA-;nn)KLd>0HVZAr=Q zWs}{@Hf}3mwTJ!ukyx^&n-V770bftn2}tn3@=xg%6opZFHcyEv?SM}<#{C31F$MSq z)2QA|UO7o08c}>gmoZ0tg0r_oeuCfH<9wnw!dxpTg)G0R%8lQg?BUg~jWt8&->?^UaeV=J_Vj|`n82Z!9d+Pj z%r?hYv6I~Ln{eP|TQXR#%futzuk1IqdtWi86( z4d$Z9b0f^FHjA*wXX$UumT$vVpZmAwn?85s=Ig$v$^xWqS6^(TT|{5(7z0wlNXgnb z!d~Mi48g$7ZFygqnBB!U-lVZIL(Jbnlu<>kH$3@_q!nb`e(R1zZl<*&MuH<2GHryW>w@zb^$aZN_lc zBwh~bNpJRZbPHj~~qXeYEF(>?KWKz_qb!+ z(et>L*zANw~6YcJ$w-9sZZq%KrzU@P7=G@t;|h z|1*=p@n4o*{~vq&-!K^*|8Z#kPhv7S{>y^W|ErwR{~eQIOATS@0J}GZly-r{#3LOf zF_0qq;S*LweYZ8tx9K&8S84&OWJfvjvM=j{38>}SI!nqy_WTh=E)Kg=(&AQHChaLA z?sdAry)(Dc6W0cnL&%lJ9gHEbaqh{7_JYXer~UPd^V z3<%S8D8ZrCGP-oXALWsaV3`ijT)%=4Fu9`ERZHzT1n99owY-`Y+veChNNP6*{^BS) zFACJ*Fus2JcKKGcGJ(Xw8aVLZ-a7v+&h-BelkuMy?f;9(_|Fsi|G2vU3vu+nW-|Ui z0y@mBoc}YEF|N64_k$DQlU+UK^qZ+8G#&;5vZE^V5CZB2%yKs;6ukf4FK5b@Em`-{ z?i4-j_gN$vfulS39|$`24{qn9jlVnWxa|rGvyWj^!m5kDUr+`+BqjFB>}~e!Wp@i` z_EGwmCcL_jl?W)MK)}Z{?blKV_{~p5Dg#Ht&Gz@L+ugf|&X%F>;=aDShYeo1i|t#n z`I$E~W!Z~uOV1Fh@FV`bZt=NaM=I~)!gHZVNG^2UySbJ59LbATK8)Cpq3-F6A14GK zX%_?(iVc6{3bur#jB4FEpWZa(qHLny{%PI-XqHLg^QDm!h|(lwQKpfnzmo(#5SW28 zxGp>BGoutlJ)DK#9548$^M~7y$fE^gj_dNl^n$zd9FZouPU40i7bNTCPSQ)oz)TQ z4_&M{$AIzj9g90EQOs|b!h%ArYp<_2*bQSDnTc9=oD|3X0n};ox(2Zc7-+F^X>X?u z=*We5CouJyd=1zr8ft--BeWH5iMv)FzjADW3ZK-&h$=-NJrgX94&Cx+oS`-W{hG`4 zA5|)zgO6%ms;$xY^_dF`1S>0VnYESHU00lkXg^!IuW=<^z`btvV^-&kxQfQwSS_QU^qG$0;e zH4rtDs8CD#+iZj@rljH+*jA1JHburUF!mSALJuw|N&(v0)ZIL`9eyY60HM9;w{T>& z_-DZm)%GHPrK1ujWMZ;`c z4(BeHePunT7dheX^M-KeYK|71rE@xF$+tL7K7?I74QL{?YOb1spV)!FsIs8v&Z+BF z+g^~DsHPXTPETaVGRR=qUndgNY^!oK+$9bZa4AXS3m;GU!gvU~< zwUKKv`fE}ysu6^j3!o4xoanIkE4mkqoY0yE)orb$)q|pDS!4uc2^lsF+d*hv^07=o zT@RL|uZ`XC15G!lA}3Erbg!o2Kesw@d4Eb7(ClRu4MU)kEF0aOTKzfkC5vG|j*dYL zWYoaNV~8~4Ws8MMVVwjbYoaf*+kF~hW(}7Wt~+4_j~DF~HNLd&q@wgsV)zkfRuoLk z{+mpy48$hFE!QtBACUcw-=SGf$|q&kK&A}-%nme_6OU?uVX653gjRg^?}j_#<-o@8 z8}~fjl6%N)__)Yaz@{1|zMS1dohy^2%Z|$hdGe<~m)pG|7fW^~itg8MVfe6Dw8xY6 z;(k6$5G>~)Y9P}E9>=aHyP;||`AwqO%)sprHM(zd2ooqv>;7b5Rg1`?qg(a(RVYM3f4N6`W4SZL zcrCRBP4VMek6EQ}weCFc7;EjYH`#}$D6XIALO-JH{>j0DhuVz zEJI!0dt;E0l`kfO7oodqW4_J*2?8?-(Xrc^#cba&N00B3*l=Sly%k0tIq@c7^c{Wl z@>m}ineYtZ$<6145oHq>c(R&wSsHczfaZxofB)~kV>tf{_xFEOA#CjbJ1T^eorU#( zhC#3>2jt566oU;VF-#$=8Y3u~!elOF5_R zO{WWP%1@^cH)%mgETIqdw*5o5J`TcqL=Y3cvsQa zg-W^mm0MM5ec^wckJ}Ad7Y()$=R~@$iw%eK*Y{g=D}Hi=3nw?tw^7xOt-a^&R+hR6Y!M4zb1oBaAv@^h; zI_?*~^F?z!EEkrHf&Vw?@EU}g3N~-(%mwXLC`4oYoJIi`(qG$C*P?sgKC89m(6|V< zehUZcm4gs$nRsufkPl&-B;ytMOV3z`Qvci*&pWo4=7&HWW1NTInM9@T=Z;s0d9V#Q z*376NLx)Se&}_etS&9TR%OT(K2!GBF7mde~Jx%>0z)ZJnA_^4d@Vz6*Sq0h8Bu<-2 z2!^rfq|+7>Ah3b#E$$Ige#2T2 z4Xpk_E-`WM^Pm$k?!P3gV8<2@{9G@YpA@6T%*DH%3JZ#5Ld;i;G?MM(YcN3JnU0cg z$b~i+7HM1vUvMV!w}Y4pZ`G_w#C$(H3W!zoH;No|m-;jibZ6~#GChr8M) zn(cbi^&2@G!L~JWspnvoH@4~)RrbKyjvu|$P-z&cSwSvXSzqnKt>p}K6S!GAtcN0K zztKJT&7Lg1`3mrQ-ff@_eNMk|W?S465d??(+6-{;{ieKzA?U-rGsYtrB5ff=+Ul7L z=L;Xo$zz;ggb1t z5zA1Y=JkoSs~71BCVSi3`&Z{uh{82@SHG`!P_+Ych&}d@Jpi0b zB2qi6gDe6-EE<;nC;rB7BJoYIZvEz#hWMu*M)VItrp%TI9CbXqIXTp#?_mKcQOhl^ zzkE-dup^>yf(ZfoqFk`R@nI^YyOtg{wr_^Lg=X5kyi z7bTlbEbXkf^|y(iq@$N<}~P8d4A2a z(+JpLw>S4J;L+cKP?-2r6a+k3ci@Q?M9$F;Dz zYp(PU#{~a}X({hK1Fg)zdf}W+F=t7D{8DTLRFgK*B&adHUe3WWX3}b6bi2eXhu3OVn(9jnq|MKM_l0RGkDGGQxtVlRhHNB`uWe}tWN^gJPCmS zsLi59g~$3&Dna-*Azek02#NK;B-?K8JiYB<`GVPr(E|5iv(@>4e0C3Z+q84E7j2Mn zdE+#V!zayp#r7U=p^!$}d7}Ctl11l-WlRPI_h?Zx!>s}~zu8P=mF2ufgFJ`X(pWmw zVbeHWI*-F$%E)*Gk%7w&?YdJNm=sknO&ipzqvK2{Hls z_i{0OA-VC;@!HGZ04Fm&p7qX01rVL~nm1@_o{Lu7aRZ^!xY=9Lqb;!${_CSg;g3&!1!eF9gmLSP+zplE8M-rnRlda8u$zu@tncb-2TdHb!t#?Yu*j$ zEQK7Njqu|6ay*-NEXQpc)OO7pI;0@FaW#Z>A8{Yca-;#5SHhSWLKwgC;>a3H!aA=| ztP2Zs>0J*W^cwtS%2F#oH4q%6E z$1I$Gu(KQRbkfn%)cp(FU2lHmc}SWKTh;_m*tG~*2-Hh#kh?yb%9#PCRrheGI#P^h z%Q2b$OSj|1fGUE918qKOUSZ7?lvxhM96x{vRCrl#N1m=D0uyBza8>7+uHEsX&P|0t z3kU|tW_3$-uJHl@|J1wZAC>`iL9+EY0l4&%2z)ISH+eTIz4gT_*mRP-0Lq=&v|5;< zuQQEf6F+qGq_<%K!;jmsYnNY^K24N;4x&+ad2OCV>b{vND-<0Z&v5p}iK-yEj=C@n zz-ooDj^nOys2kwqS~p=iTp9PE7;;N;K6U;vJ}!_alZjdAh4^P`*ws9d*OkyyxVnazfM*omDUMZL_3rytq@bY>&&Ro z(s6T)51t)I920j4P2u8(!I)-KuS0l&M#mXzbNRQP699vMdye>IR(Wx(=d7f0*b9k& z%b2k!&|Ik&rf2_=v3xiV2brF327!xLl-=&KqWa0Laxz&}URnC}Oi+`}Vsq%#+TR_D zqNl~(r~je1B_K*babRlBbG8t9$5uaLF?9;z->coqKvxQBsHRV}xaei66)j~YyjKuj zLnBVscrnLOhQ5#{UEFl{)jOx8_o*nn6qDJBr7+5CRxC>-cTtF<8yKk=%%Lk?oEs*V z=FfR%8^4Ft?$IU<0WyGc$>t9l7o})mWg4y4;~z9_TLyKcURY+z_fHm_LBuaJtY!Nr z01)xqwxb3ijzFpf380$4T;bR9PeJwhR%_Dml_~6sN{2QeaV6sXie_1@HoK*<^sU8M zi}nfa8pf;I+HZ>`V?rg@wlfPX_bHr@SPf>DwEZbA!_2cFnUH&$pRV1a%&M<6oBZ6v3Z#02S@!b% ze5mqdz0t9<-~_IBI?45)l(lSCsp07Yx~dPma^*=x!GZRw22hoDQKFXyb~1l-3R^W| zkAYpM$_U{tN;vGmU?VbTfqY(Wyhm;X)wj>HNkwXo@i=hVBEG=9tb04IN3OmxXfIJ?5rYPxs<~&XR=cLeW z@uPqpBx`Qxm|mE(H5X*jq}r)drgCrBYL#c@$g4_9I}@oc_s72647ioQ5JmhdrAuNtFE!8|^jYlZkC14T?>q%(jx7`mYKU zd%<_vsE3$c^ds#80ZsOnakk9+x7Z2#QqN{BjJ5fDZH#fFtb#mYxPO(7Qg+Fz`l7KD zQB{pe`k#R1O)lCJQ(l)OwoGNCp`rSCxa96*G2s$BxH1<4N`-QD0Ug?Gs)f(JD|BCM zWkGMAW-GcB)K*XL1#D2RENRrhAAzH_yFJ$j6gj}WM#$W8R&0d?e_e#c1^pRo-;NcW zh8MhaCJ-y>l%#Gi_QWX8J&zOj^!C|Ew{iQSz9UFkHY=}x52q(g-j?V0mg$6yC7ae2 znx9HybB%(KTDI&0$HVjR3QoQMD*msACh8?dQE@8Uk!i!F3(=+j`6&3ZLox)$AWowC6!rscy(bQ3mBfnql?T z8YPGp^A0ns$p=n$ixO}J+7BdAQ*9e)E)HM~%hKRMA~t!}>3$i)w-sCJ@D=@~=c2ia z80#HDjUMN9*#d@EbJk9Jvx32; zaVt6J1I$NswL`mb%8O)1hs*{Kc+(fYfE8Ou{1M>$D#2Hm;TKV4q(+%~qCnEJ<;fbHCx5pQJyXe($6JxL(FQ=0mFFv}$K zdV?A^t@4Aon08N9PENR#eukz!gFzb$u6Dkd`9vidA)_|shf3pVle|@gR9WsX0VgT| zq*bzHbi)keyzL#YOZh^xe0c4AZa%lQsRq?d8JwLh{XL{IQ0UKvw$UB!YetPEdkd?v z7IP^d=Gt#=L?Qht7S^*k-McU{%hG5rQ!L#;>IU?*EqW7#*|i4Zb_feLcs?H|*$YDJ zhHQBxYnug$L{$iXD{xSru7WDVO^L{bI|dk!2Wkq&-Xk?WKOZ?=X_wH{enBU>ngv|Z zO#XegNIQ>5uO=t4TgL-HT36r4uC8f&&wSR#B~;KpONE@6QIQ(ft&i45gq0?6oM@@= zoHMK85|!h3PUuAt?-qugWW7CJM=uncD5~@7%*`;jG7z~1nL!Fx+8$@iF=JGTLD2p= zYZQfH(}8s#8W6VTPcBWaWsn00W2o}3AEwO^hfpV*gX zP_XyN80BElX}xng-pzAd?%h{nh_Uxb85IQ*?A?4zer;VF+Sg-vv|k?Ew_`|evDtH^ zOy+G_o7m@Iz-y^EbfitzX;~ZFr(oc8Z2diY4_t6)jUH_TR&As1-pDXmw^nRBVkFN4 z)g4;nM}IQVwg4ygSr|rJ>2@7qlOtN`_Ui&=kdo~fB3hgswT4Z>k`WnhTY7yP%5uiWNx5tzs*^EIB_#KGb%4VNBu@7XJ zZOP~}g-hmPPy^DmKDDUYr}mqEPj+P3ZH?SzNs_@yW(NLj{bP?aUYH_-lB}dtsv3<} z-rN+~g9<5YjUU<8Ct*mUatGJx4|pEYn`ATY32h7Qaq??oKtSu+SpymgD%qK!;2E4?hDGZ&dMk= z@B1|rPC6RL**8uOXh5d*j0|*V3iXS&SUiEx@8o%m3}cJ`!gNJe7uaOh@pywS_7>r? z?WY%}cTc<>w(~w_fi4chi+(Rm%nUGq0>2}BW(FZ}X(j;E4|A?T`-V@p7;H*GChtl6 zz-`{(KENi+Tj!=0+2F_~c9$VnzkTesb#OH{BGZ}qQ~Wl3a5szh#1&3oG2j(j!0-va zFZ=a&D8ivGdD}QR23x@7>DRUbz|Z6fyzdpzZSEektsCryyMvOxr229lPr9FS8RPM0A3tdCL8n6 z$3wMnha0j!G(Zfijq%dIsmZCK92Ofx_sDIfU`cEOGxyMK;b3U&3-gwkZM|SG?2jlz z*1mN>IyMK(+JHS}A3mU&b#1Wbw;_LDC7_vUZOk66FABiP1e~mi-sTCm#;G!V!swd^ z)PAhh4{$w`_h|>S12mW`%rpn=$@?$>v^btP>P)~1dz?PUU{gRc3$WLoxlcKm91wxy ziQR^S$qekD8kicXi8TZhh3@kXhQ~QzZeSfVwJ^3YRm9fD&I6zXGxb3N4q3+xQ^xHH z`sjj@MQi-*oo-%UA^T*5&4MX{aR6Y!62VZx$ACi?S>u#{TjpFLhH#?%eaiqBKqG)1 zFb_}zBmxA2;etm13D^`YvIblcxfzDue)4P{?@`9sql$w}!MP2B#l#-(iA<4Zi30#} zKt6WI`*L6WqCRmzv0p6jm(c`!I$Qj5qz`Apgv!94HKT`!6<}=7EcKphI&!LD!j)-g z(Vb7>@t!%jWio7z-5Wa;JIa(o973FKh%AaJN)ZsyGhtv{!=m|e{;_wT+!H$yJ7{3W z#Egvt0C+;-2mBSn-jZ2*C-FgAdf#zq*XJ{PjF3F{y@qbrf7`ggiuqFAT)W+uF0i^A zUkAEZ-*-08e6R7oj3$o}&|gODFXO)ptp6D9`_-KJGS++wO#Mc3oJj-W5nh1`%e3p6irXm zWeXn)TK>LsX#;jGrz7Ouhl#A;4B5YE1LhF(6}5s7?QVqZ*Z7K>>Il6>eMu(pp^Piv zci@|TwX9+yXMdUXSHJH#HT^o$=^p(OzU<~-cFV8H{$V1!eOVE8gx2ifLmj@9nJ+^P zWdD#Ym_s@}k=>WqS4ZfqUP62x7o%A-f5&*CsMFLTD4;c7vpmr7lTtLe`kH6q-Er*shz*0yHMg@%ucgm7!}^ElWzpnJhiTG z>tChI+<}rQZrPZj-mp4G2h}=uBc}SjJOAe$Ly`Mk)4vAc$J;;MG~+l`4s(B{WObW#ZUMf@#)mw z^^jcHFMW2-jNI@#%A)q0L?t<}?}7#p5!TSv9b;&yX~N28eH_V!gAlB|mX{`GbK ztGCVWI6s$fpXMCyeCyQb7Z(@D#}^OoZC;+3UY>mG{FI0uZO2Nsr@4g$l~Qa;Y30xFz8^4Qs3cleu+ej5=-XB66VBS=EjmL4!bE18&d7*Q0-kR4sYhff^uR- z6^DhX_N=M)XsPzTq1O?@J)^=se}{XfMZe)jzrjJjp+>Jmf_sL5dxl59F{d(NM89E1 zzd=F2Ax6IeL%*S<+KW*f{+jbkLcIa+$DxAl6IFBE2%TPf!K_V}?u>w?LK_X2;#4#eoF+#*hqQpqT z#7H8$KgRC|b2d#+S_98@OY=ye2etr&2v zkZ`RyaILU#ttfDx+Y$^--5ksQ5_ zC3O>HktM&!M8Yp_>}bqHB0T}e_NN(Z?3kG`OFF`cjl6={?V1TkF?qeaJWGU1 z{BpUBSp`jM?LU)2?~zC~vU+yv)Kb_HxLil-6xAQZS{;nEv%g=50LMMXX1-?(PH{cZc9ka3_J_?he5rxCIhigS&;`4sU0l^PIDfJo~-( z(;eg1V60kQ)g^1KIjgBz|M@FPvELK3gp;G2lRe1o57?iT8wEE7yO^7qg`+zKKL zKPLweNWuPl55E_2@&MTQ`FO$HVRj973kPiqULYHg`)>;*K+dujHdfZ|6uewOHVz;c z4?hLFoIA+g#!Sr7%H9GjZDW^qa Lck-ezpkU?Z;$-9C1oCrGuyO%7**Lj*0sIua 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±cHfa({6hlO=Nt%DcqkIVcPlh1YhtxX^ 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�ffrq{lFuoVqKZbU{N0TEuE!x2m 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

3V( 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�vRdtB9-1eOlE`7%^rY2adTwhr@6&>F#dn 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

wnfnI)x#=M?Bhw3EWWhR=ryme2Cm7R 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

vUbnDWu>|eVb1mc0Yb{;7L)tltV-=4YmIE_{ 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

QcOS~7T4)N14%vpQC1^T5wDC{w^9 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

HHQ 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%0ARd)0=3G`G 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ⅈm8Zgd2*B#*kx7Te;5~&2g?KU!>8Q)(F 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 tes8{o@3TlBF-L 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�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%0A4Qr~dn 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

IL6`5>F)ttJk?6My3ZezS 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%0D;*jR`{;0BMEJT(HnTXZngRZb&92< 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 eWUWc6cTYuigmwL#-fe~Zutmy*kQ@R}B$XQ$; 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%0Donh2?6g0W@FH?76)9*H5JUHH?B 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 O37`hPXPtIuomy9PGX=aV&^Op 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
7b@Cc4uTeCAZ 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 AFqr=!U+GF&4Ts^|g+ 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

cR%NW?2zKpI;w3G?H;3|LGa;r z8HD)}?>^#oxgZl?-~ATL4Q{R2;K4WVK6dQa$G&pJZ3=A_H{M@Y>vs9_ZQU;a+u76q z`w`D0FBW<%t#6l@b^O^_5xMA{AO|F+} zPnNy>(o=c^lL1PZ&Zg&})#(kbXIr+Qiw12pdZ;p4V#(LaQ`uy-nmO_#p6iW=q&GVx zvwD_ja~+XOYR6y4yu7XiW}EAc zE#5ZApIfM4t3LtV{j1SZKco4iZ+HCNb>C}mef`;QUi#qn%ip>_yyu_Z_m|y2{5L1= z`tg0I|JNhWzJ>Zp>$8syo)1E)4I zYr%RIs3w5V8_jy@Vh}pj7~(NXWgp~9C;hQmiy|&wxwrdfj>*=fx4S*)Pn9+!YsrNa zH6Nf7*Y<07eaA*J7b8-yN{@tu$>qX~FvK0{9p}CP^$YEx(vE?Y&K|17Q7~JXSX?JT z^-P*Gd`r1DB7_y9gW__DIVk0NiP)e}KLNf4_T`;ioqC5}qJf<8Xcks<@^hfTB_;4J z=UEo&bc+gv@zg++DHa7t2jXyI(tO7K0NN()5Q=%wYfxRfgvOEZJ#5?M!Dcm4Flt^V zP6U#98R1~fvWT#la&uU=oQnVpMLmIl1qi5rq#okmU^X5PXMVQR-lS!(9+KG5p{rSeO|Yva9{9;1R@l50z2Z^8Fr z*HLcQiVa3Oe`_%8&gePLvA{^LH3m!*%Mb=n>bVy_Fs*2@FJyh#+9F|!&5_u$%m#_Lb21}DRG(## zi<$ScJw~c(IPPt(4d!1`q(q5h8KB^0L1h6sblx|d=kUp@<6*Z)@UYLlvUs?g*$Ls$ zK_{oF>BP>#q}m`%}tT=+J!gu+Ks8B zwRRaj66}sg->@}d^pchy+AiVb^6-tod}9x3puKixOucqv!YHo2DC>hNhyq!2W;W@K zrkBQ(9fd3;l^O)r6s-Mf&KmvIGjHnE8}mkU^?XOmky?bSleZ+SfiQrfD9}6rx_H#C zZBBYu$ce6l0}8atx`GOoZMd)Hp+W}=7l3MZ#fguOlUxB^-c=s5b+h2L_1@*u{}G7k z&=E$tpcKR$j4ngFcoPG36e#IXzfW8gN;-5Q(G4RBC2ep?##L~oA)_uXw7$@OiG3{4 zkHPzu&^{`V&`axaAYmb6DASOzw)&c=c#i_AG!#@sCC4*z;B-98u%R5+ndk@D6zc4= z?eXOb3QkB{_WHBIc%-mvwVg+y6TN4cD$TE(a`VY8onqz?x$J2U(YCVoXg945x}5P%!caaY zbkBJQRi(g9C-KcR+%$tGr8_mW6s$CW=5gUBYa&LoKs_zKNntbLQE%xI5`wn`M$Bc= zZUI*cTWJT32`Ru*uu&hFoZsSUV!jjhE>4~1Vbib6!%WKUL%T|b3?Wzv{naGLwh=Ur za@Ejm3z?3-_u#-*h89B0!p6{Hkc5!^-l$&;)-JTz6zqC>=h!ma|#A?%88@ZLr79hr%Ckfd@e zK#EB~eMlHk5Yil81e~I>uI8I`TPUP#NMtflE_B$&<(v^9Dg2U_;kYJG9S|SAq535Y zh*(x9()lD)BBlQsQ7M(mi3}s}z&km4Gf|q(vq-f(Z0jshan8C%1AjvDjdB9{2`*9Siyo-_v0GD2-u{4N3ca@q8&ClkVB*w zT7=j`ncW=eK*l?UiS$rbte~)1O(qao)Ub)U^b2RGgJ28K|H`Dg><&RDH9L}9&$^MS zA?h>CWY1*iaY#D^t%1m7)EB!5=W$@7D>x1sn~8?7n1*v$acO7(OU73R4hHGW6dcr5 zyYOB1bOQ;4m_iZ~8sTCV&T%DRp)M{tl~D&k$1z_ovv!<%FgEZvM5q-U#0>Qe1V%JN z%e;|6a}V$$oyL}s_`;Pjq)7D)cDsbcBkfX1t%{sPOzKIDQ-N=}Z`EuI3Awn0QwAcJ zddYQX6042$=I8-I?+u*sKrV-=fA}UQw+`ii6-efIyl*gSj*N9wqh<$)=_Y_;nluAI zonqgh6>Uyn$0OZ>8s(Y{J)`P_I;yTfzyhL;{7&()TFCs0h$M^$kQq4#7>$(X0L9fq zOo^-q$jZAJr+n~$4D8x;c1^d(x!r~mmCzH_KLk(2)nlAni`!-cEL08#V9^R=Oo4T= zN5VvpLWE>YL?y!BjFkj-dk8em6z!#Nb!t+Ec`}JeX^xTkImeiUpN1I4YC^mnW+kK< zG9Rm8X7L>yOsf%zLu@LNG{<}vyotbwS1^}ELxvjw7m&ijTVxuZ9k%tI0EKn?&hJ)7>Iq17Myu~UO z7@`IfnZ_vUV`B2vn4*;wE}mnWnB;IqVKp7jvQbb^h<|vY{{&%Q&9^EGc@$K4@zLzT z$7ppni`!)gjf)(RKW}7cWCqIEXRL?=#^e<`kyo zqXjZ4{~}~5>8Oc}&7;gTg>DXpXU7rEIT-EX>-Dfl;YdvbiE8qOOl!__s*25wM@=qt zXe^pXOLQFZsnJEtG{->ad?Sq7&DkMI&P>g>&dWh9Dg(4kO?|Rn3|!Q2-$K< zYiuZ9i8OfdpzXXe*qm)E-fJ=mkIM|gP|9aKP4y;r(+ZhXNJx>QbOOirDz%a2BDg4I zbY-`Zgo)eLU~5}5KJH4s&V+H8oZU{tL^EWP*%o9;vWWV~P(y)>jZm>DiZoQ5jL}Y| zoZOaj7a?PT%2_~*Rx`Hfa2aBgw6|<20nTWmMa=*>8OrOlGuVQ zDH}DBAt~PwDx#bz4Hc(Q!qJ>(P>4dESjGaL2;y34sAz?ZnOGxBLPc$4d`im%u?&Sj zw&TNYa^GZ3n&)%Y!L%8vT8H3e(J-Fz6BU-kP-0eqv79YsnX%oS7(oJ zkS-AY<;Pv4iv{xMKc3}{ZdUL&k37=+;_qGja@C*FpZX$3#C7vb{@54c+jsN4{-(e; zuKtEHqXEqqvo^kw--ch%!8c|7$GZ5Y&EMd2)}hluAF_^L>%y;H$8UA=Cz|W{rIeb55*tpxq$pjBzv$wb(GO@lPeT4-eDTXC@gM0S(w6}IxoWgE+eZGl5x&eC zIk8}f5ihix>&RVKk5&EgW+lI63LS~w&dIBHJ^1F`$BzB_*jMQHh9B;K0wF*237u@= zBj5<%(ud@)yZq%7$M2#4J^g_nzVgEJXYwz-^3-!rH9mI##>Vk``u*d_pZoTO7k3|e z@!=QGto1+f==~etT|e<)_e09``r!7<-}>;WQ(t}0?$-wId-Lv39sBWr zI{l3!o(D9>_n*h-tIa|0%=jvvE^Sf?!neCQy%e7sjmEr@*cagl{{(N_-o+Vn=5vG5 zGk9cp>qkJc&tFIDFb5C{lNgwse@%FDH73-^!zV_$A&qaoe-m z?(}rCIjnk<(c1pFoc?&HxjCMVs#&wQJ816zhn?QuVC^Q3xkS+v&sU`GfQgW0NSy;; z(d8$$`k*k}wT49EjVr%XNZ2v^(A3DMY8nC#rl8A*Gfr@ib zDX6FqE0onhbC_%P+R_3T+u~pB^`F_AjQ2*WtyCGuYTJ+_MlHHrhTE6~erJKp=g=J8 zgzpS+j?>|7TpdC)YARk<+r7(!@kDcGfX6s%T>pfYp-D3dEiJL-*f@z`q+z82HnEf$ z?xNhH*_Log?DuUp8EkD;s)Woqt zA|i58<)r$9y=tmigy_-oOz?<|we3&9M`Lt;A6p7q8lhtgS#}-fS8%-NVDLItoJVRb z^_iJ-21R1mIbyJF)Dp$EC)U_#z!o8+^!XiwjR#Hex;6Qa8*jNWJ?{pd^ z2JzmZ5HV(l0g`CJodyx33}_coK~`W76EU@S)zGd|G*f6=pu!PgQxG)*!Vb1j@Fn4? zDMGQRNQ39y44cXNw$a~2L1<@B8C6-(3mFa$G^X95C`-)6mcx;Ix$ZEO4s%psQcDol zBTYmGHVI`1(@W$2-c(iI%p(I!(1@lU`SUUXNeyvxRgm`)x^$#;rUnipcf zahHbUE1Lu8>??N}=8%G+b_LHVBFB0oWf4C`WR4G6qJYk)$P$_1gYF~k9|#(vp@|53 z1*5gbR}{185(gDxhB#;nVw&Ni1QE;3mPrVyj!O(BNFI0kouFY|yGz@$ehOpA?>T=w#D-3jPL>Uq=& zpcqmL2C9P+6WBufM@B7_7yyoYOzbzSF8@8yHLo^iI!D1Jc^sHA2#Y8)7fSR7+@UCu z5UMezh_oB;C2rTem#*P4!j!&DL)nWxOk=%RZ4E{W^_QMHY?z+jas6cqdKw@qu}J|> z3M#51VpCaksB<7tFo}{ZV?r~<&S0iMyfDF}=ujLvXtWjG_<0>8RM4N68L~w;MTlG% zRWA8cqM$>^St%jM*oPR$7ZsT2#B2-mTu$4Qf_Un1I@lZmlY((taKzZ5+0db65{GO7 z-Qom(;ZD_??oBEkx}lwsLf8)RL&|=(6Qo*n;k40YQ-etnyjI*DN3uxBogizHjBI-& zt+&U^)KuY{Z$p|O0onB7fNugO1=;lAh;2iSK%RBMx+DsPgVE*QaIlG`aUP@%2gAqD zgP4Ir9)uyKh(haw;_w4$ICX3|w(1Rs<34UE8V(`xOn4_|Fb(f)P{Ffc(_XL|L;SZ%8x`9;9K@7H#HJ<5 za;RgHYrb?`(m3Y6=|mKqRF@{zblYO0a=~f@ zLPnrVLd6L15ZGXFDJW?OPwZnG!gx^sL`l447-O4~-el4nZE2)NG6?Ac2LF@vxP2#n zW<(uL2Xc6fB}J@S5e>HpdyvgzfEApmv}{9UW-=LUYOv0Q$$m^b*JWYggv>KQ1`5t` zC1jx@GB0y$iH^{SO=tUty=&t=jq(>6QYEI3;?pSzs0{|R6DTP-rv^q2S*Q>q@IpZs z4>idIv6mY%K8kNsE>epgBm8jJDmnc_`PJB-L==oj+y#V~91%a}WQtL$Z9T|ZKsk*L z=`>^wVKqgH7SLfNJWSC7^|t&b#;2$uvK*TxxRMZ4ADLKAXl6Pz+R=VNBOrn0MD_l@ zLTGD~p%M?IM4cqQcJWWR1N&wHj|O!KxD-hiOL&kO^WbKPGbW;^v_2`2v5-mE z!p8#AjASGe5KT=^84c4Vb5}$^D($23yywFJ^#FOTW6x7qlQ@4_Mh~me0DD?11 zS3A+oV?0+Py7f@uI-Xor;2SRbe6M0d=h0gXTnS8_0U&HnfRlo7dVu(Vbx{4w>a9xB zy(EA%=Cfo4T?Ji-5_K7bxNy!QwGjPuRR`2Xmac}AB3!Kq2*t*@1rq7z=TQ>U?FU^H zOr1l*r{*1CB_W*!An;D$q#&Ixpt-H{C6`Wn)RrWOu3W6AcPOyV^T;ro<1l>g%Ks8k$U51teI#yY_C@Y*;^Z2O_eLy*ONZ_!@ zRO~Cc9w6zeb)a0%4I_ytCwjmNl#_NVVO&nC4j644dw0~qAkj-ul2A<#49kTO(|LzNVcD{`BX*ghj{asq>yIp)3)I8>%5IDrGY z#etv-qzrRj9Hwgkp!5(>Wlro1zcD&Asn^(2)E5|`!z>iyBdFGXn>XO5d_7rAQ(5ahE1lxF=X?-ZP;@8CN zm_fr#!TD*|N|7x#f`%jnE;M`#K=U`-&LpH9@AmqGnMQdQ5=DeVxac6FNEfyQTvSIy z6rAHpK|w`C5bNMQLhpJOj_f3~n~Y~Y8i}ZIHiwQC;avei{Y1ReheX7i14=eW~p=dMbiSQxRMuVDTdrc;oP%k5%pv)^?X-pD4%t1Z})ki*d zlaf#6v_%+Hm>0a+l+4ougt(MA=V@uD0tiZo#5K?^4CzW_^QQftO30e#a|z|bJgXFx z(*=Wi85zx$hHh$Lq->L@h5;ht;U%$f3`pZ_Ef8=aN0rak0>u_=wd0?y`hXy{5#V%E zXuzle5{C|QQ5j-?Z0C|FY%m@TbDbfiPB2)~EA#ReLHjkf=c5nEV~YZu6lDl{fFuZ; zgL4#Dfb@Tg8w8gE4*Bw`Vd!wjV?)QZa~$C!#o^ejvqFVBtbi#6^|Vo;`HR?x243E? z@#*~jy!7o*o_t#@zAh6 zh}*COEseIZU9|1qXmeO;XvAmeki+}Z60JOWd9wI*!Rml8N-YZ^f-FTvoFX6zu8~QQ zQn)+~=ce1e&G8it&yD4XgmQUT?gBC>KG9V_G_B%qu+AaHIDCk5x!0P(q+VU%JPYA{90C-%9zSxpC%YLh0k zDj2#9`psFFG(j^Nag?{>7baOiLd~xL$}ovAzB8u`30EN410tV8s{2TcJ z)KTogBw&KX+#~7M6vVT@Lsh@@PNiU-CZ4&utM996DA(T}3^ym$Xi|+Qn-vV7g3&7= z^gicaedkMH_e`;&HdAi1X{cy{O(=4=^f-S#Xf#7jr)636&7X%?tg76Rgwyr ztP{UfP8$u%Gr5{4>!heqQba>;5s2oHyQgzE3Dv?R!Tm{>8n(|Ns|rNSJ6F)i^Z2YY z1x9Ll1SnU{!;bmQnFX0)YZ{p!Psi5R5iQgG1-)m$zw4H0!w$+?TM zoFE~cxwtf@IC}R+ng*U*#YO2pgMKpkgJpbo!UPjaHfuyF%1l%-p=pX32l7EIFCqEV zF22&+A4V*+49Za^kKP}0>2l1CX+G0gr* zL`551R3^nKfs9SPeN@bNzc8+a*asp8?bCEboX)PPNKO=(%1e;Q8WuTAiY20;HX;;G z)p!z_K`lgb6l3-)=XqTuIk6kwC5F=<_NE$jp;-rUW=M&Fdr(ZnKOudRz&_|>Lalp^ zC{AI4@ji7Ca|ZPss^G~^q#~ad?;I*}fPcfNP?IhiOhAuB z4IJ301hhqkTyDS=mw`s8*aBksX4c^u4l?#Oo&~&wwzP}aMmnwD8Ah;!Y!FN!JnXKb z!g9sIAl4e7#7SAy7EgC)x|~J=&pe0rW7AB|q)j5)pkHexXjr-h#`z9JlVZ}%8WiS| z5u~`ZdmB)AkvC?Oz5eW659icu+Q=Hs3%!d|{J7CPUkj8p9)7raZZhs~RI|pDjpn(> z*72vRtFuP)>`rg1Iuri=X!!S8vJaoWI(vKrvvDf=%a6N87w1*0alY}$Bh7W(t?8%h z9-e#7KW(n#G7JeO`V-A{c){?5{TW?=oJQ4hs>1%lkgK6dQa$G$?pH~et_6A100Pr%h} z|0BA^t$j%Ty31caar_?o-_sxX;VUmZec0cr;pMCPaS3mmW2R{3&H?Fjw_)PPy$;qF;am8I|`SbUl z{Y8G_nV%LHTJ4u!cRzqA?H5|URX%a=kAC?*M4@KB)$%{sxc5i@JbCY5zwq}zIrn#O z{PZ7RKlS^6cKxO6*Z=hS>({SmcfI!3*Ps37r4Meu{H+h4I`!4}?0#+VzBljw)Um&H zr~ktd&x51}=g;Hw)#jjgW_%S-w}t9-Ob3TqnqcQ0FB=Jf(@+tZWc)WLU#+>=w zVDt#l`}(xv`E0ifzWt{ z+yIgA4mm5#Zs(IpG+kn13Svl_#6zVYUY<5bZ5-Ytvgmot%*c3Thzfm{HKw@XY7

  • 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�!x_5Pn0|4h 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

    %wp0e&$6%W> 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

    @f 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 H`(OV*N8Y&o literal 0 HcmV?d00001 diff --git a/docs/_site/docs/getting-started.html b/docs/_site/docs/getting-started.html new file mode 100644 index 0000000..f26da15 --- /dev/null +++ b/docs/_site/docs/getting-started.html @@ -0,0 +1,116 @@ + + + + + Getting Started | alohakit.controls + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    + +
    +
    +
    +
    +
    Table of Contents
    + +
    +
    + +
    +
    +
    + +
    +
    + + + +
    + +
    +

    Getting Started

    + + +
    + + + + + +
    + +
    + +
    +
    + +
    + +
    +
    +
    + Made with docfx +
    +
    +
    + + diff --git a/docs/_site/docs/introduction.html b/docs/_site/docs/introduction.html new file mode 100644 index 0000000..30f2dc6 --- /dev/null +++ b/docs/_site/docs/introduction.html @@ -0,0 +1,116 @@ + + + + + Introduction | alohakit.controls + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    +
    +
    Table of Contents
    + +
    +
    + +
    +
    +
    + +
    +
    + + + +
    + +
    +

    Introduction

    + + +
    + + + + + +
    + +
    + +
    +
    + +
    + +
    +
    +
    + Made with docfx +
    +
    +
    + + diff --git a/docs/_site/docs/toc.html b/docs/_site/docs/toc.html new file mode 100644 index 0000000..52ec442 --- /dev/null +++ b/docs/_site/docs/toc.html @@ -0,0 +1,25 @@ + +
    +
    +
    +
    + + + +
    +
    +
    +
    + + +
    +
    +
    +
    diff --git a/docs/_site/docs/toc.json b/docs/_site/docs/toc.json new file mode 100644 index 0000000..ccbc662 --- /dev/null +++ b/docs/_site/docs/toc.json @@ -0,0 +1,2 @@ + +{"items":[{"name":"Introduction","href":"introduction.html","topicHref":"introduction.html"},{"name":"Getting Started","href":"getting-started.html","topicHref":"getting-started.html"}],"pdf":true} diff --git a/docs/_site/docs/toc.pdf b/docs/_site/docs/toc.pdf new file mode 100644 index 0000000000000000000000000000000000000000..688f61b38900f9f456f87f9bdbe1901af1a7c1de GIT binary patch literal 37728 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 GGXDpQLL_ql literal 0 HcmV?d00001 diff --git a/docs/_site/favicon.ico b/docs/_site/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..71570f61efd250abdc3bffd77a96c6986109bb85 GIT binary patch literal 99678 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 IhS>=GA3>?ZjsO4v literal 0 HcmV?d00001 diff --git a/docs/_site/index.html b/docs/_site/index.html new file mode 100644 index 0000000..4d870a9 --- /dev/null +++ b/docs/_site/index.html @@ -0,0 +1,107 @@ + + + + + This is the HOMEPAGE. | alohakit.controls + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + +
    + +
    +
    + + +
    + +
    +

    This is the HOMEPAGE.

    + +

    Refer to Markdown for how to write markdown files.

    +

    Quick Start Notes:

    +
      +
    1. Add images to the images folder if the file is referencing an image.
    2. +
    + +
    + + + + + +
    + +
    + +
    +
    + +
    + +
    +
    +
    + Made with docfx +
    +
    +
    + + diff --git a/docs/_site/index.json b/docs/_site/index.json new file mode 100644 index 0000000..dcf458e --- /dev/null +++ b/docs/_site/index.json @@ -0,0 +1,327 @@ +{ + "api/AlohaKit.Controls.Avatar.html": { + "href": "api/AlohaKit.Controls.Avatar.html", + "title": "Class Avatar | alohakit.controls", + "summary": "Class Avatar Namespace AlohaKit.Controls Assembly AlohaKit.dll The Avatar is a custom drawn control that provides a flexible and efficient way to render avatar-like graphics, such as profile pictures, icons, or other visual representations, in an application. public class Avatar : GraphicsView, INotifyPropertyChanged, IVisualTreeElement, IEffectControlProvider, IToolTipElement, IContextFlyoutElement, IAnimatable, IViewController, IVisualElementController, IElementController, IGestureController, IGestureRecognizers, IPropertyMapperView, IHotReloadableView, IReplaceableView, IGraphicsView, IView, IElement, ITransform Inheritance object BindableObject Element NavigableElement VisualElement View GraphicsView Avatar Implements INotifyPropertyChanged IVisualTreeElement IEffectControlProvider IToolTipElement IContextFlyoutElement IAnimatable IViewController IVisualElementController IElementController IGestureController IGestureRecognizers IPropertyMapperView IHotReloadableView IReplaceableView IGraphicsView IView IElement ITransform Inherited Members GraphicsView.DrawableProperty GraphicsView.Invalidate() GraphicsView.Drawable GraphicsView.StartHoverInteraction GraphicsView.MoveHoverInteraction GraphicsView.EndHoverInteraction GraphicsView.StartInteraction GraphicsView.DragInteraction GraphicsView.EndInteraction GraphicsView.CancelInteraction View.VerticalOptionsProperty View.HorizontalOptionsProperty View.MarginProperty View.propertyMapper View.ChangeVisualState() View.GetChildElements(Point) View.OnBindingContextChanged() View.GetRendererOverrides() View.GestureController View.GestureRecognizers View.HorizontalOptions View.Margin View.VerticalOptions VisualElement.NavigationProperty VisualElement.StyleProperty VisualElement.InputTransparentProperty VisualElement.IsEnabledProperty VisualElement.XProperty VisualElement.YProperty VisualElement.AnchorXProperty VisualElement.AnchorYProperty VisualElement.TranslationXProperty VisualElement.TranslationYProperty VisualElement.WidthProperty VisualElement.HeightProperty VisualElement.RotationProperty VisualElement.RotationXProperty VisualElement.RotationYProperty VisualElement.ScaleProperty VisualElement.ScaleXProperty VisualElement.ScaleYProperty VisualElement.ClipProperty VisualElement.VisualProperty VisualElement.IsVisibleProperty VisualElement.OpacityProperty VisualElement.BackgroundColorProperty VisualElement.BehaviorsProperty VisualElement.TriggersProperty VisualElement.WidthRequestProperty VisualElement.HeightRequestProperty VisualElement.MinimumWidthRequestProperty VisualElement.MinimumHeightRequestProperty VisualElement.MaximumWidthRequestProperty VisualElement.MaximumHeightRequestProperty VisualElement.IsFocusedProperty VisualElement.FlowDirectionProperty VisualElement.WindowProperty VisualElement.ShadowProperty VisualElement.ZIndexProperty VisualElement.ControlsVisualElementMapper VisualElement.BatchBegin() VisualElement.BatchCommit() VisualElement.Focus() VisualElement.Measure(double, double, MeasureFlags) VisualElement.Unfocus() VisualElement.InvalidateMeasure() VisualElement.OnChildAdded(Element) VisualElement.OnChildRemoved(Element, int) VisualElement.OnChildrenReordered() VisualElement.OnMeasure(double, double) VisualElement.OnSizeAllocated(double, double) VisualElement.SizeAllocated(double, double) VisualElement.RefreshIsEnabledProperty() VisualElement.Arrange(Rect) VisualElement.ArrangeOverride(Rect) VisualElement.Layout(Rect) VisualElement.InvalidateMeasureOverride() VisualElement.MeasureOverride(double, double) VisualElement.MapBackgroundColor(IViewHandler, IView) VisualElement.MapBackgroundImageSource(IViewHandler, IView) VisualElement.Visual VisualElement.FlowDirection VisualElement.Window VisualElement.AnchorX VisualElement.AnchorY VisualElement.BackgroundColor VisualElement.Behaviors VisualElement.Bounds VisualElement.Height VisualElement.HeightRequest VisualElement.InputTransparent VisualElement.IsEnabled VisualElement.IsEnabledCore VisualElement.IsFocused VisualElement.IsVisible VisualElement.MinimumHeightRequest VisualElement.MinimumWidthRequest VisualElement.MaximumHeightRequest VisualElement.MaximumWidthRequest VisualElement.Opacity VisualElement.Rotation VisualElement.RotationX VisualElement.RotationY VisualElement.Scale VisualElement.ScaleX VisualElement.ScaleY VisualElement.TranslationX VisualElement.TranslationY VisualElement.Triggers VisualElement.Width VisualElement.WidthRequest VisualElement.X VisualElement.Y VisualElement.Clip VisualElement.Resources VisualElement.Frame VisualElement.Handler VisualElement.Shadow VisualElement.ZIndex VisualElement.DesiredSize VisualElement.IsLoaded VisualElement.ChildrenReordered VisualElement.Focused VisualElement.MeasureInvalidated VisualElement.SizeChanged VisualElement.Unfocused VisualElement.Loaded VisualElement.Unloaded NavigableElement.Navigation NavigableElement.Style NavigableElement.StyleClass NavigableElement.class Element.AutomationIdProperty Element.ClassIdProperty Element.ControlsElementMapper Element.InsertLogicalChild(int, Element) Element.AddLogicalChild(Element) Element.RemoveLogicalChild(Element) Element.ClearLogicalChildren() Element.FindByName(string) Element.RemoveDynamicResource(BindableProperty) Element.SetDynamicResource(BindableProperty, string) Element.OnPropertyChanged(string) Element.OnParentChanging(ParentChangingEventArgs) Element.OnParentChanged() Element.OnHandlerChanging(HandlerChangingEventArgs) Element.OnHandlerChanged() Element.MapAutomationPropertiesIsInAccessibleTree(IElementHandler, Element) Element.MapAutomationPropertiesExcludedWithChildren(IElementHandler, Element) Element.AutomationId Element.ClassId Element.Effects Element.Id Element.StyleId Element.Parent Element.ChildAdded Element.ChildRemoved Element.DescendantAdded Element.DescendantRemoved Element.ParentChanging Element.ParentChanged Element.HandlerChanging Element.HandlerChanged BindableObject.BindingContextProperty BindableObject.ClearValue(BindableProperty) BindableObject.ClearValue(BindablePropertyKey) BindableObject.GetValue(BindableProperty) BindableObject.IsSet(BindableProperty) BindableObject.RemoveBinding(BindableProperty) BindableObject.SetBinding(BindableProperty, BindingBase) BindableObject.ApplyBindings() BindableObject.OnPropertyChanging(string) BindableObject.UnapplyBindings() BindableObject.SetValue(BindableProperty, object) BindableObject.SetValue(BindablePropertyKey, object) BindableObject.CoerceValue(BindableProperty) BindableObject.CoerceValue(BindablePropertyKey) BindableObject.Dispatcher BindableObject.BindingContext BindableObject.PropertyChanged BindableObject.PropertyChanging BindableObject.BindingContextChanged object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Constructors Avatar() public Avatar() Fields AvatarSizeProperty public static readonly BindableProperty AvatarSizeProperty Field Value BindableProperty BackgroundProperty public static readonly BindableProperty BackgroundProperty Field Value BindableProperty FillProperty public static readonly BindableProperty FillProperty Field Value BindableProperty NameProperty public static readonly BindableProperty NameProperty Field Value BindableProperty TextColorProperty public static readonly BindableProperty TextColorProperty Field Value BindableProperty Properties AvatarSize public AvatarSize AvatarSize { get; set; } Property Value AvatarSize Background public Brush Background { get; set; } Property Value Brush Fill public Brush Fill { get; set; } Property Value Brush Name public string Name { get; set; } Property Value string PersonaDrawable public AvatarDrawable PersonaDrawable { get; set; } Property Value AvatarDrawable TextColor public Color TextColor { get; set; } Property Value Color Methods OnParentSet() Raises the (internal) ParentSet event. protected override void OnParentSet() Remarks Will set the NavigationProxy's inner navigation object to closest topmost element capable of handling navigation calls. See Also OnParentSet()" + }, + "api/AlohaKit.Controls.AvatarDrawable.html": { + "href": "api/AlohaKit.Controls.AvatarDrawable.html", + "title": "Class AvatarDrawable | alohakit.controls", + "summary": "Class AvatarDrawable Namespace AlohaKit.Controls Assembly AlohaKit.dll public class AvatarDrawable : IDrawable Inheritance object AvatarDrawable Implements IDrawable Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Properties BackgroundPaint public Paint BackgroundPaint { get; set; } Property Value Paint FillPaint public Paint FillPaint { get; set; } Property Value Paint FontSize public double FontSize { get; set; } Property Value double Text public string Text { get; set; } Property Value string TextColor public Color TextColor { get; set; } Property Value Color Methods Draw(ICanvas, RectF) public void Draw(ICanvas canvas, RectF dirtyRect) Parameters canvas ICanvas dirtyRect RectF DrawBackground(ICanvas, RectF) public virtual void DrawBackground(ICanvas canvas, RectF dirtyRect) Parameters canvas ICanvas dirtyRect RectF DrawFill(ICanvas, RectF) public virtual void DrawFill(ICanvas canvas, RectF dirtyRect) Parameters canvas ICanvas dirtyRect RectF DrawInitials(ICanvas, RectF) public virtual void DrawInitials(ICanvas canvas, RectF dirtyRect) Parameters canvas ICanvas dirtyRect RectF" + }, + "api/AlohaKit.Controls.AvatarSize.html": { + "href": "api/AlohaKit.Controls.AvatarSize.html", + "title": "Enum AvatarSize | alohakit.controls", + "summary": "Enum AvatarSize Namespace AlohaKit.Controls Assembly AlohaKit.dll The AvatarSize enumeration represents predefined sizes for an avatar, providing a standardized way to specify dimensions across an application. public enum AvatarSize Extension Methods AvatarSizeExtensions.GetAvatarIndicatorIconScale(AvatarSize) AvatarSizeExtensions.GetAvatarIndicatorSize(AvatarSize) AvatarSizeExtensions.GetAvatarSize(AvatarSize) AvatarSizeExtensions.GetInitialsFontSize(AvatarSize) Fields Large = 1 Small = 0 XXLarge = 2" + }, + "api/AlohaKit.Controls.AvatarSizeExtensions.html": { + "href": "api/AlohaKit.Controls.AvatarSizeExtensions.html", + "title": "Class AvatarSizeExtensions | alohakit.controls", + "summary": "Class AvatarSizeExtensions Namespace AlohaKit.Controls Assembly AlohaKit.dll The AvatarSizeExtensions class provides extension methods for the AvatarSize enumeration, allowing developers to retrieve various sizing details for avatars based on their size (e.g., dimensions, indicator sizes, font sizes). public static class AvatarSizeExtensions Inheritance object AvatarSizeExtensions Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Methods GetAvatarIndicatorIconScale(AvatarSize) public static float GetAvatarIndicatorIconScale(this AvatarSize avatarSize) Parameters avatarSize AvatarSize Returns float GetAvatarIndicatorSize(AvatarSize) public static int GetAvatarIndicatorSize(this AvatarSize avatarSize) Parameters avatarSize AvatarSize Returns int GetAvatarSize(AvatarSize) public static int GetAvatarSize(this AvatarSize avatarSize) Parameters avatarSize AvatarSize Returns int GetInitialsFontSize(AvatarSize) public static int GetInitialsFontSize(this AvatarSize avatarSize) Parameters avatarSize AvatarSize Returns int" + }, + "api/AlohaKit.Controls.BarChart.html": { + "href": "api/AlohaKit.Controls.BarChart.html", + "title": "Class BarChart | alohakit.controls", + "summary": "Class BarChart Namespace AlohaKit.Controls Assembly AlohaKit.dll The BarChart is a drawn control used to render bar charts, allowing for the visualization of data as rectangular bars. Each bar's length or height corresponds to the value it represents. It extends the BaseChart class, providing additional functionality tailored to bar chart rendering while leveraging shared chart capabilities. public sealed class BarChart : BaseChart, INotifyPropertyChanged, IVisualTreeElement, IEffectControlProvider, IToolTipElement, IContextFlyoutElement, IAnimatable, IViewController, IVisualElementController, IElementController, IGestureController, IGestureRecognizers, IPropertyMapperView, IHotReloadableView, IReplaceableView, IGraphicsView, IView, IElement, ITransform, IDisposable Inheritance object BindableObject Element NavigableElement VisualElement View GraphicsView BaseChart BarChart Implements INotifyPropertyChanged IVisualTreeElement IEffectControlProvider IToolTipElement IContextFlyoutElement IAnimatable IViewController IVisualElementController IElementController IGestureController IGestureRecognizers IPropertyMapperView IHotReloadableView IReplaceableView IGraphicsView IView IElement ITransform IDisposable Inherited Members BaseChart.EasingProperty BaseChart.Easing BaseChart.BackgroundProperty BaseChart.Background BaseChart.AxisDashPatternProperty BaseChart.AxisDashPattern BaseChart.DisplayHeaderValuesProperty BaseChart.DisplayHeaderValues BaseChart.PathsColorOpacityProperty BaseChart.PathsColorOpacity BaseChart.AxisLinesFontSizeProperty BaseChart.AxisLinesFontSize BaseChart.AxisLineColorProperty BaseChart.AxisLinesColor BaseChart.AxisLinesStrokeSizeProperty BaseChart.AxisLinesStrokeSize BaseChart.DisplayVerticalAxisLinesProperty BaseChart.DisplayVerticalAxisLines BaseChart.DisplayHorizontalAxisLinesProperty BaseChart.DisplayHorizontalAxisLines BaseChart.AnimationIntervalProperty BaseChart.AnimationInterval BaseChart.ReanimateOnPropertyChangedProperty BaseChart.ReanimateOnPropertyChanged BaseChart.EnableEntryAnimationsProperty BaseChart.EnableEntryAnimations BaseChart.EntriesProperty BaseChart.Entries BaseChart.IsLabelTextTruncationEnabledProperty BaseChart.IsLabelTextTruncationEnabled BaseChart.DisplayValueLabelsOnTopProperty BaseChart.DisplayValueLabelsOnTop BaseChart.StrokeSizeProperty BaseChart.StrokeSize BaseChart.StrokeColorProperty BaseChart.StrokeColor BaseChart.ItemSeparationMarginProperty BaseChart.ItemSeparationMargin BaseChart.FooterLabelsTextSizeProperty BaseChart.FooterLabelsTextSize BaseChart.FooterLabelsMarginProperty BaseChart.FooterLabelsMargin BaseChart.HeaderValuesMarginProperty BaseChart.HeaderValuesMargin BaseChart.FillColorProperty BaseChart.FillColor BaseChart.FontFamilyProperty BaseChart.FontFamily BaseChart.FontSizeProperty BaseChart.FontSize BaseChart.ChartMarginProperty BaseChart.ChartMargin BaseChart.FontColorProperty BaseChart.FontColor BaseChart.FooterLabelsFontColorProperty BaseChart.FooterLabelsFontColor BaseChart.EnableAntialiasProperty BaseChart.EnableAntialias BaseChart.Dispose() GraphicsView.DrawableProperty GraphicsView.Invalidate() GraphicsView.Drawable GraphicsView.StartHoverInteraction GraphicsView.MoveHoverInteraction GraphicsView.EndHoverInteraction GraphicsView.StartInteraction GraphicsView.DragInteraction GraphicsView.EndInteraction GraphicsView.CancelInteraction View.VerticalOptionsProperty View.HorizontalOptionsProperty View.MarginProperty View.GetChildElements(Point) View.GestureRecognizers View.HorizontalOptions View.Margin View.VerticalOptions VisualElement.NavigationProperty VisualElement.StyleProperty VisualElement.InputTransparentProperty VisualElement.IsEnabledProperty VisualElement.XProperty VisualElement.YProperty VisualElement.AnchorXProperty VisualElement.AnchorYProperty VisualElement.TranslationXProperty VisualElement.TranslationYProperty VisualElement.WidthProperty VisualElement.HeightProperty VisualElement.RotationProperty VisualElement.RotationXProperty VisualElement.RotationYProperty VisualElement.ScaleProperty VisualElement.ScaleXProperty VisualElement.ScaleYProperty VisualElement.ClipProperty VisualElement.VisualProperty VisualElement.IsVisibleProperty VisualElement.OpacityProperty VisualElement.BackgroundColorProperty VisualElement.BehaviorsProperty VisualElement.TriggersProperty VisualElement.WidthRequestProperty VisualElement.HeightRequestProperty VisualElement.MinimumWidthRequestProperty VisualElement.MinimumHeightRequestProperty VisualElement.MaximumWidthRequestProperty VisualElement.MaximumHeightRequestProperty VisualElement.IsFocusedProperty VisualElement.FlowDirectionProperty VisualElement.WindowProperty VisualElement.ShadowProperty VisualElement.ZIndexProperty VisualElement.ControlsVisualElementMapper VisualElement.BatchBegin() VisualElement.BatchCommit() VisualElement.Focus() VisualElement.Measure(double, double, MeasureFlags) VisualElement.Unfocus() VisualElement.Arrange(Rect) VisualElement.Layout(Rect) VisualElement.MapBackgroundColor(IViewHandler, IView) VisualElement.MapBackgroundImageSource(IViewHandler, IView) VisualElement.Visual VisualElement.FlowDirection VisualElement.Window VisualElement.AnchorX VisualElement.AnchorY VisualElement.BackgroundColor VisualElement.Behaviors VisualElement.Bounds VisualElement.Height VisualElement.HeightRequest VisualElement.InputTransparent VisualElement.IsEnabled VisualElement.IsFocused VisualElement.IsVisible VisualElement.MinimumHeightRequest VisualElement.MinimumWidthRequest VisualElement.MaximumHeightRequest VisualElement.MaximumWidthRequest VisualElement.Opacity VisualElement.Rotation VisualElement.RotationX VisualElement.RotationY VisualElement.Scale VisualElement.ScaleX VisualElement.ScaleY VisualElement.TranslationX VisualElement.TranslationY VisualElement.Triggers VisualElement.Width VisualElement.WidthRequest VisualElement.X VisualElement.Y VisualElement.Clip VisualElement.Resources VisualElement.Frame VisualElement.Handler VisualElement.Shadow VisualElement.ZIndex VisualElement.DesiredSize VisualElement.IsLoaded VisualElement.ChildrenReordered VisualElement.Focused VisualElement.MeasureInvalidated VisualElement.SizeChanged VisualElement.Unfocused VisualElement.Loaded VisualElement.Unloaded NavigableElement.Navigation NavigableElement.Style NavigableElement.StyleClass NavigableElement.class Element.AutomationIdProperty Element.ClassIdProperty Element.ControlsElementMapper Element.InsertLogicalChild(int, Element) Element.AddLogicalChild(Element) Element.RemoveLogicalChild(Element) Element.ClearLogicalChildren() Element.FindByName(string) Element.RemoveDynamicResource(BindableProperty) Element.SetDynamicResource(BindableProperty, string) Element.MapAutomationPropertiesIsInAccessibleTree(IElementHandler, Element) Element.MapAutomationPropertiesExcludedWithChildren(IElementHandler, Element) Element.AutomationId Element.ClassId Element.Effects Element.Id Element.StyleId Element.Parent Element.ChildAdded Element.ChildRemoved Element.DescendantAdded Element.DescendantRemoved Element.ParentChanging Element.ParentChanged Element.HandlerChanging Element.HandlerChanged BindableObject.BindingContextProperty BindableObject.ClearValue(BindableProperty) BindableObject.ClearValue(BindablePropertyKey) BindableObject.GetValue(BindableProperty) BindableObject.IsSet(BindableProperty) BindableObject.RemoveBinding(BindableProperty) BindableObject.SetBinding(BindableProperty, BindingBase) BindableObject.SetValue(BindableProperty, object) BindableObject.SetValue(BindablePropertyKey, object) BindableObject.CoerceValue(BindableProperty) BindableObject.CoerceValue(BindablePropertyKey) BindableObject.Dispatcher BindableObject.BindingContext BindableObject.PropertyChanged BindableObject.PropertyChanging BindableObject.BindingContextChanged object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.ReferenceEquals(object, object) object.ToString() Constructors BarChart() public BarChart() Fields BackgroundBarsFillColorProperty public static readonly BindableProperty BackgroundBarsFillColorProperty Field Value BindableProperty BarsFillColorProperty public static readonly BindableProperty BarsFillColorProperty Field Value BindableProperty ShowBackgroundBarsProperty public static readonly BindableProperty ShowBackgroundBarsProperty Field Value BindableProperty Properties BackgroundBarsFillColor Gets or sets the background color to use when drawing each bar public Color BackgroundBarsFillColor { get; set; } Property Value Color BarsFillColor Gets or sets the color to use when drawing each bar public Color BarsFillColor { get; set; } Property Value Color ShowBackgroundBars If true chart will draw background bars and value bars. If not only value bars will be drawn. Default is true public bool ShowBackgroundBars { get; set; } Property Value bool" + }, + "api/AlohaKit.Controls.BarChartDrawable.html": { + "href": "api/AlohaKit.Controls.BarChartDrawable.html", + "title": "Class BarChartDrawable | alohakit.controls", + "summary": "Class BarChartDrawable Namespace AlohaKit.Controls Assembly AlohaKit.dll public sealed class BarChartDrawable : BaseChartDrawable, IDrawable, IDisposable Inheritance object BaseChartDrawable BarChartDrawable Implements IDrawable IDisposable Inherited Members BaseChartDrawable.IsInitialized BaseChartDrawable.IsAnimating BaseChartDrawable.ColorBrush BaseChartDrawable.AxisDashPattern BaseChartDrawable.DisplayHeaderValues BaseChartDrawable.PathsColorOpacity BaseChartDrawable.DisplayHorizontalAxisLines BaseChartDrawable.DisplayVerticalAxisLines BaseChartDrawable.AnimationProgress BaseChartDrawable.IsLabelTextTruncationEnabled BaseChartDrawable.DisplayValueLabelsOnTop BaseChartDrawable.StrokeSize BaseChartDrawable.AxisLinesStrokeSize BaseChartDrawable.AxisLinesColor BaseChartDrawable.StrokeColor BaseChartDrawable.ItemSeparationMargin BaseChartDrawable.FooterLabelsTextSize BaseChartDrawable.FooterLabelsMargin BaseChartDrawable.HeaderValuesMargin BaseChartDrawable.FillColor BaseChartDrawable.Font BaseChartDrawable.Entries BaseChartDrawable.FontSize BaseChartDrawable.AxisFontSize BaseChartDrawable.Margin BaseChartDrawable.FontColor BaseChartDrawable.FooterLabelsFontColor BaseChartDrawable.EnableAntialias BaseChartDrawable.Draw(ICanvas, RectF) BaseChartDrawable.ClearBackground(ICanvas, SizeF, Color) BaseChartDrawable.Dispose() object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.ReferenceEquals(object, object) object.ToString() Properties BackgroundBarsFillColor Gets or sets the background color to use when drawing each bar public Color BackgroundBarsFillColor { get; set; } Property Value Color BarsFillColor Gets or sets the color to use when drawing each bar public Color BarsFillColor { get; set; } Property Value Color ShowBackgroundBars If true chart will draw background bars and value bars. If not only value bars will be drawn. Default is true public bool ShowBackgroundBars { get; set; } Property Value bool Methods DrawChart(ICanvas, RectF) Calculates and draws the current chart with the Entries[] data public override void DrawChart(ICanvas canvas, RectF dirtyRect) Parameters canvas ICanvas Current canvas dirtyRect RectF Current canvas rect DrawVerticalStepLines(ICanvas, PointF[], float, float) protected override void DrawVerticalStepLines(ICanvas canvas, PointF[] points, float origin, float maxPositiveValue) Parameters canvas ICanvas points PointF[] origin float maxPositiveValue float" + }, + "api/AlohaKit.Controls.BaseChart.html": { + "href": "api/AlohaKit.Controls.BaseChart.html", + "title": "Class BaseChart | alohakit.controls", + "summary": "Class BaseChart Namespace AlohaKit.Controls Assembly AlohaKit.dll public abstract class BaseChart : GraphicsView, INotifyPropertyChanged, IVisualTreeElement, IEffectControlProvider, IToolTipElement, IContextFlyoutElement, IAnimatable, IViewController, IVisualElementController, IElementController, IGestureController, IGestureRecognizers, IPropertyMapperView, IHotReloadableView, IReplaceableView, IGraphicsView, IView, IElement, ITransform, IDisposable Inheritance object BindableObject Element NavigableElement VisualElement View GraphicsView BaseChart Implements INotifyPropertyChanged IVisualTreeElement IEffectControlProvider IToolTipElement IContextFlyoutElement IAnimatable IViewController IVisualElementController IElementController IGestureController IGestureRecognizers IPropertyMapperView IHotReloadableView IReplaceableView IGraphicsView IView IElement ITransform IDisposable Derived BarChart LineChart MultiBarChart MultiLineChartView Inherited Members GraphicsView.DrawableProperty GraphicsView.Invalidate() GraphicsView.StartHoverInteraction GraphicsView.MoveHoverInteraction GraphicsView.EndHoverInteraction GraphicsView.StartInteraction GraphicsView.DragInteraction GraphicsView.EndInteraction GraphicsView.CancelInteraction View.VerticalOptionsProperty View.HorizontalOptionsProperty View.MarginProperty View.propertyMapper View.ChangeVisualState() View.GetChildElements(Point) View.OnBindingContextChanged() View.GetRendererOverrides() View.GestureController View.GestureRecognizers View.HorizontalOptions View.Margin View.VerticalOptions VisualElement.NavigationProperty VisualElement.StyleProperty VisualElement.InputTransparentProperty VisualElement.IsEnabledProperty VisualElement.XProperty VisualElement.YProperty VisualElement.AnchorXProperty VisualElement.AnchorYProperty VisualElement.TranslationXProperty VisualElement.TranslationYProperty VisualElement.WidthProperty VisualElement.HeightProperty VisualElement.RotationProperty VisualElement.RotationXProperty VisualElement.RotationYProperty VisualElement.ScaleProperty VisualElement.ScaleXProperty VisualElement.ScaleYProperty VisualElement.ClipProperty VisualElement.VisualProperty VisualElement.IsVisibleProperty VisualElement.OpacityProperty VisualElement.BackgroundColorProperty VisualElement.BehaviorsProperty VisualElement.TriggersProperty VisualElement.WidthRequestProperty VisualElement.HeightRequestProperty VisualElement.MinimumWidthRequestProperty VisualElement.MinimumHeightRequestProperty VisualElement.MaximumWidthRequestProperty VisualElement.MaximumHeightRequestProperty VisualElement.IsFocusedProperty VisualElement.FlowDirectionProperty VisualElement.WindowProperty VisualElement.ShadowProperty VisualElement.ZIndexProperty VisualElement.ControlsVisualElementMapper VisualElement.BatchBegin() VisualElement.BatchCommit() VisualElement.Focus() VisualElement.Measure(double, double, MeasureFlags) VisualElement.Unfocus() VisualElement.InvalidateMeasure() VisualElement.OnChildAdded(Element) VisualElement.OnChildRemoved(Element, int) VisualElement.OnChildrenReordered() VisualElement.OnMeasure(double, double) VisualElement.OnSizeAllocated(double, double) VisualElement.SizeAllocated(double, double) VisualElement.RefreshIsEnabledProperty() VisualElement.Arrange(Rect) VisualElement.ArrangeOverride(Rect) VisualElement.Layout(Rect) VisualElement.InvalidateMeasureOverride() VisualElement.MeasureOverride(double, double) VisualElement.MapBackgroundColor(IViewHandler, IView) VisualElement.MapBackgroundImageSource(IViewHandler, IView) VisualElement.Visual VisualElement.FlowDirection VisualElement.Window VisualElement.AnchorX VisualElement.AnchorY VisualElement.BackgroundColor VisualElement.Behaviors VisualElement.Bounds VisualElement.Height VisualElement.HeightRequest VisualElement.InputTransparent VisualElement.IsEnabled VisualElement.IsEnabledCore VisualElement.IsFocused VisualElement.IsVisible VisualElement.MinimumHeightRequest VisualElement.MinimumWidthRequest VisualElement.MaximumHeightRequest VisualElement.MaximumWidthRequest VisualElement.Opacity VisualElement.Rotation VisualElement.RotationX VisualElement.RotationY VisualElement.Scale VisualElement.ScaleX VisualElement.ScaleY VisualElement.TranslationX VisualElement.TranslationY VisualElement.Triggers VisualElement.Width VisualElement.WidthRequest VisualElement.X VisualElement.Y VisualElement.Clip VisualElement.Resources VisualElement.Frame VisualElement.Handler VisualElement.Shadow VisualElement.ZIndex VisualElement.DesiredSize VisualElement.IsLoaded VisualElement.ChildrenReordered VisualElement.Focused VisualElement.MeasureInvalidated VisualElement.SizeChanged VisualElement.Unfocused VisualElement.Loaded VisualElement.Unloaded NavigableElement.OnParentSet() NavigableElement.Navigation NavigableElement.Style NavigableElement.StyleClass NavigableElement.class Element.AutomationIdProperty Element.ClassIdProperty Element.ControlsElementMapper Element.InsertLogicalChild(int, Element) Element.AddLogicalChild(Element) Element.RemoveLogicalChild(Element) Element.ClearLogicalChildren() Element.FindByName(string) Element.RemoveDynamicResource(BindableProperty) Element.SetDynamicResource(BindableProperty, string) Element.OnPropertyChanged(string) Element.OnParentChanging(ParentChangingEventArgs) Element.OnParentChanged() Element.OnHandlerChanging(HandlerChangingEventArgs) Element.OnHandlerChanged() Element.MapAutomationPropertiesIsInAccessibleTree(IElementHandler, Element) Element.MapAutomationPropertiesExcludedWithChildren(IElementHandler, Element) Element.AutomationId Element.ClassId Element.Effects Element.Id Element.StyleId Element.Parent Element.ChildAdded Element.ChildRemoved Element.DescendantAdded Element.DescendantRemoved Element.ParentChanging Element.ParentChanged Element.HandlerChanging Element.HandlerChanged BindableObject.BindingContextProperty BindableObject.ClearValue(BindableProperty) BindableObject.ClearValue(BindablePropertyKey) BindableObject.GetValue(BindableProperty) BindableObject.IsSet(BindableProperty) BindableObject.RemoveBinding(BindableProperty) BindableObject.SetBinding(BindableProperty, BindingBase) BindableObject.ApplyBindings() BindableObject.OnPropertyChanging(string) BindableObject.UnapplyBindings() BindableObject.SetValue(BindableProperty, object) BindableObject.SetValue(BindablePropertyKey, object) BindableObject.CoerceValue(BindableProperty) BindableObject.CoerceValue(BindablePropertyKey) BindableObject.Dispatcher BindableObject.BindingContext BindableObject.PropertyChanged BindableObject.PropertyChanging BindableObject.BindingContextChanged object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Constructors BaseChart() public BaseChart() Fields AnimationIntervalProperty public static readonly BindableProperty AnimationIntervalProperty Field Value BindableProperty AxisDashPatternProperty public static readonly BindableProperty AxisDashPatternProperty Field Value BindableProperty AxisLineColorProperty public static readonly BindableProperty AxisLineColorProperty Field Value BindableProperty AxisLinesFontSizeProperty public static readonly BindableProperty AxisLinesFontSizeProperty Field Value BindableProperty AxisLinesStrokeSizeProperty public static readonly BindableProperty AxisLinesStrokeSizeProperty Field Value BindableProperty BackgroundProperty public static readonly BindableProperty BackgroundProperty Field Value BindableProperty ChartMarginProperty public static readonly BindableProperty ChartMarginProperty Field Value BindableProperty DisplayHeaderValuesProperty public static readonly BindableProperty DisplayHeaderValuesProperty Field Value BindableProperty DisplayHorizontalAxisLinesProperty public static readonly BindableProperty DisplayHorizontalAxisLinesProperty Field Value BindableProperty DisplayValueLabelsOnTopProperty public static readonly BindableProperty DisplayValueLabelsOnTopProperty Field Value BindableProperty DisplayVerticalAxisLinesProperty public static readonly BindableProperty DisplayVerticalAxisLinesProperty Field Value BindableProperty EasingProperty public static readonly BindableProperty EasingProperty Field Value BindableProperty EnableAntialiasProperty public static readonly BindableProperty EnableAntialiasProperty Field Value BindableProperty EnableEntryAnimationsProperty public static readonly BindableProperty EnableEntryAnimationsProperty Field Value BindableProperty EntriesProperty public static readonly BindableProperty EntriesProperty Field Value BindableProperty FillColorProperty public static readonly BindableProperty FillColorProperty Field Value BindableProperty FontColorProperty public static readonly BindableProperty FontColorProperty Field Value BindableProperty FontFamilyProperty public static readonly BindableProperty FontFamilyProperty Field Value BindableProperty FontSizeProperty public static readonly BindableProperty FontSizeProperty Field Value BindableProperty FooterLabelsFontColorProperty public static readonly BindableProperty FooterLabelsFontColorProperty Field Value BindableProperty FooterLabelsMarginProperty public static readonly BindableProperty FooterLabelsMarginProperty Field Value BindableProperty FooterLabelsTextSizeProperty public static readonly BindableProperty FooterLabelsTextSizeProperty Field Value BindableProperty HeaderValuesMarginProperty public static readonly BindableProperty HeaderValuesMarginProperty Field Value BindableProperty IsLabelTextTruncationEnabledProperty public static readonly BindableProperty IsLabelTextTruncationEnabledProperty Field Value BindableProperty ItemSeparationMarginProperty public static readonly BindableProperty ItemSeparationMarginProperty Field Value BindableProperty PathsColorOpacityProperty public static readonly BindableProperty PathsColorOpacityProperty Field Value BindableProperty ReanimateOnPropertyChangedProperty public static readonly BindableProperty ReanimateOnPropertyChangedProperty Field Value BindableProperty StrokeColorProperty public static readonly BindableProperty StrokeColorProperty Field Value BindableProperty StrokeSizeProperty public static readonly BindableProperty StrokeSizeProperty Field Value BindableProperty Properties AnimationInterval Sets the interval in ms to use when triggering animations. Default is 1250 public int AnimationInterval { get; set; } Property Value int AxisDashPattern public float[] AxisDashPattern { get; set; } Property Value float[] AxisLinesColor Axis lines color. Default is Lightgray public Color AxisLinesColor { get; set; } Property Value Color AxisLinesFontSize Axis lines font size. Default is 11 public float AxisLinesFontSize { get; set; } Property Value float AxisLinesStrokeSize Axis lines stroke size. Default is 0.9 public float AxisLinesStrokeSize { get; set; } Property Value float Background public Brush Background { get; set; } Property Value Brush ChartMargin Gets or sets the default top and bottom internal margin to use when drawing canvas content. Default value is 15 public float ChartMargin { get; set; } Property Value float DisplayHeaderValues public bool DisplayHeaderValues { get; set; } Property Value bool DisplayHorizontalAxisLines If true header labels will be hidden and chart will draw horizontal step lines. public bool DisplayHorizontalAxisLines { get; set; } Property Value bool DisplayValueLabelsOnTop If true, chart will show value labels on top of canvas. Default is true public bool DisplayValueLabelsOnTop { get; set; } Property Value bool DisplayVerticalAxisLines If true vertical lines will be drawn as background along with horizontal lines. DisplayHorizontalAxisLines prop needs to be true as well public bool DisplayVerticalAxisLines { get; set; } Property Value bool Drawable Gets or sets current IDrawable surface. This property MUST be assigned before ChartEntries prop protected BaseChartDrawable Drawable { get; set; } Property Value BaseChartDrawable Easing Sets the Easing to use when triggering animations. Default is BounceOut public Easing Easing { get; set; } Property Value Easing EnableAntialias Gets or sets if the current canvas will use Antialias mode or not when drawing content. Default is true public bool EnableAntialias { get; set; } Property Value bool EnableEntryAnimations If true, chart will trigger animations when drawing chart content. Default is true public bool EnableEntryAnimations { get; set; } Property Value bool Entries public ObservableCollection Entries { get; set; } Property Value ObservableCollection FillColor Gets or sets the canvas default fill color. Default is transparent public Color FillColor { get; set; } Property Value Color FontColor Gets or sets the color to use when drawing value labels. Default is Black public Color FontColor { get; set; } Property Value Color FontFamily Gets or sets the canvas default Font to use when drawing strings public string FontFamily { get; set; } Property Value string FontSize Gets or sets font size to use when drawing value labels. Default is 11 public float FontSize { get; set; } Property Value float FooterLabelsFontColor Gets or sets the color to use when drawing footer labels. Default is Black public Color FooterLabelsFontColor { get; set; } Property Value Color FooterLabelsMargin Gets or sets font margin to use when calculating footer labels coordinates. Default is 8 public float FooterLabelsMargin { get; set; } Property Value float FooterLabelsTextSize Gets or sets font size to use for footer label values. Default is 10 public float FooterLabelsTextSize { get; set; } Property Value float HeaderValuesMargin Gets or sets font margin to use when calculating header value labels coordinates. Default is 30 public float HeaderValuesMargin { get; set; } Property Value float IsLabelTextTruncationEnabled If true, chart labels text will be truncated to fit available size. Default is true public bool IsLabelTextTruncationEnabled { get; set; } Property Value bool ItemSeparationMargin Gets or sets the separation margin between each item. Default is 8 public float ItemSeparationMargin { get; set; } Property Value float PathsColorOpacity Sets the Alpha modifier value to use when drawing solid color backgrounds.Default is 0.6 public float PathsColorOpacity { get; set; } Property Value float ReanimateOnPropertyChanged If true, chart will trigger entry animation whenever a chart property is changed and EnableEntryAnimations prop is set to true. Default is true public bool ReanimateOnPropertyChanged { get; set; } Property Value bool StrokeColor Stroke color. Default is Black public Color StrokeColor { get; set; } Property Value Color StrokeSize Stroke size. Default is 2.5 public float StrokeSize { get; set; } Property Value float Methods Dispose() Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. public void Dispose()" + }, + "api/AlohaKit.Controls.BaseChartDrawable.html": { + "href": "api/AlohaKit.Controls.BaseChartDrawable.html", + "title": "Class BaseChartDrawable | alohakit.controls", + "summary": "Class BaseChartDrawable Namespace AlohaKit.Controls Assembly AlohaKit.dll public abstract class BaseChartDrawable : IDrawable, IDisposable Inheritance object BaseChartDrawable Implements IDrawable IDisposable Derived BarChartDrawable LineChartDrawable MultiBarChartDrawable MultiLineChartDrawable Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Fields AxisXMargin protected int AxisXMargin Field Value int IsAnimating public bool IsAnimating Field Value bool IsInitialized public bool IsInitialized Field Value bool MaxYValueCoordinate protected float MaxYValueCoordinate Field Value float Points protected PointF[] Points Field Value PointF[] _colorBrush protected Brush _colorBrush Field Value Brush _dirtyRect protected RectF _dirtyRect Field Value RectF _displayHeaderValues protected bool _displayHeaderValues Field Value bool _displayValueLabelsOnTop protected bool _displayValueLabelsOnTop Field Value bool Properties AnimationProgress Represents the percentage of the current chart Animation from 1-100 public int AnimationProgress { get; set; } Property Value int AxisDashPattern public float[] AxisDashPattern { get; set; } Property Value float[] AxisFontSize Gets or sets font size to use when drawing chart axis labels. Default is 11 public float AxisFontSize { get; set; } Property Value float AxisLinesColor Axis lines color. Default is Lightgray public Color AxisLinesColor { get; set; } Property Value Color AxisLinesStrokeSize Axis lines stroke size. Default is 0.9 public float AxisLinesStrokeSize { get; set; } Property Value float ColorBrush public Brush ColorBrush { get; set; } Property Value Brush DisplayHeaderValues public bool DisplayHeaderValues { get; set; } Property Value bool DisplayHorizontalAxisLines If true header labels will be hidden and chart will draw horizontal step lines. public bool DisplayHorizontalAxisLines { get; set; } Property Value bool DisplayValueLabelsOnTop If true, chart will show value labels on top of canvas. Default is true public bool DisplayValueLabelsOnTop { get; set; } Property Value bool DisplayVerticalAxisLines If true vertical lines will be drawn as background along with horizontal lines. DisplayHorizontalAxisLines prop needs to be true as well public bool DisplayVerticalAxisLines { get; set; } Property Value bool EnableAntialias Gets or sets if the current canvas will use Antialias mode or not when drawing content. Default is true public bool EnableAntialias { get; set; } Property Value bool Entries Gets or sets the items to display within canvas public ObservableCollection Entries { get; set; } Property Value ObservableCollection FillColor Gets or sets the canvas default fill color. Default is transparent public Color FillColor { get; set; } Property Value Color Font Gets or sets the canvas default Font to use when drawing strings. [10/10/22 -> GRAPHICS MISSING SUPPORT FOR CUSTOM FONTS] public IFont Font { get; set; } Property Value IFont FontColor Gets or sets the color to use when drawing value labels. Default is Black public Color FontColor { get; set; } Property Value Color FontSize Gets or sets font size to use when drawing value labels. Default is 11 public float FontSize { get; set; } Property Value float FooterHeight Gets or sets Footer height protected float FooterHeight { get; set; } Property Value float FooterLabelsFontColor Gets or sets the color to use when drawing footer labels. Default is Black public Color FooterLabelsFontColor { get; set; } Property Value Color FooterLabelsMargin Gets or sets font margin to use when calculating footer labels coordinates. Default is 8 public float FooterLabelsMargin { get; set; } Property Value float FooterLabelsTextSize Gets or sets font size to use for footer label values. Default is 10 public float FooterLabelsTextSize { get; set; } Property Value float HeaderHeight Gets or sets Header height protected float HeaderHeight { get; set; } Property Value float HeaderValuesMargin Gets or sets font margin to use when calculating header value labels coordinates. Default is 30 public float HeaderValuesMargin { get; set; } Property Value float Height Gets or sets control height protected float Height { get; set; } Property Value float IsLabelTextTruncationEnabled If true, chart labels text will be truncated to fit available size. Default is true public bool IsLabelTextTruncationEnabled { get; set; } Property Value bool ItemSeparationMargin Gets or sets the separation margin between each item. Default is 8 public float ItemSeparationMargin { get; set; } Property Value float ItemSize Gets or sets the size for each value column protected SizeF ItemSize { get; set; } Property Value SizeF Margin Gets or sets the default top and bottom internal margin to use when drawing canvas content. Default value is 15 public float Margin { get; set; } Property Value float MaxValue Gets the greatest value within ChartEntries collection protected float MaxValue { get; } Property Value float MinValue Gets the smallest value within ChartEntries collection protected float MinValue { get; } Property Value float Origin gets or sets the origin in Y axis protected float Origin { get; set; } Property Value float PathsColorOpacity Sets the Alpha modifier value to use when drawing solid color backgrounds.Default is 0.6 public float PathsColorOpacity { get; set; } Property Value float StrokeColor Stroke color. Default is Black public Color StrokeColor { get; set; } Property Value Color StrokeSize Stroke size. Default is 2.5 public float StrokeSize { get; set; } Property Value float ValueRange Gets or sets chart value range by subtracting MaxValue from MinValue. protected float ValueRange { get; } Property Value float Width Gets or sets control Width protected float Width { get; set; } Property Value float _canvas protected ICanvas _canvas { get; set; } Property Value ICanvas Methods CalculateFooterHeight(SizeF[]) Calculates footer total height protected virtual float CalculateFooterHeight(SizeF[] valueLabelSizes) Parameters valueLabelSizes SizeF[] Label size Returns float Labels height CalculateHeaderHeight(SizeF[]) Calculates header height protected virtual float CalculateHeaderHeight(SizeF[] valueLabelSizes) Parameters valueLabelSizes SizeF[] Label size Returns float Header total height CalculateHorizontalYLineCoordinate(float, SizeF, float, float) For a given value, calculates its Y coordinate within current canvas protected virtual PointF CalculateHorizontalYLineCoordinate(float value, SizeF itemSize, float origin, float headerHeight) Parameters value float Value to calculate itemSize SizeF Item available size origin float Y coordinate origin coordinate headerHeight float Header height Returns PointF Y Coordinate of given value CalculateItemSize(List, float, float, float, float) Calculates the size chart is going to use when drawing each bar protected virtual SizeF CalculateItemSize(List entries, float width, float height, float footerHeight, float headerHeight) Parameters entries List width float Control width height float Control height footerHeight float Chart footer label area height headerHeight float Chart header area height Returns SizeF The size for each bar CalculateItemSize(float, float, float, float) Calculates the size chart is going to use when drawing each bar protected virtual SizeF CalculateItemSize(float width, float height, float footerHeight, float headerHeight) Parameters width float Control width height float Control height footerHeight float Chart footer label area height headerHeight float Chart header area height Returns SizeF The size for each bar CalculatePaddingForLabelValue(float, SizeF) Calculate the center for a given rectangle protected virtual float CalculatePaddingForLabelValue(float coordinateX, SizeF rect) Parameters coordinateX float X axis coordinate rect SizeF Rectangle container to be centered Returns float Number indicating the center X coordinate within input rectangle CalculatePoints(SizeF, float, float) Calculates the coordinates of each value within the chart canvas protected virtual PointF[] CalculatePoints(SizeF itemSize, float origin, float headerHeight) Parameters itemSize SizeF Item size origin float Y axis origin coordinate headerHeight float Chart header area height Returns PointF[] Array with the points coordinates CalculatePoints(List, SizeF, float, float) Calculates the coordinates of each value within the chart canvas protected virtual PointF[] CalculatePoints(List entries, SizeF itemSize, float origin, float headerHeight) Parameters entries List itemSize SizeF Item size origin float Y axis origin coordinate headerHeight float Chart header area height Returns PointF[] Array with the points coordinates CalculateYOrigin(float, float) Calculates the Y axis origin value protected float CalculateYOrigin(float itemHeight, float headerHeight) Parameters itemHeight float Each bar width headerHeight float Control total height Returns float Y axis origin coordinate ClearBackground(ICanvas, SizeF, Color) Change current canvas background fill color public virtual void ClearBackground(ICanvas canvas, SizeF containerSize, Color fillColor) Parameters canvas ICanvas Current canvas containerSize SizeF Canvas size fillColor Color Fill color Dispose() Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. public virtual void Dispose() Draw(ICanvas, RectF) public void Draw(ICanvas canvas, RectF dirtyRect) Parameters canvas ICanvas dirtyRect RectF DrawChart(ICanvas, RectF) Calculates and draws the current chart with the Entries[] data public virtual void DrawChart(ICanvas canvas, RectF dirtyRect) Parameters canvas ICanvas Current canvas dirtyRect RectF Current canvas rect DrawHorizontalStepLines(ICanvas, IEnumerable, float, float, float, float, float) Draw horizontal lines in Y Axis protected virtual void DrawHorizontalStepLines(ICanvas canvas, IEnumerable points, float width, float height, float origin, float originX, float finalX) Parameters canvas ICanvas Current canvas points IEnumerable Current chart calculated points width float Current canvas total Width height float Current Canvas total Height origin float Y origin coordinate originX float X coordinate that determines where the line should start finalX float X coordinate that determines where the line should end DrawLabels(ICanvas, PointF[], SizeF, float, float, float) Draws footer and value labels on current canvas protected virtual void DrawLabels(ICanvas canvas, PointF[] points, SizeF itemSize, float height, float footerHeight, float origin) Parameters canvas ICanvas Canvas to draw on points PointF[] Coordinates for each footer label itemSize SizeF Item size height float Control height footerHeight float Chart footer area height origin float Y axis origin coordinate DrawLabels(List, ICanvas, PointF[], SizeF, float, float, float) Draws footer and value labels on current canvas protected virtual void DrawLabels(List entries, ICanvas canvas, PointF[] points, SizeF itemSize, float height, float footerHeight, float origin) Parameters entries List canvas ICanvas Canvas to draw on points PointF[] Coordinates for each footer label itemSize SizeF Item size height float Control height footerHeight float Chart footer area height origin float Y axis origin coordinate DrawVerticalStepLines(ICanvas, PointF[], float, float) protected abstract void DrawVerticalStepLines(ICanvas canvas, PointF[] points, float origin, float maxPositiveValue) Parameters canvas ICanvas points PointF[] origin float maxPositiveValue float Entries_CollectionChanged(object, NotifyCollectionChangedEventArgs) protected virtual void Entries_CollectionChanged(object sender, NotifyCollectionChangedEventArgs e) Parameters sender object e NotifyCollectionChangedEventArgs Entry_PropertyChanged(object, PropertyChangedEventArgs) protected virtual void Entry_PropertyChanged(object sender, PropertyChangedEventArgs e) Parameters sender object e PropertyChangedEventArgs MeasureLabels() Gets the size for labels container rectangle by measuring text length protected virtual SizeF[] MeasureLabels() Returns SizeF[] Array with labels rectangle containers RequestInvalidate() Trigger Invalidate() method on ChartView() protected void RequestInvalidate() TruncateText(ICanvas, SizeF, string) Allows long words to be shortened by removing characters so it can fit within the provided area protected string TruncateText(ICanvas canvas, SizeF availableSize, string text) Parameters canvas ICanvas Canvas to draw on availableSize SizeF Represents the available width text string Text to truncate within the available area Returns string Truncated text" + }, + "api/AlohaKit.Controls.BusyIndicator.html": { + "href": "api/AlohaKit.Controls.BusyIndicator.html", + "title": "Class BusyIndicator | alohakit.controls", + "summary": "Class BusyIndicator Namespace AlohaKit.Controls Assembly AlohaKit.dll The BusyIndicator is a drawn control that provides a graphical representation to indicate an application or process is busy. public class BusyIndicator : GraphicsView, INotifyPropertyChanged, IVisualTreeElement, IEffectControlProvider, IToolTipElement, IContextFlyoutElement, IAnimatable, IViewController, IVisualElementController, IElementController, IGestureController, IGestureRecognizers, IPropertyMapperView, IHotReloadableView, IReplaceableView, IGraphicsView, IView, IElement, ITransform Inheritance object BindableObject Element NavigableElement VisualElement View GraphicsView BusyIndicator Implements INotifyPropertyChanged IVisualTreeElement IEffectControlProvider IToolTipElement IContextFlyoutElement IAnimatable IViewController IVisualElementController IElementController IGestureController IGestureRecognizers IPropertyMapperView IHotReloadableView IReplaceableView IGraphicsView IView IElement ITransform Inherited Members GraphicsView.DrawableProperty GraphicsView.Invalidate() GraphicsView.Drawable GraphicsView.StartHoverInteraction GraphicsView.MoveHoverInteraction GraphicsView.EndHoverInteraction GraphicsView.StartInteraction GraphicsView.DragInteraction GraphicsView.EndInteraction GraphicsView.CancelInteraction View.VerticalOptionsProperty View.HorizontalOptionsProperty View.MarginProperty View.propertyMapper View.ChangeVisualState() View.GetChildElements(Point) View.OnBindingContextChanged() View.GetRendererOverrides() View.GestureController View.GestureRecognizers View.HorizontalOptions View.Margin View.VerticalOptions VisualElement.NavigationProperty VisualElement.StyleProperty VisualElement.InputTransparentProperty VisualElement.IsEnabledProperty VisualElement.XProperty VisualElement.YProperty VisualElement.AnchorXProperty VisualElement.AnchorYProperty VisualElement.TranslationXProperty VisualElement.TranslationYProperty VisualElement.WidthProperty VisualElement.HeightProperty VisualElement.RotationProperty VisualElement.RotationXProperty VisualElement.RotationYProperty VisualElement.ScaleProperty VisualElement.ScaleXProperty VisualElement.ScaleYProperty VisualElement.ClipProperty VisualElement.VisualProperty VisualElement.IsVisibleProperty VisualElement.OpacityProperty VisualElement.BackgroundProperty VisualElement.BehaviorsProperty VisualElement.TriggersProperty VisualElement.WidthRequestProperty VisualElement.HeightRequestProperty VisualElement.MinimumWidthRequestProperty VisualElement.MinimumHeightRequestProperty VisualElement.MaximumWidthRequestProperty VisualElement.MaximumHeightRequestProperty VisualElement.IsFocusedProperty VisualElement.FlowDirectionProperty VisualElement.WindowProperty VisualElement.ShadowProperty VisualElement.ZIndexProperty VisualElement.ControlsVisualElementMapper VisualElement.BatchBegin() VisualElement.BatchCommit() VisualElement.Focus() VisualElement.Measure(double, double, MeasureFlags) VisualElement.Unfocus() VisualElement.InvalidateMeasure() VisualElement.OnChildAdded(Element) VisualElement.OnChildRemoved(Element, int) VisualElement.OnChildrenReordered() VisualElement.OnMeasure(double, double) VisualElement.OnSizeAllocated(double, double) VisualElement.SizeAllocated(double, double) VisualElement.RefreshIsEnabledProperty() VisualElement.Arrange(Rect) VisualElement.ArrangeOverride(Rect) VisualElement.Layout(Rect) VisualElement.InvalidateMeasureOverride() VisualElement.MeasureOverride(double, double) VisualElement.MapBackgroundColor(IViewHandler, IView) VisualElement.MapBackgroundImageSource(IViewHandler, IView) VisualElement.Visual VisualElement.FlowDirection VisualElement.Window VisualElement.AnchorX VisualElement.AnchorY VisualElement.Background VisualElement.Behaviors VisualElement.Bounds VisualElement.Height VisualElement.HeightRequest VisualElement.InputTransparent VisualElement.IsEnabled VisualElement.IsEnabledCore VisualElement.IsFocused VisualElement.IsVisible VisualElement.MinimumHeightRequest VisualElement.MinimumWidthRequest VisualElement.MaximumHeightRequest VisualElement.MaximumWidthRequest VisualElement.Opacity VisualElement.Rotation VisualElement.RotationX VisualElement.RotationY VisualElement.Scale VisualElement.ScaleX VisualElement.ScaleY VisualElement.TranslationX VisualElement.TranslationY VisualElement.Triggers VisualElement.Width VisualElement.WidthRequest VisualElement.X VisualElement.Y VisualElement.Clip VisualElement.Resources VisualElement.Frame VisualElement.Handler VisualElement.Shadow VisualElement.ZIndex VisualElement.DesiredSize VisualElement.IsLoaded VisualElement.ChildrenReordered VisualElement.Focused VisualElement.MeasureInvalidated VisualElement.SizeChanged VisualElement.Unfocused VisualElement.Loaded VisualElement.Unloaded NavigableElement.OnParentSet() NavigableElement.Navigation NavigableElement.Style NavigableElement.StyleClass NavigableElement.class Element.AutomationIdProperty Element.ClassIdProperty Element.ControlsElementMapper Element.InsertLogicalChild(int, Element) Element.AddLogicalChild(Element) Element.RemoveLogicalChild(Element) Element.ClearLogicalChildren() Element.FindByName(string) Element.RemoveDynamicResource(BindableProperty) Element.SetDynamicResource(BindableProperty, string) Element.OnPropertyChanged(string) Element.OnParentChanging(ParentChangingEventArgs) Element.OnHandlerChanging(HandlerChangingEventArgs) Element.OnHandlerChanged() Element.MapAutomationPropertiesIsInAccessibleTree(IElementHandler, Element) Element.MapAutomationPropertiesExcludedWithChildren(IElementHandler, Element) Element.AutomationId Element.ClassId Element.Effects Element.Id Element.StyleId Element.Parent Element.ChildAdded Element.ChildRemoved Element.DescendantAdded Element.DescendantRemoved Element.ParentChanging Element.ParentChanged Element.HandlerChanging Element.HandlerChanged BindableObject.BindingContextProperty BindableObject.ClearValue(BindableProperty) BindableObject.ClearValue(BindablePropertyKey) BindableObject.GetValue(BindableProperty) BindableObject.IsSet(BindableProperty) BindableObject.RemoveBinding(BindableProperty) BindableObject.SetBinding(BindableProperty, BindingBase) BindableObject.ApplyBindings() BindableObject.OnPropertyChanging(string) BindableObject.UnapplyBindings() BindableObject.SetValue(BindableProperty, object) BindableObject.SetValue(BindablePropertyKey, object) BindableObject.CoerceValue(BindableProperty) BindableObject.CoerceValue(BindablePropertyKey) BindableObject.Dispatcher BindableObject.BindingContext BindableObject.PropertyChanged BindableObject.PropertyChanging BindableObject.BindingContextChanged object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Constructors BusyIndicator() public BusyIndicator() Fields BackgroundColorProperty public static readonly BindableProperty BackgroundColorProperty Field Value BindableProperty ColorProperty public static readonly BindableProperty ColorProperty Field Value BindableProperty HasShadowProperty public static readonly BindableProperty HasShadowProperty Field Value BindableProperty ShadowColorProperty public static readonly BindableProperty ShadowColorProperty Field Value BindableProperty Properties BackgroundColor public Color BackgroundColor { get; set; } Property Value Color BusyIndicatorDrawable public BusyIndicatorDrawable BusyIndicatorDrawable { get; set; } Property Value BusyIndicatorDrawable Color public Color Color { get; set; } Property Value Color HasShadow public bool HasShadow { get; set; } Property Value bool ShadowColor public Color ShadowColor { get; set; } Property Value Color Methods OnParentChanged() When overridden in a derived class, should raise the ParentChanged event. protected override void OnParentChanged() Remarks It is the implementor's responsibility to raise the ParentChanged event." + }, + "api/AlohaKit.Controls.BusyIndicatorDrawable.html": { + "href": "api/AlohaKit.Controls.BusyIndicatorDrawable.html", + "title": "Class BusyIndicatorDrawable | alohakit.controls", + "summary": "Class BusyIndicatorDrawable Namespace AlohaKit.Controls Assembly AlohaKit.dll public class BusyIndicatorDrawable : IDrawable Inheritance object BusyIndicatorDrawable Implements IDrawable Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Constructors BusyIndicatorDrawable() public BusyIndicatorDrawable() Properties BackgroundColor public Color BackgroundColor { get; set; } Property Value Color Color public Color Color { get; set; } Property Value Color HasShadow public bool HasShadow { get; set; } Property Value bool Progress public double Progress { get; set; } Property Value double Rotation public double Rotation { get; set; } Property Value double ShadowColor public Color ShadowColor { get; set; } Property Value Color Methods Draw(ICanvas, RectF) public void Draw(ICanvas canvas, RectF dirtyRect) Parameters canvas ICanvas dirtyRect RectF DrawArc(ICanvas, RectF) public virtual void DrawArc(ICanvas canvas, RectF dirtyRect) Parameters canvas ICanvas dirtyRect RectF DrawBackground(ICanvas, RectF) public virtual void DrawBackground(ICanvas canvas, RectF dirtyRect) Parameters canvas ICanvas dirtyRect RectF DrawShadow(ICanvas, RectF) public virtual void DrawShadow(ICanvas canvas, RectF dirtyRect) Parameters canvas ICanvas dirtyRect RectF" + }, + "api/AlohaKit.Controls.Button.html": { + "href": "api/AlohaKit.Controls.Button.html", + "title": "Class Button | alohakit.controls", + "summary": "Class Button Namespace AlohaKit.Controls Assembly AlohaKit.dll The Button represents a customizable drawn button control. It allows developers to create interactive buttons with highly customizable designs, leveraging the power of lightweight graphics rendering. public class Button : GraphicsView, INotifyPropertyChanged, IVisualTreeElement, IEffectControlProvider, IToolTipElement, IContextFlyoutElement, IAnimatable, IViewController, IVisualElementController, IElementController, IGestureController, IGestureRecognizers, IPropertyMapperView, IHotReloadableView, IReplaceableView, IGraphicsView, IView, IElement, ITransform Inheritance object BindableObject Element NavigableElement VisualElement View GraphicsView Button Implements INotifyPropertyChanged IVisualTreeElement IEffectControlProvider IToolTipElement IContextFlyoutElement IAnimatable IViewController IVisualElementController IElementController IGestureController IGestureRecognizers IPropertyMapperView IHotReloadableView IReplaceableView IGraphicsView IView IElement ITransform Inherited Members GraphicsView.DrawableProperty GraphicsView.Invalidate() GraphicsView.Drawable GraphicsView.StartHoverInteraction GraphicsView.MoveHoverInteraction GraphicsView.EndHoverInteraction GraphicsView.StartInteraction GraphicsView.DragInteraction GraphicsView.EndInteraction GraphicsView.CancelInteraction View.VerticalOptionsProperty View.HorizontalOptionsProperty View.MarginProperty View.propertyMapper View.ChangeVisualState() View.GetChildElements(Point) View.OnBindingContextChanged() View.GetRendererOverrides() View.GestureController View.GestureRecognizers View.HorizontalOptions View.Margin View.VerticalOptions VisualElement.NavigationProperty VisualElement.StyleProperty VisualElement.InputTransparentProperty VisualElement.IsEnabledProperty VisualElement.XProperty VisualElement.YProperty VisualElement.AnchorXProperty VisualElement.AnchorYProperty VisualElement.TranslationXProperty VisualElement.TranslationYProperty VisualElement.WidthProperty VisualElement.HeightProperty VisualElement.RotationProperty VisualElement.RotationXProperty VisualElement.RotationYProperty VisualElement.ScaleProperty VisualElement.ScaleXProperty VisualElement.ScaleYProperty VisualElement.ClipProperty VisualElement.VisualProperty VisualElement.IsVisibleProperty VisualElement.OpacityProperty VisualElement.BehaviorsProperty VisualElement.TriggersProperty VisualElement.WidthRequestProperty VisualElement.HeightRequestProperty VisualElement.MinimumWidthRequestProperty VisualElement.MinimumHeightRequestProperty VisualElement.MaximumWidthRequestProperty VisualElement.MaximumHeightRequestProperty VisualElement.IsFocusedProperty VisualElement.FlowDirectionProperty VisualElement.WindowProperty VisualElement.ShadowProperty VisualElement.ZIndexProperty VisualElement.ControlsVisualElementMapper VisualElement.BatchBegin() VisualElement.BatchCommit() VisualElement.Focus() VisualElement.Measure(double, double, MeasureFlags) VisualElement.Unfocus() VisualElement.InvalidateMeasure() VisualElement.OnChildAdded(Element) VisualElement.OnChildRemoved(Element, int) VisualElement.OnChildrenReordered() VisualElement.OnMeasure(double, double) VisualElement.OnSizeAllocated(double, double) VisualElement.SizeAllocated(double, double) VisualElement.RefreshIsEnabledProperty() VisualElement.Arrange(Rect) VisualElement.ArrangeOverride(Rect) VisualElement.Layout(Rect) VisualElement.InvalidateMeasureOverride() VisualElement.MeasureOverride(double, double) VisualElement.MapBackgroundColor(IViewHandler, IView) VisualElement.MapBackgroundImageSource(IViewHandler, IView) VisualElement.Visual VisualElement.FlowDirection VisualElement.Window VisualElement.AnchorX VisualElement.AnchorY VisualElement.Behaviors VisualElement.Bounds VisualElement.Height VisualElement.HeightRequest VisualElement.InputTransparent VisualElement.IsEnabled VisualElement.IsEnabledCore VisualElement.IsFocused VisualElement.IsVisible VisualElement.MinimumHeightRequest VisualElement.MinimumWidthRequest VisualElement.MaximumHeightRequest VisualElement.MaximumWidthRequest VisualElement.Opacity VisualElement.Rotation VisualElement.RotationX VisualElement.RotationY VisualElement.Scale VisualElement.ScaleX VisualElement.ScaleY VisualElement.TranslationX VisualElement.TranslationY VisualElement.Triggers VisualElement.Width VisualElement.WidthRequest VisualElement.X VisualElement.Y VisualElement.Clip VisualElement.Resources VisualElement.Frame VisualElement.Handler VisualElement.Shadow VisualElement.ZIndex VisualElement.DesiredSize VisualElement.IsLoaded VisualElement.ChildrenReordered VisualElement.Focused VisualElement.MeasureInvalidated VisualElement.SizeChanged VisualElement.Unfocused VisualElement.Loaded VisualElement.Unloaded NavigableElement.OnParentSet() NavigableElement.Navigation NavigableElement.Style NavigableElement.StyleClass NavigableElement.class Element.AutomationIdProperty Element.ClassIdProperty Element.ControlsElementMapper Element.InsertLogicalChild(int, Element) Element.AddLogicalChild(Element) Element.RemoveLogicalChild(Element) Element.ClearLogicalChildren() Element.FindByName(string) Element.RemoveDynamicResource(BindableProperty) Element.SetDynamicResource(BindableProperty, string) Element.OnPropertyChanged(string) Element.OnParentChanging(ParentChangingEventArgs) Element.OnHandlerChanging(HandlerChangingEventArgs) Element.OnHandlerChanged() Element.MapAutomationPropertiesIsInAccessibleTree(IElementHandler, Element) Element.MapAutomationPropertiesExcludedWithChildren(IElementHandler, Element) Element.AutomationId Element.ClassId Element.Effects Element.Id Element.StyleId Element.Parent Element.ChildAdded Element.ChildRemoved Element.DescendantAdded Element.DescendantRemoved Element.ParentChanging Element.ParentChanged Element.HandlerChanging Element.HandlerChanged BindableObject.BindingContextProperty BindableObject.ClearValue(BindableProperty) BindableObject.ClearValue(BindablePropertyKey) BindableObject.GetValue(BindableProperty) BindableObject.IsSet(BindableProperty) BindableObject.RemoveBinding(BindableProperty) BindableObject.SetBinding(BindableProperty, BindingBase) BindableObject.ApplyBindings() BindableObject.OnPropertyChanging(string) BindableObject.UnapplyBindings() BindableObject.SetValue(BindableProperty, object) BindableObject.SetValue(BindablePropertyKey, object) BindableObject.CoerceValue(BindableProperty) BindableObject.CoerceValue(BindablePropertyKey) BindableObject.Dispatcher BindableObject.BindingContext BindableObject.PropertyChanged BindableObject.PropertyChanging BindableObject.BindingContextChanged object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Constructors Button() public Button() Fields BackgroundColorProperty public static readonly BindableProperty BackgroundColorProperty Field Value BindableProperty BackgroundProperty public static readonly BindableProperty BackgroundProperty Field Value BindableProperty CommandParameterProperty public static readonly BindableProperty CommandParameterProperty Field Value BindableProperty CommandProperty public static readonly BindableProperty CommandProperty Field Value BindableProperty CornerRadiusProperty public static readonly BindableProperty CornerRadiusProperty Field Value BindableProperty FontSizeProperty public static readonly BindableProperty FontSizeProperty Field Value BindableProperty HasShadowProperty public static readonly BindableProperty HasShadowProperty Field Value BindableProperty HorizontalTextAlignmentProperty public static readonly BindableProperty HorizontalTextAlignmentProperty Field Value BindableProperty PressedCommandParameterProperty public static readonly BindableProperty PressedCommandParameterProperty Field Value BindableProperty PressedCommandProperty public static readonly BindableProperty PressedCommandProperty Field Value BindableProperty ReleasedCommandParameterProperty public static readonly BindableProperty ReleasedCommandParameterProperty Field Value BindableProperty ReleasedCommandProperty public static readonly BindableProperty ReleasedCommandProperty Field Value BindableProperty ShadowColorProperty public static readonly BindableProperty ShadowColorProperty Field Value BindableProperty StrokeProperty public static readonly BindableProperty StrokeProperty Field Value BindableProperty StrokeThicknessProperty public static readonly BindableProperty StrokeThicknessProperty Field Value BindableProperty TextColorProperty public static readonly BindableProperty TextColorProperty Field Value BindableProperty TextProperty public static readonly BindableProperty TextProperty Field Value BindableProperty VerticalTextAlignmentProperty public static readonly BindableProperty VerticalTextAlignmentProperty Field Value BindableProperty Properties Background public Brush Background { get; set; } Property Value Brush BackgroundColor public Color BackgroundColor { get; set; } Property Value Color ButtonDrawable public ButtonDrawable ButtonDrawable { get; set; } Property Value ButtonDrawable Command public ICommand Command { get; set; } Property Value ICommand CommandParameter public object CommandParameter { get; set; } Property Value object CornerRadius public CornerRadius CornerRadius { get; set; } Property Value CornerRadius FontSize public float FontSize { get; set; } Property Value float HasShadow public bool HasShadow { get; set; } Property Value bool HorizontalTextAlignment public TextAlignment HorizontalTextAlignment { get; set; } Property Value TextAlignment PressedCommand public ICommand PressedCommand { get; set; } Property Value ICommand PressedCommandParameter public object PressedCommandParameter { get; set; } Property Value object ReleasedCommand public ICommand ReleasedCommand { get; set; } Property Value ICommand ReleasedCommandParameter public object ReleasedCommandParameter { get; set; } Property Value object ShadowColor public Color ShadowColor { get; set; } Property Value Color Stroke public Brush Stroke { get; set; } Property Value Brush StrokeThickness public double StrokeThickness { get; set; } Property Value double Text public string Text { get; set; } Property Value string TextColor public Color TextColor { get; set; } Property Value Color VerticalTextAlignment public TextAlignment VerticalTextAlignment { get; set; } Property Value TextAlignment Methods OnParentChanged() When overridden in a derived class, should raise the ParentChanged event. protected override void OnParentChanged() Remarks It is the implementor's responsibility to raise the ParentChanged event. Events Clicked public event EventHandler Clicked Event Type EventHandler Pressed public event EventHandler Pressed Event Type EventHandler Released public event EventHandler Released Event Type EventHandler" + }, + "api/AlohaKit.Controls.ButtonDrawable.html": { + "href": "api/AlohaKit.Controls.ButtonDrawable.html", + "title": "Class ButtonDrawable | alohakit.controls", + "summary": "Class ButtonDrawable Namespace AlohaKit.Controls Assembly AlohaKit.dll public class ButtonDrawable : IDrawable Inheritance object ButtonDrawable Implements IDrawable Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Constructors ButtonDrawable() public ButtonDrawable() Properties BackgroundPaint public Paint BackgroundPaint { get; set; } Property Value Paint CornerRadius public CornerRadius CornerRadius { get; set; } Property Value CornerRadius FontSize public float FontSize { get; set; } Property Value float HasShadow public bool HasShadow { get; set; } Property Value bool HorizontalTextAlignment public TextAlignment HorizontalTextAlignment { get; set; } Property Value TextAlignment ShadowColor public Color ShadowColor { get; set; } Property Value Color StrokePaint public Paint StrokePaint { get; set; } Property Value Paint StrokeThickness public double StrokeThickness { get; set; } Property Value double Text public string Text { get; set; } Property Value string TextColor public Color TextColor { get; set; } Property Value Color VerticalTextAlignment public TextAlignment VerticalTextAlignment { get; set; } Property Value TextAlignment Methods Draw(ICanvas, RectF) public void Draw(ICanvas canvas, RectF dirtyRect) Parameters canvas ICanvas dirtyRect RectF DrawBackground(ICanvas, RectF) public virtual void DrawBackground(ICanvas canvas, RectF dirtyRect) Parameters canvas ICanvas dirtyRect RectF DrawRippleEffect(ICanvas, RectF) public virtual void DrawRippleEffect(ICanvas canvas, RectF dirtyRect) Parameters canvas ICanvas dirtyRect RectF DrawShadow(ICanvas, RectF) public virtual void DrawShadow(ICanvas canvas, RectF dirtyRect) Parameters canvas ICanvas dirtyRect RectF DrawStroke(ICanvas, RectF) public virtual void DrawStroke(ICanvas canvas, RectF dirtyRect) Parameters canvas ICanvas dirtyRect RectF DrawText(ICanvas, RectF) public virtual void DrawText(ICanvas canvas, RectF dirtyRect) Parameters canvas ICanvas dirtyRect RectF" + }, + "api/AlohaKit.Controls.Captcha.html": { + "href": "api/AlohaKit.Controls.Captcha.html", + "title": "Class Captcha | alohakit.controls", + "summary": "Class Captcha Namespace AlohaKit.Controls Assembly AlohaKit.dll The Captcha is a drawn control used to render and manage CAPTCHA (Completely Automated Public Turing test to tell Computers and Humans Apart) challenges. It leverages .NET MAUI Graphics for efficient graphical rendering and provides a flexible way to generate and validate CAPTCHAs in an application. public class Captcha : GraphicsView, INotifyPropertyChanged, IVisualTreeElement, IEffectControlProvider, IToolTipElement, IContextFlyoutElement, IAnimatable, IViewController, IVisualElementController, IElementController, IGestureController, IGestureRecognizers, IPropertyMapperView, IHotReloadableView, IReplaceableView, IGraphicsView, IView, IElement, ITransform Inheritance object BindableObject Element NavigableElement VisualElement View GraphicsView Captcha Implements INotifyPropertyChanged IVisualTreeElement IEffectControlProvider IToolTipElement IContextFlyoutElement IAnimatable IViewController IVisualElementController IElementController IGestureController IGestureRecognizers IPropertyMapperView IHotReloadableView IReplaceableView IGraphicsView IView IElement ITransform Inherited Members GraphicsView.DrawableProperty GraphicsView.Invalidate() GraphicsView.Drawable GraphicsView.StartHoverInteraction GraphicsView.MoveHoverInteraction GraphicsView.EndHoverInteraction GraphicsView.StartInteraction GraphicsView.DragInteraction GraphicsView.EndInteraction GraphicsView.CancelInteraction View.VerticalOptionsProperty View.HorizontalOptionsProperty View.MarginProperty View.propertyMapper View.ChangeVisualState() View.GetChildElements(Point) View.OnBindingContextChanged() View.GetRendererOverrides() View.GestureController View.GestureRecognizers View.HorizontalOptions View.Margin View.VerticalOptions VisualElement.NavigationProperty VisualElement.StyleProperty VisualElement.InputTransparentProperty VisualElement.IsEnabledProperty VisualElement.XProperty VisualElement.YProperty VisualElement.AnchorXProperty VisualElement.AnchorYProperty VisualElement.TranslationXProperty VisualElement.TranslationYProperty VisualElement.WidthProperty VisualElement.HeightProperty VisualElement.RotationProperty VisualElement.RotationXProperty VisualElement.RotationYProperty VisualElement.ScaleProperty VisualElement.ScaleXProperty VisualElement.ScaleYProperty VisualElement.ClipProperty VisualElement.VisualProperty VisualElement.IsVisibleProperty VisualElement.OpacityProperty VisualElement.BackgroundColorProperty VisualElement.BackgroundProperty VisualElement.BehaviorsProperty VisualElement.TriggersProperty VisualElement.WidthRequestProperty VisualElement.HeightRequestProperty VisualElement.MinimumWidthRequestProperty VisualElement.MinimumHeightRequestProperty VisualElement.MaximumWidthRequestProperty VisualElement.MaximumHeightRequestProperty VisualElement.IsFocusedProperty VisualElement.FlowDirectionProperty VisualElement.WindowProperty VisualElement.ShadowProperty VisualElement.ZIndexProperty VisualElement.ControlsVisualElementMapper VisualElement.BatchBegin() VisualElement.BatchCommit() VisualElement.Focus() VisualElement.Measure(double, double, MeasureFlags) VisualElement.Unfocus() VisualElement.InvalidateMeasure() VisualElement.OnChildAdded(Element) VisualElement.OnChildRemoved(Element, int) VisualElement.OnChildrenReordered() VisualElement.OnMeasure(double, double) VisualElement.OnSizeAllocated(double, double) VisualElement.SizeAllocated(double, double) VisualElement.RefreshIsEnabledProperty() VisualElement.Arrange(Rect) VisualElement.ArrangeOverride(Rect) VisualElement.Layout(Rect) VisualElement.InvalidateMeasureOverride() VisualElement.MeasureOverride(double, double) VisualElement.MapBackgroundColor(IViewHandler, IView) VisualElement.MapBackgroundImageSource(IViewHandler, IView) VisualElement.Visual VisualElement.FlowDirection VisualElement.Window VisualElement.AnchorX VisualElement.AnchorY VisualElement.BackgroundColor VisualElement.Background VisualElement.Behaviors VisualElement.Bounds VisualElement.Height VisualElement.HeightRequest VisualElement.InputTransparent VisualElement.IsEnabled VisualElement.IsEnabledCore VisualElement.IsFocused VisualElement.IsVisible VisualElement.MinimumHeightRequest VisualElement.MinimumWidthRequest VisualElement.MaximumHeightRequest VisualElement.MaximumWidthRequest VisualElement.Opacity VisualElement.Rotation VisualElement.RotationX VisualElement.RotationY VisualElement.Scale VisualElement.ScaleX VisualElement.ScaleY VisualElement.TranslationX VisualElement.TranslationY VisualElement.Triggers VisualElement.Width VisualElement.WidthRequest VisualElement.X VisualElement.Y VisualElement.Clip VisualElement.Resources VisualElement.Frame VisualElement.Handler VisualElement.Shadow VisualElement.ZIndex VisualElement.DesiredSize VisualElement.IsLoaded VisualElement.ChildrenReordered VisualElement.Focused VisualElement.MeasureInvalidated VisualElement.SizeChanged VisualElement.Unfocused VisualElement.Loaded VisualElement.Unloaded NavigableElement.OnParentSet() NavigableElement.Navigation NavigableElement.Style NavigableElement.StyleClass NavigableElement.class Element.AutomationIdProperty Element.ClassIdProperty Element.ControlsElementMapper Element.InsertLogicalChild(int, Element) Element.AddLogicalChild(Element) Element.RemoveLogicalChild(Element) Element.ClearLogicalChildren() Element.FindByName(string) Element.RemoveDynamicResource(BindableProperty) Element.SetDynamicResource(BindableProperty, string) Element.OnPropertyChanged(string) Element.OnParentChanging(ParentChangingEventArgs) Element.OnHandlerChanging(HandlerChangingEventArgs) Element.OnHandlerChanged() Element.MapAutomationPropertiesIsInAccessibleTree(IElementHandler, Element) Element.MapAutomationPropertiesExcludedWithChildren(IElementHandler, Element) Element.AutomationId Element.ClassId Element.Effects Element.Id Element.StyleId Element.Parent Element.ChildAdded Element.ChildRemoved Element.DescendantAdded Element.DescendantRemoved Element.ParentChanging Element.ParentChanged Element.HandlerChanging Element.HandlerChanged BindableObject.BindingContextProperty BindableObject.ClearValue(BindableProperty) BindableObject.ClearValue(BindablePropertyKey) BindableObject.GetValue(BindableProperty) BindableObject.IsSet(BindableProperty) BindableObject.RemoveBinding(BindableProperty) BindableObject.SetBinding(BindableProperty, BindingBase) BindableObject.ApplyBindings() BindableObject.OnPropertyChanging(string) BindableObject.UnapplyBindings() BindableObject.SetValue(BindableProperty, object) BindableObject.SetValue(BindablePropertyKey, object) BindableObject.CoerceValue(BindableProperty) BindableObject.CoerceValue(BindablePropertyKey) BindableObject.Dispatcher BindableObject.BindingContext BindableObject.PropertyChanged BindableObject.PropertyChanging BindableObject.BindingContextChanged object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Constructors Captcha() public Captcha() Fields LevelProperty public static readonly BindableProperty LevelProperty Field Value BindableProperty TextColorProperty public static readonly BindableProperty TextColorProperty Field Value BindableProperty Properties CaptchaDrawable public CaptchaDrawable CaptchaDrawable { get; set; } Property Value CaptchaDrawable Level public CaptchaLevel Level { get; set; } Property Value CaptchaLevel TextColor public Color TextColor { get; set; } Property Value Color Methods OnParentChanged() When overridden in a derived class, should raise the ParentChanged event. protected override void OnParentChanged() Remarks It is the implementor's responsibility to raise the ParentChanged event." + }, + "api/AlohaKit.Controls.CaptchaDrawable.html": { + "href": "api/AlohaKit.Controls.CaptchaDrawable.html", + "title": "Class CaptchaDrawable | alohakit.controls", + "summary": "Class CaptchaDrawable Namespace AlohaKit.Controls Assembly AlohaKit.dll public class CaptchaDrawable : IDrawable Inheritance object CaptchaDrawable Implements IDrawable Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Properties Level public CaptchaLevel Level { get; set; } Property Value CaptchaLevel TextColor public Color TextColor { get; set; } Property Value Color Word public string Word { get; set; } Property Value string Methods Draw(ICanvas, RectF) public void Draw(ICanvas canvas, RectF dirtyRect) Parameters canvas ICanvas dirtyRect RectF DrawArtifacts(ICanvas, RectF) public virtual void DrawArtifacts(ICanvas canvas, RectF dirtyRect) Parameters canvas ICanvas dirtyRect RectF DrawText(ICanvas, RectF) public virtual void DrawText(ICanvas canvas, RectF dirtyRect) Parameters canvas ICanvas dirtyRect RectF" + }, + "api/AlohaKit.Controls.CaptchaLevel.html": { + "href": "api/AlohaKit.Controls.CaptchaLevel.html", + "title": "Enum CaptchaLevel | alohakit.controls", + "summary": "Enum CaptchaLevel Namespace AlohaKit.Controls Assembly AlohaKit.dll The CaptchaLevel enumeration defines the different levels of complexity for CAPTCHA (Completely Automated Public Turing test to tell Computers and Humans Apart) challenges. This can be used to configure or determine the strength of a CAPTCHA system, balancing between ease of use and security requirements. public enum CaptchaLevel Fields Normal = 1 Strong = 2 Weak = 0" + }, + "api/AlohaKit.Controls.CheckBox.html": { + "href": "api/AlohaKit.Controls.CheckBox.html", + "title": "Class CheckBox | alohakit.controls", + "summary": "Class CheckBox Namespace AlohaKit.Controls Assembly AlohaKit.dll The CheckBox is a custom drawn control that represents a checkbox for selecting or deselecting options. It is highly customizable while maintaining efficient rendering capabilities. public class CheckBox : GraphicsView, INotifyPropertyChanged, IVisualTreeElement, IEffectControlProvider, IToolTipElement, IContextFlyoutElement, IAnimatable, IViewController, IVisualElementController, IElementController, IGestureController, IGestureRecognizers, IPropertyMapperView, IHotReloadableView, IReplaceableView, IGraphicsView, IView, IElement, ITransform Inheritance object BindableObject Element NavigableElement VisualElement View GraphicsView CheckBox Implements INotifyPropertyChanged IVisualTreeElement IEffectControlProvider IToolTipElement IContextFlyoutElement IAnimatable IViewController IVisualElementController IElementController IGestureController IGestureRecognizers IPropertyMapperView IHotReloadableView IReplaceableView IGraphicsView IView IElement ITransform Inherited Members GraphicsView.DrawableProperty GraphicsView.Invalidate() GraphicsView.Drawable GraphicsView.StartHoverInteraction GraphicsView.MoveHoverInteraction GraphicsView.EndHoverInteraction GraphicsView.StartInteraction GraphicsView.DragInteraction GraphicsView.EndInteraction GraphicsView.CancelInteraction View.VerticalOptionsProperty View.HorizontalOptionsProperty View.MarginProperty View.propertyMapper View.ChangeVisualState() View.GetChildElements(Point) View.OnBindingContextChanged() View.GetRendererOverrides() View.GestureController View.GestureRecognizers View.HorizontalOptions View.Margin View.VerticalOptions VisualElement.NavigationProperty VisualElement.StyleProperty VisualElement.InputTransparentProperty VisualElement.IsEnabledProperty VisualElement.XProperty VisualElement.YProperty VisualElement.AnchorXProperty VisualElement.AnchorYProperty VisualElement.TranslationXProperty VisualElement.TranslationYProperty VisualElement.WidthProperty VisualElement.HeightProperty VisualElement.RotationProperty VisualElement.RotationXProperty VisualElement.RotationYProperty VisualElement.ScaleProperty VisualElement.ScaleXProperty VisualElement.ScaleYProperty VisualElement.ClipProperty VisualElement.VisualProperty VisualElement.IsVisibleProperty VisualElement.OpacityProperty VisualElement.BackgroundColorProperty VisualElement.BackgroundProperty VisualElement.BehaviorsProperty VisualElement.TriggersProperty VisualElement.WidthRequestProperty VisualElement.HeightRequestProperty VisualElement.MinimumWidthRequestProperty VisualElement.MinimumHeightRequestProperty VisualElement.MaximumWidthRequestProperty VisualElement.MaximumHeightRequestProperty VisualElement.IsFocusedProperty VisualElement.FlowDirectionProperty VisualElement.WindowProperty VisualElement.ShadowProperty VisualElement.ZIndexProperty VisualElement.ControlsVisualElementMapper VisualElement.BatchBegin() VisualElement.BatchCommit() VisualElement.Focus() VisualElement.Measure(double, double, MeasureFlags) VisualElement.Unfocus() VisualElement.InvalidateMeasure() VisualElement.OnChildAdded(Element) VisualElement.OnChildRemoved(Element, int) VisualElement.OnChildrenReordered() VisualElement.OnMeasure(double, double) VisualElement.OnSizeAllocated(double, double) VisualElement.SizeAllocated(double, double) VisualElement.RefreshIsEnabledProperty() VisualElement.Arrange(Rect) VisualElement.ArrangeOverride(Rect) VisualElement.Layout(Rect) VisualElement.InvalidateMeasureOverride() VisualElement.MeasureOverride(double, double) VisualElement.MapBackgroundColor(IViewHandler, IView) VisualElement.MapBackgroundImageSource(IViewHandler, IView) VisualElement.Visual VisualElement.FlowDirection VisualElement.Window VisualElement.AnchorX VisualElement.AnchorY VisualElement.BackgroundColor VisualElement.Background VisualElement.Behaviors VisualElement.Bounds VisualElement.Height VisualElement.HeightRequest VisualElement.InputTransparent VisualElement.IsEnabled VisualElement.IsEnabledCore VisualElement.IsFocused VisualElement.IsVisible VisualElement.MinimumHeightRequest VisualElement.MinimumWidthRequest VisualElement.MaximumHeightRequest VisualElement.MaximumWidthRequest VisualElement.Opacity VisualElement.Rotation VisualElement.RotationX VisualElement.RotationY VisualElement.Scale VisualElement.ScaleX VisualElement.ScaleY VisualElement.TranslationX VisualElement.TranslationY VisualElement.Triggers VisualElement.Width VisualElement.WidthRequest VisualElement.X VisualElement.Y VisualElement.Clip VisualElement.Resources VisualElement.Frame VisualElement.Handler VisualElement.Shadow VisualElement.ZIndex VisualElement.DesiredSize VisualElement.IsLoaded VisualElement.ChildrenReordered VisualElement.Focused VisualElement.MeasureInvalidated VisualElement.SizeChanged VisualElement.Unfocused VisualElement.Loaded VisualElement.Unloaded NavigableElement.OnParentSet() NavigableElement.Navigation NavigableElement.Style NavigableElement.StyleClass NavigableElement.class Element.AutomationIdProperty Element.ClassIdProperty Element.ControlsElementMapper Element.InsertLogicalChild(int, Element) Element.AddLogicalChild(Element) Element.RemoveLogicalChild(Element) Element.ClearLogicalChildren() Element.FindByName(string) Element.RemoveDynamicResource(BindableProperty) Element.SetDynamicResource(BindableProperty, string) Element.OnPropertyChanged(string) Element.OnParentChanging(ParentChangingEventArgs) Element.OnHandlerChanging(HandlerChangingEventArgs) Element.OnHandlerChanged() Element.MapAutomationPropertiesIsInAccessibleTree(IElementHandler, Element) Element.MapAutomationPropertiesExcludedWithChildren(IElementHandler, Element) Element.AutomationId Element.ClassId Element.Effects Element.Id Element.StyleId Element.Parent Element.ChildAdded Element.ChildRemoved Element.DescendantAdded Element.DescendantRemoved Element.ParentChanging Element.ParentChanged Element.HandlerChanging Element.HandlerChanged BindableObject.BindingContextProperty BindableObject.ClearValue(BindableProperty) BindableObject.ClearValue(BindablePropertyKey) BindableObject.GetValue(BindableProperty) BindableObject.IsSet(BindableProperty) BindableObject.RemoveBinding(BindableProperty) BindableObject.SetBinding(BindableProperty, BindingBase) BindableObject.ApplyBindings() BindableObject.OnPropertyChanging(string) BindableObject.UnapplyBindings() BindableObject.SetValue(BindableProperty, object) BindableObject.SetValue(BindablePropertyKey, object) BindableObject.CoerceValue(BindableProperty) BindableObject.CoerceValue(BindablePropertyKey) BindableObject.Dispatcher BindableObject.BindingContext BindableObject.PropertyChanged BindableObject.PropertyChanging BindableObject.BindingContextChanged object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Constructors CheckBox() public CheckBox() Fields CheckedBrushProperty public static readonly BindableProperty CheckedBrushProperty Field Value BindableProperty CheckedCommandParameterProperty public static readonly BindableProperty CheckedCommandParameterProperty Field Value BindableProperty CheckedCommandProperty public static readonly BindableProperty CheckedCommandProperty Field Value BindableProperty IsCheckedProperty public static readonly BindableProperty IsCheckedProperty Field Value BindableProperty StrokeProperty public static readonly BindableProperty StrokeProperty Field Value BindableProperty StrokeThicknessProperty public static readonly BindableProperty StrokeThicknessProperty Field Value BindableProperty UncheckedBrushProperty public static readonly BindableProperty UncheckedBrushProperty Field Value BindableProperty UncheckedCommandParameterProperty public static readonly BindableProperty UncheckedCommandParameterProperty Field Value BindableProperty UncheckedCommandProperty public static readonly BindableProperty UncheckedCommandProperty Field Value BindableProperty Properties CheckBoxDrawable public CheckBoxDrawable CheckBoxDrawable { get; set; } Property Value CheckBoxDrawable CheckedBrush public Brush CheckedBrush { get; set; } Property Value Brush CheckedCommand public ICommand CheckedCommand { get; set; } Property Value ICommand CheckedCommandParameter public object CheckedCommandParameter { get; set; } Property Value object IsChecked public bool IsChecked { get; set; } Property Value bool Stroke public Brush Stroke { get; set; } Property Value Brush StrokeThickness public double StrokeThickness { get; set; } Property Value double UncheckedBrush public Brush UncheckedBrush { get; set; } Property Value Brush UncheckedCommand public ICommand UncheckedCommand { get; set; } Property Value ICommand UncheckedCommandParameter public object UncheckedCommandParameter { get; set; } Property Value object Methods OnParentChanged() When overridden in a derived class, should raise the ParentChanged event. protected override void OnParentChanged() Remarks It is the implementor's responsibility to raise the ParentChanged event. Events CheckedChanged public event EventHandler CheckedChanged Event Type EventHandler" + }, + "api/AlohaKit.Controls.CheckBoxDrawable.html": { + "href": "api/AlohaKit.Controls.CheckBoxDrawable.html", + "title": "Class CheckBoxDrawable | alohakit.controls", + "summary": "Class CheckBoxDrawable Namespace AlohaKit.Controls Assembly AlohaKit.dll public class CheckBoxDrawable : IDrawable Inheritance object CheckBoxDrawable Implements IDrawable Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Properties CheckedPaint public Paint CheckedPaint { get; set; } Property Value Paint IsChecked public bool IsChecked { get; set; } Property Value bool StrokePaint public Paint StrokePaint { get; set; } Property Value Paint StrokeThickness public double StrokeThickness { get; set; } Property Value double UncheckedPaint public Paint UncheckedPaint { get; set; } Property Value Paint Methods Draw(ICanvas, RectF) public void Draw(ICanvas canvas, RectF dirtyRect) Parameters canvas ICanvas dirtyRect RectF DrawBackground(ICanvas, RectF) public virtual void DrawBackground(ICanvas canvas, RectF dirtyRect) Parameters canvas ICanvas dirtyRect RectF DrawCheck(ICanvas, RectF) public virtual void DrawCheck(ICanvas canvas, RectF dirtyRect) Parameters canvas ICanvas dirtyRect RectF" + }, + "api/AlohaKit.Controls.LineChart.html": { + "href": "api/AlohaKit.Controls.LineChart.html", + "title": "Class LineChart | alohakit.controls", + "summary": "Class LineChart Namespace AlohaKit.Controls Assembly AlohaKit.dll The LineChart provides a drawn control to visualize data as a line chart. It allows data points to be represented by a continuous line, making it ideal for showing trends over time or relationships between variables. This class inherits from BaseChart, leveraging shared charting functionality while adding line-specific rendering features. public sealed class LineChart : BaseChart, INotifyPropertyChanged, IVisualTreeElement, IEffectControlProvider, IToolTipElement, IContextFlyoutElement, IAnimatable, IViewController, IVisualElementController, IElementController, IGestureController, IGestureRecognizers, IPropertyMapperView, IHotReloadableView, IReplaceableView, IGraphicsView, IView, IElement, ITransform, IDisposable Inheritance object BindableObject Element NavigableElement VisualElement View GraphicsView BaseChart LineChart Implements INotifyPropertyChanged IVisualTreeElement IEffectControlProvider IToolTipElement IContextFlyoutElement IAnimatable IViewController IVisualElementController IElementController IGestureController IGestureRecognizers IPropertyMapperView IHotReloadableView IReplaceableView IGraphicsView IView IElement ITransform IDisposable Inherited Members BaseChart.EasingProperty BaseChart.Easing BaseChart.BackgroundProperty BaseChart.Background BaseChart.AxisDashPatternProperty BaseChart.AxisDashPattern BaseChart.DisplayHeaderValuesProperty BaseChart.DisplayHeaderValues BaseChart.PathsColorOpacityProperty BaseChart.PathsColorOpacity BaseChart.AxisLinesFontSizeProperty BaseChart.AxisLinesFontSize BaseChart.AxisLineColorProperty BaseChart.AxisLinesColor BaseChart.AxisLinesStrokeSizeProperty BaseChart.AxisLinesStrokeSize BaseChart.DisplayVerticalAxisLinesProperty BaseChart.DisplayVerticalAxisLines BaseChart.DisplayHorizontalAxisLinesProperty BaseChart.DisplayHorizontalAxisLines BaseChart.AnimationIntervalProperty BaseChart.AnimationInterval BaseChart.ReanimateOnPropertyChangedProperty BaseChart.ReanimateOnPropertyChanged BaseChart.EnableEntryAnimationsProperty BaseChart.EnableEntryAnimations BaseChart.EntriesProperty BaseChart.Entries BaseChart.IsLabelTextTruncationEnabledProperty BaseChart.IsLabelTextTruncationEnabled BaseChart.DisplayValueLabelsOnTopProperty BaseChart.DisplayValueLabelsOnTop BaseChart.StrokeSizeProperty BaseChart.StrokeSize BaseChart.StrokeColorProperty BaseChart.StrokeColor BaseChart.ItemSeparationMarginProperty BaseChart.ItemSeparationMargin BaseChart.FooterLabelsTextSizeProperty BaseChart.FooterLabelsTextSize BaseChart.FooterLabelsMarginProperty BaseChart.FooterLabelsMargin BaseChart.HeaderValuesMarginProperty BaseChart.HeaderValuesMargin BaseChart.FillColorProperty BaseChart.FillColor BaseChart.FontFamilyProperty BaseChart.FontFamily BaseChart.FontSizeProperty BaseChart.FontSize BaseChart.ChartMarginProperty BaseChart.ChartMargin BaseChart.FontColorProperty BaseChart.FontColor BaseChart.FooterLabelsFontColorProperty BaseChart.FooterLabelsFontColor BaseChart.EnableAntialiasProperty BaseChart.EnableAntialias BaseChart.Dispose() GraphicsView.DrawableProperty GraphicsView.Invalidate() GraphicsView.Drawable GraphicsView.StartHoverInteraction GraphicsView.MoveHoverInteraction GraphicsView.EndHoverInteraction GraphicsView.StartInteraction GraphicsView.DragInteraction GraphicsView.EndInteraction GraphicsView.CancelInteraction View.VerticalOptionsProperty View.HorizontalOptionsProperty View.MarginProperty View.GetChildElements(Point) View.GestureRecognizers View.HorizontalOptions View.Margin View.VerticalOptions VisualElement.NavigationProperty VisualElement.StyleProperty VisualElement.InputTransparentProperty VisualElement.IsEnabledProperty VisualElement.XProperty VisualElement.YProperty VisualElement.AnchorXProperty VisualElement.AnchorYProperty VisualElement.TranslationXProperty VisualElement.TranslationYProperty VisualElement.WidthProperty VisualElement.HeightProperty VisualElement.RotationProperty VisualElement.RotationXProperty VisualElement.RotationYProperty VisualElement.ScaleProperty VisualElement.ScaleXProperty VisualElement.ScaleYProperty VisualElement.ClipProperty VisualElement.VisualProperty VisualElement.IsVisibleProperty VisualElement.OpacityProperty VisualElement.BackgroundColorProperty VisualElement.BehaviorsProperty VisualElement.TriggersProperty VisualElement.WidthRequestProperty VisualElement.HeightRequestProperty VisualElement.MinimumWidthRequestProperty VisualElement.MinimumHeightRequestProperty VisualElement.MaximumWidthRequestProperty VisualElement.MaximumHeightRequestProperty VisualElement.IsFocusedProperty VisualElement.FlowDirectionProperty VisualElement.WindowProperty VisualElement.ShadowProperty VisualElement.ZIndexProperty VisualElement.ControlsVisualElementMapper VisualElement.BatchBegin() VisualElement.BatchCommit() VisualElement.Focus() VisualElement.Measure(double, double, MeasureFlags) VisualElement.Unfocus() VisualElement.Arrange(Rect) VisualElement.Layout(Rect) VisualElement.MapBackgroundColor(IViewHandler, IView) VisualElement.MapBackgroundImageSource(IViewHandler, IView) VisualElement.Visual VisualElement.FlowDirection VisualElement.Window VisualElement.AnchorX VisualElement.AnchorY VisualElement.BackgroundColor VisualElement.Behaviors VisualElement.Bounds VisualElement.Height VisualElement.HeightRequest VisualElement.InputTransparent VisualElement.IsEnabled VisualElement.IsFocused VisualElement.IsVisible VisualElement.MinimumHeightRequest VisualElement.MinimumWidthRequest VisualElement.MaximumHeightRequest VisualElement.MaximumWidthRequest VisualElement.Opacity VisualElement.Rotation VisualElement.RotationX VisualElement.RotationY VisualElement.Scale VisualElement.ScaleX VisualElement.ScaleY VisualElement.TranslationX VisualElement.TranslationY VisualElement.Triggers VisualElement.Width VisualElement.WidthRequest VisualElement.X VisualElement.Y VisualElement.Clip VisualElement.Resources VisualElement.Frame VisualElement.Handler VisualElement.Shadow VisualElement.ZIndex VisualElement.DesiredSize VisualElement.IsLoaded VisualElement.ChildrenReordered VisualElement.Focused VisualElement.MeasureInvalidated VisualElement.SizeChanged VisualElement.Unfocused VisualElement.Loaded VisualElement.Unloaded NavigableElement.Navigation NavigableElement.Style NavigableElement.StyleClass NavigableElement.class Element.AutomationIdProperty Element.ClassIdProperty Element.ControlsElementMapper Element.InsertLogicalChild(int, Element) Element.AddLogicalChild(Element) Element.RemoveLogicalChild(Element) Element.ClearLogicalChildren() Element.FindByName(string) Element.RemoveDynamicResource(BindableProperty) Element.SetDynamicResource(BindableProperty, string) Element.MapAutomationPropertiesIsInAccessibleTree(IElementHandler, Element) Element.MapAutomationPropertiesExcludedWithChildren(IElementHandler, Element) Element.AutomationId Element.ClassId Element.Effects Element.Id Element.StyleId Element.Parent Element.ChildAdded Element.ChildRemoved Element.DescendantAdded Element.DescendantRemoved Element.ParentChanging Element.ParentChanged Element.HandlerChanging Element.HandlerChanged BindableObject.BindingContextProperty BindableObject.ClearValue(BindableProperty) BindableObject.ClearValue(BindablePropertyKey) BindableObject.GetValue(BindableProperty) BindableObject.IsSet(BindableProperty) BindableObject.RemoveBinding(BindableProperty) BindableObject.SetBinding(BindableProperty, BindingBase) BindableObject.SetValue(BindableProperty, object) BindableObject.SetValue(BindablePropertyKey, object) BindableObject.CoerceValue(BindableProperty) BindableObject.CoerceValue(BindablePropertyKey) BindableObject.Dispatcher BindableObject.BindingContext BindableObject.PropertyChanged BindableObject.PropertyChanging BindableObject.BindingContextChanged object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.ReferenceEquals(object, object) object.ToString() Constructors LineChart() public LineChart() Fields ChartStyleProperty public static readonly BindableProperty ChartStyleProperty Field Value BindableProperty CurveFactorProperty public static readonly BindableProperty CurveFactorProperty Field Value BindableProperty ExpandAndFillBackgroundCurvePathProperty public static readonly BindableProperty ExpandAndFillBackgroundCurvePathProperty Field Value BindableProperty FillCurveColorProperty public static readonly BindableProperty FillCurveColorProperty Field Value BindableProperty IsCurveBackgroundFilledProperty public static readonly BindableProperty IsCurveBackgroundFilledProperty Field Value BindableProperty LineColorProperty public static readonly BindableProperty LineColorProperty Field Value BindableProperty PointColorProperty public static readonly BindableProperty PointColorProperty Field Value BindableProperty PointSizeProperty public static readonly BindableProperty PointSizeProperty Field Value BindableProperty ShowPointsForCurveStyleProperty public static readonly BindableProperty ShowPointsForCurveStyleProperty Field Value BindableProperty Properties ChartStyle Defines the style for the current LineChart public ChartEnums.LineChartStyle ChartStyle { get; set; } Property Value ChartEnums.LineChartStyle CurveFactor Sets how 'curvy' the bezier curve will be when drawn. Accepts values between 0-1. Default is 0.6 public float CurveFactor { get; set; } Property Value float ExpandAndFillBackgroundCurvePath If true Bezier curve Background Path color will expand and fill when drawn. public bool ExpandAndFillBackgroundCurvePath { get; set; } Property Value bool FillCurveColor Gets or sets the color to use when filling Curve serie public Color FillCurveColor { get; set; } Property Value Color IsCurveBackgroundFilled Gets or sets if the curve path will have a solid color background when drawn. public bool IsCurveBackgroundFilled { get; set; } Property Value bool LineColor Gets or sets the color to use when drawing chart lines. public Color LineColor { get; set; } Property Value Color PointColor Gets or sets the color for each dot. public Color PointColor { get; set; } Property Value Color PointSize Gets or sets the radius for each point. public float PointSize { get; set; } Property Value float ShowPointsForCurveStyle If true and Style prop equals to 'Curve' points will be shown when drawing cubic bezier public bool ShowPointsForCurveStyle { get; set; } Property Value bool" + }, + "api/AlohaKit.Controls.LineChartDrawable.html": { + "href": "api/AlohaKit.Controls.LineChartDrawable.html", + "title": "Class LineChartDrawable | alohakit.controls", + "summary": "Class LineChartDrawable Namespace AlohaKit.Controls Assembly AlohaKit.dll public sealed class LineChartDrawable : BaseChartDrawable, IDrawable, IDisposable Inheritance object BaseChartDrawable LineChartDrawable Implements IDrawable IDisposable Inherited Members BaseChartDrawable.IsInitialized BaseChartDrawable.IsAnimating BaseChartDrawable.ColorBrush BaseChartDrawable.AxisDashPattern BaseChartDrawable.DisplayHeaderValues BaseChartDrawable.PathsColorOpacity BaseChartDrawable.DisplayHorizontalAxisLines BaseChartDrawable.DisplayVerticalAxisLines BaseChartDrawable.AnimationProgress BaseChartDrawable.IsLabelTextTruncationEnabled BaseChartDrawable.DisplayValueLabelsOnTop BaseChartDrawable.StrokeSize BaseChartDrawable.AxisLinesStrokeSize BaseChartDrawable.AxisLinesColor BaseChartDrawable.StrokeColor BaseChartDrawable.ItemSeparationMargin BaseChartDrawable.FooterLabelsTextSize BaseChartDrawable.FooterLabelsMargin BaseChartDrawable.HeaderValuesMargin BaseChartDrawable.FillColor BaseChartDrawable.Font BaseChartDrawable.Entries BaseChartDrawable.FontSize BaseChartDrawable.AxisFontSize BaseChartDrawable.Margin BaseChartDrawable.FontColor BaseChartDrawable.FooterLabelsFontColor BaseChartDrawable.EnableAntialias BaseChartDrawable.Draw(ICanvas, RectF) BaseChartDrawable.ClearBackground(ICanvas, SizeF, Color) BaseChartDrawable.Dispose() object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.ReferenceEquals(object, object) object.ToString() Properties CurveFactor Sets how 'curvy' the bezier curve will be when drawn. Accepts values between 0-1. Default is 0.6 public float CurveFactor { get; set; } Property Value float ExpandAndFillBackgroundCurvePath If true Bezier curve Background Path color will expand and fill when drawn. public bool ExpandAndFillBackgroundCurvePath { get; set; } Property Value bool FillCurveColor Gets or sets the color to use when filling Curve serie public Color FillCurveColor { get; set; } Property Value Color IsCurveBackgroundFilled Gets or sets if the curve will have a solid color background when drawn. public bool IsCurveBackgroundFilled { get; set; } Property Value bool LineColor Gets or sets the color to use when drawing chart lines. public Color LineColor { get; set; } Property Value Color PointColor Gets or sets the color for each dot. public Color PointColor { get; set; } Property Value Color PointSize Gets or sets the radius for each point. public float PointSize { get; set; } Property Value float ShowPointsForCurveStyle If true and Style prop equals to 'Curve' points will be shown when drawing cubic bezier public bool ShowPointsForCurveStyle { get; set; } Property Value bool Style Defines the style for the current LineChart public ChartEnums.LineChartStyle Style { get; set; } Property Value ChartEnums.LineChartStyle Methods DrawChart(ICanvas, RectF) Calculates and draws the current chart with the Entries[] data public override void DrawChart(ICanvas canvas, RectF dirtyRect) Parameters canvas ICanvas Current canvas dirtyRect RectF Current canvas rect DrawVerticalStepLines(ICanvas, PointF[], float, float) protected override void DrawVerticalStepLines(ICanvas canvas, PointF[] points, float origin, float maxPositiveValue) Parameters canvas ICanvas points PointF[] origin float maxPositiveValue float" + }, + "api/AlohaKit.Controls.LinearGauge.html": { + "href": "api/AlohaKit.Controls.LinearGauge.html", + "title": "Class LinearGauge | alohakit.controls", + "summary": "Class LinearGauge Namespace AlohaKit.Controls Assembly AlohaKit.dll The LinearGauge is a drawn control for rendering a linear gauge. A linear gauge is a visual representation of data along a straight or horizontal/vertical axis, commonly used to display values such as progress, measurements, or performance indicators. public class LinearGauge : GraphicsView, INotifyPropertyChanged, IVisualTreeElement, IEffectControlProvider, IToolTipElement, IContextFlyoutElement, IAnimatable, IViewController, IVisualElementController, IElementController, IGestureController, IGestureRecognizers, IPropertyMapperView, IHotReloadableView, IReplaceableView, IGraphicsView, IView, IElement, ITransform Inheritance object BindableObject Element NavigableElement VisualElement View GraphicsView LinearGauge Implements INotifyPropertyChanged IVisualTreeElement IEffectControlProvider IToolTipElement IContextFlyoutElement IAnimatable IViewController IVisualElementController IElementController IGestureController IGestureRecognizers IPropertyMapperView IHotReloadableView IReplaceableView IGraphicsView IView IElement ITransform Inherited Members GraphicsView.DrawableProperty GraphicsView.Invalidate() GraphicsView.Drawable GraphicsView.StartHoverInteraction GraphicsView.MoveHoverInteraction GraphicsView.EndHoverInteraction GraphicsView.StartInteraction GraphicsView.DragInteraction GraphicsView.EndInteraction GraphicsView.CancelInteraction View.VerticalOptionsProperty View.HorizontalOptionsProperty View.MarginProperty View.propertyMapper View.ChangeVisualState() View.GetChildElements(Point) View.OnBindingContextChanged() View.GetRendererOverrides() View.GestureController View.GestureRecognizers View.HorizontalOptions View.Margin View.VerticalOptions VisualElement.NavigationProperty VisualElement.StyleProperty VisualElement.InputTransparentProperty VisualElement.IsEnabledProperty VisualElement.XProperty VisualElement.YProperty VisualElement.AnchorXProperty VisualElement.AnchorYProperty VisualElement.TranslationXProperty VisualElement.TranslationYProperty VisualElement.WidthProperty VisualElement.HeightProperty VisualElement.RotationProperty VisualElement.RotationXProperty VisualElement.RotationYProperty VisualElement.ScaleProperty VisualElement.ScaleXProperty VisualElement.ScaleYProperty VisualElement.ClipProperty VisualElement.VisualProperty VisualElement.IsVisibleProperty VisualElement.OpacityProperty VisualElement.BackgroundColorProperty VisualElement.BehaviorsProperty VisualElement.TriggersProperty VisualElement.WidthRequestProperty VisualElement.HeightRequestProperty VisualElement.MinimumWidthRequestProperty VisualElement.MinimumHeightRequestProperty VisualElement.MaximumWidthRequestProperty VisualElement.MaximumHeightRequestProperty VisualElement.IsFocusedProperty VisualElement.FlowDirectionProperty VisualElement.WindowProperty VisualElement.ShadowProperty VisualElement.ZIndexProperty VisualElement.ControlsVisualElementMapper VisualElement.BatchBegin() VisualElement.BatchCommit() VisualElement.Focus() VisualElement.Measure(double, double, MeasureFlags) VisualElement.Unfocus() VisualElement.InvalidateMeasure() VisualElement.OnChildAdded(Element) VisualElement.OnChildRemoved(Element, int) VisualElement.OnChildrenReordered() VisualElement.OnMeasure(double, double) VisualElement.OnSizeAllocated(double, double) VisualElement.SizeAllocated(double, double) VisualElement.RefreshIsEnabledProperty() VisualElement.Arrange(Rect) VisualElement.ArrangeOverride(Rect) VisualElement.Layout(Rect) VisualElement.InvalidateMeasureOverride() VisualElement.MeasureOverride(double, double) VisualElement.MapBackgroundColor(IViewHandler, IView) VisualElement.MapBackgroundImageSource(IViewHandler, IView) VisualElement.Visual VisualElement.FlowDirection VisualElement.Window VisualElement.AnchorX VisualElement.AnchorY VisualElement.BackgroundColor VisualElement.Behaviors VisualElement.Bounds VisualElement.Height VisualElement.HeightRequest VisualElement.InputTransparent VisualElement.IsEnabled VisualElement.IsEnabledCore VisualElement.IsFocused VisualElement.IsVisible VisualElement.MinimumHeightRequest VisualElement.MinimumWidthRequest VisualElement.MaximumHeightRequest VisualElement.MaximumWidthRequest VisualElement.Opacity VisualElement.Rotation VisualElement.RotationX VisualElement.RotationY VisualElement.Scale VisualElement.ScaleX VisualElement.ScaleY VisualElement.TranslationX VisualElement.TranslationY VisualElement.Triggers VisualElement.Width VisualElement.WidthRequest VisualElement.X VisualElement.Y VisualElement.Clip VisualElement.Resources VisualElement.Frame VisualElement.Handler VisualElement.Shadow VisualElement.ZIndex VisualElement.DesiredSize VisualElement.IsLoaded VisualElement.ChildrenReordered VisualElement.Focused VisualElement.MeasureInvalidated VisualElement.SizeChanged VisualElement.Unfocused VisualElement.Loaded VisualElement.Unloaded NavigableElement.Navigation NavigableElement.Style NavigableElement.StyleClass NavigableElement.class Element.AutomationIdProperty Element.ClassIdProperty Element.ControlsElementMapper Element.InsertLogicalChild(int, Element) Element.AddLogicalChild(Element) Element.RemoveLogicalChild(Element) Element.ClearLogicalChildren() Element.FindByName(string) Element.RemoveDynamicResource(BindableProperty) Element.SetDynamicResource(BindableProperty, string) Element.OnPropertyChanged(string) Element.OnParentChanging(ParentChangingEventArgs) Element.OnParentChanged() Element.OnHandlerChanging(HandlerChangingEventArgs) Element.OnHandlerChanged() Element.MapAutomationPropertiesIsInAccessibleTree(IElementHandler, Element) Element.MapAutomationPropertiesExcludedWithChildren(IElementHandler, Element) Element.AutomationId Element.ClassId Element.Effects Element.Id Element.StyleId Element.Parent Element.ChildAdded Element.ChildRemoved Element.DescendantAdded Element.DescendantRemoved Element.ParentChanging Element.ParentChanged Element.HandlerChanging Element.HandlerChanged BindableObject.BindingContextProperty BindableObject.ClearValue(BindableProperty) BindableObject.ClearValue(BindablePropertyKey) BindableObject.GetValue(BindableProperty) BindableObject.IsSet(BindableProperty) BindableObject.RemoveBinding(BindableProperty) BindableObject.SetBinding(BindableProperty, BindingBase) BindableObject.ApplyBindings() BindableObject.OnPropertyChanging(string) BindableObject.UnapplyBindings() BindableObject.SetValue(BindableProperty, object) BindableObject.SetValue(BindablePropertyKey, object) BindableObject.CoerceValue(BindableProperty) BindableObject.CoerceValue(BindablePropertyKey) BindableObject.Dispatcher BindableObject.BindingContext BindableObject.PropertyChanged BindableObject.PropertyChanging BindableObject.BindingContextChanged object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Constructors LinearGauge() public LinearGauge() Fields BackgroundProperty public static readonly BindableProperty BackgroundProperty Field Value BindableProperty CornerRadiusProperty public static readonly BindableProperty CornerRadiusProperty Field Value BindableProperty RangeEndProperty public static readonly BindableProperty RangeEndProperty Field Value BindableProperty RangeStartProperty public static readonly BindableProperty RangeStartProperty Field Value BindableProperty ValueProperty public static readonly BindableProperty ValueProperty Field Value BindableProperty Properties Background public Brush Background { get; set; } Property Value Brush CornerRadius public CornerRadius CornerRadius { get; set; } Property Value CornerRadius LinearGaugeDrawable public LinearGaugeDrawable LinearGaugeDrawable { get; set; } Property Value LinearGaugeDrawable RangeEnd public int RangeEnd { get; set; } Property Value int RangeStart public int RangeStart { get; set; } Property Value int Value public int Value { get; set; } Property Value int Methods OnParentSet() Raises the (internal) ParentSet event. protected override void OnParentSet() Remarks Will set the NavigationProxy's inner navigation object to closest topmost element capable of handling navigation calls. See Also OnParentSet() Events ValueChanged public event EventHandler ValueChanged Event Type EventHandler" + }, + "api/AlohaKit.Controls.LinearGaugeDrawable.html": { + "href": "api/AlohaKit.Controls.LinearGaugeDrawable.html", + "title": "Class LinearGaugeDrawable | alohakit.controls", + "summary": "Class LinearGaugeDrawable Namespace AlohaKit.Controls Assembly AlohaKit.dll public class LinearGaugeDrawable : IDrawable Inheritance object LinearGaugeDrawable Implements IDrawable Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Properties BackgroundPaint public Paint BackgroundPaint { get; set; } Property Value Paint CornerRadius public CornerRadius CornerRadius { get; set; } Property Value CornerRadius RangeEnd public int RangeEnd { get; set; } Property Value int RangeStart public int RangeStart { get; set; } Property Value int Value public int Value { get; set; } Property Value int Methods Draw(ICanvas, RectF) public void Draw(ICanvas canvas, RectF dirtyRect) Parameters canvas ICanvas dirtyRect RectF DrawBackground(ICanvas, RectF) public virtual void DrawBackground(ICanvas canvas, RectF dirtyRect) Parameters canvas ICanvas dirtyRect RectF DrawProgress(ICanvas, RectF) public virtual void DrawProgress(ICanvas canvas, RectF dirtyRect) Parameters canvas ICanvas dirtyRect RectF DrawTicks(ICanvas, RectF) public virtual void DrawTicks(ICanvas canvas, RectF dirtyRect) Parameters canvas ICanvas dirtyRect RectF" + }, + "api/AlohaKit.Controls.MultiBarChart.html": { + "href": "api/AlohaKit.Controls.MultiBarChart.html", + "title": "Class MultiBarChart | alohakit.controls", + "summary": "Class MultiBarChart Namespace AlohaKit.Controls Assembly AlohaKit.dll The MultiBarChart is a drawn control designed to display multiple bar charts within a single charting view. It enables the visualization of grouped or stacked data, making it an ideal tool for comparing multiple datasets across categories. This class inherits from BaseChart, leveraging core charting functionality while adding features specific to bar chart rendering. public sealed class MultiBarChart : BaseChart, INotifyPropertyChanged, IVisualTreeElement, IEffectControlProvider, IToolTipElement, IContextFlyoutElement, IAnimatable, IViewController, IVisualElementController, IElementController, IGestureController, IGestureRecognizers, IPropertyMapperView, IHotReloadableView, IReplaceableView, IGraphicsView, IView, IElement, ITransform, IDisposable Inheritance object BindableObject Element NavigableElement VisualElement View GraphicsView BaseChart MultiBarChart Implements INotifyPropertyChanged IVisualTreeElement IEffectControlProvider IToolTipElement IContextFlyoutElement IAnimatable IViewController IVisualElementController IElementController IGestureController IGestureRecognizers IPropertyMapperView IHotReloadableView IReplaceableView IGraphicsView IView IElement ITransform IDisposable Inherited Members BaseChart.EasingProperty BaseChart.Easing BaseChart.BackgroundProperty BaseChart.Background BaseChart.AxisDashPatternProperty BaseChart.AxisDashPattern BaseChart.DisplayHeaderValuesProperty BaseChart.DisplayHeaderValues BaseChart.PathsColorOpacityProperty BaseChart.PathsColorOpacity BaseChart.AxisLinesFontSizeProperty BaseChart.AxisLinesFontSize BaseChart.AxisLineColorProperty BaseChart.AxisLinesColor BaseChart.AxisLinesStrokeSizeProperty BaseChart.AxisLinesStrokeSize BaseChart.DisplayVerticalAxisLinesProperty BaseChart.DisplayVerticalAxisLines BaseChart.DisplayHorizontalAxisLinesProperty BaseChart.DisplayHorizontalAxisLines BaseChart.AnimationIntervalProperty BaseChart.AnimationInterval BaseChart.ReanimateOnPropertyChangedProperty BaseChart.ReanimateOnPropertyChanged BaseChart.EnableEntryAnimationsProperty BaseChart.EnableEntryAnimations BaseChart.IsLabelTextTruncationEnabledProperty BaseChart.IsLabelTextTruncationEnabled BaseChart.DisplayValueLabelsOnTopProperty BaseChart.DisplayValueLabelsOnTop BaseChart.StrokeSizeProperty BaseChart.StrokeSize BaseChart.StrokeColorProperty BaseChart.StrokeColor BaseChart.FooterLabelsTextSizeProperty BaseChart.FooterLabelsTextSize BaseChart.FooterLabelsMarginProperty BaseChart.FooterLabelsMargin BaseChart.HeaderValuesMarginProperty BaseChart.HeaderValuesMargin BaseChart.FillColorProperty BaseChart.FillColor BaseChart.FontFamilyProperty BaseChart.FontFamily BaseChart.FontSizeProperty BaseChart.FontSize BaseChart.ChartMarginProperty BaseChart.ChartMargin BaseChart.FontColorProperty BaseChart.FontColor BaseChart.FooterLabelsFontColorProperty BaseChart.FooterLabelsFontColor BaseChart.EnableAntialiasProperty BaseChart.EnableAntialias BaseChart.Dispose() GraphicsView.DrawableProperty GraphicsView.Invalidate() GraphicsView.Drawable GraphicsView.StartHoverInteraction GraphicsView.MoveHoverInteraction GraphicsView.EndHoverInteraction GraphicsView.StartInteraction GraphicsView.DragInteraction GraphicsView.EndInteraction GraphicsView.CancelInteraction View.VerticalOptionsProperty View.HorizontalOptionsProperty View.MarginProperty View.GetChildElements(Point) View.GestureRecognizers View.HorizontalOptions View.Margin View.VerticalOptions VisualElement.NavigationProperty VisualElement.StyleProperty VisualElement.InputTransparentProperty VisualElement.IsEnabledProperty VisualElement.XProperty VisualElement.YProperty VisualElement.AnchorXProperty VisualElement.AnchorYProperty VisualElement.TranslationXProperty VisualElement.TranslationYProperty VisualElement.WidthProperty VisualElement.HeightProperty VisualElement.RotationProperty VisualElement.RotationXProperty VisualElement.RotationYProperty VisualElement.ScaleProperty VisualElement.ScaleXProperty VisualElement.ScaleYProperty VisualElement.ClipProperty VisualElement.VisualProperty VisualElement.IsVisibleProperty VisualElement.OpacityProperty VisualElement.BackgroundColorProperty VisualElement.BehaviorsProperty VisualElement.TriggersProperty VisualElement.WidthRequestProperty VisualElement.HeightRequestProperty VisualElement.MinimumWidthRequestProperty VisualElement.MinimumHeightRequestProperty VisualElement.MaximumWidthRequestProperty VisualElement.MaximumHeightRequestProperty VisualElement.IsFocusedProperty VisualElement.FlowDirectionProperty VisualElement.WindowProperty VisualElement.ShadowProperty VisualElement.ZIndexProperty VisualElement.ControlsVisualElementMapper VisualElement.BatchBegin() VisualElement.BatchCommit() VisualElement.Focus() VisualElement.Measure(double, double, MeasureFlags) VisualElement.Unfocus() VisualElement.Arrange(Rect) VisualElement.Layout(Rect) VisualElement.MapBackgroundColor(IViewHandler, IView) VisualElement.MapBackgroundImageSource(IViewHandler, IView) VisualElement.Visual VisualElement.FlowDirection VisualElement.Window VisualElement.AnchorX VisualElement.AnchorY VisualElement.BackgroundColor VisualElement.Behaviors VisualElement.Bounds VisualElement.Height VisualElement.HeightRequest VisualElement.InputTransparent VisualElement.IsEnabled VisualElement.IsFocused VisualElement.IsVisible VisualElement.MinimumHeightRequest VisualElement.MinimumWidthRequest VisualElement.MaximumHeightRequest VisualElement.MaximumWidthRequest VisualElement.Opacity VisualElement.Rotation VisualElement.RotationX VisualElement.RotationY VisualElement.Scale VisualElement.ScaleX VisualElement.ScaleY VisualElement.TranslationX VisualElement.TranslationY VisualElement.Triggers VisualElement.Width VisualElement.WidthRequest VisualElement.X VisualElement.Y VisualElement.Clip VisualElement.Resources VisualElement.Frame VisualElement.Handler VisualElement.Shadow VisualElement.ZIndex VisualElement.DesiredSize VisualElement.IsLoaded VisualElement.ChildrenReordered VisualElement.Focused VisualElement.MeasureInvalidated VisualElement.SizeChanged VisualElement.Unfocused VisualElement.Loaded VisualElement.Unloaded NavigableElement.Navigation NavigableElement.Style NavigableElement.StyleClass NavigableElement.class Element.AutomationIdProperty Element.ClassIdProperty Element.ControlsElementMapper Element.InsertLogicalChild(int, Element) Element.AddLogicalChild(Element) Element.RemoveLogicalChild(Element) Element.ClearLogicalChildren() Element.FindByName(string) Element.RemoveDynamicResource(BindableProperty) Element.SetDynamicResource(BindableProperty, string) Element.MapAutomationPropertiesIsInAccessibleTree(IElementHandler, Element) Element.MapAutomationPropertiesExcludedWithChildren(IElementHandler, Element) Element.AutomationId Element.ClassId Element.Effects Element.Id Element.StyleId Element.Parent Element.ChildAdded Element.ChildRemoved Element.DescendantAdded Element.DescendantRemoved Element.ParentChanging Element.ParentChanged Element.HandlerChanging Element.HandlerChanged BindableObject.BindingContextProperty BindableObject.ClearValue(BindableProperty) BindableObject.ClearValue(BindablePropertyKey) BindableObject.GetValue(BindableProperty) BindableObject.IsSet(BindableProperty) BindableObject.RemoveBinding(BindableProperty) BindableObject.SetBinding(BindableProperty, BindingBase) BindableObject.SetValue(BindableProperty, object) BindableObject.SetValue(BindablePropertyKey, object) BindableObject.CoerceValue(BindableProperty) BindableObject.CoerceValue(BindablePropertyKey) BindableObject.Dispatcher BindableObject.BindingContext BindableObject.PropertyChanged BindableObject.PropertyChanging BindableObject.BindingContextChanged object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.ReferenceEquals(object, object) object.ToString() Constructors MultiBarChart() public MultiBarChart() Fields AutoCalculateItemSeparationMarginProperty public static readonly BindableProperty AutoCalculateItemSeparationMarginProperty Field Value BindableProperty BarsCornerRadiusProperty public static readonly BindableProperty BarsCornerRadiusProperty Field Value BindableProperty ColumnNamesProperty public static readonly BindableProperty ColumnNamesProperty Field Value BindableProperty EntriesProperty public static readonly BindableProperty EntriesProperty Field Value BindableProperty GroupStylesProperty public static readonly BindableProperty GroupStylesProperty Field Value BindableProperty ItemSeparationMarginProperty public static readonly BindableProperty ItemSeparationMarginProperty Field Value BindableProperty Properties AutoCalculateItemSeparationMargin Gets or sets the separation margin between each item. Default is 8 public bool AutoCalculateItemSeparationMargin { get; set; } Property Value bool BarsCornerRadius public float BarsCornerRadius { get; set; } Property Value float ColumnNames public ObservableCollection ColumnNames { get; set; } Property Value ObservableCollection Entries public ObservableCollection Entries { get; set; } Property Value ObservableCollection GroupStyles public ObservableCollection GroupStyles { get; set; } Property Value ObservableCollection ItemSeparationMargin Gets or sets the separation margin between each item. Default is 8 public float ItemSeparationMargin { get; set; } Property Value float" + }, + "api/AlohaKit.Controls.MultiBarChartDrawable.html": { + "href": "api/AlohaKit.Controls.MultiBarChartDrawable.html", + "title": "Class MultiBarChartDrawable | alohakit.controls", + "summary": "Class MultiBarChartDrawable Namespace AlohaKit.Controls Assembly AlohaKit.dll public sealed class MultiBarChartDrawable : BaseChartDrawable, IDrawable, IDisposable Inheritance object BaseChartDrawable MultiBarChartDrawable Implements IDrawable IDisposable Inherited Members BaseChartDrawable.IsInitialized BaseChartDrawable.IsAnimating BaseChartDrawable.ColorBrush BaseChartDrawable.AxisDashPattern BaseChartDrawable.DisplayHeaderValues BaseChartDrawable.PathsColorOpacity BaseChartDrawable.DisplayHorizontalAxisLines BaseChartDrawable.DisplayVerticalAxisLines BaseChartDrawable.AnimationProgress BaseChartDrawable.IsLabelTextTruncationEnabled BaseChartDrawable.DisplayValueLabelsOnTop BaseChartDrawable.StrokeSize BaseChartDrawable.AxisLinesStrokeSize BaseChartDrawable.AxisLinesColor BaseChartDrawable.StrokeColor BaseChartDrawable.ItemSeparationMargin BaseChartDrawable.FooterLabelsTextSize BaseChartDrawable.FooterLabelsMargin BaseChartDrawable.HeaderValuesMargin BaseChartDrawable.FillColor BaseChartDrawable.Font BaseChartDrawable.Entries BaseChartDrawable.FontSize BaseChartDrawable.AxisFontSize BaseChartDrawable.Margin BaseChartDrawable.FontColor BaseChartDrawable.FooterLabelsFontColor BaseChartDrawable.EnableAntialias BaseChartDrawable.Draw(ICanvas, RectF) BaseChartDrawable.ClearBackground(ICanvas, SizeF, Color) object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.ReferenceEquals(object, object) object.ToString() Properties AutoCalculateItemSeparationMargin Indicates if control will calculate by itself left and right bar margins based on the group entries. public bool AutoCalculateItemSeparationMargin { get; set; } Property Value bool BarsCornerRadius Border radius to use when drawing each bar public float BarsCornerRadius { get; set; } Property Value float BarsFillColor Gets or sets the color to use when drawing each bar public Color BarsFillColor { get; set; } Property Value Color ColumnNames public ObservableCollection ColumnNames { get; set; } Property Value ObservableCollection GroupStyles public ObservableCollection GroupStyles { get; set; } Property Value ObservableCollection Methods Dispose() Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. public override void Dispose() DrawChart(ICanvas, RectF) Calculates and draws the current chart with the Entries[] data public override void DrawChart(ICanvas canvas, RectF dirtyRect) Parameters canvas ICanvas Current canvas dirtyRect RectF Current canvas rect DrawVerticalStepLines(ICanvas, PointF[], float, float) protected override void DrawVerticalStepLines(ICanvas canvas, PointF[] points, float origin, float maxPositiveValue) Parameters canvas ICanvas points PointF[] origin float maxPositiveValue float Entry_PropertyChanged(object, PropertyChangedEventArgs) protected override void Entry_PropertyChanged(object sender, PropertyChangedEventArgs e) Parameters sender object e PropertyChangedEventArgs" + }, + "api/AlohaKit.Controls.MultiLineChartDrawable.html": { + "href": "api/AlohaKit.Controls.MultiLineChartDrawable.html", + "title": "Class MultiLineChartDrawable | alohakit.controls", + "summary": "Class MultiLineChartDrawable Namespace AlohaKit.Controls Assembly AlohaKit.dll public class MultiLineChartDrawable : BaseChartDrawable, IDrawable, IDisposable Inheritance object BaseChartDrawable MultiLineChartDrawable Implements IDrawable IDisposable Inherited Members BaseChartDrawable._canvas BaseChartDrawable._displayHeaderValues BaseChartDrawable.MaxYValueCoordinate BaseChartDrawable.AxisXMargin BaseChartDrawable._dirtyRect BaseChartDrawable._displayValueLabelsOnTop BaseChartDrawable._colorBrush BaseChartDrawable.IsInitialized BaseChartDrawable.IsAnimating BaseChartDrawable.ColorBrush BaseChartDrawable.AxisDashPattern BaseChartDrawable.DisplayHeaderValues BaseChartDrawable.PathsColorOpacity BaseChartDrawable.DisplayHorizontalAxisLines BaseChartDrawable.DisplayVerticalAxisLines BaseChartDrawable.AnimationProgress BaseChartDrawable.IsLabelTextTruncationEnabled BaseChartDrawable.DisplayValueLabelsOnTop BaseChartDrawable.StrokeSize BaseChartDrawable.AxisLinesStrokeSize BaseChartDrawable.AxisLinesColor BaseChartDrawable.StrokeColor BaseChartDrawable.ItemSeparationMargin BaseChartDrawable.FooterLabelsTextSize BaseChartDrawable.FooterLabelsMargin BaseChartDrawable.HeaderValuesMargin BaseChartDrawable.FillColor BaseChartDrawable.Font BaseChartDrawable.Entries BaseChartDrawable.Entries_CollectionChanged(object, NotifyCollectionChangedEventArgs) BaseChartDrawable.FontSize BaseChartDrawable.AxisFontSize BaseChartDrawable.Margin BaseChartDrawable.FontColor BaseChartDrawable.FooterLabelsFontColor BaseChartDrawable.EnableAntialias BaseChartDrawable.Points BaseChartDrawable.ItemSize BaseChartDrawable.MinValue BaseChartDrawable.MaxValue BaseChartDrawable.Width BaseChartDrawable.Height BaseChartDrawable.Origin BaseChartDrawable.HeaderHeight BaseChartDrawable.FooterHeight BaseChartDrawable.ValueRange BaseChartDrawable.RequestInvalidate() BaseChartDrawable.CalculatePaddingForLabelValue(float, SizeF) BaseChartDrawable.CalculateHorizontalYLineCoordinate(float, SizeF, float, float) BaseChartDrawable.DrawHorizontalStepLines(ICanvas, IEnumerable, float, float, float, float, float) BaseChartDrawable.Draw(ICanvas, RectF) BaseChartDrawable.MeasureLabels() BaseChartDrawable.CalculateFooterHeight(SizeF[]) BaseChartDrawable.CalculateHeaderHeight(SizeF[]) BaseChartDrawable.CalculateItemSize(float, float, float, float) BaseChartDrawable.CalculateItemSize(List, float, float, float, float) BaseChartDrawable.ClearBackground(ICanvas, SizeF, Color) BaseChartDrawable.CalculateYOrigin(float, float) BaseChartDrawable.CalculatePoints(SizeF, float, float) BaseChartDrawable.CalculatePoints(List, SizeF, float, float) BaseChartDrawable.DrawLabels(List, ICanvas, PointF[], SizeF, float, float, float) BaseChartDrawable.DrawLabels(ICanvas, PointF[], SizeF, float, float, float) BaseChartDrawable.TruncateText(ICanvas, SizeF, string) object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Properties ColumnNames public ObservableCollection ColumnNames { get; set; } Property Value ObservableCollection CurveFactor Sets how 'curvy' the bezier curve will be when drawn. Accepts values between 0-1. Default is 0.6 public float CurveFactor { get; set; } Property Value float ExpandAndFillBackgroundCurvePath If true Bezier curve Background Path color will expand and fill when drawn. public bool ExpandAndFillBackgroundCurvePath { get; set; } Property Value bool FillCurveColor Gets or sets the color to use when filling Curve serie public Color FillCurveColor { get; set; } Property Value Color GroupStyles public ObservableCollection GroupStyles { get; set; } Property Value ObservableCollection IsCurveBackgroundFilled Gets or sets if the curve will have a solid color background when drawn. public bool IsCurveBackgroundFilled { get; set; } Property Value bool LineColor Gets or sets the color to use when drawing chart lines. public Color LineColor { get; set; } Property Value Color PointSize Gets or sets the radius for each point. public float PointSize { get; set; } Property Value float ShowPointsForCurveStyle If true and Style prop equals to 'Curve' points will be shown when drawing cubic bezier public bool ShowPointsForCurveStyle { get; set; } Property Value bool Style Defines the style for the current LineChart public ChartEnums.LineChartStyle Style { get; set; } Property Value ChartEnums.LineChartStyle Methods Dispose() Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. public override void Dispose() DrawChart(ICanvas, RectF) Calculates and draws the current chart with the Entries[] data public override void DrawChart(ICanvas canvas, RectF dirtyRect) Parameters canvas ICanvas Current canvas dirtyRect RectF Current canvas rect DrawVerticalStepLines(ICanvas, PointF[], float, float) protected override void DrawVerticalStepLines(ICanvas canvas, PointF[] points, float origin, float maxPositiveValue) Parameters canvas ICanvas points PointF[] origin float maxPositiveValue float Entry_PropertyChanged(object, PropertyChangedEventArgs) protected override void Entry_PropertyChanged(object sender, PropertyChangedEventArgs e) Parameters sender object e PropertyChangedEventArgs" + }, + "api/AlohaKit.Controls.MultiLineChartView.html": { + "href": "api/AlohaKit.Controls.MultiLineChartView.html", + "title": "Class MultiLineChartView | alohakit.controls", + "summary": "Class MultiLineChartView Namespace AlohaKit.Controls Assembly AlohaKit.dll The MultiLineChartView is a drawn control for displaying multiple line charts within a single view. This enables the visualization of multiple data series, each represented by a separate line, on a shared coordinate system. The class is derived from BaseChart, allowing it to inherit essential charting properties and behaviors while adding specialized features for multi-line visualization. public sealed class MultiLineChartView : BaseChart, INotifyPropertyChanged, IVisualTreeElement, IEffectControlProvider, IToolTipElement, IContextFlyoutElement, IAnimatable, IViewController, IVisualElementController, IElementController, IGestureController, IGestureRecognizers, IPropertyMapperView, IHotReloadableView, IReplaceableView, IGraphicsView, IView, IElement, ITransform, IDisposable Inheritance object BindableObject Element NavigableElement VisualElement View GraphicsView BaseChart MultiLineChartView Implements INotifyPropertyChanged IVisualTreeElement IEffectControlProvider IToolTipElement IContextFlyoutElement IAnimatable IViewController IVisualElementController IElementController IGestureController IGestureRecognizers IPropertyMapperView IHotReloadableView IReplaceableView IGraphicsView IView IElement ITransform IDisposable Inherited Members BaseChart.EasingProperty BaseChart.Easing BaseChart.BackgroundProperty BaseChart.Background BaseChart.AxisDashPatternProperty BaseChart.AxisDashPattern BaseChart.DisplayHeaderValuesProperty BaseChart.DisplayHeaderValues BaseChart.PathsColorOpacityProperty BaseChart.PathsColorOpacity BaseChart.AxisLinesFontSizeProperty BaseChart.AxisLinesFontSize BaseChart.AxisLineColorProperty BaseChart.AxisLinesColor BaseChart.AxisLinesStrokeSizeProperty BaseChart.AxisLinesStrokeSize BaseChart.DisplayVerticalAxisLinesProperty BaseChart.DisplayVerticalAxisLines BaseChart.DisplayHorizontalAxisLinesProperty BaseChart.DisplayHorizontalAxisLines BaseChart.AnimationIntervalProperty BaseChart.AnimationInterval BaseChart.ReanimateOnPropertyChangedProperty BaseChart.ReanimateOnPropertyChanged BaseChart.EnableEntryAnimationsProperty BaseChart.EnableEntryAnimations BaseChart.IsLabelTextTruncationEnabledProperty BaseChart.IsLabelTextTruncationEnabled BaseChart.DisplayValueLabelsOnTopProperty BaseChart.DisplayValueLabelsOnTop BaseChart.StrokeSizeProperty BaseChart.StrokeSize BaseChart.StrokeColorProperty BaseChart.StrokeColor BaseChart.ItemSeparationMarginProperty BaseChart.ItemSeparationMargin BaseChart.FooterLabelsTextSizeProperty BaseChart.FooterLabelsTextSize BaseChart.FooterLabelsMarginProperty BaseChart.FooterLabelsMargin BaseChart.HeaderValuesMarginProperty BaseChart.HeaderValuesMargin BaseChart.FillColorProperty BaseChart.FillColor BaseChart.FontFamilyProperty BaseChart.FontFamily BaseChart.FontSizeProperty BaseChart.FontSize BaseChart.ChartMarginProperty BaseChart.ChartMargin BaseChart.FontColorProperty BaseChart.FontColor BaseChart.FooterLabelsFontColorProperty BaseChart.FooterLabelsFontColor BaseChart.EnableAntialiasProperty BaseChart.EnableAntialias BaseChart.Dispose() GraphicsView.DrawableProperty GraphicsView.Invalidate() GraphicsView.Drawable GraphicsView.StartHoverInteraction GraphicsView.MoveHoverInteraction GraphicsView.EndHoverInteraction GraphicsView.StartInteraction GraphicsView.DragInteraction GraphicsView.EndInteraction GraphicsView.CancelInteraction View.VerticalOptionsProperty View.HorizontalOptionsProperty View.MarginProperty View.GetChildElements(Point) View.GestureRecognizers View.HorizontalOptions View.Margin View.VerticalOptions VisualElement.NavigationProperty VisualElement.StyleProperty VisualElement.InputTransparentProperty VisualElement.IsEnabledProperty VisualElement.XProperty VisualElement.YProperty VisualElement.AnchorXProperty VisualElement.AnchorYProperty VisualElement.TranslationXProperty VisualElement.TranslationYProperty VisualElement.WidthProperty VisualElement.HeightProperty VisualElement.RotationProperty VisualElement.RotationXProperty VisualElement.RotationYProperty VisualElement.ScaleProperty VisualElement.ScaleXProperty VisualElement.ScaleYProperty VisualElement.ClipProperty VisualElement.VisualProperty VisualElement.IsVisibleProperty VisualElement.OpacityProperty VisualElement.BackgroundColorProperty VisualElement.BehaviorsProperty VisualElement.TriggersProperty VisualElement.WidthRequestProperty VisualElement.HeightRequestProperty VisualElement.MinimumWidthRequestProperty VisualElement.MinimumHeightRequestProperty VisualElement.MaximumWidthRequestProperty VisualElement.MaximumHeightRequestProperty VisualElement.IsFocusedProperty VisualElement.FlowDirectionProperty VisualElement.WindowProperty VisualElement.ShadowProperty VisualElement.ZIndexProperty VisualElement.ControlsVisualElementMapper VisualElement.BatchBegin() VisualElement.BatchCommit() VisualElement.Focus() VisualElement.Measure(double, double, MeasureFlags) VisualElement.Unfocus() VisualElement.Arrange(Rect) VisualElement.Layout(Rect) VisualElement.MapBackgroundColor(IViewHandler, IView) VisualElement.MapBackgroundImageSource(IViewHandler, IView) VisualElement.Visual VisualElement.FlowDirection VisualElement.Window VisualElement.AnchorX VisualElement.AnchorY VisualElement.BackgroundColor VisualElement.Behaviors VisualElement.Bounds VisualElement.Height VisualElement.HeightRequest VisualElement.InputTransparent VisualElement.IsEnabled VisualElement.IsFocused VisualElement.IsVisible VisualElement.MinimumHeightRequest VisualElement.MinimumWidthRequest VisualElement.MaximumHeightRequest VisualElement.MaximumWidthRequest VisualElement.Opacity VisualElement.Rotation VisualElement.RotationX VisualElement.RotationY VisualElement.Scale VisualElement.ScaleX VisualElement.ScaleY VisualElement.TranslationX VisualElement.TranslationY VisualElement.Triggers VisualElement.Width VisualElement.WidthRequest VisualElement.X VisualElement.Y VisualElement.Clip VisualElement.Resources VisualElement.Frame VisualElement.Handler VisualElement.Shadow VisualElement.ZIndex VisualElement.DesiredSize VisualElement.IsLoaded VisualElement.ChildrenReordered VisualElement.Focused VisualElement.MeasureInvalidated VisualElement.SizeChanged VisualElement.Unfocused VisualElement.Loaded VisualElement.Unloaded NavigableElement.Navigation NavigableElement.Style NavigableElement.StyleClass NavigableElement.class Element.AutomationIdProperty Element.ClassIdProperty Element.ControlsElementMapper Element.InsertLogicalChild(int, Element) Element.AddLogicalChild(Element) Element.RemoveLogicalChild(Element) Element.ClearLogicalChildren() Element.FindByName(string) Element.RemoveDynamicResource(BindableProperty) Element.SetDynamicResource(BindableProperty, string) Element.MapAutomationPropertiesIsInAccessibleTree(IElementHandler, Element) Element.MapAutomationPropertiesExcludedWithChildren(IElementHandler, Element) Element.AutomationId Element.ClassId Element.Effects Element.Id Element.StyleId Element.Parent Element.ChildAdded Element.ChildRemoved Element.DescendantAdded Element.DescendantRemoved Element.ParentChanging Element.ParentChanged Element.HandlerChanging Element.HandlerChanged BindableObject.BindingContextProperty BindableObject.ClearValue(BindableProperty) BindableObject.ClearValue(BindablePropertyKey) BindableObject.GetValue(BindableProperty) BindableObject.IsSet(BindableProperty) BindableObject.RemoveBinding(BindableProperty) BindableObject.SetBinding(BindableProperty, BindingBase) BindableObject.SetValue(BindableProperty, object) BindableObject.SetValue(BindablePropertyKey, object) BindableObject.CoerceValue(BindableProperty) BindableObject.CoerceValue(BindablePropertyKey) BindableObject.Dispatcher BindableObject.BindingContext BindableObject.PropertyChanged BindableObject.PropertyChanging BindableObject.BindingContextChanged object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.ReferenceEquals(object, object) object.ToString() Constructors MultiLineChartView() public MultiLineChartView() Fields ChartStyleProperty public static readonly BindableProperty ChartStyleProperty Field Value BindableProperty ColumnNamesProperty public static readonly BindableProperty ColumnNamesProperty Field Value BindableProperty CurveFactorProperty public static readonly BindableProperty CurveFactorProperty Field Value BindableProperty EntriesProperty public static readonly BindableProperty EntriesProperty Field Value BindableProperty ExpandAndFillBackgroundCurvePathProperty public static readonly BindableProperty ExpandAndFillBackgroundCurvePathProperty Field Value BindableProperty GroupStylesProperty public static readonly BindableProperty GroupStylesProperty Field Value BindableProperty IsCurveBackgroundFilledProperty public static readonly BindableProperty IsCurveBackgroundFilledProperty Field Value BindableProperty PointSizeProperty public static readonly BindableProperty PointSizeProperty Field Value BindableProperty ShowPointsForCurveStyleProperty public static readonly BindableProperty ShowPointsForCurveStyleProperty Field Value BindableProperty Properties ChartStyle Defines the style for the current LineChart public ChartEnums.LineChartStyle ChartStyle { get; set; } Property Value ChartEnums.LineChartStyle ColumnNames public ObservableCollection ColumnNames { get; set; } Property Value ObservableCollection CurveFactor Sets how 'curvy' the bezier curve will be when drawn. Accepts values between 0-1. Default is 0.6 public float CurveFactor { get; set; } Property Value float Entries public ObservableCollection Entries { get; set; } Property Value ObservableCollection ExpandAndFillBackgroundCurvePath If true Bezier curve Background Path color will expand and fill when drawn. public bool ExpandAndFillBackgroundCurvePath { get; set; } Property Value bool GroupStyles public ObservableCollection GroupStyles { get; set; } Property Value ObservableCollection IsCurveBackgroundFilled Gets or sets if the curve path will have a solid color background when drawn. public bool IsCurveBackgroundFilled { get; set; } Property Value bool PointSize Gets or sets the radius for each point. public float PointSize { get; set; } Property Value float ShowPointsForCurveStyle If true and Style prop equals to 'Curve' points will be shown when drawing cubic bezier public bool ShowPointsForCurveStyle { get; set; } Property Value bool" + }, + "api/AlohaKit.Controls.NumericUpDown.html": { + "href": "api/AlohaKit.Controls.NumericUpDown.html", + "title": "Class NumericUpDown | alohakit.controls", + "summary": "Class NumericUpDown Namespace AlohaKit.Controls Assembly AlohaKit.dll The NumericUpDown is a drawn control for selecting numeric values by incrementing or decrementing them with interactive buttons or input. public class NumericUpDown : GraphicsView, INotifyPropertyChanged, IVisualTreeElement, IEffectControlProvider, IToolTipElement, IContextFlyoutElement, IAnimatable, IViewController, IVisualElementController, IElementController, IGestureController, IGestureRecognizers, IPropertyMapperView, IHotReloadableView, IReplaceableView, IGraphicsView, IView, IElement, ITransform Inheritance object BindableObject Element NavigableElement VisualElement View GraphicsView NumericUpDown Implements INotifyPropertyChanged IVisualTreeElement IEffectControlProvider IToolTipElement IContextFlyoutElement IAnimatable IViewController IVisualElementController IElementController IGestureController IGestureRecognizers IPropertyMapperView IHotReloadableView IReplaceableView IGraphicsView IView IElement ITransform Inherited Members GraphicsView.DrawableProperty GraphicsView.Invalidate() GraphicsView.Drawable GraphicsView.StartHoverInteraction GraphicsView.MoveHoverInteraction GraphicsView.EndHoverInteraction GraphicsView.StartInteraction GraphicsView.DragInteraction GraphicsView.EndInteraction GraphicsView.CancelInteraction View.VerticalOptionsProperty View.HorizontalOptionsProperty View.MarginProperty View.propertyMapper View.ChangeVisualState() View.GetChildElements(Point) View.OnBindingContextChanged() View.GetRendererOverrides() View.GestureController View.GestureRecognizers View.HorizontalOptions View.Margin View.VerticalOptions VisualElement.NavigationProperty VisualElement.StyleProperty VisualElement.InputTransparentProperty VisualElement.IsEnabledProperty VisualElement.XProperty VisualElement.YProperty VisualElement.AnchorXProperty VisualElement.AnchorYProperty VisualElement.TranslationXProperty VisualElement.TranslationYProperty VisualElement.WidthProperty VisualElement.HeightProperty VisualElement.RotationProperty VisualElement.RotationXProperty VisualElement.RotationYProperty VisualElement.ScaleProperty VisualElement.ScaleXProperty VisualElement.ScaleYProperty VisualElement.ClipProperty VisualElement.VisualProperty VisualElement.IsVisibleProperty VisualElement.OpacityProperty VisualElement.BackgroundColorProperty VisualElement.BehaviorsProperty VisualElement.TriggersProperty VisualElement.WidthRequestProperty VisualElement.HeightRequestProperty VisualElement.MinimumWidthRequestProperty VisualElement.MinimumHeightRequestProperty VisualElement.MaximumWidthRequestProperty VisualElement.MaximumHeightRequestProperty VisualElement.IsFocusedProperty VisualElement.FlowDirectionProperty VisualElement.WindowProperty VisualElement.ShadowProperty VisualElement.ZIndexProperty VisualElement.ControlsVisualElementMapper VisualElement.BatchBegin() VisualElement.BatchCommit() VisualElement.Focus() VisualElement.Measure(double, double, MeasureFlags) VisualElement.Unfocus() VisualElement.InvalidateMeasure() VisualElement.OnChildAdded(Element) VisualElement.OnChildRemoved(Element, int) VisualElement.OnChildrenReordered() VisualElement.OnMeasure(double, double) VisualElement.OnSizeAllocated(double, double) VisualElement.SizeAllocated(double, double) VisualElement.RefreshIsEnabledProperty() VisualElement.Arrange(Rect) VisualElement.ArrangeOverride(Rect) VisualElement.Layout(Rect) VisualElement.InvalidateMeasureOverride() VisualElement.MeasureOverride(double, double) VisualElement.MapBackgroundColor(IViewHandler, IView) VisualElement.MapBackgroundImageSource(IViewHandler, IView) VisualElement.Visual VisualElement.FlowDirection VisualElement.Window VisualElement.AnchorX VisualElement.AnchorY VisualElement.BackgroundColor VisualElement.Behaviors VisualElement.Bounds VisualElement.Height VisualElement.HeightRequest VisualElement.InputTransparent VisualElement.IsEnabled VisualElement.IsEnabledCore VisualElement.IsFocused VisualElement.IsVisible VisualElement.MinimumHeightRequest VisualElement.MinimumWidthRequest VisualElement.MaximumHeightRequest VisualElement.MaximumWidthRequest VisualElement.Opacity VisualElement.Rotation VisualElement.RotationX VisualElement.RotationY VisualElement.Scale VisualElement.ScaleX VisualElement.ScaleY VisualElement.TranslationX VisualElement.TranslationY VisualElement.Triggers VisualElement.Width VisualElement.WidthRequest VisualElement.X VisualElement.Y VisualElement.Clip VisualElement.Resources VisualElement.Frame VisualElement.Handler VisualElement.Shadow VisualElement.ZIndex VisualElement.DesiredSize VisualElement.IsLoaded VisualElement.ChildrenReordered VisualElement.Focused VisualElement.MeasureInvalidated VisualElement.SizeChanged VisualElement.Unfocused VisualElement.Loaded VisualElement.Unloaded NavigableElement.Navigation NavigableElement.Style NavigableElement.StyleClass NavigableElement.class Element.AutomationIdProperty Element.ClassIdProperty Element.ControlsElementMapper Element.InsertLogicalChild(int, Element) Element.AddLogicalChild(Element) Element.RemoveLogicalChild(Element) Element.ClearLogicalChildren() Element.FindByName(string) Element.RemoveDynamicResource(BindableProperty) Element.SetDynamicResource(BindableProperty, string) Element.OnPropertyChanged(string) Element.OnParentChanging(ParentChangingEventArgs) Element.OnParentChanged() Element.OnHandlerChanging(HandlerChangingEventArgs) Element.OnHandlerChanged() Element.MapAutomationPropertiesIsInAccessibleTree(IElementHandler, Element) Element.MapAutomationPropertiesExcludedWithChildren(IElementHandler, Element) Element.AutomationId Element.ClassId Element.Effects Element.Id Element.StyleId Element.Parent Element.ChildAdded Element.ChildRemoved Element.DescendantAdded Element.DescendantRemoved Element.ParentChanging Element.ParentChanged Element.HandlerChanging Element.HandlerChanged BindableObject.BindingContextProperty BindableObject.ClearValue(BindableProperty) BindableObject.ClearValue(BindablePropertyKey) BindableObject.GetValue(BindableProperty) BindableObject.IsSet(BindableProperty) BindableObject.RemoveBinding(BindableProperty) BindableObject.SetBinding(BindableProperty, BindingBase) BindableObject.ApplyBindings() BindableObject.OnPropertyChanging(string) BindableObject.UnapplyBindings() BindableObject.SetValue(BindableProperty, object) BindableObject.SetValue(BindablePropertyKey, object) BindableObject.CoerceValue(BindableProperty) BindableObject.CoerceValue(BindablePropertyKey) BindableObject.Dispatcher BindableObject.BindingContext BindableObject.PropertyChanged BindableObject.PropertyChanging BindableObject.BindingContextChanged object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Constructors NumericUpDown() public NumericUpDown() Fields BackgroundProperty public static readonly BindableProperty BackgroundProperty Field Value BindableProperty ColorProperty public static readonly BindableProperty ColorProperty Field Value BindableProperty FontSizeProperty public static readonly BindableProperty FontSizeProperty Field Value BindableProperty IntervalProperty public static readonly BindableProperty IntervalProperty Field Value BindableProperty MaximumColorProperty public static readonly BindableProperty MaximumColorProperty Field Value BindableProperty MaximumProperty public static readonly BindableProperty MaximumProperty Field Value BindableProperty MaximumTextColorProperty public static readonly BindableProperty MaximumTextColorProperty Field Value BindableProperty MinimumColorProperty public static readonly BindableProperty MinimumColorProperty Field Value BindableProperty MinimumProperty public static readonly BindableProperty MinimumProperty Field Value BindableProperty MinimumTextColorProperty public static readonly BindableProperty MinimumTextColorProperty Field Value BindableProperty TextColorProperty public static readonly BindableProperty TextColorProperty Field Value BindableProperty ValueProperty public static readonly BindableProperty ValueProperty Field Value BindableProperty Properties Background public Brush Background { get; set; } Property Value Brush Color public Color Color { get; set; } Property Value Color FontSize public double FontSize { get; set; } Property Value double Interval public double Interval { get; set; } Property Value double Maximum public double Maximum { get; set; } Property Value double MaximumColor public Brush MaximumColor { get; set; } Property Value Brush MaximumTextColor public Color MaximumTextColor { get; set; } Property Value Color Minimum public double Minimum { get; set; } Property Value double MinimumColor public Brush MinimumColor { get; set; } Property Value Brush MinimumTextColor public Color MinimumTextColor { get; set; } Property Value Color NumericUpDownDrawable public NumericUpDownDrawable NumericUpDownDrawable { get; set; } Property Value NumericUpDownDrawable TextColor public Color TextColor { get; set; } Property Value Color Value public double Value { get; set; } Property Value double Methods OnParentSet() Raises the (internal) ParentSet event. protected override void OnParentSet() Remarks Will set the NavigationProxy's inner navigation object to closest topmost element capable of handling navigation calls. See Also OnParentSet() Events ValueChanged public event EventHandler ValueChanged Event Type EventHandler" + }, + "api/AlohaKit.Controls.NumericUpDownDrawable.html": { + "href": "api/AlohaKit.Controls.NumericUpDownDrawable.html", + "title": "Class NumericUpDownDrawable | alohakit.controls", + "summary": "Class NumericUpDownDrawable Namespace AlohaKit.Controls Assembly AlohaKit.dll public class NumericUpDownDrawable : IDrawable Inheritance object NumericUpDownDrawable Implements IDrawable Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Properties BackgroundPaint public Paint BackgroundPaint { get; set; } Property Value Paint Color public Color Color { get; set; } Property Value Color FontSize public double FontSize { get; set; } Property Value double Maximum public double Maximum { get; set; } Property Value double MaximumColorPaint public Paint MaximumColorPaint { get; set; } Property Value Paint MaximumTextColor public Color MaximumTextColor { get; set; } Property Value Color Minimum public double Minimum { get; set; } Property Value double MinimumColorPaint public Paint MinimumColorPaint { get; set; } Property Value Paint MinimumTextColor public Color MinimumTextColor { get; set; } Property Value Color TextColor public Color TextColor { get; set; } Property Value Color Value public double Value { get; set; } Property Value double Methods Draw(ICanvas, RectF) public void Draw(ICanvas canvas, RectF dirtyRect) Parameters canvas ICanvas dirtyRect RectF DrawBackground(ICanvas, RectF) public virtual void DrawBackground(ICanvas canvas, RectF dirtyRect) Parameters canvas ICanvas dirtyRect RectF DrawBorder(ICanvas, RectF) public virtual void DrawBorder(ICanvas canvas, RectF dirtyRect) Parameters canvas ICanvas dirtyRect RectF DrawMaximum(ICanvas, RectF) public virtual void DrawMaximum(ICanvas canvas, RectF dirtyRect) Parameters canvas ICanvas dirtyRect RectF DrawMinus(ICanvas, RectF) public virtual void DrawMinus(ICanvas canvas, RectF dirtyRect) Parameters canvas ICanvas dirtyRect RectF DrawValue(ICanvas, RectF) public virtual void DrawValue(ICanvas canvas, RectF dirtyRect) Parameters canvas ICanvas dirtyRect RectF" + }, + "api/AlohaKit.Controls.PieChart.html": { + "href": "api/AlohaKit.Controls.PieChart.html", + "title": "Class PieChart | alohakit.controls", + "summary": "Class PieChart Namespace AlohaKit.Controls Assembly AlohaKit.dll The PieChart is a drawn control for rendering pie charts to visually represent data as portions of a circle. public class PieChart : GraphicsView, INotifyPropertyChanged, IVisualTreeElement, IEffectControlProvider, IToolTipElement, IContextFlyoutElement, IAnimatable, IViewController, IVisualElementController, IElementController, IGestureController, IGestureRecognizers, IPropertyMapperView, IHotReloadableView, IReplaceableView, IGraphicsView, IView, IElement, ITransform Inheritance object BindableObject Element NavigableElement VisualElement View GraphicsView PieChart Implements INotifyPropertyChanged IVisualTreeElement IEffectControlProvider IToolTipElement IContextFlyoutElement IAnimatable IViewController IVisualElementController IElementController IGestureController IGestureRecognizers IPropertyMapperView IHotReloadableView IReplaceableView IGraphicsView IView IElement ITransform Inherited Members GraphicsView.DrawableProperty GraphicsView.Invalidate() GraphicsView.Drawable GraphicsView.StartHoverInteraction GraphicsView.MoveHoverInteraction GraphicsView.EndHoverInteraction GraphicsView.StartInteraction GraphicsView.DragInteraction GraphicsView.EndInteraction GraphicsView.CancelInteraction View.VerticalOptionsProperty View.HorizontalOptionsProperty View.MarginProperty View.propertyMapper View.ChangeVisualState() View.GetChildElements(Point) View.OnBindingContextChanged() View.GetRendererOverrides() View.GestureController View.GestureRecognizers View.HorizontalOptions View.Margin View.VerticalOptions VisualElement.NavigationProperty VisualElement.StyleProperty VisualElement.InputTransparentProperty VisualElement.IsEnabledProperty VisualElement.XProperty VisualElement.YProperty VisualElement.AnchorXProperty VisualElement.AnchorYProperty VisualElement.TranslationXProperty VisualElement.TranslationYProperty VisualElement.WidthProperty VisualElement.HeightProperty VisualElement.RotationProperty VisualElement.RotationXProperty VisualElement.RotationYProperty VisualElement.ScaleProperty VisualElement.ScaleXProperty VisualElement.ScaleYProperty VisualElement.ClipProperty VisualElement.VisualProperty VisualElement.IsVisibleProperty VisualElement.OpacityProperty VisualElement.BackgroundColorProperty VisualElement.BehaviorsProperty VisualElement.TriggersProperty VisualElement.WidthRequestProperty VisualElement.HeightRequestProperty VisualElement.MinimumWidthRequestProperty VisualElement.MinimumHeightRequestProperty VisualElement.MaximumWidthRequestProperty VisualElement.MaximumHeightRequestProperty VisualElement.IsFocusedProperty VisualElement.FlowDirectionProperty VisualElement.WindowProperty VisualElement.ShadowProperty VisualElement.ZIndexProperty VisualElement.ControlsVisualElementMapper VisualElement.BatchBegin() VisualElement.BatchCommit() VisualElement.Focus() VisualElement.Measure(double, double, MeasureFlags) VisualElement.Unfocus() VisualElement.InvalidateMeasure() VisualElement.OnChildAdded(Element) VisualElement.OnChildRemoved(Element, int) VisualElement.OnChildrenReordered() VisualElement.OnMeasure(double, double) VisualElement.OnSizeAllocated(double, double) VisualElement.SizeAllocated(double, double) VisualElement.RefreshIsEnabledProperty() VisualElement.Arrange(Rect) VisualElement.ArrangeOverride(Rect) VisualElement.Layout(Rect) VisualElement.InvalidateMeasureOverride() VisualElement.MeasureOverride(double, double) VisualElement.MapBackgroundColor(IViewHandler, IView) VisualElement.MapBackgroundImageSource(IViewHandler, IView) VisualElement.Visual VisualElement.FlowDirection VisualElement.Window VisualElement.AnchorX VisualElement.AnchorY VisualElement.BackgroundColor VisualElement.Behaviors VisualElement.Bounds VisualElement.Height VisualElement.HeightRequest VisualElement.InputTransparent VisualElement.IsEnabled VisualElement.IsEnabledCore VisualElement.IsFocused VisualElement.IsVisible VisualElement.MinimumHeightRequest VisualElement.MinimumWidthRequest VisualElement.MaximumHeightRequest VisualElement.MaximumWidthRequest VisualElement.Opacity VisualElement.Rotation VisualElement.RotationX VisualElement.RotationY VisualElement.Scale VisualElement.ScaleX VisualElement.ScaleY VisualElement.TranslationX VisualElement.TranslationY VisualElement.Triggers VisualElement.Width VisualElement.WidthRequest VisualElement.X VisualElement.Y VisualElement.Clip VisualElement.Resources VisualElement.Frame VisualElement.Handler VisualElement.Shadow VisualElement.ZIndex VisualElement.DesiredSize VisualElement.IsLoaded VisualElement.ChildrenReordered VisualElement.Focused VisualElement.MeasureInvalidated VisualElement.SizeChanged VisualElement.Unfocused VisualElement.Loaded VisualElement.Unloaded NavigableElement.Navigation NavigableElement.Style NavigableElement.StyleClass NavigableElement.class Element.AutomationIdProperty Element.ClassIdProperty Element.ControlsElementMapper Element.InsertLogicalChild(int, Element) Element.AddLogicalChild(Element) Element.RemoveLogicalChild(Element) Element.ClearLogicalChildren() Element.FindByName(string) Element.RemoveDynamicResource(BindableProperty) Element.SetDynamicResource(BindableProperty, string) Element.OnPropertyChanged(string) Element.OnParentChanging(ParentChangingEventArgs) Element.OnParentChanged() Element.OnHandlerChanging(HandlerChangingEventArgs) Element.OnHandlerChanged() Element.MapAutomationPropertiesIsInAccessibleTree(IElementHandler, Element) Element.MapAutomationPropertiesExcludedWithChildren(IElementHandler, Element) Element.AutomationId Element.ClassId Element.Effects Element.Id Element.StyleId Element.Parent Element.ChildAdded Element.ChildRemoved Element.DescendantAdded Element.DescendantRemoved Element.ParentChanging Element.ParentChanged Element.HandlerChanging Element.HandlerChanged BindableObject.BindingContextProperty BindableObject.ClearValue(BindableProperty) BindableObject.ClearValue(BindablePropertyKey) BindableObject.GetValue(BindableProperty) BindableObject.IsSet(BindableProperty) BindableObject.RemoveBinding(BindableProperty) BindableObject.SetBinding(BindableProperty, BindingBase) BindableObject.ApplyBindings() BindableObject.OnPropertyChanging(string) BindableObject.UnapplyBindings() BindableObject.SetValue(BindableProperty, object) BindableObject.SetValue(BindablePropertyKey, object) BindableObject.CoerceValue(BindableProperty) BindableObject.CoerceValue(BindablePropertyKey) BindableObject.Dispatcher BindableObject.BindingContext BindableObject.PropertyChanged BindableObject.PropertyChanging BindableObject.BindingContextChanged object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Constructors PieChart() public PieChart() Fields BackgroundProperty public static readonly BindableProperty BackgroundProperty Field Value BindableProperty ItemsSourceProperty public static readonly BindableProperty ItemsSourceProperty Field Value BindableProperty ShowLabelsProperty public static readonly BindableProperty ShowLabelsProperty Field Value BindableProperty Properties Background public Brush Background { get; set; } Property Value Brush ItemsSource public Dictionary ItemsSource { get; set; } Property Value Dictionary PieChartDrawable public PieChartDrawable PieChartDrawable { get; set; } Property Value PieChartDrawable ShowLabels public bool ShowLabels { get; set; } Property Value bool Methods OnParentSet() Raises the (internal) ParentSet event. protected override void OnParentSet() Remarks Will set the NavigationProxy's inner navigation object to closest topmost element capable of handling navigation calls. See Also OnParentSet()" + }, + "api/AlohaKit.Controls.PieChartDrawable.html": { + "href": "api/AlohaKit.Controls.PieChartDrawable.html", + "title": "Class PieChartDrawable | alohakit.controls", + "summary": "Class PieChartDrawable Namespace AlohaKit.Controls Assembly AlohaKit.dll public class PieChartDrawable : IDrawable Inheritance object PieChartDrawable Implements IDrawable Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Properties BackgroundPaint public Paint BackgroundPaint { get; set; } Property Value Paint ItemsSource public Dictionary ItemsSource { get; set; } Property Value Dictionary ShowLabels public bool ShowLabels { get; set; } Property Value bool Methods Draw(ICanvas, RectF) public void Draw(ICanvas canvas, RectF dirtyRect) Parameters canvas ICanvas dirtyRect RectF DrawBackground(ICanvas, RectF) public virtual void DrawBackground(ICanvas canvas, RectF dirtyRect) Parameters canvas ICanvas dirtyRect RectF DrawLabels(ICanvas, RectF) public virtual void DrawLabels(ICanvas canvas, RectF dirtyRect) Parameters canvas ICanvas dirtyRect RectF DrawSlices(ICanvas, RectF) public virtual void DrawSlices(ICanvas canvas, RectF dirtyRect) Parameters canvas ICanvas dirtyRect RectF" + }, + "api/AlohaKit.Controls.ProgressBar.html": { + "href": "api/AlohaKit.Controls.ProgressBar.html", + "title": "Class ProgressBar | alohakit.controls", + "summary": "Class ProgressBar Namespace AlohaKit.Controls Assembly AlohaKit.dll The ProgressBar class represents a customizable control for displaying the progress of a task visually. public class ProgressBar : GraphicsView, INotifyPropertyChanged, IVisualTreeElement, IEffectControlProvider, IToolTipElement, IContextFlyoutElement, IAnimatable, IViewController, IVisualElementController, IElementController, IGestureController, IGestureRecognizers, IPropertyMapperView, IHotReloadableView, IReplaceableView, IGraphicsView, IView, IElement, ITransform Inheritance object BindableObject Element NavigableElement VisualElement View GraphicsView ProgressBar Implements INotifyPropertyChanged IVisualTreeElement IEffectControlProvider IToolTipElement IContextFlyoutElement IAnimatable IViewController IVisualElementController IElementController IGestureController IGestureRecognizers IPropertyMapperView IHotReloadableView IReplaceableView IGraphicsView IView IElement ITransform Inherited Members GraphicsView.DrawableProperty GraphicsView.Invalidate() GraphicsView.Drawable GraphicsView.StartHoverInteraction GraphicsView.MoveHoverInteraction GraphicsView.EndHoverInteraction GraphicsView.StartInteraction GraphicsView.DragInteraction GraphicsView.EndInteraction GraphicsView.CancelInteraction View.VerticalOptionsProperty View.HorizontalOptionsProperty View.MarginProperty View.propertyMapper View.ChangeVisualState() View.GetChildElements(Point) View.OnBindingContextChanged() View.GetRendererOverrides() View.GestureController View.GestureRecognizers View.HorizontalOptions View.Margin View.VerticalOptions VisualElement.NavigationProperty VisualElement.StyleProperty VisualElement.InputTransparentProperty VisualElement.IsEnabledProperty VisualElement.XProperty VisualElement.YProperty VisualElement.AnchorXProperty VisualElement.AnchorYProperty VisualElement.TranslationXProperty VisualElement.TranslationYProperty VisualElement.WidthProperty VisualElement.HeightProperty VisualElement.RotationProperty VisualElement.RotationXProperty VisualElement.RotationYProperty VisualElement.ScaleProperty VisualElement.ScaleXProperty VisualElement.ScaleYProperty VisualElement.ClipProperty VisualElement.VisualProperty VisualElement.IsVisibleProperty VisualElement.OpacityProperty VisualElement.BackgroundColorProperty VisualElement.BackgroundProperty VisualElement.BehaviorsProperty VisualElement.TriggersProperty VisualElement.WidthRequestProperty VisualElement.HeightRequestProperty VisualElement.MinimumWidthRequestProperty VisualElement.MinimumHeightRequestProperty VisualElement.MaximumWidthRequestProperty VisualElement.MaximumHeightRequestProperty VisualElement.IsFocusedProperty VisualElement.FlowDirectionProperty VisualElement.WindowProperty VisualElement.ShadowProperty VisualElement.ZIndexProperty VisualElement.ControlsVisualElementMapper VisualElement.BatchBegin() VisualElement.BatchCommit() VisualElement.Focus() VisualElement.Measure(double, double, MeasureFlags) VisualElement.Unfocus() VisualElement.InvalidateMeasure() VisualElement.OnChildAdded(Element) VisualElement.OnChildRemoved(Element, int) VisualElement.OnChildrenReordered() VisualElement.OnMeasure(double, double) VisualElement.OnSizeAllocated(double, double) VisualElement.SizeAllocated(double, double) VisualElement.RefreshIsEnabledProperty() VisualElement.Arrange(Rect) VisualElement.ArrangeOverride(Rect) VisualElement.Layout(Rect) VisualElement.InvalidateMeasureOverride() VisualElement.MeasureOverride(double, double) VisualElement.MapBackgroundColor(IViewHandler, IView) VisualElement.MapBackgroundImageSource(IViewHandler, IView) VisualElement.Visual VisualElement.FlowDirection VisualElement.Window VisualElement.AnchorX VisualElement.AnchorY VisualElement.BackgroundColor VisualElement.Background VisualElement.Behaviors VisualElement.Bounds VisualElement.Height VisualElement.HeightRequest VisualElement.InputTransparent VisualElement.IsEnabled VisualElement.IsEnabledCore VisualElement.IsFocused VisualElement.IsVisible VisualElement.MinimumHeightRequest VisualElement.MinimumWidthRequest VisualElement.MaximumHeightRequest VisualElement.MaximumWidthRequest VisualElement.Opacity VisualElement.Rotation VisualElement.RotationX VisualElement.RotationY VisualElement.Scale VisualElement.ScaleX VisualElement.ScaleY VisualElement.TranslationX VisualElement.TranslationY VisualElement.Triggers VisualElement.Width VisualElement.WidthRequest VisualElement.X VisualElement.Y VisualElement.Clip VisualElement.Resources VisualElement.Frame VisualElement.Handler VisualElement.Shadow VisualElement.ZIndex VisualElement.DesiredSize VisualElement.IsLoaded VisualElement.ChildrenReordered VisualElement.Focused VisualElement.MeasureInvalidated VisualElement.SizeChanged VisualElement.Unfocused VisualElement.Loaded VisualElement.Unloaded NavigableElement.OnParentSet() NavigableElement.Navigation NavigableElement.Style NavigableElement.StyleClass NavigableElement.class Element.AutomationIdProperty Element.ClassIdProperty Element.ControlsElementMapper Element.InsertLogicalChild(int, Element) Element.AddLogicalChild(Element) Element.RemoveLogicalChild(Element) Element.ClearLogicalChildren() Element.FindByName(string) Element.RemoveDynamicResource(BindableProperty) Element.SetDynamicResource(BindableProperty, string) Element.OnPropertyChanged(string) Element.OnParentChanging(ParentChangingEventArgs) Element.OnHandlerChanging(HandlerChangingEventArgs) Element.OnHandlerChanged() Element.MapAutomationPropertiesIsInAccessibleTree(IElementHandler, Element) Element.MapAutomationPropertiesExcludedWithChildren(IElementHandler, Element) Element.AutomationId Element.ClassId Element.Effects Element.Id Element.StyleId Element.Parent Element.ChildAdded Element.ChildRemoved Element.DescendantAdded Element.DescendantRemoved Element.ParentChanging Element.ParentChanged Element.HandlerChanging Element.HandlerChanged BindableObject.BindingContextProperty BindableObject.ClearValue(BindableProperty) BindableObject.ClearValue(BindablePropertyKey) BindableObject.GetValue(BindableProperty) BindableObject.IsSet(BindableProperty) BindableObject.RemoveBinding(BindableProperty) BindableObject.SetBinding(BindableProperty, BindingBase) BindableObject.ApplyBindings() BindableObject.OnPropertyChanging(string) BindableObject.UnapplyBindings() BindableObject.SetValue(BindableProperty, object) BindableObject.SetValue(BindablePropertyKey, object) BindableObject.CoerceValue(BindableProperty) BindableObject.CoerceValue(BindablePropertyKey) BindableObject.Dispatcher BindableObject.BindingContext BindableObject.PropertyChanged BindableObject.PropertyChanging BindableObject.BindingContextChanged object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Constructors ProgressBar() public ProgressBar() Fields CornerRadiusProperty public static readonly BindableProperty CornerRadiusProperty Field Value BindableProperty EasingIntervalProperty public static readonly BindableProperty EasingIntervalProperty Field Value BindableProperty EasingProperty public static readonly BindableProperty EasingProperty Field Value BindableProperty EnableAnimationsProperty public static readonly BindableProperty EnableAnimationsProperty Field Value BindableProperty IsVerticalProperty public static readonly BindableProperty IsVerticalProperty Field Value BindableProperty ProgressBrushProperty public static readonly BindableProperty ProgressBrushProperty Field Value BindableProperty ProgressProperty public static readonly BindableProperty ProgressProperty Field Value BindableProperty RoundCornersProperty public static readonly BindableProperty RoundCornersProperty Field Value BindableProperty StrokeBrushProperty public static readonly BindableProperty StrokeBrushProperty Field Value BindableProperty Properties CornerRadius public CornerRadius CornerRadius { get; set; } Property Value CornerRadius Easing public Easing Easing { get; set; } Property Value Easing EasingInterval public int EasingInterval { get; set; } Property Value int EnableAnimations public bool EnableAnimations { get; set; } Property Value bool IsVertical public bool IsVertical { get; set; } Property Value bool Progress public double Progress { get; set; } Property Value double ProgressBarDrawable protected ProgressBarDrawable ProgressBarDrawable { get; set; } Property Value ProgressBarDrawable ProgressBrush public Brush ProgressBrush { get; set; } Property Value Brush RoundCorners public bool RoundCorners { get; set; } Property Value bool StrokeBrush public Brush StrokeBrush { get; set; } Property Value Brush Methods OnParentChanged() When overridden in a derived class, should raise the ParentChanged event. protected override void OnParentChanged() Remarks It is the implementor's responsibility to raise the ParentChanged event. UpdateCornerRadius() protected void UpdateCornerRadius() UpdateProgress() protected void UpdateProgress() UpdateRoundCorners() protected void UpdateRoundCorners() Events ValueChanged public event EventHandler ValueChanged Event Type EventHandler" + }, + "api/AlohaKit.Controls.ProgressBarDrawable.html": { + "href": "api/AlohaKit.Controls.ProgressBarDrawable.html", + "title": "Class ProgressBarDrawable | alohakit.controls", + "summary": "Class ProgressBarDrawable Namespace AlohaKit.Controls Assembly AlohaKit.dll public class ProgressBarDrawable : IDrawable Inheritance object ProgressBarDrawable Implements IDrawable Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Properties CornerRadius public CornerRadius CornerRadius { get; set; } Property Value CornerRadius IsAnimating public bool IsAnimating { get; set; } Property Value bool IsVertical public bool IsVertical { get; set; } Property Value bool Progress public double Progress { get; set; } Property Value double ProgressPaint public Paint ProgressPaint { get; set; } Property Value Paint StrokePaint public Paint StrokePaint { get; set; } Property Value Paint Style public ProgressBarStyle Style { get; set; } Property Value ProgressBarStyle Methods Draw(ICanvas, RectF) public void Draw(ICanvas canvas, RectF dirtyRect) Parameters canvas ICanvas dirtyRect RectF DrawProgress(ICanvas, RectF) public virtual void DrawProgress(ICanvas canvas, RectF dirtyRect) Parameters canvas ICanvas dirtyRect RectF DrawTrack(ICanvas, RectF) public virtual void DrawTrack(ICanvas canvas, RectF dirtyRect) Parameters canvas ICanvas dirtyRect RectF" + }, + "api/AlohaKit.Controls.ProgressBarStyle.html": { + "href": "api/AlohaKit.Controls.ProgressBarStyle.html", + "title": "Enum ProgressBarStyle | alohakit.controls", + "summary": "Enum ProgressBarStyle Namespace AlohaKit.Controls Assembly AlohaKit.dll The ProgressBarStyle enumeration defines the visual style options for rendering a progress bar. This provides developers with a simple way to specify whether the progress bar appears with sharp corners or rounded edges. public enum ProgressBarStyle Fields Rounded = 1 Square = 0" + }, + "api/AlohaKit.Controls.ProgressRadial.html": { + "href": "api/AlohaKit.Controls.ProgressRadial.html", + "title": "Class ProgressRadial | alohakit.controls", + "summary": "Class ProgressRadial Namespace AlohaKit.Controls Assembly AlohaKit.dll The ProgressRadial is a drawn control designed to visually represent progress in a circular or radial form. It can be used to display percentages or completion statuses, such as task progress, loading indicators, or performance metrics. public class ProgressRadial : GraphicsView, INotifyPropertyChanged, IVisualTreeElement, IEffectControlProvider, IToolTipElement, IContextFlyoutElement, IAnimatable, IViewController, IVisualElementController, IElementController, IGestureController, IGestureRecognizers, IPropertyMapperView, IHotReloadableView, IReplaceableView, IGraphicsView, IView, IElement, ITransform Inheritance object BindableObject Element NavigableElement VisualElement View GraphicsView ProgressRadial Implements INotifyPropertyChanged IVisualTreeElement IEffectControlProvider IToolTipElement IContextFlyoutElement IAnimatable IViewController IVisualElementController IElementController IGestureController IGestureRecognizers IPropertyMapperView IHotReloadableView IReplaceableView IGraphicsView IView IElement ITransform Inherited Members GraphicsView.DrawableProperty GraphicsView.Invalidate() GraphicsView.Drawable GraphicsView.StartHoverInteraction GraphicsView.MoveHoverInteraction GraphicsView.EndHoverInteraction GraphicsView.StartInteraction GraphicsView.DragInteraction GraphicsView.EndInteraction GraphicsView.CancelInteraction View.VerticalOptionsProperty View.HorizontalOptionsProperty View.MarginProperty View.propertyMapper View.ChangeVisualState() View.GetChildElements(Point) View.OnBindingContextChanged() View.GetRendererOverrides() View.GestureController View.GestureRecognizers View.HorizontalOptions View.Margin View.VerticalOptions VisualElement.NavigationProperty VisualElement.StyleProperty VisualElement.InputTransparentProperty VisualElement.IsEnabledProperty VisualElement.XProperty VisualElement.YProperty VisualElement.AnchorXProperty VisualElement.AnchorYProperty VisualElement.TranslationXProperty VisualElement.TranslationYProperty VisualElement.WidthProperty VisualElement.HeightProperty VisualElement.RotationProperty VisualElement.RotationXProperty VisualElement.RotationYProperty VisualElement.ScaleProperty VisualElement.ScaleXProperty VisualElement.ScaleYProperty VisualElement.ClipProperty VisualElement.VisualProperty VisualElement.IsVisibleProperty VisualElement.OpacityProperty VisualElement.BackgroundProperty VisualElement.BehaviorsProperty VisualElement.TriggersProperty VisualElement.WidthRequestProperty VisualElement.HeightRequestProperty VisualElement.MinimumWidthRequestProperty VisualElement.MinimumHeightRequestProperty VisualElement.MaximumWidthRequestProperty VisualElement.MaximumHeightRequestProperty VisualElement.IsFocusedProperty VisualElement.FlowDirectionProperty VisualElement.WindowProperty VisualElement.ShadowProperty VisualElement.ZIndexProperty VisualElement.ControlsVisualElementMapper VisualElement.BatchBegin() VisualElement.BatchCommit() VisualElement.Focus() VisualElement.Measure(double, double, MeasureFlags) VisualElement.Unfocus() VisualElement.InvalidateMeasure() VisualElement.OnChildAdded(Element) VisualElement.OnChildRemoved(Element, int) VisualElement.OnChildrenReordered() VisualElement.OnMeasure(double, double) VisualElement.OnSizeAllocated(double, double) VisualElement.SizeAllocated(double, double) VisualElement.RefreshIsEnabledProperty() VisualElement.Arrange(Rect) VisualElement.ArrangeOverride(Rect) VisualElement.Layout(Rect) VisualElement.InvalidateMeasureOverride() VisualElement.MeasureOverride(double, double) VisualElement.MapBackgroundColor(IViewHandler, IView) VisualElement.MapBackgroundImageSource(IViewHandler, IView) VisualElement.Visual VisualElement.FlowDirection VisualElement.Window VisualElement.AnchorX VisualElement.AnchorY VisualElement.Background VisualElement.Behaviors VisualElement.Bounds VisualElement.Height VisualElement.HeightRequest VisualElement.InputTransparent VisualElement.IsEnabled VisualElement.IsEnabledCore VisualElement.IsFocused VisualElement.IsVisible VisualElement.MinimumHeightRequest VisualElement.MinimumWidthRequest VisualElement.MaximumHeightRequest VisualElement.MaximumWidthRequest VisualElement.Opacity VisualElement.Rotation VisualElement.RotationX VisualElement.RotationY VisualElement.Scale VisualElement.ScaleX VisualElement.ScaleY VisualElement.TranslationX VisualElement.TranslationY VisualElement.Triggers VisualElement.Width VisualElement.WidthRequest VisualElement.X VisualElement.Y VisualElement.Clip VisualElement.Resources VisualElement.Frame VisualElement.Handler VisualElement.Shadow VisualElement.ZIndex VisualElement.DesiredSize VisualElement.IsLoaded VisualElement.ChildrenReordered VisualElement.Focused VisualElement.MeasureInvalidated VisualElement.SizeChanged VisualElement.Unfocused VisualElement.Loaded VisualElement.Unloaded NavigableElement.OnParentSet() NavigableElement.Navigation NavigableElement.Style NavigableElement.StyleClass NavigableElement.class Element.AutomationIdProperty Element.ClassIdProperty Element.ControlsElementMapper Element.InsertLogicalChild(int, Element) Element.AddLogicalChild(Element) Element.RemoveLogicalChild(Element) Element.ClearLogicalChildren() Element.FindByName(string) Element.RemoveDynamicResource(BindableProperty) Element.SetDynamicResource(BindableProperty, string) Element.OnPropertyChanged(string) Element.OnParentChanging(ParentChangingEventArgs) Element.OnHandlerChanging(HandlerChangingEventArgs) Element.OnHandlerChanged() Element.MapAutomationPropertiesIsInAccessibleTree(IElementHandler, Element) Element.MapAutomationPropertiesExcludedWithChildren(IElementHandler, Element) Element.AutomationId Element.ClassId Element.Effects Element.Id Element.StyleId Element.Parent Element.ChildAdded Element.ChildRemoved Element.DescendantAdded Element.DescendantRemoved Element.ParentChanging Element.ParentChanged Element.HandlerChanging Element.HandlerChanged BindableObject.BindingContextProperty BindableObject.ClearValue(BindableProperty) BindableObject.ClearValue(BindablePropertyKey) BindableObject.GetValue(BindableProperty) BindableObject.IsSet(BindableProperty) BindableObject.RemoveBinding(BindableProperty) BindableObject.SetBinding(BindableProperty, BindingBase) BindableObject.ApplyBindings() BindableObject.OnPropertyChanging(string) BindableObject.UnapplyBindings() BindableObject.SetValue(BindableProperty, object) BindableObject.SetValue(BindablePropertyKey, object) BindableObject.CoerceValue(BindableProperty) BindableObject.CoerceValue(BindablePropertyKey) BindableObject.Dispatcher BindableObject.BindingContext BindableObject.PropertyChanged BindableObject.PropertyChanging BindableObject.BindingContextChanged object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Constructors ProgressRadial() public ProgressRadial() Fields BackgroundColorProperty public static readonly BindableProperty BackgroundColorProperty Field Value BindableProperty DirectionProperty public static readonly BindableProperty DirectionProperty Field Value BindableProperty FontSizeProperty public static readonly BindableProperty FontSizeProperty Field Value BindableProperty MaximumProperty public static readonly BindableProperty MaximumProperty Field Value BindableProperty MinimumProperty public static readonly BindableProperty MinimumProperty Field Value BindableProperty ProgressColorProperty public static readonly BindableProperty ProgressColorProperty Field Value BindableProperty StrokeColorProperty public static readonly BindableProperty StrokeColorProperty Field Value BindableProperty TextColorProperty public static readonly BindableProperty TextColorProperty Field Value BindableProperty ValueProperty public static readonly BindableProperty ValueProperty Field Value BindableProperty Properties BackgroundColor public Color BackgroundColor { get; set; } Property Value Color Direction public ProgressRadialDirection Direction { get; set; } Property Value ProgressRadialDirection FontSize public double FontSize { get; set; } Property Value double Maximum public int Maximum { get; set; } Property Value int Minimum public int Minimum { get; set; } Property Value int ProgressColor public Color ProgressColor { get; set; } Property Value Color StrokeColor public Color StrokeColor { get; set; } Property Value Color TextColor public Color TextColor { get; set; } Property Value Color Value public int Value { get; set; } Property Value int Methods OnParentChanged() When overridden in a derived class, should raise the ParentChanged event. protected override void OnParentChanged() Remarks It is the implementor's responsibility to raise the ParentChanged event. Events ValueChanged public event EventHandler ValueChanged Event Type EventHandler" + }, + "api/AlohaKit.Controls.ProgressRadialDirection.html": { + "href": "api/AlohaKit.Controls.ProgressRadialDirection.html", + "title": "Enum ProgressRadialDirection | alohakit.controls", + "summary": "Enum ProgressRadialDirection Namespace AlohaKit.Controls Assembly AlohaKit.dll The ProgressRadialDirection enumeration specifies the direction of progress rendering for radial progress components, allowing developers to define whether progress moves clockwise or counterclockwise along the circular axis. public enum ProgressRadialDirection Fields LeftToRight = 0 RightToLeft = 1" + }, + "api/AlohaKit.Controls.ProgressRadialDrawable.html": { + "href": "api/AlohaKit.Controls.ProgressRadialDrawable.html", + "title": "Class ProgressRadialDrawable | alohakit.controls", + "summary": "Class ProgressRadialDrawable Namespace AlohaKit.Controls Assembly AlohaKit.dll public class ProgressRadialDrawable : IDrawable Inheritance object ProgressRadialDrawable Implements IDrawable Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Properties BackgroundColor public Color BackgroundColor { get; set; } Property Value Color Direction public ProgressRadialDirection Direction { get; set; } Property Value ProgressRadialDirection FontSize public double FontSize { get; set; } Property Value double IsAnimating public bool IsAnimating { get; set; } Property Value bool ProgressAngle public float ProgressAngle { get; set; } Property Value float ProgressColor public Color ProgressColor { get; set; } Property Value Color ProgressText public string ProgressText { get; set; } Property Value string StrokeColor public Color StrokeColor { get; set; } Property Value Color TextColor public Color TextColor { get; set; } Property Value Color Methods Draw(ICanvas, RectF) public void Draw(ICanvas canvas, RectF dirtyRect) Parameters canvas ICanvas dirtyRect RectF DrawBackground(ICanvas, RectF) public virtual void DrawBackground(ICanvas canvas, RectF dirtyRect) Parameters canvas ICanvas dirtyRect RectF DrawProgress(ICanvas, RectF) public virtual void DrawProgress(ICanvas canvas, RectF dirtyRect) Parameters canvas ICanvas dirtyRect RectF DrawStroke(ICanvas, RectF) public virtual void DrawStroke(ICanvas canvas, RectF dirtyRect) Parameters canvas ICanvas dirtyRect RectF DrawText(ICanvas, RectF) public virtual void DrawText(ICanvas canvas, RectF dirtyRect) Parameters canvas ICanvas dirtyRect RectF" + }, + "api/AlohaKit.Controls.PulseIcon.html": { + "href": "api/AlohaKit.Controls.PulseIcon.html", + "title": "Class PulseIcon | alohakit.controls", + "summary": "Class PulseIcon Namespace AlohaKit.Controls Assembly AlohaKit.dll The PulseIcon is a drawn control that creates an animated pulsing effect around an icon. This control is particularly useful for drawing attention to specific elements in your user interface, such as notifications, interactive features, or status indicators. public class PulseIcon : GraphicsView, INotifyPropertyChanged, IVisualTreeElement, IEffectControlProvider, IToolTipElement, IContextFlyoutElement, IAnimatable, IViewController, IVisualElementController, IElementController, IGestureController, IGestureRecognizers, IPropertyMapperView, IHotReloadableView, IReplaceableView, IGraphicsView, IView, IElement, ITransform Inheritance object BindableObject Element NavigableElement VisualElement View GraphicsView PulseIcon Implements INotifyPropertyChanged IVisualTreeElement IEffectControlProvider IToolTipElement IContextFlyoutElement IAnimatable IViewController IVisualElementController IElementController IGestureController IGestureRecognizers IPropertyMapperView IHotReloadableView IReplaceableView IGraphicsView IView IElement ITransform Inherited Members GraphicsView.DrawableProperty GraphicsView.Invalidate() GraphicsView.Drawable GraphicsView.StartHoverInteraction GraphicsView.MoveHoverInteraction GraphicsView.EndHoverInteraction GraphicsView.StartInteraction GraphicsView.DragInteraction GraphicsView.EndInteraction GraphicsView.CancelInteraction View.VerticalOptionsProperty View.HorizontalOptionsProperty View.MarginProperty View.propertyMapper View.ChangeVisualState() View.GetChildElements(Point) View.OnBindingContextChanged() View.GetRendererOverrides() View.GestureController View.GestureRecognizers View.HorizontalOptions View.Margin View.VerticalOptions VisualElement.NavigationProperty VisualElement.StyleProperty VisualElement.InputTransparentProperty VisualElement.IsEnabledProperty VisualElement.XProperty VisualElement.YProperty VisualElement.AnchorXProperty VisualElement.AnchorYProperty VisualElement.TranslationXProperty VisualElement.TranslationYProperty VisualElement.WidthProperty VisualElement.HeightProperty VisualElement.RotationProperty VisualElement.RotationXProperty VisualElement.RotationYProperty VisualElement.ScaleProperty VisualElement.ScaleXProperty VisualElement.ScaleYProperty VisualElement.ClipProperty VisualElement.VisualProperty VisualElement.IsVisibleProperty VisualElement.OpacityProperty VisualElement.BackgroundColorProperty VisualElement.BehaviorsProperty VisualElement.TriggersProperty VisualElement.WidthRequestProperty VisualElement.HeightRequestProperty VisualElement.MinimumWidthRequestProperty VisualElement.MinimumHeightRequestProperty VisualElement.MaximumWidthRequestProperty VisualElement.MaximumHeightRequestProperty VisualElement.IsFocusedProperty VisualElement.FlowDirectionProperty VisualElement.WindowProperty VisualElement.ShadowProperty VisualElement.ZIndexProperty VisualElement.ControlsVisualElementMapper VisualElement.BatchBegin() VisualElement.BatchCommit() VisualElement.Focus() VisualElement.Measure(double, double, MeasureFlags) VisualElement.Unfocus() VisualElement.InvalidateMeasure() VisualElement.OnChildAdded(Element) VisualElement.OnChildRemoved(Element, int) VisualElement.OnChildrenReordered() VisualElement.OnMeasure(double, double) VisualElement.OnSizeAllocated(double, double) VisualElement.SizeAllocated(double, double) VisualElement.RefreshIsEnabledProperty() VisualElement.Arrange(Rect) VisualElement.ArrangeOverride(Rect) VisualElement.Layout(Rect) VisualElement.InvalidateMeasureOverride() VisualElement.MeasureOverride(double, double) VisualElement.MapBackgroundColor(IViewHandler, IView) VisualElement.MapBackgroundImageSource(IViewHandler, IView) VisualElement.Visual VisualElement.FlowDirection VisualElement.Window VisualElement.AnchorX VisualElement.AnchorY VisualElement.BackgroundColor VisualElement.Behaviors VisualElement.Bounds VisualElement.Height VisualElement.HeightRequest VisualElement.InputTransparent VisualElement.IsEnabled VisualElement.IsEnabledCore VisualElement.IsFocused VisualElement.IsVisible VisualElement.MinimumHeightRequest VisualElement.MinimumWidthRequest VisualElement.MaximumHeightRequest VisualElement.MaximumWidthRequest VisualElement.Opacity VisualElement.Rotation VisualElement.RotationX VisualElement.RotationY VisualElement.Scale VisualElement.ScaleX VisualElement.ScaleY VisualElement.TranslationX VisualElement.TranslationY VisualElement.Triggers VisualElement.Width VisualElement.WidthRequest VisualElement.X VisualElement.Y VisualElement.Clip VisualElement.Resources VisualElement.Frame VisualElement.Handler VisualElement.Shadow VisualElement.ZIndex VisualElement.DesiredSize VisualElement.IsLoaded VisualElement.ChildrenReordered VisualElement.Focused VisualElement.MeasureInvalidated VisualElement.SizeChanged VisualElement.Unfocused VisualElement.Loaded VisualElement.Unloaded NavigableElement.OnParentSet() NavigableElement.Navigation NavigableElement.Style NavigableElement.StyleClass NavigableElement.class Element.AutomationIdProperty Element.ClassIdProperty Element.ControlsElementMapper Element.InsertLogicalChild(int, Element) Element.AddLogicalChild(Element) Element.RemoveLogicalChild(Element) Element.ClearLogicalChildren() Element.FindByName(string) Element.RemoveDynamicResource(BindableProperty) Element.SetDynamicResource(BindableProperty, string) Element.OnPropertyChanged(string) Element.OnParentChanging(ParentChangingEventArgs) Element.OnHandlerChanging(HandlerChangingEventArgs) Element.OnHandlerChanged() Element.MapAutomationPropertiesIsInAccessibleTree(IElementHandler, Element) Element.MapAutomationPropertiesExcludedWithChildren(IElementHandler, Element) Element.AutomationId Element.ClassId Element.Effects Element.Id Element.StyleId Element.Parent Element.ChildAdded Element.ChildRemoved Element.DescendantAdded Element.DescendantRemoved Element.ParentChanging Element.ParentChanged Element.HandlerChanging Element.HandlerChanged BindableObject.BindingContextProperty BindableObject.ClearValue(BindableProperty) BindableObject.ClearValue(BindablePropertyKey) BindableObject.GetValue(BindableProperty) BindableObject.IsSet(BindableProperty) BindableObject.RemoveBinding(BindableProperty) BindableObject.SetBinding(BindableProperty, BindingBase) BindableObject.ApplyBindings() BindableObject.OnPropertyChanging(string) BindableObject.UnapplyBindings() BindableObject.SetValue(BindableProperty, object) BindableObject.SetValue(BindablePropertyKey, object) BindableObject.CoerceValue(BindableProperty) BindableObject.CoerceValue(BindablePropertyKey) BindableObject.Dispatcher BindableObject.BindingContext BindableObject.PropertyChanged BindableObject.PropertyChanging BindableObject.BindingContextChanged object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Constructors PulseIcon() public PulseIcon() Fields BackgroundProperty public static readonly BindableProperty BackgroundProperty Field Value BindableProperty IsPulsingProperty public static readonly BindableProperty IsPulsingProperty Field Value BindableProperty PulseColorProperty public static readonly BindableProperty PulseColorProperty Field Value BindableProperty SourceProperty public static readonly BindableProperty SourceProperty Field Value BindableProperty Properties Background public Brush Background { get; set; } Property Value Brush IsPulsing public bool IsPulsing { get; set; } Property Value bool PulseColor public Color PulseColor { get; set; } Property Value Color PulseIconDrawable public PulseIconDrawable PulseIconDrawable { get; set; } Property Value PulseIconDrawable Source public string Source { get; set; } Property Value string Methods OnParentChanged() When overridden in a derived class, should raise the ParentChanged event. protected override void OnParentChanged() Remarks It is the implementor's responsibility to raise the ParentChanged event. Events Clicked public event EventHandler Clicked Event Type EventHandler" + }, + "api/AlohaKit.Controls.PulseIconDrawable.html": { + "href": "api/AlohaKit.Controls.PulseIconDrawable.html", + "title": "Class PulseIconDrawable | alohakit.controls", + "summary": "Class PulseIconDrawable Namespace AlohaKit.Controls Assembly AlohaKit.dll public class PulseIconDrawable : IDrawable Inheritance object PulseIconDrawable Implements IDrawable Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Properties BackgroundPaint public Paint BackgroundPaint { get; set; } Property Value Paint PulseColor public Color PulseColor { get; set; } Property Value Color Source public string Source { get; set; } Property Value string Methods Draw(ICanvas, RectF) public void Draw(ICanvas canvas, RectF dirtyRect) Parameters canvas ICanvas dirtyRect RectF DrawBackground(ICanvas, RectF) public virtual void DrawBackground(ICanvas canvas, RectF dirtyRect) Parameters canvas ICanvas dirtyRect RectF DrawIcon(ICanvas, RectF) public virtual void DrawIcon(ICanvas canvas, RectF dirtyRect) Parameters canvas ICanvas dirtyRect RectF DrawPulse(ICanvas, RectF) public virtual void DrawPulse(ICanvas canvas, RectF dirtyRect) Parameters canvas ICanvas dirtyRect RectF" + }, + "api/AlohaKit.Controls.Rating.html": { + "href": "api/AlohaKit.Controls.Rating.html", + "title": "Class Rating | alohakit.controls", + "summary": "Class Rating Namespace AlohaKit.Controls Assembly AlohaKit.dll The Rating is a drawn control that allows users to rate items or entities, typically using a star-based system or other graphical representation. This control is perfect for scenarios where users need to provide feedback, score performance, or indicate preferences in an intuitive visual format. public class Rating : GraphicsView, INotifyPropertyChanged, IVisualTreeElement, IEffectControlProvider, IToolTipElement, IContextFlyoutElement, IAnimatable, IViewController, IVisualElementController, IElementController, IGestureController, IGestureRecognizers, IPropertyMapperView, IHotReloadableView, IReplaceableView, IGraphicsView, IView, IElement, ITransform Inheritance object BindableObject Element NavigableElement VisualElement View GraphicsView Rating Implements INotifyPropertyChanged IVisualTreeElement IEffectControlProvider IToolTipElement IContextFlyoutElement IAnimatable IViewController IVisualElementController IElementController IGestureController IGestureRecognizers IPropertyMapperView IHotReloadableView IReplaceableView IGraphicsView IView IElement ITransform Inherited Members GraphicsView.DrawableProperty GraphicsView.Invalidate() GraphicsView.Drawable GraphicsView.StartHoverInteraction GraphicsView.MoveHoverInteraction GraphicsView.EndHoverInteraction GraphicsView.StartInteraction GraphicsView.DragInteraction GraphicsView.EndInteraction GraphicsView.CancelInteraction View.VerticalOptionsProperty View.HorizontalOptionsProperty View.MarginProperty View.propertyMapper View.ChangeVisualState() View.GetChildElements(Point) View.OnBindingContextChanged() View.GetRendererOverrides() View.GestureController View.GestureRecognizers View.HorizontalOptions View.Margin View.VerticalOptions VisualElement.NavigationProperty VisualElement.StyleProperty VisualElement.InputTransparentProperty VisualElement.IsEnabledProperty VisualElement.XProperty VisualElement.YProperty VisualElement.AnchorXProperty VisualElement.AnchorYProperty VisualElement.TranslationXProperty VisualElement.TranslationYProperty VisualElement.WidthProperty VisualElement.HeightProperty VisualElement.RotationProperty VisualElement.RotationXProperty VisualElement.RotationYProperty VisualElement.ScaleProperty VisualElement.ScaleXProperty VisualElement.ScaleYProperty VisualElement.ClipProperty VisualElement.VisualProperty VisualElement.IsVisibleProperty VisualElement.OpacityProperty VisualElement.BackgroundColorProperty VisualElement.BehaviorsProperty VisualElement.TriggersProperty VisualElement.WidthRequestProperty VisualElement.HeightRequestProperty VisualElement.MinimumWidthRequestProperty VisualElement.MinimumHeightRequestProperty VisualElement.MaximumWidthRequestProperty VisualElement.MaximumHeightRequestProperty VisualElement.IsFocusedProperty VisualElement.FlowDirectionProperty VisualElement.WindowProperty VisualElement.ShadowProperty VisualElement.ZIndexProperty VisualElement.ControlsVisualElementMapper VisualElement.BatchBegin() VisualElement.BatchCommit() VisualElement.Focus() VisualElement.Measure(double, double, MeasureFlags) VisualElement.Unfocus() VisualElement.InvalidateMeasure() VisualElement.OnChildAdded(Element) VisualElement.OnChildRemoved(Element, int) VisualElement.OnChildrenReordered() VisualElement.OnMeasure(double, double) VisualElement.OnSizeAllocated(double, double) VisualElement.SizeAllocated(double, double) VisualElement.RefreshIsEnabledProperty() VisualElement.Arrange(Rect) VisualElement.ArrangeOverride(Rect) VisualElement.Layout(Rect) VisualElement.InvalidateMeasureOverride() VisualElement.MeasureOverride(double, double) VisualElement.MapBackgroundColor(IViewHandler, IView) VisualElement.MapBackgroundImageSource(IViewHandler, IView) VisualElement.Visual VisualElement.FlowDirection VisualElement.Window VisualElement.AnchorX VisualElement.AnchorY VisualElement.BackgroundColor VisualElement.Behaviors VisualElement.Bounds VisualElement.Height VisualElement.HeightRequest VisualElement.InputTransparent VisualElement.IsEnabled VisualElement.IsEnabledCore VisualElement.IsFocused VisualElement.IsVisible VisualElement.MinimumHeightRequest VisualElement.MinimumWidthRequest VisualElement.MaximumHeightRequest VisualElement.MaximumWidthRequest VisualElement.Opacity VisualElement.Rotation VisualElement.RotationX VisualElement.RotationY VisualElement.Scale VisualElement.ScaleX VisualElement.ScaleY VisualElement.TranslationX VisualElement.TranslationY VisualElement.Triggers VisualElement.Width VisualElement.WidthRequest VisualElement.X VisualElement.Y VisualElement.Clip VisualElement.Resources VisualElement.Frame VisualElement.Handler VisualElement.Shadow VisualElement.ZIndex VisualElement.DesiredSize VisualElement.IsLoaded VisualElement.ChildrenReordered VisualElement.Focused VisualElement.MeasureInvalidated VisualElement.SizeChanged VisualElement.Unfocused VisualElement.Loaded VisualElement.Unloaded NavigableElement.Navigation NavigableElement.Style NavigableElement.StyleClass NavigableElement.class Element.AutomationIdProperty Element.ClassIdProperty Element.ControlsElementMapper Element.InsertLogicalChild(int, Element) Element.AddLogicalChild(Element) Element.RemoveLogicalChild(Element) Element.ClearLogicalChildren() Element.FindByName(string) Element.RemoveDynamicResource(BindableProperty) Element.SetDynamicResource(BindableProperty, string) Element.OnPropertyChanged(string) Element.OnParentChanging(ParentChangingEventArgs) Element.OnParentChanged() Element.OnHandlerChanging(HandlerChangingEventArgs) Element.OnHandlerChanged() Element.MapAutomationPropertiesIsInAccessibleTree(IElementHandler, Element) Element.MapAutomationPropertiesExcludedWithChildren(IElementHandler, Element) Element.AutomationId Element.ClassId Element.Effects Element.Id Element.StyleId Element.Parent Element.ChildAdded Element.ChildRemoved Element.DescendantAdded Element.DescendantRemoved Element.ParentChanging Element.ParentChanged Element.HandlerChanging Element.HandlerChanged BindableObject.BindingContextProperty BindableObject.ClearValue(BindableProperty) BindableObject.ClearValue(BindablePropertyKey) BindableObject.GetValue(BindableProperty) BindableObject.IsSet(BindableProperty) BindableObject.RemoveBinding(BindableProperty) BindableObject.SetBinding(BindableProperty, BindingBase) BindableObject.ApplyBindings() BindableObject.OnPropertyChanging(string) BindableObject.UnapplyBindings() BindableObject.SetValue(BindableProperty, object) BindableObject.SetValue(BindablePropertyKey, object) BindableObject.CoerceValue(BindableProperty) BindableObject.CoerceValue(BindablePropertyKey) BindableObject.Dispatcher BindableObject.BindingContext BindableObject.PropertyChanged BindableObject.PropertyChanging BindableObject.BindingContextChanged object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Constructors Rating() public Rating() Fields BackgroundProperty public static readonly BindableProperty BackgroundProperty Field Value BindableProperty IsReadOnlyProperty public static readonly BindableProperty IsReadOnlyProperty Field Value BindableProperty ItemsCountProperty public static readonly BindableProperty ItemsCountProperty Field Value BindableProperty SelectedFillProperty public static readonly BindableProperty SelectedFillProperty Field Value BindableProperty SelectedStrokeProperty public static readonly BindableProperty SelectedStrokeProperty Field Value BindableProperty SelectedStrokeWidthProperty public static readonly BindableProperty SelectedStrokeWidthProperty Field Value BindableProperty UnSelectedFillProperty public static readonly BindableProperty UnSelectedFillProperty Field Value BindableProperty UnSelectedStrokeProperty public static readonly BindableProperty UnSelectedStrokeProperty Field Value BindableProperty UnSelectedStrokeWidthProperty public static readonly BindableProperty UnSelectedStrokeWidthProperty Field Value BindableProperty ValueProperty public static readonly BindableProperty ValueProperty Field Value BindableProperty Properties Background public Brush Background { get; set; } Property Value Brush IsReadOnly public bool IsReadOnly { get; set; } Property Value bool ItemsCount public int ItemsCount { get; set; } Property Value int RatingDrawable public RatingDrawable RatingDrawable { get; set; } Property Value RatingDrawable SelectedFill public Color SelectedFill { get; set; } Property Value Color SelectedStroke public Color SelectedStroke { get; set; } Property Value Color SelectedStrokeWidth public double SelectedStrokeWidth { get; set; } Property Value double UnSelectedFill public Color UnSelectedFill { get; set; } Property Value Color UnSelectedStroke public Color UnSelectedStroke { get; set; } Property Value Color UnSelectedStrokeWidth public double UnSelectedStrokeWidth { get; set; } Property Value double Value public int Value { get; set; } Property Value int Methods OnParentSet() Raises the (internal) ParentSet event. protected override void OnParentSet() Remarks Will set the NavigationProxy's inner navigation object to closest topmost element capable of handling navigation calls. See Also OnParentSet() Events ValueChanged public event EventHandler ValueChanged Event Type EventHandler" + }, + "api/AlohaKit.Controls.RatingDrawable.html": { + "href": "api/AlohaKit.Controls.RatingDrawable.html", + "title": "Class RatingDrawable | alohakit.controls", + "summary": "Class RatingDrawable Namespace AlohaKit.Controls Assembly AlohaKit.dll public class RatingDrawable : IDrawable Inheritance object RatingDrawable Implements IDrawable Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Properties BackgroundPaint public Paint BackgroundPaint { get; set; } Property Value Paint ItemsCount public int ItemsCount { get; set; } Property Value int SelectedFillColor public Color SelectedFillColor { get; set; } Property Value Color SelectedStrokeColor public Color SelectedStrokeColor { get; set; } Property Value Color SelectedStrokeWidth public double SelectedStrokeWidth { get; set; } Property Value double UnSelectedFillColor public Color UnSelectedFillColor { get; set; } Property Value Color UnSelectedStrokeColor public Color UnSelectedStrokeColor { get; set; } Property Value Color UnSelectedStrokeWidth public double UnSelectedStrokeWidth { get; set; } Property Value double Value public int Value { get; set; } Property Value int Methods Draw(ICanvas, RectF) public void Draw(ICanvas canvas, RectF dirtyRect) Parameters canvas ICanvas dirtyRect RectF DrawBackground(ICanvas, RectF) public virtual void DrawBackground(ICanvas canvas, RectF dirtyRect) Parameters canvas ICanvas dirtyRect RectF DrawRatingItem(ICanvas, RectF, int) public virtual void DrawRatingItem(ICanvas canvas, RectF dirtyRect, int index) Parameters canvas ICanvas dirtyRect RectF index int" + }, + "api/AlohaKit.Controls.RatingValueChangedEventArgs.html": { + "href": "api/AlohaKit.Controls.RatingValueChangedEventArgs.html", + "title": "Class RatingValueChangedEventArgs | alohakit.controls", + "summary": "Class RatingValueChangedEventArgs Namespace AlohaKit.Controls Assembly AlohaKit.dll The RatingValueChangedEventArgs class provides data for events that report a change in the rating value of a Rating control. public class RatingValueChangedEventArgs : EventArgs Inheritance object EventArgs RatingValueChangedEventArgs Inherited Members EventArgs.Empty object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Constructors RatingValueChangedEventArgs(double) public RatingValueChangedEventArgs(double value) Parameters value double Properties Value public double Value { get; set; } Property Value double" + }, + "api/AlohaKit.Controls.SegmentedControl.html": { + "href": "api/AlohaKit.Controls.SegmentedControl.html", + "title": "Class SegmentedControl | alohakit.controls", + "summary": "Class SegmentedControl Namespace AlohaKit.Controls Assembly AlohaKit.dll The SegmentedControl is a drawn control that allows users to make a single selection from a set of segmented options. It is ideal for scenarios where a user needs to choose between mutually exclusive options, such as switching between tabs or filtering content. public class SegmentedControl : GraphicsView, INotifyPropertyChanged, IVisualTreeElement, IEffectControlProvider, IToolTipElement, IContextFlyoutElement, IAnimatable, IViewController, IVisualElementController, IElementController, IGestureController, IGestureRecognizers, IPropertyMapperView, IHotReloadableView, IReplaceableView, IGraphicsView, IView, IElement, ITransform Inheritance object BindableObject Element NavigableElement VisualElement View GraphicsView SegmentedControl Implements INotifyPropertyChanged IVisualTreeElement IEffectControlProvider IToolTipElement IContextFlyoutElement IAnimatable IViewController IVisualElementController IElementController IGestureController IGestureRecognizers IPropertyMapperView IHotReloadableView IReplaceableView IGraphicsView IView IElement ITransform Inherited Members GraphicsView.DrawableProperty GraphicsView.Invalidate() GraphicsView.Drawable GraphicsView.StartHoverInteraction GraphicsView.MoveHoverInteraction GraphicsView.EndHoverInteraction GraphicsView.StartInteraction GraphicsView.DragInteraction GraphicsView.EndInteraction GraphicsView.CancelInteraction View.VerticalOptionsProperty View.HorizontalOptionsProperty View.MarginProperty View.propertyMapper View.ChangeVisualState() View.GetChildElements(Point) View.OnBindingContextChanged() View.GetRendererOverrides() View.GestureController View.GestureRecognizers View.HorizontalOptions View.Margin View.VerticalOptions VisualElement.NavigationProperty VisualElement.StyleProperty VisualElement.InputTransparentProperty VisualElement.IsEnabledProperty VisualElement.XProperty VisualElement.YProperty VisualElement.AnchorXProperty VisualElement.AnchorYProperty VisualElement.TranslationXProperty VisualElement.TranslationYProperty VisualElement.WidthProperty VisualElement.HeightProperty VisualElement.RotationProperty VisualElement.RotationXProperty VisualElement.RotationYProperty VisualElement.ScaleProperty VisualElement.ScaleXProperty VisualElement.ScaleYProperty VisualElement.ClipProperty VisualElement.VisualProperty VisualElement.IsVisibleProperty VisualElement.OpacityProperty VisualElement.BackgroundColorProperty VisualElement.BehaviorsProperty VisualElement.TriggersProperty VisualElement.WidthRequestProperty VisualElement.HeightRequestProperty VisualElement.MinimumWidthRequestProperty VisualElement.MinimumHeightRequestProperty VisualElement.MaximumWidthRequestProperty VisualElement.MaximumHeightRequestProperty VisualElement.IsFocusedProperty VisualElement.FlowDirectionProperty VisualElement.WindowProperty VisualElement.ShadowProperty VisualElement.ZIndexProperty VisualElement.ControlsVisualElementMapper VisualElement.BatchBegin() VisualElement.BatchCommit() VisualElement.Focus() VisualElement.Measure(double, double, MeasureFlags) VisualElement.Unfocus() VisualElement.InvalidateMeasure() VisualElement.OnChildAdded(Element) VisualElement.OnChildRemoved(Element, int) VisualElement.OnChildrenReordered() VisualElement.OnMeasure(double, double) VisualElement.SizeAllocated(double, double) VisualElement.RefreshIsEnabledProperty() VisualElement.Arrange(Rect) VisualElement.ArrangeOverride(Rect) VisualElement.Layout(Rect) VisualElement.InvalidateMeasureOverride() VisualElement.MeasureOverride(double, double) VisualElement.MapBackgroundColor(IViewHandler, IView) VisualElement.MapBackgroundImageSource(IViewHandler, IView) VisualElement.Visual VisualElement.FlowDirection VisualElement.Window VisualElement.AnchorX VisualElement.AnchorY VisualElement.BackgroundColor VisualElement.Behaviors VisualElement.Bounds VisualElement.Height VisualElement.HeightRequest VisualElement.InputTransparent VisualElement.IsEnabled VisualElement.IsEnabledCore VisualElement.IsFocused VisualElement.IsVisible VisualElement.MinimumHeightRequest VisualElement.MinimumWidthRequest VisualElement.MaximumHeightRequest VisualElement.MaximumWidthRequest VisualElement.Opacity VisualElement.Rotation VisualElement.RotationX VisualElement.RotationY VisualElement.Scale VisualElement.ScaleX VisualElement.ScaleY VisualElement.TranslationX VisualElement.TranslationY VisualElement.Triggers VisualElement.Width VisualElement.WidthRequest VisualElement.X VisualElement.Y VisualElement.Clip VisualElement.Resources VisualElement.Frame VisualElement.Handler VisualElement.Shadow VisualElement.ZIndex VisualElement.DesiredSize VisualElement.IsLoaded VisualElement.ChildrenReordered VisualElement.Focused VisualElement.MeasureInvalidated VisualElement.SizeChanged VisualElement.Unfocused VisualElement.Loaded VisualElement.Unloaded NavigableElement.Navigation NavigableElement.Style NavigableElement.StyleClass NavigableElement.class Element.AutomationIdProperty Element.ClassIdProperty Element.ControlsElementMapper Element.InsertLogicalChild(int, Element) Element.AddLogicalChild(Element) Element.RemoveLogicalChild(Element) Element.ClearLogicalChildren() Element.FindByName(string) Element.RemoveDynamicResource(BindableProperty) Element.SetDynamicResource(BindableProperty, string) Element.OnPropertyChanged(string) Element.OnParentChanging(ParentChangingEventArgs) Element.OnParentChanged() Element.OnHandlerChanging(HandlerChangingEventArgs) Element.OnHandlerChanged() Element.MapAutomationPropertiesIsInAccessibleTree(IElementHandler, Element) Element.MapAutomationPropertiesExcludedWithChildren(IElementHandler, Element) Element.AutomationId Element.ClassId Element.Effects Element.Id Element.StyleId Element.Parent Element.ChildAdded Element.ChildRemoved Element.DescendantAdded Element.DescendantRemoved Element.ParentChanging Element.ParentChanged Element.HandlerChanging Element.HandlerChanged BindableObject.BindingContextProperty BindableObject.ClearValue(BindableProperty) BindableObject.ClearValue(BindablePropertyKey) BindableObject.GetValue(BindableProperty) BindableObject.IsSet(BindableProperty) BindableObject.RemoveBinding(BindableProperty) BindableObject.SetBinding(BindableProperty, BindingBase) BindableObject.ApplyBindings() BindableObject.OnPropertyChanging(string) BindableObject.UnapplyBindings() BindableObject.SetValue(BindableProperty, object) BindableObject.SetValue(BindablePropertyKey, object) BindableObject.CoerceValue(BindableProperty) BindableObject.CoerceValue(BindablePropertyKey) BindableObject.Dispatcher BindableObject.BindingContext BindableObject.PropertyChanged BindableObject.PropertyChanging BindableObject.BindingContextChanged object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Constructors SegmentedControl() public SegmentedControl() Fields ActiveBackgroundProperty public static readonly BindableProperty ActiveBackgroundProperty Field Value BindableProperty ActiveFontSizeProperty public static readonly BindableProperty ActiveFontSizeProperty Field Value BindableProperty ActiveTextColorProperty public static readonly BindableProperty ActiveTextColorProperty Field Value BindableProperty BackgroundProperty public static readonly BindableProperty BackgroundProperty Field Value BindableProperty CornerRadiusProperty public static readonly BindableProperty CornerRadiusProperty Field Value BindableProperty FontSizeProperty public static readonly BindableProperty FontSizeProperty Field Value BindableProperty ItemsSourceProperty public static readonly BindableProperty ItemsSourceProperty Field Value BindableProperty SelectedIndexChangedCommandProperty public static readonly BindableProperty SelectedIndexChangedCommandProperty Field Value BindableProperty SelectedIndexProperty public static readonly BindableProperty SelectedIndexProperty Field Value BindableProperty TextColorProperty public static readonly BindableProperty TextColorProperty Field Value BindableProperty Properties ActiveBackground public Brush ActiveBackground { get; set; } Property Value Brush ActiveFontSize public double ActiveFontSize { get; set; } Property Value double ActiveTextColor public Color ActiveTextColor { get; set; } Property Value Color Background public Brush Background { get; set; } Property Value Brush CornerRadius public double CornerRadius { get; set; } Property Value double FontSize public double FontSize { get; set; } Property Value double ItemsSource public IEnumerable ItemsSource { get; set; } Property Value IEnumerable SegmentedControlDrawable public SegmentedControlDrawable SegmentedControlDrawable { get; set; } Property Value SegmentedControlDrawable SelectedIndex public int SelectedIndex { get; set; } Property Value int SelectedIndexChangedCommand public ICommand SelectedIndexChangedCommand { get; set; } Property Value ICommand TextColor public Color TextColor { get; set; } Property Value Color Methods OnParentSet() Raises the (internal) ParentSet event. protected override void OnParentSet() Remarks Will set the NavigationProxy's inner navigation object to closest topmost element capable of handling navigation calls. See Also OnParentSet() OnSizeAllocated(double, double) Method that is called when the size of the element is set during a layout cycle. Implement this method to add class handling for this event. protected override void OnSizeAllocated(double width, double height) Parameters width double The new width of the element. height double The new height of the element. Events SelectedIndexChanged public event EventHandler SelectedIndexChanged Event Type EventHandler" + }, + "api/AlohaKit.Controls.SegmentedControlDrawable.html": { + "href": "api/AlohaKit.Controls.SegmentedControlDrawable.html", + "title": "Class SegmentedControlDrawable | alohakit.controls", + "summary": "Class SegmentedControlDrawable Namespace AlohaKit.Controls Assembly AlohaKit.dll public class SegmentedControlDrawable : IDrawable Inheritance object SegmentedControlDrawable Implements IDrawable Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Properties ActiveBackgroundPaint public Paint ActiveBackgroundPaint { get; set; } Property Value Paint ActiveFontSize public float ActiveFontSize { get; set; } Property Value float ActiveTextColor public Color ActiveTextColor { get; set; } Property Value Color BackgroundPaint public Paint BackgroundPaint { get; set; } Property Value Paint CornerRadius public double CornerRadius { get; set; } Property Value double FontSize public float FontSize { get; set; } Property Value float ItemsSource public IEnumerable ItemsSource { get; set; } Property Value IEnumerable SelectedIndex public int SelectedIndex { get; set; } Property Value int TextColor public Color TextColor { get; set; } Property Value Color Methods Draw(ICanvas, RectF) public void Draw(ICanvas canvas, RectF dirtyRect) Parameters canvas ICanvas dirtyRect RectF DrawActiveTab(ICanvas, RectF) public virtual void DrawActiveTab(ICanvas canvas, RectF dirtyRect) Parameters canvas ICanvas dirtyRect RectF DrawBackground(ICanvas, RectF) public virtual void DrawBackground(ICanvas canvas, RectF dirtyRect) Parameters canvas ICanvas dirtyRect RectF DrawTabs(ICanvas, RectF) public virtual void DrawTabs(ICanvas canvas, RectF dirtyRect) Parameters canvas ICanvas dirtyRect RectF" + }, + "api/AlohaKit.Controls.SelectedIndexEventArgs.html": { + "href": "api/AlohaKit.Controls.SelectedIndexEventArgs.html", + "title": "Class SelectedIndexEventArgs | alohakit.controls", + "summary": "Class SelectedIndexEventArgs Namespace AlohaKit.Controls Assembly AlohaKit.dll The SelectedIndexEventArgs class provides data for events that report a change in the selected index of a SegmentedControl. public class SelectedIndexEventArgs : EventArgs Inheritance object EventArgs SelectedIndexEventArgs Inherited Members EventArgs.Empty object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Constructors SelectedIndexEventArgs(int) public SelectedIndexEventArgs(int selectedIndex) Parameters selectedIndex int Properties SelectedIndex public int SelectedIndex { get; set; } Property Value int" + }, + "api/AlohaKit.Controls.Slider.html": { + "href": "api/AlohaKit.Controls.Slider.html", + "title": "Class Slider | alohakit.controls", + "summary": "Class Slider Namespace AlohaKit.Controls Assembly AlohaKit.dll The Slider class is a graphical control that allows users to select a value from a continuous or discrete range by dragging a thumb along a track. This versatile control is widely used for adjusting settings like volume, brightness, or custom application parameters. public class Slider : GraphicsView, INotifyPropertyChanged, IVisualTreeElement, IEffectControlProvider, IToolTipElement, IContextFlyoutElement, IAnimatable, IViewController, IVisualElementController, IElementController, IGestureController, IGestureRecognizers, IPropertyMapperView, IHotReloadableView, IReplaceableView, IGraphicsView, IView, IElement, ITransform Inheritance object BindableObject Element NavigableElement VisualElement View GraphicsView Slider Implements INotifyPropertyChanged IVisualTreeElement IEffectControlProvider IToolTipElement IContextFlyoutElement IAnimatable IViewController IVisualElementController IElementController IGestureController IGestureRecognizers IPropertyMapperView IHotReloadableView IReplaceableView IGraphicsView IView IElement ITransform Inherited Members GraphicsView.DrawableProperty GraphicsView.Invalidate() GraphicsView.Drawable GraphicsView.StartHoverInteraction GraphicsView.MoveHoverInteraction GraphicsView.EndHoverInteraction GraphicsView.StartInteraction GraphicsView.DragInteraction GraphicsView.EndInteraction GraphicsView.CancelInteraction View.VerticalOptionsProperty View.HorizontalOptionsProperty View.MarginProperty View.propertyMapper View.ChangeVisualState() View.GetChildElements(Point) View.OnBindingContextChanged() View.GetRendererOverrides() View.GestureController View.GestureRecognizers View.HorizontalOptions View.Margin View.VerticalOptions VisualElement.NavigationProperty VisualElement.StyleProperty VisualElement.InputTransparentProperty VisualElement.IsEnabledProperty VisualElement.XProperty VisualElement.YProperty VisualElement.AnchorXProperty VisualElement.AnchorYProperty VisualElement.TranslationXProperty VisualElement.TranslationYProperty VisualElement.WidthProperty VisualElement.HeightProperty VisualElement.RotationProperty VisualElement.RotationXProperty VisualElement.RotationYProperty VisualElement.ScaleProperty VisualElement.ScaleXProperty VisualElement.ScaleYProperty VisualElement.ClipProperty VisualElement.VisualProperty VisualElement.IsVisibleProperty VisualElement.OpacityProperty VisualElement.BackgroundColorProperty VisualElement.BehaviorsProperty VisualElement.TriggersProperty VisualElement.WidthRequestProperty VisualElement.HeightRequestProperty VisualElement.MinimumWidthRequestProperty VisualElement.MinimumHeightRequestProperty VisualElement.MaximumWidthRequestProperty VisualElement.MaximumHeightRequestProperty VisualElement.IsFocusedProperty VisualElement.FlowDirectionProperty VisualElement.WindowProperty VisualElement.ShadowProperty VisualElement.ZIndexProperty VisualElement.ControlsVisualElementMapper VisualElement.BatchBegin() VisualElement.BatchCommit() VisualElement.Focus() VisualElement.Measure(double, double, MeasureFlags) VisualElement.Unfocus() VisualElement.InvalidateMeasure() VisualElement.OnChildAdded(Element) VisualElement.OnChildRemoved(Element, int) VisualElement.OnChildrenReordered() VisualElement.OnMeasure(double, double) VisualElement.OnSizeAllocated(double, double) VisualElement.SizeAllocated(double, double) VisualElement.RefreshIsEnabledProperty() VisualElement.Arrange(Rect) VisualElement.ArrangeOverride(Rect) VisualElement.Layout(Rect) VisualElement.InvalidateMeasureOverride() VisualElement.MeasureOverride(double, double) VisualElement.MapBackgroundColor(IViewHandler, IView) VisualElement.MapBackgroundImageSource(IViewHandler, IView) VisualElement.Visual VisualElement.FlowDirection VisualElement.Window VisualElement.AnchorX VisualElement.AnchorY VisualElement.BackgroundColor VisualElement.Behaviors VisualElement.Bounds VisualElement.Height VisualElement.HeightRequest VisualElement.InputTransparent VisualElement.IsEnabled VisualElement.IsEnabledCore VisualElement.IsFocused VisualElement.IsVisible VisualElement.MinimumHeightRequest VisualElement.MinimumWidthRequest VisualElement.MaximumHeightRequest VisualElement.MaximumWidthRequest VisualElement.Opacity VisualElement.Rotation VisualElement.RotationX VisualElement.RotationY VisualElement.Scale VisualElement.ScaleX VisualElement.ScaleY VisualElement.TranslationX VisualElement.TranslationY VisualElement.Triggers VisualElement.Width VisualElement.WidthRequest VisualElement.X VisualElement.Y VisualElement.Clip VisualElement.Resources VisualElement.Frame VisualElement.Handler VisualElement.Shadow VisualElement.ZIndex VisualElement.DesiredSize VisualElement.IsLoaded VisualElement.ChildrenReordered VisualElement.Focused VisualElement.MeasureInvalidated VisualElement.SizeChanged VisualElement.Unfocused VisualElement.Loaded VisualElement.Unloaded NavigableElement.Navigation NavigableElement.Style NavigableElement.StyleClass NavigableElement.class Element.AutomationIdProperty Element.ClassIdProperty Element.ControlsElementMapper Element.InsertLogicalChild(int, Element) Element.AddLogicalChild(Element) Element.RemoveLogicalChild(Element) Element.ClearLogicalChildren() Element.FindByName(string) Element.RemoveDynamicResource(BindableProperty) Element.SetDynamicResource(BindableProperty, string) Element.OnPropertyChanged(string) Element.OnParentChanging(ParentChangingEventArgs) Element.OnParentChanged() Element.OnHandlerChanging(HandlerChangingEventArgs) Element.OnHandlerChanged() Element.MapAutomationPropertiesIsInAccessibleTree(IElementHandler, Element) Element.MapAutomationPropertiesExcludedWithChildren(IElementHandler, Element) Element.AutomationId Element.ClassId Element.Effects Element.Id Element.StyleId Element.Parent Element.ChildAdded Element.ChildRemoved Element.DescendantAdded Element.DescendantRemoved Element.ParentChanging Element.ParentChanged Element.HandlerChanging Element.HandlerChanged BindableObject.BindingContextProperty BindableObject.ClearValue(BindableProperty) BindableObject.ClearValue(BindablePropertyKey) BindableObject.GetValue(BindableProperty) BindableObject.IsSet(BindableProperty) BindableObject.RemoveBinding(BindableProperty) BindableObject.SetBinding(BindableProperty, BindingBase) BindableObject.ApplyBindings() BindableObject.OnPropertyChanging(string) BindableObject.UnapplyBindings() BindableObject.SetValue(BindableProperty, object) BindableObject.SetValue(BindablePropertyKey, object) BindableObject.CoerceValue(BindableProperty) BindableObject.CoerceValue(BindablePropertyKey) BindableObject.Dispatcher BindableObject.BindingContext BindableObject.PropertyChanged BindableObject.PropertyChanging BindableObject.BindingContextChanged object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Constructors Slider() public Slider() Fields BackgroundProperty public static readonly BindableProperty BackgroundProperty Field Value BindableProperty MaximumBrushProperty public static readonly BindableProperty MaximumBrushProperty Field Value BindableProperty MaximumProperty public static readonly BindableProperty MaximumProperty Field Value BindableProperty MinimumBrushProperty public static readonly BindableProperty MinimumBrushProperty Field Value BindableProperty MinimumProperty public static readonly BindableProperty MinimumProperty Field Value BindableProperty ThumbBrushProperty public static readonly BindableProperty ThumbBrushProperty Field Value BindableProperty ThumbShapeProperty public static readonly BindableProperty ThumbShapeProperty Field Value BindableProperty ValueProperty public static readonly BindableProperty ValueProperty Field Value BindableProperty Properties Background public Brush Background { get; set; } Property Value Brush Maximum public double Maximum { get; set; } Property Value double MaximumBrush public Brush MaximumBrush { get; set; } Property Value Brush Minimum public double Minimum { get; set; } Property Value double MinimumBrush public Brush MinimumBrush { get; set; } Property Value Brush SliderDrawable public SliderDrawable SliderDrawable { get; set; } Property Value SliderDrawable ThumbBrush public Brush ThumbBrush { get; set; } Property Value Brush ThumbShape public ThumbShape ThumbShape { get; set; } Property Value ThumbShape Value public double Value { get; set; } Property Value double Methods OnParentSet() Raises the (internal) ParentSet event. protected override void OnParentSet() Remarks Will set the NavigationProxy's inner navigation object to closest topmost element capable of handling navigation calls. See Also OnParentSet() Events ValueChanged public event EventHandler ValueChanged Event Type EventHandler" + }, + "api/AlohaKit.Controls.SliderDrawable.html": { + "href": "api/AlohaKit.Controls.SliderDrawable.html", + "title": "Class SliderDrawable | alohakit.controls", + "summary": "Class SliderDrawable Namespace AlohaKit.Controls Assembly AlohaKit.dll public class SliderDrawable : IDrawable Inheritance object SliderDrawable Implements IDrawable Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Properties BackgroundPaint public Paint BackgroundPaint { get; set; } Property Value Paint Maximum public double Maximum { get; set; } Property Value double MaximumPaint public Paint MaximumPaint { get; set; } Property Value Paint Minimum public double Minimum { get; set; } Property Value double MinimumPaint public Paint MinimumPaint { get; set; } Property Value Paint ThumbPaint public Paint ThumbPaint { get; set; } Property Value Paint ThumbShape public ThumbShape ThumbShape { get; set; } Property Value ThumbShape Value public double Value { get; set; } Property Value double Methods Draw(ICanvas, RectF) public void Draw(ICanvas canvas, RectF dirtyRect) Parameters canvas ICanvas dirtyRect RectF DrawBackground(ICanvas, RectF) public virtual void DrawBackground(ICanvas canvas, RectF dirtyRect) Parameters canvas ICanvas dirtyRect RectF DrawThumb(ICanvas, RectF) public virtual void DrawThumb(ICanvas canvas, RectF dirtyRect) Parameters canvas ICanvas dirtyRect RectF DrawTrackBackground(ICanvas, RectF) public virtual void DrawTrackBackground(ICanvas canvas, RectF dirtyRect) Parameters canvas ICanvas dirtyRect RectF DrawTrackProgress(ICanvas, RectF) public virtual void DrawTrackProgress(ICanvas canvas, RectF dirtyRect) Parameters canvas ICanvas dirtyRect RectF" + }, + "api/AlohaKit.Controls.ThumbShape.html": { + "href": "api/AlohaKit.Controls.ThumbShape.html", + "title": "Enum ThumbShape | alohakit.controls", + "summary": "Enum ThumbShape Namespace AlohaKit.Controls Assembly AlohaKit.dll The ThumbShape enumeration defines the possible shapes for a \"thumb\" in UI components, such as sliders, progress indicators, or drag handles. It provides developers with options to customize the appearance of the thumb based on design requirements. public enum ThumbShape Fields Circle = 0 Rectangle = 1 RoundedRectangle = 2" + }, + "api/AlohaKit.Controls.ToggleSwitch.html": { + "href": "api/AlohaKit.Controls.ToggleSwitch.html", + "title": "Class ToggleSwitch | alohakit.controls", + "summary": "Class ToggleSwitch Namespace AlohaKit.Controls Assembly AlohaKit.dll The ToggleSwitch is a drawn control that allows users to toggle between two states (on and off). Designed for visual clarity and smooth interactivity, this control is ideal for enabling or disabling settings, features, or options within an application. public class ToggleSwitch : GraphicsView, INotifyPropertyChanged, IVisualTreeElement, IEffectControlProvider, IToolTipElement, IContextFlyoutElement, IAnimatable, IViewController, IVisualElementController, IElementController, IGestureController, IGestureRecognizers, IPropertyMapperView, IHotReloadableView, IReplaceableView, IGraphicsView, IView, IElement, ITransform Inheritance object BindableObject Element NavigableElement VisualElement View GraphicsView ToggleSwitch Implements INotifyPropertyChanged IVisualTreeElement IEffectControlProvider IToolTipElement IContextFlyoutElement IAnimatable IViewController IVisualElementController IElementController IGestureController IGestureRecognizers IPropertyMapperView IHotReloadableView IReplaceableView IGraphicsView IView IElement ITransform Inherited Members GraphicsView.DrawableProperty GraphicsView.Invalidate() GraphicsView.Drawable GraphicsView.StartHoverInteraction GraphicsView.MoveHoverInteraction GraphicsView.EndHoverInteraction GraphicsView.StartInteraction GraphicsView.DragInteraction GraphicsView.EndInteraction GraphicsView.CancelInteraction View.VerticalOptionsProperty View.HorizontalOptionsProperty View.MarginProperty View.propertyMapper View.ChangeVisualState() View.GetChildElements(Point) View.OnBindingContextChanged() View.GetRendererOverrides() View.GestureController View.GestureRecognizers View.HorizontalOptions View.Margin View.VerticalOptions VisualElement.NavigationProperty VisualElement.StyleProperty VisualElement.InputTransparentProperty VisualElement.IsEnabledProperty VisualElement.XProperty VisualElement.YProperty VisualElement.AnchorXProperty VisualElement.AnchorYProperty VisualElement.TranslationXProperty VisualElement.TranslationYProperty VisualElement.WidthProperty VisualElement.HeightProperty VisualElement.RotationProperty VisualElement.RotationXProperty VisualElement.RotationYProperty VisualElement.ScaleProperty VisualElement.ScaleXProperty VisualElement.ScaleYProperty VisualElement.ClipProperty VisualElement.VisualProperty VisualElement.IsVisibleProperty VisualElement.OpacityProperty VisualElement.BackgroundColorProperty VisualElement.BehaviorsProperty VisualElement.TriggersProperty VisualElement.WidthRequestProperty VisualElement.HeightRequestProperty VisualElement.MinimumWidthRequestProperty VisualElement.MinimumHeightRequestProperty VisualElement.MaximumWidthRequestProperty VisualElement.MaximumHeightRequestProperty VisualElement.IsFocusedProperty VisualElement.FlowDirectionProperty VisualElement.WindowProperty VisualElement.ShadowProperty VisualElement.ZIndexProperty VisualElement.ControlsVisualElementMapper VisualElement.BatchBegin() VisualElement.BatchCommit() VisualElement.Focus() VisualElement.Measure(double, double, MeasureFlags) VisualElement.Unfocus() VisualElement.InvalidateMeasure() VisualElement.OnChildAdded(Element) VisualElement.OnChildRemoved(Element, int) VisualElement.OnChildrenReordered() VisualElement.OnMeasure(double, double) VisualElement.OnSizeAllocated(double, double) VisualElement.SizeAllocated(double, double) VisualElement.RefreshIsEnabledProperty() VisualElement.Arrange(Rect) VisualElement.ArrangeOverride(Rect) VisualElement.Layout(Rect) VisualElement.InvalidateMeasureOverride() VisualElement.MeasureOverride(double, double) VisualElement.MapBackgroundColor(IViewHandler, IView) VisualElement.MapBackgroundImageSource(IViewHandler, IView) VisualElement.Visual VisualElement.FlowDirection VisualElement.Window VisualElement.AnchorX VisualElement.AnchorY VisualElement.BackgroundColor VisualElement.Behaviors VisualElement.Bounds VisualElement.Height VisualElement.HeightRequest VisualElement.InputTransparent VisualElement.IsEnabled VisualElement.IsEnabledCore VisualElement.IsFocused VisualElement.IsVisible VisualElement.MinimumHeightRequest VisualElement.MinimumWidthRequest VisualElement.MaximumHeightRequest VisualElement.MaximumWidthRequest VisualElement.Opacity VisualElement.Rotation VisualElement.RotationX VisualElement.RotationY VisualElement.Scale VisualElement.ScaleX VisualElement.ScaleY VisualElement.TranslationX VisualElement.TranslationY VisualElement.Triggers VisualElement.Width VisualElement.WidthRequest VisualElement.X VisualElement.Y VisualElement.Clip VisualElement.Resources VisualElement.Frame VisualElement.Handler VisualElement.Shadow VisualElement.ZIndex VisualElement.DesiredSize VisualElement.IsLoaded VisualElement.ChildrenReordered VisualElement.Focused VisualElement.MeasureInvalidated VisualElement.SizeChanged VisualElement.Unfocused VisualElement.Loaded VisualElement.Unloaded NavigableElement.Navigation NavigableElement.Style NavigableElement.StyleClass NavigableElement.class Element.AutomationIdProperty Element.ClassIdProperty Element.ControlsElementMapper Element.InsertLogicalChild(int, Element) Element.AddLogicalChild(Element) Element.RemoveLogicalChild(Element) Element.ClearLogicalChildren() Element.FindByName(string) Element.RemoveDynamicResource(BindableProperty) Element.SetDynamicResource(BindableProperty, string) Element.OnPropertyChanged(string) Element.OnParentChanging(ParentChangingEventArgs) Element.OnParentChanged() Element.OnHandlerChanging(HandlerChangingEventArgs) Element.OnHandlerChanged() Element.MapAutomationPropertiesIsInAccessibleTree(IElementHandler, Element) Element.MapAutomationPropertiesExcludedWithChildren(IElementHandler, Element) Element.AutomationId Element.ClassId Element.Effects Element.Id Element.StyleId Element.Parent Element.ChildAdded Element.ChildRemoved Element.DescendantAdded Element.DescendantRemoved Element.ParentChanging Element.ParentChanged Element.HandlerChanging Element.HandlerChanged BindableObject.BindingContextProperty BindableObject.ClearValue(BindableProperty) BindableObject.ClearValue(BindablePropertyKey) BindableObject.GetValue(BindableProperty) BindableObject.IsSet(BindableProperty) BindableObject.RemoveBinding(BindableProperty) BindableObject.SetBinding(BindableProperty, BindingBase) BindableObject.ApplyBindings() BindableObject.OnPropertyChanging(string) BindableObject.UnapplyBindings() BindableObject.SetValue(BindableProperty, object) BindableObject.SetValue(BindablePropertyKey, object) BindableObject.CoerceValue(BindableProperty) BindableObject.CoerceValue(BindablePropertyKey) BindableObject.Dispatcher BindableObject.BindingContext BindableObject.PropertyChanged BindableObject.PropertyChanging BindableObject.BindingContextChanged object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Constructors ToggleSwitch() public ToggleSwitch() Fields BackgroundProperty public static readonly BindableProperty BackgroundProperty Field Value BindableProperty HasShadowProperty public static readonly BindableProperty HasShadowProperty Field Value BindableProperty IsOnProperty public static readonly BindableProperty IsOnProperty Field Value BindableProperty ThumbBrushProperty public static readonly BindableProperty ThumbBrushProperty Field Value BindableProperty Properties Background public Brush Background { get; set; } Property Value Brush HasShadow public bool HasShadow { get; set; } Property Value bool IsOn public bool IsOn { get; set; } Property Value bool ThumbBrush public Brush ThumbBrush { get; set; } Property Value Brush ToggleSwitchDrawable public ToggleSwitchDrawable ToggleSwitchDrawable { get; set; } Property Value ToggleSwitchDrawable Methods OnParentSet() Raises the (internal) ParentSet event. protected override void OnParentSet() Remarks Will set the NavigationProxy's inner navigation object to closest topmost element capable of handling navigation calls. See Also OnParentSet() Events Toggled public event EventHandler Toggled Event Type EventHandler" + }, + "api/AlohaKit.Controls.ToggleSwitchDrawable.html": { + "href": "api/AlohaKit.Controls.ToggleSwitchDrawable.html", + "title": "Class ToggleSwitchDrawable | alohakit.controls", + "summary": "Class ToggleSwitchDrawable Namespace AlohaKit.Controls Assembly AlohaKit.dll public class ToggleSwitchDrawable : IDrawable Inheritance object ToggleSwitchDrawable Implements IDrawable Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Properties BackgroundPaint public Paint BackgroundPaint { get; set; } Property Value Paint HasShadow public bool HasShadow { get; set; } Property Value bool IsOn public bool IsOn { get; set; } Property Value bool ThumbPaint public Paint ThumbPaint { get; set; } Property Value Paint Methods Draw(ICanvas, RectF) public void Draw(ICanvas canvas, RectF dirtyRect) Parameters canvas ICanvas dirtyRect RectF DrawBackground(ICanvas, RectF) public virtual void DrawBackground(ICanvas canvas, RectF dirtyRect) Parameters canvas ICanvas dirtyRect RectF DrawThumb(ICanvas, RectF) public virtual void DrawThumb(ICanvas canvas, RectF dirtyRect) Parameters canvas ICanvas dirtyRect RectF" + }, + "api/AlohaKit.Controls.html": { + "href": "api/AlohaKit.Controls.html", + "title": "Namespace AlohaKit.Controls | alohakit.controls", + "summary": "Namespace AlohaKit.Controls Classes Avatar The Avatar is a custom drawn control that provides a flexible and efficient way to render avatar-like graphics, such as profile pictures, icons, or other visual representations, in an application. AvatarDrawable AvatarSizeExtensions The AvatarSizeExtensions class provides extension methods for the AvatarSize enumeration, allowing developers to retrieve various sizing details for avatars based on their size (e.g., dimensions, indicator sizes, font sizes). BarChart The BarChart is a drawn control used to render bar charts, allowing for the visualization of data as rectangular bars. Each bar's length or height corresponds to the value it represents. It extends the BaseChart class, providing additional functionality tailored to bar chart rendering while leveraging shared chart capabilities. BarChartDrawable BaseChart BaseChartDrawable BusyIndicator The BusyIndicator is a drawn control that provides a graphical representation to indicate an application or process is busy. BusyIndicatorDrawable Button The Button represents a customizable drawn button control. It allows developers to create interactive buttons with highly customizable designs, leveraging the power of lightweight graphics rendering. ButtonDrawable Captcha The Captcha is a drawn control used to render and manage CAPTCHA (Completely Automated Public Turing test to tell Computers and Humans Apart) challenges. It leverages .NET MAUI Graphics for efficient graphical rendering and provides a flexible way to generate and validate CAPTCHAs in an application. CaptchaDrawable CheckBox The CheckBox is a custom drawn control that represents a checkbox for selecting or deselecting options. It is highly customizable while maintaining efficient rendering capabilities. CheckBoxDrawable LineChart The LineChart provides a drawn control to visualize data as a line chart. It allows data points to be represented by a continuous line, making it ideal for showing trends over time or relationships between variables. This class inherits from BaseChart, leveraging shared charting functionality while adding line-specific rendering features. LineChartDrawable LinearGauge The LinearGauge is a drawn control for rendering a linear gauge. A linear gauge is a visual representation of data along a straight or horizontal/vertical axis, commonly used to display values such as progress, measurements, or performance indicators. LinearGaugeDrawable MultiBarChart The MultiBarChart is a drawn control designed to display multiple bar charts within a single charting view. It enables the visualization of grouped or stacked data, making it an ideal tool for comparing multiple datasets across categories. This class inherits from BaseChart, leveraging core charting functionality while adding features specific to bar chart rendering. MultiBarChartDrawable MultiLineChartDrawable MultiLineChartView The MultiLineChartView is a drawn control for displaying multiple line charts within a single view. This enables the visualization of multiple data series, each represented by a separate line, on a shared coordinate system. The class is derived from BaseChart, allowing it to inherit essential charting properties and behaviors while adding specialized features for multi-line visualization. NumericUpDown The NumericUpDown is a drawn control for selecting numeric values by incrementing or decrementing them with interactive buttons or input. NumericUpDownDrawable PieChart The PieChart is a drawn control for rendering pie charts to visually represent data as portions of a circle. PieChartDrawable ProgressBar The ProgressBar class represents a customizable control for displaying the progress of a task visually. ProgressBarDrawable ProgressRadial The ProgressRadial is a drawn control designed to visually represent progress in a circular or radial form. It can be used to display percentages or completion statuses, such as task progress, loading indicators, or performance metrics. ProgressRadialDrawable PulseIcon The PulseIcon is a drawn control that creates an animated pulsing effect around an icon. This control is particularly useful for drawing attention to specific elements in your user interface, such as notifications, interactive features, or status indicators. PulseIconDrawable Rating The Rating is a drawn control that allows users to rate items or entities, typically using a star-based system or other graphical representation. This control is perfect for scenarios where users need to provide feedback, score performance, or indicate preferences in an intuitive visual format. RatingDrawable RatingValueChangedEventArgs The RatingValueChangedEventArgs class provides data for events that report a change in the rating value of a Rating control. SegmentedControl The SegmentedControl is a drawn control that allows users to make a single selection from a set of segmented options. It is ideal for scenarios where a user needs to choose between mutually exclusive options, such as switching between tabs or filtering content. SegmentedControlDrawable SelectedIndexEventArgs The SelectedIndexEventArgs class provides data for events that report a change in the selected index of a SegmentedControl. Slider The Slider class is a graphical control that allows users to select a value from a continuous or discrete range by dragging a thumb along a track. This versatile control is widely used for adjusting settings like volume, brightness, or custom application parameters. SliderDrawable ToggleSwitch The ToggleSwitch is a drawn control that allows users to toggle between two states (on and off). Designed for visual clarity and smooth interactivity, this control is ideal for enabling or disabling settings, features, or options within an application. ToggleSwitchDrawable Enums AvatarSize The AvatarSize enumeration represents predefined sizes for an avatar, providing a standardized way to specify dimensions across an application. CaptchaLevel The CaptchaLevel enumeration defines the different levels of complexity for CAPTCHA (Completely Automated Public Turing test to tell Computers and Humans Apart) challenges. This can be used to configure or determine the strength of a CAPTCHA system, balancing between ease of use and security requirements. ProgressBarStyle The ProgressBarStyle enumeration defines the visual style options for rendering a progress bar. This provides developers with a simple way to specify whether the progress bar appears with sharp corners or rounded edges. ProgressRadialDirection The ProgressRadialDirection enumeration specifies the direction of progress rendering for radial progress components, allowing developers to define whether progress moves clockwise or counterclockwise along the circular axis. ThumbShape The ThumbShape enumeration defines the possible shapes for a \"thumb\" in UI components, such as sliders, progress indicators, or drag handles. It provides developers with options to customize the appearance of the thumb based on design requirements." + }, + "api/AlohaKit.DataVisualization.PieChart.html": { + "href": "api/AlohaKit.DataVisualization.PieChart.html", + "title": "Class PieChart | alohakit.controls", + "summary": "Class PieChart Namespace AlohaKit.DataVisualization Assembly AlohaKit.DataVisualization.dll public class PieChart : GraphicsView, INotifyPropertyChanged, IVisualTreeElement, IEffectControlProvider, IToolTipElement, IContextFlyoutElement, IAnimatable, IViewController, IVisualElementController, IElementController, IGestureController, IGestureRecognizers, IPropertyMapperView, IHotReloadableView, IReplaceableView, IGraphicsView, IView, IElement, ITransform Inheritance object BindableObject Element NavigableElement VisualElement View GraphicsView PieChart Implements INotifyPropertyChanged IVisualTreeElement IEffectControlProvider IToolTipElement IContextFlyoutElement IAnimatable IViewController IVisualElementController IElementController IGestureController IGestureRecognizers IPropertyMapperView IHotReloadableView IReplaceableView IGraphicsView IView IElement ITransform Inherited Members GraphicsView.DrawableProperty GraphicsView.Invalidate() GraphicsView.Drawable GraphicsView.StartHoverInteraction GraphicsView.MoveHoverInteraction GraphicsView.EndHoverInteraction GraphicsView.StartInteraction GraphicsView.DragInteraction GraphicsView.EndInteraction GraphicsView.CancelInteraction View.VerticalOptionsProperty View.HorizontalOptionsProperty View.MarginProperty View.propertyMapper View.ChangeVisualState() View.GetChildElements(Point) View.OnBindingContextChanged() View.GetRendererOverrides() View.GestureController View.GestureRecognizers View.HorizontalOptions View.Margin View.VerticalOptions VisualElement.NavigationProperty VisualElement.StyleProperty VisualElement.InputTransparentProperty VisualElement.IsEnabledProperty VisualElement.XProperty VisualElement.YProperty VisualElement.AnchorXProperty VisualElement.AnchorYProperty VisualElement.TranslationXProperty VisualElement.TranslationYProperty VisualElement.WidthProperty VisualElement.HeightProperty VisualElement.RotationProperty VisualElement.RotationXProperty VisualElement.RotationYProperty VisualElement.ScaleProperty VisualElement.ScaleXProperty VisualElement.ScaleYProperty VisualElement.ClipProperty VisualElement.VisualProperty VisualElement.IsVisibleProperty VisualElement.OpacityProperty VisualElement.BackgroundColorProperty VisualElement.BehaviorsProperty VisualElement.TriggersProperty VisualElement.WidthRequestProperty VisualElement.HeightRequestProperty VisualElement.MinimumWidthRequestProperty VisualElement.MinimumHeightRequestProperty VisualElement.MaximumWidthRequestProperty VisualElement.MaximumHeightRequestProperty VisualElement.IsFocusedProperty VisualElement.FlowDirectionProperty VisualElement.WindowProperty VisualElement.ShadowProperty VisualElement.ZIndexProperty VisualElement.ControlsVisualElementMapper VisualElement.BatchBegin() VisualElement.BatchCommit() VisualElement.Focus() VisualElement.Measure(double, double, MeasureFlags) VisualElement.Unfocus() VisualElement.InvalidateMeasure() VisualElement.OnChildAdded(Element) VisualElement.OnChildRemoved(Element, int) VisualElement.OnChildrenReordered() VisualElement.OnMeasure(double, double) VisualElement.OnSizeAllocated(double, double) VisualElement.SizeAllocated(double, double) VisualElement.RefreshIsEnabledProperty() VisualElement.Arrange(Rect) VisualElement.ArrangeOverride(Rect) VisualElement.Layout(Rect) VisualElement.InvalidateMeasureOverride() VisualElement.MeasureOverride(double, double) VisualElement.MapBackgroundColor(IViewHandler, IView) VisualElement.MapBackgroundImageSource(IViewHandler, IView) VisualElement.Visual VisualElement.FlowDirection VisualElement.Window VisualElement.AnchorX VisualElement.AnchorY VisualElement.BackgroundColor VisualElement.Behaviors VisualElement.Bounds VisualElement.Height VisualElement.HeightRequest VisualElement.InputTransparent VisualElement.IsEnabled VisualElement.IsEnabledCore VisualElement.IsFocused VisualElement.IsVisible VisualElement.MinimumHeightRequest VisualElement.MinimumWidthRequest VisualElement.MaximumHeightRequest VisualElement.MaximumWidthRequest VisualElement.Opacity VisualElement.Rotation VisualElement.RotationX VisualElement.RotationY VisualElement.Scale VisualElement.ScaleX VisualElement.ScaleY VisualElement.TranslationX VisualElement.TranslationY VisualElement.Triggers VisualElement.Width VisualElement.WidthRequest VisualElement.X VisualElement.Y VisualElement.Clip VisualElement.Resources VisualElement.Frame VisualElement.Handler VisualElement.Shadow VisualElement.ZIndex VisualElement.DesiredSize VisualElement.IsLoaded VisualElement.ChildrenReordered VisualElement.Focused VisualElement.MeasureInvalidated VisualElement.SizeChanged VisualElement.Unfocused VisualElement.Loaded VisualElement.Unloaded NavigableElement.Navigation NavigableElement.Style NavigableElement.StyleClass NavigableElement.class Element.AutomationIdProperty Element.ClassIdProperty Element.ControlsElementMapper Element.InsertLogicalChild(int, Element) Element.AddLogicalChild(Element) Element.RemoveLogicalChild(Element) Element.ClearLogicalChildren() Element.FindByName(string) Element.RemoveDynamicResource(BindableProperty) Element.SetDynamicResource(BindableProperty, string) Element.OnPropertyChanged(string) Element.OnParentChanging(ParentChangingEventArgs) Element.OnParentChanged() Element.OnHandlerChanging(HandlerChangingEventArgs) Element.OnHandlerChanged() Element.MapAutomationPropertiesIsInAccessibleTree(IElementHandler, Element) Element.MapAutomationPropertiesExcludedWithChildren(IElementHandler, Element) Element.AutomationId Element.ClassId Element.Effects Element.Id Element.StyleId Element.Parent Element.ChildAdded Element.ChildRemoved Element.DescendantAdded Element.DescendantRemoved Element.ParentChanging Element.ParentChanged Element.HandlerChanging Element.HandlerChanged BindableObject.BindingContextProperty BindableObject.ClearValue(BindableProperty) BindableObject.ClearValue(BindablePropertyKey) BindableObject.GetValue(BindableProperty) BindableObject.IsSet(BindableProperty) BindableObject.RemoveBinding(BindableProperty) BindableObject.SetBinding(BindableProperty, BindingBase) BindableObject.ApplyBindings() BindableObject.OnPropertyChanging(string) BindableObject.UnapplyBindings() BindableObject.SetValue(BindableProperty, object) BindableObject.SetValue(BindablePropertyKey, object) BindableObject.CoerceValue(BindableProperty) BindableObject.CoerceValue(BindablePropertyKey) BindableObject.Dispatcher BindableObject.BindingContext BindableObject.PropertyChanged BindableObject.PropertyChanging BindableObject.BindingContextChanged object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Constructors PieChart() public PieChart() Fields BackgroundProperty public static readonly BindableProperty BackgroundProperty Field Value BindableProperty ItemsSourceProperty public static readonly BindableProperty ItemsSourceProperty Field Value BindableProperty ShowLabelsProperty public static readonly BindableProperty ShowLabelsProperty Field Value BindableProperty Properties Background public Brush Background { get; set; } Property Value Brush ItemsSource public Dictionary ItemsSource { get; set; } Property Value Dictionary PieChartDrawable public PieChartDrawable PieChartDrawable { get; set; } Property Value PieChartDrawable ShowLabels public bool ShowLabels { get; set; } Property Value bool Methods OnParentSet() Raises the (internal) ParentSet event. protected override void OnParentSet() Remarks Will set the NavigationProxy's inner navigation object to closest topmost element capable of handling navigation calls. See Also OnParentSet()" + }, + "api/AlohaKit.DataVisualization.PieChartDrawable.html": { + "href": "api/AlohaKit.DataVisualization.PieChartDrawable.html", + "title": "Class PieChartDrawable | alohakit.controls", + "summary": "Class PieChartDrawable Namespace AlohaKit.DataVisualization Assembly AlohaKit.DataVisualization.dll public class PieChartDrawable : IDrawable Inheritance object PieChartDrawable Implements IDrawable Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Properties BackgroundPaint public Paint BackgroundPaint { get; set; } Property Value Paint ItemsSource public Dictionary ItemsSource { get; set; } Property Value Dictionary ShowLabels public bool ShowLabels { get; set; } Property Value bool Methods Draw(ICanvas, RectF) public void Draw(ICanvas canvas, RectF dirtyRect) Parameters canvas ICanvas dirtyRect RectF DrawBackground(ICanvas, RectF) public void DrawBackground(ICanvas canvas, RectF dirtyRect) Parameters canvas ICanvas dirtyRect RectF DrawLabels(ICanvas, RectF) public void DrawLabels(ICanvas canvas, RectF dirtyRect) Parameters canvas ICanvas dirtyRect RectF DrawSlices(ICanvas, RectF) public void DrawSlices(ICanvas canvas, RectF dirtyRect) Parameters canvas ICanvas dirtyRect RectF" + }, + "api/AlohaKit.DataVisualization.html": { + "href": "api/AlohaKit.DataVisualization.html", + "title": "Namespace AlohaKit.DataVisualization | alohakit.controls", + "summary": "Namespace AlohaKit.DataVisualization Classes PieChart PieChartDrawable" + }, + "api/AlohaKit.Enums.ChartEnums.LineChartStyle.html": { + "href": "api/AlohaKit.Enums.ChartEnums.LineChartStyle.html", + "title": "Enum ChartEnums.LineChartStyle | alohakit.controls", + "summary": "Enum ChartEnums.LineChartStyle Namespace AlohaKit.Enums Assembly AlohaKit.dll The LineChartStyle enumeration specifies the style used for rendering a line chart. It defines whether the chart should display straight lines or smooth curves to connect the data points. public enum ChartEnums.LineChartStyle Fields Curve = 1 Line = 0" + }, + "api/AlohaKit.Enums.ChartEnums.html": { + "href": "api/AlohaKit.Enums.ChartEnums.html", + "title": "Class ChartEnums | alohakit.controls", + "summary": "Class ChartEnums Namespace AlohaKit.Enums Assembly AlohaKit.dll public class ChartEnums Inheritance object ChartEnums Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString()" + }, + "api/AlohaKit.Enums.html": { + "href": "api/AlohaKit.Enums.html", + "title": "Namespace AlohaKit.Enums | alohakit.controls", + "summary": "Namespace AlohaKit.Enums Classes ChartEnums Enums ChartEnums.LineChartStyle The LineChartStyle enumeration specifies the style used for rendering a line chart. It defines whether the chart should display straight lines or smooth curves to connect the data points." + }, + "api/AlohaKit.Extensions.ChartExtensions.html": { + "href": "api/AlohaKit.Extensions.ChartExtensions.html", + "title": "Class ChartExtensions | alohakit.controls", + "summary": "Class ChartExtensions Namespace AlohaKit.Extensions Assembly AlohaKit.dll public static class ChartExtensions Inheritance object ChartExtensions Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Methods GetMaxValueForPositiveAxis(float) Calculate the maximum value for horizontal or vertical lines for charts with Positive axis public static float GetMaxValueForPositiveAxis(this float maxValue) Parameters maxValue float point maximum from values Returns float get the maximum value for the last line GetRangeValuesPositiveAndNegative(float, float) Calculate the maximum range value for horizontal or vertical lines for charts with Positive and negative axis public static float GetRangeValuesPositiveAndNegative(this float minValue, float maxValue) Parameters minValue float point minimum from values maxValue float point maximum from values Returns float get the maximum range for the entire chart GetStepForAxisPositiveAndNegative(float, float) Compute the space between lines public static float GetStepForAxisPositiveAndNegative(this float minValue, float maxValue) Parameters minValue float Minimum value in negative axis maxValue float Maximum value in positive axis Returns float GetStepForPositiveAxis(float) Compute the space between lines public static float GetStepForPositiveAxis(this float maxValue) Parameters maxValue float point maximum from values Returns float Get the soace between lines Remove0AfterPoint(string) Cleans extra 0 from a string when needed. Example 40.0 is parsed to 40 public static string Remove0AfterPoint(this string number) Parameters number string number string representation Returns string String without extra 0 decimal ToKMBNumber(decimal, int, bool) Formats a number to thousands (K),millions (M), billions (B) and trillions (T) public static decimal ToKMBNumber(this decimal number, int decimalsToRound = 0, bool isPercentage = false) Parameters number decimal number to format decimalsToRound int number of decimal places to apply the rounding isPercentage bool the value is percentage Returns decimal Formatted KMB number ToKMBString(decimal, bool, bool) Formats a number to thousands (K),millions (M) , billions (B) and trillions (T) public static string ToKMBString(this decimal number, bool isRounded = false, bool isPercentage = false) Parameters number decimal string number representation to format isRounded bool check if it is needed the rounding isPercentage bool the value is percentage Returns string Formatted KMB number representation" + }, + "api/AlohaKit.Extensions.IEnumerableExtensions.html": { + "href": "api/AlohaKit.Extensions.IEnumerableExtensions.html", + "title": "Class IEnumerableExtensions | alohakit.controls", + "summary": "Class IEnumerableExtensions Namespace AlohaKit.Extensions Assembly AlohaKit.dll public static class IEnumerableExtensions Inheritance object IEnumerableExtensions Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Methods Count(IEnumerable) public static int Count(this IEnumerable source) Parameters source IEnumerable Returns int ElementAt(IEnumerable, int) public static object ElementAt(this IEnumerable source, int index) Parameters source IEnumerable index int Returns object" + }, + "api/AlohaKit.Extensions.NumericExtensions.html": { + "href": "api/AlohaKit.Extensions.NumericExtensions.html", + "title": "Class NumericExtensions | alohakit.controls", + "summary": "Class NumericExtensions Namespace AlohaKit.Extensions Assembly AlohaKit.dll public static class NumericExtensions Inheritance object NumericExtensions Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Methods Clamp(double, double, double) public static double Clamp(this double self, double min, double max) Parameters self double min double max double Returns double" + }, + "api/AlohaKit.Extensions.html": { + "href": "api/AlohaKit.Extensions.html", + "title": "Namespace AlohaKit.Extensions | alohakit.controls", + "summary": "Namespace AlohaKit.Extensions Classes ChartExtensions IEnumerableExtensions NumericExtensions" + }, + "api/AlohaKit.Models.ChartGroupStyle.html": { + "href": "api/AlohaKit.Models.ChartGroupStyle.html", + "title": "Class ChartGroupStyle | alohakit.controls", + "summary": "Class ChartGroupStyle Namespace AlohaKit.Models Assembly AlohaKit.dll public class ChartGroupStyle : INotifyPropertyChanged Inheritance object ChartGroupStyle Implements INotifyPropertyChanged Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Properties Background Brush to be used for group background. Used for MultiLineChart public Brush Background { get; set; } Property Value Brush BackgroundColor Color to be used for each group series background. Used for MultiLineChart public Color BackgroundColor { get; set; } Property Value Color Color public Color Color { get; set; } Property Value Color Id Style identifier. Depending on chart type, current style will be applied globally/individually to the group entries that matches this Id public int Id { get; set; } Property Value int Methods OnPropertyChanged(string) protected virtual void OnPropertyChanged(string propertyName = null) Parameters propertyName string Events PropertyChanged Occurs when a property value changes. public event PropertyChangedEventHandler PropertyChanged Event Type PropertyChangedEventHandler" + }, + "api/AlohaKit.Models.ChartItem.html": { + "href": "api/AlohaKit.Models.ChartItem.html", + "title": "Class ChartItem | alohakit.controls", + "summary": "Class ChartItem Namespace AlohaKit.Models Assembly AlohaKit.dll public class ChartItem : INotifyPropertyChanged Inheritance object ChartItem Implements INotifyPropertyChanged Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Properties GroupId Group identifier. This value will be used internally to group entries by id public int GroupId { get; set; } Property Value int IsLabelBold Use Bold system font for this entry label public bool IsLabelBold { get; set; } Property Value bool IsValueBold Use Bold system font for this entry value public bool IsValueBold { get; set; } Property Value bool Label Footer value associated to current value public string Label { get; set; } Property Value string StyleId Depending on the chart type, this property will be used to map each entry indivual style to matching GroupStyles.Id style For example, MultiBarChart will use this to set each bar colors public int StyleId { get; set; } Property Value int Value Value to display public float Value { get; set; } Property Value float Methods OnPropertyChanged(string) protected virtual void OnPropertyChanged(string propertyName = null) Parameters propertyName string Events PropertyChanged Occurs when a property value changes. public event PropertyChangedEventHandler PropertyChanged Event Type PropertyChangedEventHandler" + }, + "api/AlohaKit.Models.html": { + "href": "api/AlohaKit.Models.html", + "title": "Namespace AlohaKit.Models | alohakit.controls", + "summary": "Namespace AlohaKit.Models Classes ChartGroupStyle ChartItem" + }, + "docs/getting-started.html": { + "href": "docs/getting-started.html", + "title": "Getting Started | alohakit.controls", + "summary": "Getting Started" + }, + "docs/introduction.html": { + "href": "docs/introduction.html", + "title": "Introduction | alohakit.controls", + "summary": "Introduction" + }, + "index.html": { + "href": "index.html", + "title": "This is the HOMEPAGE. | alohakit.controls", + "summary": "This is the HOMEPAGE. Refer to Markdown for how to write markdown files. Quick Start Notes: Add images to the images folder if the file is referencing an image." + } +} \ No newline at end of file diff --git a/docs/_site/logo.svg b/docs/_site/logo.svg new file mode 100644 index 0000000..ccb2d7b --- /dev/null +++ b/docs/_site/logo.svg @@ -0,0 +1,25 @@ + + + + +Created by Docfx + + + + + + + diff --git a/docs/_site/manifest.json b/docs/_site/manifest.json new file mode 100644 index 0000000..445a4fe --- /dev/null +++ b/docs/_site/manifest.json @@ -0,0 +1,956 @@ +{ + "source_base_path": "C:/Users/jsuarez/Documents/GitHub/AlohaKit.Controls/docs", + "xrefmap": "xrefmap.yml", + "files": [ + { + "type": "Resource", + "output": { + "resource": { + "relative_path": "index.json" + } + } + }, + { + "type": "ManagedReference", + "source_relative_path": "api/AlohaKit.Controls.Avatar.yml", + "output": { + ".html": { + "relative_path": "api/AlohaKit.Controls.Avatar.html" + } + }, + "version": "", + "Uid": null, + "IsMRef": true, + "Title": "AlohaKit.Controls.Avatar", + "Summary": "

    The Avatar is a custom drawn control that provides a flexible and efficient way to render avatar-like graphics,\nsuch as profile pictures, icons, or other visual representations, in an application.

    \n" + }, + { + "type": "ManagedReference", + "source_relative_path": "api/AlohaKit.Controls.AvatarDrawable.yml", + "output": { + ".html": { + "relative_path": "api/AlohaKit.Controls.AvatarDrawable.html" + } + }, + "version": "", + "Uid": null, + "IsMRef": true, + "Title": "AlohaKit.Controls.AvatarDrawable", + "Summary": null + }, + { + "type": "ManagedReference", + "source_relative_path": "api/AlohaKit.Controls.AvatarSize.yml", + "output": { + ".html": { + "relative_path": "api/AlohaKit.Controls.AvatarSize.html" + } + }, + "version": "", + "Uid": null, + "IsMRef": true, + "Title": "AlohaKit.Controls.AvatarSize", + "Summary": "

    The AvatarSize enumeration represents predefined sizes for an avatar,\nproviding a standardized way to specify dimensions across an application.

    \n" + }, + { + "type": "ManagedReference", + "source_relative_path": "api/AlohaKit.Controls.AvatarSizeExtensions.yml", + "output": { + ".html": { + "relative_path": "api/AlohaKit.Controls.AvatarSizeExtensions.html" + } + }, + "version": "", + "Uid": null, + "IsMRef": true, + "Title": "AlohaKit.Controls.AvatarSizeExtensions", + "Summary": "

    The AvatarSizeExtensions class provides extension methods for the AvatarSize enumeration,\nallowing developers to retrieve various sizing details for avatars based on their size\n(e.g., dimensions, indicator sizes, font sizes).

    \n" + }, + { + "type": "ManagedReference", + "source_relative_path": "api/AlohaKit.Controls.BarChart.yml", + "output": { + ".html": { + "relative_path": "api/AlohaKit.Controls.BarChart.html" + } + }, + "version": "", + "Uid": null, + "IsMRef": true, + "Title": "AlohaKit.Controls.BarChart", + "Summary": "

    The BarChart is a drawn control used to render bar charts, allowing for the visualization of data as rectangular bars.\nEach bar's length or height corresponds to the value it represents.

    \n

    It extends the BaseChart class, providing additional functionality tailored to bar chart rendering while leveraging shared chart capabilities.

    \n" + }, + { + "type": "ManagedReference", + "source_relative_path": "api/AlohaKit.Controls.BarChartDrawable.yml", + "output": { + ".html": { + "relative_path": "api/AlohaKit.Controls.BarChartDrawable.html" + } + }, + "version": "", + "Uid": null, + "IsMRef": true, + "Title": "AlohaKit.Controls.BarChartDrawable", + "Summary": null + }, + { + "type": "ManagedReference", + "source_relative_path": "api/AlohaKit.Controls.BaseChart.yml", + "output": { + ".html": { + "relative_path": "api/AlohaKit.Controls.BaseChart.html" + } + }, + "version": "", + "Uid": null, + "IsMRef": true, + "Title": "AlohaKit.Controls.BaseChart", + "Summary": null + }, + { + "type": "ManagedReference", + "source_relative_path": "api/AlohaKit.Controls.BaseChartDrawable.yml", + "output": { + ".html": { + "relative_path": "api/AlohaKit.Controls.BaseChartDrawable.html" + } + }, + "version": "", + "Uid": null, + "IsMRef": true, + "Title": "AlohaKit.Controls.BaseChartDrawable", + "Summary": null + }, + { + "type": "ManagedReference", + "source_relative_path": "api/AlohaKit.Controls.BusyIndicator.yml", + "output": { + ".html": { + "relative_path": "api/AlohaKit.Controls.BusyIndicator.html" + } + }, + "version": "", + "Uid": null, + "IsMRef": true, + "Title": "AlohaKit.Controls.BusyIndicator", + "Summary": "

    The BusyIndicator is a drawn control that provides a graphical representation to indicate\nan application or process is busy.

    \n" + }, + { + "type": "ManagedReference", + "source_relative_path": "api/AlohaKit.Controls.BusyIndicatorDrawable.yml", + "output": { + ".html": { + "relative_path": "api/AlohaKit.Controls.BusyIndicatorDrawable.html" + } + }, + "version": "", + "Uid": null, + "IsMRef": true, + "Title": "AlohaKit.Controls.BusyIndicatorDrawable", + "Summary": null + }, + { + "type": "ManagedReference", + "source_relative_path": "api/AlohaKit.Controls.Button.yml", + "output": { + ".html": { + "relative_path": "api/AlohaKit.Controls.Button.html" + } + }, + "version": "", + "Uid": null, + "IsMRef": true, + "Title": "AlohaKit.Controls.Button", + "Summary": "

    The Button represents a customizable drawn button control.\nIt allows developers to create interactive buttons with highly customizable designs,\nleveraging the power of lightweight graphics rendering.

    \n" + }, + { + "type": "ManagedReference", + "source_relative_path": "api/AlohaKit.Controls.ButtonDrawable.yml", + "output": { + ".html": { + "relative_path": "api/AlohaKit.Controls.ButtonDrawable.html" + } + }, + "version": "", + "Uid": null, + "IsMRef": true, + "Title": "AlohaKit.Controls.ButtonDrawable", + "Summary": null + }, + { + "type": "ManagedReference", + "source_relative_path": "api/AlohaKit.Controls.Captcha.yml", + "output": { + ".html": { + "relative_path": "api/AlohaKit.Controls.Captcha.html" + } + }, + "version": "", + "Uid": null, + "IsMRef": true, + "Title": "AlohaKit.Controls.Captcha", + "Summary": "

    The Captcha is a drawn control used to render and manage CAPTCHA (Completely Automated Public Turing test to\ntell Computers and Humans Apart) challenges.\nIt leverages .NET MAUI Graphics for efficient graphical rendering and provides a flexible way to generate and validate\nCAPTCHAs in an application.

    \n" + }, + { + "type": "ManagedReference", + "source_relative_path": "api/AlohaKit.Controls.CaptchaDrawable.yml", + "output": { + ".html": { + "relative_path": "api/AlohaKit.Controls.CaptchaDrawable.html" + } + }, + "version": "", + "Uid": null, + "IsMRef": true, + "Title": "AlohaKit.Controls.CaptchaDrawable", + "Summary": null + }, + { + "type": "ManagedReference", + "source_relative_path": "api/AlohaKit.Controls.CaptchaLevel.yml", + "output": { + ".html": { + "relative_path": "api/AlohaKit.Controls.CaptchaLevel.html" + } + }, + "version": "", + "Uid": null, + "IsMRef": true, + "Title": "AlohaKit.Controls.CaptchaLevel", + "Summary": "

    The CaptchaLevel enumeration defines the different levels of complexity for CAPTCHA\n(Completely Automated Public Turing test to tell Computers and Humans Apart) challenges.\nThis can be used to configure or determine the strength of a CAPTCHA system,\nbalancing between ease of use and security requirements.

    \n" + }, + { + "type": "ManagedReference", + "source_relative_path": "api/AlohaKit.Controls.CheckBox.yml", + "output": { + ".html": { + "relative_path": "api/AlohaKit.Controls.CheckBox.html" + } + }, + "version": "", + "Uid": null, + "IsMRef": true, + "Title": "AlohaKit.Controls.CheckBox", + "Summary": "

    The CheckBox is a custom drawn control that represents a checkbox for selecting or deselecting options.\nIt is highly customizable while maintaining efficient rendering capabilities.

    \n" + }, + { + "type": "ManagedReference", + "source_relative_path": "api/AlohaKit.Controls.CheckBoxDrawable.yml", + "output": { + ".html": { + "relative_path": "api/AlohaKit.Controls.CheckBoxDrawable.html" + } + }, + "version": "", + "Uid": null, + "IsMRef": true, + "Title": "AlohaKit.Controls.CheckBoxDrawable", + "Summary": null + }, + { + "type": "ManagedReference", + "source_relative_path": "api/AlohaKit.Controls.LineChart.yml", + "output": { + ".html": { + "relative_path": "api/AlohaKit.Controls.LineChart.html" + } + }, + "version": "", + "Uid": null, + "IsMRef": true, + "Title": "AlohaKit.Controls.LineChart", + "Summary": "

    The LineChart provides a drawn control to visualize data as a line chart.\nIt allows data points to be represented by a continuous line, making it ideal for showing trends over time or relationships between variables.

    \n

    This class inherits from BaseChart, leveraging shared charting functionality while adding line-specific rendering features.

    \n" + }, + { + "type": "ManagedReference", + "source_relative_path": "api/AlohaKit.Controls.LineChartDrawable.yml", + "output": { + ".html": { + "relative_path": "api/AlohaKit.Controls.LineChartDrawable.html" + } + }, + "version": "", + "Uid": null, + "IsMRef": true, + "Title": "AlohaKit.Controls.LineChartDrawable", + "Summary": null + }, + { + "type": "ManagedReference", + "source_relative_path": "api/AlohaKit.Controls.LinearGauge.yml", + "output": { + ".html": { + "relative_path": "api/AlohaKit.Controls.LinearGauge.html" + } + }, + "version": "", + "Uid": null, + "IsMRef": true, + "Title": "AlohaKit.Controls.LinearGauge", + "Summary": "

    The LinearGauge is a drawn control for rendering a linear gauge.\nA linear gauge is a visual representation of data along a straight or horizontal/vertical axis, commonly used to\ndisplay values such as progress, measurements, or performance indicators.

    \n" + }, + { + "type": "ManagedReference", + "source_relative_path": "api/AlohaKit.Controls.LinearGaugeDrawable.yml", + "output": { + ".html": { + "relative_path": "api/AlohaKit.Controls.LinearGaugeDrawable.html" + } + }, + "version": "", + "Uid": null, + "IsMRef": true, + "Title": "AlohaKit.Controls.LinearGaugeDrawable", + "Summary": null + }, + { + "type": "ManagedReference", + "source_relative_path": "api/AlohaKit.Controls.MultiBarChart.yml", + "output": { + ".html": { + "relative_path": "api/AlohaKit.Controls.MultiBarChart.html" + } + }, + "version": "", + "Uid": null, + "IsMRef": true, + "Title": "AlohaKit.Controls.MultiBarChart", + "Summary": "

    The MultiBarChart is a drawn control designed to display multiple bar charts within a single charting view.\nIt enables the visualization of grouped or stacked data, making it an ideal tool for comparing multiple datasets across categories.

    \n

    This class inherits from BaseChart, leveraging core charting functionality while adding features specific to bar chart rendering.

    \n" + }, + { + "type": "ManagedReference", + "source_relative_path": "api/AlohaKit.Controls.MultiBarChartDrawable.yml", + "output": { + ".html": { + "relative_path": "api/AlohaKit.Controls.MultiBarChartDrawable.html" + } + }, + "version": "", + "Uid": null, + "IsMRef": true, + "Title": "AlohaKit.Controls.MultiBarChartDrawable", + "Summary": null + }, + { + "type": "ManagedReference", + "source_relative_path": "api/AlohaKit.Controls.MultiLineChartDrawable.yml", + "output": { + ".html": { + "relative_path": "api/AlohaKit.Controls.MultiLineChartDrawable.html" + } + }, + "version": "", + "Uid": null, + "IsMRef": true, + "Title": "AlohaKit.Controls.MultiLineChartDrawable", + "Summary": null + }, + { + "type": "ManagedReference", + "source_relative_path": "api/AlohaKit.Controls.MultiLineChartView.yml", + "output": { + ".html": { + "relative_path": "api/AlohaKit.Controls.MultiLineChartView.html" + } + }, + "version": "", + "Uid": null, + "IsMRef": true, + "Title": "AlohaKit.Controls.MultiLineChartView", + "Summary": "

    The MultiLineChartView is a drawn control for displaying multiple line charts within a single view.\nThis enables the visualization of multiple data series, each represented by a separate line, on a shared coordinate system.

    \n

    The class is derived from BaseChart, allowing it to inherit essential charting properties and behaviors while adding specialized features for multi-line visualization.

    \n" + }, + { + "type": "ManagedReference", + "source_relative_path": "api/AlohaKit.Controls.NumericUpDown.yml", + "output": { + ".html": { + "relative_path": "api/AlohaKit.Controls.NumericUpDown.html" + } + }, + "version": "", + "Uid": null, + "IsMRef": true, + "Title": "AlohaKit.Controls.NumericUpDown", + "Summary": "

    The NumericUpDown is a drawn control for selecting numeric values by incrementing or decrementing them with\ninteractive buttons or input.

    \n" + }, + { + "type": "ManagedReference", + "source_relative_path": "api/AlohaKit.Controls.NumericUpDownDrawable.yml", + "output": { + ".html": { + "relative_path": "api/AlohaKit.Controls.NumericUpDownDrawable.html" + } + }, + "version": "", + "Uid": null, + "IsMRef": true, + "Title": "AlohaKit.Controls.NumericUpDownDrawable", + "Summary": null + }, + { + "type": "ManagedReference", + "source_relative_path": "api/AlohaKit.Controls.PieChart.yml", + "output": { + ".html": { + "relative_path": "api/AlohaKit.Controls.PieChart.html" + } + }, + "version": "", + "Uid": null, + "IsMRef": true, + "Title": "AlohaKit.Controls.PieChart", + "Summary": "

    The PieChart is a drawn control for rendering pie charts to visually represent data as portions of a circle.

    \n" + }, + { + "type": "ManagedReference", + "source_relative_path": "api/AlohaKit.Controls.PieChartDrawable.yml", + "output": { + ".html": { + "relative_path": "api/AlohaKit.Controls.PieChartDrawable.html" + } + }, + "version": "", + "Uid": null, + "IsMRef": true, + "Title": "AlohaKit.Controls.PieChartDrawable", + "Summary": null + }, + { + "type": "ManagedReference", + "source_relative_path": "api/AlohaKit.Controls.ProgressBar.yml", + "output": { + ".html": { + "relative_path": "api/AlohaKit.Controls.ProgressBar.html" + } + }, + "version": "", + "Uid": null, + "IsMRef": true, + "Title": "AlohaKit.Controls.ProgressBar", + "Summary": "

    The ProgressBar class represents a customizable control for displaying the progress of a task visually.

    \n" + }, + { + "type": "ManagedReference", + "source_relative_path": "api/AlohaKit.Controls.ProgressBarDrawable.yml", + "output": { + ".html": { + "relative_path": "api/AlohaKit.Controls.ProgressBarDrawable.html" + } + }, + "version": "", + "Uid": null, + "IsMRef": true, + "Title": "AlohaKit.Controls.ProgressBarDrawable", + "Summary": null + }, + { + "type": "ManagedReference", + "source_relative_path": "api/AlohaKit.Controls.ProgressBarStyle.yml", + "output": { + ".html": { + "relative_path": "api/AlohaKit.Controls.ProgressBarStyle.html" + } + }, + "version": "", + "Uid": null, + "IsMRef": true, + "Title": "AlohaKit.Controls.ProgressBarStyle", + "Summary": "

    The ProgressBarStyle enumeration defines the visual style options for rendering a progress bar.\nThis provides developers with a simple way to specify whether the progress bar appears with sharp corners or rounded edges.

    \n" + }, + { + "type": "ManagedReference", + "source_relative_path": "api/AlohaKit.Controls.ProgressRadial.yml", + "output": { + ".html": { + "relative_path": "api/AlohaKit.Controls.ProgressRadial.html" + } + }, + "version": "", + "Uid": null, + "IsMRef": true, + "Title": "AlohaKit.Controls.ProgressRadial", + "Summary": "

    The ProgressRadial is a drawn control designed to visually represent progress in a circular or radial form.\nIt can be used to display percentages or completion statuses, such as task progress, loading indicators, or performance metrics.

    \n" + }, + { + "type": "ManagedReference", + "source_relative_path": "api/AlohaKit.Controls.ProgressRadialDirection.yml", + "output": { + ".html": { + "relative_path": "api/AlohaKit.Controls.ProgressRadialDirection.html" + } + }, + "version": "", + "Uid": null, + "IsMRef": true, + "Title": "AlohaKit.Controls.ProgressRadialDirection", + "Summary": "

    The ProgressRadialDirection enumeration specifies the direction of progress rendering for radial progress components,\nallowing developers to define whether progress moves clockwise or counterclockwise along the circular axis.

    \n" + }, + { + "type": "ManagedReference", + "source_relative_path": "api/AlohaKit.Controls.ProgressRadialDrawable.yml", + "output": { + ".html": { + "relative_path": "api/AlohaKit.Controls.ProgressRadialDrawable.html" + } + }, + "version": "", + "Uid": null, + "IsMRef": true, + "Title": "AlohaKit.Controls.ProgressRadialDrawable", + "Summary": null + }, + { + "type": "ManagedReference", + "source_relative_path": "api/AlohaKit.Controls.PulseIcon.yml", + "output": { + ".html": { + "relative_path": "api/AlohaKit.Controls.PulseIcon.html" + } + }, + "version": "", + "Uid": null, + "IsMRef": true, + "Title": "AlohaKit.Controls.PulseIcon", + "Summary": "

    The PulseIcon is a drawn control that creates an animated pulsing effect around an icon.\nThis control is particularly useful for drawing attention to specific elements in your user interface, such as notifications, interactive features, or status indicators.

    \n" + }, + { + "type": "ManagedReference", + "source_relative_path": "api/AlohaKit.Controls.PulseIconDrawable.yml", + "output": { + ".html": { + "relative_path": "api/AlohaKit.Controls.PulseIconDrawable.html" + } + }, + "version": "", + "Uid": null, + "IsMRef": true, + "Title": "AlohaKit.Controls.PulseIconDrawable", + "Summary": null + }, + { + "type": "ManagedReference", + "source_relative_path": "api/AlohaKit.Controls.Rating.yml", + "output": { + ".html": { + "relative_path": "api/AlohaKit.Controls.Rating.html" + } + }, + "version": "", + "Uid": null, + "IsMRef": true, + "Title": "AlohaKit.Controls.Rating", + "Summary": "

    The Rating is a drawn control that allows users to rate items or entities, typically using a star-based system or other graphical representation.\nThis control is perfect for scenarios where users need to provide feedback, score performance, or indicate preferences in an intuitive visual format.

    \n" + }, + { + "type": "ManagedReference", + "source_relative_path": "api/AlohaKit.Controls.RatingDrawable.yml", + "output": { + ".html": { + "relative_path": "api/AlohaKit.Controls.RatingDrawable.html" + } + }, + "version": "", + "Uid": null, + "IsMRef": true, + "Title": "AlohaKit.Controls.RatingDrawable", + "Summary": null + }, + { + "type": "ManagedReference", + "source_relative_path": "api/AlohaKit.Controls.RatingValueChangedEventArgs.yml", + "output": { + ".html": { + "relative_path": "api/AlohaKit.Controls.RatingValueChangedEventArgs.html" + } + }, + "version": "", + "Uid": null, + "IsMRef": true, + "Title": "AlohaKit.Controls.RatingValueChangedEventArgs", + "Summary": "

    The RatingValueChangedEventArgs class provides data for events that report a change in the rating value of a Rating control.

    \n" + }, + { + "type": "ManagedReference", + "source_relative_path": "api/AlohaKit.Controls.SegmentedControl.yml", + "output": { + ".html": { + "relative_path": "api/AlohaKit.Controls.SegmentedControl.html" + } + }, + "version": "", + "Uid": null, + "IsMRef": true, + "Title": "AlohaKit.Controls.SegmentedControl", + "Summary": "

    The SegmentedControl is a drawn control that allows users to make a single selection from a set of segmented options.\nIt is ideal for scenarios where a user needs to choose between mutually exclusive options, such as switching between tabs or filtering content.

    \n" + }, + { + "type": "ManagedReference", + "source_relative_path": "api/AlohaKit.Controls.SegmentedControlDrawable.yml", + "output": { + ".html": { + "relative_path": "api/AlohaKit.Controls.SegmentedControlDrawable.html" + } + }, + "version": "", + "Uid": null, + "IsMRef": true, + "Title": "AlohaKit.Controls.SegmentedControlDrawable", + "Summary": null + }, + { + "type": "ManagedReference", + "source_relative_path": "api/AlohaKit.Controls.SelectedIndexEventArgs.yml", + "output": { + ".html": { + "relative_path": "api/AlohaKit.Controls.SelectedIndexEventArgs.html" + } + }, + "version": "", + "Uid": null, + "IsMRef": true, + "Title": "AlohaKit.Controls.SelectedIndexEventArgs", + "Summary": "

    The SelectedIndexEventArgs class provides data for events that report a change in the selected index of a SegmentedControl.

    \n" + }, + { + "type": "ManagedReference", + "source_relative_path": "api/AlohaKit.Controls.Slider.yml", + "output": { + ".html": { + "relative_path": "api/AlohaKit.Controls.Slider.html" + } + }, + "version": "", + "Uid": null, + "IsMRef": true, + "Title": "AlohaKit.Controls.Slider", + "Summary": "

    The Slider class is a graphical control that allows users to select a value from a continuous or discrete range by dragging a thumb along a track.\nThis versatile control is widely used for adjusting settings like volume, brightness, or custom application parameters.

    \n" + }, + { + "type": "ManagedReference", + "source_relative_path": "api/AlohaKit.Controls.SliderDrawable.yml", + "output": { + ".html": { + "relative_path": "api/AlohaKit.Controls.SliderDrawable.html" + } + }, + "version": "", + "Uid": null, + "IsMRef": true, + "Title": "AlohaKit.Controls.SliderDrawable", + "Summary": null + }, + { + "type": "ManagedReference", + "source_relative_path": "api/AlohaKit.Controls.ThumbShape.yml", + "output": { + ".html": { + "relative_path": "api/AlohaKit.Controls.ThumbShape.html" + } + }, + "version": "", + "Uid": null, + "IsMRef": true, + "Title": "AlohaKit.Controls.ThumbShape", + "Summary": "

    The ThumbShape enumeration defines the possible shapes for a "thumb" in UI components, such as sliders, progress indicators, or drag handles.\nIt provides developers with options to customize the appearance of the thumb based on design requirements.

    \n" + }, + { + "type": "ManagedReference", + "source_relative_path": "api/AlohaKit.Controls.ToggleSwitch.yml", + "output": { + ".html": { + "relative_path": "api/AlohaKit.Controls.ToggleSwitch.html" + } + }, + "version": "", + "Uid": null, + "IsMRef": true, + "Title": "AlohaKit.Controls.ToggleSwitch", + "Summary": "

    The ToggleSwitch is a drawn control that allows users to toggle between two states (on and off).\nDesigned for visual clarity and smooth interactivity, this control is ideal for enabling or disabling settings, features, or options within an application.

    \n" + }, + { + "type": "ManagedReference", + "source_relative_path": "api/AlohaKit.Controls.ToggleSwitchDrawable.yml", + "output": { + ".html": { + "relative_path": "api/AlohaKit.Controls.ToggleSwitchDrawable.html" + } + }, + "version": "", + "Uid": null, + "IsMRef": true, + "Title": "AlohaKit.Controls.ToggleSwitchDrawable", + "Summary": null + }, + { + "type": "ManagedReference", + "source_relative_path": "api/AlohaKit.Controls.yml", + "output": { + ".html": { + "relative_path": "api/AlohaKit.Controls.html" + } + }, + "version": "", + "Uid": null, + "IsMRef": true, + "Title": "AlohaKit.Controls", + "Summary": null + }, + { + "type": "ManagedReference", + "source_relative_path": "api/AlohaKit.DataVisualization.PieChart.yml", + "output": { + ".html": { + "relative_path": "api/AlohaKit.DataVisualization.PieChart.html" + } + }, + "version": "", + "Uid": null, + "IsMRef": true, + "Title": "AlohaKit.DataVisualization.PieChart", + "Summary": null + }, + { + "type": "ManagedReference", + "source_relative_path": "api/AlohaKit.DataVisualization.PieChartDrawable.yml", + "output": { + ".html": { + "relative_path": "api/AlohaKit.DataVisualization.PieChartDrawable.html" + } + }, + "version": "", + "Uid": null, + "IsMRef": true, + "Title": "AlohaKit.DataVisualization.PieChartDrawable", + "Summary": null + }, + { + "type": "ManagedReference", + "source_relative_path": "api/AlohaKit.DataVisualization.yml", + "output": { + ".html": { + "relative_path": "api/AlohaKit.DataVisualization.html" + } + }, + "version": "", + "Uid": null, + "IsMRef": true, + "Title": "AlohaKit.DataVisualization", + "Summary": null + }, + { + "type": "ManagedReference", + "source_relative_path": "api/AlohaKit.Enums.ChartEnums.LineChartStyle.yml", + "output": { + ".html": { + "relative_path": "api/AlohaKit.Enums.ChartEnums.LineChartStyle.html" + } + }, + "version": "", + "Uid": null, + "IsMRef": true, + "Title": "AlohaKit.Enums.ChartEnums.LineChartStyle", + "Summary": "

    The LineChartStyle enumeration specifies the style used for rendering a line chart.\nIt defines whether the chart should display straight lines or smooth curves to connect the data points.

    \n" + }, + { + "type": "ManagedReference", + "source_relative_path": "api/AlohaKit.Enums.ChartEnums.yml", + "output": { + ".html": { + "relative_path": "api/AlohaKit.Enums.ChartEnums.html" + } + }, + "version": "", + "Uid": null, + "IsMRef": true, + "Title": "AlohaKit.Enums.ChartEnums", + "Summary": null + }, + { + "type": "ManagedReference", + "source_relative_path": "api/AlohaKit.Enums.yml", + "output": { + ".html": { + "relative_path": "api/AlohaKit.Enums.html" + } + }, + "version": "", + "Uid": null, + "IsMRef": true, + "Title": "AlohaKit.Enums", + "Summary": null + }, + { + "type": "ManagedReference", + "source_relative_path": "api/AlohaKit.Extensions.ChartExtensions.yml", + "output": { + ".html": { + "relative_path": "api/AlohaKit.Extensions.ChartExtensions.html" + } + }, + "version": "", + "Uid": null, + "IsMRef": true, + "Title": "AlohaKit.Extensions.ChartExtensions", + "Summary": null + }, + { + "type": "ManagedReference", + "source_relative_path": "api/AlohaKit.Extensions.IEnumerableExtensions.yml", + "output": { + ".html": { + "relative_path": "api/AlohaKit.Extensions.IEnumerableExtensions.html" + } + }, + "version": "", + "Uid": null, + "IsMRef": true, + "Title": "AlohaKit.Extensions.IEnumerableExtensions", + "Summary": null + }, + { + "type": "ManagedReference", + "source_relative_path": "api/AlohaKit.Extensions.NumericExtensions.yml", + "output": { + ".html": { + "relative_path": "api/AlohaKit.Extensions.NumericExtensions.html" + } + }, + "version": "", + "Uid": null, + "IsMRef": true, + "Title": "AlohaKit.Extensions.NumericExtensions", + "Summary": null + }, + { + "type": "ManagedReference", + "source_relative_path": "api/AlohaKit.Extensions.yml", + "output": { + ".html": { + "relative_path": "api/AlohaKit.Extensions.html" + } + }, + "version": "", + "Uid": null, + "IsMRef": true, + "Title": "AlohaKit.Extensions", + "Summary": null + }, + { + "type": "ManagedReference", + "source_relative_path": "api/AlohaKit.Models.ChartGroupStyle.yml", + "output": { + ".html": { + "relative_path": "api/AlohaKit.Models.ChartGroupStyle.html" + } + }, + "version": "", + "Uid": null, + "IsMRef": true, + "Title": "AlohaKit.Models.ChartGroupStyle", + "Summary": null + }, + { + "type": "ManagedReference", + "source_relative_path": "api/AlohaKit.Models.ChartItem.yml", + "output": { + ".html": { + "relative_path": "api/AlohaKit.Models.ChartItem.html" + } + }, + "version": "", + "Uid": null, + "IsMRef": true, + "Title": "AlohaKit.Models.ChartItem", + "Summary": null + }, + { + "type": "ManagedReference", + "source_relative_path": "api/AlohaKit.Models.yml", + "output": { + ".html": { + "relative_path": "api/AlohaKit.Models.html" + } + }, + "version": "", + "Uid": null, + "IsMRef": true, + "Title": "AlohaKit.Models", + "Summary": null + }, + { + "type": "Toc", + "source_relative_path": "api/toc.yml", + "output": { + ".html": { + "relative_path": "api/toc.html" + }, + ".json": { + "relative_path": "api/toc.json" + } + }, + "version": "" + }, + { + "type": "Conceptual", + "source_relative_path": "docs/getting-started.md", + "output": { + ".html": { + "relative_path": "docs/getting-started.html" + } + }, + "version": "" + }, + { + "type": "Conceptual", + "source_relative_path": "docs/introduction.md", + "output": { + ".html": { + "relative_path": "docs/introduction.html" + } + }, + "version": "" + }, + { + "type": "Toc", + "source_relative_path": "docs/toc.yml", + "output": { + ".html": { + "relative_path": "docs/toc.html" + }, + ".json": { + "relative_path": "docs/toc.json" + } + }, + "version": "" + }, + { + "type": "Conceptual", + "source_relative_path": "index.md", + "output": { + ".html": { + "relative_path": "index.html" + } + }, + "version": "" + }, + { + "type": "Toc", + "source_relative_path": "toc.yml", + "output": { + ".html": { + "relative_path": "toc.html" + }, + ".json": { + "relative_path": "toc.json" + } + }, + "version": "" + } + ], + "groups": [ + { + "xrefmap": "xrefmap.yml" + } + ] +} \ No newline at end of file diff --git a/docs/_site/public/architecture-I3QFYML2-2T2ZUHXO.min.js b/docs/_site/public/architecture-I3QFYML2-2T2ZUHXO.min.js new file mode 100644 index 0000000..cbee167 --- /dev/null +++ b/docs/_site/public/architecture-I3QFYML2-2T2ZUHXO.min.js @@ -0,0 +1,2 @@ +import{a as e,b as r}from"./chunk-IJ4BRSPX.min.js";import"./chunk-BIJFJY5F.min.js";import"./chunk-U4DUTLYF.min.js";import"./chunk-IQQ46AC6.min.js";import"./chunk-CXRPJJJE.min.js";import"./chunk-OSRY5VT3.min.js";export{e as ArchitectureModule,r as createArchitectureServices}; +//# sourceMappingURL=architecture-I3QFYML2-2T2ZUHXO.min.js.map diff --git a/docs/_site/public/architecture-I3QFYML2-2T2ZUHXO.min.js.map b/docs/_site/public/architecture-I3QFYML2-2T2ZUHXO.min.js.map new file mode 100644 index 0000000..9865211 --- /dev/null +++ b/docs/_site/public/architecture-I3QFYML2-2T2ZUHXO.min.js.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": [], + "sourcesContent": [], + "mappings": "", + "names": [] +} diff --git a/docs/_site/public/architectureDiagram-UYN6MBPD-WBU2OYNU.min.js b/docs/_site/public/architectureDiagram-UYN6MBPD-WBU2OYNU.min.js new file mode 100644 index 0000000..64009de --- /dev/null +++ b/docs/_site/public/architectureDiagram-UYN6MBPD-WBU2OYNU.min.js @@ -0,0 +1,37 @@ +import{a as Ne}from"./chunk-WMZJ2DJX.min.js";import{a as $e}from"./chunk-5IIW54K6.min.js";import{a as Ze}from"./chunk-EKP7MBOP.min.js";import{a as qe}from"./chunk-WXIN66R4.min.js";import{a as ke}from"./chunk-I4ZXTPQC.min.js";import"./chunk-33FU46FA.min.js";import"./chunk-OZ2RCKQJ.min.js";import"./chunk-PDS7545E.min.js";import"./chunk-IJ4BRSPX.min.js";import"./chunk-UEFJDIUO.min.js";import"./chunk-BIJFJY5F.min.js";import"./chunk-U4DUTLYF.min.js";import"./chunk-IQQ46AC6.min.js";import{a as Ve,b as ze,c as fe}from"./chunk-BD4P4Z7J.min.js";import{d as ce}from"./chunk-AUO2PXKS.min.js";import"./chunk-PYPO7LRM.min.js";import"./chunk-CM5D5KZN.min.js";import{P as be,S as Pe,T as Ge,U as Ue,V as Ye,W as Xe,X as He,Y as We,Z as ae,h as at,ia as Be,j as Te,v as Fe}from"./chunk-U3SD26FK.min.js";import"./chunk-CXRPJJJE.min.js";import{a as me,d as ur}from"./chunk-OSRY5VT3.min.js";var Ce=me((ne,Le)=>{(function(w,L){typeof ne=="object"&&typeof Le=="object"?Le.exports=L():typeof define=="function"&&define.amd?define([],L):typeof ne=="object"?ne.layoutBase=L():w.layoutBase=L()})(ne,function(){return function(m){var w={};function L(u){if(w[u])return w[u].exports;var o=w[u]={i:u,l:!1,exports:{}};return m[u].call(o.exports,o,o.exports,L),o.l=!0,o.exports}return L.m=m,L.c=w,L.i=function(u){return u},L.d=function(u,o,n){L.o(u,o)||Object.defineProperty(u,o,{configurable:!1,enumerable:!0,get:n})},L.n=function(u){var o=u&&u.__esModule?function(){return u.default}:function(){return u};return L.d(o,"a",o),o},L.o=function(u,o){return Object.prototype.hasOwnProperty.call(u,o)},L.p="",L(L.s=28)}([function(m,w,L){"use strict";function u(){}u.QUALITY=1,u.DEFAULT_CREATE_BENDS_AS_NEEDED=!1,u.DEFAULT_INCREMENTAL=!1,u.DEFAULT_ANIMATION_ON_LAYOUT=!0,u.DEFAULT_ANIMATION_DURING_LAYOUT=!1,u.DEFAULT_ANIMATION_PERIOD=50,u.DEFAULT_UNIFORM_LEAF_NODE_SIZES=!1,u.DEFAULT_GRAPH_MARGIN=15,u.NODE_DIMENSIONS_INCLUDE_LABELS=!1,u.SIMPLE_NODE_SIZE=40,u.SIMPLE_NODE_HALF_SIZE=u.SIMPLE_NODE_SIZE/2,u.EMPTY_COMPOUND_NODE_SIZE=40,u.MIN_EDGE_LENGTH=1,u.WORLD_BOUNDARY=1e6,u.INITIAL_WORLD_BOUNDARY=u.WORLD_BOUNDARY/1e3,u.WORLD_CENTER_X=1200,u.WORLD_CENTER_Y=900,m.exports=u},function(m,w,L){"use strict";var u=L(2),o=L(8),n=L(9);function t(f,e,v){u.call(this,v),this.isOverlapingSourceAndTarget=!1,this.vGraphObject=v,this.bendpoints=[],this.source=f,this.target=e}t.prototype=Object.create(u.prototype);for(var a in u)t[a]=u[a];t.prototype.getSource=function(){return this.source},t.prototype.getTarget=function(){return this.target},t.prototype.isInterGraph=function(){return this.isInterGraph},t.prototype.getLength=function(){return this.length},t.prototype.isOverlapingSourceAndTarget=function(){return this.isOverlapingSourceAndTarget},t.prototype.getBendpoints=function(){return this.bendpoints},t.prototype.getLca=function(){return this.lca},t.prototype.getSourceInLca=function(){return this.sourceInLca},t.prototype.getTargetInLca=function(){return this.targetInLca},t.prototype.getOtherEnd=function(f){if(this.source===f)return this.target;if(this.target===f)return this.source;throw"Node is not incident with this edge"},t.prototype.getOtherEndInGraph=function(f,e){for(var v=this.getOtherEnd(f),i=e.getGraphManager().getRoot();;){if(v.getOwner()==e)return v;if(v.getOwner()==i)break;v=v.getOwner().getParent()}return null},t.prototype.updateLength=function(){var f=new Array(4);this.isOverlapingSourceAndTarget=o.getIntersection(this.target.getRect(),this.source.getRect(),f),this.isOverlapingSourceAndTarget||(this.lengthX=f[0]-f[2],this.lengthY=f[1]-f[3],Math.abs(this.lengthX)<1&&(this.lengthX=n.sign(this.lengthX)),Math.abs(this.lengthY)<1&&(this.lengthY=n.sign(this.lengthY)),this.length=Math.sqrt(this.lengthX*this.lengthX+this.lengthY*this.lengthY))},t.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=n.sign(this.lengthX)),Math.abs(this.lengthY)<1&&(this.lengthY=n.sign(this.lengthY)),this.length=Math.sqrt(this.lengthX*this.lengthX+this.lengthY*this.lengthY)},m.exports=t},function(m,w,L){"use strict";function u(o){this.vGraphObject=o}m.exports=u},function(m,w,L){"use strict";var u=L(2),o=L(10),n=L(13),t=L(0),a=L(16),f=L(5);function e(i,r,h,c){h==null&&c==null&&(c=r),u.call(this,c),i.graphManager!=null&&(i=i.graphManager),this.estimatedSize=o.MIN_VALUE,this.inclusionTreeDepth=o.MAX_VALUE,this.vGraphObject=c,this.edges=[],this.graphManager=i,h!=null&&r!=null?this.rect=new n(r.x,r.y,h.width,h.height):this.rect=new n}e.prototype=Object.create(u.prototype);for(var v in u)e[v]=u[v];e.prototype.getEdges=function(){return this.edges},e.prototype.getChild=function(){return this.child},e.prototype.getOwner=function(){return this.owner},e.prototype.getWidth=function(){return this.rect.width},e.prototype.setWidth=function(i){this.rect.width=i},e.prototype.getHeight=function(){return this.rect.height},e.prototype.setHeight=function(i){this.rect.height=i},e.prototype.getCenterX=function(){return this.rect.x+this.rect.width/2},e.prototype.getCenterY=function(){return this.rect.y+this.rect.height/2},e.prototype.getCenter=function(){return new f(this.rect.x+this.rect.width/2,this.rect.y+this.rect.height/2)},e.prototype.getLocation=function(){return new f(this.rect.x,this.rect.y)},e.prototype.getRect=function(){return this.rect},e.prototype.getDiagonal=function(){return Math.sqrt(this.rect.width*this.rect.width+this.rect.height*this.rect.height)},e.prototype.getHalfTheDiagonal=function(){return Math.sqrt(this.rect.height*this.rect.height+this.rect.width*this.rect.width)/2},e.prototype.setRect=function(i,r){this.rect.x=i.x,this.rect.y=i.y,this.rect.width=r.width,this.rect.height=r.height},e.prototype.setCenter=function(i,r){this.rect.x=i-this.rect.width/2,this.rect.y=r-this.rect.height/2},e.prototype.setLocation=function(i,r){this.rect.x=i,this.rect.y=r},e.prototype.moveBy=function(i,r){this.rect.x+=i,this.rect.y+=r},e.prototype.getEdgeListToNode=function(i){var r=[],h,c=this;return c.edges.forEach(function(l){if(l.target==i){if(l.source!=c)throw"Incorrect edge source!";r.push(l)}}),r},e.prototype.getEdgesBetween=function(i){var r=[],h,c=this;return c.edges.forEach(function(l){if(!(l.source==c||l.target==c))throw"Incorrect edge source and/or target";(l.target==i||l.source==i)&&r.push(l)}),r},e.prototype.getNeighborsList=function(){var i=new Set,r=this;return r.edges.forEach(function(h){if(h.source==r)i.add(h.target);else{if(h.target!=r)throw"Incorrect incidency!";i.add(h.source)}}),i},e.prototype.withChildren=function(){var i=new Set,r,h;if(i.add(this),this.child!=null)for(var c=this.child.getNodes(),l=0;lr?(this.rect.x-=(this.labelWidth-r)/2,this.setWidth(this.labelWidth)):this.labelPosHorizontal=="right"&&this.setWidth(r+this.labelWidth)),this.labelHeight&&(this.labelPosVertical=="top"?(this.rect.y-=this.labelHeight,this.setHeight(h+this.labelHeight)):this.labelPosVertical=="center"&&this.labelHeight>h?(this.rect.y-=(this.labelHeight-h)/2,this.setHeight(this.labelHeight)):this.labelPosVertical=="bottom"&&this.setHeight(h+this.labelHeight))}}},e.prototype.getInclusionTreeDepth=function(){if(this.inclusionTreeDepth==o.MAX_VALUE)throw"assert failed";return this.inclusionTreeDepth},e.prototype.transform=function(i){var r=this.rect.x;r>t.WORLD_BOUNDARY?r=t.WORLD_BOUNDARY:r<-t.WORLD_BOUNDARY&&(r=-t.WORLD_BOUNDARY);var h=this.rect.y;h>t.WORLD_BOUNDARY?h=t.WORLD_BOUNDARY:h<-t.WORLD_BOUNDARY&&(h=-t.WORLD_BOUNDARY);var c=new f(r,h),l=i.inverseTransformPoint(c);this.setLocation(l.x,l.y)},e.prototype.getLeft=function(){return this.rect.x},e.prototype.getRight=function(){return this.rect.x+this.rect.width},e.prototype.getTop=function(){return this.rect.y},e.prototype.getBottom=function(){return this.rect.y+this.rect.height},e.prototype.getParent=function(){return this.owner==null?null:this.owner.getParent()},m.exports=e},function(m,w,L){"use strict";var u=L(0);function o(){}for(var n in u)o[n]=u[n];o.MAX_ITERATIONS=2500,o.DEFAULT_EDGE_LENGTH=50,o.DEFAULT_SPRING_STRENGTH=.45,o.DEFAULT_REPULSION_STRENGTH=4500,o.DEFAULT_GRAVITY_STRENGTH=.4,o.DEFAULT_COMPOUND_GRAVITY_STRENGTH=1,o.DEFAULT_GRAVITY_RANGE_FACTOR=3.8,o.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR=1.5,o.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION=!0,o.DEFAULT_USE_SMART_REPULSION_RANGE_CALCULATION=!0,o.DEFAULT_COOLING_FACTOR_INCREMENTAL=.3,o.COOLING_ADAPTATION_FACTOR=.33,o.ADAPTATION_LOWER_NODE_LIMIT=1e3,o.ADAPTATION_UPPER_NODE_LIMIT=5e3,o.MAX_NODE_DISPLACEMENT_INCREMENTAL=100,o.MAX_NODE_DISPLACEMENT=o.MAX_NODE_DISPLACEMENT_INCREMENTAL*3,o.MIN_REPULSION_DIST=o.DEFAULT_EDGE_LENGTH/10,o.CONVERGENCE_CHECK_PERIOD=100,o.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR=.1,o.MIN_EDGE_LENGTH=1,o.GRID_CALCULATION_CHECK_PERIOD=10,m.exports=o},function(m,w,L){"use strict";function u(o,n){o==null&&n==null?(this.x=0,this.y=0):(this.x=o,this.y=n)}u.prototype.getX=function(){return this.x},u.prototype.getY=function(){return this.y},u.prototype.setX=function(o){this.x=o},u.prototype.setY=function(o){this.y=o},u.prototype.getDifference=function(o){return new DimensionD(this.x-o.x,this.y-o.y)},u.prototype.getCopy=function(){return new u(this.x,this.y)},u.prototype.translate=function(o){return this.x+=o.width,this.y+=o.height,this},m.exports=u},function(m,w,L){"use strict";var u=L(2),o=L(10),n=L(0),t=L(7),a=L(3),f=L(1),e=L(13),v=L(12),i=L(11);function r(c,l,N){u.call(this,N),this.estimatedSize=o.MIN_VALUE,this.margin=n.DEFAULT_GRAPH_MARGIN,this.edges=[],this.nodes=[],this.isConnected=!1,this.parent=c,l!=null&&l instanceof t?this.graphManager=l:l!=null&&l instanceof Layout&&(this.graphManager=l.graphManager)}r.prototype=Object.create(u.prototype);for(var h in u)r[h]=u[h];r.prototype.getNodes=function(){return this.nodes},r.prototype.getEdges=function(){return this.edges},r.prototype.getGraphManager=function(){return this.graphManager},r.prototype.getParent=function(){return this.parent},r.prototype.getLeft=function(){return this.left},r.prototype.getRight=function(){return this.right},r.prototype.getTop=function(){return this.top},r.prototype.getBottom=function(){return this.bottom},r.prototype.isConnected=function(){return this.isConnected},r.prototype.add=function(c,l,N){if(l==null&&N==null){var p=c;if(this.graphManager==null)throw"Graph has no graph mgr!";if(this.getNodes().indexOf(p)>-1)throw"Node already in graph!";return p.owner=this,this.getNodes().push(p),p}else{var y=c;if(!(this.getNodes().indexOf(l)>-1&&this.getNodes().indexOf(N)>-1))throw"Source or target not in graph!";if(!(l.owner==N.owner&&l.owner==this))throw"Both owners must be this graph!";return l.owner!=N.owner?null:(y.source=l,y.target=N,y.isInterGraph=!1,this.getEdges().push(y),l.edges.push(y),N!=l&&N.edges.push(y),y)}},r.prototype.remove=function(c){var l=c;if(c instanceof a){if(l==null)throw"Node is null!";if(!(l.owner!=null&&l.owner==this))throw"Owner graph is invalid!";if(this.graphManager==null)throw"Owner graph manager is invalid!";for(var N=l.edges.slice(),p,y=N.length,C=0;C-1&&P>-1))throw"Source and/or target doesn't know this edge!";p.source.edges.splice(M,1),p.target!=p.source&&p.target.edges.splice(P,1);var F=p.source.owner.getEdges().indexOf(p);if(F==-1)throw"Not in owner's edge list!";p.source.owner.getEdges().splice(F,1)}},r.prototype.updateLeftTop=function(){for(var c=o.MAX_VALUE,l=o.MAX_VALUE,N,p,y,C=this.getNodes(),F=C.length,M=0;MN&&(c=N),l>p&&(l=p)}return c==o.MAX_VALUE?null:(C[0].getParent().paddingLeft!=null?y=C[0].getParent().paddingLeft:y=this.margin,this.left=l-y,this.top=c-y,new v(this.left,this.top))},r.prototype.updateBounds=function(c){for(var l=o.MAX_VALUE,N=-o.MAX_VALUE,p=o.MAX_VALUE,y=-o.MAX_VALUE,C,F,M,P,V,Y=this.nodes,et=Y.length,I=0;IC&&(l=C),NM&&(p=M),yC&&(l=C),NM&&(p=M),y=this.nodes.length){var et=0;N.forEach(function(I){I.owner==c&&et++}),et==this.nodes.length&&(this.isConnected=!0)}},m.exports=r},function(m,w,L){"use strict";var u,o=L(1);function n(t){u=L(6),this.layout=t,this.graphs=[],this.edges=[]}n.prototype.addRoot=function(){var t=this.layout.newGraph(),a=this.layout.newNode(null),f=this.add(t,a);return this.setRootGraph(f),this.rootGraph},n.prototype.add=function(t,a,f,e,v){if(f==null&&e==null&&v==null){if(t==null)throw"Graph is null!";if(a==null)throw"Parent node is null!";if(this.graphs.indexOf(t)>-1)throw"Graph already in this graph mgr!";if(this.graphs.push(t),t.parent!=null)throw"Already has a parent!";if(a.child!=null)throw"Already has a child!";return t.parent=a,a.child=t,t}else{v=f,e=a,f=t;var i=e.getOwner(),r=v.getOwner();if(!(i!=null&&i.getGraphManager()==this))throw"Source not in this graph mgr!";if(!(r!=null&&r.getGraphManager()==this))throw"Target not in this graph mgr!";if(i==r)return f.isInterGraph=!1,i.add(f,e,v);if(f.isInterGraph=!0,f.source=e,f.target=v,this.edges.indexOf(f)>-1)throw"Edge already in inter-graph edge list!";if(this.edges.push(f),!(f.source!=null&&f.target!=null))throw"Edge source and/or target is null!";if(!(f.source.edges.indexOf(f)==-1&&f.target.edges.indexOf(f)==-1))throw"Edge already in source and/or target incidency list!";return f.source.edges.push(f),f.target.edges.push(f),f}},n.prototype.remove=function(t){if(t instanceof u){var a=t;if(a.getGraphManager()!=this)throw"Graph not in this graph mgr";if(!(a==this.rootGraph||a.parent!=null&&a.parent.graphManager==this))throw"Invalid parent node!";var f=[];f=f.concat(a.getEdges());for(var e,v=f.length,i=0;i=t.getRight()?a[0]+=Math.min(t.getX()-n.getX(),n.getRight()-t.getRight()):t.getX()<=n.getX()&&t.getRight()>=n.getRight()&&(a[0]+=Math.min(n.getX()-t.getX(),t.getRight()-n.getRight())),n.getY()<=t.getY()&&n.getBottom()>=t.getBottom()?a[1]+=Math.min(t.getY()-n.getY(),n.getBottom()-t.getBottom()):t.getY()<=n.getY()&&t.getBottom()>=n.getBottom()&&(a[1]+=Math.min(n.getY()-t.getY(),t.getBottom()-n.getBottom()));var v=Math.abs((t.getCenterY()-n.getCenterY())/(t.getCenterX()-n.getCenterX()));t.getCenterY()===n.getCenterY()&&t.getCenterX()===n.getCenterX()&&(v=1);var i=v*a[0],r=a[1]/v;a[0]i)return a[0]=f,a[1]=h,a[2]=v,a[3]=Y,!1;if(ev)return a[0]=r,a[1]=e,a[2]=P,a[3]=i,!1;if(fv?(a[0]=l,a[1]=N,s=!0):(a[0]=c,a[1]=h,s=!0):g===d&&(f>v?(a[0]=r,a[1]=h,s=!0):(a[0]=p,a[1]=N,s=!0)),-T===d?v>f?(a[2]=V,a[3]=Y,E=!0):(a[2]=P,a[3]=M,E=!0):T===d&&(v>f?(a[2]=F,a[3]=M,E=!0):(a[2]=et,a[3]=Y,E=!0)),s&&E)return!1;if(f>v?e>i?(D=this.getCardinalDirection(g,d,4),O=this.getCardinalDirection(T,d,2)):(D=this.getCardinalDirection(-g,d,3),O=this.getCardinalDirection(-T,d,1)):e>i?(D=this.getCardinalDirection(-g,d,1),O=this.getCardinalDirection(-T,d,3)):(D=this.getCardinalDirection(g,d,2),O=this.getCardinalDirection(T,d,4)),!s)switch(D){case 1:R=h,b=f+-C/d,a[0]=b,a[1]=R;break;case 2:b=p,R=e+y*d,a[0]=b,a[1]=R;break;case 3:R=N,b=f+C/d,a[0]=b,a[1]=R;break;case 4:b=l,R=e+-y*d,a[0]=b,a[1]=R;break}if(!E)switch(O){case 1:Z=M,x=v+-k/d,a[2]=x,a[3]=Z;break;case 2:x=et,Z=i+I*d,a[2]=x,a[3]=Z;break;case 3:Z=Y,x=v+k/d,a[2]=x,a[3]=Z;break;case 4:x=V,Z=i+-I*d,a[2]=x,a[3]=Z;break}}return!1},o.getCardinalDirection=function(n,t,a){return n>t?a:1+a%4},o.getIntersection=function(n,t,a,f){if(f==null)return this.getIntersection2(n,t,a);var e=n.x,v=n.y,i=t.x,r=t.y,h=a.x,c=a.y,l=f.x,N=f.y,p=void 0,y=void 0,C=void 0,F=void 0,M=void 0,P=void 0,V=void 0,Y=void 0,et=void 0;return C=r-v,M=e-i,V=i*v-e*r,F=N-c,P=h-l,Y=l*c-h*N,et=C*P-F*M,et===0?null:(p=(M*Y-P*V)/et,y=(F*V-C*Y)/et,new u(p,y))},o.angleOfVector=function(n,t,a,f){var e=void 0;return n!==a?(e=Math.atan((f-t)/(a-n)),a=0){var N=(-h+Math.sqrt(h*h-4*r*c))/(2*r),p=(-h-Math.sqrt(h*h-4*r*c))/(2*r),y=null;return N>=0&&N<=1?[N]:p>=0&&p<=1?[p]:y}else return null},o.HALF_PI=.5*Math.PI,o.ONE_AND_HALF_PI=1.5*Math.PI,o.TWO_PI=2*Math.PI,o.THREE_PI=3*Math.PI,m.exports=o},function(m,w,L){"use strict";function u(){}u.sign=function(o){return o>0?1:o<0?-1:0},u.floor=function(o){return o<0?Math.ceil(o):Math.floor(o)},u.ceil=function(o){return o<0?Math.floor(o):Math.ceil(o)},m.exports=u},function(m,w,L){"use strict";function u(){}u.MAX_VALUE=2147483647,u.MIN_VALUE=-2147483648,m.exports=u},function(m,w,L){"use strict";var u=function(){function e(v,i){for(var r=0;r"u"?"undefined":u(n);return n==null||t!="object"&&t!="function"},m.exports=o},function(m,w,L){"use strict";function u(h){if(Array.isArray(h)){for(var c=0,l=Array(h.length);c0&&c;){for(C.push(M[0]);C.length>0&&c;){var P=C[0];C.splice(0,1),y.add(P);for(var V=P.getEdges(),p=0;p-1&&M.splice(k,1)}y=new Set,F=new Map}}return h},r.prototype.createDummyNodesForBendpoints=function(h){for(var c=[],l=h.source,N=this.graphManager.calcLowestCommonAncestor(h.source,h.target),p=0;p0){for(var N=this.edgeToDummyNodes.get(l),p=0;p=0&&c.splice(Y,1);var et=F.getNeighborsList();et.forEach(function(s){if(l.indexOf(s)<0){var E=N.get(s),g=E-1;g==1&&P.push(s),N.set(s,g)}})}l=l.concat(P),(c.length==1||c.length==2)&&(p=!0,y=c[0])}return y},r.prototype.setGraphManager=function(h){this.graphManager=h},m.exports=r},function(m,w,L){"use strict";function u(){}u.seed=1,u.x=0,u.nextDouble=function(){return u.x=Math.sin(u.seed++)*1e4,u.x-Math.floor(u.x)},m.exports=u},function(m,w,L){"use strict";var u=L(5);function o(n,t){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.prototype.getWorldOrgX=function(){return this.lworldOrgX},o.prototype.setWorldOrgX=function(n){this.lworldOrgX=n},o.prototype.getWorldOrgY=function(){return this.lworldOrgY},o.prototype.setWorldOrgY=function(n){this.lworldOrgY=n},o.prototype.getWorldExtX=function(){return this.lworldExtX},o.prototype.setWorldExtX=function(n){this.lworldExtX=n},o.prototype.getWorldExtY=function(){return this.lworldExtY},o.prototype.setWorldExtY=function(n){this.lworldExtY=n},o.prototype.getDeviceOrgX=function(){return this.ldeviceOrgX},o.prototype.setDeviceOrgX=function(n){this.ldeviceOrgX=n},o.prototype.getDeviceOrgY=function(){return this.ldeviceOrgY},o.prototype.setDeviceOrgY=function(n){this.ldeviceOrgY=n},o.prototype.getDeviceExtX=function(){return this.ldeviceExtX},o.prototype.setDeviceExtX=function(n){this.ldeviceExtX=n},o.prototype.getDeviceExtY=function(){return this.ldeviceExtY},o.prototype.setDeviceExtY=function(n){this.ldeviceExtY=n},o.prototype.transformX=function(n){var t=0,a=this.lworldExtX;return a!=0&&(t=this.ldeviceOrgX+(n-this.lworldOrgX)*this.ldeviceExtX/a),t},o.prototype.transformY=function(n){var t=0,a=this.lworldExtY;return a!=0&&(t=this.ldeviceOrgY+(n-this.lworldOrgY)*this.ldeviceExtY/a),t},o.prototype.inverseTransformX=function(n){var t=0,a=this.ldeviceExtX;return a!=0&&(t=this.lworldOrgX+(n-this.ldeviceOrgX)*this.lworldExtX/a),t},o.prototype.inverseTransformY=function(n){var t=0,a=this.ldeviceExtY;return a!=0&&(t=this.lworldOrgY+(n-this.ldeviceOrgY)*this.lworldExtY/a),t},o.prototype.inverseTransformPoint=function(n){var t=new u(this.inverseTransformX(n.x),this.inverseTransformY(n.y));return t},m.exports=o},function(m,w,L){"use strict";function u(i){if(Array.isArray(i)){for(var r=0,h=Array(i.length);rn.ADAPTATION_LOWER_NODE_LIMIT&&(this.coolingFactor=Math.max(this.coolingFactor*n.COOLING_ADAPTATION_FACTOR,this.coolingFactor-(i-n.ADAPTATION_LOWER_NODE_LIMIT)/(n.ADAPTATION_UPPER_NODE_LIMIT-n.ADAPTATION_LOWER_NODE_LIMIT)*this.coolingFactor*(1-n.COOLING_ADAPTATION_FACTOR))),this.maxNodeDisplacement=n.MAX_NODE_DISPLACEMENT_INCREMENTAL):(i>n.ADAPTATION_LOWER_NODE_LIMIT?this.coolingFactor=Math.max(n.COOLING_ADAPTATION_FACTOR,1-(i-n.ADAPTATION_LOWER_NODE_LIMIT)/(n.ADAPTATION_UPPER_NODE_LIMIT-n.ADAPTATION_LOWER_NODE_LIMIT)*(1-n.COOLING_ADAPTATION_FACTOR)):this.coolingFactor=1,this.initialCoolingFactor=this.coolingFactor,this.maxNodeDisplacement=n.MAX_NODE_DISPLACEMENT),this.maxIterations=Math.max(this.getAllNodes().length*5,this.maxIterations),this.displacementThresholdPerNode=3*n.DEFAULT_EDGE_LENGTH/100,this.totalDisplacementThreshold=this.displacementThresholdPerNode*this.getAllNodes().length,this.repulsionRange=this.calcRepulsionRange()},e.prototype.calcSpringForces=function(){for(var i=this.getAllEdges(),r,h=0;h0&&arguments[0]!==void 0?arguments[0]:!0,r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,h,c,l,N,p=this.getAllNodes(),y;if(this.useFRGridVariant)for(this.totalIterations%n.GRID_CALCULATION_CHECK_PERIOD==1&&i&&this.updateGrid(),y=new Set,h=0;hC||y>C)&&(i.gravitationForceX=-this.gravityConstant*l,i.gravitationForceY=-this.gravityConstant*N)):(C=r.getEstimatedSize()*this.compoundGravityRangeFactor,(p>C||y>C)&&(i.gravitationForceX=-this.gravityConstant*l*this.compoundGravityConstant,i.gravitationForceY=-this.gravityConstant*N*this.compoundGravityConstant))},e.prototype.isConverged=function(){var i,r=!1;return this.totalIterations>this.maxIterations/3&&(r=Math.abs(this.totalDisplacement-this.oldTotalDisplacement)<2),i=this.totalDisplacement=p.length||C>=p[0].length)){for(var F=0;Fe}}]),a}();m.exports=t},function(m,w,L){"use strict";function u(){}u.svd=function(o){this.U=null,this.V=null,this.s=null,this.m=0,this.n=0,this.m=o.length,this.n=o[0].length;var n=Math.min(this.m,this.n);this.s=function(xt){for(var Lt=[];xt-- >0;)Lt.push(0);return Lt}(Math.min(this.m+1,this.n)),this.U=function(xt){var Lt=function kt(St){if(St.length==0)return 0;for(var Wt=[],$t=0;$t0;)Lt.push(0);return Lt}(this.n),a=function(xt){for(var Lt=[];xt-- >0;)Lt.push(0);return Lt}(this.m),f=!0,e=!0,v=Math.min(this.m-1,this.n),i=Math.max(0,Math.min(this.n-2,this.m)),r=0;r=0;d--)if(this.s[d]!==0){for(var D=d+1;D=0;S--){if(function(xt,Lt){return xt&&Lt}(S0;){var J=void 0,Xt=void 0;for(J=E-2;J>=-1&&J!==-1;J--)if(Math.abs(t[J])<=Ft+Ct*(Math.abs(this.s[J])+Math.abs(this.s[J+1]))){t[J]=0;break}if(J===E-2)Xt=4;else{var Ot=void 0;for(Ot=E-1;Ot>=J&&Ot!==J;Ot--){var ot=(Ot!==E?Math.abs(t[Ot]):0)+(Ot!==J+1?Math.abs(t[Ot-1]):0);if(Math.abs(this.s[Ot])<=Ft+Ct*ot){this.s[Ot]=0;break}}Ot===J?Xt=3:Ot===E-1?Xt=1:(Xt=2,J=Ot)}switch(J++,Xt){case 1:{var tt=t[E-2];t[E-2]=0;for(var yt=E-2;yt>=J;yt--){var mt=u.hypot(this.s[yt],tt),Mt=this.s[yt]/mt,Tt=tt/mt;if(this.s[yt]=mt,yt!==J&&(tt=-Tt*t[yt-1],t[yt-1]=Mt*t[yt-1]),e)for(var Nt=0;Nt=this.s[J+1]);){var ft=this.s[J];if(this.s[J]=this.s[J+1],this.s[J+1]=ft,e&&JMath.abs(n)?(t=n/o,t=Math.abs(o)*Math.sqrt(1+t*t)):n!=0?(t=o/n,t=Math.abs(n)*Math.sqrt(1+t*t)):t=0,t},m.exports=u},function(m,w,L){"use strict";var u=function(){function t(a,f){for(var e=0;e2&&arguments[2]!==void 0?arguments[2]:1,v=arguments.length>3&&arguments[3]!==void 0?arguments[3]:-1,i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:-1;o(this,t),this.sequence1=a,this.sequence2=f,this.match_score=e,this.mismatch_penalty=v,this.gap_penalty=i,this.iMax=a.length+1,this.jMax=f.length+1,this.grid=new Array(this.iMax);for(var r=0;r=0;a--){var f=this.listeners[a];f.event===n&&f.callback===t&&this.listeners.splice(a,1)}},o.emit=function(n,t){for(var a=0;a{(function(w,L){typeof oe=="object"&&typeof Me=="object"?Me.exports=L(Ce()):typeof define=="function"&&define.amd?define(["layout-base"],L):typeof oe=="object"?oe.coseBase=L(Ce()):w.coseBase=L(w.layoutBase)})(oe,function(m){return(()=>{"use strict";var w={45:(n,t,a)=>{var f={};f.layoutBase=a(551),f.CoSEConstants=a(806),f.CoSEEdge=a(767),f.CoSEGraph=a(880),f.CoSEGraphManager=a(578),f.CoSELayout=a(765),f.CoSENode=a(991),f.ConstraintHandler=a(902),n.exports=f},806:(n,t,a)=>{var f=a(551).FDLayoutConstants;function e(){}for(var v in f)e[v]=f[v];e.DEFAULT_USE_MULTI_LEVEL_SCALING=!1,e.DEFAULT_RADIAL_SEPARATION=f.DEFAULT_EDGE_LENGTH,e.DEFAULT_COMPONENT_SEPERATION=60,e.TILE=!0,e.TILING_PADDING_VERTICAL=10,e.TILING_PADDING_HORIZONTAL=10,e.TRANSFORM_ON_CONSTRAINT_HANDLING=!0,e.ENFORCE_CONSTRAINTS=!0,e.APPLY_LAYOUT=!0,e.RELAX_MOVEMENT_ON_CONSTRAINTS=!0,e.TREE_REDUCTION_ON_INCREMENTAL=!0,e.PURE_INCREMENTAL=e.DEFAULT_INCREMENTAL,n.exports=e},767:(n,t,a)=>{var f=a(551).FDLayoutEdge;function e(i,r,h){f.call(this,i,r,h)}e.prototype=Object.create(f.prototype);for(var v in f)e[v]=f[v];n.exports=e},880:(n,t,a)=>{var f=a(551).LGraph;function e(i,r,h){f.call(this,i,r,h)}e.prototype=Object.create(f.prototype);for(var v in f)e[v]=f[v];n.exports=e},578:(n,t,a)=>{var f=a(551).LGraphManager;function e(i){f.call(this,i)}e.prototype=Object.create(f.prototype);for(var v in f)e[v]=f[v];n.exports=e},765:(n,t,a)=>{var f=a(551).FDLayout,e=a(578),v=a(880),i=a(991),r=a(767),h=a(806),c=a(902),l=a(551).FDLayoutConstants,N=a(551).LayoutConstants,p=a(551).Point,y=a(551).PointD,C=a(551).DimensionD,F=a(551).Layout,M=a(551).Integer,P=a(551).IGeometry,V=a(551).LGraph,Y=a(551).Transform,et=a(551).LinkedList;function I(){f.call(this),this.toBeTiled={},this.constraints={}}I.prototype=Object.create(f.prototype);for(var k in f)I[k]=f[k];I.prototype.newGraphManager=function(){var s=new e(this);return this.graphManager=s,s},I.prototype.newGraph=function(s){return new v(null,this.graphManager,s)},I.prototype.newNode=function(s){return new i(this.graphManager,s)},I.prototype.newEdge=function(s){return new r(null,null,s)},I.prototype.initParameters=function(){f.prototype.initParameters.call(this,arguments),this.isSubLayout||(h.DEFAULT_EDGE_LENGTH<10?this.idealEdgeLength=10:this.idealEdgeLength=h.DEFAULT_EDGE_LENGTH,this.useSmartIdealEdgeLengthCalculation=h.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION,this.gravityConstant=l.DEFAULT_GRAVITY_STRENGTH,this.compoundGravityConstant=l.DEFAULT_COMPOUND_GRAVITY_STRENGTH,this.gravityRangeFactor=l.DEFAULT_GRAVITY_RANGE_FACTOR,this.compoundGravityRangeFactor=l.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR,this.prunedNodesAll=[],this.growTreeIterations=0,this.afterGrowthIterations=0,this.isTreeGrowing=!1,this.isGrowthFinished=!1)},I.prototype.initSpringEmbedder=function(){f.prototype.initSpringEmbedder.call(this),this.coolingCycle=0,this.maxCoolingCycle=this.maxIterations/l.CONVERGENCE_CHECK_PERIOD,this.finalTemperature=.04,this.coolingAdjuster=1},I.prototype.layout=function(){var s=N.DEFAULT_CREATE_BENDS_AS_NEEDED;return s&&(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(h.TREE_REDUCTION_ON_INCREMENTAL){this.reduceTrees(),this.graphManager.resetAllNodesToApplyGravitation();var E=new Set(this.getAllNodes()),g=this.nodesWithGravity.filter(function(D){return E.has(D)});this.graphManager.setAllNodesToApplyGravitation(g)}}else{var s=this.getFlatForest();if(s.length>0)this.positionNodesRadially(s);else{this.reduceTrees(),this.graphManager.resetAllNodesToApplyGravitation();var E=new Set(this.getAllNodes()),g=this.nodesWithGravity.filter(function(T){return E.has(T)});this.graphManager.setAllNodesToApplyGravitation(g),this.positionNodesRandomly()}}return Object.keys(this.constraints).length>0&&(c.handleConstraints(this),this.initConstraintVariables()),this.initSpringEmbedder(),h.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%l.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 s=new Set(this.getAllNodes()),E=this.nodesWithGravity.filter(function(d){return s.has(d)});this.graphManager.setAllNodesToApplyGravitation(E),this.graphManager.updateBounds(),this.updateGrid(),h.PURE_INCREMENTAL?this.coolingFactor=l.DEFAULT_COOLING_FACTOR_INCREMENTAL/2:this.coolingFactor=l.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()),h.PURE_INCREMENTAL?this.coolingFactor=l.DEFAULT_COOLING_FACTOR_INCREMENTAL/2*((100-this.afterGrowthIterations)/100):this.coolingFactor=l.DEFAULT_COOLING_FACTOR_INCREMENTAL*((100-this.afterGrowthIterations)/100),this.afterGrowthIterations++}var g=!this.isTreeGrowing&&!this.isGrowthFinished,T=this.growTreeIterations%10==1&&this.isTreeGrowing||this.afterGrowthIterations%10==1&&this.isGrowthFinished;return this.totalDisplacement=0,this.graphManager.updateBounds(),this.calcSpringForces(),this.calcRepulsionForces(g,T),this.calcGravitationalForces(),this.moveNodes(),this.animate(),!1},I.prototype.getPositionsData=function(){for(var s=this.graphManager.getAllNodes(),E={},g=0;g0&&this.updateDisplacements();for(var g=0;g0&&(T.fixedNodeWeight=D)}}if(this.constraints.relativePlacementConstraint){var O=new Map,b=new Map;if(this.dummyToNodeForVerticalAlignment=new Map,this.dummyToNodeForHorizontalAlignment=new Map,this.fixedNodesOnHorizontal=new Set,this.fixedNodesOnVertical=new Set,this.fixedNodeSet.forEach(function(A){s.fixedNodesOnHorizontal.add(A),s.fixedNodesOnVertical.add(A)}),this.constraints.alignmentConstraint){if(this.constraints.alignmentConstraint.vertical)for(var R=this.constraints.alignmentConstraint.vertical,g=0;g=2*A.length/3;Q--)U=Math.floor(Math.random()*(Q+1)),X=A[Q],A[Q]=A[U],A[U]=X;return A},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(A){if(A.left){var U=O.has(A.left)?O.get(A.left):A.left,X=O.has(A.right)?O.get(A.right):A.right;s.nodesInRelativeHorizontal.includes(U)||(s.nodesInRelativeHorizontal.push(U),s.nodeToRelativeConstraintMapHorizontal.set(U,[]),s.dummyToNodeForVerticalAlignment.has(U)?s.nodeToTempPositionMapHorizontal.set(U,s.idToNodeMap.get(s.dummyToNodeForVerticalAlignment.get(U)[0]).getCenterX()):s.nodeToTempPositionMapHorizontal.set(U,s.idToNodeMap.get(U).getCenterX())),s.nodesInRelativeHorizontal.includes(X)||(s.nodesInRelativeHorizontal.push(X),s.nodeToRelativeConstraintMapHorizontal.set(X,[]),s.dummyToNodeForVerticalAlignment.has(X)?s.nodeToTempPositionMapHorizontal.set(X,s.idToNodeMap.get(s.dummyToNodeForVerticalAlignment.get(X)[0]).getCenterX()):s.nodeToTempPositionMapHorizontal.set(X,s.idToNodeMap.get(X).getCenterX())),s.nodeToRelativeConstraintMapHorizontal.get(U).push({right:X,gap:A.gap}),s.nodeToRelativeConstraintMapHorizontal.get(X).push({left:U,gap:A.gap})}else{var Q=b.has(A.top)?b.get(A.top):A.top,ht=b.has(A.bottom)?b.get(A.bottom):A.bottom;s.nodesInRelativeVertical.includes(Q)||(s.nodesInRelativeVertical.push(Q),s.nodeToRelativeConstraintMapVertical.set(Q,[]),s.dummyToNodeForHorizontalAlignment.has(Q)?s.nodeToTempPositionMapVertical.set(Q,s.idToNodeMap.get(s.dummyToNodeForHorizontalAlignment.get(Q)[0]).getCenterY()):s.nodeToTempPositionMapVertical.set(Q,s.idToNodeMap.get(Q).getCenterY())),s.nodesInRelativeVertical.includes(ht)||(s.nodesInRelativeVertical.push(ht),s.nodeToRelativeConstraintMapVertical.set(ht,[]),s.dummyToNodeForHorizontalAlignment.has(ht)?s.nodeToTempPositionMapVertical.set(ht,s.idToNodeMap.get(s.dummyToNodeForHorizontalAlignment.get(ht)[0]).getCenterY()):s.nodeToTempPositionMapVertical.set(ht,s.idToNodeMap.get(ht).getCenterY())),s.nodeToRelativeConstraintMapVertical.get(Q).push({bottom:ht,gap:A.gap}),s.nodeToRelativeConstraintMapVertical.get(ht).push({top:Q,gap:A.gap})}});else{var Z=new Map,_=new Map;this.constraints.relativePlacementConstraint.forEach(function(A){if(A.left){var U=O.has(A.left)?O.get(A.left):A.left,X=O.has(A.right)?O.get(A.right):A.right;Z.has(U)?Z.get(U).push(X):Z.set(U,[X]),Z.has(X)?Z.get(X).push(U):Z.set(X,[U])}else{var Q=b.has(A.top)?b.get(A.top):A.top,ht=b.has(A.bottom)?b.get(A.bottom):A.bottom;_.has(Q)?_.get(Q).push(ht):_.set(Q,[ht]),_.has(ht)?_.get(ht).push(Q):_.set(ht,[Q])}});var S=function(U,X){var Q=[],ht=[],Ct=new et,Ft=new Set,J=0;return U.forEach(function(Xt,Ot){if(!Ft.has(Ot)){Q[J]=[],ht[J]=!1;var ot=Ot;for(Ct.push(ot),Ft.add(ot),Q[J].push(ot);Ct.length!=0;){ot=Ct.shift(),X.has(ot)&&(ht[J]=!0);var tt=U.get(ot);tt.forEach(function(yt){Ft.has(yt)||(Ct.push(yt),Ft.add(yt),Q[J].push(yt))})}J++}}),{components:Q,isFixed:ht}},j=S(Z,s.fixedNodesOnHorizontal);this.componentsOnHorizontal=j.components,this.fixedComponentsOnHorizontal=j.isFixed;var z=S(_,s.fixedNodesOnVertical);this.componentsOnVertical=z.components,this.fixedComponentsOnVertical=z.isFixed}}},I.prototype.updateDisplacements=function(){var s=this;if(this.constraints.fixedNodeConstraint&&this.constraints.fixedNodeConstraint.forEach(function(z){var A=s.idToNodeMap.get(z.nodeId);A.displacementX=0,A.displacementY=0}),this.constraints.alignmentConstraint){if(this.constraints.alignmentConstraint.vertical)for(var E=this.constraints.alignmentConstraint.vertical,g=0;g1){var b;for(b=0;bT&&(T=Math.floor(O.y)),D=Math.floor(O.x+h.DEFAULT_COMPONENT_SEPERATION)}this.transform(new y(N.WORLD_CENTER_X-O.x/2,N.WORLD_CENTER_Y-O.y/2))},I.radialLayout=function(s,E,g){var T=Math.max(this.maxDiagonalInTree(s),h.DEFAULT_RADIAL_SEPARATION);I.branchRadialLayout(E,null,0,359,0,T);var d=V.calculateBounds(s),D=new Y;D.setDeviceOrgX(d.getMinX()),D.setDeviceOrgY(d.getMinY()),D.setWorldOrgX(g.x),D.setWorldOrgY(g.y);for(var O=0;O1;){var Q=X[0];X.splice(0,1);var ht=S.indexOf(Q);ht>=0&&S.splice(ht,1),A--,j--}E!=null?U=(S.indexOf(X[0])+1)%A:U=0;for(var Ct=Math.abs(T-g)/j,Ft=U;z!=j;Ft=++Ft%A){var J=S[Ft].getOtherEnd(s);if(J!=E){var Xt=(g+z*Ct)%360,Ot=(Xt+Ct)%360;I.branchRadialLayout(J,s,Xt,Ot,d+D,D),z++}}},I.maxDiagonalInTree=function(s){for(var E=M.MIN_VALUE,g=0;gE&&(E=d)}return E},I.prototype.calcRepulsionRange=function(){return 2*(this.level+1)*this.idealEdgeLength},I.prototype.groupZeroDegreeMembers=function(){var s=this,E={};this.memberGroups={},this.idToDummyNode={};for(var g=[],T=this.graphManager.getAllNodes(),d=0;d"u"&&(E[b]=[]),E[b]=E[b].concat(D)}Object.keys(E).forEach(function(R){if(E[R].length>1){var x="DummyCompound_"+R;s.memberGroups[x]=E[R];var Z=E[R][0].getParent(),_=new i(s.graphManager);_.id=x,_.paddingLeft=Z.paddingLeft||0,_.paddingRight=Z.paddingRight||0,_.paddingBottom=Z.paddingBottom||0,_.paddingTop=Z.paddingTop||0,s.idToDummyNode[x]=_;var S=s.getGraphManager().add(s.newGraph(),_),j=Z.getChild();j.add(_);for(var z=0;zd?(T.rect.x-=(T.labelWidth-d)/2,T.setWidth(T.labelWidth),T.labelMarginLeft=(T.labelWidth-d)/2):T.labelPosHorizontal=="right"&&T.setWidth(d+T.labelWidth)),T.labelHeight&&(T.labelPosVertical=="top"?(T.rect.y-=T.labelHeight,T.setHeight(D+T.labelHeight),T.labelMarginTop=T.labelHeight):T.labelPosVertical=="center"&&T.labelHeight>D?(T.rect.y-=(T.labelHeight-D)/2,T.setHeight(T.labelHeight),T.labelMarginTop=(T.labelHeight-D)/2):T.labelPosVertical=="bottom"&&T.setHeight(D+T.labelHeight))}})},I.prototype.repopulateCompounds=function(){for(var s=this.compoundOrder.length-1;s>=0;s--){var E=this.compoundOrder[s],g=E.id,T=E.paddingLeft,d=E.paddingTop,D=E.labelMarginLeft,O=E.labelMarginTop;this.adjustLocations(this.tiledMemberPack[g],E.rect.x,E.rect.y,T,d,D,O)}},I.prototype.repopulateZeroDegreeMembers=function(){var s=this,E=this.tiledZeroDegreePack;Object.keys(E).forEach(function(g){var T=s.idToDummyNode[g],d=T.paddingLeft,D=T.paddingTop,O=T.labelMarginLeft,b=T.labelMarginTop;s.adjustLocations(E[g],T.rect.x,T.rect.y,d,D,O,b)})},I.prototype.getToBeTiled=function(s){var E=s.id;if(this.toBeTiled[E]!=null)return this.toBeTiled[E];var g=s.getChild();if(g==null)return this.toBeTiled[E]=!1,!1;for(var T=g.getNodes(),d=0;d0)return this.toBeTiled[E]=!1,!1;if(D.getChild()==null){this.toBeTiled[D.id]=!1;continue}if(!this.getToBeTiled(D))return this.toBeTiled[E]=!1,!1}return this.toBeTiled[E]=!0,!0},I.prototype.getNodeDegree=function(s){for(var E=s.id,g=s.getEdges(),T=0,d=0;dZ&&(Z=S.rect.height)}g+=Z+s.verticalPadding}},I.prototype.tileCompoundMembers=function(s,E){var g=this;this.tiledMemberPack=[],Object.keys(s).forEach(function(T){var d=E[T];if(g.tiledMemberPack[T]=g.tileNodes(s[T],d.paddingLeft+d.paddingRight),d.rect.width=g.tiledMemberPack[T].width,d.rect.height=g.tiledMemberPack[T].height,d.setCenter(g.tiledMemberPack[T].centerX,g.tiledMemberPack[T].centerY),d.labelMarginLeft=0,d.labelMarginTop=0,h.NODE_DIMENSIONS_INCLUDE_LABELS){var D=d.rect.width,O=d.rect.height;d.labelWidth&&(d.labelPosHorizontal=="left"?(d.rect.x-=d.labelWidth,d.setWidth(D+d.labelWidth),d.labelMarginLeft=d.labelWidth):d.labelPosHorizontal=="center"&&d.labelWidth>D?(d.rect.x-=(d.labelWidth-D)/2,d.setWidth(d.labelWidth),d.labelMarginLeft=(d.labelWidth-D)/2):d.labelPosHorizontal=="right"&&d.setWidth(D+d.labelWidth)),d.labelHeight&&(d.labelPosVertical=="top"?(d.rect.y-=d.labelHeight,d.setHeight(O+d.labelHeight),d.labelMarginTop=d.labelHeight):d.labelPosVertical=="center"&&d.labelHeight>O?(d.rect.y-=(d.labelHeight-O)/2,d.setHeight(d.labelHeight),d.labelMarginTop=(d.labelHeight-O)/2):d.labelPosVertical=="bottom"&&d.setHeight(O+d.labelHeight))}})},I.prototype.tileNodes=function(s,E){var g=this.tileNodesByFavoringDim(s,E,!0),T=this.tileNodesByFavoringDim(s,E,!1),d=this.getOrgRatio(g),D=this.getOrgRatio(T),O;return Db&&(b=z.getWidth())});var R=D/d,x=O/d,Z=Math.pow(g-T,2)+4*(R+T)*(x+g)*d,_=(T-g+Math.sqrt(Z))/(2*(R+T)),S;E?(S=Math.ceil(_),S==_&&S++):S=Math.floor(_);var j=S*(R+T)-T;return b>j&&(j=b),j+=T*2,j},I.prototype.tileNodesByFavoringDim=function(s,E,g){var T=h.TILING_PADDING_VERTICAL,d=h.TILING_PADDING_HORIZONTAL,D=h.TILING_COMPARE_BY,O={rows:[],rowWidth:[],rowHeight:[],width:0,height:E,verticalPadding:T,horizontalPadding:d,centerX:0,centerY:0};D&&(O.idealRowWidth=this.calcIdealRowWidth(s,g));var b=function(A){return A.rect.width*A.rect.height},R=function(A,U){return b(U)-b(A)};s.sort(function(z,A){var U=R;return O.idealRowWidth?(U=D,U(z.id,A.id)):U(z,A)});for(var x=0,Z=0,_=0;_0&&(O+=s.horizontalPadding),s.rowWidth[g]=O,s.width0&&(b+=s.verticalPadding);var R=0;b>s.rowHeight[g]&&(R=s.rowHeight[g],s.rowHeight[g]=b,R=s.rowHeight[g]-R),s.height+=R,s.rows[g].push(E)},I.prototype.getShortestRowIndex=function(s){for(var E=-1,g=Number.MAX_VALUE,T=0;Tg&&(E=T,g=s.rowWidth[T]);return E},I.prototype.canAddHorizontal=function(s,E,g){if(s.idealRowWidth){var T=s.rows.length-1,d=s.rowWidth[T];return d+E+s.horizontalPadding<=s.idealRowWidth}var D=this.getShortestRowIndex(s);if(D<0)return!0;var O=s.rowWidth[D];if(O+s.horizontalPadding+E<=s.width)return!0;var b=0;s.rowHeight[D]0&&(b=g+s.verticalPadding-s.rowHeight[D]);var R;s.width-O>=E+s.horizontalPadding?R=(s.height+b)/(O+E+s.horizontalPadding):R=(s.height+b)/s.width,b=g+s.verticalPadding;var x;return s.widthD&&E!=g){T.splice(-1,1),s.rows[g].push(d),s.rowWidth[E]=s.rowWidth[E]-D,s.rowWidth[g]=s.rowWidth[g]+D,s.width=s.rowWidth[instance.getLongestRowIndex(s)];for(var O=Number.MIN_VALUE,b=0;bO&&(O=T[b].height);E>0&&(O+=s.verticalPadding);var R=s.rowHeight[E]+s.rowHeight[g];s.rowHeight[E]=O,s.rowHeight[g]0)for(var j=d;j<=D;j++)S[0]+=this.grid[j][O-1].length+this.grid[j][O].length-1;if(D0)for(var j=O;j<=b;j++)S[3]+=this.grid[d-1][j].length+this.grid[d][j].length-1;for(var z=M.MAX_VALUE,A,U,X=0;X{var f=a(551).FDLayoutNode,e=a(551).IMath;function v(r,h,c,l){f.call(this,r,h,c,l)}v.prototype=Object.create(f.prototype);for(var i in f)v[i]=f[i];v.prototype.calculateDisplacement=function(){var r=this.graphManager.getLayout();this.getChild()!=null&&this.fixedNodeWeight?(this.displacementX+=r.coolingFactor*(this.springForceX+this.repulsionForceX+this.gravitationForceX)/this.fixedNodeWeight,this.displacementY+=r.coolingFactor*(this.springForceY+this.repulsionForceY+this.gravitationForceY)/this.fixedNodeWeight):(this.displacementX+=r.coolingFactor*(this.springForceX+this.repulsionForceX+this.gravitationForceX)/this.noOfChildren,this.displacementY+=r.coolingFactor*(this.springForceY+this.repulsionForceY+this.gravitationForceY)/this.noOfChildren),Math.abs(this.displacementX)>r.coolingFactor*r.maxNodeDisplacement&&(this.displacementX=r.coolingFactor*r.maxNodeDisplacement*e.sign(this.displacementX)),Math.abs(this.displacementY)>r.coolingFactor*r.maxNodeDisplacement&&(this.displacementY=r.coolingFactor*r.maxNodeDisplacement*e.sign(this.displacementY)),this.child&&this.child.getNodes().length>0&&this.propogateDisplacementToChildren(this.displacementX,this.displacementY)},v.prototype.propogateDisplacementToChildren=function(r,h){for(var c=this.getChild().getNodes(),l,N=0;N{function f(c){if(Array.isArray(c)){for(var l=0,N=Array(c.length);l0){var dt=0;it.forEach(function(ft){W=="horizontal"?(q.set(ft,p.has(ft)?y[p.get(ft)]:$.get(ft)),dt+=q.get(ft)):(q.set(ft,p.has(ft)?C[p.get(ft)]:$.get(ft)),dt+=q.get(ft))}),dt=dt/it.length,st.forEach(function(ft){B.has(ft)||q.set(ft,dt)})}else{var nt=0;st.forEach(function(ft){W=="horizontal"?nt+=p.has(ft)?y[p.get(ft)]:$.get(ft):nt+=p.has(ft)?C[p.get(ft)]:$.get(ft)}),nt=nt/st.length,st.forEach(function(ft){q.set(ft,nt)})}});for(var rt=function(){var it=ut.shift(),dt=H.get(it);dt.forEach(function(nt){if(q.get(nt.id)ft&&(ft=Wt),$tbt&&(bt=$t)}}catch(ee){Bt=!0,xt=ee}finally{try{!It&&Lt.return&&Lt.return()}finally{if(Bt)throw xt}}var de=(dt+ft)/2-(nt+bt)/2,Qt=!0,jt=!1,_t=void 0;try{for(var Kt=st[Symbol.iterator](),le;!(Qt=(le=Kt.next()).done);Qt=!0){var te=le.value;q.set(te,q.get(te)+de)}}catch(ee){jt=!0,_t=ee}finally{try{!Qt&&Kt.return&&Kt.return()}finally{if(jt)throw _t}}})}return q},k=function(H){var W=0,B=0,$=0,K=0;if(H.forEach(function(lt){lt.left?y[p.get(lt.left)]-y[p.get(lt.right)]>=0?W++:B++:C[p.get(lt.top)]-C[p.get(lt.bottom)]>=0?$++:K++}),W>B&&$>K)for(var gt=0;gtB)for(var ct=0;ctK)for(var q=0;q1)l.fixedNodeConstraint.forEach(function(G,H){T[H]=[G.position.x,G.position.y],d[H]=[y[p.get(G.nodeId)],C[p.get(G.nodeId)]]}),D=!0;else if(l.alignmentConstraint)(function(){var G=0;if(l.alignmentConstraint.vertical){for(var H=l.alignmentConstraint.vertical,W=function(q){var lt=new Set;H[q].forEach(function(vt){lt.add(vt)});var ut=new Set([].concat(f(lt)).filter(function(vt){return b.has(vt)})),rt=void 0;ut.size>0?rt=y[p.get(ut.values().next().value)]:rt=et(lt).x,H[q].forEach(function(vt){T[G]=[rt,C[p.get(vt)]],d[G]=[y[p.get(vt)],C[p.get(vt)]],G++})},B=0;B0?rt=y[p.get(ut.values().next().value)]:rt=et(lt).y,$[q].forEach(function(vt){T[G]=[y[p.get(vt)],rt],d[G]=[y[p.get(vt)],C[p.get(vt)]],G++})},gt=0;gt<$.length;gt++)K(gt);D=!0}l.relativePlacementConstraint&&(O=!0)})();else if(l.relativePlacementConstraint){for(var _=0,S=0,j=0;j_&&(_=Z[j].length,S=j);if(_0){var Mt={x:0,y:0};l.fixedNodeConstraint.forEach(function(G,H){var W={x:y[p.get(G.nodeId)],y:C[p.get(G.nodeId)]},B=G.position,$=Y(B,W);Mt.x+=$.x,Mt.y+=$.y}),Mt.x/=l.fixedNodeConstraint.length,Mt.y/=l.fixedNodeConstraint.length,y.forEach(function(G,H){y[H]+=Mt.x}),C.forEach(function(G,H){C[H]+=Mt.y}),l.fixedNodeConstraint.forEach(function(G){y[p.get(G.nodeId)]=G.position.x,C[p.get(G.nodeId)]=G.position.y})}if(l.alignmentConstraint){if(l.alignmentConstraint.vertical)for(var Tt=l.alignmentConstraint.vertical,Nt=function(H){var W=new Set;Tt[H].forEach(function(K){W.add(K)});var B=new Set([].concat(f(W)).filter(function(K){return b.has(K)})),$=void 0;B.size>0?$=y[p.get(B.values().next().value)]:$=et(W).x,W.forEach(function(K){b.has(K)||(y[p.get(K)]=$)})},Dt=0;Dt0?$=C[p.get(B.values().next().value)]:$=et(W).y,W.forEach(function(K){b.has(K)||(C[p.get(K)]=$)})},Gt=0;Gt{n.exports=m}},L={};function u(n){var t=L[n];if(t!==void 0)return t.exports;var a=L[n]={exports:{}};return w[n](a,a.exports,u),a.exports}var o=u(45);return o})()})});var Je=me((se,we)=>{(function(w,L){typeof se=="object"&&typeof we=="object"?we.exports=L(Ae()):typeof define=="function"&&define.amd?define(["cose-base"],L):typeof se=="object"?se.cytoscapeFcose=L(Ae()):w.cytoscapeFcose=L(w.coseBase)})(se,function(m){return(()=>{"use strict";var w={658:n=>{n.exports=Object.assign!=null?Object.assign.bind(Object):function(t){for(var a=arguments.length,f=Array(a>1?a-1:0),e=1;e{var f=function(){function i(r,h){var c=[],l=!0,N=!1,p=void 0;try{for(var y=r[Symbol.iterator](),C;!(l=(C=y.next()).done)&&(c.push(C.value),!(h&&c.length===h));l=!0);}catch(F){N=!0,p=F}finally{try{!l&&y.return&&y.return()}finally{if(N)throw p}}return c}return function(r,h){if(Array.isArray(r))return r;if(Symbol.iterator in Object(r))return i(r,h);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),e=a(140).layoutBase.LinkedList,v={};v.getTopMostNodes=function(i){for(var r={},h=0;h0&&D.merge(x)});for(var O=0;O1){C=p[0],F=C.connectedEdges().length,p.forEach(function(d){d.connectedEdges().length0&&c.set("dummy"+(c.size+1),V),Y},v.relocateComponent=function(i,r,h){if(!h.fixedNodeConstraint){var c=Number.POSITIVE_INFINITY,l=Number.NEGATIVE_INFINITY,N=Number.POSITIVE_INFINITY,p=Number.NEGATIVE_INFINITY;if(h.quality=="draft"){var y=!0,C=!1,F=void 0;try{for(var M=r.nodeIndexes[Symbol.iterator](),P;!(y=(P=M.next()).done);y=!0){var V=P.value,Y=f(V,2),et=Y[0],I=Y[1],k=h.cy.getElementById(et);if(k){var s=k.boundingBox(),E=r.xCoords[I]-s.w/2,g=r.xCoords[I]+s.w/2,T=r.yCoords[I]-s.h/2,d=r.yCoords[I]+s.h/2;El&&(l=g),Tp&&(p=d)}}}catch(x){C=!0,F=x}finally{try{!y&&M.return&&M.return()}finally{if(C)throw F}}var D=i.x-(l+c)/2,O=i.y-(p+N)/2;r.xCoords=r.xCoords.map(function(x){return x+D}),r.yCoords=r.yCoords.map(function(x){return x+O})}else{Object.keys(r).forEach(function(x){var Z=r[x],_=Z.getRect().x,S=Z.getRect().x+Z.getRect().width,j=Z.getRect().y,z=Z.getRect().y+Z.getRect().height;_l&&(l=S),jp&&(p=z)});var b=i.x-(l+c)/2,R=i.y-(p+N)/2;Object.keys(r).forEach(function(x){var Z=r[x];Z.setCenter(Z.getCenterX()+b,Z.getCenterY()+R)})}}},v.calcBoundingBox=function(i,r,h,c){for(var l=Number.MAX_SAFE_INTEGER,N=Number.MIN_SAFE_INTEGER,p=Number.MAX_SAFE_INTEGER,y=Number.MIN_SAFE_INTEGER,C=void 0,F=void 0,M=void 0,P=void 0,V=i.descendants().not(":parent"),Y=V.length,et=0;etC&&(l=C),NM&&(p=M),y{var f=a(548),e=a(140).CoSELayout,v=a(140).CoSENode,i=a(140).layoutBase.PointD,r=a(140).layoutBase.DimensionD,h=a(140).layoutBase.LayoutConstants,c=a(140).layoutBase.FDLayoutConstants,l=a(140).CoSEConstants,N=function(y,C){var F=y.cy,M=y.eles,P=M.nodes(),V=M.edges(),Y=void 0,et=void 0,I=void 0,k={};y.randomize&&(Y=C.nodeIndexes,et=C.xCoords,I=C.yCoords);var s=function(x){return typeof x=="function"},E=function(x,Z){return s(x)?x(Z):x},g=f.calcParentsWithoutChildren(F,M),T=function R(x,Z,_,S){for(var j=Z.length,z=0;z0){var Ct=void 0;Ct=_.getGraphManager().add(_.newGraph(),X),R(Ct,U,_,S)}}},d=function(x,Z,_){for(var S=0,j=0,z=0;z<_.length;z++){var A=_[z],U=k[A.data("source")],X=k[A.data("target")];if(U&&X&&U!==X&&U.getEdgesBetween(X).length==0){var Q=Z.add(x.newEdge(),U,X);Q.id=A.id(),Q.idealLength=E(y.idealEdgeLength,A),Q.edgeElasticity=E(y.edgeElasticity,A),S+=Q.idealLength,j++}}y.idealEdgeLength!=null&&(j>0?l.DEFAULT_EDGE_LENGTH=c.DEFAULT_EDGE_LENGTH=S/j:s(y.idealEdgeLength)?l.DEFAULT_EDGE_LENGTH=c.DEFAULT_EDGE_LENGTH=50:l.DEFAULT_EDGE_LENGTH=c.DEFAULT_EDGE_LENGTH=y.idealEdgeLength,l.MIN_REPULSION_DIST=c.MIN_REPULSION_DIST=c.DEFAULT_EDGE_LENGTH/10,l.DEFAULT_RADIAL_SEPARATION=c.DEFAULT_EDGE_LENGTH)},D=function(x,Z){Z.fixedNodeConstraint&&(x.constraints.fixedNodeConstraint=Z.fixedNodeConstraint),Z.alignmentConstraint&&(x.constraints.alignmentConstraint=Z.alignmentConstraint),Z.relativePlacementConstraint&&(x.constraints.relativePlacementConstraint=Z.relativePlacementConstraint)};y.nestingFactor!=null&&(l.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR=c.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR=y.nestingFactor),y.gravity!=null&&(l.DEFAULT_GRAVITY_STRENGTH=c.DEFAULT_GRAVITY_STRENGTH=y.gravity),y.numIter!=null&&(l.MAX_ITERATIONS=c.MAX_ITERATIONS=y.numIter),y.gravityRange!=null&&(l.DEFAULT_GRAVITY_RANGE_FACTOR=c.DEFAULT_GRAVITY_RANGE_FACTOR=y.gravityRange),y.gravityCompound!=null&&(l.DEFAULT_COMPOUND_GRAVITY_STRENGTH=c.DEFAULT_COMPOUND_GRAVITY_STRENGTH=y.gravityCompound),y.gravityRangeCompound!=null&&(l.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR=c.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR=y.gravityRangeCompound),y.initialEnergyOnIncremental!=null&&(l.DEFAULT_COOLING_FACTOR_INCREMENTAL=c.DEFAULT_COOLING_FACTOR_INCREMENTAL=y.initialEnergyOnIncremental),y.tilingCompareBy!=null&&(l.TILING_COMPARE_BY=y.tilingCompareBy),y.quality=="proof"?h.QUALITY=2:h.QUALITY=0,l.NODE_DIMENSIONS_INCLUDE_LABELS=c.NODE_DIMENSIONS_INCLUDE_LABELS=h.NODE_DIMENSIONS_INCLUDE_LABELS=y.nodeDimensionsIncludeLabels,l.DEFAULT_INCREMENTAL=c.DEFAULT_INCREMENTAL=h.DEFAULT_INCREMENTAL=!y.randomize,l.ANIMATE=c.ANIMATE=h.ANIMATE=y.animate,l.TILE=y.tile,l.TILING_PADDING_VERTICAL=typeof y.tilingPaddingVertical=="function"?y.tilingPaddingVertical.call():y.tilingPaddingVertical,l.TILING_PADDING_HORIZONTAL=typeof y.tilingPaddingHorizontal=="function"?y.tilingPaddingHorizontal.call():y.tilingPaddingHorizontal,l.DEFAULT_INCREMENTAL=c.DEFAULT_INCREMENTAL=h.DEFAULT_INCREMENTAL=!0,l.PURE_INCREMENTAL=!y.randomize,h.DEFAULT_UNIFORM_LEAF_NODE_SIZES=y.uniformNodeDimensions,y.step=="transformed"&&(l.TRANSFORM_ON_CONSTRAINT_HANDLING=!0,l.ENFORCE_CONSTRAINTS=!1,l.APPLY_LAYOUT=!1),y.step=="enforced"&&(l.TRANSFORM_ON_CONSTRAINT_HANDLING=!1,l.ENFORCE_CONSTRAINTS=!0,l.APPLY_LAYOUT=!1),y.step=="cose"&&(l.TRANSFORM_ON_CONSTRAINT_HANDLING=!1,l.ENFORCE_CONSTRAINTS=!1,l.APPLY_LAYOUT=!0),y.step=="all"&&(y.randomize?l.TRANSFORM_ON_CONSTRAINT_HANDLING=!0:l.TRANSFORM_ON_CONSTRAINT_HANDLING=!1,l.ENFORCE_CONSTRAINTS=!0,l.APPLY_LAYOUT=!0),y.fixedNodeConstraint||y.alignmentConstraint||y.relativePlacementConstraint?l.TREE_REDUCTION_ON_INCREMENTAL=!1:l.TREE_REDUCTION_ON_INCREMENTAL=!0;var O=new e,b=O.newGraphManager();return T(b.addRoot(),f.getTopMostNodes(P),O,y),d(O,b,V),D(O,y),O.runLayout(),k};n.exports={coseLayout:N}},212:(n,t,a)=>{var f=function(){function y(C,F){for(var M=0;M0)if(d){var b=i.getTopMostNodes(M.eles.nodes());if(s=i.connectComponents(P,M.eles,b),s.forEach(function(ot){var tt=ot.boundingBox();E.push({x:tt.x1+tt.w/2,y:tt.y1+tt.h/2})}),M.randomize&&s.forEach(function(ot){M.eles=ot,Y.push(h(M))}),M.quality=="default"||M.quality=="proof"){var R=P.collection();if(M.tile){var x=new Map,Z=[],_=[],S=0,j={nodeIndexes:x,xCoords:Z,yCoords:_},z=[];if(s.forEach(function(ot,tt){ot.edges().length==0&&(ot.nodes().forEach(function(yt,mt){R.merge(ot.nodes()[mt]),yt.isParent()||(j.nodeIndexes.set(ot.nodes()[mt].id(),S++),j.xCoords.push(ot.nodes()[0].position().x),j.yCoords.push(ot.nodes()[0].position().y))}),z.push(tt))}),R.length>1){var A=R.boundingBox();E.push({x:A.x1+A.w/2,y:A.y1+A.h/2}),s.push(R),Y.push(j);for(var U=z.length-1;U>=0;U--)s.splice(z[U],1),Y.splice(z[U],1),E.splice(z[U],1)}}s.forEach(function(ot,tt){M.eles=ot,k.push(l(M,Y[tt])),i.relocateComponent(E[tt],k[tt],M)})}else s.forEach(function(ot,tt){i.relocateComponent(E[tt],Y[tt],M)});var X=new Set;if(s.length>1){var Q=[],ht=V.filter(function(ot){return ot.css("display")=="none"});s.forEach(function(ot,tt){var yt=void 0;if(M.quality=="draft"&&(yt=Y[tt].nodeIndexes),ot.nodes().not(ht).length>0){var mt={};mt.edges=[],mt.nodes=[];var Mt=void 0;ot.nodes().not(ht).forEach(function(Tt){if(M.quality=="draft")if(!Tt.isParent())Mt=yt.get(Tt.id()),mt.nodes.push({x:Y[tt].xCoords[Mt]-Tt.boundingbox().w/2,y:Y[tt].yCoords[Mt]-Tt.boundingbox().h/2,width:Tt.boundingbox().w,height:Tt.boundingbox().h});else{var Nt=i.calcBoundingBox(Tt,Y[tt].xCoords,Y[tt].yCoords,yt);mt.nodes.push({x:Nt.topLeftX,y:Nt.topLeftY,width:Nt.width,height:Nt.height})}else k[tt][Tt.id()]&&mt.nodes.push({x:k[tt][Tt.id()].getLeft(),y:k[tt][Tt.id()].getTop(),width:k[tt][Tt.id()].getWidth(),height:k[tt][Tt.id()].getHeight()})}),ot.edges().forEach(function(Tt){var Nt=Tt.source(),Dt=Tt.target();if(Nt.css("display")!="none"&&Dt.css("display")!="none")if(M.quality=="draft"){var Rt=yt.get(Nt.id()),zt=yt.get(Dt.id()),Gt=[],Ht=[];if(Nt.isParent()){var Pt=i.calcBoundingBox(Nt,Y[tt].xCoords,Y[tt].yCoords,yt);Gt.push(Pt.topLeftX+Pt.width/2),Gt.push(Pt.topLeftY+Pt.height/2)}else Gt.push(Y[tt].xCoords[Rt]),Gt.push(Y[tt].yCoords[Rt]);if(Dt.isParent()){var G=i.calcBoundingBox(Dt,Y[tt].xCoords,Y[tt].yCoords,yt);Ht.push(G.topLeftX+G.width/2),Ht.push(G.topLeftY+G.height/2)}else Ht.push(Y[tt].xCoords[zt]),Ht.push(Y[tt].yCoords[zt]);mt.edges.push({startX:Gt[0],startY:Gt[1],endX:Ht[0],endY:Ht[1]})}else k[tt][Nt.id()]&&k[tt][Dt.id()]&&mt.edges.push({startX:k[tt][Nt.id()].getCenterX(),startY:k[tt][Nt.id()].getCenterY(),endX:k[tt][Dt.id()].getCenterX(),endY:k[tt][Dt.id()].getCenterY()})}),mt.nodes.length>0&&(Q.push(mt),X.add(tt))}});var Ct=T.packComponents(Q,M.randomize).shifts;if(M.quality=="draft")Y.forEach(function(ot,tt){var yt=ot.xCoords.map(function(Mt){return Mt+Ct[tt].dx}),mt=ot.yCoords.map(function(Mt){return Mt+Ct[tt].dy});ot.xCoords=yt,ot.yCoords=mt});else{var Ft=0;X.forEach(function(ot){Object.keys(k[ot]).forEach(function(tt){var yt=k[ot][tt];yt.setCenter(yt.getCenterX()+Ct[Ft].dx,yt.getCenterY()+Ct[Ft].dy)}),Ft++})}}}else{var D=M.eles.boundingBox();if(E.push({x:D.x1+D.w/2,y:D.y1+D.h/2}),M.randomize){var O=h(M);Y.push(O)}M.quality=="default"||M.quality=="proof"?(k.push(l(M,Y[0])),i.relocateComponent(E[0],k[0],M)):i.relocateComponent(E[0],Y[0],M)}var J=function(tt,yt){if(M.quality=="default"||M.quality=="proof"){typeof tt=="number"&&(tt=yt);var mt=void 0,Mt=void 0,Tt=tt.data("id");return k.forEach(function(Dt){Tt in Dt&&(mt={x:Dt[Tt].getRect().getCenterX(),y:Dt[Tt].getRect().getCenterY()},Mt=Dt[Tt])}),M.nodeDimensionsIncludeLabels&&(Mt.labelWidth&&(Mt.labelPosHorizontal=="left"?mt.x+=Mt.labelWidth/2:Mt.labelPosHorizontal=="right"&&(mt.x-=Mt.labelWidth/2)),Mt.labelHeight&&(Mt.labelPosVertical=="top"?mt.y+=Mt.labelHeight/2:Mt.labelPosVertical=="bottom"&&(mt.y-=Mt.labelHeight/2))),mt==null&&(mt={x:tt.position("x"),y:tt.position("y")}),{x:mt.x,y:mt.y}}else{var Nt=void 0;return Y.forEach(function(Dt){var Rt=Dt.nodeIndexes.get(tt.id());Rt!=null&&(Nt={x:Dt.xCoords[Rt],y:Dt.yCoords[Rt]})}),Nt==null&&(Nt={x:tt.position("x"),y:tt.position("y")}),{x:Nt.x,y:Nt.y}}};if(M.quality=="default"||M.quality=="proof"||M.randomize){var Xt=i.calcParentsWithoutChildren(P,V),Ot=V.filter(function(ot){return ot.css("display")=="none"});M.eles=V.not(Ot),V.nodes().not(":parent").not(Ot).layoutPositions(F,M,J),Xt.length>0&&Xt.forEach(function(ot){ot.position(J(ot))})}else console.log("If randomize option is set to false, then quality option must be 'default' or 'proof'.")}}]),y}();n.exports=p},657:(n,t,a)=>{var f=a(548),e=a(140).layoutBase.Matrix,v=a(140).layoutBase.SVD,i=function(h){var c=h.cy,l=h.eles,N=l.nodes(),p=l.nodes(":parent"),y=new Map,C=new Map,F=new Map,M=[],P=[],V=[],Y=[],et=[],I=[],k=[],s=[],E=void 0,g=void 0,T=1e8,d=1e-9,D=h.piTol,O=h.samplingType,b=h.nodeSeparation,R=void 0,x=function(){for(var W=0,B=0,$=!1;B=gt;){q=K[gt++];for(var st=M[q],it=0;itrt&&(rt=et[nt],vt=nt)}return vt},_=function(W){var B=void 0;if(W){B=Math.floor(Math.random()*g),E=B;for(var K=0;K=1)break;rt=ut}for(var st=0;st=1)break;rt=ut}for(var dt=0;dt0&&(B.isParent()?M[W].push(F.get(B.id())):M[W].push(B.id()))})});var Xt=function(W){var B=C.get(W),$=void 0;y.get(W).forEach(function(K){c.getElementById(K).isParent()?$=F.get(K):$=K,M[B].push($),M[C.get($)].push(W)})},Ot=!0,ot=!1,tt=void 0;try{for(var yt=y.keys()[Symbol.iterator](),mt;!(Ot=(mt=yt.next()).done);Ot=!0){var Mt=mt.value;Xt(Mt)}}catch(H){ot=!0,tt=H}finally{try{!Ot&&yt.return&&yt.return()}finally{if(ot)throw tt}}g=C.size;var Tt=void 0;if(g>2){R=g{var f=a(212),e=function(i){i&&i("layout","fcose",f)};typeof cytoscape<"u"&&e(cytoscape),n.exports=e},140:n=>{n.exports=m}},L={};function u(n){var t=L[n];if(t!==void 0)return t.exports;var a=L[n]={exports:{}};return w[n](a,a.exports,u),a.exports}var o=u(579);return o})()})});var rr=ur(Je(),1);var Qe={L:"left",R:"right",T:"top",B:"bottom"},Ke={L:at(m=>`${m},${m/2} 0,${m} 0,0`,"L"),R:at(m=>`0,${m/2} ${m},0 ${m},${m}`,"R"),T:at(m=>`0,0 ${m},0 ${m/2},${m}`,"T"),B:at(m=>`${m/2},0 ${m},${m} 0,${m}`,"B")},ue={L:at((m,w)=>m-w+2,"L"),R:at((m,w)=>m-2,"R"),T:at((m,w)=>m-w+2,"T"),B:at((m,w)=>m-2,"B")},gr=at(function(m){return Vt(m)?m==="L"?"R":"L":m==="T"?"B":"T"},"getOppositeArchitectureDirection"),je=at(function(m){let w=m;return w==="L"||w==="R"||w==="T"||w==="B"},"isArchitectureDirection"),Vt=at(function(m){let w=m;return w==="L"||w==="R"},"isArchitectureDirectionX"),Jt=at(function(m){let w=m;return w==="T"||w==="B"},"isArchitectureDirectionY"),_e=at(function(m,w){let L=Vt(m)&&Jt(w),u=Jt(m)&&Vt(w);return L||u},"isArchitectureDirectionXY"),dr=at(function(m){let w=m[0],L=m[1],u=Vt(w)&&Jt(L),o=Jt(w)&&Vt(L);return u||o},"isArchitecturePairXY"),vr=at(function(m){return m!=="LL"&&m!=="RR"&&m!=="TT"&&m!=="BB"},"isValidArchitectureDirectionPair"),Oe=at(function(m,w){let L=`${m}${w}`;return vr(L)?L:void 0},"getArchitectureDirectionPair"),pr=at(function([m,w],L){let u=L[0],o=L[1];return Vt(u)?Jt(o)?[m+(u==="L"?-1:1),w+(o==="T"?1:-1)]:[m+(u==="L"?-1:1),w]:Vt(o)?[m+(o==="L"?1:-1),w+(u==="T"?1:-1)]:[m,w+(u==="T"?1:-1)]},"shiftPositionByArchitectureDirectionPair"),yr=at(function(m){return m==="LT"||m==="TL"?[1,1]:m==="BL"||m==="LB"?[1,-1]:m==="BR"||m==="RB"?[-1,-1]:[-1,1]},"getArchitectureDirectionXYFactors"),Er=at(function(m){return m.type==="service"},"isArchitectureService"),mr=at(function(m){return m.type==="junction"},"isArchitectureJunction"),tr=at(m=>m.data(),"edgeData"),ie=at(m=>m.data(),"nodeData"),er=Fe.architecture,pt=new ke(()=>({nodes:{},groups:{},edges:[],registeredIds:{},config:er,dataStructures:void 0,elements:{}})),Tr=at(()=>{pt.reset(),Pe()},"clear"),Nr=at(function({id:m,icon:w,in:L,title:u,iconText:o}){if(pt.records.registeredIds[m]!==void 0)throw new Error(`The service id [${m}] is already in use by another ${pt.records.registeredIds[m]}`);if(L!==void 0){if(m===L)throw new Error(`The service [${m}] cannot be placed within itself`);if(pt.records.registeredIds[L]===void 0)throw new Error(`The service [${m}]'s parent does not exist. Please make sure the parent is created before this service`);if(pt.records.registeredIds[L]==="node")throw new Error(`The service [${m}]'s parent is not a group`)}pt.records.registeredIds[m]="node",pt.records.nodes[m]={id:m,type:"service",icon:w,iconText:o,title:u,edges:[],in:L}},"addService"),Lr=at(()=>Object.values(pt.records.nodes).filter(Er),"getServices"),Cr=at(function({id:m,in:w}){pt.records.registeredIds[m]="node",pt.records.nodes[m]={id:m,type:"junction",edges:[],in:w}},"addJunction"),Mr=at(()=>Object.values(pt.records.nodes).filter(mr),"getJunctions"),Ar=at(()=>Object.values(pt.records.nodes),"getNodes"),wr=at(m=>pt.records.nodes[m],"getNode"),Or=at(function({id:m,icon:w,in:L,title:u}){if(pt.records.registeredIds[m]!==void 0)throw new Error(`The group id [${m}] is already in use by another ${pt.records.registeredIds[m]}`);if(L!==void 0){if(m===L)throw new Error(`The group [${m}] cannot be placed within itself`);if(pt.records.registeredIds[L]===void 0)throw new Error(`The group [${m}]'s parent does not exist. Please make sure the parent is created before this group`);if(pt.records.registeredIds[L]==="node")throw new Error(`The group [${m}]'s parent is not a group`)}pt.records.registeredIds[m]="group",pt.records.groups[m]={id:m,icon:w,title:u,in:L}},"addGroup"),Dr=at(()=>Object.values(pt.records.groups),"getGroups"),xr=at(function({lhsId:m,rhsId:w,lhsDir:L,rhsDir:u,lhsInto:o,rhsInto:n,lhsGroup:t,rhsGroup:a,title:f}){if(!je(L))throw new Error(`Invalid direction given for left hand side of edge ${m}--${w}. Expected (L,R,T,B) got ${L}`);if(!je(u))throw new Error(`Invalid direction given for right hand side of edge ${m}--${w}. Expected (L,R,T,B) got ${u}`);if(pt.records.nodes[m]===void 0&&pt.records.groups[m]===void 0)throw new Error(`The left-hand id [${m}] does not yet exist. Please create the service/group before declaring an edge to it.`);if(pt.records.nodes[w]===void 0&&pt.records.groups[m]===void 0)throw new Error(`The right-hand id [${w}] does not yet exist. Please create the service/group before declaring an edge to it.`);let e=pt.records.nodes[m].in,v=pt.records.nodes[w].in;if(t&&e&&v&&e==v)throw new Error(`The left-hand id [${m}] is modified to traverse the group boundary, but the edge does not pass through two groups.`);if(a&&e&&v&&e==v)throw new Error(`The right-hand id [${w}] is modified to traverse the group boundary, but the edge does not pass through two groups.`);let i={lhsId:m,lhsDir:L,lhsInto:o,lhsGroup:t,rhsId:w,rhsDir:u,rhsInto:n,rhsGroup:a,title:f};pt.records.edges.push(i),pt.records.nodes[m]&&pt.records.nodes[w]&&(pt.records.nodes[m].edges.push(pt.records.edges[pt.records.edges.length-1]),pt.records.nodes[w].edges.push(pt.records.edges[pt.records.edges.length-1]))},"addEdge"),Ir=at(()=>pt.records.edges,"getEdges"),Rr=at(()=>{if(pt.records.dataStructures===void 0){let m=Object.entries(pt.records.nodes).reduce((t,[a,f])=>(t[a]=f.edges.reduce((e,v)=>{if(v.lhsId===a){let i=Oe(v.lhsDir,v.rhsDir);i&&(e[i]=v.rhsId)}else{let i=Oe(v.rhsDir,v.lhsDir);i&&(e[i]=v.lhsId)}return e},{}),t),{}),w=Object.keys(m)[0],L={[w]:1},u=Object.keys(m).reduce((t,a)=>a===w?t:{...t,[a]:1},{}),o=at(t=>{let a={[t]:[0,0]},f=[t];for(;f.length>0;){let e=f.shift();if(e){L[e]=1,delete u[e];let v=m[e],[i,r]=a[e];Object.entries(v).forEach(([h,c])=>{L[c]||(a[c]=pr([i,r],h),f.push(c))})}}return a},"BFS"),n=[o(w)];for(;Object.keys(u).length>0;)n.push(o(Object.keys(u)[0]));pt.records.dataStructures={adjList:m,spatialMaps:n}}return pt.records.dataStructures},"getDataStructures"),Sr=at((m,w)=>{pt.records.elements[m]=w},"setElementForId"),Fr=at(m=>pt.records.elements[m],"getElementById"),ge={clear:Tr,setDiagramTitle:He,getDiagramTitle:We,setAccTitle:Ge,getAccTitle:Ue,setAccDescription:Ye,getAccDescription:Xe,addService:Nr,getServices:Lr,addJunction:Cr,getJunctions:Mr,getNodes:Ar,getNode:wr,addGroup:Or,getGroups:Dr,addEdge:xr,getEdges:Ir,setElementForId:Sr,getElementById:Fr,getDataStructures:Rr};function Ut(m){let w=ae().architecture;return w?.[m]?w[m]:er[m]}at(Ut,"getConfigField");var br=at((m,w)=>{Ze(m,w),m.groups.map(w.addGroup),m.services.map(L=>w.addService({...L,type:"service"})),m.junctions.map(L=>w.addJunction({...L,type:"junction"})),m.edges.map(w.addEdge)},"populateDb"),Pr={parse:at(async m=>{let w=await qe("architecture",m);Te.debug(w),br(w,ge)},"parse")},Gr=at(m=>` + .edge { + stroke-width: ${m.archEdgeWidth}; + stroke: ${m.archEdgeColor}; + fill: none; + } + + .arrow { + fill: ${m.archEdgeArrowColor}; + } + + .node-bkg { + fill: none; + stroke: ${m.archGroupBorderColor}; + stroke-width: ${m.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"),Ur=Gr,re=at(m=>`${m}`,"wrapIcon"),he={prefix:"mermaid-architecture",height:80,width:80,icons:{database:{body:re('')},server:{body:re('')},disk:{body:re('')},internet:{body:re('')},cloud:{body:re('')},unknown:Ve,blank:{body:re("")}}},Yr=at(async function(m,w){let L=Ut("padding"),u=Ut("iconSize"),o=u/2,n=u/6,t=n/2;await Promise.all(w.edges().map(async a=>{let{source:f,sourceDir:e,sourceArrow:v,sourceGroup:i,target:r,targetDir:h,targetArrow:c,targetGroup:l,label:N}=tr(a),{x:p,y}=a[0].sourceEndpoint(),{x:C,y:F}=a[0].midpoint(),{x:M,y:P}=a[0].targetEndpoint(),V=L+4;if(i&&(Vt(e)?p+=e==="L"?-V:V:y+=e==="T"?-V:V+18),l&&(Vt(h)?M+=h==="L"?-V:V:P+=h==="T"?-V:V+18),!i&&ge.getNode(f)?.type==="junction"&&(Vt(e)?p+=e==="L"?o:-o:y+=e==="T"?o:-o),!l&&ge.getNode(r)?.type==="junction"&&(Vt(h)?M+=h==="L"?o:-o:P+=h==="T"?o:-o),a[0]._private.rscratch){let Y=m.insert("g");if(Y.insert("path").attr("d",`M ${p},${y} L ${C},${F} L${M},${P} `).attr("class","edge"),v){let et=Vt(e)?ue[e](p,n):p-t,I=Jt(e)?ue[e](y,n):y-t;Y.insert("polygon").attr("points",Ke[e](n)).attr("transform",`translate(${et},${I})`).attr("class","arrow")}if(c){let et=Vt(h)?ue[h](M,n):M-t,I=Jt(h)?ue[h](P,n):P-t;Y.insert("polygon").attr("points",Ke[h](n)).attr("transform",`translate(${et},${I})`).attr("class","arrow")}if(N){let et=_e(e,h)?"XY":Vt(e)?"X":"Y",I=0;et==="X"?I=Math.abs(p-M):et==="Y"?I=Math.abs(y-P)/1.5:I=Math.abs(p-M)/2;let k=Y.append("g");if(await ce(k,N,{useHtmlLabels:!1,width:I,classes:"architecture-service-label"},ae()),k.attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle"),et==="X")k.attr("transform","translate("+C+", "+F+")");else if(et==="Y")k.attr("transform","translate("+C+", "+F+") rotate(-90)");else if(et==="XY"){let s=Oe(e,h);if(s&&dr(s)){let E=k.node().getBoundingClientRect(),[g,T]=yr(s);k.attr("dominant-baseline","auto").attr("transform",`rotate(${-1*g*T*45})`);let d=k.node().getBoundingClientRect();k.attr("transform",` + translate(${C}, ${F-E.height/2}) + translate(${g*d.width/2}, ${T*d.height/2}) + rotate(${-1*g*T*45}, 0, ${E.height/2}) + `)}}}}}))},"drawEdges"),Xr=at(async function(m,w){let u=Ut("padding")*.75,o=Ut("fontSize"),t=Ut("iconSize")/2;await Promise.all(w.nodes().map(async a=>{let f=ie(a);if(f.type==="group"){let{h:e,w:v,x1:i,y1:r}=a.boundingBox();m.append("rect").attr("x",i+t).attr("y",r+t).attr("width",v).attr("height",e).attr("class","node-bkg");let h=m.append("g"),c=i,l=r;if(f.icon){let N=h.append("g");N.html(`${await fe(f.icon,{height:u,width:u,fallbackPrefix:he.prefix})}`),N.attr("transform","translate("+(c+t+1)+", "+(l+t+1)+")"),c+=u,l+=o/2-1-2}if(f.label){let N=h.append("g");await ce(N,f.label,{useHtmlLabels:!1,width:v,classes:"architecture-service-label"},ae()),N.attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","start").attr("text-anchor","start"),N.attr("transform","translate("+(c+t+4)+", "+(l+t+2)+")")}}}))},"drawGroups"),Hr=at(async function(m,w,L){for(let u of L){let o=w.append("g"),n=Ut("iconSize");if(u.title){let e=o.append("g");await ce(e,u.title,{useHtmlLabels:!1,width:n*1.5,classes:"architecture-service-label"},ae()),e.attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle"),e.attr("transform","translate("+n/2+", "+n+")")}let t=o.append("g");if(u.icon)t.html(`${await fe(u.icon,{height:n,width:n,fallbackPrefix:he.prefix})}`);else if(u.iconText){t.html(`${await fe("blank",{height:n,width:n,fallbackPrefix:he.prefix})}`);let i=t.append("g").append("foreignObject").attr("width",n).attr("height",n).append("div").attr("class","node-icon-text").attr("style",`height: ${n}px;`).append("div").html(u.iconText),r=parseInt(window.getComputedStyle(i.node(),null).getPropertyValue("font-size").replace(/\D/g,""))??16;i.attr("style",`-webkit-line-clamp: ${Math.floor((n-2)/r)};`)}else t.append("path").attr("class","node-bkg").attr("id","node-"+u.id).attr("d",`M0 ${n} v${-n} q0,-5 5,-5 h${n} q5,0 5,5 v${n} H0 Z`);o.attr("class","architecture-service");let{width:a,height:f}=o._groups[0][0].getBBox();u.width=a,u.height=f,m.setElementForId(u.id,o)}return 0},"drawServices"),Wr=at(function(m,w,L){L.forEach(u=>{let o=w.append("g"),n=Ut("iconSize");o.append("g").append("rect").attr("id","node-"+u.id).attr("fill-opacity","0").attr("width",n).attr("height",n),o.attr("class","architecture-junction");let{width:a,height:f}=o._groups[0][0].getBBox();o.width=a,o.height=f,m.setElementForId(u.id,o)})},"drawJunctions");ze([{name:he.prefix,icons:he}]);Ne.use(rr.default);function ir(m,w){m.forEach(L=>{w.add({group:"nodes",data:{type:"service",id:L.id,icon:L.icon,label:L.title,parent:L.in,width:Ut("iconSize"),height:Ut("iconSize")},classes:"node-service"})})}at(ir,"addServices");function ar(m,w){m.forEach(L=>{w.add({group:"nodes",data:{type:"junction",id:L.id,parent:L.in,width:Ut("iconSize"),height:Ut("iconSize")},classes:"node-junction"})})}at(ar,"addJunctions");function nr(m,w){w.nodes().map(L=>{let u=ie(L);if(u.type==="group")return;u.x=L.position().x,u.y=L.position().y,m.getElementById(u.id).attr("transform","translate("+(u.x||0)+","+(u.y||0)+")")})}at(nr,"positionNodes");function or(m,w){m.forEach(L=>{w.add({group:"nodes",data:{type:"group",id:L.id,icon:L.icon,label:L.title,parent:L.in},classes:"node-group"})})}at(or,"addGroups");function sr(m,w){m.forEach(L=>{let{lhsId:u,rhsId:o,lhsInto:n,lhsGroup:t,rhsInto:a,lhsDir:f,rhsDir:e,rhsGroup:v,title:i}=L,r=_e(L.lhsDir,L.rhsDir)?"segments":"straight",h={id:`${u}-${o}`,label:i,source:u,sourceDir:f,sourceArrow:n,sourceGroup:t,sourceEndpoint:f==="L"?"0 50%":f==="R"?"100% 50%":f==="T"?"50% 0":"50% 100%",target:o,targetDir:e,targetArrow:a,targetGroup:v,targetEndpoint:e==="L"?"0 50%":e==="R"?"100% 50%":e==="T"?"50% 0":"50% 100%"};w.add({group:"edges",data:h,classes:r})})}at(sr,"addEdges");function hr(m){let w=m.map(o=>{let n={},t={};return Object.entries(o).forEach(([a,[f,e]])=>{n[e]||(n[e]=[]),t[f]||(t[f]=[]),n[e].push(a),t[f].push(a)}),{horiz:Object.values(n).filter(a=>a.length>1),vert:Object.values(t).filter(a=>a.length>1)}}),[L,u]=w.reduce(([o,n],{horiz:t,vert:a})=>[[...o,...t],[...n,...a]],[[],[]]);return{horizontal:L,vertical:u}}at(hr,"getAlignments");function lr(m){let w=[],L=at(o=>`${o[0]},${o[1]}`,"posToStr"),u=at(o=>o.split(",").map(n=>parseInt(n)),"strToPos");return m.forEach(o=>{let n=Object.fromEntries(Object.entries(o).map(([e,v])=>[L(v),e])),t=[L([0,0])],a={},f={L:[-1,0],R:[1,0],T:[0,1],B:[0,-1]};for(;t.length>0;){let e=t.shift();if(e){a[e]=1;let v=n[e];if(v){let i=u(e);Object.entries(f).forEach(([r,h])=>{let c=L([i[0]+h[0],i[1]+h[1]]),l=n[c];l&&!a[c]&&(t.push(c),w.push({[Qe[r]]:l,[Qe[gr(r)]]:v,gap:1.5*Ut("iconSize")}))})}}}}),w}at(lr,"getRelativeConstraints");function fr(m,w,L,u,{spatialMaps:o}){return new Promise(n=>{let t=Be("body").append("div").attr("id","cy").attr("style","display:none"),a=Ne({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":`${Ut("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:`${Ut("padding")}px`}}]});t.remove(),or(L,a),ir(m,a),ar(w,a),sr(u,a);let f=hr(o),e=lr(o),v=a.layout({name:"fcose",quality:"proof",styleEnabled:!1,animate:!1,nodeDimensionsIncludeLabels:!1,idealEdgeLength(i){let[r,h]=i.connectedNodes(),{parent:c}=ie(r),{parent:l}=ie(h);return c===l?1.5*Ut("iconSize"):.5*Ut("iconSize")},edgeElasticity(i){let[r,h]=i.connectedNodes(),{parent:c}=ie(r),{parent:l}=ie(h);return c===l?.45:.001},alignmentConstraint:f,relativePlacementConstraint:e});v.one("layoutstop",()=>{function i(r,h,c,l){let N,p,{x:y,y:C}=r,{x:F,y:M}=h;p=(l-C+(y-c)*(C-M)/(y-F))/Math.sqrt(1+Math.pow((C-M)/(y-F),2)),N=Math.sqrt(Math.pow(l-C,2)+Math.pow(c-y,2)-Math.pow(p,2));let P=Math.sqrt(Math.pow(F-y,2)+Math.pow(M-C,2));N=N/P;let V=(F-y)*(l-C)-(M-C)*(c-y);switch(!0){case V>=0:V=1;break;case V<0:V=-1;break}let Y=(F-y)*(c-y)+(M-C)*(l-C);switch(!0){case Y>=0:Y=1;break;case Y<0:Y=-1;break}return p=Math.abs(p)*V,N=N*Y,{distances:p,weights:N}}at(i,"getSegmentWeights"),a.startBatch();for(let r of Object.values(a.edges()))if(r.data?.()){let{x:h,y:c}=r.source().position(),{x:l,y:N}=r.target().position();if(h!==l&&c!==N){let p=r.sourceEndpoint(),y=r.targetEndpoint(),{sourceDir:C}=tr(r),[F,M]=Jt(C)?[p.x,y.y]:[y.x,p.y],{weights:P,distances:V}=i(p,y,F,M);r.style("segment-distances",V),r.style("segment-weights",P)}}a.endBatch(),v.run()}),v.run(),a.ready(i=>{Te.info("Ready",i),n(a)})})}at(fr,"layoutArchitecture");var Vr=at(async(m,w,L,u)=>{let o=u.db,n=o.getServices(),t=o.getJunctions(),a=o.getGroups(),f=o.getEdges(),e=o.getDataStructures(),v=$e(w),i=v.append("g");i.attr("class","architecture-edges");let r=v.append("g");r.attr("class","architecture-services");let h=v.append("g");h.attr("class","architecture-groups"),await Hr(o,r,n),Wr(o,r,t);let c=await fr(n,t,a,f,e);await Yr(i,c),await Xr(h,c),nr(o,c),be(void 0,v,Ut("padding"),Ut("useMaxWidth"))},"draw"),zr={draw:Vr},ti={parser:Pr,db:ge,renderer:zr,styles:Ur};export{ti as diagram}; +//# sourceMappingURL=architectureDiagram-UYN6MBPD-WBU2OYNU.min.js.map diff --git a/docs/_site/public/architectureDiagram-UYN6MBPD-WBU2OYNU.min.js.map b/docs/_site/public/architectureDiagram-UYN6MBPD-WBU2OYNU.min.js.map new file mode 100644 index 0000000..67b6138 --- /dev/null +++ b/docs/_site/public/architectureDiagram-UYN6MBPD-WBU2OYNU.min.js.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": ["../../node_modules/cytoscape-fcose/node_modules/layout-base/layout-base.js", "../../node_modules/cytoscape-fcose/node_modules/cose-base/cose-base.js", "../../node_modules/cytoscape-fcose/cytoscape-fcose.js", "../../node_modules/mermaid/dist/chunks/mermaid.core/architectureDiagram-UYN6MBPD.mjs"], + "sourcesContent": ["(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[\"layoutBase\"] = factory();\n\telse\n\t\troot[\"layoutBase\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// identity function for calling harmony imports with the correct context\n/******/ \t__webpack_require__.i = function(value) { return value; };\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 28);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nfunction LayoutConstants() {}\n\n/**\r\n * Layout Quality: 0:draft, 1:default, 2:proof\r\n */\nLayoutConstants.QUALITY = 1;\n\n/**\r\n * Default parameters\r\n */\nLayoutConstants.DEFAULT_CREATE_BENDS_AS_NEEDED = false;\nLayoutConstants.DEFAULT_INCREMENTAL = false;\nLayoutConstants.DEFAULT_ANIMATION_ON_LAYOUT = true;\nLayoutConstants.DEFAULT_ANIMATION_DURING_LAYOUT = false;\nLayoutConstants.DEFAULT_ANIMATION_PERIOD = 50;\nLayoutConstants.DEFAULT_UNIFORM_LEAF_NODE_SIZES = false;\n\n// -----------------------------------------------------------------------------\n// Section: General other constants\n// -----------------------------------------------------------------------------\n/*\r\n * Margins of a graph to be applied on bouding rectangle of its contents. We\r\n * assume margins on all four sides to be uniform.\r\n */\nLayoutConstants.DEFAULT_GRAPH_MARGIN = 15;\n\n/*\r\n * Whether to consider labels in node dimensions or not\r\n */\nLayoutConstants.NODE_DIMENSIONS_INCLUDE_LABELS = false;\n\n/*\r\n * Default dimension of a non-compound node.\r\n */\nLayoutConstants.SIMPLE_NODE_SIZE = 40;\n\n/*\r\n * Default dimension of a non-compound node.\r\n */\nLayoutConstants.SIMPLE_NODE_HALF_SIZE = LayoutConstants.SIMPLE_NODE_SIZE / 2;\n\n/*\r\n * Empty compound node size. When a compound node is empty, its both\r\n * dimensions should be of this value.\r\n */\nLayoutConstants.EMPTY_COMPOUND_NODE_SIZE = 40;\n\n/*\r\n * Minimum length that an edge should take during layout\r\n */\nLayoutConstants.MIN_EDGE_LENGTH = 1;\n\n/*\r\n * World boundaries that layout operates on\r\n */\nLayoutConstants.WORLD_BOUNDARY = 1000000;\n\n/*\r\n * World boundaries that random positioning can be performed with\r\n */\nLayoutConstants.INITIAL_WORLD_BOUNDARY = LayoutConstants.WORLD_BOUNDARY / 1000;\n\n/*\r\n * Coordinates of the world center\r\n */\nLayoutConstants.WORLD_CENTER_X = 1200;\nLayoutConstants.WORLD_CENTER_Y = 900;\n\nmodule.exports = LayoutConstants;\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar LGraphObject = __webpack_require__(2);\nvar IGeometry = __webpack_require__(8);\nvar IMath = __webpack_require__(9);\n\nfunction LEdge(source, target, vEdge) {\n LGraphObject.call(this, vEdge);\n\n this.isOverlapingSourceAndTarget = false;\n this.vGraphObject = vEdge;\n this.bendpoints = [];\n this.source = source;\n this.target = target;\n}\n\nLEdge.prototype = Object.create(LGraphObject.prototype);\n\nfor (var prop in LGraphObject) {\n LEdge[prop] = LGraphObject[prop];\n}\n\nLEdge.prototype.getSource = function () {\n return this.source;\n};\n\nLEdge.prototype.getTarget = function () {\n return this.target;\n};\n\nLEdge.prototype.isInterGraph = function () {\n return this.isInterGraph;\n};\n\nLEdge.prototype.getLength = function () {\n return this.length;\n};\n\nLEdge.prototype.isOverlapingSourceAndTarget = function () {\n return this.isOverlapingSourceAndTarget;\n};\n\nLEdge.prototype.getBendpoints = function () {\n return this.bendpoints;\n};\n\nLEdge.prototype.getLca = function () {\n return this.lca;\n};\n\nLEdge.prototype.getSourceInLca = function () {\n return this.sourceInLca;\n};\n\nLEdge.prototype.getTargetInLca = function () {\n return this.targetInLca;\n};\n\nLEdge.prototype.getOtherEnd = function (node) {\n if (this.source === node) {\n return this.target;\n } else if (this.target === node) {\n return this.source;\n } else {\n throw \"Node is not incident with this edge\";\n }\n};\n\nLEdge.prototype.getOtherEndInGraph = function (node, graph) {\n var otherEnd = this.getOtherEnd(node);\n var root = graph.getGraphManager().getRoot();\n\n while (true) {\n if (otherEnd.getOwner() == graph) {\n return otherEnd;\n }\n\n if (otherEnd.getOwner() == root) {\n break;\n }\n\n otherEnd = otherEnd.getOwner().getParent();\n }\n\n return null;\n};\n\nLEdge.prototype.updateLength = function () {\n var clipPointCoordinates = new Array(4);\n\n this.isOverlapingSourceAndTarget = IGeometry.getIntersection(this.target.getRect(), this.source.getRect(), clipPointCoordinates);\n\n if (!this.isOverlapingSourceAndTarget) {\n this.lengthX = clipPointCoordinates[0] - clipPointCoordinates[2];\n this.lengthY = clipPointCoordinates[1] - clipPointCoordinates[3];\n\n if (Math.abs(this.lengthX) < 1.0) {\n this.lengthX = IMath.sign(this.lengthX);\n }\n\n if (Math.abs(this.lengthY) < 1.0) {\n this.lengthY = IMath.sign(this.lengthY);\n }\n\n this.length = Math.sqrt(this.lengthX * this.lengthX + this.lengthY * this.lengthY);\n }\n};\n\nLEdge.prototype.updateLengthSimple = function () {\n this.lengthX = this.target.getCenterX() - this.source.getCenterX();\n this.lengthY = this.target.getCenterY() - this.source.getCenterY();\n\n if (Math.abs(this.lengthX) < 1.0) {\n this.lengthX = IMath.sign(this.lengthX);\n }\n\n if (Math.abs(this.lengthY) < 1.0) {\n this.lengthY = IMath.sign(this.lengthY);\n }\n\n this.length = Math.sqrt(this.lengthX * this.lengthX + this.lengthY * this.lengthY);\n};\n\nmodule.exports = LEdge;\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nfunction LGraphObject(vGraphObject) {\n this.vGraphObject = vGraphObject;\n}\n\nmodule.exports = LGraphObject;\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar LGraphObject = __webpack_require__(2);\nvar Integer = __webpack_require__(10);\nvar RectangleD = __webpack_require__(13);\nvar LayoutConstants = __webpack_require__(0);\nvar RandomSeed = __webpack_require__(16);\nvar PointD = __webpack_require__(5);\n\nfunction LNode(gm, loc, size, vNode) {\n //Alternative constructor 1 : LNode(LGraphManager gm, Point loc, Dimension size, Object vNode)\n if (size == null && vNode == null) {\n vNode = loc;\n }\n\n LGraphObject.call(this, vNode);\n\n //Alternative constructor 2 : LNode(Layout layout, Object vNode)\n if (gm.graphManager != null) gm = gm.graphManager;\n\n this.estimatedSize = Integer.MIN_VALUE;\n this.inclusionTreeDepth = Integer.MAX_VALUE;\n this.vGraphObject = vNode;\n this.edges = [];\n this.graphManager = gm;\n\n if (size != null && loc != null) this.rect = new RectangleD(loc.x, loc.y, size.width, size.height);else this.rect = new RectangleD();\n}\n\nLNode.prototype = Object.create(LGraphObject.prototype);\nfor (var prop in LGraphObject) {\n LNode[prop] = LGraphObject[prop];\n}\n\nLNode.prototype.getEdges = function () {\n return this.edges;\n};\n\nLNode.prototype.getChild = function () {\n return this.child;\n};\n\nLNode.prototype.getOwner = function () {\n // if (this.owner != null) {\n // if (!(this.owner == null || this.owner.getNodes().indexOf(this) > -1)) {\n // throw \"assert failed\";\n // }\n // }\n\n return this.owner;\n};\n\nLNode.prototype.getWidth = function () {\n return this.rect.width;\n};\n\nLNode.prototype.setWidth = function (width) {\n this.rect.width = width;\n};\n\nLNode.prototype.getHeight = function () {\n return this.rect.height;\n};\n\nLNode.prototype.setHeight = function (height) {\n this.rect.height = height;\n};\n\nLNode.prototype.getCenterX = function () {\n return this.rect.x + this.rect.width / 2;\n};\n\nLNode.prototype.getCenterY = function () {\n return this.rect.y + this.rect.height / 2;\n};\n\nLNode.prototype.getCenter = function () {\n return new PointD(this.rect.x + this.rect.width / 2, this.rect.y + this.rect.height / 2);\n};\n\nLNode.prototype.getLocation = function () {\n return new PointD(this.rect.x, this.rect.y);\n};\n\nLNode.prototype.getRect = function () {\n return this.rect;\n};\n\nLNode.prototype.getDiagonal = function () {\n return Math.sqrt(this.rect.width * this.rect.width + this.rect.height * this.rect.height);\n};\n\n/**\n * This method returns half the diagonal length of this node.\n */\nLNode.prototype.getHalfTheDiagonal = function () {\n return Math.sqrt(this.rect.height * this.rect.height + this.rect.width * this.rect.width) / 2;\n};\n\nLNode.prototype.setRect = function (upperLeft, dimension) {\n this.rect.x = upperLeft.x;\n this.rect.y = upperLeft.y;\n this.rect.width = dimension.width;\n this.rect.height = dimension.height;\n};\n\nLNode.prototype.setCenter = function (cx, cy) {\n this.rect.x = cx - this.rect.width / 2;\n this.rect.y = cy - this.rect.height / 2;\n};\n\nLNode.prototype.setLocation = function (x, y) {\n this.rect.x = x;\n this.rect.y = y;\n};\n\nLNode.prototype.moveBy = function (dx, dy) {\n this.rect.x += dx;\n this.rect.y += dy;\n};\n\nLNode.prototype.getEdgeListToNode = function (to) {\n var edgeList = [];\n var edge;\n var self = this;\n\n self.edges.forEach(function (edge) {\n\n if (edge.target == to) {\n if (edge.source != self) throw \"Incorrect edge source!\";\n\n edgeList.push(edge);\n }\n });\n\n return edgeList;\n};\n\nLNode.prototype.getEdgesBetween = function (other) {\n var edgeList = [];\n var edge;\n\n var self = this;\n self.edges.forEach(function (edge) {\n\n if (!(edge.source == self || edge.target == self)) throw \"Incorrect edge source and/or target\";\n\n if (edge.target == other || edge.source == other) {\n edgeList.push(edge);\n }\n });\n\n return edgeList;\n};\n\nLNode.prototype.getNeighborsList = function () {\n var neighbors = new Set();\n\n var self = this;\n self.edges.forEach(function (edge) {\n\n if (edge.source == self) {\n neighbors.add(edge.target);\n } else {\n if (edge.target != self) {\n throw \"Incorrect incidency!\";\n }\n\n neighbors.add(edge.source);\n }\n });\n\n return neighbors;\n};\n\nLNode.prototype.withChildren = function () {\n var withNeighborsList = new Set();\n var childNode;\n var children;\n\n withNeighborsList.add(this);\n\n if (this.child != null) {\n var nodes = this.child.getNodes();\n for (var i = 0; i < nodes.length; i++) {\n childNode = nodes[i];\n children = childNode.withChildren();\n children.forEach(function (node) {\n withNeighborsList.add(node);\n });\n }\n }\n\n return withNeighborsList;\n};\n\nLNode.prototype.getNoOfChildren = function () {\n var noOfChildren = 0;\n var childNode;\n\n if (this.child == null) {\n noOfChildren = 1;\n } else {\n var nodes = this.child.getNodes();\n for (var i = 0; i < nodes.length; i++) {\n childNode = nodes[i];\n\n noOfChildren += childNode.getNoOfChildren();\n }\n }\n\n if (noOfChildren == 0) {\n noOfChildren = 1;\n }\n return noOfChildren;\n};\n\nLNode.prototype.getEstimatedSize = function () {\n if (this.estimatedSize == Integer.MIN_VALUE) {\n throw \"assert failed\";\n }\n return this.estimatedSize;\n};\n\nLNode.prototype.calcEstimatedSize = function () {\n if (this.child == null) {\n return this.estimatedSize = (this.rect.width + this.rect.height) / 2;\n } else {\n this.estimatedSize = this.child.calcEstimatedSize();\n this.rect.width = this.estimatedSize;\n this.rect.height = this.estimatedSize;\n\n return this.estimatedSize;\n }\n};\n\nLNode.prototype.scatter = function () {\n var randomCenterX;\n var randomCenterY;\n\n var minX = -LayoutConstants.INITIAL_WORLD_BOUNDARY;\n var maxX = LayoutConstants.INITIAL_WORLD_BOUNDARY;\n randomCenterX = LayoutConstants.WORLD_CENTER_X + RandomSeed.nextDouble() * (maxX - minX) + minX;\n\n var minY = -LayoutConstants.INITIAL_WORLD_BOUNDARY;\n var maxY = LayoutConstants.INITIAL_WORLD_BOUNDARY;\n randomCenterY = LayoutConstants.WORLD_CENTER_Y + RandomSeed.nextDouble() * (maxY - minY) + minY;\n\n this.rect.x = randomCenterX;\n this.rect.y = randomCenterY;\n};\n\nLNode.prototype.updateBounds = function () {\n if (this.getChild() == null) {\n throw \"assert failed\";\n }\n if (this.getChild().getNodes().length != 0) {\n // wrap the children nodes by re-arranging the boundaries\n var childGraph = this.getChild();\n childGraph.updateBounds(true);\n\n this.rect.x = childGraph.getLeft();\n this.rect.y = childGraph.getTop();\n\n this.setWidth(childGraph.getRight() - childGraph.getLeft());\n this.setHeight(childGraph.getBottom() - childGraph.getTop());\n\n // Update compound bounds considering its label properties \n if (LayoutConstants.NODE_DIMENSIONS_INCLUDE_LABELS) {\n\n var width = childGraph.getRight() - childGraph.getLeft();\n var height = childGraph.getBottom() - childGraph.getTop();\n\n if (this.labelWidth) {\n if (this.labelPosHorizontal == \"left\") {\n this.rect.x -= this.labelWidth;\n this.setWidth(width + this.labelWidth);\n } else if (this.labelPosHorizontal == \"center\" && this.labelWidth > width) {\n this.rect.x -= (this.labelWidth - width) / 2;\n this.setWidth(this.labelWidth);\n } else if (this.labelPosHorizontal == \"right\") {\n this.setWidth(width + this.labelWidth);\n }\n }\n\n if (this.labelHeight) {\n if (this.labelPosVertical == \"top\") {\n this.rect.y -= this.labelHeight;\n this.setHeight(height + this.labelHeight);\n } else if (this.labelPosVertical == \"center\" && this.labelHeight > height) {\n this.rect.y -= (this.labelHeight - height) / 2;\n this.setHeight(this.labelHeight);\n } else if (this.labelPosVertical == \"bottom\") {\n this.setHeight(height + this.labelHeight);\n }\n }\n }\n }\n};\n\nLNode.prototype.getInclusionTreeDepth = function () {\n if (this.inclusionTreeDepth == Integer.MAX_VALUE) {\n throw \"assert failed\";\n }\n return this.inclusionTreeDepth;\n};\n\nLNode.prototype.transform = function (trans) {\n var left = this.rect.x;\n\n if (left > LayoutConstants.WORLD_BOUNDARY) {\n left = LayoutConstants.WORLD_BOUNDARY;\n } else if (left < -LayoutConstants.WORLD_BOUNDARY) {\n left = -LayoutConstants.WORLD_BOUNDARY;\n }\n\n var top = this.rect.y;\n\n if (top > LayoutConstants.WORLD_BOUNDARY) {\n top = LayoutConstants.WORLD_BOUNDARY;\n } else if (top < -LayoutConstants.WORLD_BOUNDARY) {\n top = -LayoutConstants.WORLD_BOUNDARY;\n }\n\n var leftTop = new PointD(left, top);\n var vLeftTop = trans.inverseTransformPoint(leftTop);\n\n this.setLocation(vLeftTop.x, vLeftTop.y);\n};\n\nLNode.prototype.getLeft = function () {\n return this.rect.x;\n};\n\nLNode.prototype.getRight = function () {\n return this.rect.x + this.rect.width;\n};\n\nLNode.prototype.getTop = function () {\n return this.rect.y;\n};\n\nLNode.prototype.getBottom = function () {\n return this.rect.y + this.rect.height;\n};\n\nLNode.prototype.getParent = function () {\n if (this.owner == null) {\n return null;\n }\n\n return this.owner.getParent();\n};\n\nmodule.exports = LNode;\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar LayoutConstants = __webpack_require__(0);\n\nfunction FDLayoutConstants() {}\n\n//FDLayoutConstants inherits static props in LayoutConstants\nfor (var prop in LayoutConstants) {\n FDLayoutConstants[prop] = LayoutConstants[prop];\n}\n\nFDLayoutConstants.MAX_ITERATIONS = 2500;\n\nFDLayoutConstants.DEFAULT_EDGE_LENGTH = 50;\nFDLayoutConstants.DEFAULT_SPRING_STRENGTH = 0.45;\nFDLayoutConstants.DEFAULT_REPULSION_STRENGTH = 4500.0;\nFDLayoutConstants.DEFAULT_GRAVITY_STRENGTH = 0.4;\nFDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_STRENGTH = 1.0;\nFDLayoutConstants.DEFAULT_GRAVITY_RANGE_FACTOR = 3.8;\nFDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR = 1.5;\nFDLayoutConstants.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION = true;\nFDLayoutConstants.DEFAULT_USE_SMART_REPULSION_RANGE_CALCULATION = true;\nFDLayoutConstants.DEFAULT_COOLING_FACTOR_INCREMENTAL = 0.3;\nFDLayoutConstants.COOLING_ADAPTATION_FACTOR = 0.33;\nFDLayoutConstants.ADAPTATION_LOWER_NODE_LIMIT = 1000;\nFDLayoutConstants.ADAPTATION_UPPER_NODE_LIMIT = 5000;\nFDLayoutConstants.MAX_NODE_DISPLACEMENT_INCREMENTAL = 100.0;\nFDLayoutConstants.MAX_NODE_DISPLACEMENT = FDLayoutConstants.MAX_NODE_DISPLACEMENT_INCREMENTAL * 3;\nFDLayoutConstants.MIN_REPULSION_DIST = FDLayoutConstants.DEFAULT_EDGE_LENGTH / 10.0;\nFDLayoutConstants.CONVERGENCE_CHECK_PERIOD = 100;\nFDLayoutConstants.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR = 0.1;\nFDLayoutConstants.MIN_EDGE_LENGTH = 1;\nFDLayoutConstants.GRID_CALCULATION_CHECK_PERIOD = 10;\n\nmodule.exports = FDLayoutConstants;\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nfunction PointD(x, y) {\n if (x == null && y == null) {\n this.x = 0;\n this.y = 0;\n } else {\n this.x = x;\n this.y = y;\n }\n}\n\nPointD.prototype.getX = function () {\n return this.x;\n};\n\nPointD.prototype.getY = function () {\n return this.y;\n};\n\nPointD.prototype.setX = function (x) {\n this.x = x;\n};\n\nPointD.prototype.setY = function (y) {\n this.y = y;\n};\n\nPointD.prototype.getDifference = function (pt) {\n return new DimensionD(this.x - pt.x, this.y - pt.y);\n};\n\nPointD.prototype.getCopy = function () {\n return new PointD(this.x, this.y);\n};\n\nPointD.prototype.translate = function (dim) {\n this.x += dim.width;\n this.y += dim.height;\n return this;\n};\n\nmodule.exports = PointD;\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar LGraphObject = __webpack_require__(2);\nvar Integer = __webpack_require__(10);\nvar LayoutConstants = __webpack_require__(0);\nvar LGraphManager = __webpack_require__(7);\nvar LNode = __webpack_require__(3);\nvar LEdge = __webpack_require__(1);\nvar RectangleD = __webpack_require__(13);\nvar Point = __webpack_require__(12);\nvar LinkedList = __webpack_require__(11);\n\nfunction LGraph(parent, obj2, vGraph) {\n LGraphObject.call(this, vGraph);\n this.estimatedSize = Integer.MIN_VALUE;\n this.margin = LayoutConstants.DEFAULT_GRAPH_MARGIN;\n this.edges = [];\n this.nodes = [];\n this.isConnected = false;\n this.parent = parent;\n\n if (obj2 != null && obj2 instanceof LGraphManager) {\n this.graphManager = obj2;\n } else if (obj2 != null && obj2 instanceof Layout) {\n this.graphManager = obj2.graphManager;\n }\n}\n\nLGraph.prototype = Object.create(LGraphObject.prototype);\nfor (var prop in LGraphObject) {\n LGraph[prop] = LGraphObject[prop];\n}\n\nLGraph.prototype.getNodes = function () {\n return this.nodes;\n};\n\nLGraph.prototype.getEdges = function () {\n return this.edges;\n};\n\nLGraph.prototype.getGraphManager = function () {\n return this.graphManager;\n};\n\nLGraph.prototype.getParent = function () {\n return this.parent;\n};\n\nLGraph.prototype.getLeft = function () {\n return this.left;\n};\n\nLGraph.prototype.getRight = function () {\n return this.right;\n};\n\nLGraph.prototype.getTop = function () {\n return this.top;\n};\n\nLGraph.prototype.getBottom = function () {\n return this.bottom;\n};\n\nLGraph.prototype.isConnected = function () {\n return this.isConnected;\n};\n\nLGraph.prototype.add = function (obj1, sourceNode, targetNode) {\n if (sourceNode == null && targetNode == null) {\n var newNode = obj1;\n if (this.graphManager == null) {\n throw \"Graph has no graph mgr!\";\n }\n if (this.getNodes().indexOf(newNode) > -1) {\n throw \"Node already in graph!\";\n }\n newNode.owner = this;\n this.getNodes().push(newNode);\n\n return newNode;\n } else {\n var newEdge = obj1;\n if (!(this.getNodes().indexOf(sourceNode) > -1 && this.getNodes().indexOf(targetNode) > -1)) {\n throw \"Source or target not in graph!\";\n }\n\n if (!(sourceNode.owner == targetNode.owner && sourceNode.owner == this)) {\n throw \"Both owners must be this graph!\";\n }\n\n if (sourceNode.owner != targetNode.owner) {\n return null;\n }\n\n // set source and target\n newEdge.source = sourceNode;\n newEdge.target = targetNode;\n\n // set as intra-graph edge\n newEdge.isInterGraph = false;\n\n // add to graph edge list\n this.getEdges().push(newEdge);\n\n // add to incidency lists\n sourceNode.edges.push(newEdge);\n\n if (targetNode != sourceNode) {\n targetNode.edges.push(newEdge);\n }\n\n return newEdge;\n }\n};\n\nLGraph.prototype.remove = function (obj) {\n var node = obj;\n if (obj instanceof LNode) {\n if (node == null) {\n throw \"Node is null!\";\n }\n if (!(node.owner != null && node.owner == this)) {\n throw \"Owner graph is invalid!\";\n }\n if (this.graphManager == null) {\n throw \"Owner graph manager is invalid!\";\n }\n // remove incident edges first (make a copy to do it safely)\n var edgesToBeRemoved = node.edges.slice();\n var edge;\n var s = edgesToBeRemoved.length;\n for (var i = 0; i < s; i++) {\n edge = edgesToBeRemoved[i];\n\n if (edge.isInterGraph) {\n this.graphManager.remove(edge);\n } else {\n edge.source.owner.remove(edge);\n }\n }\n\n // now the node itself\n var index = this.nodes.indexOf(node);\n if (index == -1) {\n throw \"Node not in owner node list!\";\n }\n\n this.nodes.splice(index, 1);\n } else if (obj instanceof LEdge) {\n var edge = obj;\n if (edge == null) {\n throw \"Edge is null!\";\n }\n if (!(edge.source != null && edge.target != null)) {\n throw \"Source and/or target is null!\";\n }\n if (!(edge.source.owner != null && edge.target.owner != null && edge.source.owner == this && edge.target.owner == this)) {\n throw \"Source and/or target owner is invalid!\";\n }\n\n var sourceIndex = edge.source.edges.indexOf(edge);\n var targetIndex = edge.target.edges.indexOf(edge);\n if (!(sourceIndex > -1 && targetIndex > -1)) {\n throw \"Source and/or target doesn't know this edge!\";\n }\n\n edge.source.edges.splice(sourceIndex, 1);\n\n if (edge.target != edge.source) {\n edge.target.edges.splice(targetIndex, 1);\n }\n\n var index = edge.source.owner.getEdges().indexOf(edge);\n if (index == -1) {\n throw \"Not in owner's edge list!\";\n }\n\n edge.source.owner.getEdges().splice(index, 1);\n }\n};\n\nLGraph.prototype.updateLeftTop = function () {\n var top = Integer.MAX_VALUE;\n var left = Integer.MAX_VALUE;\n var nodeTop;\n var nodeLeft;\n var margin;\n\n var nodes = this.getNodes();\n var s = nodes.length;\n\n for (var i = 0; i < s; i++) {\n var lNode = nodes[i];\n nodeTop = lNode.getTop();\n nodeLeft = lNode.getLeft();\n\n if (top > nodeTop) {\n top = nodeTop;\n }\n\n if (left > nodeLeft) {\n left = nodeLeft;\n }\n }\n\n // Do we have any nodes in this graph?\n if (top == Integer.MAX_VALUE) {\n return null;\n }\n\n if (nodes[0].getParent().paddingLeft != undefined) {\n margin = nodes[0].getParent().paddingLeft;\n } else {\n margin = this.margin;\n }\n\n this.left = left - margin;\n this.top = top - margin;\n\n // Apply the margins and return the result\n return new Point(this.left, this.top);\n};\n\nLGraph.prototype.updateBounds = function (recursive) {\n // calculate bounds\n var left = Integer.MAX_VALUE;\n var right = -Integer.MAX_VALUE;\n var top = Integer.MAX_VALUE;\n var bottom = -Integer.MAX_VALUE;\n var nodeLeft;\n var nodeRight;\n var nodeTop;\n var nodeBottom;\n var margin;\n\n var nodes = this.nodes;\n var s = nodes.length;\n for (var i = 0; i < s; i++) {\n var lNode = nodes[i];\n\n if (recursive && lNode.child != null) {\n lNode.updateBounds();\n }\n nodeLeft = lNode.getLeft();\n nodeRight = lNode.getRight();\n nodeTop = lNode.getTop();\n nodeBottom = lNode.getBottom();\n\n if (left > nodeLeft) {\n left = nodeLeft;\n }\n\n if (right < nodeRight) {\n right = nodeRight;\n }\n\n if (top > nodeTop) {\n top = nodeTop;\n }\n\n if (bottom < nodeBottom) {\n bottom = nodeBottom;\n }\n }\n\n var boundingRect = new RectangleD(left, top, right - left, bottom - top);\n if (left == Integer.MAX_VALUE) {\n this.left = this.parent.getLeft();\n this.right = this.parent.getRight();\n this.top = this.parent.getTop();\n this.bottom = this.parent.getBottom();\n }\n\n if (nodes[0].getParent().paddingLeft != undefined) {\n margin = nodes[0].getParent().paddingLeft;\n } else {\n margin = this.margin;\n }\n\n this.left = boundingRect.x - margin;\n this.right = boundingRect.x + boundingRect.width + margin;\n this.top = boundingRect.y - margin;\n this.bottom = boundingRect.y + boundingRect.height + margin;\n};\n\nLGraph.calculateBounds = function (nodes) {\n var left = Integer.MAX_VALUE;\n var right = -Integer.MAX_VALUE;\n var top = Integer.MAX_VALUE;\n var bottom = -Integer.MAX_VALUE;\n var nodeLeft;\n var nodeRight;\n var nodeTop;\n var nodeBottom;\n\n var s = nodes.length;\n\n for (var i = 0; i < s; i++) {\n var lNode = nodes[i];\n nodeLeft = lNode.getLeft();\n nodeRight = lNode.getRight();\n nodeTop = lNode.getTop();\n nodeBottom = lNode.getBottom();\n\n if (left > nodeLeft) {\n left = nodeLeft;\n }\n\n if (right < nodeRight) {\n right = nodeRight;\n }\n\n if (top > nodeTop) {\n top = nodeTop;\n }\n\n if (bottom < nodeBottom) {\n bottom = nodeBottom;\n }\n }\n\n var boundingRect = new RectangleD(left, top, right - left, bottom - top);\n\n return boundingRect;\n};\n\nLGraph.prototype.getInclusionTreeDepth = function () {\n if (this == this.graphManager.getRoot()) {\n return 1;\n } else {\n return this.parent.getInclusionTreeDepth();\n }\n};\n\nLGraph.prototype.getEstimatedSize = function () {\n if (this.estimatedSize == Integer.MIN_VALUE) {\n throw \"assert failed\";\n }\n return this.estimatedSize;\n};\n\nLGraph.prototype.calcEstimatedSize = function () {\n var size = 0;\n var nodes = this.nodes;\n var s = nodes.length;\n\n for (var i = 0; i < s; i++) {\n var lNode = nodes[i];\n size += lNode.calcEstimatedSize();\n }\n\n if (size == 0) {\n this.estimatedSize = LayoutConstants.EMPTY_COMPOUND_NODE_SIZE;\n } else {\n this.estimatedSize = size / Math.sqrt(this.nodes.length);\n }\n\n return this.estimatedSize;\n};\n\nLGraph.prototype.updateConnected = function () {\n var self = this;\n if (this.nodes.length == 0) {\n this.isConnected = true;\n return;\n }\n\n var queue = new LinkedList();\n var visited = new Set();\n var currentNode = this.nodes[0];\n var neighborEdges;\n var currentNeighbor;\n var childrenOfNode = currentNode.withChildren();\n childrenOfNode.forEach(function (node) {\n queue.push(node);\n visited.add(node);\n });\n\n while (queue.length !== 0) {\n currentNode = queue.shift();\n\n // Traverse all neighbors of this node\n neighborEdges = currentNode.getEdges();\n var size = neighborEdges.length;\n for (var i = 0; i < size; i++) {\n var neighborEdge = neighborEdges[i];\n currentNeighbor = neighborEdge.getOtherEndInGraph(currentNode, this);\n\n // Add unvisited neighbors to the list to visit\n if (currentNeighbor != null && !visited.has(currentNeighbor)) {\n var childrenOfNeighbor = currentNeighbor.withChildren();\n\n childrenOfNeighbor.forEach(function (node) {\n queue.push(node);\n visited.add(node);\n });\n }\n }\n }\n\n this.isConnected = false;\n\n if (visited.size >= this.nodes.length) {\n var noOfVisitedInThisGraph = 0;\n\n visited.forEach(function (visitedNode) {\n if (visitedNode.owner == self) {\n noOfVisitedInThisGraph++;\n }\n });\n\n if (noOfVisitedInThisGraph == this.nodes.length) {\n this.isConnected = true;\n }\n }\n};\n\nmodule.exports = LGraph;\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar LGraph;\nvar LEdge = __webpack_require__(1);\n\nfunction LGraphManager(layout) {\n LGraph = __webpack_require__(6); // It may be better to initilize this out of this function but it gives an error (Right-hand side of 'instanceof' is not callable) now.\n this.layout = layout;\n\n this.graphs = [];\n this.edges = [];\n}\n\nLGraphManager.prototype.addRoot = function () {\n var ngraph = this.layout.newGraph();\n var nnode = this.layout.newNode(null);\n var root = this.add(ngraph, nnode);\n this.setRootGraph(root);\n return this.rootGraph;\n};\n\nLGraphManager.prototype.add = function (newGraph, parentNode, newEdge, sourceNode, targetNode) {\n //there are just 2 parameters are passed then it adds an LGraph else it adds an LEdge\n if (newEdge == null && sourceNode == null && targetNode == null) {\n if (newGraph == null) {\n throw \"Graph is null!\";\n }\n if (parentNode == null) {\n throw \"Parent node is null!\";\n }\n if (this.graphs.indexOf(newGraph) > -1) {\n throw \"Graph already in this graph mgr!\";\n }\n\n this.graphs.push(newGraph);\n\n if (newGraph.parent != null) {\n throw \"Already has a parent!\";\n }\n if (parentNode.child != null) {\n throw \"Already has a child!\";\n }\n\n newGraph.parent = parentNode;\n parentNode.child = newGraph;\n\n return newGraph;\n } else {\n //change the order of the parameters\n targetNode = newEdge;\n sourceNode = parentNode;\n newEdge = newGraph;\n var sourceGraph = sourceNode.getOwner();\n var targetGraph = targetNode.getOwner();\n\n if (!(sourceGraph != null && sourceGraph.getGraphManager() == this)) {\n throw \"Source not in this graph mgr!\";\n }\n if (!(targetGraph != null && targetGraph.getGraphManager() == this)) {\n throw \"Target not in this graph mgr!\";\n }\n\n if (sourceGraph == targetGraph) {\n newEdge.isInterGraph = false;\n return sourceGraph.add(newEdge, sourceNode, targetNode);\n } else {\n newEdge.isInterGraph = true;\n\n // set source and target\n newEdge.source = sourceNode;\n newEdge.target = targetNode;\n\n // add edge to inter-graph edge list\n if (this.edges.indexOf(newEdge) > -1) {\n throw \"Edge already in inter-graph edge list!\";\n }\n\n this.edges.push(newEdge);\n\n // add edge to source and target incidency lists\n if (!(newEdge.source != null && newEdge.target != null)) {\n throw \"Edge source and/or target is null!\";\n }\n\n if (!(newEdge.source.edges.indexOf(newEdge) == -1 && newEdge.target.edges.indexOf(newEdge) == -1)) {\n throw \"Edge already in source and/or target incidency list!\";\n }\n\n newEdge.source.edges.push(newEdge);\n newEdge.target.edges.push(newEdge);\n\n return newEdge;\n }\n }\n};\n\nLGraphManager.prototype.remove = function (lObj) {\n if (lObj instanceof LGraph) {\n var graph = lObj;\n if (graph.getGraphManager() != this) {\n throw \"Graph not in this graph mgr\";\n }\n if (!(graph == this.rootGraph || graph.parent != null && graph.parent.graphManager == this)) {\n throw \"Invalid parent node!\";\n }\n\n // first the edges (make a copy to do it safely)\n var edgesToBeRemoved = [];\n\n edgesToBeRemoved = edgesToBeRemoved.concat(graph.getEdges());\n\n var edge;\n var s = edgesToBeRemoved.length;\n for (var i = 0; i < s; i++) {\n edge = edgesToBeRemoved[i];\n graph.remove(edge);\n }\n\n // then the nodes (make a copy to do it safely)\n var nodesToBeRemoved = [];\n\n nodesToBeRemoved = nodesToBeRemoved.concat(graph.getNodes());\n\n var node;\n s = nodesToBeRemoved.length;\n for (var i = 0; i < s; i++) {\n node = nodesToBeRemoved[i];\n graph.remove(node);\n }\n\n // check if graph is the root\n if (graph == this.rootGraph) {\n this.setRootGraph(null);\n }\n\n // now remove the graph itself\n var index = this.graphs.indexOf(graph);\n this.graphs.splice(index, 1);\n\n // also reset the parent of the graph\n graph.parent = null;\n } else if (lObj instanceof LEdge) {\n edge = lObj;\n if (edge == null) {\n throw \"Edge is null!\";\n }\n if (!edge.isInterGraph) {\n throw \"Not an inter-graph edge!\";\n }\n if (!(edge.source != null && edge.target != null)) {\n throw \"Source and/or target is null!\";\n }\n\n // remove edge from source and target nodes' incidency lists\n\n if (!(edge.source.edges.indexOf(edge) != -1 && edge.target.edges.indexOf(edge) != -1)) {\n throw \"Source and/or target doesn't know this edge!\";\n }\n\n var index = edge.source.edges.indexOf(edge);\n edge.source.edges.splice(index, 1);\n index = edge.target.edges.indexOf(edge);\n edge.target.edges.splice(index, 1);\n\n // remove edge from owner graph manager's inter-graph edge list\n\n if (!(edge.source.owner != null && edge.source.owner.getGraphManager() != null)) {\n throw \"Edge owner graph or owner graph manager is null!\";\n }\n if (edge.source.owner.getGraphManager().edges.indexOf(edge) == -1) {\n throw \"Not in owner graph manager's edge list!\";\n }\n\n var index = edge.source.owner.getGraphManager().edges.indexOf(edge);\n edge.source.owner.getGraphManager().edges.splice(index, 1);\n }\n};\n\nLGraphManager.prototype.updateBounds = function () {\n this.rootGraph.updateBounds(true);\n};\n\nLGraphManager.prototype.getGraphs = function () {\n return this.graphs;\n};\n\nLGraphManager.prototype.getAllNodes = function () {\n if (this.allNodes == null) {\n var nodeList = [];\n var graphs = this.getGraphs();\n var s = graphs.length;\n for (var i = 0; i < s; i++) {\n nodeList = nodeList.concat(graphs[i].getNodes());\n }\n this.allNodes = nodeList;\n }\n return this.allNodes;\n};\n\nLGraphManager.prototype.resetAllNodes = function () {\n this.allNodes = null;\n};\n\nLGraphManager.prototype.resetAllEdges = function () {\n this.allEdges = null;\n};\n\nLGraphManager.prototype.resetAllNodesToApplyGravitation = function () {\n this.allNodesToApplyGravitation = null;\n};\n\nLGraphManager.prototype.getAllEdges = function () {\n if (this.allEdges == null) {\n var edgeList = [];\n var graphs = this.getGraphs();\n var s = graphs.length;\n for (var i = 0; i < graphs.length; i++) {\n edgeList = edgeList.concat(graphs[i].getEdges());\n }\n\n edgeList = edgeList.concat(this.edges);\n\n this.allEdges = edgeList;\n }\n return this.allEdges;\n};\n\nLGraphManager.prototype.getAllNodesToApplyGravitation = function () {\n return this.allNodesToApplyGravitation;\n};\n\nLGraphManager.prototype.setAllNodesToApplyGravitation = function (nodeList) {\n if (this.allNodesToApplyGravitation != null) {\n throw \"assert failed\";\n }\n\n this.allNodesToApplyGravitation = nodeList;\n};\n\nLGraphManager.prototype.getRoot = function () {\n return this.rootGraph;\n};\n\nLGraphManager.prototype.setRootGraph = function (graph) {\n if (graph.getGraphManager() != this) {\n throw \"Root not in this graph mgr!\";\n }\n\n this.rootGraph = graph;\n // root graph must have a root node associated with it for convenience\n if (graph.parent == null) {\n graph.parent = this.layout.newNode(\"Root node\");\n }\n};\n\nLGraphManager.prototype.getLayout = function () {\n return this.layout;\n};\n\nLGraphManager.prototype.isOneAncestorOfOther = function (firstNode, secondNode) {\n if (!(firstNode != null && secondNode != null)) {\n throw \"assert failed\";\n }\n\n if (firstNode == secondNode) {\n return true;\n }\n // Is second node an ancestor of the first one?\n var ownerGraph = firstNode.getOwner();\n var parentNode;\n\n do {\n parentNode = ownerGraph.getParent();\n\n if (parentNode == null) {\n break;\n }\n\n if (parentNode == secondNode) {\n return true;\n }\n\n ownerGraph = parentNode.getOwner();\n if (ownerGraph == null) {\n break;\n }\n } while (true);\n // Is first node an ancestor of the second one?\n ownerGraph = secondNode.getOwner();\n\n do {\n parentNode = ownerGraph.getParent();\n\n if (parentNode == null) {\n break;\n }\n\n if (parentNode == firstNode) {\n return true;\n }\n\n ownerGraph = parentNode.getOwner();\n if (ownerGraph == null) {\n break;\n }\n } while (true);\n\n return false;\n};\n\nLGraphManager.prototype.calcLowestCommonAncestors = function () {\n var edge;\n var sourceNode;\n var targetNode;\n var sourceAncestorGraph;\n var targetAncestorGraph;\n\n var edges = this.getAllEdges();\n var s = edges.length;\n for (var i = 0; i < s; i++) {\n edge = edges[i];\n\n sourceNode = edge.source;\n targetNode = edge.target;\n edge.lca = null;\n edge.sourceInLca = sourceNode;\n edge.targetInLca = targetNode;\n\n if (sourceNode == targetNode) {\n edge.lca = sourceNode.getOwner();\n continue;\n }\n\n sourceAncestorGraph = sourceNode.getOwner();\n\n while (edge.lca == null) {\n edge.targetInLca = targetNode;\n targetAncestorGraph = targetNode.getOwner();\n\n while (edge.lca == null) {\n if (targetAncestorGraph == sourceAncestorGraph) {\n edge.lca = targetAncestorGraph;\n break;\n }\n\n if (targetAncestorGraph == this.rootGraph) {\n break;\n }\n\n if (edge.lca != null) {\n throw \"assert failed\";\n }\n edge.targetInLca = targetAncestorGraph.getParent();\n targetAncestorGraph = edge.targetInLca.getOwner();\n }\n\n if (sourceAncestorGraph == this.rootGraph) {\n break;\n }\n\n if (edge.lca == null) {\n edge.sourceInLca = sourceAncestorGraph.getParent();\n sourceAncestorGraph = edge.sourceInLca.getOwner();\n }\n }\n\n if (edge.lca == null) {\n throw \"assert failed\";\n }\n }\n};\n\nLGraphManager.prototype.calcLowestCommonAncestor = function (firstNode, secondNode) {\n if (firstNode == secondNode) {\n return firstNode.getOwner();\n }\n var firstOwnerGraph = firstNode.getOwner();\n\n do {\n if (firstOwnerGraph == null) {\n break;\n }\n var secondOwnerGraph = secondNode.getOwner();\n\n do {\n if (secondOwnerGraph == null) {\n break;\n }\n\n if (secondOwnerGraph == firstOwnerGraph) {\n return secondOwnerGraph;\n }\n secondOwnerGraph = secondOwnerGraph.getParent().getOwner();\n } while (true);\n\n firstOwnerGraph = firstOwnerGraph.getParent().getOwner();\n } while (true);\n\n return firstOwnerGraph;\n};\n\nLGraphManager.prototype.calcInclusionTreeDepths = function (graph, depth) {\n if (graph == null && depth == null) {\n graph = this.rootGraph;\n depth = 1;\n }\n var node;\n\n var nodes = graph.getNodes();\n var s = nodes.length;\n for (var i = 0; i < s; i++) {\n node = nodes[i];\n node.inclusionTreeDepth = depth;\n\n if (node.child != null) {\n this.calcInclusionTreeDepths(node.child, depth + 1);\n }\n }\n};\n\nLGraphManager.prototype.includesInvalidEdge = function () {\n var edge;\n var edgesToRemove = [];\n\n var s = this.edges.length;\n for (var i = 0; i < s; i++) {\n edge = this.edges[i];\n\n if (this.isOneAncestorOfOther(edge.source, edge.target)) {\n edgesToRemove.push(edge);\n }\n }\n\n // Remove invalid edges from graph manager\n for (var i = 0; i < edgesToRemove.length; i++) {\n this.remove(edgesToRemove[i]);\n }\n\n // Invalid edges are cleared, so return false\n return false;\n};\n\nmodule.exports = LGraphManager;\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/**\n * This class maintains a list of static geometry related utility methods.\n *\n *\n * Copyright: i-Vis Research Group, Bilkent University, 2007 - present\n */\n\nvar Point = __webpack_require__(12);\n\nfunction IGeometry() {}\n\n/**\n * This method calculates *half* the amount in x and y directions of the two\n * input rectangles needed to separate them keeping their respective\n * positioning, and returns the result in the input array. An input\n * separation buffer added to the amount in both directions. We assume that\n * the two rectangles do intersect.\n */\nIGeometry.calcSeparationAmount = function (rectA, rectB, overlapAmount, separationBuffer) {\n if (!rectA.intersects(rectB)) {\n throw \"assert failed\";\n }\n\n var directions = new Array(2);\n\n this.decideDirectionsForOverlappingNodes(rectA, rectB, directions);\n\n overlapAmount[0] = Math.min(rectA.getRight(), rectB.getRight()) - Math.max(rectA.x, rectB.x);\n overlapAmount[1] = Math.min(rectA.getBottom(), rectB.getBottom()) - Math.max(rectA.y, rectB.y);\n\n // update the overlapping amounts for the following cases:\n if (rectA.getX() <= rectB.getX() && rectA.getRight() >= rectB.getRight()) {\n /* Case x.1:\n *\n * rectA\n * \t| |\n * \t| _________ |\n * \t| | | |\n * \t|________|_______|______|\n * \t\t\t | |\n * | |\n * rectB\n */\n overlapAmount[0] += Math.min(rectB.getX() - rectA.getX(), rectA.getRight() - rectB.getRight());\n } else if (rectB.getX() <= rectA.getX() && rectB.getRight() >= rectA.getRight()) {\n /* Case x.2:\n *\n * rectB\n * \t| |\n * \t| _________ |\n * \t| | | |\n * \t|________|_______|______|\n * \t\t\t | |\n * | |\n * rectA\n */\n overlapAmount[0] += Math.min(rectA.getX() - rectB.getX(), rectB.getRight() - rectA.getRight());\n }\n if (rectA.getY() <= rectB.getY() && rectA.getBottom() >= rectB.getBottom()) {\n /* Case y.1:\n * ________ rectA\n * |\n * |\n * ______|____ rectB\n * | |\n * | |\n * ______|____|\n * |\n * |\n * |________\n *\n */\n overlapAmount[1] += Math.min(rectB.getY() - rectA.getY(), rectA.getBottom() - rectB.getBottom());\n } else if (rectB.getY() <= rectA.getY() && rectB.getBottom() >= rectA.getBottom()) {\n /* Case y.2:\n * ________ rectB\n * |\n * |\n * ______|____ rectA\n * | |\n * | |\n * ______|____|\n * |\n * |\n * |________\n *\n */\n overlapAmount[1] += Math.min(rectA.getY() - rectB.getY(), rectB.getBottom() - rectA.getBottom());\n }\n\n // find slope of the line passes two centers\n var slope = Math.abs((rectB.getCenterY() - rectA.getCenterY()) / (rectB.getCenterX() - rectA.getCenterX()));\n // if centers are overlapped\n if (rectB.getCenterY() === rectA.getCenterY() && rectB.getCenterX() === rectA.getCenterX()) {\n // assume the slope is 1 (45 degree)\n slope = 1.0;\n }\n\n var moveByY = slope * overlapAmount[0];\n var moveByX = overlapAmount[1] / slope;\n if (overlapAmount[0] < moveByX) {\n moveByX = overlapAmount[0];\n } else {\n moveByY = overlapAmount[1];\n }\n // return half the amount so that if each rectangle is moved by these\n // amounts in opposite directions, overlap will be resolved\n overlapAmount[0] = -1 * directions[0] * (moveByX / 2 + separationBuffer);\n overlapAmount[1] = -1 * directions[1] * (moveByY / 2 + separationBuffer);\n};\n\n/**\n * This method decides the separation direction of overlapping nodes\n *\n * if directions[0] = -1, then rectA goes left\n * if directions[0] = 1, then rectA goes right\n * if directions[1] = -1, then rectA goes up\n * if directions[1] = 1, then rectA goes down\n */\nIGeometry.decideDirectionsForOverlappingNodes = function (rectA, rectB, directions) {\n if (rectA.getCenterX() < rectB.getCenterX()) {\n directions[0] = -1;\n } else {\n directions[0] = 1;\n }\n\n if (rectA.getCenterY() < rectB.getCenterY()) {\n directions[1] = -1;\n } else {\n directions[1] = 1;\n }\n};\n\n/**\n * This method calculates the intersection (clipping) points of the two\n * input rectangles with line segment defined by the centers of these two\n * rectangles. The clipping points are saved in the input double array and\n * whether or not the two rectangles overlap is returned.\n */\nIGeometry.getIntersection2 = function (rectA, rectB, result) {\n //result[0-1] will contain clipPoint of rectA, result[2-3] will contain clipPoint of rectB\n var p1x = rectA.getCenterX();\n var p1y = rectA.getCenterY();\n var p2x = rectB.getCenterX();\n var p2y = rectB.getCenterY();\n\n //if two rectangles intersect, then clipping points are centers\n if (rectA.intersects(rectB)) {\n result[0] = p1x;\n result[1] = p1y;\n result[2] = p2x;\n result[3] = p2y;\n return true;\n }\n //variables for rectA\n var topLeftAx = rectA.getX();\n var topLeftAy = rectA.getY();\n var topRightAx = rectA.getRight();\n var bottomLeftAx = rectA.getX();\n var bottomLeftAy = rectA.getBottom();\n var bottomRightAx = rectA.getRight();\n var halfWidthA = rectA.getWidthHalf();\n var halfHeightA = rectA.getHeightHalf();\n //variables for rectB\n var topLeftBx = rectB.getX();\n var topLeftBy = rectB.getY();\n var topRightBx = rectB.getRight();\n var bottomLeftBx = rectB.getX();\n var bottomLeftBy = rectB.getBottom();\n var bottomRightBx = rectB.getRight();\n var halfWidthB = rectB.getWidthHalf();\n var halfHeightB = rectB.getHeightHalf();\n\n //flag whether clipping points are found\n var clipPointAFound = false;\n var clipPointBFound = false;\n\n // line is vertical\n if (p1x === p2x) {\n if (p1y > p2y) {\n result[0] = p1x;\n result[1] = topLeftAy;\n result[2] = p2x;\n result[3] = bottomLeftBy;\n return false;\n } else if (p1y < p2y) {\n result[0] = p1x;\n result[1] = bottomLeftAy;\n result[2] = p2x;\n result[3] = topLeftBy;\n return false;\n } else {\n //not line, return null;\n }\n }\n // line is horizontal\n else if (p1y === p2y) {\n if (p1x > p2x) {\n result[0] = topLeftAx;\n result[1] = p1y;\n result[2] = topRightBx;\n result[3] = p2y;\n return false;\n } else if (p1x < p2x) {\n result[0] = topRightAx;\n result[1] = p1y;\n result[2] = topLeftBx;\n result[3] = p2y;\n return false;\n } else {\n //not valid line, return null;\n }\n } else {\n //slopes of rectA's and rectB's diagonals\n var slopeA = rectA.height / rectA.width;\n var slopeB = rectB.height / rectB.width;\n\n //slope of line between center of rectA and center of rectB\n var slopePrime = (p2y - p1y) / (p2x - p1x);\n var cardinalDirectionA = void 0;\n var cardinalDirectionB = void 0;\n var tempPointAx = void 0;\n var tempPointAy = void 0;\n var tempPointBx = void 0;\n var tempPointBy = void 0;\n\n //determine whether clipping point is the corner of nodeA\n if (-slopeA === slopePrime) {\n if (p1x > p2x) {\n result[0] = bottomLeftAx;\n result[1] = bottomLeftAy;\n clipPointAFound = true;\n } else {\n result[0] = topRightAx;\n result[1] = topLeftAy;\n clipPointAFound = true;\n }\n } else if (slopeA === slopePrime) {\n if (p1x > p2x) {\n result[0] = topLeftAx;\n result[1] = topLeftAy;\n clipPointAFound = true;\n } else {\n result[0] = bottomRightAx;\n result[1] = bottomLeftAy;\n clipPointAFound = true;\n }\n }\n\n //determine whether clipping point is the corner of nodeB\n if (-slopeB === slopePrime) {\n if (p2x > p1x) {\n result[2] = bottomLeftBx;\n result[3] = bottomLeftBy;\n clipPointBFound = true;\n } else {\n result[2] = topRightBx;\n result[3] = topLeftBy;\n clipPointBFound = true;\n }\n } else if (slopeB === slopePrime) {\n if (p2x > p1x) {\n result[2] = topLeftBx;\n result[3] = topLeftBy;\n clipPointBFound = true;\n } else {\n result[2] = bottomRightBx;\n result[3] = bottomLeftBy;\n clipPointBFound = true;\n }\n }\n\n //if both clipping points are corners\n if (clipPointAFound && clipPointBFound) {\n return false;\n }\n\n //determine Cardinal Direction of rectangles\n if (p1x > p2x) {\n if (p1y > p2y) {\n cardinalDirectionA = this.getCardinalDirection(slopeA, slopePrime, 4);\n cardinalDirectionB = this.getCardinalDirection(slopeB, slopePrime, 2);\n } else {\n cardinalDirectionA = this.getCardinalDirection(-slopeA, slopePrime, 3);\n cardinalDirectionB = this.getCardinalDirection(-slopeB, slopePrime, 1);\n }\n } else {\n if (p1y > p2y) {\n cardinalDirectionA = this.getCardinalDirection(-slopeA, slopePrime, 1);\n cardinalDirectionB = this.getCardinalDirection(-slopeB, slopePrime, 3);\n } else {\n cardinalDirectionA = this.getCardinalDirection(slopeA, slopePrime, 2);\n cardinalDirectionB = this.getCardinalDirection(slopeB, slopePrime, 4);\n }\n }\n //calculate clipping Point if it is not found before\n if (!clipPointAFound) {\n switch (cardinalDirectionA) {\n case 1:\n tempPointAy = topLeftAy;\n tempPointAx = p1x + -halfHeightA / slopePrime;\n result[0] = tempPointAx;\n result[1] = tempPointAy;\n break;\n case 2:\n tempPointAx = bottomRightAx;\n tempPointAy = p1y + halfWidthA * slopePrime;\n result[0] = tempPointAx;\n result[1] = tempPointAy;\n break;\n case 3:\n tempPointAy = bottomLeftAy;\n tempPointAx = p1x + halfHeightA / slopePrime;\n result[0] = tempPointAx;\n result[1] = tempPointAy;\n break;\n case 4:\n tempPointAx = bottomLeftAx;\n tempPointAy = p1y + -halfWidthA * slopePrime;\n result[0] = tempPointAx;\n result[1] = tempPointAy;\n break;\n }\n }\n if (!clipPointBFound) {\n switch (cardinalDirectionB) {\n case 1:\n tempPointBy = topLeftBy;\n tempPointBx = p2x + -halfHeightB / slopePrime;\n result[2] = tempPointBx;\n result[3] = tempPointBy;\n break;\n case 2:\n tempPointBx = bottomRightBx;\n tempPointBy = p2y + halfWidthB * slopePrime;\n result[2] = tempPointBx;\n result[3] = tempPointBy;\n break;\n case 3:\n tempPointBy = bottomLeftBy;\n tempPointBx = p2x + halfHeightB / slopePrime;\n result[2] = tempPointBx;\n result[3] = tempPointBy;\n break;\n case 4:\n tempPointBx = bottomLeftBx;\n tempPointBy = p2y + -halfWidthB * slopePrime;\n result[2] = tempPointBx;\n result[3] = tempPointBy;\n break;\n }\n }\n }\n return false;\n};\n\n/**\n * This method returns in which cardinal direction does input point stays\n * 1: North\n * 2: East\n * 3: South\n * 4: West\n */\nIGeometry.getCardinalDirection = function (slope, slopePrime, line) {\n if (slope > slopePrime) {\n return line;\n } else {\n return 1 + line % 4;\n }\n};\n\n/**\n * This method calculates the intersection of the two lines defined by\n * point pairs (s1,s2) and (f1,f2).\n */\nIGeometry.getIntersection = function (s1, s2, f1, f2) {\n if (f2 == null) {\n return this.getIntersection2(s1, s2, f1);\n }\n\n var x1 = s1.x;\n var y1 = s1.y;\n var x2 = s2.x;\n var y2 = s2.y;\n var x3 = f1.x;\n var y3 = f1.y;\n var x4 = f2.x;\n var y4 = f2.y;\n var x = void 0,\n y = void 0; // intersection point\n var a1 = void 0,\n a2 = void 0,\n b1 = void 0,\n b2 = void 0,\n c1 = void 0,\n c2 = void 0; // coefficients of line eqns.\n var denom = void 0;\n\n a1 = y2 - y1;\n b1 = x1 - x2;\n c1 = x2 * y1 - x1 * y2; // { a1*x + b1*y + c1 = 0 is line 1 }\n\n a2 = y4 - y3;\n b2 = x3 - x4;\n c2 = x4 * y3 - x3 * y4; // { a2*x + b2*y + c2 = 0 is line 2 }\n\n denom = a1 * b2 - a2 * b1;\n\n if (denom === 0) {\n return null;\n }\n\n x = (b1 * c2 - b2 * c1) / denom;\n y = (a2 * c1 - a1 * c2) / denom;\n\n return new Point(x, y);\n};\n\n/**\n * This method finds and returns the angle of the vector from the + x-axis\n * in clockwise direction (compatible w/ Java coordinate system!).\n */\nIGeometry.angleOfVector = function (Cx, Cy, Nx, Ny) {\n var C_angle = void 0;\n\n if (Cx !== Nx) {\n C_angle = Math.atan((Ny - Cy) / (Nx - Cx));\n\n if (Nx < Cx) {\n C_angle += Math.PI;\n } else if (Ny < Cy) {\n C_angle += this.TWO_PI;\n }\n } else if (Ny < Cy) {\n C_angle = this.ONE_AND_HALF_PI; // 270 degrees\n } else {\n C_angle = this.HALF_PI; // 90 degrees\n }\n\n return C_angle;\n};\n\n/**\n * This method checks whether the given two line segments (one with point\n * p1 and p2, the other with point p3 and p4) intersect at a point other\n * than these points.\n */\nIGeometry.doIntersect = function (p1, p2, p3, p4) {\n var a = p1.x;\n var b = p1.y;\n var c = p2.x;\n var d = p2.y;\n var p = p3.x;\n var q = p3.y;\n var r = p4.x;\n var s = p4.y;\n var det = (c - a) * (s - q) - (r - p) * (d - b);\n\n if (det === 0) {\n return false;\n } else {\n var lambda = ((s - q) * (r - a) + (p - r) * (s - b)) / det;\n var gamma = ((b - d) * (r - a) + (c - a) * (s - b)) / det;\n return 0 < lambda && lambda < 1 && 0 < gamma && gamma < 1;\n }\n};\n\n/**\n * This method checks and calculates the intersection of \n * a line segment and a circle.\n */\nIGeometry.findCircleLineIntersections = function (Ex, Ey, Lx, Ly, Cx, Cy, r) {\n\n // E is the starting point of the ray,\n // L is the end point of the ray,\n // C is the center of sphere you're testing against\n // r is the radius of that sphere\n\n // Compute:\n // d = L - E ( Direction vector of ray, from start to end )\n // f = E - C ( Vector from center sphere to ray start )\n\n // Then the intersection is found by..\n // P = E + t * d\n // This is a parametric equation:\n // Px = Ex + tdx\n // Py = Ey + tdy\n\n // get a, b, c values\n var a = (Lx - Ex) * (Lx - Ex) + (Ly - Ey) * (Ly - Ey);\n var b = 2 * ((Ex - Cx) * (Lx - Ex) + (Ey - Cy) * (Ly - Ey));\n var c = (Ex - Cx) * (Ex - Cx) + (Ey - Cy) * (Ey - Cy) - r * r;\n\n // get discriminant\n var disc = b * b - 4 * a * c;\n if (disc >= 0) {\n // insert into quadratic formula\n var t1 = (-b + Math.sqrt(b * b - 4 * a * c)) / (2 * a);\n var t2 = (-b - Math.sqrt(b * b - 4 * a * c)) / (2 * a);\n var intersections = null;\n if (t1 >= 0 && t1 <= 1) {\n // t1 is the intersection, and it's closer than t2\n // (since t1 uses -b - discriminant)\n // Impale, Poke\n return [t1];\n }\n\n // here t1 didn't intersect so we are either started\n // inside the sphere or completely past it\n if (t2 >= 0 && t2 <= 1) {\n // ExitWound\n return [t2];\n }\n\n return intersections;\n } else return null;\n};\n\n// -----------------------------------------------------------------------------\n// Section: Class Constants\n// -----------------------------------------------------------------------------\n/**\n * Some useful pre-calculated constants\n */\nIGeometry.HALF_PI = 0.5 * Math.PI;\nIGeometry.ONE_AND_HALF_PI = 1.5 * Math.PI;\nIGeometry.TWO_PI = 2.0 * Math.PI;\nIGeometry.THREE_PI = 3.0 * Math.PI;\n\nmodule.exports = IGeometry;\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nfunction IMath() {}\n\n/**\n * This method returns the sign of the input value.\n */\nIMath.sign = function (value) {\n if (value > 0) {\n return 1;\n } else if (value < 0) {\n return -1;\n } else {\n return 0;\n }\n};\n\nIMath.floor = function (value) {\n return value < 0 ? Math.ceil(value) : Math.floor(value);\n};\n\nIMath.ceil = function (value) {\n return value < 0 ? Math.floor(value) : Math.ceil(value);\n};\n\nmodule.exports = IMath;\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nfunction Integer() {}\n\nInteger.MAX_VALUE = 2147483647;\nInteger.MIN_VALUE = -2147483648;\n\nmodule.exports = Integer;\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar nodeFrom = function nodeFrom(value) {\n return { value: value, next: null, prev: null };\n};\n\nvar add = function add(prev, node, next, list) {\n if (prev !== null) {\n prev.next = node;\n } else {\n list.head = node;\n }\n\n if (next !== null) {\n next.prev = node;\n } else {\n list.tail = node;\n }\n\n node.prev = prev;\n node.next = next;\n\n list.length++;\n\n return node;\n};\n\nvar _remove = function _remove(node, list) {\n var prev = node.prev,\n next = node.next;\n\n\n if (prev !== null) {\n prev.next = next;\n } else {\n list.head = next;\n }\n\n if (next !== null) {\n next.prev = prev;\n } else {\n list.tail = prev;\n }\n\n node.prev = node.next = null;\n\n list.length--;\n\n return node;\n};\n\nvar LinkedList = function () {\n function LinkedList(vals) {\n var _this = this;\n\n _classCallCheck(this, LinkedList);\n\n this.length = 0;\n this.head = null;\n this.tail = null;\n\n if (vals != null) {\n vals.forEach(function (v) {\n return _this.push(v);\n });\n }\n }\n\n _createClass(LinkedList, [{\n key: \"size\",\n value: function size() {\n return this.length;\n }\n }, {\n key: \"insertBefore\",\n value: function insertBefore(val, otherNode) {\n return add(otherNode.prev, nodeFrom(val), otherNode, this);\n }\n }, {\n key: \"insertAfter\",\n value: function insertAfter(val, otherNode) {\n return add(otherNode, nodeFrom(val), otherNode.next, this);\n }\n }, {\n key: \"insertNodeBefore\",\n value: function insertNodeBefore(newNode, otherNode) {\n return add(otherNode.prev, newNode, otherNode, this);\n }\n }, {\n key: \"insertNodeAfter\",\n value: function insertNodeAfter(newNode, otherNode) {\n return add(otherNode, newNode, otherNode.next, this);\n }\n }, {\n key: \"push\",\n value: function push(val) {\n return add(this.tail, nodeFrom(val), null, this);\n }\n }, {\n key: \"unshift\",\n value: function unshift(val) {\n return add(null, nodeFrom(val), this.head, this);\n }\n }, {\n key: \"remove\",\n value: function remove(node) {\n return _remove(node, this);\n }\n }, {\n key: \"pop\",\n value: function pop() {\n return _remove(this.tail, this).value;\n }\n }, {\n key: \"popNode\",\n value: function popNode() {\n return _remove(this.tail, this);\n }\n }, {\n key: \"shift\",\n value: function shift() {\n return _remove(this.head, this).value;\n }\n }, {\n key: \"shiftNode\",\n value: function shiftNode() {\n return _remove(this.head, this);\n }\n }, {\n key: \"get_object_at\",\n value: function get_object_at(index) {\n if (index <= this.length()) {\n var i = 1;\n var current = this.head;\n while (i < index) {\n current = current.next;\n i++;\n }\n return current.value;\n }\n }\n }, {\n key: \"set_object_at\",\n value: function set_object_at(index, value) {\n if (index <= this.length()) {\n var i = 1;\n var current = this.head;\n while (i < index) {\n current = current.next;\n i++;\n }\n current.value = value;\n }\n }\n }]);\n\n return LinkedList;\n}();\n\nmodule.exports = LinkedList;\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/*\r\n *This class is the javascript implementation of the Point.java class in jdk\r\n */\nfunction Point(x, y, p) {\n this.x = null;\n this.y = null;\n if (x == null && y == null && p == null) {\n this.x = 0;\n this.y = 0;\n } else if (typeof x == 'number' && typeof y == 'number' && p == null) {\n this.x = x;\n this.y = y;\n } else if (x.constructor.name == 'Point' && y == null && p == null) {\n p = x;\n this.x = p.x;\n this.y = p.y;\n }\n}\n\nPoint.prototype.getX = function () {\n return this.x;\n};\n\nPoint.prototype.getY = function () {\n return this.y;\n};\n\nPoint.prototype.getLocation = function () {\n return new Point(this.x, this.y);\n};\n\nPoint.prototype.setLocation = function (x, y, p) {\n if (x.constructor.name == 'Point' && y == null && p == null) {\n p = x;\n this.setLocation(p.x, p.y);\n } else if (typeof x == 'number' && typeof y == 'number' && p == null) {\n //if both parameters are integer just move (x,y) location\n if (parseInt(x) == x && parseInt(y) == y) {\n this.move(x, y);\n } else {\n this.x = Math.floor(x + 0.5);\n this.y = Math.floor(y + 0.5);\n }\n }\n};\n\nPoint.prototype.move = function (x, y) {\n this.x = x;\n this.y = y;\n};\n\nPoint.prototype.translate = function (dx, dy) {\n this.x += dx;\n this.y += dy;\n};\n\nPoint.prototype.equals = function (obj) {\n if (obj.constructor.name == \"Point\") {\n var pt = obj;\n return this.x == pt.x && this.y == pt.y;\n }\n return this == obj;\n};\n\nPoint.prototype.toString = function () {\n return new Point().constructor.name + \"[x=\" + this.x + \",y=\" + this.y + \"]\";\n};\n\nmodule.exports = Point;\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nfunction RectangleD(x, y, width, height) {\n this.x = 0;\n this.y = 0;\n this.width = 0;\n this.height = 0;\n\n if (x != null && y != null && width != null && height != null) {\n this.x = x;\n this.y = y;\n this.width = width;\n this.height = height;\n }\n}\n\nRectangleD.prototype.getX = function () {\n return this.x;\n};\n\nRectangleD.prototype.setX = function (x) {\n this.x = x;\n};\n\nRectangleD.prototype.getY = function () {\n return this.y;\n};\n\nRectangleD.prototype.setY = function (y) {\n this.y = y;\n};\n\nRectangleD.prototype.getWidth = function () {\n return this.width;\n};\n\nRectangleD.prototype.setWidth = function (width) {\n this.width = width;\n};\n\nRectangleD.prototype.getHeight = function () {\n return this.height;\n};\n\nRectangleD.prototype.setHeight = function (height) {\n this.height = height;\n};\n\nRectangleD.prototype.getRight = function () {\n return this.x + this.width;\n};\n\nRectangleD.prototype.getBottom = function () {\n return this.y + this.height;\n};\n\nRectangleD.prototype.intersects = function (a) {\n if (this.getRight() < a.x) {\n return false;\n }\n\n if (this.getBottom() < a.y) {\n return false;\n }\n\n if (a.getRight() < this.x) {\n return false;\n }\n\n if (a.getBottom() < this.y) {\n return false;\n }\n\n return true;\n};\n\nRectangleD.prototype.getCenterX = function () {\n return this.x + this.width / 2;\n};\n\nRectangleD.prototype.getMinX = function () {\n return this.getX();\n};\n\nRectangleD.prototype.getMaxX = function () {\n return this.getX() + this.width;\n};\n\nRectangleD.prototype.getCenterY = function () {\n return this.y + this.height / 2;\n};\n\nRectangleD.prototype.getMinY = function () {\n return this.getY();\n};\n\nRectangleD.prototype.getMaxY = function () {\n return this.getY() + this.height;\n};\n\nRectangleD.prototype.getWidthHalf = function () {\n return this.width / 2;\n};\n\nRectangleD.prototype.getHeightHalf = function () {\n return this.height / 2;\n};\n\nmodule.exports = RectangleD;\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nfunction UniqueIDGeneretor() {}\n\nUniqueIDGeneretor.lastID = 0;\n\nUniqueIDGeneretor.createID = function (obj) {\n if (UniqueIDGeneretor.isPrimitive(obj)) {\n return obj;\n }\n if (obj.uniqueID != null) {\n return obj.uniqueID;\n }\n obj.uniqueID = UniqueIDGeneretor.getString();\n UniqueIDGeneretor.lastID++;\n return obj.uniqueID;\n};\n\nUniqueIDGeneretor.getString = function (id) {\n if (id == null) id = UniqueIDGeneretor.lastID;\n return \"Object#\" + id + \"\";\n};\n\nUniqueIDGeneretor.isPrimitive = function (arg) {\n var type = typeof arg === \"undefined\" ? \"undefined\" : _typeof(arg);\n return arg == null || type != \"object\" && type != \"function\";\n};\n\nmodule.exports = UniqueIDGeneretor;\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar LayoutConstants = __webpack_require__(0);\nvar LGraphManager = __webpack_require__(7);\nvar LNode = __webpack_require__(3);\nvar LEdge = __webpack_require__(1);\nvar LGraph = __webpack_require__(6);\nvar PointD = __webpack_require__(5);\nvar Transform = __webpack_require__(17);\nvar Emitter = __webpack_require__(29);\n\nfunction Layout(isRemoteUse) {\n Emitter.call(this);\n\n //Layout Quality: 0:draft, 1:default, 2:proof\n this.layoutQuality = LayoutConstants.QUALITY;\n //Whether layout should create bendpoints as needed or not\n this.createBendsAsNeeded = LayoutConstants.DEFAULT_CREATE_BENDS_AS_NEEDED;\n //Whether layout should be incremental or not\n this.incremental = LayoutConstants.DEFAULT_INCREMENTAL;\n //Whether we animate from before to after layout node positions\n this.animationOnLayout = LayoutConstants.DEFAULT_ANIMATION_ON_LAYOUT;\n //Whether we animate the layout process or not\n this.animationDuringLayout = LayoutConstants.DEFAULT_ANIMATION_DURING_LAYOUT;\n //Number iterations that should be done between two successive animations\n this.animationPeriod = LayoutConstants.DEFAULT_ANIMATION_PERIOD;\n /**\r\n * Whether or not leaf nodes (non-compound nodes) are of uniform sizes. When\r\n * they are, both spring and repulsion forces between two leaf nodes can be\r\n * calculated without the expensive clipping point calculations, resulting\r\n * in major speed-up.\r\n */\n this.uniformLeafNodeSizes = LayoutConstants.DEFAULT_UNIFORM_LEAF_NODE_SIZES;\n /**\r\n * This is used for creation of bendpoints by using dummy nodes and edges.\r\n * Maps an LEdge to its dummy bendpoint path.\r\n */\n this.edgeToDummyNodes = new Map();\n this.graphManager = new LGraphManager(this);\n this.isLayoutFinished = false;\n this.isSubLayout = false;\n this.isRemoteUse = false;\n\n if (isRemoteUse != null) {\n this.isRemoteUse = isRemoteUse;\n }\n}\n\nLayout.RANDOM_SEED = 1;\n\nLayout.prototype = Object.create(Emitter.prototype);\n\nLayout.prototype.getGraphManager = function () {\n return this.graphManager;\n};\n\nLayout.prototype.getAllNodes = function () {\n return this.graphManager.getAllNodes();\n};\n\nLayout.prototype.getAllEdges = function () {\n return this.graphManager.getAllEdges();\n};\n\nLayout.prototype.getAllNodesToApplyGravitation = function () {\n return this.graphManager.getAllNodesToApplyGravitation();\n};\n\nLayout.prototype.newGraphManager = function () {\n var gm = new LGraphManager(this);\n this.graphManager = gm;\n return gm;\n};\n\nLayout.prototype.newGraph = function (vGraph) {\n return new LGraph(null, this.graphManager, vGraph);\n};\n\nLayout.prototype.newNode = function (vNode) {\n return new LNode(this.graphManager, vNode);\n};\n\nLayout.prototype.newEdge = function (vEdge) {\n return new LEdge(null, null, vEdge);\n};\n\nLayout.prototype.checkLayoutSuccess = function () {\n return this.graphManager.getRoot() == null || this.graphManager.getRoot().getNodes().length == 0 || this.graphManager.includesInvalidEdge();\n};\n\nLayout.prototype.runLayout = function () {\n this.isLayoutFinished = false;\n\n if (this.tilingPreLayout) {\n this.tilingPreLayout();\n }\n\n this.initParameters();\n var isLayoutSuccessfull;\n\n if (this.checkLayoutSuccess()) {\n isLayoutSuccessfull = false;\n } else {\n isLayoutSuccessfull = this.layout();\n }\n\n if (LayoutConstants.ANIMATE === 'during') {\n // If this is a 'during' layout animation. Layout is not finished yet. \n // We need to perform these in index.js when layout is really finished.\n return false;\n }\n\n if (isLayoutSuccessfull) {\n if (!this.isSubLayout) {\n this.doPostLayout();\n }\n }\n\n if (this.tilingPostLayout) {\n this.tilingPostLayout();\n }\n\n this.isLayoutFinished = true;\n\n return isLayoutSuccessfull;\n};\n\n/**\r\n * This method performs the operations required after layout.\r\n */\nLayout.prototype.doPostLayout = function () {\n //assert !isSubLayout : \"Should not be called on sub-layout!\";\n // Propagate geometric changes to v-level objects\n if (!this.incremental) {\n this.transform();\n }\n this.update();\n};\n\n/**\r\n * This method updates the geometry of the target graph according to\r\n * calculated layout.\r\n */\nLayout.prototype.update2 = function () {\n // update bend points\n if (this.createBendsAsNeeded) {\n this.createBendpointsFromDummyNodes();\n\n // reset all edges, since the topology has changed\n this.graphManager.resetAllEdges();\n }\n\n // perform edge, node and root updates if layout is not called\n // remotely\n if (!this.isRemoteUse) {\n // update all edges\n var edge;\n var allEdges = this.graphManager.getAllEdges();\n for (var i = 0; i < allEdges.length; i++) {\n edge = allEdges[i];\n // this.update(edge);\n }\n\n // recursively update nodes\n var node;\n var nodes = this.graphManager.getRoot().getNodes();\n for (var i = 0; i < nodes.length; i++) {\n node = nodes[i];\n // this.update(node);\n }\n\n // update root graph\n this.update(this.graphManager.getRoot());\n }\n};\n\nLayout.prototype.update = function (obj) {\n if (obj == null) {\n this.update2();\n } else if (obj instanceof LNode) {\n var node = obj;\n if (node.getChild() != null) {\n // since node is compound, recursively update child nodes\n var nodes = node.getChild().getNodes();\n for (var i = 0; i < nodes.length; i++) {\n update(nodes[i]);\n }\n }\n\n // if the l-level node is associated with a v-level graph object,\n // then it is assumed that the v-level node implements the\n // interface Updatable.\n if (node.vGraphObject != null) {\n // cast to Updatable without any type check\n var vNode = node.vGraphObject;\n\n // call the update method of the interface\n vNode.update(node);\n }\n } else if (obj instanceof LEdge) {\n var edge = obj;\n // if the l-level edge is associated with a v-level graph object,\n // then it is assumed that the v-level edge implements the\n // interface Updatable.\n\n if (edge.vGraphObject != null) {\n // cast to Updatable without any type check\n var vEdge = edge.vGraphObject;\n\n // call the update method of the interface\n vEdge.update(edge);\n }\n } else if (obj instanceof LGraph) {\n var graph = obj;\n // if the l-level graph is associated with a v-level graph object,\n // then it is assumed that the v-level object implements the\n // interface Updatable.\n\n if (graph.vGraphObject != null) {\n // cast to Updatable without any type check\n var vGraph = graph.vGraphObject;\n\n // call the update method of the interface\n vGraph.update(graph);\n }\n }\n};\n\n/**\r\n * This method is used to set all layout parameters to default values\r\n * determined at compile time.\r\n */\nLayout.prototype.initParameters = function () {\n if (!this.isSubLayout) {\n this.layoutQuality = LayoutConstants.QUALITY;\n this.animationDuringLayout = LayoutConstants.DEFAULT_ANIMATION_DURING_LAYOUT;\n this.animationPeriod = LayoutConstants.DEFAULT_ANIMATION_PERIOD;\n this.animationOnLayout = LayoutConstants.DEFAULT_ANIMATION_ON_LAYOUT;\n this.incremental = LayoutConstants.DEFAULT_INCREMENTAL;\n this.createBendsAsNeeded = LayoutConstants.DEFAULT_CREATE_BENDS_AS_NEEDED;\n this.uniformLeafNodeSizes = LayoutConstants.DEFAULT_UNIFORM_LEAF_NODE_SIZES;\n }\n\n if (this.animationDuringLayout) {\n this.animationOnLayout = false;\n }\n};\n\nLayout.prototype.transform = function (newLeftTop) {\n if (newLeftTop == undefined) {\n this.transform(new PointD(0, 0));\n } else {\n // create a transformation object (from Eclipse to layout). When an\n // inverse transform is applied, we get upper-left coordinate of the\n // drawing or the root graph at given input coordinate (some margins\n // already included in calculation of left-top).\n\n var trans = new Transform();\n var leftTop = this.graphManager.getRoot().updateLeftTop();\n\n if (leftTop != null) {\n trans.setWorldOrgX(newLeftTop.x);\n trans.setWorldOrgY(newLeftTop.y);\n\n trans.setDeviceOrgX(leftTop.x);\n trans.setDeviceOrgY(leftTop.y);\n\n var nodes = this.getAllNodes();\n var node;\n\n for (var i = 0; i < nodes.length; i++) {\n node = nodes[i];\n node.transform(trans);\n }\n }\n }\n};\n\nLayout.prototype.positionNodesRandomly = function (graph) {\n\n if (graph == undefined) {\n //assert !this.incremental;\n this.positionNodesRandomly(this.getGraphManager().getRoot());\n this.getGraphManager().getRoot().updateBounds(true);\n } else {\n var lNode;\n var childGraph;\n\n var nodes = graph.getNodes();\n for (var i = 0; i < nodes.length; i++) {\n lNode = nodes[i];\n childGraph = lNode.getChild();\n\n if (childGraph == null) {\n lNode.scatter();\n } else if (childGraph.getNodes().length == 0) {\n lNode.scatter();\n } else {\n this.positionNodesRandomly(childGraph);\n lNode.updateBounds();\n }\n }\n }\n};\n\n/**\r\n * This method returns a list of trees where each tree is represented as a\r\n * list of l-nodes. The method returns a list of size 0 when:\r\n * - The graph is not flat or\r\n * - One of the component(s) of the graph is not a tree.\r\n */\nLayout.prototype.getFlatForest = function () {\n var flatForest = [];\n var isForest = true;\n\n // Quick reference for all nodes in the graph manager associated with\n // this layout. The list should not be changed.\n var allNodes = this.graphManager.getRoot().getNodes();\n\n // First be sure that the graph is flat\n var isFlat = true;\n\n for (var i = 0; i < allNodes.length; i++) {\n if (allNodes[i].getChild() != null) {\n isFlat = false;\n }\n }\n\n // Return empty forest if the graph is not flat.\n if (!isFlat) {\n return flatForest;\n }\n\n // Run BFS for each component of the graph.\n\n var visited = new Set();\n var toBeVisited = [];\n var parents = new Map();\n var unProcessedNodes = [];\n\n unProcessedNodes = unProcessedNodes.concat(allNodes);\n\n // Each iteration of this loop finds a component of the graph and\n // decides whether it is a tree or not. If it is a tree, adds it to the\n // forest and continued with the next component.\n\n while (unProcessedNodes.length > 0 && isForest) {\n toBeVisited.push(unProcessedNodes[0]);\n\n // Start the BFS. Each iteration of this loop visits a node in a\n // BFS manner.\n while (toBeVisited.length > 0 && isForest) {\n //pool operation\n var currentNode = toBeVisited[0];\n toBeVisited.splice(0, 1);\n visited.add(currentNode);\n\n // Traverse all neighbors of this node\n var neighborEdges = currentNode.getEdges();\n\n for (var i = 0; i < neighborEdges.length; i++) {\n var currentNeighbor = neighborEdges[i].getOtherEnd(currentNode);\n\n // If BFS is not growing from this neighbor.\n if (parents.get(currentNode) != currentNeighbor) {\n // We haven't previously visited this neighbor.\n if (!visited.has(currentNeighbor)) {\n toBeVisited.push(currentNeighbor);\n parents.set(currentNeighbor, currentNode);\n }\n // Since we have previously visited this neighbor and\n // this neighbor is not parent of currentNode, given\n // graph contains a component that is not tree, hence\n // it is not a forest.\n else {\n isForest = false;\n break;\n }\n }\n }\n }\n\n // The graph contains a component that is not a tree. Empty\n // previously found trees. The method will end.\n if (!isForest) {\n flatForest = [];\n }\n // Save currently visited nodes as a tree in our forest. Reset\n // visited and parents lists. Continue with the next component of\n // the graph, if any.\n else {\n var temp = [].concat(_toConsumableArray(visited));\n flatForest.push(temp);\n //flatForest = flatForest.concat(temp);\n //unProcessedNodes.removeAll(visited);\n for (var i = 0; i < temp.length; i++) {\n var value = temp[i];\n var index = unProcessedNodes.indexOf(value);\n if (index > -1) {\n unProcessedNodes.splice(index, 1);\n }\n }\n visited = new Set();\n parents = new Map();\n }\n }\n\n return flatForest;\n};\n\n/**\r\n * This method creates dummy nodes (an l-level node with minimal dimensions)\r\n * for the given edge (one per bendpoint). The existing l-level structure\r\n * is updated accordingly.\r\n */\nLayout.prototype.createDummyNodesForBendpoints = function (edge) {\n var dummyNodes = [];\n var prev = edge.source;\n\n var graph = this.graphManager.calcLowestCommonAncestor(edge.source, edge.target);\n\n for (var i = 0; i < edge.bendpoints.length; i++) {\n // create new dummy node\n var dummyNode = this.newNode(null);\n dummyNode.setRect(new Point(0, 0), new Dimension(1, 1));\n\n graph.add(dummyNode);\n\n // create new dummy edge between prev and dummy node\n var dummyEdge = this.newEdge(null);\n this.graphManager.add(dummyEdge, prev, dummyNode);\n\n dummyNodes.add(dummyNode);\n prev = dummyNode;\n }\n\n var dummyEdge = this.newEdge(null);\n this.graphManager.add(dummyEdge, prev, edge.target);\n\n this.edgeToDummyNodes.set(edge, dummyNodes);\n\n // remove real edge from graph manager if it is inter-graph\n if (edge.isInterGraph()) {\n this.graphManager.remove(edge);\n }\n // else, remove the edge from the current graph\n else {\n graph.remove(edge);\n }\n\n return dummyNodes;\n};\n\n/**\r\n * This method creates bendpoints for edges from the dummy nodes\r\n * at l-level.\r\n */\nLayout.prototype.createBendpointsFromDummyNodes = function () {\n var edges = [];\n edges = edges.concat(this.graphManager.getAllEdges());\n edges = [].concat(_toConsumableArray(this.edgeToDummyNodes.keys())).concat(edges);\n\n for (var k = 0; k < edges.length; k++) {\n var lEdge = edges[k];\n\n if (lEdge.bendpoints.length > 0) {\n var path = this.edgeToDummyNodes.get(lEdge);\n\n for (var i = 0; i < path.length; i++) {\n var dummyNode = path[i];\n var p = new PointD(dummyNode.getCenterX(), dummyNode.getCenterY());\n\n // update bendpoint's location according to dummy node\n var ebp = lEdge.bendpoints.get(i);\n ebp.x = p.x;\n ebp.y = p.y;\n\n // remove the dummy node, dummy edges incident with this\n // dummy node is also removed (within the remove method)\n dummyNode.getOwner().remove(dummyNode);\n }\n\n // add the real edge to graph\n this.graphManager.add(lEdge, lEdge.source, lEdge.target);\n }\n }\n};\n\nLayout.transform = function (sliderValue, defaultValue, minDiv, maxMul) {\n if (minDiv != undefined && maxMul != undefined) {\n var value = defaultValue;\n\n if (sliderValue <= 50) {\n var minValue = defaultValue / minDiv;\n value -= (defaultValue - minValue) / 50 * (50 - sliderValue);\n } else {\n var maxValue = defaultValue * maxMul;\n value += (maxValue - defaultValue) / 50 * (sliderValue - 50);\n }\n\n return value;\n } else {\n var a, b;\n\n if (sliderValue <= 50) {\n a = 9.0 * defaultValue / 500.0;\n b = defaultValue / 10.0;\n } else {\n a = 9.0 * defaultValue / 50.0;\n b = -8 * defaultValue;\n }\n\n return a * sliderValue + b;\n }\n};\n\n/**\r\n * This method finds and returns the center of the given nodes, assuming\r\n * that the given nodes form a tree in themselves.\r\n */\nLayout.findCenterOfTree = function (nodes) {\n var list = [];\n list = list.concat(nodes);\n\n var removedNodes = [];\n var remainingDegrees = new Map();\n var foundCenter = false;\n var centerNode = null;\n\n if (list.length == 1 || list.length == 2) {\n foundCenter = true;\n centerNode = list[0];\n }\n\n for (var i = 0; i < list.length; i++) {\n var node = list[i];\n var degree = node.getNeighborsList().size;\n remainingDegrees.set(node, node.getNeighborsList().size);\n\n if (degree == 1) {\n removedNodes.push(node);\n }\n }\n\n var tempList = [];\n tempList = tempList.concat(removedNodes);\n\n while (!foundCenter) {\n var tempList2 = [];\n tempList2 = tempList2.concat(tempList);\n tempList = [];\n\n for (var i = 0; i < list.length; i++) {\n var node = list[i];\n\n var index = list.indexOf(node);\n if (index >= 0) {\n list.splice(index, 1);\n }\n\n var neighbours = node.getNeighborsList();\n\n neighbours.forEach(function (neighbour) {\n if (removedNodes.indexOf(neighbour) < 0) {\n var otherDegree = remainingDegrees.get(neighbour);\n var newDegree = otherDegree - 1;\n\n if (newDegree == 1) {\n tempList.push(neighbour);\n }\n\n remainingDegrees.set(neighbour, newDegree);\n }\n });\n }\n\n removedNodes = removedNodes.concat(tempList);\n\n if (list.length == 1 || list.length == 2) {\n foundCenter = true;\n centerNode = list[0];\n }\n }\n\n return centerNode;\n};\n\n/**\r\n * During the coarsening process, this layout may be referenced by two graph managers\r\n * this setter function grants access to change the currently being used graph manager\r\n */\nLayout.prototype.setGraphManager = function (gm) {\n this.graphManager = gm;\n};\n\nmodule.exports = Layout;\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nfunction RandomSeed() {}\n// adapted from: https://stackoverflow.com/a/19303725\nRandomSeed.seed = 1;\nRandomSeed.x = 0;\n\nRandomSeed.nextDouble = function () {\n RandomSeed.x = Math.sin(RandomSeed.seed++) * 10000;\n return RandomSeed.x - Math.floor(RandomSeed.x);\n};\n\nmodule.exports = RandomSeed;\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar PointD = __webpack_require__(5);\n\nfunction Transform(x, y) {\n this.lworldOrgX = 0.0;\n this.lworldOrgY = 0.0;\n this.ldeviceOrgX = 0.0;\n this.ldeviceOrgY = 0.0;\n this.lworldExtX = 1.0;\n this.lworldExtY = 1.0;\n this.ldeviceExtX = 1.0;\n this.ldeviceExtY = 1.0;\n}\n\nTransform.prototype.getWorldOrgX = function () {\n return this.lworldOrgX;\n};\n\nTransform.prototype.setWorldOrgX = function (wox) {\n this.lworldOrgX = wox;\n};\n\nTransform.prototype.getWorldOrgY = function () {\n return this.lworldOrgY;\n};\n\nTransform.prototype.setWorldOrgY = function (woy) {\n this.lworldOrgY = woy;\n};\n\nTransform.prototype.getWorldExtX = function () {\n return this.lworldExtX;\n};\n\nTransform.prototype.setWorldExtX = function (wex) {\n this.lworldExtX = wex;\n};\n\nTransform.prototype.getWorldExtY = function () {\n return this.lworldExtY;\n};\n\nTransform.prototype.setWorldExtY = function (wey) {\n this.lworldExtY = wey;\n};\n\n/* Device related */\n\nTransform.prototype.getDeviceOrgX = function () {\n return this.ldeviceOrgX;\n};\n\nTransform.prototype.setDeviceOrgX = function (dox) {\n this.ldeviceOrgX = dox;\n};\n\nTransform.prototype.getDeviceOrgY = function () {\n return this.ldeviceOrgY;\n};\n\nTransform.prototype.setDeviceOrgY = function (doy) {\n this.ldeviceOrgY = doy;\n};\n\nTransform.prototype.getDeviceExtX = function () {\n return this.ldeviceExtX;\n};\n\nTransform.prototype.setDeviceExtX = function (dex) {\n this.ldeviceExtX = dex;\n};\n\nTransform.prototype.getDeviceExtY = function () {\n return this.ldeviceExtY;\n};\n\nTransform.prototype.setDeviceExtY = function (dey) {\n this.ldeviceExtY = dey;\n};\n\nTransform.prototype.transformX = function (x) {\n var xDevice = 0.0;\n var worldExtX = this.lworldExtX;\n if (worldExtX != 0.0) {\n xDevice = this.ldeviceOrgX + (x - this.lworldOrgX) * this.ldeviceExtX / worldExtX;\n }\n\n return xDevice;\n};\n\nTransform.prototype.transformY = function (y) {\n var yDevice = 0.0;\n var worldExtY = this.lworldExtY;\n if (worldExtY != 0.0) {\n yDevice = this.ldeviceOrgY + (y - this.lworldOrgY) * this.ldeviceExtY / worldExtY;\n }\n\n return yDevice;\n};\n\nTransform.prototype.inverseTransformX = function (x) {\n var xWorld = 0.0;\n var deviceExtX = this.ldeviceExtX;\n if (deviceExtX != 0.0) {\n xWorld = this.lworldOrgX + (x - this.ldeviceOrgX) * this.lworldExtX / deviceExtX;\n }\n\n return xWorld;\n};\n\nTransform.prototype.inverseTransformY = function (y) {\n var yWorld = 0.0;\n var deviceExtY = this.ldeviceExtY;\n if (deviceExtY != 0.0) {\n yWorld = this.lworldOrgY + (y - this.ldeviceOrgY) * this.lworldExtY / deviceExtY;\n }\n return yWorld;\n};\n\nTransform.prototype.inverseTransformPoint = function (inPoint) {\n var outPoint = new PointD(this.inverseTransformX(inPoint.x), this.inverseTransformY(inPoint.y));\n return outPoint;\n};\n\nmodule.exports = Transform;\n\n/***/ }),\n/* 18 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar Layout = __webpack_require__(15);\nvar FDLayoutConstants = __webpack_require__(4);\nvar LayoutConstants = __webpack_require__(0);\nvar IGeometry = __webpack_require__(8);\nvar IMath = __webpack_require__(9);\n\nfunction FDLayout() {\n Layout.call(this);\n\n this.useSmartIdealEdgeLengthCalculation = FDLayoutConstants.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION;\n this.gravityConstant = FDLayoutConstants.DEFAULT_GRAVITY_STRENGTH;\n this.compoundGravityConstant = FDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_STRENGTH;\n this.gravityRangeFactor = FDLayoutConstants.DEFAULT_GRAVITY_RANGE_FACTOR;\n this.compoundGravityRangeFactor = FDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR;\n this.displacementThresholdPerNode = 3.0 * FDLayoutConstants.DEFAULT_EDGE_LENGTH / 100;\n this.coolingFactor = FDLayoutConstants.DEFAULT_COOLING_FACTOR_INCREMENTAL;\n this.initialCoolingFactor = FDLayoutConstants.DEFAULT_COOLING_FACTOR_INCREMENTAL;\n this.totalDisplacement = 0.0;\n this.oldTotalDisplacement = 0.0;\n this.maxIterations = FDLayoutConstants.MAX_ITERATIONS;\n}\n\nFDLayout.prototype = Object.create(Layout.prototype);\n\nfor (var prop in Layout) {\n FDLayout[prop] = Layout[prop];\n}\n\nFDLayout.prototype.initParameters = function () {\n Layout.prototype.initParameters.call(this, arguments);\n\n this.totalIterations = 0;\n this.notAnimatedIterations = 0;\n\n this.useFRGridVariant = FDLayoutConstants.DEFAULT_USE_SMART_REPULSION_RANGE_CALCULATION;\n\n this.grid = [];\n};\n\nFDLayout.prototype.calcIdealEdgeLengths = function () {\n var edge;\n var originalIdealLength;\n var lcaDepth;\n var source;\n var target;\n var sizeOfSourceInLca;\n var sizeOfTargetInLca;\n\n var allEdges = this.getGraphManager().getAllEdges();\n for (var i = 0; i < allEdges.length; i++) {\n edge = allEdges[i];\n\n originalIdealLength = edge.idealLength;\n\n if (edge.isInterGraph) {\n source = edge.getSource();\n target = edge.getTarget();\n\n sizeOfSourceInLca = edge.getSourceInLca().getEstimatedSize();\n sizeOfTargetInLca = edge.getTargetInLca().getEstimatedSize();\n\n if (this.useSmartIdealEdgeLengthCalculation) {\n edge.idealLength += sizeOfSourceInLca + sizeOfTargetInLca - 2 * LayoutConstants.SIMPLE_NODE_SIZE;\n }\n\n lcaDepth = edge.getLca().getInclusionTreeDepth();\n\n edge.idealLength += originalIdealLength * FDLayoutConstants.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR * (source.getInclusionTreeDepth() + target.getInclusionTreeDepth() - 2 * lcaDepth);\n }\n }\n};\n\nFDLayout.prototype.initSpringEmbedder = function () {\n\n var s = this.getAllNodes().length;\n if (this.incremental) {\n if (s > FDLayoutConstants.ADAPTATION_LOWER_NODE_LIMIT) {\n this.coolingFactor = Math.max(this.coolingFactor * FDLayoutConstants.COOLING_ADAPTATION_FACTOR, this.coolingFactor - (s - FDLayoutConstants.ADAPTATION_LOWER_NODE_LIMIT) / (FDLayoutConstants.ADAPTATION_UPPER_NODE_LIMIT - FDLayoutConstants.ADAPTATION_LOWER_NODE_LIMIT) * this.coolingFactor * (1 - FDLayoutConstants.COOLING_ADAPTATION_FACTOR));\n }\n this.maxNodeDisplacement = FDLayoutConstants.MAX_NODE_DISPLACEMENT_INCREMENTAL;\n } else {\n if (s > FDLayoutConstants.ADAPTATION_LOWER_NODE_LIMIT) {\n this.coolingFactor = Math.max(FDLayoutConstants.COOLING_ADAPTATION_FACTOR, 1.0 - (s - FDLayoutConstants.ADAPTATION_LOWER_NODE_LIMIT) / (FDLayoutConstants.ADAPTATION_UPPER_NODE_LIMIT - FDLayoutConstants.ADAPTATION_LOWER_NODE_LIMIT) * (1 - FDLayoutConstants.COOLING_ADAPTATION_FACTOR));\n } else {\n this.coolingFactor = 1.0;\n }\n this.initialCoolingFactor = this.coolingFactor;\n this.maxNodeDisplacement = FDLayoutConstants.MAX_NODE_DISPLACEMENT;\n }\n\n this.maxIterations = Math.max(this.getAllNodes().length * 5, this.maxIterations);\n\n // Reassign this attribute by using new constant value\n this.displacementThresholdPerNode = 3.0 * FDLayoutConstants.DEFAULT_EDGE_LENGTH / 100;\n this.totalDisplacementThreshold = this.displacementThresholdPerNode * this.getAllNodes().length;\n\n this.repulsionRange = this.calcRepulsionRange();\n};\n\nFDLayout.prototype.calcSpringForces = function () {\n var lEdges = this.getAllEdges();\n var edge;\n\n for (var i = 0; i < lEdges.length; i++) {\n edge = lEdges[i];\n\n this.calcSpringForce(edge, edge.idealLength);\n }\n};\n\nFDLayout.prototype.calcRepulsionForces = function () {\n var gridUpdateAllowed = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n var forceToNodeSurroundingUpdate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var i, j;\n var nodeA, nodeB;\n var lNodes = this.getAllNodes();\n var processedNodeSet;\n\n if (this.useFRGridVariant) {\n if (this.totalIterations % FDLayoutConstants.GRID_CALCULATION_CHECK_PERIOD == 1 && gridUpdateAllowed) {\n this.updateGrid();\n }\n\n processedNodeSet = new Set();\n\n // calculate repulsion forces between each nodes and its surrounding\n for (i = 0; i < lNodes.length; i++) {\n nodeA = lNodes[i];\n this.calculateRepulsionForceOfANode(nodeA, processedNodeSet, gridUpdateAllowed, forceToNodeSurroundingUpdate);\n processedNodeSet.add(nodeA);\n }\n } else {\n for (i = 0; i < lNodes.length; i++) {\n nodeA = lNodes[i];\n\n for (j = i + 1; j < lNodes.length; j++) {\n nodeB = lNodes[j];\n\n // If both nodes are not members of the same graph, skip.\n if (nodeA.getOwner() != nodeB.getOwner()) {\n continue;\n }\n\n this.calcRepulsionForce(nodeA, nodeB);\n }\n }\n }\n};\n\nFDLayout.prototype.calcGravitationalForces = function () {\n var node;\n var lNodes = this.getAllNodesToApplyGravitation();\n\n for (var i = 0; i < lNodes.length; i++) {\n node = lNodes[i];\n this.calcGravitationalForce(node);\n }\n};\n\nFDLayout.prototype.moveNodes = function () {\n var lNodes = this.getAllNodes();\n var node;\n\n for (var i = 0; i < lNodes.length; i++) {\n node = lNodes[i];\n node.move();\n }\n};\n\nFDLayout.prototype.calcSpringForce = function (edge, idealLength) {\n var sourceNode = edge.getSource();\n var targetNode = edge.getTarget();\n\n var length;\n var springForce;\n var springForceX;\n var springForceY;\n\n // Update edge length\n if (this.uniformLeafNodeSizes && sourceNode.getChild() == null && targetNode.getChild() == null) {\n edge.updateLengthSimple();\n } else {\n edge.updateLength();\n\n if (edge.isOverlapingSourceAndTarget) {\n return;\n }\n }\n\n length = edge.getLength();\n\n if (length == 0) return;\n\n // Calculate spring forces\n springForce = edge.edgeElasticity * (length - idealLength);\n\n // Project force onto x and y axes\n springForceX = springForce * (edge.lengthX / length);\n springForceY = springForce * (edge.lengthY / length);\n\n // Apply forces on the end nodes\n sourceNode.springForceX += springForceX;\n sourceNode.springForceY += springForceY;\n targetNode.springForceX -= springForceX;\n targetNode.springForceY -= springForceY;\n};\n\nFDLayout.prototype.calcRepulsionForce = function (nodeA, nodeB) {\n var rectA = nodeA.getRect();\n var rectB = nodeB.getRect();\n var overlapAmount = new Array(2);\n var clipPoints = new Array(4);\n var distanceX;\n var distanceY;\n var distanceSquared;\n var distance;\n var repulsionForce;\n var repulsionForceX;\n var repulsionForceY;\n\n if (rectA.intersects(rectB)) // two nodes overlap\n {\n // calculate separation amount in x and y directions\n IGeometry.calcSeparationAmount(rectA, rectB, overlapAmount, FDLayoutConstants.DEFAULT_EDGE_LENGTH / 2.0);\n\n repulsionForceX = 2 * overlapAmount[0];\n repulsionForceY = 2 * overlapAmount[1];\n\n var childrenConstant = nodeA.noOfChildren * nodeB.noOfChildren / (nodeA.noOfChildren + nodeB.noOfChildren);\n\n // Apply forces on the two nodes\n nodeA.repulsionForceX -= childrenConstant * repulsionForceX;\n nodeA.repulsionForceY -= childrenConstant * repulsionForceY;\n nodeB.repulsionForceX += childrenConstant * repulsionForceX;\n nodeB.repulsionForceY += childrenConstant * repulsionForceY;\n } else // no overlap\n {\n // calculate distance\n\n if (this.uniformLeafNodeSizes && nodeA.getChild() == null && nodeB.getChild() == null) // simply base repulsion on distance of node centers\n {\n distanceX = rectB.getCenterX() - rectA.getCenterX();\n distanceY = rectB.getCenterY() - rectA.getCenterY();\n } else // use clipping points\n {\n IGeometry.getIntersection(rectA, rectB, clipPoints);\n\n distanceX = clipPoints[2] - clipPoints[0];\n distanceY = clipPoints[3] - clipPoints[1];\n }\n\n // No repulsion range. FR grid variant should take care of this.\n if (Math.abs(distanceX) < FDLayoutConstants.MIN_REPULSION_DIST) {\n distanceX = IMath.sign(distanceX) * FDLayoutConstants.MIN_REPULSION_DIST;\n }\n\n if (Math.abs(distanceY) < FDLayoutConstants.MIN_REPULSION_DIST) {\n distanceY = IMath.sign(distanceY) * FDLayoutConstants.MIN_REPULSION_DIST;\n }\n\n distanceSquared = distanceX * distanceX + distanceY * distanceY;\n distance = Math.sqrt(distanceSquared);\n\n // Here we use half of the nodes' repulsion values for backward compatibility\n repulsionForce = (nodeA.nodeRepulsion / 2 + nodeB.nodeRepulsion / 2) * nodeA.noOfChildren * nodeB.noOfChildren / distanceSquared;\n\n // Project force onto x and y axes\n repulsionForceX = repulsionForce * distanceX / distance;\n repulsionForceY = repulsionForce * distanceY / distance;\n\n // Apply forces on the two nodes \n nodeA.repulsionForceX -= repulsionForceX;\n nodeA.repulsionForceY -= repulsionForceY;\n nodeB.repulsionForceX += repulsionForceX;\n nodeB.repulsionForceY += repulsionForceY;\n }\n};\n\nFDLayout.prototype.calcGravitationalForce = function (node) {\n var ownerGraph;\n var ownerCenterX;\n var ownerCenterY;\n var distanceX;\n var distanceY;\n var absDistanceX;\n var absDistanceY;\n var estimatedSize;\n ownerGraph = node.getOwner();\n\n ownerCenterX = (ownerGraph.getRight() + ownerGraph.getLeft()) / 2;\n ownerCenterY = (ownerGraph.getTop() + ownerGraph.getBottom()) / 2;\n distanceX = node.getCenterX() - ownerCenterX;\n distanceY = node.getCenterY() - ownerCenterY;\n absDistanceX = Math.abs(distanceX) + node.getWidth() / 2;\n absDistanceY = Math.abs(distanceY) + node.getHeight() / 2;\n\n if (node.getOwner() == this.graphManager.getRoot()) // in the root graph\n {\n estimatedSize = ownerGraph.getEstimatedSize() * this.gravityRangeFactor;\n\n if (absDistanceX > estimatedSize || absDistanceY > estimatedSize) {\n node.gravitationForceX = -this.gravityConstant * distanceX;\n node.gravitationForceY = -this.gravityConstant * distanceY;\n }\n } else // inside a compound\n {\n estimatedSize = ownerGraph.getEstimatedSize() * this.compoundGravityRangeFactor;\n\n if (absDistanceX > estimatedSize || absDistanceY > estimatedSize) {\n node.gravitationForceX = -this.gravityConstant * distanceX * this.compoundGravityConstant;\n node.gravitationForceY = -this.gravityConstant * distanceY * this.compoundGravityConstant;\n }\n }\n};\n\nFDLayout.prototype.isConverged = function () {\n var converged;\n var oscilating = false;\n\n if (this.totalIterations > this.maxIterations / 3) {\n oscilating = Math.abs(this.totalDisplacement - this.oldTotalDisplacement) < 2;\n }\n\n converged = this.totalDisplacement < this.totalDisplacementThreshold;\n\n this.oldTotalDisplacement = this.totalDisplacement;\n\n return converged || oscilating;\n};\n\nFDLayout.prototype.animate = function () {\n if (this.animationDuringLayout && !this.isSubLayout) {\n if (this.notAnimatedIterations == this.animationPeriod) {\n this.update();\n this.notAnimatedIterations = 0;\n } else {\n this.notAnimatedIterations++;\n }\n }\n};\n\n//This method calculates the number of children (weight) for all nodes\nFDLayout.prototype.calcNoOfChildrenForAllNodes = function () {\n var node;\n var allNodes = this.graphManager.getAllNodes();\n\n for (var i = 0; i < allNodes.length; i++) {\n node = allNodes[i];\n node.noOfChildren = node.getNoOfChildren();\n }\n};\n\n// -----------------------------------------------------------------------------\n// Section: FR-Grid Variant Repulsion Force Calculation\n// -----------------------------------------------------------------------------\n\nFDLayout.prototype.calcGrid = function (graph) {\n\n var sizeX = 0;\n var sizeY = 0;\n\n sizeX = parseInt(Math.ceil((graph.getRight() - graph.getLeft()) / this.repulsionRange));\n sizeY = parseInt(Math.ceil((graph.getBottom() - graph.getTop()) / this.repulsionRange));\n\n var grid = new Array(sizeX);\n\n for (var i = 0; i < sizeX; i++) {\n grid[i] = new Array(sizeY);\n }\n\n for (var i = 0; i < sizeX; i++) {\n for (var j = 0; j < sizeY; j++) {\n grid[i][j] = new Array();\n }\n }\n\n return grid;\n};\n\nFDLayout.prototype.addNodeToGrid = function (v, left, top) {\n\n var startX = 0;\n var finishX = 0;\n var startY = 0;\n var finishY = 0;\n\n startX = parseInt(Math.floor((v.getRect().x - left) / this.repulsionRange));\n finishX = parseInt(Math.floor((v.getRect().width + v.getRect().x - left) / this.repulsionRange));\n startY = parseInt(Math.floor((v.getRect().y - top) / this.repulsionRange));\n finishY = parseInt(Math.floor((v.getRect().height + v.getRect().y - top) / this.repulsionRange));\n\n for (var i = startX; i <= finishX; i++) {\n for (var j = startY; j <= finishY; j++) {\n this.grid[i][j].push(v);\n v.setGridCoordinates(startX, finishX, startY, finishY);\n }\n }\n};\n\nFDLayout.prototype.updateGrid = function () {\n var i;\n var nodeA;\n var lNodes = this.getAllNodes();\n\n this.grid = this.calcGrid(this.graphManager.getRoot());\n\n // put all nodes to proper grid cells\n for (i = 0; i < lNodes.length; i++) {\n nodeA = lNodes[i];\n this.addNodeToGrid(nodeA, this.graphManager.getRoot().getLeft(), this.graphManager.getRoot().getTop());\n }\n};\n\nFDLayout.prototype.calculateRepulsionForceOfANode = function (nodeA, processedNodeSet, gridUpdateAllowed, forceToNodeSurroundingUpdate) {\n\n if (this.totalIterations % FDLayoutConstants.GRID_CALCULATION_CHECK_PERIOD == 1 && gridUpdateAllowed || forceToNodeSurroundingUpdate) {\n var surrounding = new Set();\n nodeA.surrounding = new Array();\n var nodeB;\n var grid = this.grid;\n\n for (var i = nodeA.startX - 1; i < nodeA.finishX + 2; i++) {\n for (var j = nodeA.startY - 1; j < nodeA.finishY + 2; j++) {\n if (!(i < 0 || j < 0 || i >= grid.length || j >= grid[0].length)) {\n for (var k = 0; k < grid[i][j].length; k++) {\n nodeB = grid[i][j][k];\n\n // If both nodes are not members of the same graph, \n // or both nodes are the same, skip.\n if (nodeA.getOwner() != nodeB.getOwner() || nodeA == nodeB) {\n continue;\n }\n\n // check if the repulsion force between\n // nodeA and nodeB has already been calculated\n if (!processedNodeSet.has(nodeB) && !surrounding.has(nodeB)) {\n var distanceX = Math.abs(nodeA.getCenterX() - nodeB.getCenterX()) - (nodeA.getWidth() / 2 + nodeB.getWidth() / 2);\n var distanceY = Math.abs(nodeA.getCenterY() - nodeB.getCenterY()) - (nodeA.getHeight() / 2 + nodeB.getHeight() / 2);\n\n // if the distance between nodeA and nodeB \n // is less then calculation range\n if (distanceX <= this.repulsionRange && distanceY <= this.repulsionRange) {\n //then add nodeB to surrounding of nodeA\n surrounding.add(nodeB);\n }\n }\n }\n }\n }\n }\n\n nodeA.surrounding = [].concat(_toConsumableArray(surrounding));\n }\n for (i = 0; i < nodeA.surrounding.length; i++) {\n this.calcRepulsionForce(nodeA, nodeA.surrounding[i]);\n }\n};\n\nFDLayout.prototype.calcRepulsionRange = function () {\n return 0.0;\n};\n\nmodule.exports = FDLayout;\n\n/***/ }),\n/* 19 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar LEdge = __webpack_require__(1);\nvar FDLayoutConstants = __webpack_require__(4);\n\nfunction FDLayoutEdge(source, target, vEdge) {\n LEdge.call(this, source, target, vEdge);\n\n // Ideal length and elasticity value for this edge\n this.idealLength = FDLayoutConstants.DEFAULT_EDGE_LENGTH;\n this.edgeElasticity = FDLayoutConstants.DEFAULT_SPRING_STRENGTH;\n}\n\nFDLayoutEdge.prototype = Object.create(LEdge.prototype);\n\nfor (var prop in LEdge) {\n FDLayoutEdge[prop] = LEdge[prop];\n}\n\nmodule.exports = FDLayoutEdge;\n\n/***/ }),\n/* 20 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar LNode = __webpack_require__(3);\nvar FDLayoutConstants = __webpack_require__(4);\n\nfunction FDLayoutNode(gm, loc, size, vNode) {\n // alternative constructor is handled inside LNode\n LNode.call(this, gm, loc, size, vNode);\n\n // Repulsion value of this node\n this.nodeRepulsion = FDLayoutConstants.DEFAULT_REPULSION_STRENGTH;\n\n //Spring, repulsion and gravitational forces acting on this node\n this.springForceX = 0;\n this.springForceY = 0;\n this.repulsionForceX = 0;\n this.repulsionForceY = 0;\n this.gravitationForceX = 0;\n this.gravitationForceY = 0;\n //Amount by which this node is to be moved in this iteration\n this.displacementX = 0;\n this.displacementY = 0;\n\n //Start and finish grid coordinates that this node is fallen into\n this.startX = 0;\n this.finishX = 0;\n this.startY = 0;\n this.finishY = 0;\n\n //Geometric neighbors of this node\n this.surrounding = [];\n}\n\nFDLayoutNode.prototype = Object.create(LNode.prototype);\n\nfor (var prop in LNode) {\n FDLayoutNode[prop] = LNode[prop];\n}\n\nFDLayoutNode.prototype.setGridCoordinates = function (_startX, _finishX, _startY, _finishY) {\n this.startX = _startX;\n this.finishX = _finishX;\n this.startY = _startY;\n this.finishY = _finishY;\n};\n\nmodule.exports = FDLayoutNode;\n\n/***/ }),\n/* 21 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nfunction DimensionD(width, height) {\n this.width = 0;\n this.height = 0;\n if (width !== null && height !== null) {\n this.height = height;\n this.width = width;\n }\n}\n\nDimensionD.prototype.getWidth = function () {\n return this.width;\n};\n\nDimensionD.prototype.setWidth = function (width) {\n this.width = width;\n};\n\nDimensionD.prototype.getHeight = function () {\n return this.height;\n};\n\nDimensionD.prototype.setHeight = function (height) {\n this.height = height;\n};\n\nmodule.exports = DimensionD;\n\n/***/ }),\n/* 22 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar UniqueIDGeneretor = __webpack_require__(14);\n\nfunction HashMap() {\n this.map = {};\n this.keys = [];\n}\n\nHashMap.prototype.put = function (key, value) {\n var theId = UniqueIDGeneretor.createID(key);\n if (!this.contains(theId)) {\n this.map[theId] = value;\n this.keys.push(key);\n }\n};\n\nHashMap.prototype.contains = function (key) {\n var theId = UniqueIDGeneretor.createID(key);\n return this.map[key] != null;\n};\n\nHashMap.prototype.get = function (key) {\n var theId = UniqueIDGeneretor.createID(key);\n return this.map[theId];\n};\n\nHashMap.prototype.keySet = function () {\n return this.keys;\n};\n\nmodule.exports = HashMap;\n\n/***/ }),\n/* 23 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar UniqueIDGeneretor = __webpack_require__(14);\n\nfunction HashSet() {\n this.set = {};\n}\n;\n\nHashSet.prototype.add = function (obj) {\n var theId = UniqueIDGeneretor.createID(obj);\n if (!this.contains(theId)) this.set[theId] = obj;\n};\n\nHashSet.prototype.remove = function (obj) {\n delete this.set[UniqueIDGeneretor.createID(obj)];\n};\n\nHashSet.prototype.clear = function () {\n this.set = {};\n};\n\nHashSet.prototype.contains = function (obj) {\n return this.set[UniqueIDGeneretor.createID(obj)] == obj;\n};\n\nHashSet.prototype.isEmpty = function () {\n return this.size() === 0;\n};\n\nHashSet.prototype.size = function () {\n return Object.keys(this.set).length;\n};\n\n//concats this.set to the given list\nHashSet.prototype.addAllTo = function (list) {\n var keys = Object.keys(this.set);\n var length = keys.length;\n for (var i = 0; i < length; i++) {\n list.push(this.set[keys[i]]);\n }\n};\n\nHashSet.prototype.size = function () {\n return Object.keys(this.set).length;\n};\n\nHashSet.prototype.addAll = function (list) {\n var s = list.length;\n for (var i = 0; i < s; i++) {\n var v = list[i];\n this.add(v);\n }\n};\n\nmodule.exports = HashSet;\n\n/***/ }),\n/* 24 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n// Some matrix (1d and 2d array) operations\nfunction Matrix() {}\n\n/**\n * matrix multiplication\n * array1, array2 and result are 2d arrays\n */\nMatrix.multMat = function (array1, array2) {\n var result = [];\n\n for (var i = 0; i < array1.length; i++) {\n result[i] = [];\n for (var j = 0; j < array2[0].length; j++) {\n result[i][j] = 0;\n for (var k = 0; k < array1[0].length; k++) {\n result[i][j] += array1[i][k] * array2[k][j];\n }\n }\n }\n return result;\n};\n\n/**\n * matrix transpose\n * array and result are 2d arrays\n */\nMatrix.transpose = function (array) {\n var result = [];\n\n for (var i = 0; i < array[0].length; i++) {\n result[i] = [];\n for (var j = 0; j < array.length; j++) {\n result[i][j] = array[j][i];\n }\n }\n\n return result;\n};\n\n/**\n * multiply array with constant\n * array and result are 1d arrays\n */\nMatrix.multCons = function (array, constant) {\n var result = [];\n\n for (var i = 0; i < array.length; i++) {\n result[i] = array[i] * constant;\n }\n\n return result;\n};\n\n/**\n * substract two arrays\n * array1, array2 and result are 1d arrays\n */\nMatrix.minusOp = function (array1, array2) {\n var result = [];\n\n for (var i = 0; i < array1.length; i++) {\n result[i] = array1[i] - array2[i];\n }\n\n return result;\n};\n\n/**\n * dot product of two arrays with same size\n * array1 and array2 are 1d arrays\n */\nMatrix.dotProduct = function (array1, array2) {\n var product = 0;\n\n for (var i = 0; i < array1.length; i++) {\n product += array1[i] * array2[i];\n }\n\n return product;\n};\n\n/**\n * magnitude of an array\n * array is 1d array\n */\nMatrix.mag = function (array) {\n return Math.sqrt(this.dotProduct(array, array));\n};\n\n/**\n * normalization of an array\n * array and result are 1d array\n */\nMatrix.normalize = function (array) {\n var result = [];\n var magnitude = this.mag(array);\n\n for (var i = 0; i < array.length; i++) {\n result[i] = array[i] / magnitude;\n }\n\n return result;\n};\n\n/**\n * multiply an array with centering matrix\n * array and result are 1d array\n */\nMatrix.multGamma = function (array) {\n var result = [];\n var sum = 0;\n\n for (var i = 0; i < array.length; i++) {\n sum += array[i];\n }\n\n sum *= -1 / array.length;\n\n for (var _i = 0; _i < array.length; _i++) {\n result[_i] = sum + array[_i];\n }\n return result;\n};\n\n/**\n * a special matrix multiplication\n * result = 0.5 * C * INV * C^T * array\n * array and result are 1d, C and INV are 2d arrays\n */\nMatrix.multL = function (array, C, INV) {\n var result = [];\n var temp1 = [];\n var temp2 = [];\n\n // multiply by C^T\n for (var i = 0; i < C[0].length; i++) {\n var sum = 0;\n for (var j = 0; j < C.length; j++) {\n sum += -0.5 * C[j][i] * array[j];\n }\n temp1[i] = sum;\n }\n // multiply the result by INV\n for (var _i2 = 0; _i2 < INV.length; _i2++) {\n var _sum = 0;\n for (var _j = 0; _j < INV.length; _j++) {\n _sum += INV[_i2][_j] * temp1[_j];\n }\n temp2[_i2] = _sum;\n }\n // multiply the result by C\n for (var _i3 = 0; _i3 < C.length; _i3++) {\n var _sum2 = 0;\n for (var _j2 = 0; _j2 < C[0].length; _j2++) {\n _sum2 += C[_i3][_j2] * temp2[_j2];\n }\n result[_i3] = _sum2;\n }\n\n return result;\n};\n\nmodule.exports = Matrix;\n\n/***/ }),\n/* 25 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * A classic Quicksort algorithm with Hoare's partition\n * - Works also on LinkedList objects\n *\n * Copyright: i-Vis Research Group, Bilkent University, 2007 - present\n */\n\nvar LinkedList = __webpack_require__(11);\n\nvar Quicksort = function () {\n function Quicksort(A, compareFunction) {\n _classCallCheck(this, Quicksort);\n\n if (compareFunction !== null || compareFunction !== undefined) this.compareFunction = this._defaultCompareFunction;\n\n var length = void 0;\n if (A instanceof LinkedList) length = A.size();else length = A.length;\n\n this._quicksort(A, 0, length - 1);\n }\n\n _createClass(Quicksort, [{\n key: '_quicksort',\n value: function _quicksort(A, p, r) {\n if (p < r) {\n var q = this._partition(A, p, r);\n this._quicksort(A, p, q);\n this._quicksort(A, q + 1, r);\n }\n }\n }, {\n key: '_partition',\n value: function _partition(A, p, r) {\n var x = this._get(A, p);\n var i = p;\n var j = r;\n while (true) {\n while (this.compareFunction(x, this._get(A, j))) {\n j--;\n }while (this.compareFunction(this._get(A, i), x)) {\n i++;\n }if (i < j) {\n this._swap(A, i, j);\n i++;\n j--;\n } else return j;\n }\n }\n }, {\n key: '_get',\n value: function _get(object, index) {\n if (object instanceof LinkedList) return object.get_object_at(index);else return object[index];\n }\n }, {\n key: '_set',\n value: function _set(object, index, value) {\n if (object instanceof LinkedList) object.set_object_at(index, value);else object[index] = value;\n }\n }, {\n key: '_swap',\n value: function _swap(A, i, j) {\n var temp = this._get(A, i);\n this._set(A, i, this._get(A, j));\n this._set(A, j, temp);\n }\n }, {\n key: '_defaultCompareFunction',\n value: function _defaultCompareFunction(a, b) {\n return b > a;\n }\n }]);\n\n return Quicksort;\n}();\n\nmodule.exports = Quicksort;\n\n/***/ }),\n/* 26 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n// Singular Value Decomposition implementation\nfunction SVD() {};\n\n/* Below singular value decomposition (svd) code including hypot function is adopted from https://github.com/dragonfly-ai/JamaJS\n Some changes are applied to make the code compatible with the fcose code and to make it independent from Jama.\n Input matrix is changed to a 2D array instead of Jama matrix. Matrix dimensions are taken according to 2D array instead of using Jama functions.\n An object that includes singular value components is created for return. \n The types of input parameters of the hypot function are removed. \n let is used instead of var for the variable initialization.\n*/\n/*\n Apache License\n Version 2.0, January 2004\n http://www.apache.org/licenses/\n\n TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n 1. Definitions.\n\n \"License\" shall mean the terms and conditions for use, reproduction,\n and distribution as defined by Sections 1 through 9 of this document.\n\n \"Licensor\" shall mean the copyright owner or entity authorized by\n the copyright owner that is granting the License.\n\n \"Legal Entity\" shall mean the union of the acting entity and all\n other entities that control, are controlled by, or are under common\n control with that entity. For the purposes of this definition,\n \"control\" means (i) the power, direct or indirect, to cause the\n direction or management of such entity, whether by contract or\n otherwise, or (ii) ownership of fifty percent (50%) or more of the\n outstanding shares, or (iii) beneficial ownership of such entity.\n\n \"You\" (or \"Your\") shall mean an individual or Legal Entity\n exercising permissions granted by this License.\n\n \"Source\" form shall mean the preferred form for making modifications,\n including but not limited to software source code, documentation\n source, and configuration files.\n\n \"Object\" form shall mean any form resulting from mechanical\n transformation or translation of a Source form, including but\n not limited to compiled object code, generated documentation,\n and conversions to other media types.\n\n \"Work\" shall mean the work of authorship, whether in Source or\n Object form, made available under the License, as indicated by a\n copyright notice that is included in or attached to the work\n (an example is provided in the Appendix below).\n\n \"Derivative Works\" shall mean any work, whether in Source or Object\n form, that is based on (or derived from) the Work and for which the\n editorial revisions, annotations, elaborations, or other modifications\n represent, as a whole, an original work of authorship. For the purposes\n of this License, Derivative Works shall not include works that remain\n separable from, or merely link (or bind by name) to the interfaces of,\n the Work and Derivative Works thereof.\n\n \"Contribution\" shall mean any work of authorship, including\n the original version of the Work and any modifications or additions\n to that Work or Derivative Works thereof, that is intentionally\n submitted to Licensor for inclusion in the Work by the copyright owner\n or by an individual or Legal Entity authorized to submit on behalf of\n the copyright owner. For the purposes of this definition, \"submitted\"\n means any form of electronic, verbal, or written communication sent\n to the Licensor or its representatives, including but not limited to\n communication on electronic mailing lists, source code control systems,\n and issue tracking systems that are managed by, or on behalf of, the\n Licensor for the purpose of discussing and improving the Work, but\n excluding communication that is conspicuously marked or otherwise\n designated in writing by the copyright owner as \"Not a Contribution.\"\n\n \"Contributor\" shall mean Licensor and any individual or Legal Entity\n on behalf of whom a Contribution has been received by Licensor and\n subsequently incorporated within the Work.\n\n 2. Grant of Copyright License. Subject to the terms and conditions of\n this License, each Contributor hereby grants to You a perpetual,\n worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n copyright license to reproduce, prepare Derivative Works of,\n publicly display, publicly perform, sublicense, and distribute the\n Work and such Derivative Works in Source or Object form.\n\n 3. Grant of Patent License. Subject to the terms and conditions of\n this License, each Contributor hereby grants to You a perpetual,\n worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n (except as stated in this section) patent license to make, have made,\n use, offer to sell, sell, import, and otherwise transfer the Work,\n where such license applies only to those patent claims licensable\n by such Contributor that are necessarily infringed by their\n Contribution(s) alone or by combination of their Contribution(s)\n with the Work to which such Contribution(s) was submitted. If You\n institute patent litigation against any entity (including a\n cross-claim or counterclaim in a lawsuit) alleging that the Work\n or a Contribution incorporated within the Work constitutes direct\n or contributory patent infringement, then any patent licenses\n granted to You under this License for that Work shall terminate\n as of the date such litigation is filed.\n\n 4. Redistribution. You may reproduce and distribute copies of the\n Work or Derivative Works thereof in any medium, with or without\n modifications, and in Source or Object form, provided that You\n meet the following conditions:\n\n (a) You must give any other recipients of the Work or\n Derivative Works a copy of this License; and\n\n (b) You must cause any modified files to carry prominent notices\n stating that You changed the files; and\n\n (c) You must retain, in the Source form of any Derivative Works\n that You distribute, all copyright, patent, trademark, and\n attribution notices from the Source form of the Work,\n excluding those notices that do not pertain to any part of\n the Derivative Works; and\n\n (d) If the Work includes a \"NOTICE\" text file as part of its\n distribution, then any Derivative Works that You distribute must\n include a readable copy of the attribution notices contained\n within such NOTICE file, excluding those notices that do not\n pertain to any part of the Derivative Works, in at least one\n of the following places: within a NOTICE text file distributed\n as part of the Derivative Works; within the Source form or\n documentation, if provided along with the Derivative Works; or,\n within a display generated by the Derivative Works, if and\n wherever such third-party notices normally appear. The contents\n of the NOTICE file are for informational purposes only and\n do not modify the License. You may add Your own attribution\n notices within Derivative Works that You distribute, alongside\n or as an addendum to the NOTICE text from the Work, provided\n that such additional attribution notices cannot be construed\n as modifying the License.\n\n You may add Your own copyright statement to Your modifications and\n may provide additional or different license terms and conditions\n for use, reproduction, or distribution of Your modifications, or\n for any such Derivative Works as a whole, provided Your use,\n reproduction, and distribution of the Work otherwise complies with\n the conditions stated in this License.\n\n 5. Submission of Contributions. Unless You explicitly state otherwise,\n any Contribution intentionally submitted for inclusion in the Work\n by You to the Licensor shall be under the terms and conditions of\n this License, without any additional terms or conditions.\n Notwithstanding the above, nothing herein shall supersede or modify\n the terms of any separate license agreement you may have executed\n with Licensor regarding such Contributions.\n\n 6. Trademarks. This License does not grant permission to use the trade\n names, trademarks, service marks, or product names of the Licensor,\n except as required for reasonable and customary use in describing the\n origin of the Work and reproducing the content of the NOTICE file.\n\n 7. Disclaimer of Warranty. Unless required by applicable law or\n agreed to in writing, Licensor provides the Work (and each\n Contributor provides its Contributions) on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n implied, including, without limitation, any warranties or conditions\n of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n PARTICULAR PURPOSE. You are solely responsible for determining the\n appropriateness of using or redistributing the Work and assume any\n risks associated with Your exercise of permissions under this License.\n\n 8. Limitation of Liability. In no event and under no legal theory,\n whether in tort (including negligence), contract, or otherwise,\n unless required by applicable law (such as deliberate and grossly\n negligent acts) or agreed to in writing, shall any Contributor be\n liable to You for damages, including any direct, indirect, special,\n incidental, or consequential damages of any character arising as a\n result of this License or out of the use or inability to use the\n Work (including but not limited to damages for loss of goodwill,\n work stoppage, computer failure or malfunction, or any and all\n other commercial damages or losses), even if such Contributor\n has been advised of the possibility of such damages.\n\n 9. Accepting Warranty or Additional Liability. While redistributing\n the Work or Derivative Works thereof, You may choose to offer,\n and charge a fee for, acceptance of support, warranty, indemnity,\n or other liability obligations and/or rights consistent with this\n License. However, in accepting such obligations, You may act only\n on Your own behalf and on Your sole responsibility, not on behalf\n of any other Contributor, and only if You agree to indemnify,\n defend, and hold each Contributor harmless for any liability\n incurred by, or claims asserted against, such Contributor by reason\n of your accepting any such warranty or additional liability.\n\n END OF TERMS AND CONDITIONS\n\n APPENDIX: How to apply the Apache License to your work.\n\n To apply the Apache License to your work, attach the following\n boilerplate notice, with the fields enclosed by brackets \"{}\"\n replaced with your own identifying information. (Don't include\n the brackets!) The text should be enclosed in the appropriate\n comment syntax for the file format. We also recommend that a\n file or class name and description of purpose be included on the\n same \"printed page\" as the copyright notice for easier\n identification within third-party archives.\n\n Copyright {yyyy} {name of copyright owner}\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n*/\n\nSVD.svd = function (A) {\n this.U = null;\n this.V = null;\n this.s = null;\n this.m = 0;\n this.n = 0;\n this.m = A.length;\n this.n = A[0].length;\n var nu = Math.min(this.m, this.n);\n this.s = function (s) {\n var a = [];\n while (s-- > 0) {\n a.push(0);\n }return a;\n }(Math.min(this.m + 1, this.n));\n this.U = function (dims) {\n var allocate = function allocate(dims) {\n if (dims.length == 0) {\n return 0;\n } else {\n var array = [];\n for (var i = 0; i < dims[0]; i++) {\n array.push(allocate(dims.slice(1)));\n }\n return array;\n }\n };\n return allocate(dims);\n }([this.m, nu]);\n this.V = function (dims) {\n var allocate = function allocate(dims) {\n if (dims.length == 0) {\n return 0;\n } else {\n var array = [];\n for (var i = 0; i < dims[0]; i++) {\n array.push(allocate(dims.slice(1)));\n }\n return array;\n }\n };\n return allocate(dims);\n }([this.n, this.n]);\n var e = function (s) {\n var a = [];\n while (s-- > 0) {\n a.push(0);\n }return a;\n }(this.n);\n var work = function (s) {\n var a = [];\n while (s-- > 0) {\n a.push(0);\n }return a;\n }(this.m);\n var wantu = true;\n var wantv = true;\n var nct = Math.min(this.m - 1, this.n);\n var nrt = Math.max(0, Math.min(this.n - 2, this.m));\n for (var k = 0; k < Math.max(nct, nrt); k++) {\n if (k < nct) {\n this.s[k] = 0;\n for (var i = k; i < this.m; i++) {\n this.s[k] = SVD.hypot(this.s[k], A[i][k]);\n }\n ;\n if (this.s[k] !== 0.0) {\n if (A[k][k] < 0.0) {\n this.s[k] = -this.s[k];\n }\n for (var _i = k; _i < this.m; _i++) {\n A[_i][k] /= this.s[k];\n }\n ;\n A[k][k] += 1.0;\n }\n this.s[k] = -this.s[k];\n }\n for (var j = k + 1; j < this.n; j++) {\n if (function (lhs, rhs) {\n return lhs && rhs;\n }(k < nct, this.s[k] !== 0.0)) {\n var t = 0;\n for (var _i2 = k; _i2 < this.m; _i2++) {\n t += A[_i2][k] * A[_i2][j];\n }\n ;\n t = -t / A[k][k];\n for (var _i3 = k; _i3 < this.m; _i3++) {\n A[_i3][j] += t * A[_i3][k];\n }\n ;\n }\n e[j] = A[k][j];\n }\n ;\n if (function (lhs, rhs) {\n return lhs && rhs;\n }(wantu, k < nct)) {\n for (var _i4 = k; _i4 < this.m; _i4++) {\n this.U[_i4][k] = A[_i4][k];\n }\n ;\n }\n if (k < nrt) {\n e[k] = 0;\n for (var _i5 = k + 1; _i5 < this.n; _i5++) {\n e[k] = SVD.hypot(e[k], e[_i5]);\n }\n ;\n if (e[k] !== 0.0) {\n if (e[k + 1] < 0.0) {\n e[k] = -e[k];\n }\n for (var _i6 = k + 1; _i6 < this.n; _i6++) {\n e[_i6] /= e[k];\n }\n ;\n e[k + 1] += 1.0;\n }\n e[k] = -e[k];\n if (function (lhs, rhs) {\n return lhs && rhs;\n }(k + 1 < this.m, e[k] !== 0.0)) {\n for (var _i7 = k + 1; _i7 < this.m; _i7++) {\n work[_i7] = 0.0;\n }\n ;\n for (var _j = k + 1; _j < this.n; _j++) {\n for (var _i8 = k + 1; _i8 < this.m; _i8++) {\n work[_i8] += e[_j] * A[_i8][_j];\n }\n ;\n }\n ;\n for (var _j2 = k + 1; _j2 < this.n; _j2++) {\n var _t = -e[_j2] / e[k + 1];\n for (var _i9 = k + 1; _i9 < this.m; _i9++) {\n A[_i9][_j2] += _t * work[_i9];\n }\n ;\n }\n ;\n }\n if (wantv) {\n for (var _i10 = k + 1; _i10 < this.n; _i10++) {\n this.V[_i10][k] = e[_i10];\n };\n }\n }\n };\n var p = Math.min(this.n, this.m + 1);\n if (nct < this.n) {\n this.s[nct] = A[nct][nct];\n }\n if (this.m < p) {\n this.s[p - 1] = 0.0;\n }\n if (nrt + 1 < p) {\n e[nrt] = A[nrt][p - 1];\n }\n e[p - 1] = 0.0;\n if (wantu) {\n for (var _j3 = nct; _j3 < nu; _j3++) {\n for (var _i11 = 0; _i11 < this.m; _i11++) {\n this.U[_i11][_j3] = 0.0;\n }\n ;\n this.U[_j3][_j3] = 1.0;\n };\n for (var _k = nct - 1; _k >= 0; _k--) {\n if (this.s[_k] !== 0.0) {\n for (var _j4 = _k + 1; _j4 < nu; _j4++) {\n var _t2 = 0;\n for (var _i12 = _k; _i12 < this.m; _i12++) {\n _t2 += this.U[_i12][_k] * this.U[_i12][_j4];\n };\n _t2 = -_t2 / this.U[_k][_k];\n for (var _i13 = _k; _i13 < this.m; _i13++) {\n this.U[_i13][_j4] += _t2 * this.U[_i13][_k];\n };\n };\n for (var _i14 = _k; _i14 < this.m; _i14++) {\n this.U[_i14][_k] = -this.U[_i14][_k];\n };\n this.U[_k][_k] = 1.0 + this.U[_k][_k];\n for (var _i15 = 0; _i15 < _k - 1; _i15++) {\n this.U[_i15][_k] = 0.0;\n };\n } else {\n for (var _i16 = 0; _i16 < this.m; _i16++) {\n this.U[_i16][_k] = 0.0;\n };\n this.U[_k][_k] = 1.0;\n }\n };\n }\n if (wantv) {\n for (var _k2 = this.n - 1; _k2 >= 0; _k2--) {\n if (function (lhs, rhs) {\n return lhs && rhs;\n }(_k2 < nrt, e[_k2] !== 0.0)) {\n for (var _j5 = _k2 + 1; _j5 < nu; _j5++) {\n var _t3 = 0;\n for (var _i17 = _k2 + 1; _i17 < this.n; _i17++) {\n _t3 += this.V[_i17][_k2] * this.V[_i17][_j5];\n };\n _t3 = -_t3 / this.V[_k2 + 1][_k2];\n for (var _i18 = _k2 + 1; _i18 < this.n; _i18++) {\n this.V[_i18][_j5] += _t3 * this.V[_i18][_k2];\n };\n };\n }\n for (var _i19 = 0; _i19 < this.n; _i19++) {\n this.V[_i19][_k2] = 0.0;\n };\n this.V[_k2][_k2] = 1.0;\n };\n }\n var pp = p - 1;\n var iter = 0;\n var eps = Math.pow(2.0, -52.0);\n var tiny = Math.pow(2.0, -966.0);\n while (p > 0) {\n var _k3 = void 0;\n var kase = void 0;\n for (_k3 = p - 2; _k3 >= -1; _k3--) {\n if (_k3 === -1) {\n break;\n }\n if (Math.abs(e[_k3]) <= tiny + eps * (Math.abs(this.s[_k3]) + Math.abs(this.s[_k3 + 1]))) {\n e[_k3] = 0.0;\n break;\n }\n };\n if (_k3 === p - 2) {\n kase = 4;\n } else {\n var ks = void 0;\n for (ks = p - 1; ks >= _k3; ks--) {\n if (ks === _k3) {\n break;\n }\n var _t4 = (ks !== p ? Math.abs(e[ks]) : 0.0) + (ks !== _k3 + 1 ? Math.abs(e[ks - 1]) : 0.0);\n if (Math.abs(this.s[ks]) <= tiny + eps * _t4) {\n this.s[ks] = 0.0;\n break;\n }\n };\n if (ks === _k3) {\n kase = 3;\n } else if (ks === p - 1) {\n kase = 1;\n } else {\n kase = 2;\n _k3 = ks;\n }\n }\n _k3++;\n switch (kase) {\n case 1:\n {\n var f = e[p - 2];\n e[p - 2] = 0.0;\n for (var _j6 = p - 2; _j6 >= _k3; _j6--) {\n var _t5 = SVD.hypot(this.s[_j6], f);\n var cs = this.s[_j6] / _t5;\n var sn = f / _t5;\n this.s[_j6] = _t5;\n if (_j6 !== _k3) {\n f = -sn * e[_j6 - 1];\n e[_j6 - 1] = cs * e[_j6 - 1];\n }\n if (wantv) {\n for (var _i20 = 0; _i20 < this.n; _i20++) {\n _t5 = cs * this.V[_i20][_j6] + sn * this.V[_i20][p - 1];\n this.V[_i20][p - 1] = -sn * this.V[_i20][_j6] + cs * this.V[_i20][p - 1];\n this.V[_i20][_j6] = _t5;\n };\n }\n };\n };\n break;\n case 2:\n {\n var _f = e[_k3 - 1];\n e[_k3 - 1] = 0.0;\n for (var _j7 = _k3; _j7 < p; _j7++) {\n var _t6 = SVD.hypot(this.s[_j7], _f);\n var _cs = this.s[_j7] / _t6;\n var _sn = _f / _t6;\n this.s[_j7] = _t6;\n _f = -_sn * e[_j7];\n e[_j7] = _cs * e[_j7];\n if (wantu) {\n for (var _i21 = 0; _i21 < this.m; _i21++) {\n _t6 = _cs * this.U[_i21][_j7] + _sn * this.U[_i21][_k3 - 1];\n this.U[_i21][_k3 - 1] = -_sn * this.U[_i21][_j7] + _cs * this.U[_i21][_k3 - 1];\n this.U[_i21][_j7] = _t6;\n };\n }\n };\n };\n break;\n case 3:\n {\n var scale = Math.max(Math.max(Math.max(Math.max(Math.abs(this.s[p - 1]), Math.abs(this.s[p - 2])), Math.abs(e[p - 2])), Math.abs(this.s[_k3])), Math.abs(e[_k3]));\n var sp = this.s[p - 1] / scale;\n var spm1 = this.s[p - 2] / scale;\n var epm1 = e[p - 2] / scale;\n var sk = this.s[_k3] / scale;\n var ek = e[_k3] / scale;\n var b = ((spm1 + sp) * (spm1 - sp) + epm1 * epm1) / 2.0;\n var c = sp * epm1 * (sp * epm1);\n var shift = 0.0;\n if (function (lhs, rhs) {\n return lhs || rhs;\n }(b !== 0.0, c !== 0.0)) {\n shift = Math.sqrt(b * b + c);\n if (b < 0.0) {\n shift = -shift;\n }\n shift = c / (b + shift);\n }\n var _f2 = (sk + sp) * (sk - sp) + shift;\n var g = sk * ek;\n for (var _j8 = _k3; _j8 < p - 1; _j8++) {\n var _t7 = SVD.hypot(_f2, g);\n var _cs2 = _f2 / _t7;\n var _sn2 = g / _t7;\n if (_j8 !== _k3) {\n e[_j8 - 1] = _t7;\n }\n _f2 = _cs2 * this.s[_j8] + _sn2 * e[_j8];\n e[_j8] = _cs2 * e[_j8] - _sn2 * this.s[_j8];\n g = _sn2 * this.s[_j8 + 1];\n this.s[_j8 + 1] = _cs2 * this.s[_j8 + 1];\n if (wantv) {\n for (var _i22 = 0; _i22 < this.n; _i22++) {\n _t7 = _cs2 * this.V[_i22][_j8] + _sn2 * this.V[_i22][_j8 + 1];\n this.V[_i22][_j8 + 1] = -_sn2 * this.V[_i22][_j8] + _cs2 * this.V[_i22][_j8 + 1];\n this.V[_i22][_j8] = _t7;\n };\n }\n _t7 = SVD.hypot(_f2, g);\n _cs2 = _f2 / _t7;\n _sn2 = g / _t7;\n this.s[_j8] = _t7;\n _f2 = _cs2 * e[_j8] + _sn2 * this.s[_j8 + 1];\n this.s[_j8 + 1] = -_sn2 * e[_j8] + _cs2 * this.s[_j8 + 1];\n g = _sn2 * e[_j8 + 1];\n e[_j8 + 1] = _cs2 * e[_j8 + 1];\n if (wantu && _j8 < this.m - 1) {\n for (var _i23 = 0; _i23 < this.m; _i23++) {\n _t7 = _cs2 * this.U[_i23][_j8] + _sn2 * this.U[_i23][_j8 + 1];\n this.U[_i23][_j8 + 1] = -_sn2 * this.U[_i23][_j8] + _cs2 * this.U[_i23][_j8 + 1];\n this.U[_i23][_j8] = _t7;\n };\n }\n };\n e[p - 2] = _f2;\n iter = iter + 1;\n };\n break;\n case 4:\n {\n if (this.s[_k3] <= 0.0) {\n this.s[_k3] = this.s[_k3] < 0.0 ? -this.s[_k3] : 0.0;\n if (wantv) {\n for (var _i24 = 0; _i24 <= pp; _i24++) {\n this.V[_i24][_k3] = -this.V[_i24][_k3];\n };\n }\n }\n while (_k3 < pp) {\n if (this.s[_k3] >= this.s[_k3 + 1]) {\n break;\n }\n var _t8 = this.s[_k3];\n this.s[_k3] = this.s[_k3 + 1];\n this.s[_k3 + 1] = _t8;\n if (wantv && _k3 < this.n - 1) {\n for (var _i25 = 0; _i25 < this.n; _i25++) {\n _t8 = this.V[_i25][_k3 + 1];\n this.V[_i25][_k3 + 1] = this.V[_i25][_k3];\n this.V[_i25][_k3] = _t8;\n };\n }\n if (wantu && _k3 < this.m - 1) {\n for (var _i26 = 0; _i26 < this.m; _i26++) {\n _t8 = this.U[_i26][_k3 + 1];\n this.U[_i26][_k3 + 1] = this.U[_i26][_k3];\n this.U[_i26][_k3] = _t8;\n };\n }\n _k3++;\n };\n iter = 0;\n p--;\n };\n break;\n }\n };\n var result = { U: this.U, V: this.V, S: this.s };\n return result;\n};\n\n// sqrt(a^2 + b^2) without under/overflow.\nSVD.hypot = function (a, b) {\n var r = void 0;\n if (Math.abs(a) > Math.abs(b)) {\n r = b / a;\n r = Math.abs(a) * Math.sqrt(1 + r * r);\n } else if (b != 0) {\n r = a / b;\n r = Math.abs(b) * Math.sqrt(1 + r * r);\n } else {\n r = 0.0;\n }\n return r;\n};\n\nmodule.exports = SVD;\n\n/***/ }),\n/* 27 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Needleman-Wunsch algorithm is an procedure to compute the optimal global alignment of two string\n * sequences by S.B.Needleman and C.D.Wunsch (1970).\n *\n * Aside from the inputs, you can assign the scores for,\n * - Match: The two characters at the current index are same.\n * - Mismatch: The two characters at the current index are different.\n * - Insertion/Deletion(gaps): The best alignment involves one letter aligning to a gap in the other string.\n */\n\nvar NeedlemanWunsch = function () {\n function NeedlemanWunsch(sequence1, sequence2) {\n var match_score = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n var mismatch_penalty = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : -1;\n var gap_penalty = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : -1;\n\n _classCallCheck(this, NeedlemanWunsch);\n\n this.sequence1 = sequence1;\n this.sequence2 = sequence2;\n this.match_score = match_score;\n this.mismatch_penalty = mismatch_penalty;\n this.gap_penalty = gap_penalty;\n\n // Just the remove redundancy\n this.iMax = sequence1.length + 1;\n this.jMax = sequence2.length + 1;\n\n // Grid matrix of scores\n this.grid = new Array(this.iMax);\n for (var i = 0; i < this.iMax; i++) {\n this.grid[i] = new Array(this.jMax);\n\n for (var j = 0; j < this.jMax; j++) {\n this.grid[i][j] = 0;\n }\n }\n\n // Traceback matrix (2D array, each cell is an array of boolean values for [`Diag`, `Up`, `Left`] positions)\n this.tracebackGrid = new Array(this.iMax);\n for (var _i = 0; _i < this.iMax; _i++) {\n this.tracebackGrid[_i] = new Array(this.jMax);\n\n for (var _j = 0; _j < this.jMax; _j++) {\n this.tracebackGrid[_i][_j] = [null, null, null];\n }\n }\n\n // The aligned sequences (return multiple possibilities)\n this.alignments = [];\n\n // Final alignment score\n this.score = -1;\n\n // Calculate scores and tracebacks\n this.computeGrids();\n }\n\n _createClass(NeedlemanWunsch, [{\n key: \"getScore\",\n value: function getScore() {\n return this.score;\n }\n }, {\n key: \"getAlignments\",\n value: function getAlignments() {\n return this.alignments;\n }\n\n // Main dynamic programming procedure\n\n }, {\n key: \"computeGrids\",\n value: function computeGrids() {\n // Fill in the first row\n for (var j = 1; j < this.jMax; j++) {\n this.grid[0][j] = this.grid[0][j - 1] + this.gap_penalty;\n this.tracebackGrid[0][j] = [false, false, true];\n }\n\n // Fill in the first column\n for (var i = 1; i < this.iMax; i++) {\n this.grid[i][0] = this.grid[i - 1][0] + this.gap_penalty;\n this.tracebackGrid[i][0] = [false, true, false];\n }\n\n // Fill the rest of the grid\n for (var _i2 = 1; _i2 < this.iMax; _i2++) {\n for (var _j2 = 1; _j2 < this.jMax; _j2++) {\n // Find the max score(s) among [`Diag`, `Up`, `Left`]\n var diag = void 0;\n if (this.sequence1[_i2 - 1] === this.sequence2[_j2 - 1]) diag = this.grid[_i2 - 1][_j2 - 1] + this.match_score;else diag = this.grid[_i2 - 1][_j2 - 1] + this.mismatch_penalty;\n\n var up = this.grid[_i2 - 1][_j2] + this.gap_penalty;\n var left = this.grid[_i2][_j2 - 1] + this.gap_penalty;\n\n // If there exists multiple max values, capture them for multiple paths\n var maxOf = [diag, up, left];\n var indices = this.arrayAllMaxIndexes(maxOf);\n\n // Update Grids\n this.grid[_i2][_j2] = maxOf[indices[0]];\n this.tracebackGrid[_i2][_j2] = [indices.includes(0), indices.includes(1), indices.includes(2)];\n }\n }\n\n // Update alignment score\n this.score = this.grid[this.iMax - 1][this.jMax - 1];\n }\n\n // Gets all possible valid sequence combinations\n\n }, {\n key: \"alignmentTraceback\",\n value: function alignmentTraceback() {\n var inProcessAlignments = [];\n\n inProcessAlignments.push({ pos: [this.sequence1.length, this.sequence2.length],\n seq1: \"\",\n seq2: \"\"\n });\n\n while (inProcessAlignments[0]) {\n var current = inProcessAlignments[0];\n var directions = this.tracebackGrid[current.pos[0]][current.pos[1]];\n\n if (directions[0]) {\n inProcessAlignments.push({ pos: [current.pos[0] - 1, current.pos[1] - 1],\n seq1: this.sequence1[current.pos[0] - 1] + current.seq1,\n seq2: this.sequence2[current.pos[1] - 1] + current.seq2\n });\n }\n if (directions[1]) {\n inProcessAlignments.push({ pos: [current.pos[0] - 1, current.pos[1]],\n seq1: this.sequence1[current.pos[0] - 1] + current.seq1,\n seq2: '-' + current.seq2\n });\n }\n if (directions[2]) {\n inProcessAlignments.push({ pos: [current.pos[0], current.pos[1] - 1],\n seq1: '-' + current.seq1,\n seq2: this.sequence2[current.pos[1] - 1] + current.seq2\n });\n }\n\n if (current.pos[0] === 0 && current.pos[1] === 0) this.alignments.push({ sequence1: current.seq1,\n sequence2: current.seq2\n });\n\n inProcessAlignments.shift();\n }\n\n return this.alignments;\n }\n\n // Helper Functions\n\n }, {\n key: \"getAllIndexes\",\n value: function getAllIndexes(arr, val) {\n var indexes = [],\n i = -1;\n while ((i = arr.indexOf(val, i + 1)) !== -1) {\n indexes.push(i);\n }\n return indexes;\n }\n }, {\n key: \"arrayAllMaxIndexes\",\n value: function arrayAllMaxIndexes(array) {\n return this.getAllIndexes(array, Math.max.apply(null, array));\n }\n }]);\n\n return NeedlemanWunsch;\n}();\n\nmodule.exports = NeedlemanWunsch;\n\n/***/ }),\n/* 28 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar layoutBase = function layoutBase() {\n return;\n};\n\nlayoutBase.FDLayout = __webpack_require__(18);\nlayoutBase.FDLayoutConstants = __webpack_require__(4);\nlayoutBase.FDLayoutEdge = __webpack_require__(19);\nlayoutBase.FDLayoutNode = __webpack_require__(20);\nlayoutBase.DimensionD = __webpack_require__(21);\nlayoutBase.HashMap = __webpack_require__(22);\nlayoutBase.HashSet = __webpack_require__(23);\nlayoutBase.IGeometry = __webpack_require__(8);\nlayoutBase.IMath = __webpack_require__(9);\nlayoutBase.Integer = __webpack_require__(10);\nlayoutBase.Point = __webpack_require__(12);\nlayoutBase.PointD = __webpack_require__(5);\nlayoutBase.RandomSeed = __webpack_require__(16);\nlayoutBase.RectangleD = __webpack_require__(13);\nlayoutBase.Transform = __webpack_require__(17);\nlayoutBase.UniqueIDGeneretor = __webpack_require__(14);\nlayoutBase.Quicksort = __webpack_require__(25);\nlayoutBase.LinkedList = __webpack_require__(11);\nlayoutBase.LGraphObject = __webpack_require__(2);\nlayoutBase.LGraph = __webpack_require__(6);\nlayoutBase.LEdge = __webpack_require__(1);\nlayoutBase.LGraphManager = __webpack_require__(7);\nlayoutBase.LNode = __webpack_require__(3);\nlayoutBase.Layout = __webpack_require__(15);\nlayoutBase.LayoutConstants = __webpack_require__(0);\nlayoutBase.NeedlemanWunsch = __webpack_require__(27);\nlayoutBase.Matrix = __webpack_require__(24);\nlayoutBase.SVD = __webpack_require__(26);\n\nmodule.exports = layoutBase;\n\n/***/ }),\n/* 29 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nfunction Emitter() {\n this.listeners = [];\n}\n\nvar p = Emitter.prototype;\n\np.addListener = function (event, callback) {\n this.listeners.push({\n event: event,\n callback: callback\n });\n};\n\np.removeListener = function (event, callback) {\n for (var i = this.listeners.length; i >= 0; i--) {\n var l = this.listeners[i];\n\n if (l.event === event && l.callback === callback) {\n this.listeners.splice(i, 1);\n }\n }\n};\n\np.emit = function (event, data) {\n for (var i = 0; i < this.listeners.length; i++) {\n var l = this.listeners[i];\n\n if (event === l.event) {\n l.callback(data);\n }\n }\n};\n\nmodule.exports = Emitter;\n\n/***/ })\n/******/ ]);\n});", "(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"layout-base\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"layout-base\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"coseBase\"] = factory(require(\"layout-base\"));\n\telse\n\t\troot[\"coseBase\"] = factory(root[\"layoutBase\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE__551__) {\nreturn /******/ (() => { // webpackBootstrap\n/******/ \t\"use strict\";\n/******/ \tvar __webpack_modules__ = ({\n\n/***/ 45:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\n\nvar coseBase = {};\n\ncoseBase.layoutBase = __webpack_require__(551);\ncoseBase.CoSEConstants = __webpack_require__(806);\ncoseBase.CoSEEdge = __webpack_require__(767);\ncoseBase.CoSEGraph = __webpack_require__(880);\ncoseBase.CoSEGraphManager = __webpack_require__(578);\ncoseBase.CoSELayout = __webpack_require__(765);\ncoseBase.CoSENode = __webpack_require__(991);\ncoseBase.ConstraintHandler = __webpack_require__(902);\n\nmodule.exports = coseBase;\n\n/***/ }),\n\n/***/ 806:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\n\nvar FDLayoutConstants = __webpack_require__(551).FDLayoutConstants;\n\nfunction CoSEConstants() {}\n\n//CoSEConstants inherits static props in FDLayoutConstants\nfor (var prop in FDLayoutConstants) {\n CoSEConstants[prop] = FDLayoutConstants[prop];\n}\n\nCoSEConstants.DEFAULT_USE_MULTI_LEVEL_SCALING = false;\nCoSEConstants.DEFAULT_RADIAL_SEPARATION = FDLayoutConstants.DEFAULT_EDGE_LENGTH;\nCoSEConstants.DEFAULT_COMPONENT_SEPERATION = 60;\nCoSEConstants.TILE = true;\nCoSEConstants.TILING_PADDING_VERTICAL = 10;\nCoSEConstants.TILING_PADDING_HORIZONTAL = 10;\nCoSEConstants.TRANSFORM_ON_CONSTRAINT_HANDLING = true;\nCoSEConstants.ENFORCE_CONSTRAINTS = true;\nCoSEConstants.APPLY_LAYOUT = true;\nCoSEConstants.RELAX_MOVEMENT_ON_CONSTRAINTS = true;\nCoSEConstants.TREE_REDUCTION_ON_INCREMENTAL = true; // this should be set to false if there will be a constraint\n// This constant is for differentiating whether actual layout algorithm that uses cose-base wants to apply only incremental layout or \n// an incremental layout on top of a randomized layout. If it is only incremental layout, then this constant should be true.\nCoSEConstants.PURE_INCREMENTAL = CoSEConstants.DEFAULT_INCREMENTAL;\n\nmodule.exports = CoSEConstants;\n\n/***/ }),\n\n/***/ 767:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\n\nvar FDLayoutEdge = __webpack_require__(551).FDLayoutEdge;\n\nfunction CoSEEdge(source, target, vEdge) {\n FDLayoutEdge.call(this, source, target, vEdge);\n}\n\nCoSEEdge.prototype = Object.create(FDLayoutEdge.prototype);\nfor (var prop in FDLayoutEdge) {\n CoSEEdge[prop] = FDLayoutEdge[prop];\n}\n\nmodule.exports = CoSEEdge;\n\n/***/ }),\n\n/***/ 880:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\n\nvar LGraph = __webpack_require__(551).LGraph;\n\nfunction CoSEGraph(parent, graphMgr, vGraph) {\n LGraph.call(this, parent, graphMgr, vGraph);\n}\n\nCoSEGraph.prototype = Object.create(LGraph.prototype);\nfor (var prop in LGraph) {\n CoSEGraph[prop] = LGraph[prop];\n}\n\nmodule.exports = CoSEGraph;\n\n/***/ }),\n\n/***/ 578:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\n\nvar LGraphManager = __webpack_require__(551).LGraphManager;\n\nfunction CoSEGraphManager(layout) {\n LGraphManager.call(this, layout);\n}\n\nCoSEGraphManager.prototype = Object.create(LGraphManager.prototype);\nfor (var prop in LGraphManager) {\n CoSEGraphManager[prop] = LGraphManager[prop];\n}\n\nmodule.exports = CoSEGraphManager;\n\n/***/ }),\n\n/***/ 765:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\n\nvar FDLayout = __webpack_require__(551).FDLayout;\nvar CoSEGraphManager = __webpack_require__(578);\nvar CoSEGraph = __webpack_require__(880);\nvar CoSENode = __webpack_require__(991);\nvar CoSEEdge = __webpack_require__(767);\nvar CoSEConstants = __webpack_require__(806);\nvar ConstraintHandler = __webpack_require__(902);\nvar FDLayoutConstants = __webpack_require__(551).FDLayoutConstants;\nvar LayoutConstants = __webpack_require__(551).LayoutConstants;\nvar Point = __webpack_require__(551).Point;\nvar PointD = __webpack_require__(551).PointD;\nvar DimensionD = __webpack_require__(551).DimensionD;\nvar Layout = __webpack_require__(551).Layout;\nvar Integer = __webpack_require__(551).Integer;\nvar IGeometry = __webpack_require__(551).IGeometry;\nvar LGraph = __webpack_require__(551).LGraph;\nvar Transform = __webpack_require__(551).Transform;\nvar LinkedList = __webpack_require__(551).LinkedList;\n\nfunction CoSELayout() {\n FDLayout.call(this);\n\n this.toBeTiled = {}; // Memorize if a node is to be tiled or is tiled\n this.constraints = {}; // keep layout constraints\n}\n\nCoSELayout.prototype = Object.create(FDLayout.prototype);\n\nfor (var prop in FDLayout) {\n CoSELayout[prop] = FDLayout[prop];\n}\n\nCoSELayout.prototype.newGraphManager = function () {\n var gm = new CoSEGraphManager(this);\n this.graphManager = gm;\n return gm;\n};\n\nCoSELayout.prototype.newGraph = function (vGraph) {\n return new CoSEGraph(null, this.graphManager, vGraph);\n};\n\nCoSELayout.prototype.newNode = function (vNode) {\n return new CoSENode(this.graphManager, vNode);\n};\n\nCoSELayout.prototype.newEdge = function (vEdge) {\n return new CoSEEdge(null, null, vEdge);\n};\n\nCoSELayout.prototype.initParameters = function () {\n FDLayout.prototype.initParameters.call(this, arguments);\n if (!this.isSubLayout) {\n if (CoSEConstants.DEFAULT_EDGE_LENGTH < 10) {\n this.idealEdgeLength = 10;\n } else {\n this.idealEdgeLength = CoSEConstants.DEFAULT_EDGE_LENGTH;\n }\n\n this.useSmartIdealEdgeLengthCalculation = CoSEConstants.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION;\n this.gravityConstant = FDLayoutConstants.DEFAULT_GRAVITY_STRENGTH;\n this.compoundGravityConstant = FDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_STRENGTH;\n this.gravityRangeFactor = FDLayoutConstants.DEFAULT_GRAVITY_RANGE_FACTOR;\n this.compoundGravityRangeFactor = FDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR;\n\n // variables for tree reduction support\n this.prunedNodesAll = [];\n this.growTreeIterations = 0;\n this.afterGrowthIterations = 0;\n this.isTreeGrowing = false;\n this.isGrowthFinished = false;\n }\n};\n\n// This method is used to set CoSE related parameters used by spring embedder.\nCoSELayout.prototype.initSpringEmbedder = function () {\n FDLayout.prototype.initSpringEmbedder.call(this);\n\n // variables for cooling\n this.coolingCycle = 0;\n this.maxCoolingCycle = this.maxIterations / FDLayoutConstants.CONVERGENCE_CHECK_PERIOD;\n this.finalTemperature = 0.04;\n this.coolingAdjuster = 1;\n};\n\nCoSELayout.prototype.layout = function () {\n var createBendsAsNeeded = LayoutConstants.DEFAULT_CREATE_BENDS_AS_NEEDED;\n if (createBendsAsNeeded) {\n this.createBendpoints();\n this.graphManager.resetAllEdges();\n }\n\n this.level = 0;\n return this.classicLayout();\n};\n\nCoSELayout.prototype.classicLayout = function () {\n this.nodesWithGravity = this.calculateNodesToApplyGravitationTo();\n this.graphManager.setAllNodesToApplyGravitation(this.nodesWithGravity);\n this.calcNoOfChildrenForAllNodes();\n this.graphManager.calcLowestCommonAncestors();\n this.graphManager.calcInclusionTreeDepths();\n this.graphManager.getRoot().calcEstimatedSize();\n this.calcIdealEdgeLengths();\n\n if (!this.incremental) {\n var forest = this.getFlatForest();\n\n // The graph associated with this layout is flat and a forest\n if (forest.length > 0) {\n this.positionNodesRadially(forest);\n }\n // The graph associated with this layout is not flat or a forest\n else {\n // Reduce the trees when incremental mode is not enabled and graph is not a forest \n this.reduceTrees();\n // Update nodes that gravity will be applied\n this.graphManager.resetAllNodesToApplyGravitation();\n var allNodes = new Set(this.getAllNodes());\n var intersection = this.nodesWithGravity.filter(function (x) {\n return allNodes.has(x);\n });\n this.graphManager.setAllNodesToApplyGravitation(intersection);\n\n this.positionNodesRandomly();\n }\n } else {\n if (CoSEConstants.TREE_REDUCTION_ON_INCREMENTAL) {\n // Reduce the trees in incremental mode if only this constant is set to true \n this.reduceTrees();\n // Update nodes that gravity will be applied\n this.graphManager.resetAllNodesToApplyGravitation();\n var allNodes = new Set(this.getAllNodes());\n var intersection = this.nodesWithGravity.filter(function (x) {\n return allNodes.has(x);\n });\n this.graphManager.setAllNodesToApplyGravitation(intersection);\n }\n }\n\n if (Object.keys(this.constraints).length > 0) {\n ConstraintHandler.handleConstraints(this);\n this.initConstraintVariables();\n }\n\n this.initSpringEmbedder();\n if (CoSEConstants.APPLY_LAYOUT) {\n this.runSpringEmbedder();\n }\n\n return true;\n};\n\nCoSELayout.prototype.tick = function () {\n this.totalIterations++;\n\n if (this.totalIterations === this.maxIterations && !this.isTreeGrowing && !this.isGrowthFinished) {\n if (this.prunedNodesAll.length > 0) {\n this.isTreeGrowing = true;\n } else {\n return true;\n }\n }\n\n if (this.totalIterations % FDLayoutConstants.CONVERGENCE_CHECK_PERIOD == 0 && !this.isTreeGrowing && !this.isGrowthFinished) {\n if (this.isConverged()) {\n if (this.prunedNodesAll.length > 0) {\n this.isTreeGrowing = true;\n } else {\n return true;\n }\n }\n\n this.coolingCycle++;\n\n if (this.layoutQuality == 0) {\n // quality - \"draft\"\n this.coolingAdjuster = this.coolingCycle;\n } else if (this.layoutQuality == 1) {\n // quality - \"default\"\n this.coolingAdjuster = this.coolingCycle / 3;\n }\n\n // cooling schedule is based on http://www.btluke.com/simanf1.html -> cooling schedule 3\n 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);\n this.animationPeriod = Math.ceil(this.initialAnimationPeriod * Math.sqrt(this.coolingFactor));\n }\n // Operations while tree is growing again \n if (this.isTreeGrowing) {\n if (this.growTreeIterations % 10 == 0) {\n if (this.prunedNodesAll.length > 0) {\n this.graphManager.updateBounds();\n this.updateGrid();\n this.growTree(this.prunedNodesAll);\n // Update nodes that gravity will be applied\n this.graphManager.resetAllNodesToApplyGravitation();\n var allNodes = new Set(this.getAllNodes());\n var intersection = this.nodesWithGravity.filter(function (x) {\n return allNodes.has(x);\n });\n this.graphManager.setAllNodesToApplyGravitation(intersection);\n\n this.graphManager.updateBounds();\n this.updateGrid();\n if (CoSEConstants.PURE_INCREMENTAL) this.coolingFactor = FDLayoutConstants.DEFAULT_COOLING_FACTOR_INCREMENTAL / 2;else this.coolingFactor = FDLayoutConstants.DEFAULT_COOLING_FACTOR_INCREMENTAL;\n } else {\n this.isTreeGrowing = false;\n this.isGrowthFinished = true;\n }\n }\n this.growTreeIterations++;\n }\n // Operations after growth is finished\n if (this.isGrowthFinished) {\n if (this.isConverged()) {\n return true;\n }\n if (this.afterGrowthIterations % 10 == 0) {\n this.graphManager.updateBounds();\n this.updateGrid();\n }\n if (CoSEConstants.PURE_INCREMENTAL) this.coolingFactor = FDLayoutConstants.DEFAULT_COOLING_FACTOR_INCREMENTAL / 2 * ((100 - this.afterGrowthIterations) / 100);else this.coolingFactor = FDLayoutConstants.DEFAULT_COOLING_FACTOR_INCREMENTAL * ((100 - this.afterGrowthIterations) / 100);\n this.afterGrowthIterations++;\n }\n\n var gridUpdateAllowed = !this.isTreeGrowing && !this.isGrowthFinished;\n var forceToNodeSurroundingUpdate = this.growTreeIterations % 10 == 1 && this.isTreeGrowing || this.afterGrowthIterations % 10 == 1 && this.isGrowthFinished;\n\n this.totalDisplacement = 0;\n this.graphManager.updateBounds();\n this.calcSpringForces();\n this.calcRepulsionForces(gridUpdateAllowed, forceToNodeSurroundingUpdate);\n this.calcGravitationalForces();\n this.moveNodes();\n this.animate();\n\n return false; // Layout is not ended yet return false\n};\n\nCoSELayout.prototype.getPositionsData = function () {\n var allNodes = this.graphManager.getAllNodes();\n var pData = {};\n for (var i = 0; i < allNodes.length; i++) {\n var rect = allNodes[i].rect;\n var id = allNodes[i].id;\n pData[id] = {\n id: id,\n x: rect.getCenterX(),\n y: rect.getCenterY(),\n w: rect.width,\n h: rect.height\n };\n }\n\n return pData;\n};\n\nCoSELayout.prototype.runSpringEmbedder = function () {\n this.initialAnimationPeriod = 25;\n this.animationPeriod = this.initialAnimationPeriod;\n var layoutEnded = false;\n\n // If aminate option is 'during' signal that layout is supposed to start iterating\n if (FDLayoutConstants.ANIMATE === 'during') {\n this.emit('layoutstarted');\n } else {\n // If aminate option is 'during' tick() function will be called on index.js\n while (!layoutEnded) {\n layoutEnded = this.tick();\n }\n\n this.graphManager.updateBounds();\n }\n};\n\n// overrides moveNodes method in FDLayout\nCoSELayout.prototype.moveNodes = function () {\n var lNodes = this.getAllNodes();\n var node;\n\n // calculate displacement for each node \n for (var i = 0; i < lNodes.length; i++) {\n node = lNodes[i];\n node.calculateDisplacement();\n }\n\n if (Object.keys(this.constraints).length > 0) {\n this.updateDisplacements();\n }\n\n // move each node\n for (var i = 0; i < lNodes.length; i++) {\n node = lNodes[i];\n node.move();\n }\n};\n\n// constraint related methods: initConstraintVariables and updateDisplacements\n\n// initialize constraint related variables\nCoSELayout.prototype.initConstraintVariables = function () {\n var self = this;\n this.idToNodeMap = new Map();\n this.fixedNodeSet = new Set();\n\n var allNodes = this.graphManager.getAllNodes();\n\n // fill idToNodeMap\n for (var i = 0; i < allNodes.length; i++) {\n var node = allNodes[i];\n this.idToNodeMap.set(node.id, node);\n }\n\n // calculate fixed node weight for given compound node\n var calculateCompoundWeight = function calculateCompoundWeight(compoundNode) {\n var nodes = compoundNode.getChild().getNodes();\n var node;\n var fixedNodeWeight = 0;\n for (var i = 0; i < nodes.length; i++) {\n node = nodes[i];\n if (node.getChild() == null) {\n if (self.fixedNodeSet.has(node.id)) {\n fixedNodeWeight += 100;\n }\n } else {\n fixedNodeWeight += calculateCompoundWeight(node);\n }\n }\n return fixedNodeWeight;\n };\n\n if (this.constraints.fixedNodeConstraint) {\n // fill fixedNodeSet\n this.constraints.fixedNodeConstraint.forEach(function (nodeData) {\n self.fixedNodeSet.add(nodeData.nodeId);\n });\n\n // assign fixed node weights to compounds if they contain fixed nodes\n var allNodes = this.graphManager.getAllNodes();\n var node;\n\n for (var i = 0; i < allNodes.length; i++) {\n node = allNodes[i];\n if (node.getChild() != null) {\n var fixedNodeWeight = calculateCompoundWeight(node);\n if (fixedNodeWeight > 0) {\n node.fixedNodeWeight = fixedNodeWeight;\n }\n }\n }\n }\n\n if (this.constraints.relativePlacementConstraint) {\n var nodeToDummyForVerticalAlignment = new Map();\n var nodeToDummyForHorizontalAlignment = new Map();\n this.dummyToNodeForVerticalAlignment = new Map();\n this.dummyToNodeForHorizontalAlignment = new Map();\n this.fixedNodesOnHorizontal = new Set();\n this.fixedNodesOnVertical = new Set();\n\n // fill maps and sets\n this.fixedNodeSet.forEach(function (nodeId) {\n self.fixedNodesOnHorizontal.add(nodeId);\n self.fixedNodesOnVertical.add(nodeId);\n });\n\n if (this.constraints.alignmentConstraint) {\n if (this.constraints.alignmentConstraint.vertical) {\n var verticalAlignment = this.constraints.alignmentConstraint.vertical;\n for (var i = 0; i < verticalAlignment.length; i++) {\n this.dummyToNodeForVerticalAlignment.set(\"dummy\" + i, []);\n verticalAlignment[i].forEach(function (nodeId) {\n nodeToDummyForVerticalAlignment.set(nodeId, \"dummy\" + i);\n self.dummyToNodeForVerticalAlignment.get(\"dummy\" + i).push(nodeId);\n if (self.fixedNodeSet.has(nodeId)) {\n self.fixedNodesOnHorizontal.add(\"dummy\" + i);\n }\n });\n }\n }\n if (this.constraints.alignmentConstraint.horizontal) {\n var horizontalAlignment = this.constraints.alignmentConstraint.horizontal;\n for (var i = 0; i < horizontalAlignment.length; i++) {\n this.dummyToNodeForHorizontalAlignment.set(\"dummy\" + i, []);\n horizontalAlignment[i].forEach(function (nodeId) {\n nodeToDummyForHorizontalAlignment.set(nodeId, \"dummy\" + i);\n self.dummyToNodeForHorizontalAlignment.get(\"dummy\" + i).push(nodeId);\n if (self.fixedNodeSet.has(nodeId)) {\n self.fixedNodesOnVertical.add(\"dummy\" + i);\n }\n });\n }\n }\n }\n\n if (CoSEConstants.RELAX_MOVEMENT_ON_CONSTRAINTS) {\n\n this.shuffle = function (array) {\n var j, x, i;\n for (i = array.length - 1; i >= 2 * array.length / 3; i--) {\n j = Math.floor(Math.random() * (i + 1));\n x = array[i];\n array[i] = array[j];\n array[j] = x;\n }\n return array;\n };\n\n this.nodesInRelativeHorizontal = [];\n this.nodesInRelativeVertical = [];\n this.nodeToRelativeConstraintMapHorizontal = new Map();\n this.nodeToRelativeConstraintMapVertical = new Map();\n this.nodeToTempPositionMapHorizontal = new Map();\n this.nodeToTempPositionMapVertical = new Map();\n\n // fill arrays and maps\n this.constraints.relativePlacementConstraint.forEach(function (constraint) {\n if (constraint.left) {\n var nodeIdLeft = nodeToDummyForVerticalAlignment.has(constraint.left) ? nodeToDummyForVerticalAlignment.get(constraint.left) : constraint.left;\n var nodeIdRight = nodeToDummyForVerticalAlignment.has(constraint.right) ? nodeToDummyForVerticalAlignment.get(constraint.right) : constraint.right;\n\n if (!self.nodesInRelativeHorizontal.includes(nodeIdLeft)) {\n self.nodesInRelativeHorizontal.push(nodeIdLeft);\n self.nodeToRelativeConstraintMapHorizontal.set(nodeIdLeft, []);\n if (self.dummyToNodeForVerticalAlignment.has(nodeIdLeft)) {\n self.nodeToTempPositionMapHorizontal.set(nodeIdLeft, self.idToNodeMap.get(self.dummyToNodeForVerticalAlignment.get(nodeIdLeft)[0]).getCenterX());\n } else {\n self.nodeToTempPositionMapHorizontal.set(nodeIdLeft, self.idToNodeMap.get(nodeIdLeft).getCenterX());\n }\n }\n if (!self.nodesInRelativeHorizontal.includes(nodeIdRight)) {\n self.nodesInRelativeHorizontal.push(nodeIdRight);\n self.nodeToRelativeConstraintMapHorizontal.set(nodeIdRight, []);\n if (self.dummyToNodeForVerticalAlignment.has(nodeIdRight)) {\n self.nodeToTempPositionMapHorizontal.set(nodeIdRight, self.idToNodeMap.get(self.dummyToNodeForVerticalAlignment.get(nodeIdRight)[0]).getCenterX());\n } else {\n self.nodeToTempPositionMapHorizontal.set(nodeIdRight, self.idToNodeMap.get(nodeIdRight).getCenterX());\n }\n }\n\n self.nodeToRelativeConstraintMapHorizontal.get(nodeIdLeft).push({ right: nodeIdRight, gap: constraint.gap });\n self.nodeToRelativeConstraintMapHorizontal.get(nodeIdRight).push({ left: nodeIdLeft, gap: constraint.gap });\n } else {\n var nodeIdTop = nodeToDummyForHorizontalAlignment.has(constraint.top) ? nodeToDummyForHorizontalAlignment.get(constraint.top) : constraint.top;\n var nodeIdBottom = nodeToDummyForHorizontalAlignment.has(constraint.bottom) ? nodeToDummyForHorizontalAlignment.get(constraint.bottom) : constraint.bottom;\n\n if (!self.nodesInRelativeVertical.includes(nodeIdTop)) {\n self.nodesInRelativeVertical.push(nodeIdTop);\n self.nodeToRelativeConstraintMapVertical.set(nodeIdTop, []);\n if (self.dummyToNodeForHorizontalAlignment.has(nodeIdTop)) {\n self.nodeToTempPositionMapVertical.set(nodeIdTop, self.idToNodeMap.get(self.dummyToNodeForHorizontalAlignment.get(nodeIdTop)[0]).getCenterY());\n } else {\n self.nodeToTempPositionMapVertical.set(nodeIdTop, self.idToNodeMap.get(nodeIdTop).getCenterY());\n }\n }\n if (!self.nodesInRelativeVertical.includes(nodeIdBottom)) {\n self.nodesInRelativeVertical.push(nodeIdBottom);\n self.nodeToRelativeConstraintMapVertical.set(nodeIdBottom, []);\n if (self.dummyToNodeForHorizontalAlignment.has(nodeIdBottom)) {\n self.nodeToTempPositionMapVertical.set(nodeIdBottom, self.idToNodeMap.get(self.dummyToNodeForHorizontalAlignment.get(nodeIdBottom)[0]).getCenterY());\n } else {\n self.nodeToTempPositionMapVertical.set(nodeIdBottom, self.idToNodeMap.get(nodeIdBottom).getCenterY());\n }\n }\n self.nodeToRelativeConstraintMapVertical.get(nodeIdTop).push({ bottom: nodeIdBottom, gap: constraint.gap });\n self.nodeToRelativeConstraintMapVertical.get(nodeIdBottom).push({ top: nodeIdTop, gap: constraint.gap });\n }\n });\n } else {\n var subGraphOnHorizontal = new Map(); // subgraph from vertical RP constraints\n var subGraphOnVertical = new Map(); // subgraph from vertical RP constraints\n\n // construct subgraphs from relative placement constraints \n this.constraints.relativePlacementConstraint.forEach(function (constraint) {\n if (constraint.left) {\n var left = nodeToDummyForVerticalAlignment.has(constraint.left) ? nodeToDummyForVerticalAlignment.get(constraint.left) : constraint.left;\n var right = nodeToDummyForVerticalAlignment.has(constraint.right) ? nodeToDummyForVerticalAlignment.get(constraint.right) : constraint.right;\n if (subGraphOnHorizontal.has(left)) {\n subGraphOnHorizontal.get(left).push(right);\n } else {\n subGraphOnHorizontal.set(left, [right]);\n }\n if (subGraphOnHorizontal.has(right)) {\n subGraphOnHorizontal.get(right).push(left);\n } else {\n subGraphOnHorizontal.set(right, [left]);\n }\n } else {\n var top = nodeToDummyForHorizontalAlignment.has(constraint.top) ? nodeToDummyForHorizontalAlignment.get(constraint.top) : constraint.top;\n var bottom = nodeToDummyForHorizontalAlignment.has(constraint.bottom) ? nodeToDummyForHorizontalAlignment.get(constraint.bottom) : constraint.bottom;\n if (subGraphOnVertical.has(top)) {\n subGraphOnVertical.get(top).push(bottom);\n } else {\n subGraphOnVertical.set(top, [bottom]);\n }\n if (subGraphOnVertical.has(bottom)) {\n subGraphOnVertical.get(bottom).push(top);\n } else {\n subGraphOnVertical.set(bottom, [top]);\n }\n }\n });\n\n // function to construct components from a given graph \n // also returns an array that keeps whether each component contains fixed node\n var constructComponents = function constructComponents(graph, fixedNodes) {\n var components = [];\n var isFixed = [];\n var queue = new LinkedList();\n var visited = new Set();\n var count = 0;\n\n graph.forEach(function (value, key) {\n if (!visited.has(key)) {\n components[count] = [];\n isFixed[count] = false;\n var currentNode = key;\n queue.push(currentNode);\n visited.add(currentNode);\n components[count].push(currentNode);\n\n while (queue.length != 0) {\n currentNode = queue.shift();\n if (fixedNodes.has(currentNode)) {\n isFixed[count] = true;\n }\n var neighbors = graph.get(currentNode);\n neighbors.forEach(function (neighbor) {\n if (!visited.has(neighbor)) {\n queue.push(neighbor);\n visited.add(neighbor);\n components[count].push(neighbor);\n }\n });\n }\n count++;\n }\n });\n\n return { components: components, isFixed: isFixed };\n };\n\n var resultOnHorizontal = constructComponents(subGraphOnHorizontal, self.fixedNodesOnHorizontal);\n this.componentsOnHorizontal = resultOnHorizontal.components;\n this.fixedComponentsOnHorizontal = resultOnHorizontal.isFixed;\n var resultOnVertical = constructComponents(subGraphOnVertical, self.fixedNodesOnVertical);\n this.componentsOnVertical = resultOnVertical.components;\n this.fixedComponentsOnVertical = resultOnVertical.isFixed;\n }\n }\n};\n\n// updates node displacements based on constraints\nCoSELayout.prototype.updateDisplacements = function () {\n var self = this;\n if (this.constraints.fixedNodeConstraint) {\n this.constraints.fixedNodeConstraint.forEach(function (nodeData) {\n var fixedNode = self.idToNodeMap.get(nodeData.nodeId);\n fixedNode.displacementX = 0;\n fixedNode.displacementY = 0;\n });\n }\n\n if (this.constraints.alignmentConstraint) {\n if (this.constraints.alignmentConstraint.vertical) {\n var allVerticalAlignments = this.constraints.alignmentConstraint.vertical;\n for (var i = 0; i < allVerticalAlignments.length; i++) {\n var totalDisplacementX = 0;\n for (var j = 0; j < allVerticalAlignments[i].length; j++) {\n if (this.fixedNodeSet.has(allVerticalAlignments[i][j])) {\n totalDisplacementX = 0;\n break;\n }\n totalDisplacementX += this.idToNodeMap.get(allVerticalAlignments[i][j]).displacementX;\n }\n var averageDisplacementX = totalDisplacementX / allVerticalAlignments[i].length;\n for (var j = 0; j < allVerticalAlignments[i].length; j++) {\n this.idToNodeMap.get(allVerticalAlignments[i][j]).displacementX = averageDisplacementX;\n }\n }\n }\n if (this.constraints.alignmentConstraint.horizontal) {\n var allHorizontalAlignments = this.constraints.alignmentConstraint.horizontal;\n for (var i = 0; i < allHorizontalAlignments.length; i++) {\n var totalDisplacementY = 0;\n for (var j = 0; j < allHorizontalAlignments[i].length; j++) {\n if (this.fixedNodeSet.has(allHorizontalAlignments[i][j])) {\n totalDisplacementY = 0;\n break;\n }\n totalDisplacementY += this.idToNodeMap.get(allHorizontalAlignments[i][j]).displacementY;\n }\n var averageDisplacementY = totalDisplacementY / allHorizontalAlignments[i].length;\n for (var j = 0; j < allHorizontalAlignments[i].length; j++) {\n this.idToNodeMap.get(allHorizontalAlignments[i][j]).displacementY = averageDisplacementY;\n }\n }\n }\n }\n\n if (this.constraints.relativePlacementConstraint) {\n\n if (CoSEConstants.RELAX_MOVEMENT_ON_CONSTRAINTS) {\n // shuffle array to randomize node processing order\n if (this.totalIterations % 10 == 0) {\n this.shuffle(this.nodesInRelativeHorizontal);\n this.shuffle(this.nodesInRelativeVertical);\n }\n\n this.nodesInRelativeHorizontal.forEach(function (nodeId) {\n if (!self.fixedNodesOnHorizontal.has(nodeId)) {\n var displacement = 0;\n if (self.dummyToNodeForVerticalAlignment.has(nodeId)) {\n displacement = self.idToNodeMap.get(self.dummyToNodeForVerticalAlignment.get(nodeId)[0]).displacementX;\n } else {\n displacement = self.idToNodeMap.get(nodeId).displacementX;\n }\n self.nodeToRelativeConstraintMapHorizontal.get(nodeId).forEach(function (constraint) {\n if (constraint.right) {\n var diff = self.nodeToTempPositionMapHorizontal.get(constraint.right) - self.nodeToTempPositionMapHorizontal.get(nodeId) - displacement;\n if (diff < constraint.gap) {\n displacement -= constraint.gap - diff;\n }\n } else {\n var diff = self.nodeToTempPositionMapHorizontal.get(nodeId) - self.nodeToTempPositionMapHorizontal.get(constraint.left) + displacement;\n if (diff < constraint.gap) {\n displacement += constraint.gap - diff;\n }\n }\n });\n self.nodeToTempPositionMapHorizontal.set(nodeId, self.nodeToTempPositionMapHorizontal.get(nodeId) + displacement);\n if (self.dummyToNodeForVerticalAlignment.has(nodeId)) {\n self.dummyToNodeForVerticalAlignment.get(nodeId).forEach(function (nodeId) {\n self.idToNodeMap.get(nodeId).displacementX = displacement;\n });\n } else {\n self.idToNodeMap.get(nodeId).displacementX = displacement;\n }\n }\n });\n\n this.nodesInRelativeVertical.forEach(function (nodeId) {\n if (!self.fixedNodesOnHorizontal.has(nodeId)) {\n var displacement = 0;\n if (self.dummyToNodeForHorizontalAlignment.has(nodeId)) {\n displacement = self.idToNodeMap.get(self.dummyToNodeForHorizontalAlignment.get(nodeId)[0]).displacementY;\n } else {\n displacement = self.idToNodeMap.get(nodeId).displacementY;\n }\n self.nodeToRelativeConstraintMapVertical.get(nodeId).forEach(function (constraint) {\n if (constraint.bottom) {\n var diff = self.nodeToTempPositionMapVertical.get(constraint.bottom) - self.nodeToTempPositionMapVertical.get(nodeId) - displacement;\n if (diff < constraint.gap) {\n displacement -= constraint.gap - diff;\n }\n } else {\n var diff = self.nodeToTempPositionMapVertical.get(nodeId) - self.nodeToTempPositionMapVertical.get(constraint.top) + displacement;\n if (diff < constraint.gap) {\n displacement += constraint.gap - diff;\n }\n }\n });\n self.nodeToTempPositionMapVertical.set(nodeId, self.nodeToTempPositionMapVertical.get(nodeId) + displacement);\n if (self.dummyToNodeForHorizontalAlignment.has(nodeId)) {\n self.dummyToNodeForHorizontalAlignment.get(nodeId).forEach(function (nodeId) {\n self.idToNodeMap.get(nodeId).displacementY = displacement;\n });\n } else {\n self.idToNodeMap.get(nodeId).displacementY = displacement;\n }\n }\n });\n } else {\n for (var i = 0; i < this.componentsOnHorizontal.length; i++) {\n var component = this.componentsOnHorizontal[i];\n if (this.fixedComponentsOnHorizontal[i]) {\n for (var j = 0; j < component.length; j++) {\n if (this.dummyToNodeForVerticalAlignment.has(component[j])) {\n this.dummyToNodeForVerticalAlignment.get(component[j]).forEach(function (nodeId) {\n self.idToNodeMap.get(nodeId).displacementX = 0;\n });\n } else {\n this.idToNodeMap.get(component[j]).displacementX = 0;\n }\n }\n } else {\n var sum = 0;\n var count = 0;\n for (var j = 0; j < component.length; j++) {\n if (this.dummyToNodeForVerticalAlignment.has(component[j])) {\n var actualNodes = this.dummyToNodeForVerticalAlignment.get(component[j]);\n sum += actualNodes.length * this.idToNodeMap.get(actualNodes[0]).displacementX;\n count += actualNodes.length;\n } else {\n sum += this.idToNodeMap.get(component[j]).displacementX;\n count++;\n }\n }\n var averageDisplacement = sum / count;\n for (var j = 0; j < component.length; j++) {\n if (this.dummyToNodeForVerticalAlignment.has(component[j])) {\n this.dummyToNodeForVerticalAlignment.get(component[j]).forEach(function (nodeId) {\n self.idToNodeMap.get(nodeId).displacementX = averageDisplacement;\n });\n } else {\n this.idToNodeMap.get(component[j]).displacementX = averageDisplacement;\n }\n }\n }\n }\n\n for (var i = 0; i < this.componentsOnVertical.length; i++) {\n var component = this.componentsOnVertical[i];\n if (this.fixedComponentsOnVertical[i]) {\n for (var j = 0; j < component.length; j++) {\n if (this.dummyToNodeForHorizontalAlignment.has(component[j])) {\n this.dummyToNodeForHorizontalAlignment.get(component[j]).forEach(function (nodeId) {\n self.idToNodeMap.get(nodeId).displacementY = 0;\n });\n } else {\n this.idToNodeMap.get(component[j]).displacementY = 0;\n }\n }\n } else {\n var sum = 0;\n var count = 0;\n for (var j = 0; j < component.length; j++) {\n if (this.dummyToNodeForHorizontalAlignment.has(component[j])) {\n var actualNodes = this.dummyToNodeForHorizontalAlignment.get(component[j]);\n sum += actualNodes.length * this.idToNodeMap.get(actualNodes[0]).displacementY;\n count += actualNodes.length;\n } else {\n sum += this.idToNodeMap.get(component[j]).displacementY;\n count++;\n }\n }\n var averageDisplacement = sum / count;\n for (var j = 0; j < component.length; j++) {\n if (this.dummyToNodeForHorizontalAlignment.has(component[j])) {\n this.dummyToNodeForHorizontalAlignment.get(component[j]).forEach(function (nodeId) {\n self.idToNodeMap.get(nodeId).displacementY = averageDisplacement;\n });\n } else {\n this.idToNodeMap.get(component[j]).displacementY = averageDisplacement;\n }\n }\n }\n }\n }\n }\n};\n\nCoSELayout.prototype.calculateNodesToApplyGravitationTo = function () {\n var nodeList = [];\n var graph;\n\n var graphs = this.graphManager.getGraphs();\n var size = graphs.length;\n var i;\n for (i = 0; i < size; i++) {\n graph = graphs[i];\n\n graph.updateConnected();\n\n if (!graph.isConnected) {\n nodeList = nodeList.concat(graph.getNodes());\n }\n }\n\n return nodeList;\n};\n\nCoSELayout.prototype.createBendpoints = function () {\n var edges = [];\n edges = edges.concat(this.graphManager.getAllEdges());\n var visited = new Set();\n var i;\n for (i = 0; i < edges.length; i++) {\n var edge = edges[i];\n\n if (!visited.has(edge)) {\n var source = edge.getSource();\n var target = edge.getTarget();\n\n if (source == target) {\n edge.getBendpoints().push(new PointD());\n edge.getBendpoints().push(new PointD());\n this.createDummyNodesForBendpoints(edge);\n visited.add(edge);\n } else {\n var edgeList = [];\n\n edgeList = edgeList.concat(source.getEdgeListToNode(target));\n edgeList = edgeList.concat(target.getEdgeListToNode(source));\n\n if (!visited.has(edgeList[0])) {\n if (edgeList.length > 1) {\n var k;\n for (k = 0; k < edgeList.length; k++) {\n var multiEdge = edgeList[k];\n multiEdge.getBendpoints().push(new PointD());\n this.createDummyNodesForBendpoints(multiEdge);\n }\n }\n edgeList.forEach(function (edge) {\n visited.add(edge);\n });\n }\n }\n }\n\n if (visited.size == edges.length) {\n break;\n }\n }\n};\n\nCoSELayout.prototype.positionNodesRadially = function (forest) {\n // We tile the trees to a grid row by row; first tree starts at (0,0)\n var currentStartingPoint = new Point(0, 0);\n var numberOfColumns = Math.ceil(Math.sqrt(forest.length));\n var height = 0;\n var currentY = 0;\n var currentX = 0;\n var point = new PointD(0, 0);\n\n for (var i = 0; i < forest.length; i++) {\n if (i % numberOfColumns == 0) {\n // Start of a new row, make the x coordinate 0, increment the\n // y coordinate with the max height of the previous row\n currentX = 0;\n currentY = height;\n\n if (i != 0) {\n currentY += CoSEConstants.DEFAULT_COMPONENT_SEPERATION;\n }\n\n height = 0;\n }\n\n var tree = forest[i];\n\n // Find the center of the tree\n var centerNode = Layout.findCenterOfTree(tree);\n\n // Set the staring point of the next tree\n currentStartingPoint.x = currentX;\n currentStartingPoint.y = currentY;\n\n // Do a radial layout starting with the center\n point = CoSELayout.radialLayout(tree, centerNode, currentStartingPoint);\n\n if (point.y > height) {\n height = Math.floor(point.y);\n }\n\n currentX = Math.floor(point.x + CoSEConstants.DEFAULT_COMPONENT_SEPERATION);\n }\n\n this.transform(new PointD(LayoutConstants.WORLD_CENTER_X - point.x / 2, LayoutConstants.WORLD_CENTER_Y - point.y / 2));\n};\n\nCoSELayout.radialLayout = function (tree, centerNode, startingPoint) {\n var radialSep = Math.max(this.maxDiagonalInTree(tree), CoSEConstants.DEFAULT_RADIAL_SEPARATION);\n CoSELayout.branchRadialLayout(centerNode, null, 0, 359, 0, radialSep);\n var bounds = LGraph.calculateBounds(tree);\n\n var transform = new Transform();\n transform.setDeviceOrgX(bounds.getMinX());\n transform.setDeviceOrgY(bounds.getMinY());\n transform.setWorldOrgX(startingPoint.x);\n transform.setWorldOrgY(startingPoint.y);\n\n for (var i = 0; i < tree.length; i++) {\n var node = tree[i];\n node.transform(transform);\n }\n\n var bottomRight = new PointD(bounds.getMaxX(), bounds.getMaxY());\n\n return transform.inverseTransformPoint(bottomRight);\n};\n\nCoSELayout.branchRadialLayout = function (node, parentOfNode, startAngle, endAngle, distance, radialSeparation) {\n // First, position this node by finding its angle.\n var halfInterval = (endAngle - startAngle + 1) / 2;\n\n if (halfInterval < 0) {\n halfInterval += 180;\n }\n\n var nodeAngle = (halfInterval + startAngle) % 360;\n var teta = nodeAngle * IGeometry.TWO_PI / 360;\n\n // Make polar to java cordinate conversion.\n var cos_teta = Math.cos(teta);\n var x_ = distance * Math.cos(teta);\n var y_ = distance * Math.sin(teta);\n\n node.setCenter(x_, y_);\n\n // Traverse all neighbors of this node and recursively call this\n // function.\n var neighborEdges = [];\n neighborEdges = neighborEdges.concat(node.getEdges());\n var childCount = neighborEdges.length;\n\n if (parentOfNode != null) {\n childCount--;\n }\n\n var branchCount = 0;\n\n var incEdgesCount = neighborEdges.length;\n var startIndex;\n\n var edges = node.getEdgesBetween(parentOfNode);\n\n // If there are multiple edges, prune them until there remains only one\n // edge.\n while (edges.length > 1) {\n //neighborEdges.remove(edges.remove(0));\n var temp = edges[0];\n edges.splice(0, 1);\n var index = neighborEdges.indexOf(temp);\n if (index >= 0) {\n neighborEdges.splice(index, 1);\n }\n incEdgesCount--;\n childCount--;\n }\n\n if (parentOfNode != null) {\n //assert edges.length == 1;\n startIndex = (neighborEdges.indexOf(edges[0]) + 1) % incEdgesCount;\n } else {\n startIndex = 0;\n }\n\n var stepAngle = Math.abs(endAngle - startAngle) / childCount;\n\n for (var i = startIndex; branchCount != childCount; i = ++i % incEdgesCount) {\n var currentNeighbor = neighborEdges[i].getOtherEnd(node);\n\n // Don't back traverse to root node in current tree.\n if (currentNeighbor == parentOfNode) {\n continue;\n }\n\n var childStartAngle = (startAngle + branchCount * stepAngle) % 360;\n var childEndAngle = (childStartAngle + stepAngle) % 360;\n\n CoSELayout.branchRadialLayout(currentNeighbor, node, childStartAngle, childEndAngle, distance + radialSeparation, radialSeparation);\n\n branchCount++;\n }\n};\n\nCoSELayout.maxDiagonalInTree = function (tree) {\n var maxDiagonal = Integer.MIN_VALUE;\n\n for (var i = 0; i < tree.length; i++) {\n var node = tree[i];\n var diagonal = node.getDiagonal();\n\n if (diagonal > maxDiagonal) {\n maxDiagonal = diagonal;\n }\n }\n\n return maxDiagonal;\n};\n\nCoSELayout.prototype.calcRepulsionRange = function () {\n // formula is 2 x (level + 1) x idealEdgeLength\n return 2 * (this.level + 1) * this.idealEdgeLength;\n};\n\n// Tiling methods\n\n// Group zero degree members whose parents are not to be tiled, create dummy parents where needed and fill memberGroups by their dummp parent id's\nCoSELayout.prototype.groupZeroDegreeMembers = function () {\n var self = this;\n // array of [parent_id x oneDegreeNode_id]\n var tempMemberGroups = {}; // A temporary map of parent node and its zero degree members\n this.memberGroups = {}; // A map of dummy parent node and its zero degree members whose parents are not to be tiled\n this.idToDummyNode = {}; // A map of id to dummy node \n\n var zeroDegree = []; // List of zero degree nodes whose parents are not to be tiled\n var allNodes = this.graphManager.getAllNodes();\n\n // Fill zero degree list\n for (var i = 0; i < allNodes.length; i++) {\n var node = allNodes[i];\n var parent = node.getParent();\n // If a node has zero degree and its parent is not to be tiled if exists add that node to zeroDegres list\n if (this.getNodeDegreeWithChildren(node) === 0 && (parent.id == undefined || !this.getToBeTiled(parent))) {\n zeroDegree.push(node);\n }\n }\n\n // Create a map of parent node and its zero degree members\n for (var i = 0; i < zeroDegree.length; i++) {\n var node = zeroDegree[i]; // Zero degree node itself\n var p_id = node.getParent().id; // Parent id\n\n if (typeof tempMemberGroups[p_id] === \"undefined\") tempMemberGroups[p_id] = [];\n\n tempMemberGroups[p_id] = tempMemberGroups[p_id].concat(node); // Push node to the list belongs to its parent in tempMemberGroups\n }\n\n // If there are at least two nodes at a level, create a dummy compound for them\n Object.keys(tempMemberGroups).forEach(function (p_id) {\n if (tempMemberGroups[p_id].length > 1) {\n var dummyCompoundId = \"DummyCompound_\" + p_id; // The id of dummy compound which will be created soon\n self.memberGroups[dummyCompoundId] = tempMemberGroups[p_id]; // Add dummy compound to memberGroups\n\n var parent = tempMemberGroups[p_id][0].getParent(); // The parent of zero degree nodes will be the parent of new dummy compound\n\n // Create a dummy compound with calculated id\n var dummyCompound = new CoSENode(self.graphManager);\n dummyCompound.id = dummyCompoundId;\n dummyCompound.paddingLeft = parent.paddingLeft || 0;\n dummyCompound.paddingRight = parent.paddingRight || 0;\n dummyCompound.paddingBottom = parent.paddingBottom || 0;\n dummyCompound.paddingTop = parent.paddingTop || 0;\n\n self.idToDummyNode[dummyCompoundId] = dummyCompound;\n\n var dummyParentGraph = self.getGraphManager().add(self.newGraph(), dummyCompound);\n var parentGraph = parent.getChild();\n\n // Add dummy compound to parent the graph\n parentGraph.add(dummyCompound);\n\n // For each zero degree node in this level remove it from its parent graph and add it to the graph of dummy parent\n for (var i = 0; i < tempMemberGroups[p_id].length; i++) {\n var node = tempMemberGroups[p_id][i];\n\n parentGraph.remove(node);\n dummyParentGraph.add(node);\n }\n }\n });\n};\n\nCoSELayout.prototype.clearCompounds = function () {\n var childGraphMap = {};\n var idToNode = {};\n\n // Get compound ordering by finding the inner one first\n this.performDFSOnCompounds();\n\n for (var i = 0; i < this.compoundOrder.length; i++) {\n\n idToNode[this.compoundOrder[i].id] = this.compoundOrder[i];\n childGraphMap[this.compoundOrder[i].id] = [].concat(this.compoundOrder[i].getChild().getNodes());\n\n // Remove children of compounds\n this.graphManager.remove(this.compoundOrder[i].getChild());\n this.compoundOrder[i].child = null;\n }\n\n this.graphManager.resetAllNodes();\n\n // Tile the removed children\n this.tileCompoundMembers(childGraphMap, idToNode);\n};\n\nCoSELayout.prototype.clearZeroDegreeMembers = function () {\n var self = this;\n var tiledZeroDegreePack = this.tiledZeroDegreePack = [];\n\n Object.keys(this.memberGroups).forEach(function (id) {\n var compoundNode = self.idToDummyNode[id]; // Get the dummy compound\n\n tiledZeroDegreePack[id] = self.tileNodes(self.memberGroups[id], compoundNode.paddingLeft + compoundNode.paddingRight);\n\n // Set the width and height of the dummy compound as calculated\n compoundNode.rect.width = tiledZeroDegreePack[id].width;\n compoundNode.rect.height = tiledZeroDegreePack[id].height;\n compoundNode.setCenter(tiledZeroDegreePack[id].centerX, tiledZeroDegreePack[id].centerY);\n\n // compound left and top margings for labels\n // when node labels are included, these values may be set to different values below and are used in tilingPostLayout,\n // otherwise they stay as zero\n compoundNode.labelMarginLeft = 0;\n compoundNode.labelMarginTop = 0;\n\n // Update compound bounds considering its label properties and set label margins for left and top\n if (CoSEConstants.NODE_DIMENSIONS_INCLUDE_LABELS) {\n\n var width = compoundNode.rect.width;\n var height = compoundNode.rect.height;\n\n if (compoundNode.labelWidth) {\n if (compoundNode.labelPosHorizontal == \"left\") {\n compoundNode.rect.x -= compoundNode.labelWidth;\n compoundNode.setWidth(width + compoundNode.labelWidth);\n compoundNode.labelMarginLeft = compoundNode.labelWidth;\n } else if (compoundNode.labelPosHorizontal == \"center\" && compoundNode.labelWidth > width) {\n compoundNode.rect.x -= (compoundNode.labelWidth - width) / 2;\n compoundNode.setWidth(compoundNode.labelWidth);\n compoundNode.labelMarginLeft = (compoundNode.labelWidth - width) / 2;\n } else if (compoundNode.labelPosHorizontal == \"right\") {\n compoundNode.setWidth(width + compoundNode.labelWidth);\n }\n }\n\n if (compoundNode.labelHeight) {\n if (compoundNode.labelPosVertical == \"top\") {\n compoundNode.rect.y -= compoundNode.labelHeight;\n compoundNode.setHeight(height + compoundNode.labelHeight);\n compoundNode.labelMarginTop = compoundNode.labelHeight;\n } else if (compoundNode.labelPosVertical == \"center\" && compoundNode.labelHeight > height) {\n compoundNode.rect.y -= (compoundNode.labelHeight - height) / 2;\n compoundNode.setHeight(compoundNode.labelHeight);\n compoundNode.labelMarginTop = (compoundNode.labelHeight - height) / 2;\n } else if (compoundNode.labelPosVertical == \"bottom\") {\n compoundNode.setHeight(height + compoundNode.labelHeight);\n }\n }\n }\n });\n};\n\nCoSELayout.prototype.repopulateCompounds = function () {\n for (var i = this.compoundOrder.length - 1; i >= 0; i--) {\n var lCompoundNode = this.compoundOrder[i];\n var id = lCompoundNode.id;\n var horizontalMargin = lCompoundNode.paddingLeft;\n var verticalMargin = lCompoundNode.paddingTop;\n var labelMarginLeft = lCompoundNode.labelMarginLeft;\n var labelMarginTop = lCompoundNode.labelMarginTop;\n\n this.adjustLocations(this.tiledMemberPack[id], lCompoundNode.rect.x, lCompoundNode.rect.y, horizontalMargin, verticalMargin, labelMarginLeft, labelMarginTop);\n }\n};\n\nCoSELayout.prototype.repopulateZeroDegreeMembers = function () {\n var self = this;\n var tiledPack = this.tiledZeroDegreePack;\n\n Object.keys(tiledPack).forEach(function (id) {\n var compoundNode = self.idToDummyNode[id]; // Get the dummy compound by its id\n var horizontalMargin = compoundNode.paddingLeft;\n var verticalMargin = compoundNode.paddingTop;\n var labelMarginLeft = compoundNode.labelMarginLeft;\n var labelMarginTop = compoundNode.labelMarginTop;\n\n // Adjust the positions of nodes wrt its compound\n self.adjustLocations(tiledPack[id], compoundNode.rect.x, compoundNode.rect.y, horizontalMargin, verticalMargin, labelMarginLeft, labelMarginTop);\n });\n};\n\nCoSELayout.prototype.getToBeTiled = function (node) {\n var id = node.id;\n //firstly check the previous results\n if (this.toBeTiled[id] != null) {\n return this.toBeTiled[id];\n }\n\n //only compound nodes are to be tiled\n var childGraph = node.getChild();\n if (childGraph == null) {\n this.toBeTiled[id] = false;\n return false;\n }\n\n var children = childGraph.getNodes(); // Get the children nodes\n\n //a compound node is not to be tiled if all of its compound children are not to be tiled\n for (var i = 0; i < children.length; i++) {\n var theChild = children[i];\n\n if (this.getNodeDegree(theChild) > 0) {\n this.toBeTiled[id] = false;\n return false;\n }\n\n //pass the children not having the compound structure\n if (theChild.getChild() == null) {\n this.toBeTiled[theChild.id] = false;\n continue;\n }\n\n if (!this.getToBeTiled(theChild)) {\n this.toBeTiled[id] = false;\n return false;\n }\n }\n this.toBeTiled[id] = true;\n return true;\n};\n\n// Get degree of a node depending of its edges and independent of its children\nCoSELayout.prototype.getNodeDegree = function (node) {\n var id = node.id;\n var edges = node.getEdges();\n var degree = 0;\n\n // For the edges connected\n for (var i = 0; i < edges.length; i++) {\n var edge = edges[i];\n if (edge.getSource().id !== edge.getTarget().id) {\n degree = degree + 1;\n }\n }\n return degree;\n};\n\n// Get degree of a node with its children\nCoSELayout.prototype.getNodeDegreeWithChildren = function (node) {\n var degree = this.getNodeDegree(node);\n if (node.getChild() == null) {\n return degree;\n }\n var children = node.getChild().getNodes();\n for (var i = 0; i < children.length; i++) {\n var child = children[i];\n degree += this.getNodeDegreeWithChildren(child);\n }\n return degree;\n};\n\nCoSELayout.prototype.performDFSOnCompounds = function () {\n this.compoundOrder = [];\n this.fillCompexOrderByDFS(this.graphManager.getRoot().getNodes());\n};\n\nCoSELayout.prototype.fillCompexOrderByDFS = function (children) {\n for (var i = 0; i < children.length; i++) {\n var child = children[i];\n if (child.getChild() != null) {\n this.fillCompexOrderByDFS(child.getChild().getNodes());\n }\n if (this.getToBeTiled(child)) {\n this.compoundOrder.push(child);\n }\n }\n};\n\n/**\n* This method places each zero degree member wrt given (x,y) coordinates (top left).\n*/\nCoSELayout.prototype.adjustLocations = function (organization, x, y, compoundHorizontalMargin, compoundVerticalMargin, compoundLabelMarginLeft, compoundLabelMarginTop) {\n x += compoundHorizontalMargin + compoundLabelMarginLeft;\n y += compoundVerticalMargin + compoundLabelMarginTop;\n\n var left = x;\n\n for (var i = 0; i < organization.rows.length; i++) {\n var row = organization.rows[i];\n x = left;\n var maxHeight = 0;\n\n for (var j = 0; j < row.length; j++) {\n var lnode = row[j];\n\n lnode.rect.x = x; // + lnode.rect.width / 2;\n lnode.rect.y = y; // + lnode.rect.height / 2;\n\n x += lnode.rect.width + organization.horizontalPadding;\n\n if (lnode.rect.height > maxHeight) maxHeight = lnode.rect.height;\n }\n\n y += maxHeight + organization.verticalPadding;\n }\n};\n\nCoSELayout.prototype.tileCompoundMembers = function (childGraphMap, idToNode) {\n var self = this;\n this.tiledMemberPack = [];\n\n Object.keys(childGraphMap).forEach(function (id) {\n // Get the compound node\n var compoundNode = idToNode[id];\n\n self.tiledMemberPack[id] = self.tileNodes(childGraphMap[id], compoundNode.paddingLeft + compoundNode.paddingRight);\n\n compoundNode.rect.width = self.tiledMemberPack[id].width;\n compoundNode.rect.height = self.tiledMemberPack[id].height;\n compoundNode.setCenter(self.tiledMemberPack[id].centerX, self.tiledMemberPack[id].centerY);\n\n // compound left and top margings for labels\n // when node labels are included, these values may be set to different values below and are used in tilingPostLayout,\n // otherwise they stay as zero\n compoundNode.labelMarginLeft = 0;\n compoundNode.labelMarginTop = 0;\n\n // Update compound bounds considering its label properties and set label margins for left and top\n if (CoSEConstants.NODE_DIMENSIONS_INCLUDE_LABELS) {\n\n var width = compoundNode.rect.width;\n var height = compoundNode.rect.height;\n\n if (compoundNode.labelWidth) {\n if (compoundNode.labelPosHorizontal == \"left\") {\n compoundNode.rect.x -= compoundNode.labelWidth;\n compoundNode.setWidth(width + compoundNode.labelWidth);\n compoundNode.labelMarginLeft = compoundNode.labelWidth;\n } else if (compoundNode.labelPosHorizontal == \"center\" && compoundNode.labelWidth > width) {\n compoundNode.rect.x -= (compoundNode.labelWidth - width) / 2;\n compoundNode.setWidth(compoundNode.labelWidth);\n compoundNode.labelMarginLeft = (compoundNode.labelWidth - width) / 2;\n } else if (compoundNode.labelPosHorizontal == \"right\") {\n compoundNode.setWidth(width + compoundNode.labelWidth);\n }\n }\n\n if (compoundNode.labelHeight) {\n if (compoundNode.labelPosVertical == \"top\") {\n compoundNode.rect.y -= compoundNode.labelHeight;\n compoundNode.setHeight(height + compoundNode.labelHeight);\n compoundNode.labelMarginTop = compoundNode.labelHeight;\n } else if (compoundNode.labelPosVertical == \"center\" && compoundNode.labelHeight > height) {\n compoundNode.rect.y -= (compoundNode.labelHeight - height) / 2;\n compoundNode.setHeight(compoundNode.labelHeight);\n compoundNode.labelMarginTop = (compoundNode.labelHeight - height) / 2;\n } else if (compoundNode.labelPosVertical == \"bottom\") {\n compoundNode.setHeight(height + compoundNode.labelHeight);\n }\n }\n }\n });\n};\n\nCoSELayout.prototype.tileNodes = function (nodes, minWidth) {\n var horizontalOrg = this.tileNodesByFavoringDim(nodes, minWidth, true);\n var verticalOrg = this.tileNodesByFavoringDim(nodes, minWidth, false);\n\n var horizontalRatio = this.getOrgRatio(horizontalOrg);\n var verticalRatio = this.getOrgRatio(verticalOrg);\n var bestOrg;\n\n // the best ratio is the one that is closer to 1 since the ratios are already normalized\n // and the best organization is the one that has the best ratio\n if (verticalRatio < horizontalRatio) {\n bestOrg = verticalOrg;\n } else {\n bestOrg = horizontalOrg;\n }\n\n return bestOrg;\n};\n\n// get the width/height ratio of the organization that is normalized so that it will not be less than 1\nCoSELayout.prototype.getOrgRatio = function (organization) {\n // get dimensions and calculate the initial ratio\n var width = organization.width;\n var height = organization.height;\n var ratio = width / height;\n\n // if the initial ratio is less then 1 then inverse it\n if (ratio < 1) {\n ratio = 1 / ratio;\n }\n\n // return the normalized ratio\n return ratio;\n};\n\n/*\n * Calculates the ideal width for the rows. This method assumes that\n * each node has the same sizes and calculates the ideal row width that\n * approximates a square shaped complex accordingly. However, since nodes would\n * have different sizes some rows would have different sizes and the resulting\n * shape would not be an exact square.\n */\nCoSELayout.prototype.calcIdealRowWidth = function (members, favorHorizontalDim) {\n // To approximate a square shaped complex we need to make complex width equal to complex height.\n // To achieve this we need to solve the following equation system for hc:\n // (x + bx) * hc - bx = (y + by) * vc - by, hc * vc = n\n // where x is the avarage width of the nodes, y is the avarage height of nodes\n // bx and by are the buffer sizes in horizontal and vertical dimensions accordingly,\n // hc and vc are the number of rows in horizontal and vertical dimensions\n // n is number of members.\n\n var verticalPadding = CoSEConstants.TILING_PADDING_VERTICAL;\n var horizontalPadding = CoSEConstants.TILING_PADDING_HORIZONTAL;\n\n // number of members\n var membersSize = members.length;\n\n // sum of the width of all members\n var totalWidth = 0;\n\n // sum of the height of all members\n var totalHeight = 0;\n\n var maxWidth = 0;\n\n // traverse all members to calculate total width and total height and get the maximum members width\n members.forEach(function (node) {\n totalWidth += node.getWidth();\n totalHeight += node.getHeight();\n\n if (node.getWidth() > maxWidth) {\n maxWidth = node.getWidth();\n }\n });\n\n // average width of the members\n var averageWidth = totalWidth / membersSize;\n\n // average height of the members\n var averageHeight = totalHeight / membersSize;\n\n // solving the initial equation system for the hc yields the following second degree equation:\n // hc^2 * (x+bx) + hc * (by - bx) - n * (y + by) = 0\n\n // the delta value to solve the equation above for hc\n var delta = Math.pow(verticalPadding - horizontalPadding, 2) + 4 * (averageWidth + horizontalPadding) * (averageHeight + verticalPadding) * membersSize;\n\n // solve the equation using delta value to calculate the horizontal count\n // that represents the number of nodes in an ideal row\n var horizontalCountDouble = (horizontalPadding - verticalPadding + Math.sqrt(delta)) / (2 * (averageWidth + horizontalPadding));\n // round the calculated horizontal count up or down according to the favored dimension\n var horizontalCount;\n\n if (favorHorizontalDim) {\n horizontalCount = Math.ceil(horizontalCountDouble);\n // if horizontalCount count is not a float value then both of rounding to floor and ceil\n // will yield the same values. Instead of repeating the same calculation try going up\n // while favoring horizontal dimension in such cases\n if (horizontalCount == horizontalCountDouble) {\n horizontalCount++;\n }\n } else {\n horizontalCount = Math.floor(horizontalCountDouble);\n }\n\n // ideal width to be calculated\n var idealWidth = horizontalCount * (averageWidth + horizontalPadding) - horizontalPadding;\n\n // if max width is bigger than calculated ideal width reset ideal width to it\n if (maxWidth > idealWidth) {\n idealWidth = maxWidth;\n }\n\n // add the left-right margins to the ideal row width\n idealWidth += horizontalPadding * 2;\n\n // return the ideal row width1\n return idealWidth;\n};\n\nCoSELayout.prototype.tileNodesByFavoringDim = function (nodes, minWidth, favorHorizontalDim) {\n var verticalPadding = CoSEConstants.TILING_PADDING_VERTICAL;\n var horizontalPadding = CoSEConstants.TILING_PADDING_HORIZONTAL;\n var tilingCompareBy = CoSEConstants.TILING_COMPARE_BY;\n var organization = {\n rows: [],\n rowWidth: [],\n rowHeight: [],\n width: 0,\n height: minWidth, // assume minHeight equals to minWidth\n verticalPadding: verticalPadding,\n horizontalPadding: horizontalPadding,\n centerX: 0,\n centerY: 0\n };\n\n if (tilingCompareBy) {\n organization.idealRowWidth = this.calcIdealRowWidth(nodes, favorHorizontalDim);\n }\n\n var getNodeArea = function getNodeArea(n) {\n return n.rect.width * n.rect.height;\n };\n\n var areaCompareFcn = function areaCompareFcn(n1, n2) {\n return getNodeArea(n2) - getNodeArea(n1);\n };\n\n // Sort the nodes in descending order of their areas\n nodes.sort(function (n1, n2) {\n var cmpBy = areaCompareFcn;\n if (organization.idealRowWidth) {\n cmpBy = tilingCompareBy;\n return cmpBy(n1.id, n2.id);\n }\n return cmpBy(n1, n2);\n });\n\n // Create the organization -> calculate compound center\n var sumCenterX = 0;\n var sumCenterY = 0;\n for (var i = 0; i < nodes.length; i++) {\n var lNode = nodes[i];\n\n sumCenterX += lNode.getCenterX();\n sumCenterY += lNode.getCenterY();\n }\n\n organization.centerX = sumCenterX / nodes.length;\n organization.centerY = sumCenterY / nodes.length;\n\n // Create the organization -> tile members\n for (var i = 0; i < nodes.length; i++) {\n var lNode = nodes[i];\n\n if (organization.rows.length == 0) {\n this.insertNodeToRow(organization, lNode, 0, minWidth);\n } else if (this.canAddHorizontal(organization, lNode.rect.width, lNode.rect.height)) {\n var rowIndex = organization.rows.length - 1;\n if (!organization.idealRowWidth) {\n rowIndex = this.getShortestRowIndex(organization);\n }\n this.insertNodeToRow(organization, lNode, rowIndex, minWidth);\n } else {\n this.insertNodeToRow(organization, lNode, organization.rows.length, minWidth);\n }\n\n this.shiftToLastRow(organization);\n }\n\n return organization;\n};\n\nCoSELayout.prototype.insertNodeToRow = function (organization, node, rowIndex, minWidth) {\n var minCompoundSize = minWidth;\n\n // Add new row if needed\n if (rowIndex == organization.rows.length) {\n var secondDimension = [];\n\n organization.rows.push(secondDimension);\n organization.rowWidth.push(minCompoundSize);\n organization.rowHeight.push(0);\n }\n\n // Update row width\n var w = organization.rowWidth[rowIndex] + node.rect.width;\n\n if (organization.rows[rowIndex].length > 0) {\n w += organization.horizontalPadding;\n }\n\n organization.rowWidth[rowIndex] = w;\n // Update compound width\n if (organization.width < w) {\n organization.width = w;\n }\n\n // Update height\n var h = node.rect.height;\n if (rowIndex > 0) h += organization.verticalPadding;\n\n var extraHeight = 0;\n if (h > organization.rowHeight[rowIndex]) {\n extraHeight = organization.rowHeight[rowIndex];\n organization.rowHeight[rowIndex] = h;\n extraHeight = organization.rowHeight[rowIndex] - extraHeight;\n }\n\n organization.height += extraHeight;\n\n // Insert node\n organization.rows[rowIndex].push(node);\n};\n\n//Scans the rows of an organization and returns the one with the min width\nCoSELayout.prototype.getShortestRowIndex = function (organization) {\n var r = -1;\n var min = Number.MAX_VALUE;\n\n for (var i = 0; i < organization.rows.length; i++) {\n if (organization.rowWidth[i] < min) {\n r = i;\n min = organization.rowWidth[i];\n }\n }\n return r;\n};\n\n//Scans the rows of an organization and returns the one with the max width\nCoSELayout.prototype.getLongestRowIndex = function (organization) {\n var r = -1;\n var max = Number.MIN_VALUE;\n\n for (var i = 0; i < organization.rows.length; i++) {\n\n if (organization.rowWidth[i] > max) {\n r = i;\n max = organization.rowWidth[i];\n }\n }\n\n return r;\n};\n\n/**\n* This method checks whether adding extra width to the organization violates\n* the aspect ratio(1) or not.\n*/\nCoSELayout.prototype.canAddHorizontal = function (organization, extraWidth, extraHeight) {\n\n // if there is an ideal row width specified use it instead of checking the aspect ratio\n if (organization.idealRowWidth) {\n var lastRowIndex = organization.rows.length - 1;\n var lastRowWidth = organization.rowWidth[lastRowIndex];\n\n // check and return if ideal row width will be exceed if the node is added to the row\n return lastRowWidth + extraWidth + organization.horizontalPadding <= organization.idealRowWidth;\n }\n\n var sri = this.getShortestRowIndex(organization);\n\n if (sri < 0) {\n return true;\n }\n\n var min = organization.rowWidth[sri];\n\n if (min + organization.horizontalPadding + extraWidth <= organization.width) return true;\n\n var hDiff = 0;\n\n // Adding to an existing row\n if (organization.rowHeight[sri] < extraHeight) {\n if (sri > 0) hDiff = extraHeight + organization.verticalPadding - organization.rowHeight[sri];\n }\n\n var add_to_row_ratio;\n if (organization.width - min >= extraWidth + organization.horizontalPadding) {\n add_to_row_ratio = (organization.height + hDiff) / (min + extraWidth + organization.horizontalPadding);\n } else {\n add_to_row_ratio = (organization.height + hDiff) / organization.width;\n }\n\n // Adding a new row for this node\n hDiff = extraHeight + organization.verticalPadding;\n var add_new_row_ratio;\n if (organization.width < extraWidth) {\n add_new_row_ratio = (organization.height + hDiff) / extraWidth;\n } else {\n add_new_row_ratio = (organization.height + hDiff) / organization.width;\n }\n\n if (add_new_row_ratio < 1) add_new_row_ratio = 1 / add_new_row_ratio;\n\n if (add_to_row_ratio < 1) add_to_row_ratio = 1 / add_to_row_ratio;\n\n return add_to_row_ratio < add_new_row_ratio;\n};\n\n//If moving the last node from the longest row and adding it to the last\n//row makes the bounding box smaller, do it.\nCoSELayout.prototype.shiftToLastRow = function (organization) {\n var longest = this.getLongestRowIndex(organization);\n var last = organization.rowWidth.length - 1;\n var row = organization.rows[longest];\n var node = row[row.length - 1];\n\n var diff = node.width + organization.horizontalPadding;\n\n // Check if there is enough space on the last row\n if (organization.width - organization.rowWidth[last] > diff && longest != last) {\n // Remove the last element of the longest row\n row.splice(-1, 1);\n\n // Push it to the last row\n organization.rows[last].push(node);\n\n organization.rowWidth[longest] = organization.rowWidth[longest] - diff;\n organization.rowWidth[last] = organization.rowWidth[last] + diff;\n organization.width = organization.rowWidth[instance.getLongestRowIndex(organization)];\n\n // Update heights of the organization\n var maxHeight = Number.MIN_VALUE;\n for (var i = 0; i < row.length; i++) {\n if (row[i].height > maxHeight) maxHeight = row[i].height;\n }\n if (longest > 0) maxHeight += organization.verticalPadding;\n\n var prevTotal = organization.rowHeight[longest] + organization.rowHeight[last];\n\n organization.rowHeight[longest] = maxHeight;\n if (organization.rowHeight[last] < node.height + organization.verticalPadding) organization.rowHeight[last] = node.height + organization.verticalPadding;\n\n var finalTotal = organization.rowHeight[longest] + organization.rowHeight[last];\n organization.height += finalTotal - prevTotal;\n\n this.shiftToLastRow(organization);\n }\n};\n\nCoSELayout.prototype.tilingPreLayout = function () {\n if (CoSEConstants.TILE) {\n // Find zero degree nodes and create a compound for each level\n this.groupZeroDegreeMembers();\n // Tile and clear children of each compound\n this.clearCompounds();\n // Separately tile and clear zero degree nodes for each level\n this.clearZeroDegreeMembers();\n }\n};\n\nCoSELayout.prototype.tilingPostLayout = function () {\n if (CoSEConstants.TILE) {\n this.repopulateZeroDegreeMembers();\n this.repopulateCompounds();\n }\n};\n\n// -----------------------------------------------------------------------------\n// Section: Tree Reduction methods\n// -----------------------------------------------------------------------------\n// Reduce trees \nCoSELayout.prototype.reduceTrees = function () {\n var prunedNodesAll = [];\n var containsLeaf = true;\n var node;\n\n while (containsLeaf) {\n var allNodes = this.graphManager.getAllNodes();\n var prunedNodesInStepTemp = [];\n containsLeaf = false;\n\n for (var i = 0; i < allNodes.length; i++) {\n node = allNodes[i];\n if (node.getEdges().length == 1 && !node.getEdges()[0].isInterGraph && node.getChild() == null) {\n if (CoSEConstants.PURE_INCREMENTAL) {\n var otherEnd = node.getEdges()[0].getOtherEnd(node);\n var relativePosition = new DimensionD(node.getCenterX() - otherEnd.getCenterX(), node.getCenterY() - otherEnd.getCenterY());\n prunedNodesInStepTemp.push([node, node.getEdges()[0], node.getOwner(), relativePosition]);\n } else {\n prunedNodesInStepTemp.push([node, node.getEdges()[0], node.getOwner()]);\n }\n containsLeaf = true;\n }\n }\n if (containsLeaf == true) {\n var prunedNodesInStep = [];\n for (var j = 0; j < prunedNodesInStepTemp.length; j++) {\n if (prunedNodesInStepTemp[j][0].getEdges().length == 1) {\n prunedNodesInStep.push(prunedNodesInStepTemp[j]);\n prunedNodesInStepTemp[j][0].getOwner().remove(prunedNodesInStepTemp[j][0]);\n }\n }\n prunedNodesAll.push(prunedNodesInStep);\n this.graphManager.resetAllNodes();\n this.graphManager.resetAllEdges();\n }\n }\n this.prunedNodesAll = prunedNodesAll;\n};\n\n// Grow tree one step \nCoSELayout.prototype.growTree = function (prunedNodesAll) {\n var lengthOfPrunedNodesInStep = prunedNodesAll.length;\n var prunedNodesInStep = prunedNodesAll[lengthOfPrunedNodesInStep - 1];\n\n var nodeData;\n for (var i = 0; i < prunedNodesInStep.length; i++) {\n nodeData = prunedNodesInStep[i];\n\n this.findPlaceforPrunedNode(nodeData);\n\n nodeData[2].add(nodeData[0]);\n nodeData[2].add(nodeData[1], nodeData[1].source, nodeData[1].target);\n }\n\n prunedNodesAll.splice(prunedNodesAll.length - 1, 1);\n this.graphManager.resetAllNodes();\n this.graphManager.resetAllEdges();\n};\n\n// Find an appropriate position to replace pruned node, this method can be improved\nCoSELayout.prototype.findPlaceforPrunedNode = function (nodeData) {\n\n var gridForPrunedNode;\n var nodeToConnect;\n var prunedNode = nodeData[0];\n if (prunedNode == nodeData[1].source) {\n nodeToConnect = nodeData[1].target;\n } else {\n nodeToConnect = nodeData[1].source;\n }\n\n if (CoSEConstants.PURE_INCREMENTAL) {\n prunedNode.setCenter(nodeToConnect.getCenterX() + nodeData[3].getWidth(), nodeToConnect.getCenterY() + nodeData[3].getHeight());\n } else {\n var startGridX = nodeToConnect.startX;\n var finishGridX = nodeToConnect.finishX;\n var startGridY = nodeToConnect.startY;\n var finishGridY = nodeToConnect.finishY;\n\n var upNodeCount = 0;\n var downNodeCount = 0;\n var rightNodeCount = 0;\n var leftNodeCount = 0;\n var controlRegions = [upNodeCount, rightNodeCount, downNodeCount, leftNodeCount];\n\n if (startGridY > 0) {\n for (var i = startGridX; i <= finishGridX; i++) {\n controlRegions[0] += this.grid[i][startGridY - 1].length + this.grid[i][startGridY].length - 1;\n }\n }\n if (finishGridX < this.grid.length - 1) {\n for (var i = startGridY; i <= finishGridY; i++) {\n controlRegions[1] += this.grid[finishGridX + 1][i].length + this.grid[finishGridX][i].length - 1;\n }\n }\n if (finishGridY < this.grid[0].length - 1) {\n for (var i = startGridX; i <= finishGridX; i++) {\n controlRegions[2] += this.grid[i][finishGridY + 1].length + this.grid[i][finishGridY].length - 1;\n }\n }\n if (startGridX > 0) {\n for (var i = startGridY; i <= finishGridY; i++) {\n controlRegions[3] += this.grid[startGridX - 1][i].length + this.grid[startGridX][i].length - 1;\n }\n }\n var min = Integer.MAX_VALUE;\n var minCount;\n var minIndex;\n for (var j = 0; j < controlRegions.length; j++) {\n if (controlRegions[j] < min) {\n min = controlRegions[j];\n minCount = 1;\n minIndex = j;\n } else if (controlRegions[j] == min) {\n minCount++;\n }\n }\n\n if (minCount == 3 && min == 0) {\n if (controlRegions[0] == 0 && controlRegions[1] == 0 && controlRegions[2] == 0) {\n gridForPrunedNode = 1;\n } else if (controlRegions[0] == 0 && controlRegions[1] == 0 && controlRegions[3] == 0) {\n gridForPrunedNode = 0;\n } else if (controlRegions[0] == 0 && controlRegions[2] == 0 && controlRegions[3] == 0) {\n gridForPrunedNode = 3;\n } else if (controlRegions[1] == 0 && controlRegions[2] == 0 && controlRegions[3] == 0) {\n gridForPrunedNode = 2;\n }\n } else if (minCount == 2 && min == 0) {\n var random = Math.floor(Math.random() * 2);\n if (controlRegions[0] == 0 && controlRegions[1] == 0) {\n ;\n if (random == 0) {\n gridForPrunedNode = 0;\n } else {\n gridForPrunedNode = 1;\n }\n } else if (controlRegions[0] == 0 && controlRegions[2] == 0) {\n if (random == 0) {\n gridForPrunedNode = 0;\n } else {\n gridForPrunedNode = 2;\n }\n } else if (controlRegions[0] == 0 && controlRegions[3] == 0) {\n if (random == 0) {\n gridForPrunedNode = 0;\n } else {\n gridForPrunedNode = 3;\n }\n } else if (controlRegions[1] == 0 && controlRegions[2] == 0) {\n if (random == 0) {\n gridForPrunedNode = 1;\n } else {\n gridForPrunedNode = 2;\n }\n } else if (controlRegions[1] == 0 && controlRegions[3] == 0) {\n if (random == 0) {\n gridForPrunedNode = 1;\n } else {\n gridForPrunedNode = 3;\n }\n } else {\n if (random == 0) {\n gridForPrunedNode = 2;\n } else {\n gridForPrunedNode = 3;\n }\n }\n } else if (minCount == 4 && min == 0) {\n var random = Math.floor(Math.random() * 4);\n gridForPrunedNode = random;\n } else {\n gridForPrunedNode = minIndex;\n }\n\n if (gridForPrunedNode == 0) {\n prunedNode.setCenter(nodeToConnect.getCenterX(), nodeToConnect.getCenterY() - nodeToConnect.getHeight() / 2 - FDLayoutConstants.DEFAULT_EDGE_LENGTH - prunedNode.getHeight() / 2);\n } else if (gridForPrunedNode == 1) {\n prunedNode.setCenter(nodeToConnect.getCenterX() + nodeToConnect.getWidth() / 2 + FDLayoutConstants.DEFAULT_EDGE_LENGTH + prunedNode.getWidth() / 2, nodeToConnect.getCenterY());\n } else if (gridForPrunedNode == 2) {\n prunedNode.setCenter(nodeToConnect.getCenterX(), nodeToConnect.getCenterY() + nodeToConnect.getHeight() / 2 + FDLayoutConstants.DEFAULT_EDGE_LENGTH + prunedNode.getHeight() / 2);\n } else {\n prunedNode.setCenter(nodeToConnect.getCenterX() - nodeToConnect.getWidth() / 2 - FDLayoutConstants.DEFAULT_EDGE_LENGTH - prunedNode.getWidth() / 2, nodeToConnect.getCenterY());\n }\n }\n};\n\nmodule.exports = CoSELayout;\n\n/***/ }),\n\n/***/ 991:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\n\nvar FDLayoutNode = __webpack_require__(551).FDLayoutNode;\nvar IMath = __webpack_require__(551).IMath;\n\nfunction CoSENode(gm, loc, size, vNode) {\n FDLayoutNode.call(this, gm, loc, size, vNode);\n}\n\nCoSENode.prototype = Object.create(FDLayoutNode.prototype);\nfor (var prop in FDLayoutNode) {\n CoSENode[prop] = FDLayoutNode[prop];\n}\n\nCoSENode.prototype.calculateDisplacement = function () {\n var layout = this.graphManager.getLayout();\n // this check is for compound nodes that contain fixed nodes\n if (this.getChild() != null && this.fixedNodeWeight) {\n this.displacementX += layout.coolingFactor * (this.springForceX + this.repulsionForceX + this.gravitationForceX) / this.fixedNodeWeight;\n this.displacementY += layout.coolingFactor * (this.springForceY + this.repulsionForceY + this.gravitationForceY) / this.fixedNodeWeight;\n } else {\n this.displacementX += layout.coolingFactor * (this.springForceX + this.repulsionForceX + this.gravitationForceX) / this.noOfChildren;\n this.displacementY += layout.coolingFactor * (this.springForceY + this.repulsionForceY + this.gravitationForceY) / this.noOfChildren;\n }\n\n if (Math.abs(this.displacementX) > layout.coolingFactor * layout.maxNodeDisplacement) {\n this.displacementX = layout.coolingFactor * layout.maxNodeDisplacement * IMath.sign(this.displacementX);\n }\n\n if (Math.abs(this.displacementY) > layout.coolingFactor * layout.maxNodeDisplacement) {\n this.displacementY = layout.coolingFactor * layout.maxNodeDisplacement * IMath.sign(this.displacementY);\n }\n\n // non-empty compound node, propogate movement to children as well\n if (this.child && this.child.getNodes().length > 0) {\n this.propogateDisplacementToChildren(this.displacementX, this.displacementY);\n }\n};\n\nCoSENode.prototype.propogateDisplacementToChildren = function (dX, dY) {\n var nodes = this.getChild().getNodes();\n var node;\n for (var i = 0; i < nodes.length; i++) {\n node = nodes[i];\n if (node.getChild() == null) {\n node.displacementX += dX;\n node.displacementY += dY;\n } else {\n node.propogateDisplacementToChildren(dX, dY);\n }\n }\n};\n\nCoSENode.prototype.move = function () {\n var layout = this.graphManager.getLayout();\n\n // a simple node or an empty compound node, move it\n if (this.child == null || this.child.getNodes().length == 0) {\n this.moveBy(this.displacementX, this.displacementY);\n\n layout.totalDisplacement += Math.abs(this.displacementX) + Math.abs(this.displacementY);\n }\n\n this.springForceX = 0;\n this.springForceY = 0;\n this.repulsionForceX = 0;\n this.repulsionForceY = 0;\n this.gravitationForceX = 0;\n this.gravitationForceY = 0;\n this.displacementX = 0;\n this.displacementY = 0;\n};\n\nCoSENode.prototype.setPred1 = function (pred1) {\n this.pred1 = pred1;\n};\n\nCoSENode.prototype.getPred1 = function () {\n return pred1;\n};\n\nCoSENode.prototype.getPred2 = function () {\n return pred2;\n};\n\nCoSENode.prototype.setNext = function (next) {\n this.next = next;\n};\n\nCoSENode.prototype.getNext = function () {\n return next;\n};\n\nCoSENode.prototype.setProcessed = function (processed) {\n this.processed = processed;\n};\n\nCoSENode.prototype.isProcessed = function () {\n return processed;\n};\n\nmodule.exports = CoSENode;\n\n/***/ }),\n\n/***/ 902:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar CoSEConstants = __webpack_require__(806);\nvar LinkedList = __webpack_require__(551).LinkedList;\nvar Matrix = __webpack_require__(551).Matrix;\nvar SVD = __webpack_require__(551).SVD;\n\nfunction ConstraintHandler() {}\n\nConstraintHandler.handleConstraints = function (layout) {\n // let layout = this.graphManager.getLayout();\n\n // get constraints from layout\n var constraints = {};\n constraints.fixedNodeConstraint = layout.constraints.fixedNodeConstraint;\n constraints.alignmentConstraint = layout.constraints.alignmentConstraint;\n constraints.relativePlacementConstraint = layout.constraints.relativePlacementConstraint;\n\n var idToNodeMap = new Map();\n var nodeIndexes = new Map();\n var xCoords = [];\n var yCoords = [];\n\n var allNodes = layout.getAllNodes();\n var index = 0;\n // fill index map and coordinates\n for (var i = 0; i < allNodes.length; i++) {\n var node = allNodes[i];\n if (node.getChild() == null) {\n nodeIndexes.set(node.id, index++);\n xCoords.push(node.getCenterX());\n yCoords.push(node.getCenterY());\n idToNodeMap.set(node.id, node);\n }\n }\n\n // if there exists relative placement constraint without gap value, set it to default \n if (constraints.relativePlacementConstraint) {\n constraints.relativePlacementConstraint.forEach(function (constraint) {\n if (!constraint.gap && constraint.gap != 0) {\n if (constraint.left) {\n constraint.gap = CoSEConstants.DEFAULT_EDGE_LENGTH + idToNodeMap.get(constraint.left).getWidth() / 2 + idToNodeMap.get(constraint.right).getWidth() / 2;\n } else {\n constraint.gap = CoSEConstants.DEFAULT_EDGE_LENGTH + idToNodeMap.get(constraint.top).getHeight() / 2 + idToNodeMap.get(constraint.bottom).getHeight() / 2;\n }\n }\n });\n }\n\n /* auxiliary functions */\n\n // calculate difference between two position objects\n var calculatePositionDiff = function calculatePositionDiff(pos1, pos2) {\n return { x: pos1.x - pos2.x, y: pos1.y - pos2.y };\n };\n\n // calculate average position of the nodes\n var calculateAvgPosition = function calculateAvgPosition(nodeIdSet) {\n var xPosSum = 0;\n var yPosSum = 0;\n nodeIdSet.forEach(function (nodeId) {\n xPosSum += xCoords[nodeIndexes.get(nodeId)];\n yPosSum += yCoords[nodeIndexes.get(nodeId)];\n });\n\n return { x: xPosSum / nodeIdSet.size, y: yPosSum / nodeIdSet.size };\n };\n\n // find an appropriate positioning for the nodes in a given graph according to relative placement constraints\n // this function also takes the fixed nodes and alignment constraints into account\n // graph: dag to be evaluated, direction: \"horizontal\" or \"vertical\", \n // fixedNodes: set of fixed nodes to consider during evaluation, dummyPositions: appropriate coordinates of the dummy nodes \n var findAppropriatePositionForRelativePlacement = function findAppropriatePositionForRelativePlacement(graph, direction, fixedNodes, dummyPositions, componentSources) {\n\n // find union of two sets\n function setUnion(setA, setB) {\n var union = new Set(setA);\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = setB[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var elem = _step.value;\n\n union.add(elem);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n return union;\n }\n\n // find indegree count for each node\n var inDegrees = new Map();\n\n graph.forEach(function (value, key) {\n inDegrees.set(key, 0);\n });\n graph.forEach(function (value, key) {\n value.forEach(function (adjacent) {\n inDegrees.set(adjacent.id, inDegrees.get(adjacent.id) + 1);\n });\n });\n\n var positionMap = new Map(); // keeps the position for each node\n var pastMap = new Map(); // keeps the predecessors(past) of a node\n var queue = new LinkedList();\n inDegrees.forEach(function (value, key) {\n if (value == 0) {\n queue.push(key);\n if (!fixedNodes) {\n if (direction == \"horizontal\") {\n positionMap.set(key, nodeIndexes.has(key) ? xCoords[nodeIndexes.get(key)] : dummyPositions.get(key));\n } else {\n positionMap.set(key, nodeIndexes.has(key) ? yCoords[nodeIndexes.get(key)] : dummyPositions.get(key));\n }\n }\n } else {\n positionMap.set(key, Number.NEGATIVE_INFINITY);\n }\n if (fixedNodes) {\n pastMap.set(key, new Set([key]));\n }\n });\n\n // align sources of each component in enforcement phase\n if (fixedNodes) {\n componentSources.forEach(function (component) {\n var fixedIds = [];\n component.forEach(function (nodeId) {\n if (fixedNodes.has(nodeId)) {\n fixedIds.push(nodeId);\n }\n });\n if (fixedIds.length > 0) {\n var position = 0;\n fixedIds.forEach(function (fixedId) {\n if (direction == \"horizontal\") {\n positionMap.set(fixedId, nodeIndexes.has(fixedId) ? xCoords[nodeIndexes.get(fixedId)] : dummyPositions.get(fixedId));\n position += positionMap.get(fixedId);\n } else {\n positionMap.set(fixedId, nodeIndexes.has(fixedId) ? yCoords[nodeIndexes.get(fixedId)] : dummyPositions.get(fixedId));\n position += positionMap.get(fixedId);\n }\n });\n position = position / fixedIds.length;\n component.forEach(function (nodeId) {\n if (!fixedNodes.has(nodeId)) {\n positionMap.set(nodeId, position);\n }\n });\n } else {\n var _position = 0;\n component.forEach(function (nodeId) {\n if (direction == \"horizontal\") {\n _position += nodeIndexes.has(nodeId) ? xCoords[nodeIndexes.get(nodeId)] : dummyPositions.get(nodeId);\n } else {\n _position += nodeIndexes.has(nodeId) ? yCoords[nodeIndexes.get(nodeId)] : dummyPositions.get(nodeId);\n }\n });\n _position = _position / component.length;\n component.forEach(function (nodeId) {\n positionMap.set(nodeId, _position);\n });\n }\n });\n }\n\n // calculate positions of the nodes\n\n var _loop = function _loop() {\n var currentNode = queue.shift();\n var neighbors = graph.get(currentNode);\n neighbors.forEach(function (neighbor) {\n if (positionMap.get(neighbor.id) < positionMap.get(currentNode) + neighbor.gap) {\n if (fixedNodes && fixedNodes.has(neighbor.id)) {\n var fixedPosition = void 0;\n if (direction == \"horizontal\") {\n fixedPosition = nodeIndexes.has(neighbor.id) ? xCoords[nodeIndexes.get(neighbor.id)] : dummyPositions.get(neighbor.id);\n } else {\n fixedPosition = nodeIndexes.has(neighbor.id) ? yCoords[nodeIndexes.get(neighbor.id)] : dummyPositions.get(neighbor.id);\n }\n positionMap.set(neighbor.id, fixedPosition); // TODO: may do unnecessary work\n if (fixedPosition < positionMap.get(currentNode) + neighbor.gap) {\n var diff = positionMap.get(currentNode) + neighbor.gap - fixedPosition;\n pastMap.get(currentNode).forEach(function (nodeId) {\n positionMap.set(nodeId, positionMap.get(nodeId) - diff);\n });\n }\n } else {\n positionMap.set(neighbor.id, positionMap.get(currentNode) + neighbor.gap);\n }\n }\n inDegrees.set(neighbor.id, inDegrees.get(neighbor.id) - 1);\n if (inDegrees.get(neighbor.id) == 0) {\n queue.push(neighbor.id);\n }\n if (fixedNodes) {\n pastMap.set(neighbor.id, setUnion(pastMap.get(currentNode), pastMap.get(neighbor.id)));\n }\n });\n };\n\n while (queue.length != 0) {\n _loop();\n }\n\n // readjust position of the nodes after enforcement\n if (fixedNodes) {\n // find indegree count for each node\n var sinkNodes = new Set();\n\n graph.forEach(function (value, key) {\n if (value.length == 0) {\n sinkNodes.add(key);\n }\n });\n\n var _components = [];\n pastMap.forEach(function (value, key) {\n if (sinkNodes.has(key)) {\n var isFixedComponent = false;\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = value[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var nodeId = _step2.value;\n\n if (fixedNodes.has(nodeId)) {\n isFixedComponent = true;\n }\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n\n if (!isFixedComponent) {\n var isExist = false;\n var existAt = void 0;\n _components.forEach(function (component, index) {\n if (component.has([].concat(_toConsumableArray(value))[0])) {\n isExist = true;\n existAt = index;\n }\n });\n if (!isExist) {\n _components.push(new Set(value));\n } else {\n value.forEach(function (ele) {\n _components[existAt].add(ele);\n });\n }\n }\n }\n });\n\n _components.forEach(function (component, index) {\n var minBefore = Number.POSITIVE_INFINITY;\n var minAfter = Number.POSITIVE_INFINITY;\n var maxBefore = Number.NEGATIVE_INFINITY;\n var maxAfter = Number.NEGATIVE_INFINITY;\n\n var _iteratorNormalCompletion3 = true;\n var _didIteratorError3 = false;\n var _iteratorError3 = undefined;\n\n try {\n for (var _iterator3 = component[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var nodeId = _step3.value;\n\n var posBefore = void 0;\n if (direction == \"horizontal\") {\n posBefore = nodeIndexes.has(nodeId) ? xCoords[nodeIndexes.get(nodeId)] : dummyPositions.get(nodeId);\n } else {\n posBefore = nodeIndexes.has(nodeId) ? yCoords[nodeIndexes.get(nodeId)] : dummyPositions.get(nodeId);\n }\n var posAfter = positionMap.get(nodeId);\n if (posBefore < minBefore) {\n minBefore = posBefore;\n }\n if (posBefore > maxBefore) {\n maxBefore = posBefore;\n }\n if (posAfter < minAfter) {\n minAfter = posAfter;\n }\n if (posAfter > maxAfter) {\n maxAfter = posAfter;\n }\n }\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n\n var diff = (minBefore + maxBefore) / 2 - (minAfter + maxAfter) / 2;\n\n var _iteratorNormalCompletion4 = true;\n var _didIteratorError4 = false;\n var _iteratorError4 = undefined;\n\n try {\n for (var _iterator4 = component[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {\n var _nodeId = _step4.value;\n\n positionMap.set(_nodeId, positionMap.get(_nodeId) + diff);\n }\n } catch (err) {\n _didIteratorError4 = true;\n _iteratorError4 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion4 && _iterator4.return) {\n _iterator4.return();\n }\n } finally {\n if (_didIteratorError4) {\n throw _iteratorError4;\n }\n }\n }\n });\n }\n\n return positionMap;\n };\n\n // find transformation based on rel. placement constraints if there are both alignment and rel. placement constraints\n // or if there are only rel. placement contraints where the largest component isn't sufficiently large\n var applyReflectionForRelativePlacement = function applyReflectionForRelativePlacement(relativePlacementConstraints) {\n // variables to count votes\n var reflectOnY = 0,\n notReflectOnY = 0;\n var reflectOnX = 0,\n notReflectOnX = 0;\n\n relativePlacementConstraints.forEach(function (constraint) {\n if (constraint.left) {\n xCoords[nodeIndexes.get(constraint.left)] - xCoords[nodeIndexes.get(constraint.right)] >= 0 ? reflectOnY++ : notReflectOnY++;\n } else {\n yCoords[nodeIndexes.get(constraint.top)] - yCoords[nodeIndexes.get(constraint.bottom)] >= 0 ? reflectOnX++ : notReflectOnX++;\n }\n });\n\n if (reflectOnY > notReflectOnY && reflectOnX > notReflectOnX) {\n for (var _i = 0; _i < nodeIndexes.size; _i++) {\n xCoords[_i] = -1 * xCoords[_i];\n yCoords[_i] = -1 * yCoords[_i];\n }\n } else if (reflectOnY > notReflectOnY) {\n for (var _i2 = 0; _i2 < nodeIndexes.size; _i2++) {\n xCoords[_i2] = -1 * xCoords[_i2];\n }\n } else if (reflectOnX > notReflectOnX) {\n for (var _i3 = 0; _i3 < nodeIndexes.size; _i3++) {\n yCoords[_i3] = -1 * yCoords[_i3];\n }\n }\n };\n\n // find weakly connected components in undirected graph\n var findComponents = function findComponents(graph) {\n // find weakly connected components in dag\n var components = [];\n var queue = new LinkedList();\n var visited = new Set();\n var count = 0;\n\n graph.forEach(function (value, key) {\n if (!visited.has(key)) {\n components[count] = [];\n var _currentNode = key;\n queue.push(_currentNode);\n visited.add(_currentNode);\n components[count].push(_currentNode);\n\n while (queue.length != 0) {\n _currentNode = queue.shift();\n var neighbors = graph.get(_currentNode);\n neighbors.forEach(function (neighbor) {\n if (!visited.has(neighbor.id)) {\n queue.push(neighbor.id);\n visited.add(neighbor.id);\n components[count].push(neighbor.id);\n }\n });\n }\n count++;\n }\n });\n return components;\n };\n\n // return undirected version of given dag\n var dagToUndirected = function dagToUndirected(dag) {\n var undirected = new Map();\n\n dag.forEach(function (value, key) {\n undirected.set(key, []);\n });\n\n dag.forEach(function (value, key) {\n value.forEach(function (adjacent) {\n undirected.get(key).push(adjacent);\n undirected.get(adjacent.id).push({ id: key, gap: adjacent.gap, direction: adjacent.direction });\n });\n });\n\n return undirected;\n };\n\n // return reversed (directions inverted) version of given dag\n var dagToReversed = function dagToReversed(dag) {\n var reversed = new Map();\n\n dag.forEach(function (value, key) {\n reversed.set(key, []);\n });\n\n dag.forEach(function (value, key) {\n value.forEach(function (adjacent) {\n reversed.get(adjacent.id).push({ id: key, gap: adjacent.gap, direction: adjacent.direction });\n });\n });\n\n return reversed;\n };\n\n /**** apply transformation to the initial draft layout to better align with constrained nodes ****/\n // solve the Orthogonal Procrustean Problem to rotate and/or reflect initial draft layout\n // here we follow the solution in Chapter 20.2 of Borg, I. & Groenen, P. (2005) Modern Multidimensional Scaling: Theory and Applications \n\n /* construct source and target configurations */\n\n var targetMatrix = []; // A - target configuration\n var sourceMatrix = []; // B - source configuration \n var standardTransformation = false; // false for no transformation, true for standart (Procrustes) transformation (rotation and/or reflection)\n var reflectionType = false; // false/true for reflection check, 'reflectOnX', 'reflectOnY' or 'reflectOnBoth' for reflection type if necessary\n var fixedNodes = new Set();\n var dag = new Map(); // adjacency list to keep directed acyclic graph (dag) that consists of relative placement constraints\n var dagUndirected = new Map(); // undirected version of the dag\n var components = []; // weakly connected components\n\n // fill fixedNodes collection to use later\n if (constraints.fixedNodeConstraint) {\n constraints.fixedNodeConstraint.forEach(function (nodeData) {\n fixedNodes.add(nodeData.nodeId);\n });\n }\n\n // construct dag from relative placement constraints \n if (constraints.relativePlacementConstraint) {\n // construct both directed and undirected version of the dag\n constraints.relativePlacementConstraint.forEach(function (constraint) {\n if (constraint.left) {\n if (dag.has(constraint.left)) {\n dag.get(constraint.left).push({ id: constraint.right, gap: constraint.gap, direction: \"horizontal\" });\n } else {\n dag.set(constraint.left, [{ id: constraint.right, gap: constraint.gap, direction: \"horizontal\" }]);\n }\n if (!dag.has(constraint.right)) {\n dag.set(constraint.right, []);\n }\n } else {\n if (dag.has(constraint.top)) {\n dag.get(constraint.top).push({ id: constraint.bottom, gap: constraint.gap, direction: \"vertical\" });\n } else {\n dag.set(constraint.top, [{ id: constraint.bottom, gap: constraint.gap, direction: \"vertical\" }]);\n }\n if (!dag.has(constraint.bottom)) {\n dag.set(constraint.bottom, []);\n }\n }\n });\n\n dagUndirected = dagToUndirected(dag);\n components = findComponents(dagUndirected);\n }\n\n if (CoSEConstants.TRANSFORM_ON_CONSTRAINT_HANDLING) {\n // first check fixed node constraint\n if (constraints.fixedNodeConstraint && constraints.fixedNodeConstraint.length > 1) {\n constraints.fixedNodeConstraint.forEach(function (nodeData, i) {\n targetMatrix[i] = [nodeData.position.x, nodeData.position.y];\n sourceMatrix[i] = [xCoords[nodeIndexes.get(nodeData.nodeId)], yCoords[nodeIndexes.get(nodeData.nodeId)]];\n });\n standardTransformation = true;\n } else if (constraints.alignmentConstraint) {\n (function () {\n // then check alignment constraint\n var count = 0;\n if (constraints.alignmentConstraint.vertical) {\n var verticalAlign = constraints.alignmentConstraint.vertical;\n\n var _loop2 = function _loop2(_i4) {\n var alignmentSet = new Set();\n verticalAlign[_i4].forEach(function (nodeId) {\n alignmentSet.add(nodeId);\n });\n var intersection = new Set([].concat(_toConsumableArray(alignmentSet)).filter(function (x) {\n return fixedNodes.has(x);\n }));\n var xPos = void 0;\n if (intersection.size > 0) xPos = xCoords[nodeIndexes.get(intersection.values().next().value)];else xPos = calculateAvgPosition(alignmentSet).x;\n\n verticalAlign[_i4].forEach(function (nodeId) {\n targetMatrix[count] = [xPos, yCoords[nodeIndexes.get(nodeId)]];\n sourceMatrix[count] = [xCoords[nodeIndexes.get(nodeId)], yCoords[nodeIndexes.get(nodeId)]];\n count++;\n });\n };\n\n for (var _i4 = 0; _i4 < verticalAlign.length; _i4++) {\n _loop2(_i4);\n }\n standardTransformation = true;\n }\n if (constraints.alignmentConstraint.horizontal) {\n var horizontalAlign = constraints.alignmentConstraint.horizontal;\n\n var _loop3 = function _loop3(_i5) {\n var alignmentSet = new Set();\n horizontalAlign[_i5].forEach(function (nodeId) {\n alignmentSet.add(nodeId);\n });\n var intersection = new Set([].concat(_toConsumableArray(alignmentSet)).filter(function (x) {\n return fixedNodes.has(x);\n }));\n var yPos = void 0;\n if (intersection.size > 0) yPos = xCoords[nodeIndexes.get(intersection.values().next().value)];else yPos = calculateAvgPosition(alignmentSet).y;\n\n horizontalAlign[_i5].forEach(function (nodeId) {\n targetMatrix[count] = [xCoords[nodeIndexes.get(nodeId)], yPos];\n sourceMatrix[count] = [xCoords[nodeIndexes.get(nodeId)], yCoords[nodeIndexes.get(nodeId)]];\n count++;\n });\n };\n\n for (var _i5 = 0; _i5 < horizontalAlign.length; _i5++) {\n _loop3(_i5);\n }\n standardTransformation = true;\n }\n if (constraints.relativePlacementConstraint) {\n reflectionType = true;\n }\n })();\n } else if (constraints.relativePlacementConstraint) {\n // finally check relative placement constraint\n // find largest component in dag\n var largestComponentSize = 0;\n var largestComponentIndex = 0;\n for (var _i6 = 0; _i6 < components.length; _i6++) {\n if (components[_i6].length > largestComponentSize) {\n largestComponentSize = components[_i6].length;\n largestComponentIndex = _i6;\n }\n }\n // if largest component isn't dominant, then take the votes for reflection\n if (largestComponentSize < dagUndirected.size / 2) {\n applyReflectionForRelativePlacement(constraints.relativePlacementConstraint);\n standardTransformation = false;\n reflectionType = false;\n } else {\n // use largest component for transformation\n // construct horizontal and vertical subgraphs in the largest component\n var subGraphOnHorizontal = new Map();\n var subGraphOnVertical = new Map();\n var constraintsInlargestComponent = [];\n\n components[largestComponentIndex].forEach(function (nodeId) {\n dag.get(nodeId).forEach(function (adjacent) {\n if (adjacent.direction == \"horizontal\") {\n if (subGraphOnHorizontal.has(nodeId)) {\n subGraphOnHorizontal.get(nodeId).push(adjacent);\n } else {\n subGraphOnHorizontal.set(nodeId, [adjacent]);\n }\n if (!subGraphOnHorizontal.has(adjacent.id)) {\n subGraphOnHorizontal.set(adjacent.id, []);\n }\n constraintsInlargestComponent.push({ left: nodeId, right: adjacent.id });\n } else {\n if (subGraphOnVertical.has(nodeId)) {\n subGraphOnVertical.get(nodeId).push(adjacent);\n } else {\n subGraphOnVertical.set(nodeId, [adjacent]);\n }\n if (!subGraphOnVertical.has(adjacent.id)) {\n subGraphOnVertical.set(adjacent.id, []);\n }\n constraintsInlargestComponent.push({ top: nodeId, bottom: adjacent.id });\n }\n });\n });\n\n applyReflectionForRelativePlacement(constraintsInlargestComponent);\n reflectionType = false;\n\n // calculate appropriate positioning for subgraphs\n var positionMapHorizontal = findAppropriatePositionForRelativePlacement(subGraphOnHorizontal, \"horizontal\");\n var positionMapVertical = findAppropriatePositionForRelativePlacement(subGraphOnVertical, \"vertical\");\n\n // construct source and target configuration\n components[largestComponentIndex].forEach(function (nodeId, i) {\n sourceMatrix[i] = [xCoords[nodeIndexes.get(nodeId)], yCoords[nodeIndexes.get(nodeId)]];\n targetMatrix[i] = [];\n if (positionMapHorizontal.has(nodeId)) {\n targetMatrix[i][0] = positionMapHorizontal.get(nodeId);\n } else {\n targetMatrix[i][0] = xCoords[nodeIndexes.get(nodeId)];\n }\n if (positionMapVertical.has(nodeId)) {\n targetMatrix[i][1] = positionMapVertical.get(nodeId);\n } else {\n targetMatrix[i][1] = yCoords[nodeIndexes.get(nodeId)];\n }\n });\n\n standardTransformation = true;\n }\n }\n\n // if transformation is required, then calculate and apply transformation matrix\n if (standardTransformation) {\n /* calculate transformation matrix */\n var transformationMatrix = void 0;\n var targetMatrixTranspose = Matrix.transpose(targetMatrix); // A'\n var sourceMatrixTranspose = Matrix.transpose(sourceMatrix); // B'\n\n // centralize transpose matrices\n for (var _i7 = 0; _i7 < targetMatrixTranspose.length; _i7++) {\n targetMatrixTranspose[_i7] = Matrix.multGamma(targetMatrixTranspose[_i7]);\n sourceMatrixTranspose[_i7] = Matrix.multGamma(sourceMatrixTranspose[_i7]);\n }\n\n // do actual calculation for transformation matrix\n var tempMatrix = Matrix.multMat(targetMatrixTranspose, Matrix.transpose(sourceMatrixTranspose)); // tempMatrix = A'B\n var SVDResult = SVD.svd(tempMatrix); // SVD(A'B) = USV', svd function returns U, S and V \n transformationMatrix = Matrix.multMat(SVDResult.V, Matrix.transpose(SVDResult.U)); // transformationMatrix = T = VU'\n\n /* apply found transformation matrix to obtain final draft layout */\n for (var _i8 = 0; _i8 < nodeIndexes.size; _i8++) {\n var temp1 = [xCoords[_i8], yCoords[_i8]];\n var temp2 = [transformationMatrix[0][0], transformationMatrix[1][0]];\n var temp3 = [transformationMatrix[0][1], transformationMatrix[1][1]];\n xCoords[_i8] = Matrix.dotProduct(temp1, temp2);\n yCoords[_i8] = Matrix.dotProduct(temp1, temp3);\n }\n\n // applied only both alignment and rel. placement constraints exist\n if (reflectionType) {\n applyReflectionForRelativePlacement(constraints.relativePlacementConstraint);\n }\n }\n }\n\n if (CoSEConstants.ENFORCE_CONSTRAINTS) {\n /**** enforce constraints on the transformed draft layout ****/\n\n /* first enforce fixed node constraint */\n\n if (constraints.fixedNodeConstraint && constraints.fixedNodeConstraint.length > 0) {\n var translationAmount = { x: 0, y: 0 };\n constraints.fixedNodeConstraint.forEach(function (nodeData, i) {\n var posInTheory = { x: xCoords[nodeIndexes.get(nodeData.nodeId)], y: yCoords[nodeIndexes.get(nodeData.nodeId)] };\n var posDesired = nodeData.position;\n var posDiff = calculatePositionDiff(posDesired, posInTheory);\n translationAmount.x += posDiff.x;\n translationAmount.y += posDiff.y;\n });\n translationAmount.x /= constraints.fixedNodeConstraint.length;\n translationAmount.y /= constraints.fixedNodeConstraint.length;\n\n xCoords.forEach(function (value, i) {\n xCoords[i] += translationAmount.x;\n });\n\n yCoords.forEach(function (value, i) {\n yCoords[i] += translationAmount.y;\n });\n\n constraints.fixedNodeConstraint.forEach(function (nodeData) {\n xCoords[nodeIndexes.get(nodeData.nodeId)] = nodeData.position.x;\n yCoords[nodeIndexes.get(nodeData.nodeId)] = nodeData.position.y;\n });\n }\n\n /* then enforce alignment constraint */\n\n if (constraints.alignmentConstraint) {\n if (constraints.alignmentConstraint.vertical) {\n var xAlign = constraints.alignmentConstraint.vertical;\n\n var _loop4 = function _loop4(_i9) {\n var alignmentSet = new Set();\n xAlign[_i9].forEach(function (nodeId) {\n alignmentSet.add(nodeId);\n });\n var intersection = new Set([].concat(_toConsumableArray(alignmentSet)).filter(function (x) {\n return fixedNodes.has(x);\n }));\n var xPos = void 0;\n if (intersection.size > 0) xPos = xCoords[nodeIndexes.get(intersection.values().next().value)];else xPos = calculateAvgPosition(alignmentSet).x;\n\n alignmentSet.forEach(function (nodeId) {\n if (!fixedNodes.has(nodeId)) xCoords[nodeIndexes.get(nodeId)] = xPos;\n });\n };\n\n for (var _i9 = 0; _i9 < xAlign.length; _i9++) {\n _loop4(_i9);\n }\n }\n if (constraints.alignmentConstraint.horizontal) {\n var yAlign = constraints.alignmentConstraint.horizontal;\n\n var _loop5 = function _loop5(_i10) {\n var alignmentSet = new Set();\n yAlign[_i10].forEach(function (nodeId) {\n alignmentSet.add(nodeId);\n });\n var intersection = new Set([].concat(_toConsumableArray(alignmentSet)).filter(function (x) {\n return fixedNodes.has(x);\n }));\n var yPos = void 0;\n if (intersection.size > 0) yPos = yCoords[nodeIndexes.get(intersection.values().next().value)];else yPos = calculateAvgPosition(alignmentSet).y;\n\n alignmentSet.forEach(function (nodeId) {\n if (!fixedNodes.has(nodeId)) yCoords[nodeIndexes.get(nodeId)] = yPos;\n });\n };\n\n for (var _i10 = 0; _i10 < yAlign.length; _i10++) {\n _loop5(_i10);\n }\n }\n }\n\n /* finally enforce relative placement constraint */\n\n if (constraints.relativePlacementConstraint) {\n (function () {\n var nodeToDummyForVerticalAlignment = new Map();\n var nodeToDummyForHorizontalAlignment = new Map();\n var dummyToNodeForVerticalAlignment = new Map();\n var dummyToNodeForHorizontalAlignment = new Map();\n var dummyPositionsForVerticalAlignment = new Map();\n var dummyPositionsForHorizontalAlignment = new Map();\n var fixedNodesOnHorizontal = new Set();\n var fixedNodesOnVertical = new Set();\n\n // fill maps and sets \n fixedNodes.forEach(function (nodeId) {\n fixedNodesOnHorizontal.add(nodeId);\n fixedNodesOnVertical.add(nodeId);\n });\n\n if (constraints.alignmentConstraint) {\n if (constraints.alignmentConstraint.vertical) {\n var verticalAlignment = constraints.alignmentConstraint.vertical;\n\n var _loop6 = function _loop6(_i11) {\n dummyToNodeForVerticalAlignment.set(\"dummy\" + _i11, []);\n verticalAlignment[_i11].forEach(function (nodeId) {\n nodeToDummyForVerticalAlignment.set(nodeId, \"dummy\" + _i11);\n dummyToNodeForVerticalAlignment.get(\"dummy\" + _i11).push(nodeId);\n if (fixedNodes.has(nodeId)) {\n fixedNodesOnHorizontal.add(\"dummy\" + _i11);\n }\n });\n dummyPositionsForVerticalAlignment.set(\"dummy\" + _i11, xCoords[nodeIndexes.get(verticalAlignment[_i11][0])]);\n };\n\n for (var _i11 = 0; _i11 < verticalAlignment.length; _i11++) {\n _loop6(_i11);\n }\n }\n if (constraints.alignmentConstraint.horizontal) {\n var horizontalAlignment = constraints.alignmentConstraint.horizontal;\n\n var _loop7 = function _loop7(_i12) {\n dummyToNodeForHorizontalAlignment.set(\"dummy\" + _i12, []);\n horizontalAlignment[_i12].forEach(function (nodeId) {\n nodeToDummyForHorizontalAlignment.set(nodeId, \"dummy\" + _i12);\n dummyToNodeForHorizontalAlignment.get(\"dummy\" + _i12).push(nodeId);\n if (fixedNodes.has(nodeId)) {\n fixedNodesOnVertical.add(\"dummy\" + _i12);\n }\n });\n dummyPositionsForHorizontalAlignment.set(\"dummy\" + _i12, yCoords[nodeIndexes.get(horizontalAlignment[_i12][0])]);\n };\n\n for (var _i12 = 0; _i12 < horizontalAlignment.length; _i12++) {\n _loop7(_i12);\n }\n }\n }\n\n // construct horizontal and vertical dags (subgraphs) from overall dag\n var dagOnHorizontal = new Map();\n var dagOnVertical = new Map();\n\n var _loop8 = function _loop8(nodeId) {\n dag.get(nodeId).forEach(function (adjacent) {\n var sourceId = void 0;\n var targetNode = void 0;\n if (adjacent[\"direction\"] == \"horizontal\") {\n sourceId = nodeToDummyForVerticalAlignment.get(nodeId) ? nodeToDummyForVerticalAlignment.get(nodeId) : nodeId;\n if (nodeToDummyForVerticalAlignment.get(adjacent.id)) {\n targetNode = { id: nodeToDummyForVerticalAlignment.get(adjacent.id), gap: adjacent.gap, direction: adjacent.direction };\n } else {\n targetNode = adjacent;\n }\n if (dagOnHorizontal.has(sourceId)) {\n dagOnHorizontal.get(sourceId).push(targetNode);\n } else {\n dagOnHorizontal.set(sourceId, [targetNode]);\n }\n if (!dagOnHorizontal.has(targetNode.id)) {\n dagOnHorizontal.set(targetNode.id, []);\n }\n } else {\n sourceId = nodeToDummyForHorizontalAlignment.get(nodeId) ? nodeToDummyForHorizontalAlignment.get(nodeId) : nodeId;\n if (nodeToDummyForHorizontalAlignment.get(adjacent.id)) {\n targetNode = { id: nodeToDummyForHorizontalAlignment.get(adjacent.id), gap: adjacent.gap, direction: adjacent.direction };\n } else {\n targetNode = adjacent;\n }\n if (dagOnVertical.has(sourceId)) {\n dagOnVertical.get(sourceId).push(targetNode);\n } else {\n dagOnVertical.set(sourceId, [targetNode]);\n }\n if (!dagOnVertical.has(targetNode.id)) {\n dagOnVertical.set(targetNode.id, []);\n }\n }\n });\n };\n\n var _iteratorNormalCompletion5 = true;\n var _didIteratorError5 = false;\n var _iteratorError5 = undefined;\n\n try {\n for (var _iterator5 = dag.keys()[Symbol.iterator](), _step5; !(_iteratorNormalCompletion5 = (_step5 = _iterator5.next()).done); _iteratorNormalCompletion5 = true) {\n var nodeId = _step5.value;\n\n _loop8(nodeId);\n }\n\n // find source nodes of each component in horizontal and vertical dags\n } catch (err) {\n _didIteratorError5 = true;\n _iteratorError5 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion5 && _iterator5.return) {\n _iterator5.return();\n }\n } finally {\n if (_didIteratorError5) {\n throw _iteratorError5;\n }\n }\n }\n\n var undirectedOnHorizontal = dagToUndirected(dagOnHorizontal);\n var undirectedOnVertical = dagToUndirected(dagOnVertical);\n var componentsOnHorizontal = findComponents(undirectedOnHorizontal);\n var componentsOnVertical = findComponents(undirectedOnVertical);\n var reversedDagOnHorizontal = dagToReversed(dagOnHorizontal);\n var reversedDagOnVertical = dagToReversed(dagOnVertical);\n var componentSourcesOnHorizontal = [];\n var componentSourcesOnVertical = [];\n\n componentsOnHorizontal.forEach(function (component, index) {\n componentSourcesOnHorizontal[index] = [];\n component.forEach(function (nodeId) {\n if (reversedDagOnHorizontal.get(nodeId).length == 0) {\n componentSourcesOnHorizontal[index].push(nodeId);\n }\n });\n });\n\n componentsOnVertical.forEach(function (component, index) {\n componentSourcesOnVertical[index] = [];\n component.forEach(function (nodeId) {\n if (reversedDagOnVertical.get(nodeId).length == 0) {\n componentSourcesOnVertical[index].push(nodeId);\n }\n });\n });\n\n // calculate appropriate positioning for subgraphs\n var positionMapHorizontal = findAppropriatePositionForRelativePlacement(dagOnHorizontal, \"horizontal\", fixedNodesOnHorizontal, dummyPositionsForVerticalAlignment, componentSourcesOnHorizontal);\n var positionMapVertical = findAppropriatePositionForRelativePlacement(dagOnVertical, \"vertical\", fixedNodesOnVertical, dummyPositionsForHorizontalAlignment, componentSourcesOnVertical);\n\n // update positions of the nodes based on relative placement constraints\n\n var _loop9 = function _loop9(key) {\n if (dummyToNodeForVerticalAlignment.get(key)) {\n dummyToNodeForVerticalAlignment.get(key).forEach(function (nodeId) {\n xCoords[nodeIndexes.get(nodeId)] = positionMapHorizontal.get(key);\n });\n } else {\n xCoords[nodeIndexes.get(key)] = positionMapHorizontal.get(key);\n }\n };\n\n var _iteratorNormalCompletion6 = true;\n var _didIteratorError6 = false;\n var _iteratorError6 = undefined;\n\n try {\n for (var _iterator6 = positionMapHorizontal.keys()[Symbol.iterator](), _step6; !(_iteratorNormalCompletion6 = (_step6 = _iterator6.next()).done); _iteratorNormalCompletion6 = true) {\n var key = _step6.value;\n\n _loop9(key);\n }\n } catch (err) {\n _didIteratorError6 = true;\n _iteratorError6 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion6 && _iterator6.return) {\n _iterator6.return();\n }\n } finally {\n if (_didIteratorError6) {\n throw _iteratorError6;\n }\n }\n }\n\n var _loop10 = function _loop10(key) {\n if (dummyToNodeForHorizontalAlignment.get(key)) {\n dummyToNodeForHorizontalAlignment.get(key).forEach(function (nodeId) {\n yCoords[nodeIndexes.get(nodeId)] = positionMapVertical.get(key);\n });\n } else {\n yCoords[nodeIndexes.get(key)] = positionMapVertical.get(key);\n }\n };\n\n var _iteratorNormalCompletion7 = true;\n var _didIteratorError7 = false;\n var _iteratorError7 = undefined;\n\n try {\n for (var _iterator7 = positionMapVertical.keys()[Symbol.iterator](), _step7; !(_iteratorNormalCompletion7 = (_step7 = _iterator7.next()).done); _iteratorNormalCompletion7 = true) {\n var key = _step7.value;\n\n _loop10(key);\n }\n } catch (err) {\n _didIteratorError7 = true;\n _iteratorError7 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion7 && _iterator7.return) {\n _iterator7.return();\n }\n } finally {\n if (_didIteratorError7) {\n throw _iteratorError7;\n }\n }\n }\n })();\n }\n }\n\n // assign new coordinates to nodes after constraint handling\n for (var _i13 = 0; _i13 < allNodes.length; _i13++) {\n var _node = allNodes[_i13];\n if (_node.getChild() == null) {\n _node.setCenter(xCoords[nodeIndexes.get(_node.id)], yCoords[nodeIndexes.get(_node.id)]);\n }\n }\n};\n\nmodule.exports = ConstraintHandler;\n\n/***/ }),\n\n/***/ 551:\n/***/ ((module) => {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__551__;\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\tvar cachedModule = __webpack_module_cache__[moduleId];\n/******/ \t\tif (cachedModule !== undefined) {\n/******/ \t\t\treturn cachedModule.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\n/******/ \t// startup\n/******/ \t// Load entry module and return exports\n/******/ \t// This entry module is referenced by other modules so it can't be inlined\n/******/ \tvar __webpack_exports__ = __webpack_require__(45);\n/******/ \t\n/******/ \treturn __webpack_exports__;\n/******/ })()\n;\n});", "(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"cose-base\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"cose-base\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"cytoscapeFcose\"] = factory(require(\"cose-base\"));\n\telse\n\t\troot[\"cytoscapeFcose\"] = factory(root[\"coseBase\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE__140__) {\nreturn /******/ (() => { // webpackBootstrap\n/******/ \t\"use strict\";\n/******/ \tvar __webpack_modules__ = ({\n\n/***/ 658:\n/***/ ((module) => {\n\n\n\n// Simple, internal Object.assign() polyfill for options objects etc.\n\nmodule.exports = Object.assign != null ? Object.assign.bind(Object) : function (tgt) {\n for (var _len = arguments.length, srcs = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n srcs[_key - 1] = arguments[_key];\n }\n\n srcs.forEach(function (src) {\n Object.keys(src).forEach(function (k) {\n return tgt[k] = src[k];\n });\n });\n\n return tgt;\n};\n\n/***/ }),\n\n/***/ 548:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\n/*\n * Auxiliary functions\n */\n\nvar LinkedList = __webpack_require__(140).layoutBase.LinkedList;\n\nvar auxiliary = {};\n\n// get the top most nodes\nauxiliary.getTopMostNodes = function (nodes) {\n var nodesMap = {};\n for (var i = 0; i < nodes.length; i++) {\n nodesMap[nodes[i].id()] = true;\n }\n var roots = nodes.filter(function (ele, i) {\n if (typeof ele === \"number\") {\n ele = i;\n }\n var parent = ele.parent()[0];\n while (parent != null) {\n if (nodesMap[parent.id()]) {\n return false;\n }\n parent = parent.parent()[0];\n }\n return true;\n });\n\n return roots;\n};\n\n// find disconnected components and create dummy nodes that connect them\nauxiliary.connectComponents = function (cy, eles, topMostNodes, dummyNodes) {\n var queue = new LinkedList();\n var visited = new Set();\n var visitedTopMostNodes = [];\n var currentNeighbor = void 0;\n var minDegreeNode = void 0;\n var minDegree = void 0;\n\n var isConnected = false;\n var count = 1;\n var nodesConnectedToDummy = [];\n var components = [];\n\n var _loop = function _loop() {\n var cmpt = cy.collection();\n components.push(cmpt);\n\n var currentNode = topMostNodes[0];\n var childrenOfCurrentNode = cy.collection();\n childrenOfCurrentNode.merge(currentNode).merge(currentNode.descendants().intersection(eles));\n visitedTopMostNodes.push(currentNode);\n\n childrenOfCurrentNode.forEach(function (node) {\n queue.push(node);\n visited.add(node);\n cmpt.merge(node);\n });\n\n var _loop2 = function _loop2() {\n currentNode = queue.shift();\n\n // Traverse all neighbors of this node\n var neighborNodes = cy.collection();\n currentNode.neighborhood().nodes().forEach(function (node) {\n if (eles.intersection(currentNode.edgesWith(node)).length > 0) {\n neighborNodes.merge(node);\n }\n });\n\n for (var i = 0; i < neighborNodes.length; i++) {\n var neighborNode = neighborNodes[i];\n currentNeighbor = topMostNodes.intersection(neighborNode.union(neighborNode.ancestors()));\n if (currentNeighbor != null && !visited.has(currentNeighbor[0])) {\n var childrenOfNeighbor = currentNeighbor.union(currentNeighbor.descendants());\n\n childrenOfNeighbor.forEach(function (node) {\n queue.push(node);\n visited.add(node);\n cmpt.merge(node);\n if (topMostNodes.has(node)) {\n visitedTopMostNodes.push(node);\n }\n });\n }\n }\n };\n\n while (queue.length != 0) {\n _loop2();\n }\n\n cmpt.forEach(function (node) {\n eles.intersection(node.connectedEdges()).forEach(function (e) {\n // connectedEdges() usually cached\n if (cmpt.has(e.source()) && cmpt.has(e.target())) {\n // has() is cheap\n cmpt.merge(e);\n }\n });\n });\n\n if (visitedTopMostNodes.length == topMostNodes.length) {\n isConnected = true;\n }\n\n if (!isConnected || isConnected && count > 1) {\n minDegreeNode = visitedTopMostNodes[0];\n minDegree = minDegreeNode.connectedEdges().length;\n visitedTopMostNodes.forEach(function (node) {\n if (node.connectedEdges().length < minDegree) {\n minDegree = node.connectedEdges().length;\n minDegreeNode = node;\n }\n });\n nodesConnectedToDummy.push(minDegreeNode.id());\n // TO DO: Check efficiency of this part\n var temp = cy.collection();\n temp.merge(visitedTopMostNodes[0]);\n visitedTopMostNodes.forEach(function (node) {\n temp.merge(node);\n });\n visitedTopMostNodes = [];\n topMostNodes = topMostNodes.difference(temp);\n count++;\n }\n };\n\n do {\n _loop();\n } while (!isConnected);\n\n if (dummyNodes) {\n if (nodesConnectedToDummy.length > 0) {\n dummyNodes.set('dummy' + (dummyNodes.size + 1), nodesConnectedToDummy);\n }\n }\n return components;\n};\n\n// relocates componentResult to originalCenter if there is no fixedNodeConstraint\nauxiliary.relocateComponent = function (originalCenter, componentResult, options) {\n if (!options.fixedNodeConstraint) {\n var minXCoord = Number.POSITIVE_INFINITY;\n var maxXCoord = Number.NEGATIVE_INFINITY;\n var minYCoord = Number.POSITIVE_INFINITY;\n var maxYCoord = Number.NEGATIVE_INFINITY;\n if (options.quality == \"draft\") {\n // calculate current bounding box\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = componentResult.nodeIndexes[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var _ref = _step.value;\n\n var _ref2 = _slicedToArray(_ref, 2);\n\n var key = _ref2[0];\n var value = _ref2[1];\n\n var cyNode = options.cy.getElementById(key);\n if (cyNode) {\n var nodeBB = cyNode.boundingBox();\n var leftX = componentResult.xCoords[value] - nodeBB.w / 2;\n var rightX = componentResult.xCoords[value] + nodeBB.w / 2;\n var topY = componentResult.yCoords[value] - nodeBB.h / 2;\n var bottomY = componentResult.yCoords[value] + nodeBB.h / 2;\n\n if (leftX < minXCoord) minXCoord = leftX;\n if (rightX > maxXCoord) maxXCoord = rightX;\n if (topY < minYCoord) minYCoord = topY;\n if (bottomY > maxYCoord) maxYCoord = bottomY;\n }\n }\n // find difference between current and original center\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n var diffOnX = originalCenter.x - (maxXCoord + minXCoord) / 2;\n var diffOnY = originalCenter.y - (maxYCoord + minYCoord) / 2;\n // move component to original center\n componentResult.xCoords = componentResult.xCoords.map(function (x) {\n return x + diffOnX;\n });\n componentResult.yCoords = componentResult.yCoords.map(function (y) {\n return y + diffOnY;\n });\n } else {\n // calculate current bounding box\n Object.keys(componentResult).forEach(function (item) {\n var node = componentResult[item];\n var leftX = node.getRect().x;\n var rightX = node.getRect().x + node.getRect().width;\n var topY = node.getRect().y;\n var bottomY = node.getRect().y + node.getRect().height;\n\n if (leftX < minXCoord) minXCoord = leftX;\n if (rightX > maxXCoord) maxXCoord = rightX;\n if (topY < minYCoord) minYCoord = topY;\n if (bottomY > maxYCoord) maxYCoord = bottomY;\n });\n // find difference between current and original center\n var _diffOnX = originalCenter.x - (maxXCoord + minXCoord) / 2;\n var _diffOnY = originalCenter.y - (maxYCoord + minYCoord) / 2;\n // move component to original center\n Object.keys(componentResult).forEach(function (item) {\n var node = componentResult[item];\n node.setCenter(node.getCenterX() + _diffOnX, node.getCenterY() + _diffOnY);\n });\n }\n }\n};\n\nauxiliary.calcBoundingBox = function (parentNode, xCoords, yCoords, nodeIndexes) {\n // calculate bounds\n var left = Number.MAX_SAFE_INTEGER;\n var right = Number.MIN_SAFE_INTEGER;\n var top = Number.MAX_SAFE_INTEGER;\n var bottom = Number.MIN_SAFE_INTEGER;\n var nodeLeft = void 0;\n var nodeRight = void 0;\n var nodeTop = void 0;\n var nodeBottom = void 0;\n\n var nodes = parentNode.descendants().not(\":parent\");\n var s = nodes.length;\n for (var i = 0; i < s; i++) {\n var node = nodes[i];\n\n nodeLeft = xCoords[nodeIndexes.get(node.id())] - node.width() / 2;\n nodeRight = xCoords[nodeIndexes.get(node.id())] + node.width() / 2;\n nodeTop = yCoords[nodeIndexes.get(node.id())] - node.height() / 2;\n nodeBottom = yCoords[nodeIndexes.get(node.id())] + node.height() / 2;\n\n if (left > nodeLeft) {\n left = nodeLeft;\n }\n\n if (right < nodeRight) {\n right = nodeRight;\n }\n\n if (top > nodeTop) {\n top = nodeTop;\n }\n\n if (bottom < nodeBottom) {\n bottom = nodeBottom;\n }\n }\n\n var boundingBox = {};\n boundingBox.topLeftX = left;\n boundingBox.topLeftY = top;\n boundingBox.width = right - left;\n boundingBox.height = bottom - top;\n return boundingBox;\n};\n\n// This function finds and returns parent nodes whose all children are hidden\nauxiliary.calcParentsWithoutChildren = function (cy, eles) {\n var parentsWithoutChildren = cy.collection();\n eles.nodes(':parent').forEach(function (parent) {\n var check = false;\n parent.children().forEach(function (child) {\n if (child.css('display') != 'none') {\n check = true;\n }\n });\n if (!check) {\n parentsWithoutChildren.merge(parent);\n }\n });\n\n return parentsWithoutChildren;\n};\n\nmodule.exports = auxiliary;\n\n/***/ }),\n\n/***/ 816:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\n\n/**\n The implementation of the postprocessing part that applies CoSE layout over the spectral layout\n*/\n\nvar aux = __webpack_require__(548);\nvar CoSELayout = __webpack_require__(140).CoSELayout;\nvar CoSENode = __webpack_require__(140).CoSENode;\nvar PointD = __webpack_require__(140).layoutBase.PointD;\nvar DimensionD = __webpack_require__(140).layoutBase.DimensionD;\nvar LayoutConstants = __webpack_require__(140).layoutBase.LayoutConstants;\nvar FDLayoutConstants = __webpack_require__(140).layoutBase.FDLayoutConstants;\nvar CoSEConstants = __webpack_require__(140).CoSEConstants;\n\n// main function that cose layout is processed\nvar coseLayout = function coseLayout(options, spectralResult) {\n\n var cy = options.cy;\n var eles = options.eles;\n var nodes = eles.nodes();\n var edges = eles.edges();\n\n var nodeIndexes = void 0;\n var xCoords = void 0;\n var yCoords = void 0;\n var idToLNode = {};\n\n if (options.randomize) {\n nodeIndexes = spectralResult[\"nodeIndexes\"];\n xCoords = spectralResult[\"xCoords\"];\n yCoords = spectralResult[\"yCoords\"];\n }\n\n var isFn = function isFn(fn) {\n return typeof fn === 'function';\n };\n\n var optFn = function optFn(opt, ele) {\n if (isFn(opt)) {\n return opt(ele);\n } else {\n return opt;\n }\n };\n\n /**** Postprocessing functions ****/\n\n var parentsWithoutChildren = aux.calcParentsWithoutChildren(cy, eles);\n\n // transfer cytoscape nodes to cose nodes\n var processChildrenList = function processChildrenList(parent, children, layout, options) {\n var size = children.length;\n for (var i = 0; i < size; i++) {\n var theChild = children[i];\n var children_of_children = null;\n if (theChild.intersection(parentsWithoutChildren).length == 0) {\n children_of_children = theChild.children();\n }\n var theNode = void 0;\n\n var dimensions = theChild.layoutDimensions({\n nodeDimensionsIncludeLabels: options.nodeDimensionsIncludeLabels\n });\n\n if (theChild.outerWidth() != null && theChild.outerHeight() != null) {\n if (options.randomize) {\n if (!theChild.isParent()) {\n theNode = parent.add(new CoSENode(layout.graphManager, new PointD(xCoords[nodeIndexes.get(theChild.id())] - dimensions.w / 2, yCoords[nodeIndexes.get(theChild.id())] - dimensions.h / 2), new DimensionD(parseFloat(dimensions.w), parseFloat(dimensions.h))));\n } else {\n var parentInfo = aux.calcBoundingBox(theChild, xCoords, yCoords, nodeIndexes);\n if (theChild.intersection(parentsWithoutChildren).length == 0) {\n theNode = parent.add(new CoSENode(layout.graphManager, new PointD(parentInfo.topLeftX, parentInfo.topLeftY), new DimensionD(parentInfo.width, parentInfo.height)));\n } else {\n // for the parentsWithoutChildren\n theNode = parent.add(new CoSENode(layout.graphManager, new PointD(parentInfo.topLeftX, parentInfo.topLeftY), new DimensionD(parseFloat(dimensions.w), parseFloat(dimensions.h))));\n }\n }\n } else {\n theNode = parent.add(new CoSENode(layout.graphManager, new PointD(theChild.position('x') - dimensions.w / 2, theChild.position('y') - dimensions.h / 2), new DimensionD(parseFloat(dimensions.w), parseFloat(dimensions.h))));\n }\n } else {\n theNode = parent.add(new CoSENode(this.graphManager));\n }\n // Attach id to the layout node and repulsion value\n theNode.id = theChild.data(\"id\");\n theNode.nodeRepulsion = optFn(options.nodeRepulsion, theChild);\n // Attach the paddings of cy node to layout node\n theNode.paddingLeft = parseInt(theChild.css('padding'));\n theNode.paddingTop = parseInt(theChild.css('padding'));\n theNode.paddingRight = parseInt(theChild.css('padding'));\n theNode.paddingBottom = parseInt(theChild.css('padding'));\n\n //Attach the label properties to both compound and simple nodes if labels will be included in node dimensions\n //These properties will be used while updating bounds of compounds during iterations or tiling\n //and will be used for simple nodes while transferring final positions to cytoscape\n if (options.nodeDimensionsIncludeLabels) {\n theNode.labelWidth = theChild.boundingBox({ includeLabels: true, includeNodes: false, includeOverlays: false }).w;\n theNode.labelHeight = theChild.boundingBox({ includeLabels: true, includeNodes: false, includeOverlays: false }).h;\n theNode.labelPosVertical = theChild.css(\"text-valign\");\n theNode.labelPosHorizontal = theChild.css(\"text-halign\");\n }\n\n // Map the layout node\n idToLNode[theChild.data(\"id\")] = theNode;\n\n if (isNaN(theNode.rect.x)) {\n theNode.rect.x = 0;\n }\n\n if (isNaN(theNode.rect.y)) {\n theNode.rect.y = 0;\n }\n\n if (children_of_children != null && children_of_children.length > 0) {\n var theNewGraph = void 0;\n theNewGraph = layout.getGraphManager().add(layout.newGraph(), theNode);\n processChildrenList(theNewGraph, children_of_children, layout, options);\n }\n }\n };\n\n // transfer cytoscape edges to cose edges\n var processEdges = function processEdges(layout, gm, edges) {\n var idealLengthTotal = 0;\n var edgeCount = 0;\n for (var i = 0; i < edges.length; i++) {\n var edge = edges[i];\n var sourceNode = idToLNode[edge.data(\"source\")];\n var targetNode = idToLNode[edge.data(\"target\")];\n if (sourceNode && targetNode && sourceNode !== targetNode && sourceNode.getEdgesBetween(targetNode).length == 0) {\n var e1 = gm.add(layout.newEdge(), sourceNode, targetNode);\n e1.id = edge.id();\n e1.idealLength = optFn(options.idealEdgeLength, edge);\n e1.edgeElasticity = optFn(options.edgeElasticity, edge);\n idealLengthTotal += e1.idealLength;\n edgeCount++;\n }\n }\n // we need to update the ideal edge length constant with the avg. ideal length value after processing edges\n // in case there is no edge, use other options\n if (options.idealEdgeLength != null) {\n if (edgeCount > 0) CoSEConstants.DEFAULT_EDGE_LENGTH = FDLayoutConstants.DEFAULT_EDGE_LENGTH = idealLengthTotal / edgeCount;else if (!isFn(options.idealEdgeLength)) // in case there is no edge, but option gives a value to use\n CoSEConstants.DEFAULT_EDGE_LENGTH = FDLayoutConstants.DEFAULT_EDGE_LENGTH = options.idealEdgeLength;else // in case there is no edge and we cannot get a value from option (because it's a function)\n CoSEConstants.DEFAULT_EDGE_LENGTH = FDLayoutConstants.DEFAULT_EDGE_LENGTH = 50;\n // we need to update these constant values based on the ideal edge length constant\n CoSEConstants.MIN_REPULSION_DIST = FDLayoutConstants.MIN_REPULSION_DIST = FDLayoutConstants.DEFAULT_EDGE_LENGTH / 10.0;\n CoSEConstants.DEFAULT_RADIAL_SEPARATION = FDLayoutConstants.DEFAULT_EDGE_LENGTH;\n }\n };\n\n // transfer cytoscape constraints to cose layout\n var processConstraints = function processConstraints(layout, options) {\n // get nodes to be fixed\n if (options.fixedNodeConstraint) {\n layout.constraints[\"fixedNodeConstraint\"] = options.fixedNodeConstraint;\n }\n // get nodes to be aligned\n if (options.alignmentConstraint) {\n layout.constraints[\"alignmentConstraint\"] = options.alignmentConstraint;\n }\n // get nodes to be relatively placed\n if (options.relativePlacementConstraint) {\n layout.constraints[\"relativePlacementConstraint\"] = options.relativePlacementConstraint;\n }\n };\n\n /**** Apply postprocessing ****/\n if (options.nestingFactor != null) CoSEConstants.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR = FDLayoutConstants.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR = options.nestingFactor;\n if (options.gravity != null) CoSEConstants.DEFAULT_GRAVITY_STRENGTH = FDLayoutConstants.DEFAULT_GRAVITY_STRENGTH = options.gravity;\n if (options.numIter != null) CoSEConstants.MAX_ITERATIONS = FDLayoutConstants.MAX_ITERATIONS = options.numIter;\n if (options.gravityRange != null) CoSEConstants.DEFAULT_GRAVITY_RANGE_FACTOR = FDLayoutConstants.DEFAULT_GRAVITY_RANGE_FACTOR = options.gravityRange;\n if (options.gravityCompound != null) CoSEConstants.DEFAULT_COMPOUND_GRAVITY_STRENGTH = FDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_STRENGTH = options.gravityCompound;\n if (options.gravityRangeCompound != null) CoSEConstants.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR = FDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR = options.gravityRangeCompound;\n if (options.initialEnergyOnIncremental != null) CoSEConstants.DEFAULT_COOLING_FACTOR_INCREMENTAL = FDLayoutConstants.DEFAULT_COOLING_FACTOR_INCREMENTAL = options.initialEnergyOnIncremental;\n\n if (options.tilingCompareBy != null) CoSEConstants.TILING_COMPARE_BY = options.tilingCompareBy;\n\n if (options.quality == 'proof') LayoutConstants.QUALITY = 2;else LayoutConstants.QUALITY = 0;\n\n CoSEConstants.NODE_DIMENSIONS_INCLUDE_LABELS = FDLayoutConstants.NODE_DIMENSIONS_INCLUDE_LABELS = LayoutConstants.NODE_DIMENSIONS_INCLUDE_LABELS = options.nodeDimensionsIncludeLabels;\n CoSEConstants.DEFAULT_INCREMENTAL = FDLayoutConstants.DEFAULT_INCREMENTAL = LayoutConstants.DEFAULT_INCREMENTAL = !options.randomize;\n CoSEConstants.ANIMATE = FDLayoutConstants.ANIMATE = LayoutConstants.ANIMATE = options.animate;\n CoSEConstants.TILE = options.tile;\n CoSEConstants.TILING_PADDING_VERTICAL = typeof options.tilingPaddingVertical === 'function' ? options.tilingPaddingVertical.call() : options.tilingPaddingVertical;\n CoSEConstants.TILING_PADDING_HORIZONTAL = typeof options.tilingPaddingHorizontal === 'function' ? options.tilingPaddingHorizontal.call() : options.tilingPaddingHorizontal;\n\n CoSEConstants.DEFAULT_INCREMENTAL = FDLayoutConstants.DEFAULT_INCREMENTAL = LayoutConstants.DEFAULT_INCREMENTAL = true;\n CoSEConstants.PURE_INCREMENTAL = !options.randomize;\n LayoutConstants.DEFAULT_UNIFORM_LEAF_NODE_SIZES = options.uniformNodeDimensions;\n\n // This part is for debug/demo purpose\n if (options.step == \"transformed\") {\n CoSEConstants.TRANSFORM_ON_CONSTRAINT_HANDLING = true;\n CoSEConstants.ENFORCE_CONSTRAINTS = false;\n CoSEConstants.APPLY_LAYOUT = false;\n }\n if (options.step == \"enforced\") {\n CoSEConstants.TRANSFORM_ON_CONSTRAINT_HANDLING = false;\n CoSEConstants.ENFORCE_CONSTRAINTS = true;\n CoSEConstants.APPLY_LAYOUT = false;\n }\n if (options.step == \"cose\") {\n CoSEConstants.TRANSFORM_ON_CONSTRAINT_HANDLING = false;\n CoSEConstants.ENFORCE_CONSTRAINTS = false;\n CoSEConstants.APPLY_LAYOUT = true;\n }\n if (options.step == \"all\") {\n if (options.randomize) CoSEConstants.TRANSFORM_ON_CONSTRAINT_HANDLING = true;else CoSEConstants.TRANSFORM_ON_CONSTRAINT_HANDLING = false;\n CoSEConstants.ENFORCE_CONSTRAINTS = true;\n CoSEConstants.APPLY_LAYOUT = true;\n }\n\n if (options.fixedNodeConstraint || options.alignmentConstraint || options.relativePlacementConstraint) {\n CoSEConstants.TREE_REDUCTION_ON_INCREMENTAL = false;\n } else {\n CoSEConstants.TREE_REDUCTION_ON_INCREMENTAL = true;\n }\n\n var coseLayout = new CoSELayout();\n var gm = coseLayout.newGraphManager();\n\n processChildrenList(gm.addRoot(), aux.getTopMostNodes(nodes), coseLayout, options);\n processEdges(coseLayout, gm, edges);\n processConstraints(coseLayout, options);\n\n coseLayout.runLayout();\n\n return idToLNode;\n};\n\nmodule.exports = { coseLayout: coseLayout };\n\n/***/ }),\n\n/***/ 212:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n The implementation of the fcose layout algorithm\n*/\n\nvar assign = __webpack_require__(658);\nvar aux = __webpack_require__(548);\n\nvar _require = __webpack_require__(657),\n spectralLayout = _require.spectralLayout;\n\nvar _require2 = __webpack_require__(816),\n coseLayout = _require2.coseLayout;\n\nvar defaults = Object.freeze({\n\n // 'draft', 'default' or 'proof' \n // - 'draft' only applies spectral layout \n // - 'default' improves the quality with subsequent CoSE layout (fast cooling rate)\n // - 'proof' improves the quality with subsequent CoSE layout (slow cooling rate) \n quality: \"default\",\n // Use random node positions at beginning of layout\n // if this is set to false, then quality option must be \"proof\"\n randomize: true,\n // Whether or not to animate the layout\n animate: true,\n // Duration of animation in ms, if enabled\n animationDuration: 1000,\n // Easing of animation, if enabled\n animationEasing: undefined,\n // Fit the viewport to the repositioned nodes\n fit: true,\n // Padding around layout\n padding: 30,\n // Whether to include labels in node dimensions. Valid in \"proof\" quality\n nodeDimensionsIncludeLabels: false,\n // Whether or not simple nodes (non-compound nodes) are of uniform dimensions\n uniformNodeDimensions: false,\n // Whether to pack disconnected components - valid only if randomize: true\n packComponents: true,\n // Layout step - all, transformed, enforced, cose - for debug purpose only\n step: \"all\",\n\n /* spectral layout options */\n\n // False for random, true for greedy\n samplingType: true,\n // Sample size to construct distance matrix\n sampleSize: 25,\n // Separation amount between nodes\n nodeSeparation: 75,\n // Power iteration tolerance\n piTol: 0.0000001,\n\n /* CoSE layout options */\n\n // Node repulsion (non overlapping) multiplier\n nodeRepulsion: function nodeRepulsion(node) {\n return 4500;\n },\n // Ideal edge (non nested) length\n idealEdgeLength: function idealEdgeLength(edge) {\n return 50;\n },\n // Divisor to compute edge forces\n edgeElasticity: function edgeElasticity(edge) {\n return 0.45;\n },\n // Nesting factor (multiplier) to compute ideal edge length for nested edges\n nestingFactor: 0.1,\n // Gravity force (constant)\n gravity: 0.25,\n // Maximum number of iterations to perform\n numIter: 2500,\n // For enabling tiling\n tile: true,\n // The function that specifies the criteria for comparing nodes while sorting them during tiling operation.\n // Takes the node id as a parameter and the default tiling operation is perfomed when this option is not set.\n tilingCompareBy: undefined,\n // Represents the amount of the vertical space to put between the zero degree members during the tiling operation(can also be a function)\n tilingPaddingVertical: 10,\n // Represents the amount of the horizontal space to put between the zero degree members during the tiling operation(can also be a function)\n tilingPaddingHorizontal: 10,\n // Gravity range (constant) for compounds\n gravityRangeCompound: 1.5,\n // Gravity force (constant) for compounds\n gravityCompound: 1.0,\n // Gravity range (constant)\n gravityRange: 3.8,\n // Initial cooling factor for incremental layout \n initialEnergyOnIncremental: 0.3,\n\n /* constraint options */\n\n // Fix required nodes to predefined positions\n // [{nodeId: 'n1', position: {x: 100, y: 200}, {...}]\n fixedNodeConstraint: undefined,\n // Align required nodes in vertical/horizontal direction\n // {vertical: [['n1', 'n2')], ['n3', 'n4']], horizontal: ['n2', 'n4']}\n alignmentConstraint: undefined,\n // Place two nodes relatively in vertical/horizontal direction \n // [{top: 'n1', bottom: 'n2', gap: 100}, {left: 'n3', right: 'n4', gap: 75}]\n relativePlacementConstraint: undefined,\n\n /* layout event callbacks */\n ready: function ready() {}, // on layoutready\n stop: function stop() {} // on layoutstop\n});\n\nvar Layout = function () {\n function Layout(options) {\n _classCallCheck(this, Layout);\n\n this.options = assign({}, defaults, options);\n }\n\n _createClass(Layout, [{\n key: 'run',\n value: function run() {\n var layout = this;\n var options = this.options;\n var cy = options.cy;\n var eles = options.eles;\n\n var spectralResult = [];\n var xCoords = void 0;\n var yCoords = void 0;\n var coseResult = [];\n var components = void 0;\n var componentCenters = [];\n\n // basic validity check for constraint inputs \n if (options.fixedNodeConstraint && (!Array.isArray(options.fixedNodeConstraint) || options.fixedNodeConstraint.length == 0)) {\n options.fixedNodeConstraint = undefined;\n }\n\n if (options.alignmentConstraint) {\n if (options.alignmentConstraint.vertical && (!Array.isArray(options.alignmentConstraint.vertical) || options.alignmentConstraint.vertical.length == 0)) {\n options.alignmentConstraint.vertical = undefined;\n }\n if (options.alignmentConstraint.horizontal && (!Array.isArray(options.alignmentConstraint.horizontal) || options.alignmentConstraint.horizontal.length == 0)) {\n options.alignmentConstraint.horizontal = undefined;\n }\n }\n\n if (options.relativePlacementConstraint && (!Array.isArray(options.relativePlacementConstraint) || options.relativePlacementConstraint.length == 0)) {\n options.relativePlacementConstraint = undefined;\n }\n\n // if any constraint exists, set some options\n var constraintExist = options.fixedNodeConstraint || options.alignmentConstraint || options.relativePlacementConstraint;\n if (constraintExist) {\n // constraints work with these options\n options.tile = false;\n options.packComponents = false;\n }\n\n // decide component packing is enabled or not\n var layUtil = void 0;\n var packingEnabled = false;\n if (cy.layoutUtilities && options.packComponents) {\n layUtil = cy.layoutUtilities(\"get\");\n if (!layUtil) layUtil = cy.layoutUtilities();\n packingEnabled = true;\n }\n\n if (eles.nodes().length > 0) {\n // if packing is not enabled, perform layout on the whole graph\n if (!packingEnabled) {\n // store component center\n var boundingBox = options.eles.boundingBox();\n componentCenters.push({ x: boundingBox.x1 + boundingBox.w / 2, y: boundingBox.y1 + boundingBox.h / 2 });\n // apply spectral layout\n if (options.randomize) {\n var result = spectralLayout(options);\n spectralResult.push(result);\n }\n // apply cose layout as postprocessing\n if (options.quality == \"default\" || options.quality == \"proof\") {\n coseResult.push(coseLayout(options, spectralResult[0]));\n aux.relocateComponent(componentCenters[0], coseResult[0], options); // relocate center to original position\n } else {\n aux.relocateComponent(componentCenters[0], spectralResult[0], options); // relocate center to original position\n }\n } else {\n // packing is enabled\n var topMostNodes = aux.getTopMostNodes(options.eles.nodes());\n components = aux.connectComponents(cy, options.eles, topMostNodes);\n // store component centers\n components.forEach(function (component) {\n var boundingBox = component.boundingBox();\n componentCenters.push({ x: boundingBox.x1 + boundingBox.w / 2, y: boundingBox.y1 + boundingBox.h / 2 });\n });\n\n //send each component to spectral layout if randomized\n if (options.randomize) {\n components.forEach(function (component) {\n options.eles = component;\n spectralResult.push(spectralLayout(options));\n });\n }\n\n if (options.quality == \"default\" || options.quality == \"proof\") {\n var toBeTiledNodes = cy.collection();\n if (options.tile) {\n // behave nodes to be tiled as one component\n var nodeIndexes = new Map();\n var _xCoords = [];\n var _yCoords = [];\n var count = 0;\n var tempSpectralResult = { nodeIndexes: nodeIndexes, xCoords: _xCoords, yCoords: _yCoords };\n var indexesToBeDeleted = [];\n components.forEach(function (component, index) {\n if (component.edges().length == 0) {\n component.nodes().forEach(function (node, i) {\n toBeTiledNodes.merge(component.nodes()[i]);\n if (!node.isParent()) {\n tempSpectralResult.nodeIndexes.set(component.nodes()[i].id(), count++);\n tempSpectralResult.xCoords.push(component.nodes()[0].position().x);\n tempSpectralResult.yCoords.push(component.nodes()[0].position().y);\n }\n });\n indexesToBeDeleted.push(index);\n }\n });\n if (toBeTiledNodes.length > 1) {\n var _boundingBox = toBeTiledNodes.boundingBox();\n componentCenters.push({ x: _boundingBox.x1 + _boundingBox.w / 2, y: _boundingBox.y1 + _boundingBox.h / 2 });\n components.push(toBeTiledNodes);\n spectralResult.push(tempSpectralResult);\n for (var i = indexesToBeDeleted.length - 1; i >= 0; i--) {\n components.splice(indexesToBeDeleted[i], 1);\n spectralResult.splice(indexesToBeDeleted[i], 1);\n componentCenters.splice(indexesToBeDeleted[i], 1);\n };\n }\n }\n components.forEach(function (component, index) {\n // send each component to cose layout\n options.eles = component;\n coseResult.push(coseLayout(options, spectralResult[index]));\n aux.relocateComponent(componentCenters[index], coseResult[index], options); // relocate center to original position\n });\n } else {\n components.forEach(function (component, index) {\n aux.relocateComponent(componentCenters[index], spectralResult[index], options); // relocate center to original position\n });\n }\n\n // packing\n var componentsEvaluated = new Set();\n if (components.length > 1) {\n var subgraphs = [];\n var hiddenEles = eles.filter(function (ele) {\n return ele.css('display') == 'none';\n });\n components.forEach(function (component, index) {\n var nodeIndexes = void 0;\n if (options.quality == \"draft\") {\n nodeIndexes = spectralResult[index].nodeIndexes;\n }\n\n if (component.nodes().not(hiddenEles).length > 0) {\n var subgraph = {};\n subgraph.edges = [];\n subgraph.nodes = [];\n var nodeIndex = void 0;\n component.nodes().not(hiddenEles).forEach(function (node) {\n if (options.quality == \"draft\") {\n if (!node.isParent()) {\n nodeIndex = nodeIndexes.get(node.id());\n subgraph.nodes.push({ x: spectralResult[index].xCoords[nodeIndex] - node.boundingbox().w / 2, y: spectralResult[index].yCoords[nodeIndex] - node.boundingbox().h / 2, width: node.boundingbox().w, height: node.boundingbox().h });\n } else {\n var parentInfo = aux.calcBoundingBox(node, spectralResult[index].xCoords, spectralResult[index].yCoords, nodeIndexes);\n subgraph.nodes.push({ x: parentInfo.topLeftX, y: parentInfo.topLeftY, width: parentInfo.width, height: parentInfo.height });\n }\n } else {\n if (coseResult[index][node.id()]) {\n subgraph.nodes.push({ x: coseResult[index][node.id()].getLeft(), y: coseResult[index][node.id()].getTop(), width: coseResult[index][node.id()].getWidth(), height: coseResult[index][node.id()].getHeight() });\n }\n }\n });\n component.edges().forEach(function (edge) {\n var source = edge.source();\n var target = edge.target();\n if (source.css(\"display\") != \"none\" && target.css(\"display\") != \"none\") {\n if (options.quality == \"draft\") {\n var sourceNodeIndex = nodeIndexes.get(source.id());\n var targetNodeIndex = nodeIndexes.get(target.id());\n var sourceCenter = [];\n var targetCenter = [];\n if (source.isParent()) {\n var parentInfo = aux.calcBoundingBox(source, spectralResult[index].xCoords, spectralResult[index].yCoords, nodeIndexes);\n sourceCenter.push(parentInfo.topLeftX + parentInfo.width / 2);\n sourceCenter.push(parentInfo.topLeftY + parentInfo.height / 2);\n } else {\n sourceCenter.push(spectralResult[index].xCoords[sourceNodeIndex]);\n sourceCenter.push(spectralResult[index].yCoords[sourceNodeIndex]);\n }\n if (target.isParent()) {\n var _parentInfo = aux.calcBoundingBox(target, spectralResult[index].xCoords, spectralResult[index].yCoords, nodeIndexes);\n targetCenter.push(_parentInfo.topLeftX + _parentInfo.width / 2);\n targetCenter.push(_parentInfo.topLeftY + _parentInfo.height / 2);\n } else {\n targetCenter.push(spectralResult[index].xCoords[targetNodeIndex]);\n targetCenter.push(spectralResult[index].yCoords[targetNodeIndex]);\n }\n subgraph.edges.push({ startX: sourceCenter[0], startY: sourceCenter[1], endX: targetCenter[0], endY: targetCenter[1] });\n } else {\n if (coseResult[index][source.id()] && coseResult[index][target.id()]) {\n subgraph.edges.push({ startX: coseResult[index][source.id()].getCenterX(), startY: coseResult[index][source.id()].getCenterY(), endX: coseResult[index][target.id()].getCenterX(), endY: coseResult[index][target.id()].getCenterY() });\n }\n }\n }\n });\n if (subgraph.nodes.length > 0) {\n subgraphs.push(subgraph);\n componentsEvaluated.add(index);\n }\n }\n });\n var shiftResult = layUtil.packComponents(subgraphs, options.randomize).shifts;\n if (options.quality == \"draft\") {\n spectralResult.forEach(function (result, index) {\n var newXCoords = result.xCoords.map(function (x) {\n return x + shiftResult[index].dx;\n });\n var newYCoords = result.yCoords.map(function (y) {\n return y + shiftResult[index].dy;\n });\n result.xCoords = newXCoords;\n result.yCoords = newYCoords;\n });\n } else {\n var _count = 0;\n componentsEvaluated.forEach(function (index) {\n Object.keys(coseResult[index]).forEach(function (item) {\n var nodeRectangle = coseResult[index][item];\n nodeRectangle.setCenter(nodeRectangle.getCenterX() + shiftResult[_count].dx, nodeRectangle.getCenterY() + shiftResult[_count].dy);\n });\n _count++;\n });\n }\n }\n }\n }\n\n // get each element's calculated position\n var getPositions = function getPositions(ele, i) {\n if (options.quality == \"default\" || options.quality == \"proof\") {\n if (typeof ele === \"number\") {\n ele = i;\n }\n var pos = void 0;\n var node = void 0;\n var theId = ele.data('id');\n coseResult.forEach(function (result) {\n if (theId in result) {\n pos = { x: result[theId].getRect().getCenterX(), y: result[theId].getRect().getCenterY() };\n node = result[theId];\n }\n });\n if (options.nodeDimensionsIncludeLabels) {\n if (node.labelWidth) {\n if (node.labelPosHorizontal == \"left\") {\n pos.x += node.labelWidth / 2;\n } else if (node.labelPosHorizontal == \"right\") {\n pos.x -= node.labelWidth / 2;\n }\n }\n if (node.labelHeight) {\n if (node.labelPosVertical == \"top\") {\n pos.y += node.labelHeight / 2;\n } else if (node.labelPosVertical == \"bottom\") {\n pos.y -= node.labelHeight / 2;\n }\n }\n }\n if (pos == undefined) pos = { x: ele.position(\"x\"), y: ele.position(\"y\") };\n return {\n x: pos.x,\n y: pos.y\n };\n } else {\n var _pos = void 0;\n spectralResult.forEach(function (result) {\n var index = result.nodeIndexes.get(ele.id());\n if (index != undefined) {\n _pos = { x: result.xCoords[index], y: result.yCoords[index] };\n }\n });\n if (_pos == undefined) _pos = { x: ele.position(\"x\"), y: ele.position(\"y\") };\n return {\n x: _pos.x,\n y: _pos.y\n };\n }\n };\n\n // quality = \"draft\" and randomize = false are contradictive so in that case positions don't change\n if (options.quality == \"default\" || options.quality == \"proof\" || options.randomize) {\n // transfer calculated positions to nodes (positions of only simple nodes are evaluated, compounds are positioned automatically)\n var parentsWithoutChildren = aux.calcParentsWithoutChildren(cy, eles);\n var _hiddenEles = eles.filter(function (ele) {\n return ele.css('display') == 'none';\n });\n options.eles = eles.not(_hiddenEles);\n\n eles.nodes().not(\":parent\").not(_hiddenEles).layoutPositions(layout, options, getPositions);\n\n if (parentsWithoutChildren.length > 0) {\n parentsWithoutChildren.forEach(function (ele) {\n ele.position(getPositions(ele));\n });\n }\n } else {\n console.log(\"If randomize option is set to false, then quality option must be 'default' or 'proof'.\");\n }\n }\n }]);\n\n return Layout;\n}();\n\nmodule.exports = Layout;\n\n/***/ }),\n\n/***/ 657:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\n\n/**\n The implementation of the spectral layout that is the first part of the fcose layout algorithm\n*/\n\nvar aux = __webpack_require__(548);\nvar Matrix = __webpack_require__(140).layoutBase.Matrix;\nvar SVD = __webpack_require__(140).layoutBase.SVD;\n\n// main function that spectral layout is processed\nvar spectralLayout = function spectralLayout(options) {\n\n var cy = options.cy;\n var eles = options.eles;\n var nodes = eles.nodes();\n var parentNodes = eles.nodes(\":parent\");\n\n var dummyNodes = new Map(); // map to keep dummy nodes and their neighbors\n var nodeIndexes = new Map(); // map to keep indexes to nodes\n var parentChildMap = new Map(); // mapping btw. compound and its representative node \n var allNodesNeighborhood = []; // array to keep neighborhood of all nodes\n var xCoords = [];\n var yCoords = [];\n\n var samplesColumn = []; // sampled vertices\n var minDistancesColumn = [];\n var C = []; // column sampling matrix\n var PHI = []; // intersection of column and row sampling matrices \n var INV = []; // inverse of PHI \n\n var firstSample = void 0; // the first sampled node\n var nodeSize = void 0;\n\n var infinity = 100000000;\n var small = 0.000000001;\n\n var piTol = options.piTol;\n var samplingType = options.samplingType; // false for random, true for greedy\n var nodeSeparation = options.nodeSeparation;\n var sampleSize = void 0;\n\n /**** Spectral-preprocessing functions ****/\n\n /**** Spectral layout functions ****/\n\n // determine which columns to be sampled\n var randomSampleCR = function randomSampleCR() {\n var sample = 0;\n var count = 0;\n var flag = false;\n\n while (count < sampleSize) {\n sample = Math.floor(Math.random() * nodeSize);\n\n flag = false;\n for (var i = 0; i < count; i++) {\n if (samplesColumn[i] == sample) {\n flag = true;\n break;\n }\n }\n\n if (!flag) {\n samplesColumn[count] = sample;\n count++;\n } else {\n continue;\n }\n }\n };\n\n // takes the index of the node(pivot) to initiate BFS as a parameter\n var BFS = function BFS(pivot, index, samplingMethod) {\n var path = []; // the front of the path\n var front = 0; // the back of the path\n var back = 0;\n var current = 0;\n var temp = void 0;\n var distance = [];\n\n var max_dist = 0; // the furthest node to be returned\n var max_ind = 1;\n\n for (var i = 0; i < nodeSize; i++) {\n distance[i] = infinity;\n }\n\n path[back] = pivot;\n distance[pivot] = 0;\n\n while (back >= front) {\n current = path[front++];\n var neighbors = allNodesNeighborhood[current];\n for (var _i = 0; _i < neighbors.length; _i++) {\n temp = nodeIndexes.get(neighbors[_i]);\n if (distance[temp] == infinity) {\n distance[temp] = distance[current] + 1;\n path[++back] = temp;\n }\n }\n C[current][index] = distance[current] * nodeSeparation;\n }\n\n if (samplingMethod) {\n for (var _i2 = 0; _i2 < nodeSize; _i2++) {\n if (C[_i2][index] < minDistancesColumn[_i2]) minDistancesColumn[_i2] = C[_i2][index];\n }\n\n for (var _i3 = 0; _i3 < nodeSize; _i3++) {\n if (minDistancesColumn[_i3] > max_dist) {\n max_dist = minDistancesColumn[_i3];\n max_ind = _i3;\n }\n }\n }\n return max_ind;\n };\n\n // apply BFS to all nodes or selected samples\n var allBFS = function allBFS(samplingMethod) {\n\n var sample = void 0;\n\n if (!samplingMethod) {\n randomSampleCR();\n\n // call BFS\n for (var i = 0; i < sampleSize; i++) {\n BFS(samplesColumn[i], i, samplingMethod, false);\n }\n } else {\n sample = Math.floor(Math.random() * nodeSize);\n firstSample = sample;\n\n for (var _i4 = 0; _i4 < nodeSize; _i4++) {\n minDistancesColumn[_i4] = infinity;\n }\n\n for (var _i5 = 0; _i5 < sampleSize; _i5++) {\n samplesColumn[_i5] = sample;\n sample = BFS(sample, _i5, samplingMethod);\n }\n }\n\n // form the squared distances for C\n for (var _i6 = 0; _i6 < nodeSize; _i6++) {\n for (var j = 0; j < sampleSize; j++) {\n C[_i6][j] *= C[_i6][j];\n }\n }\n\n // form PHI\n for (var _i7 = 0; _i7 < sampleSize; _i7++) {\n PHI[_i7] = [];\n }\n\n for (var _i8 = 0; _i8 < sampleSize; _i8++) {\n for (var _j = 0; _j < sampleSize; _j++) {\n PHI[_i8][_j] = C[samplesColumn[_j]][_i8];\n }\n }\n };\n\n // perform the SVD algorithm and apply a regularization step\n var sample = function sample() {\n\n var SVDResult = SVD.svd(PHI);\n\n var a_q = SVDResult.S;\n var a_u = SVDResult.U;\n var a_v = SVDResult.V;\n\n var max_s = a_q[0] * a_q[0] * a_q[0];\n\n var a_Sig = [];\n\n // regularization\n for (var i = 0; i < sampleSize; i++) {\n a_Sig[i] = [];\n for (var j = 0; j < sampleSize; j++) {\n a_Sig[i][j] = 0;\n if (i == j) {\n a_Sig[i][j] = a_q[i] / (a_q[i] * a_q[i] + max_s / (a_q[i] * a_q[i]));\n }\n }\n }\n\n INV = Matrix.multMat(Matrix.multMat(a_v, a_Sig), Matrix.transpose(a_u));\n };\n\n // calculate final coordinates \n var powerIteration = function powerIteration() {\n // two largest eigenvalues\n var theta1 = void 0;\n var theta2 = void 0;\n\n // initial guesses for eigenvectors\n var Y1 = [];\n var Y2 = [];\n\n var V1 = [];\n var V2 = [];\n\n for (var i = 0; i < nodeSize; i++) {\n Y1[i] = Math.random();\n Y2[i] = Math.random();\n }\n\n Y1 = Matrix.normalize(Y1);\n Y2 = Matrix.normalize(Y2);\n\n var count = 0;\n // to keep track of the improvement ratio in power iteration\n var current = small;\n var previous = small;\n\n var temp = void 0;\n\n while (true) {\n count++;\n\n for (var _i9 = 0; _i9 < nodeSize; _i9++) {\n V1[_i9] = Y1[_i9];\n }\n\n Y1 = Matrix.multGamma(Matrix.multL(Matrix.multGamma(V1), C, INV));\n theta1 = Matrix.dotProduct(V1, Y1);\n Y1 = Matrix.normalize(Y1);\n\n current = Matrix.dotProduct(V1, Y1);\n\n temp = Math.abs(current / previous);\n\n if (temp <= 1 + piTol && temp >= 1) {\n break;\n }\n\n previous = current;\n }\n\n for (var _i10 = 0; _i10 < nodeSize; _i10++) {\n V1[_i10] = Y1[_i10];\n }\n\n count = 0;\n previous = small;\n while (true) {\n count++;\n\n for (var _i11 = 0; _i11 < nodeSize; _i11++) {\n V2[_i11] = Y2[_i11];\n }\n\n V2 = Matrix.minusOp(V2, Matrix.multCons(V1, Matrix.dotProduct(V1, V2)));\n Y2 = Matrix.multGamma(Matrix.multL(Matrix.multGamma(V2), C, INV));\n theta2 = Matrix.dotProduct(V2, Y2);\n Y2 = Matrix.normalize(Y2);\n\n current = Matrix.dotProduct(V2, Y2);\n\n temp = Math.abs(current / previous);\n\n if (temp <= 1 + piTol && temp >= 1) {\n break;\n }\n\n previous = current;\n }\n\n for (var _i12 = 0; _i12 < nodeSize; _i12++) {\n V2[_i12] = Y2[_i12];\n }\n\n // theta1 now contains dominant eigenvalue\n // theta2 now contains the second-largest eigenvalue\n // V1 now contains theta1's eigenvector\n // V2 now contains theta2's eigenvector\n\n //populate the two vectors\n xCoords = Matrix.multCons(V1, Math.sqrt(Math.abs(theta1)));\n yCoords = Matrix.multCons(V2, Math.sqrt(Math.abs(theta2)));\n };\n\n /**** Preparation for spectral layout (Preprocessing) ****/\n\n // connect disconnected components (first top level, then inside of each compound node)\n aux.connectComponents(cy, eles, aux.getTopMostNodes(nodes), dummyNodes);\n\n parentNodes.forEach(function (ele) {\n aux.connectComponents(cy, eles, aux.getTopMostNodes(ele.descendants().intersection(eles)), dummyNodes);\n });\n\n // assign indexes to nodes (first real, then dummy nodes)\n var index = 0;\n for (var i = 0; i < nodes.length; i++) {\n if (!nodes[i].isParent()) {\n nodeIndexes.set(nodes[i].id(), index++);\n }\n }\n\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = dummyNodes.keys()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var key = _step.value;\n\n nodeIndexes.set(key, index++);\n }\n\n // instantiate the neighborhood matrix\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n for (var _i13 = 0; _i13 < nodeIndexes.size; _i13++) {\n allNodesNeighborhood[_i13] = [];\n }\n\n // form a parent-child map to keep representative node of each compound node \n parentNodes.forEach(function (ele) {\n var children = ele.children().intersection(eles);\n\n // let random = 0;\n while (children.nodes(\":childless\").length == 0) {\n // random = Math.floor(Math.random() * children.nodes().length); // if all children are compound then proceed randomly\n children = children.nodes()[0].children().intersection(eles);\n }\n // select the representative node - we can apply different methods here\n // random = Math.floor(Math.random() * children.nodes(\":childless\").length);\n var index = 0;\n var min = children.nodes(\":childless\")[0].connectedEdges().length;\n children.nodes(\":childless\").forEach(function (ele2, i) {\n if (ele2.connectedEdges().length < min) {\n min = ele2.connectedEdges().length;\n index = i;\n }\n });\n parentChildMap.set(ele.id(), children.nodes(\":childless\")[index].id());\n });\n\n // add neighborhood relations (first real, then dummy nodes)\n nodes.forEach(function (ele) {\n var eleIndex = void 0;\n\n if (ele.isParent()) eleIndex = nodeIndexes.get(parentChildMap.get(ele.id()));else eleIndex = nodeIndexes.get(ele.id());\n\n ele.neighborhood().nodes().forEach(function (node) {\n if (eles.intersection(ele.edgesWith(node)).length > 0) {\n if (node.isParent()) allNodesNeighborhood[eleIndex].push(parentChildMap.get(node.id()));else allNodesNeighborhood[eleIndex].push(node.id());\n }\n });\n });\n\n var _loop = function _loop(_key) {\n var eleIndex = nodeIndexes.get(_key);\n var disconnectedId = void 0;\n dummyNodes.get(_key).forEach(function (id) {\n if (cy.getElementById(id).isParent()) disconnectedId = parentChildMap.get(id);else disconnectedId = id;\n\n allNodesNeighborhood[eleIndex].push(disconnectedId);\n allNodesNeighborhood[nodeIndexes.get(disconnectedId)].push(_key);\n });\n };\n\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = dummyNodes.keys()[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var _key = _step2.value;\n\n _loop(_key);\n }\n\n // nodeSize now only considers the size of transformed graph\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n\n nodeSize = nodeIndexes.size;\n\n var spectralResult = void 0;\n\n // If number of nodes in transformed graph is 1 or 2, either SVD or powerIteration causes problem\n // So skip spectral and layout the graph with cose\n if (nodeSize > 2) {\n // if # of nodes in transformed graph is smaller than sample size,\n // then use # of nodes as sample size\n sampleSize = nodeSize < options.sampleSize ? nodeSize : options.sampleSize;\n\n // instantiates the partial matrices that will be used in spectral layout\n for (var _i14 = 0; _i14 < nodeSize; _i14++) {\n C[_i14] = [];\n }\n for (var _i15 = 0; _i15 < sampleSize; _i15++) {\n INV[_i15] = [];\n }\n\n /**** Apply spectral layout ****/\n\n if (options.quality == \"draft\" || options.step == \"all\") {\n allBFS(samplingType);\n sample();\n powerIteration();\n\n spectralResult = { nodeIndexes: nodeIndexes, xCoords: xCoords, yCoords: yCoords };\n } else {\n nodeIndexes.forEach(function (value, key) {\n xCoords.push(cy.getElementById(key).position(\"x\"));\n yCoords.push(cy.getElementById(key).position(\"y\"));\n });\n spectralResult = { nodeIndexes: nodeIndexes, xCoords: xCoords, yCoords: yCoords };\n }\n return spectralResult;\n } else {\n var iterator = nodeIndexes.keys();\n var firstNode = cy.getElementById(iterator.next().value);\n var firstNodePos = firstNode.position();\n var firstNodeWidth = firstNode.outerWidth();\n xCoords.push(firstNodePos.x);\n yCoords.push(firstNodePos.y);\n if (nodeSize == 2) {\n var secondNode = cy.getElementById(iterator.next().value);\n var secondNodeWidth = secondNode.outerWidth();\n xCoords.push(firstNodePos.x + firstNodeWidth / 2 + secondNodeWidth / 2 + options.idealEdgeLength);\n yCoords.push(firstNodePos.y);\n }\n\n spectralResult = { nodeIndexes: nodeIndexes, xCoords: xCoords, yCoords: yCoords };\n return spectralResult;\n }\n};\n\nmodule.exports = { spectralLayout: spectralLayout };\n\n/***/ }),\n\n/***/ 579:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\n\nvar impl = __webpack_require__(212);\n\n// registers the extension on a cytoscape lib ref\nvar register = function register(cytoscape) {\n if (!cytoscape) {\n return;\n } // can't register if cytoscape unspecified\n\n cytoscape('layout', 'fcose', impl); // register with cytoscape.js\n};\n\nif (typeof cytoscape !== 'undefined') {\n // expose to global cytoscape (i.e. window.cytoscape)\n register(cytoscape);\n}\n\nmodule.exports = register;\n\n/***/ }),\n\n/***/ 140:\n/***/ ((module) => {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__140__;\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\tvar cachedModule = __webpack_module_cache__[moduleId];\n/******/ \t\tif (cachedModule !== undefined) {\n/******/ \t\t\treturn cachedModule.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\n/******/ \t// startup\n/******/ \t// Load entry module and return exports\n/******/ \t// This entry module is referenced by other modules so it can't be inlined\n/******/ \tvar __webpack_exports__ = __webpack_require__(579);\n/******/ \t\n/******/ \treturn __webpack_exports__;\n/******/ })()\n;\n});", "import {\n getIconSVG,\n registerIconPacks,\n unknownIcon\n} from \"./chunk-OPO4IU42.mjs\";\nimport {\n createText\n} from \"./chunk-6JOS74DS.mjs\";\nimport {\n populateCommonDb\n} from \"./chunk-TMUBEWPD.mjs\";\nimport {\n ImperativeState\n} from \"./chunk-KFBOBJHC.mjs\";\nimport \"./chunk-7DKRZKHE.mjs\";\nimport {\n selectSvgElement\n} from \"./chunk-EJ4ZWXGL.mjs\";\nimport {\n __name,\n clear,\n defaultConfig_default,\n getAccDescription,\n getAccTitle,\n getConfig2 as getConfig,\n getDiagramTitle,\n log,\n setAccDescription,\n setAccTitle,\n setDiagramTitle,\n setupGraphViewbox\n} from \"./chunk-6DBFFHIP.mjs\";\n\n// src/diagrams/architecture/architectureParser.ts\nimport { parse } from \"@mermaid-js/parser\";\n\n// src/diagrams/architecture/architectureTypes.ts\nvar ArchitectureDirectionName = {\n L: \"left\",\n R: \"right\",\n T: \"top\",\n B: \"bottom\"\n};\nvar ArchitectureDirectionArrow = {\n L: /* @__PURE__ */ __name((scale) => `${scale},${scale / 2} 0,${scale} 0,0`, \"L\"),\n R: /* @__PURE__ */ __name((scale) => `0,${scale / 2} ${scale},0 ${scale},${scale}`, \"R\"),\n T: /* @__PURE__ */ __name((scale) => `0,0 ${scale},0 ${scale / 2},${scale}`, \"T\"),\n B: /* @__PURE__ */ __name((scale) => `${scale / 2},0 ${scale},${scale} 0,${scale}`, \"B\")\n};\nvar ArchitectureDirectionArrowShift = {\n L: /* @__PURE__ */ __name((orig, arrowSize) => orig - arrowSize + 2, \"L\"),\n R: /* @__PURE__ */ __name((orig, _arrowSize) => orig - 2, \"R\"),\n T: /* @__PURE__ */ __name((orig, arrowSize) => orig - arrowSize + 2, \"T\"),\n B: /* @__PURE__ */ __name((orig, _arrowSize) => orig - 2, \"B\")\n};\nvar getOppositeArchitectureDirection = /* @__PURE__ */ __name(function(x) {\n if (isArchitectureDirectionX(x)) {\n return x === \"L\" ? \"R\" : \"L\";\n } else {\n return x === \"T\" ? \"B\" : \"T\";\n }\n}, \"getOppositeArchitectureDirection\");\nvar isArchitectureDirection = /* @__PURE__ */ __name(function(x) {\n const temp = x;\n return temp === \"L\" || temp === \"R\" || temp === \"T\" || temp === \"B\";\n}, \"isArchitectureDirection\");\nvar isArchitectureDirectionX = /* @__PURE__ */ __name(function(x) {\n const temp = x;\n return temp === \"L\" || temp === \"R\";\n}, \"isArchitectureDirectionX\");\nvar isArchitectureDirectionY = /* @__PURE__ */ __name(function(x) {\n const temp = x;\n return temp === \"T\" || temp === \"B\";\n}, \"isArchitectureDirectionY\");\nvar isArchitectureDirectionXY = /* @__PURE__ */ __name(function(a, b) {\n const aX_bY = isArchitectureDirectionX(a) && isArchitectureDirectionY(b);\n const aY_bX = isArchitectureDirectionY(a) && isArchitectureDirectionX(b);\n return aX_bY || aY_bX;\n}, \"isArchitectureDirectionXY\");\nvar isArchitecturePairXY = /* @__PURE__ */ __name(function(pair) {\n const lhs = pair[0];\n const rhs = pair[1];\n const aX_bY = isArchitectureDirectionX(lhs) && isArchitectureDirectionY(rhs);\n const aY_bX = isArchitectureDirectionY(lhs) && isArchitectureDirectionX(rhs);\n return aX_bY || aY_bX;\n}, \"isArchitecturePairXY\");\nvar isValidArchitectureDirectionPair = /* @__PURE__ */ __name(function(x) {\n return x !== \"LL\" && x !== \"RR\" && x !== \"TT\" && x !== \"BB\";\n}, \"isValidArchitectureDirectionPair\");\nvar getArchitectureDirectionPair = /* @__PURE__ */ __name(function(sourceDir, targetDir) {\n const pair = `${sourceDir}${targetDir}`;\n return isValidArchitectureDirectionPair(pair) ? pair : void 0;\n}, \"getArchitectureDirectionPair\");\nvar shiftPositionByArchitectureDirectionPair = /* @__PURE__ */ __name(function([x, y], pair) {\n const lhs = pair[0];\n const rhs = pair[1];\n if (isArchitectureDirectionX(lhs)) {\n if (isArchitectureDirectionY(rhs)) {\n return [x + (lhs === \"L\" ? -1 : 1), y + (rhs === \"T\" ? 1 : -1)];\n } else {\n return [x + (lhs === \"L\" ? -1 : 1), y];\n }\n } else {\n if (isArchitectureDirectionX(rhs)) {\n return [x + (rhs === \"L\" ? 1 : -1), y + (lhs === \"T\" ? 1 : -1)];\n } else {\n return [x, y + (lhs === \"T\" ? 1 : -1)];\n }\n }\n}, \"shiftPositionByArchitectureDirectionPair\");\nvar getArchitectureDirectionXYFactors = /* @__PURE__ */ __name(function(pair) {\n if (pair === \"LT\" || pair === \"TL\") {\n return [1, 1];\n } else if (pair === \"BL\" || pair === \"LB\") {\n return [1, -1];\n } else if (pair === \"BR\" || pair === \"RB\") {\n return [-1, -1];\n } else {\n return [-1, 1];\n }\n}, \"getArchitectureDirectionXYFactors\");\nvar isArchitectureService = /* @__PURE__ */ __name(function(x) {\n const temp = x;\n return temp.type === \"service\";\n}, \"isArchitectureService\");\nvar isArchitectureJunction = /* @__PURE__ */ __name(function(x) {\n const temp = x;\n return temp.type === \"junction\";\n}, \"isArchitectureJunction\");\nvar edgeData = /* @__PURE__ */ __name((edge) => {\n return edge.data();\n}, \"edgeData\");\nvar nodeData = /* @__PURE__ */ __name((node) => {\n return node.data();\n}, \"nodeData\");\n\n// src/diagrams/architecture/architectureDb.ts\nvar DEFAULT_ARCHITECTURE_CONFIG = defaultConfig_default.architecture;\nvar state = new ImperativeState(() => ({\n nodes: {},\n groups: {},\n edges: [],\n registeredIds: {},\n config: DEFAULT_ARCHITECTURE_CONFIG,\n dataStructures: void 0,\n elements: {}\n}));\nvar clear2 = /* @__PURE__ */ __name(() => {\n state.reset();\n clear();\n}, \"clear\");\nvar addService = /* @__PURE__ */ __name(function({\n id,\n icon,\n in: parent,\n title,\n iconText\n}) {\n if (state.records.registeredIds[id] !== void 0) {\n throw new Error(\n `The service id [${id}] is already in use by another ${state.records.registeredIds[id]}`\n );\n }\n if (parent !== void 0) {\n if (id === parent) {\n throw new Error(`The service [${id}] cannot be placed within itself`);\n }\n if (state.records.registeredIds[parent] === void 0) {\n throw new Error(\n `The service [${id}]'s parent does not exist. Please make sure the parent is created before this service`\n );\n }\n if (state.records.registeredIds[parent] === \"node\") {\n throw new Error(`The service [${id}]'s parent is not a group`);\n }\n }\n state.records.registeredIds[id] = \"node\";\n state.records.nodes[id] = {\n id,\n type: \"service\",\n icon,\n iconText,\n title,\n edges: [],\n in: parent\n };\n}, \"addService\");\nvar getServices = /* @__PURE__ */ __name(() => Object.values(state.records.nodes).filter(isArchitectureService), \"getServices\");\nvar addJunction = /* @__PURE__ */ __name(function({ id, in: parent }) {\n state.records.registeredIds[id] = \"node\";\n state.records.nodes[id] = {\n id,\n type: \"junction\",\n edges: [],\n in: parent\n };\n}, \"addJunction\");\nvar getJunctions = /* @__PURE__ */ __name(() => Object.values(state.records.nodes).filter(isArchitectureJunction), \"getJunctions\");\nvar getNodes = /* @__PURE__ */ __name(() => Object.values(state.records.nodes), \"getNodes\");\nvar getNode = /* @__PURE__ */ __name((id) => state.records.nodes[id], \"getNode\");\nvar addGroup = /* @__PURE__ */ __name(function({ id, icon, in: parent, title }) {\n if (state.records.registeredIds[id] !== void 0) {\n throw new Error(\n `The group id [${id}] is already in use by another ${state.records.registeredIds[id]}`\n );\n }\n if (parent !== void 0) {\n if (id === parent) {\n throw new Error(`The group [${id}] cannot be placed within itself`);\n }\n if (state.records.registeredIds[parent] === void 0) {\n throw new Error(\n `The group [${id}]'s parent does not exist. Please make sure the parent is created before this group`\n );\n }\n if (state.records.registeredIds[parent] === \"node\") {\n throw new Error(`The group [${id}]'s parent is not a group`);\n }\n }\n state.records.registeredIds[id] = \"group\";\n state.records.groups[id] = {\n id,\n icon,\n title,\n in: parent\n };\n}, \"addGroup\");\nvar getGroups = /* @__PURE__ */ __name(() => {\n return Object.values(state.records.groups);\n}, \"getGroups\");\nvar addEdge = /* @__PURE__ */ __name(function({\n lhsId,\n rhsId,\n lhsDir,\n rhsDir,\n lhsInto,\n rhsInto,\n lhsGroup,\n rhsGroup,\n title\n}) {\n if (!isArchitectureDirection(lhsDir)) {\n throw new Error(\n `Invalid direction given for left hand side of edge ${lhsId}--${rhsId}. Expected (L,R,T,B) got ${lhsDir}`\n );\n }\n if (!isArchitectureDirection(rhsDir)) {\n throw new Error(\n `Invalid direction given for right hand side of edge ${lhsId}--${rhsId}. Expected (L,R,T,B) got ${rhsDir}`\n );\n }\n if (state.records.nodes[lhsId] === void 0 && state.records.groups[lhsId] === void 0) {\n throw new Error(\n `The left-hand id [${lhsId}] does not yet exist. Please create the service/group before declaring an edge to it.`\n );\n }\n if (state.records.nodes[rhsId] === void 0 && state.records.groups[lhsId] === void 0) {\n throw new Error(\n `The right-hand id [${rhsId}] does not yet exist. Please create the service/group before declaring an edge to it.`\n );\n }\n const lhsGroupId = state.records.nodes[lhsId].in;\n const rhsGroupId = state.records.nodes[rhsId].in;\n if (lhsGroup && lhsGroupId && rhsGroupId && lhsGroupId == rhsGroupId) {\n throw new Error(\n `The left-hand id [${lhsId}] is modified to traverse the group boundary, but the edge does not pass through two groups.`\n );\n }\n if (rhsGroup && lhsGroupId && rhsGroupId && lhsGroupId == rhsGroupId) {\n throw new Error(\n `The right-hand id [${rhsId}] is modified to traverse the group boundary, but the edge does not pass through two groups.`\n );\n }\n const edge = {\n lhsId,\n lhsDir,\n lhsInto,\n lhsGroup,\n rhsId,\n rhsDir,\n rhsInto,\n rhsGroup,\n title\n };\n state.records.edges.push(edge);\n if (state.records.nodes[lhsId] && state.records.nodes[rhsId]) {\n state.records.nodes[lhsId].edges.push(state.records.edges[state.records.edges.length - 1]);\n state.records.nodes[rhsId].edges.push(state.records.edges[state.records.edges.length - 1]);\n }\n}, \"addEdge\");\nvar getEdges = /* @__PURE__ */ __name(() => state.records.edges, \"getEdges\");\nvar getDataStructures = /* @__PURE__ */ __name(() => {\n if (state.records.dataStructures === void 0) {\n const adjList = Object.entries(state.records.nodes).reduce((prevOuter, [id, service]) => {\n prevOuter[id] = service.edges.reduce((prevInner, edge) => {\n if (edge.lhsId === id) {\n const pair = getArchitectureDirectionPair(edge.lhsDir, edge.rhsDir);\n if (pair) {\n prevInner[pair] = edge.rhsId;\n }\n } else {\n const pair = getArchitectureDirectionPair(edge.rhsDir, edge.lhsDir);\n if (pair) {\n prevInner[pair] = edge.lhsId;\n }\n }\n return prevInner;\n }, {});\n return prevOuter;\n }, {});\n const firstId = Object.keys(adjList)[0];\n const visited = { [firstId]: 1 };\n const notVisited = Object.keys(adjList).reduce(\n (prev, id) => id === firstId ? prev : { ...prev, [id]: 1 },\n {}\n );\n const BFS = /* @__PURE__ */ __name((startingId) => {\n const spatialMap = { [startingId]: [0, 0] };\n const queue = [startingId];\n while (queue.length > 0) {\n const id = queue.shift();\n if (id) {\n visited[id] = 1;\n delete notVisited[id];\n const adj = adjList[id];\n const [posX, posY] = spatialMap[id];\n Object.entries(adj).forEach(([dir, rhsId]) => {\n if (!visited[rhsId]) {\n spatialMap[rhsId] = shiftPositionByArchitectureDirectionPair(\n [posX, posY],\n dir\n );\n queue.push(rhsId);\n }\n });\n }\n }\n return spatialMap;\n }, \"BFS\");\n const spatialMaps = [BFS(firstId)];\n while (Object.keys(notVisited).length > 0) {\n spatialMaps.push(BFS(Object.keys(notVisited)[0]));\n }\n state.records.dataStructures = {\n adjList,\n spatialMaps\n };\n }\n return state.records.dataStructures;\n}, \"getDataStructures\");\nvar setElementForId = /* @__PURE__ */ __name((id, element) => {\n state.records.elements[id] = element;\n}, \"setElementForId\");\nvar getElementById = /* @__PURE__ */ __name((id) => state.records.elements[id], \"getElementById\");\nvar db = {\n clear: clear2,\n setDiagramTitle,\n getDiagramTitle,\n setAccTitle,\n getAccTitle,\n setAccDescription,\n getAccDescription,\n addService,\n getServices,\n addJunction,\n getJunctions,\n getNodes,\n getNode,\n addGroup,\n getGroups,\n addEdge,\n getEdges,\n setElementForId,\n getElementById,\n getDataStructures\n};\nfunction getConfigField(field) {\n const arch = getConfig().architecture;\n if (arch?.[field]) {\n return arch[field];\n }\n return DEFAULT_ARCHITECTURE_CONFIG[field];\n}\n__name(getConfigField, \"getConfigField\");\n\n// src/diagrams/architecture/architectureParser.ts\nvar populateDb = /* @__PURE__ */ __name((ast, db2) => {\n populateCommonDb(ast, db2);\n ast.groups.map(db2.addGroup);\n ast.services.map((service) => db2.addService({ ...service, type: \"service\" }));\n ast.junctions.map((service) => db2.addJunction({ ...service, type: \"junction\" }));\n ast.edges.map(db2.addEdge);\n}, \"populateDb\");\nvar parser = {\n parse: /* @__PURE__ */ __name(async (input) => {\n const ast = await parse(\"architecture\", input);\n log.debug(ast);\n populateDb(ast, db);\n }, \"parse\")\n};\n\n// src/diagrams/architecture/architectureStyles.ts\nvar getStyles = /* @__PURE__ */ __name((options) => `\n .edge {\n stroke-width: ${options.archEdgeWidth};\n stroke: ${options.archEdgeColor};\n fill: none;\n }\n\n .arrow {\n fill: ${options.archEdgeArrowColor};\n }\n\n .node-bkg {\n fill: none;\n stroke: ${options.archGroupBorderColor};\n stroke-width: ${options.archGroupBorderWidth};\n stroke-dasharray: 8;\n }\n .node-icon-text {\n display: flex; \n align-items: center;\n }\n \n .node-icon-text > div {\n color: #fff;\n margin: 1px;\n height: fit-content;\n text-align: center;\n overflow: hidden;\n display: -webkit-box;\n -webkit-box-orient: vertical;\n }\n`, \"getStyles\");\nvar architectureStyles_default = getStyles;\n\n// src/diagrams/architecture/architectureRenderer.ts\nimport cytoscape from \"cytoscape\";\nimport fcose from \"cytoscape-fcose\";\nimport { select } from \"d3\";\n\n// src/diagrams/architecture/architectureIcons.ts\nvar wrapIcon = /* @__PURE__ */ __name((icon) => {\n return `${icon}`;\n}, \"wrapIcon\");\nvar architectureIcons = {\n prefix: \"mermaid-architecture\",\n height: 80,\n width: 80,\n icons: {\n database: {\n body: wrapIcon(\n ''\n )\n },\n server: {\n body: wrapIcon(\n ''\n )\n },\n disk: {\n body: wrapIcon(\n ''\n )\n },\n internet: {\n body: wrapIcon(\n ''\n )\n },\n cloud: {\n body: wrapIcon(\n ''\n )\n },\n unknown: unknownIcon,\n blank: {\n body: wrapIcon(\"\")\n }\n }\n};\n\n// src/diagrams/architecture/svgDraw.ts\nvar drawEdges = /* @__PURE__ */ __name(async function(edgesEl, cy) {\n const padding = getConfigField(\"padding\");\n const iconSize = getConfigField(\"iconSize\");\n const halfIconSize = iconSize / 2;\n const arrowSize = iconSize / 6;\n const halfArrowSize = arrowSize / 2;\n await Promise.all(\n cy.edges().map(async (edge) => {\n const {\n source,\n sourceDir,\n sourceArrow,\n sourceGroup,\n target,\n targetDir,\n targetArrow,\n targetGroup,\n label\n } = edgeData(edge);\n let { x: startX, y: startY } = edge[0].sourceEndpoint();\n const { x: midX, y: midY } = edge[0].midpoint();\n let { x: endX, y: endY } = edge[0].targetEndpoint();\n const groupEdgeShift = padding + 4;\n if (sourceGroup) {\n if (isArchitectureDirectionX(sourceDir)) {\n startX += sourceDir === \"L\" ? -groupEdgeShift : groupEdgeShift;\n } else {\n startY += sourceDir === \"T\" ? -groupEdgeShift : groupEdgeShift + 18;\n }\n }\n if (targetGroup) {\n if (isArchitectureDirectionX(targetDir)) {\n endX += targetDir === \"L\" ? -groupEdgeShift : groupEdgeShift;\n } else {\n endY += targetDir === \"T\" ? -groupEdgeShift : groupEdgeShift + 18;\n }\n }\n if (!sourceGroup && db.getNode(source)?.type === \"junction\") {\n if (isArchitectureDirectionX(sourceDir)) {\n startX += sourceDir === \"L\" ? halfIconSize : -halfIconSize;\n } else {\n startY += sourceDir === \"T\" ? halfIconSize : -halfIconSize;\n }\n }\n if (!targetGroup && db.getNode(target)?.type === \"junction\") {\n if (isArchitectureDirectionX(targetDir)) {\n endX += targetDir === \"L\" ? halfIconSize : -halfIconSize;\n } else {\n endY += targetDir === \"T\" ? halfIconSize : -halfIconSize;\n }\n }\n if (edge[0]._private.rscratch) {\n const g = edgesEl.insert(\"g\");\n g.insert(\"path\").attr(\"d\", `M ${startX},${startY} L ${midX},${midY} L${endX},${endY} `).attr(\"class\", \"edge\");\n if (sourceArrow) {\n const xShift = isArchitectureDirectionX(sourceDir) ? ArchitectureDirectionArrowShift[sourceDir](startX, arrowSize) : startX - halfArrowSize;\n const yShift = isArchitectureDirectionY(sourceDir) ? ArchitectureDirectionArrowShift[sourceDir](startY, arrowSize) : startY - halfArrowSize;\n g.insert(\"polygon\").attr(\"points\", ArchitectureDirectionArrow[sourceDir](arrowSize)).attr(\"transform\", `translate(${xShift},${yShift})`).attr(\"class\", \"arrow\");\n }\n if (targetArrow) {\n const xShift = isArchitectureDirectionX(targetDir) ? ArchitectureDirectionArrowShift[targetDir](endX, arrowSize) : endX - halfArrowSize;\n const yShift = isArchitectureDirectionY(targetDir) ? ArchitectureDirectionArrowShift[targetDir](endY, arrowSize) : endY - halfArrowSize;\n g.insert(\"polygon\").attr(\"points\", ArchitectureDirectionArrow[targetDir](arrowSize)).attr(\"transform\", `translate(${xShift},${yShift})`).attr(\"class\", \"arrow\");\n }\n if (label) {\n const axis = !isArchitectureDirectionXY(sourceDir, targetDir) ? isArchitectureDirectionX(sourceDir) ? \"X\" : \"Y\" : \"XY\";\n let width = 0;\n if (axis === \"X\") {\n width = Math.abs(startX - endX);\n } else if (axis === \"Y\") {\n width = Math.abs(startY - endY) / 1.5;\n } else {\n width = Math.abs(startX - endX) / 2;\n }\n const textElem = g.append(\"g\");\n await createText(\n textElem,\n label,\n {\n useHtmlLabels: false,\n width,\n classes: \"architecture-service-label\"\n },\n getConfig()\n );\n textElem.attr(\"dy\", \"1em\").attr(\"alignment-baseline\", \"middle\").attr(\"dominant-baseline\", \"middle\").attr(\"text-anchor\", \"middle\");\n if (axis === \"X\") {\n textElem.attr(\"transform\", \"translate(\" + midX + \", \" + midY + \")\");\n } else if (axis === \"Y\") {\n textElem.attr(\"transform\", \"translate(\" + midX + \", \" + midY + \") rotate(-90)\");\n } else if (axis === \"XY\") {\n const pair = getArchitectureDirectionPair(sourceDir, targetDir);\n if (pair && isArchitecturePairXY(pair)) {\n const bboxOrig = textElem.node().getBoundingClientRect();\n const [x, y] = getArchitectureDirectionXYFactors(pair);\n textElem.attr(\"dominant-baseline\", \"auto\").attr(\"transform\", `rotate(${-1 * x * y * 45})`);\n const bboxNew = textElem.node().getBoundingClientRect();\n textElem.attr(\n \"transform\",\n `\n translate(${midX}, ${midY - bboxOrig.height / 2})\n translate(${x * bboxNew.width / 2}, ${y * bboxNew.height / 2})\n rotate(${-1 * x * y * 45}, 0, ${bboxOrig.height / 2})\n `\n );\n }\n }\n }\n }\n })\n );\n}, \"drawEdges\");\nvar drawGroups = /* @__PURE__ */ __name(async function(groupsEl, cy) {\n const padding = getConfigField(\"padding\");\n const groupIconSize = padding * 0.75;\n const fontSize = getConfigField(\"fontSize\");\n const iconSize = getConfigField(\"iconSize\");\n const halfIconSize = iconSize / 2;\n await Promise.all(\n cy.nodes().map(async (node) => {\n const data = nodeData(node);\n if (data.type === \"group\") {\n const { h, w, x1, y1 } = node.boundingBox();\n groupsEl.append(\"rect\").attr(\"x\", x1 + halfIconSize).attr(\"y\", y1 + halfIconSize).attr(\"width\", w).attr(\"height\", h).attr(\"class\", \"node-bkg\");\n const groupLabelContainer = groupsEl.append(\"g\");\n let shiftedX1 = x1;\n let shiftedY1 = y1;\n if (data.icon) {\n const bkgElem = groupLabelContainer.append(\"g\");\n bkgElem.html(\n `${await getIconSVG(data.icon, { height: groupIconSize, width: groupIconSize, fallbackPrefix: architectureIcons.prefix })}`\n );\n bkgElem.attr(\n \"transform\",\n \"translate(\" + (shiftedX1 + halfIconSize + 1) + \", \" + (shiftedY1 + halfIconSize + 1) + \")\"\n );\n shiftedX1 += groupIconSize;\n shiftedY1 += fontSize / 2 - 1 - 2;\n }\n if (data.label) {\n const textElem = groupLabelContainer.append(\"g\");\n await createText(\n textElem,\n data.label,\n {\n useHtmlLabels: false,\n width: w,\n classes: \"architecture-service-label\"\n },\n getConfig()\n );\n textElem.attr(\"dy\", \"1em\").attr(\"alignment-baseline\", \"middle\").attr(\"dominant-baseline\", \"start\").attr(\"text-anchor\", \"start\");\n textElem.attr(\n \"transform\",\n \"translate(\" + (shiftedX1 + halfIconSize + 4) + \", \" + (shiftedY1 + halfIconSize + 2) + \")\"\n );\n }\n }\n })\n );\n}, \"drawGroups\");\nvar drawServices = /* @__PURE__ */ __name(async function(db2, elem, services) {\n for (const service of services) {\n const serviceElem = elem.append(\"g\");\n const iconSize = getConfigField(\"iconSize\");\n if (service.title) {\n const textElem = serviceElem.append(\"g\");\n await createText(\n textElem,\n service.title,\n {\n useHtmlLabels: false,\n width: iconSize * 1.5,\n classes: \"architecture-service-label\"\n },\n getConfig()\n );\n textElem.attr(\"dy\", \"1em\").attr(\"alignment-baseline\", \"middle\").attr(\"dominant-baseline\", \"middle\").attr(\"text-anchor\", \"middle\");\n textElem.attr(\"transform\", \"translate(\" + iconSize / 2 + \", \" + iconSize + \")\");\n }\n const bkgElem = serviceElem.append(\"g\");\n if (service.icon) {\n bkgElem.html(\n `${await getIconSVG(service.icon, { height: iconSize, width: iconSize, fallbackPrefix: architectureIcons.prefix })}`\n );\n } else if (service.iconText) {\n bkgElem.html(\n `${await getIconSVG(\"blank\", { height: iconSize, width: iconSize, fallbackPrefix: architectureIcons.prefix })}`\n );\n const textElemContainer = bkgElem.append(\"g\");\n const fo = textElemContainer.append(\"foreignObject\").attr(\"width\", iconSize).attr(\"height\", iconSize);\n const divElem = fo.append(\"div\").attr(\"class\", \"node-icon-text\").attr(\"style\", `height: ${iconSize}px;`).append(\"div\").html(service.iconText);\n const fontSize = parseInt(\n window.getComputedStyle(divElem.node(), null).getPropertyValue(\"font-size\").replace(/\\D/g, \"\")\n ) ?? 16;\n divElem.attr(\"style\", `-webkit-line-clamp: ${Math.floor((iconSize - 2) / fontSize)};`);\n } else {\n bkgElem.append(\"path\").attr(\"class\", \"node-bkg\").attr(\"id\", \"node-\" + service.id).attr(\n \"d\",\n `M0 ${iconSize} v${-iconSize} q0,-5 5,-5 h${iconSize} q5,0 5,5 v${iconSize} H0 Z`\n );\n }\n serviceElem.attr(\"class\", \"architecture-service\");\n const { width, height } = serviceElem._groups[0][0].getBBox();\n service.width = width;\n service.height = height;\n db2.setElementForId(service.id, serviceElem);\n }\n return 0;\n}, \"drawServices\");\nvar drawJunctions = /* @__PURE__ */ __name(function(db2, elem, junctions) {\n junctions.forEach((junction) => {\n const junctionElem = elem.append(\"g\");\n const iconSize = getConfigField(\"iconSize\");\n const bkgElem = junctionElem.append(\"g\");\n bkgElem.append(\"rect\").attr(\"id\", \"node-\" + junction.id).attr(\"fill-opacity\", \"0\").attr(\"width\", iconSize).attr(\"height\", iconSize);\n junctionElem.attr(\"class\", \"architecture-junction\");\n const { width, height } = junctionElem._groups[0][0].getBBox();\n junctionElem.width = width;\n junctionElem.height = height;\n db2.setElementForId(junction.id, junctionElem);\n });\n}, \"drawJunctions\");\n\n// src/diagrams/architecture/architectureRenderer.ts\nregisterIconPacks([\n {\n name: architectureIcons.prefix,\n icons: architectureIcons\n }\n]);\ncytoscape.use(fcose);\nfunction addServices(services, cy) {\n services.forEach((service) => {\n cy.add({\n group: \"nodes\",\n data: {\n type: \"service\",\n id: service.id,\n icon: service.icon,\n label: service.title,\n parent: service.in,\n width: getConfigField(\"iconSize\"),\n height: getConfigField(\"iconSize\")\n },\n classes: \"node-service\"\n });\n });\n}\n__name(addServices, \"addServices\");\nfunction addJunctions(junctions, cy) {\n junctions.forEach((junction) => {\n cy.add({\n group: \"nodes\",\n data: {\n type: \"junction\",\n id: junction.id,\n parent: junction.in,\n width: getConfigField(\"iconSize\"),\n height: getConfigField(\"iconSize\")\n },\n classes: \"node-junction\"\n });\n });\n}\n__name(addJunctions, \"addJunctions\");\nfunction positionNodes(db2, cy) {\n cy.nodes().map((node) => {\n const data = nodeData(node);\n if (data.type === \"group\") {\n return;\n }\n data.x = node.position().x;\n data.y = node.position().y;\n const nodeElem = db2.getElementById(data.id);\n nodeElem.attr(\"transform\", \"translate(\" + (data.x || 0) + \",\" + (data.y || 0) + \")\");\n });\n}\n__name(positionNodes, \"positionNodes\");\nfunction addGroups(groups, cy) {\n groups.forEach((group) => {\n cy.add({\n group: \"nodes\",\n data: {\n type: \"group\",\n id: group.id,\n icon: group.icon,\n label: group.title,\n parent: group.in\n },\n classes: \"node-group\"\n });\n });\n}\n__name(addGroups, \"addGroups\");\nfunction addEdges(edges, cy) {\n edges.forEach((parsedEdge) => {\n const { lhsId, rhsId, lhsInto, lhsGroup, rhsInto, lhsDir, rhsDir, rhsGroup, title } = parsedEdge;\n const edgeType = isArchitectureDirectionXY(parsedEdge.lhsDir, parsedEdge.rhsDir) ? \"segments\" : \"straight\";\n const edge = {\n id: `${lhsId}-${rhsId}`,\n label: title,\n source: lhsId,\n sourceDir: lhsDir,\n sourceArrow: lhsInto,\n sourceGroup: lhsGroup,\n sourceEndpoint: lhsDir === \"L\" ? \"0 50%\" : lhsDir === \"R\" ? \"100% 50%\" : lhsDir === \"T\" ? \"50% 0\" : \"50% 100%\",\n target: rhsId,\n targetDir: rhsDir,\n targetArrow: rhsInto,\n targetGroup: rhsGroup,\n targetEndpoint: rhsDir === \"L\" ? \"0 50%\" : rhsDir === \"R\" ? \"100% 50%\" : rhsDir === \"T\" ? \"50% 0\" : \"50% 100%\"\n };\n cy.add({\n group: \"edges\",\n data: edge,\n classes: edgeType\n });\n });\n}\n__name(addEdges, \"addEdges\");\nfunction getAlignments(spatialMaps) {\n const alignments = spatialMaps.map((spatialMap) => {\n const horizontalAlignments = {};\n const verticalAlignments = {};\n Object.entries(spatialMap).forEach(([id, [x, y]]) => {\n if (!horizontalAlignments[y]) {\n horizontalAlignments[y] = [];\n }\n if (!verticalAlignments[x]) {\n verticalAlignments[x] = [];\n }\n horizontalAlignments[y].push(id);\n verticalAlignments[x].push(id);\n });\n return {\n horiz: Object.values(horizontalAlignments).filter((arr) => arr.length > 1),\n vert: Object.values(verticalAlignments).filter((arr) => arr.length > 1)\n };\n });\n const [horizontal, vertical] = alignments.reduce(\n ([prevHoriz, prevVert], { horiz, vert }) => {\n return [\n [...prevHoriz, ...horiz],\n [...prevVert, ...vert]\n ];\n },\n [[], []]\n );\n return {\n horizontal,\n vertical\n };\n}\n__name(getAlignments, \"getAlignments\");\nfunction getRelativeConstraints(spatialMaps) {\n const relativeConstraints = [];\n const posToStr = /* @__PURE__ */ __name((pos) => `${pos[0]},${pos[1]}`, \"posToStr\");\n const strToPos = /* @__PURE__ */ __name((pos) => pos.split(\",\").map((p) => parseInt(p)), \"strToPos\");\n spatialMaps.forEach((spatialMap) => {\n const invSpatialMap = Object.fromEntries(\n Object.entries(spatialMap).map(([id, pos]) => [posToStr(pos), id])\n );\n const queue = [posToStr([0, 0])];\n const visited = {};\n const directions = {\n L: [-1, 0],\n R: [1, 0],\n T: [0, 1],\n B: [0, -1]\n };\n while (queue.length > 0) {\n const curr = queue.shift();\n if (curr) {\n visited[curr] = 1;\n const currId = invSpatialMap[curr];\n if (currId) {\n const currPos = strToPos(curr);\n Object.entries(directions).forEach(([dir, shift]) => {\n const newPos = posToStr([currPos[0] + shift[0], currPos[1] + shift[1]]);\n const newId = invSpatialMap[newPos];\n if (newId && !visited[newPos]) {\n queue.push(newPos);\n relativeConstraints.push({\n [ArchitectureDirectionName[dir]]: newId,\n [ArchitectureDirectionName[getOppositeArchitectureDirection(dir)]]: currId,\n gap: 1.5 * getConfigField(\"iconSize\")\n });\n }\n });\n }\n }\n }\n });\n return relativeConstraints;\n}\n__name(getRelativeConstraints, \"getRelativeConstraints\");\nfunction layoutArchitecture(services, junctions, groups, edges, { spatialMaps }) {\n return new Promise((resolve) => {\n const renderEl = select(\"body\").append(\"div\").attr(\"id\", \"cy\").attr(\"style\", \"display:none\");\n const cy = cytoscape({\n container: document.getElementById(\"cy\"),\n style: [\n {\n selector: \"edge\",\n style: {\n \"curve-style\": \"straight\",\n label: \"data(label)\",\n \"source-endpoint\": \"data(sourceEndpoint)\",\n \"target-endpoint\": \"data(targetEndpoint)\"\n }\n },\n {\n selector: \"edge.segments\",\n style: {\n \"curve-style\": \"segments\",\n \"segment-weights\": \"0\",\n \"segment-distances\": [0.5],\n // @ts-ignore Incorrect library types\n \"edge-distances\": \"endpoints\",\n \"source-endpoint\": \"data(sourceEndpoint)\",\n \"target-endpoint\": \"data(targetEndpoint)\"\n }\n },\n {\n selector: \"node\",\n style: {\n // @ts-ignore Incorrect library types\n \"compound-sizing-wrt-labels\": \"include\"\n }\n },\n {\n selector: \"node[label]\",\n style: {\n \"text-valign\": \"bottom\",\n \"text-halign\": \"center\",\n \"font-size\": `${getConfigField(\"fontSize\")}px`\n }\n },\n {\n selector: \".node-service\",\n style: {\n label: \"data(label)\",\n width: \"data(width)\",\n height: \"data(height)\"\n }\n },\n {\n selector: \".node-junction\",\n style: {\n width: \"data(width)\",\n height: \"data(height)\"\n }\n },\n {\n selector: \".node-group\",\n style: {\n // @ts-ignore Incorrect library types\n padding: `${getConfigField(\"padding\")}px`\n }\n }\n ]\n });\n renderEl.remove();\n addGroups(groups, cy);\n addServices(services, cy);\n addJunctions(junctions, cy);\n addEdges(edges, cy);\n const alignmentConstraint = getAlignments(spatialMaps);\n const relativePlacementConstraint = getRelativeConstraints(spatialMaps);\n const layout = cy.layout({\n name: \"fcose\",\n quality: \"proof\",\n styleEnabled: false,\n animate: false,\n nodeDimensionsIncludeLabels: false,\n // Adjust the edge parameters if it passes through the border of a group\n // Hacky fix for: https://github.com/iVis-at-Bilkent/cytoscape.js-fcose/issues/67\n idealEdgeLength(edge) {\n const [nodeA, nodeB] = edge.connectedNodes();\n const { parent: parentA } = nodeData(nodeA);\n const { parent: parentB } = nodeData(nodeB);\n const elasticity = parentA === parentB ? 1.5 * getConfigField(\"iconSize\") : 0.5 * getConfigField(\"iconSize\");\n return elasticity;\n },\n edgeElasticity(edge) {\n const [nodeA, nodeB] = edge.connectedNodes();\n const { parent: parentA } = nodeData(nodeA);\n const { parent: parentB } = nodeData(nodeB);\n const elasticity = parentA === parentB ? 0.45 : 1e-3;\n return elasticity;\n },\n alignmentConstraint,\n relativePlacementConstraint\n });\n layout.one(\"layoutstop\", () => {\n function getSegmentWeights(source, target, pointX, pointY) {\n let W, D;\n const { x: sX, y: sY } = source;\n const { x: tX, y: tY } = target;\n D = (pointY - sY + (sX - pointX) * (sY - tY) / (sX - tX)) / Math.sqrt(1 + Math.pow((sY - tY) / (sX - tX), 2));\n W = Math.sqrt(Math.pow(pointY - sY, 2) + Math.pow(pointX - sX, 2) - Math.pow(D, 2));\n const distAB = Math.sqrt(Math.pow(tX - sX, 2) + Math.pow(tY - sY, 2));\n W = W / distAB;\n let delta1 = (tX - sX) * (pointY - sY) - (tY - sY) * (pointX - sX);\n switch (true) {\n case delta1 >= 0:\n delta1 = 1;\n break;\n case delta1 < 0:\n delta1 = -1;\n break;\n }\n let delta2 = (tX - sX) * (pointX - sX) + (tY - sY) * (pointY - sY);\n switch (true) {\n case delta2 >= 0:\n delta2 = 1;\n break;\n case delta2 < 0:\n delta2 = -1;\n break;\n }\n D = Math.abs(D) * delta1;\n W = W * delta2;\n return {\n distances: D,\n weights: W\n };\n }\n __name(getSegmentWeights, \"getSegmentWeights\");\n cy.startBatch();\n for (const edge of Object.values(cy.edges())) {\n if (edge.data?.()) {\n const { x: sX, y: sY } = edge.source().position();\n const { x: tX, y: tY } = edge.target().position();\n if (sX !== tX && sY !== tY) {\n const sEP = edge.sourceEndpoint();\n const tEP = edge.targetEndpoint();\n const { sourceDir } = edgeData(edge);\n const [pointX, pointY] = isArchitectureDirectionY(sourceDir) ? [sEP.x, tEP.y] : [tEP.x, sEP.y];\n const { weights, distances } = getSegmentWeights(sEP, tEP, pointX, pointY);\n edge.style(\"segment-distances\", distances);\n edge.style(\"segment-weights\", weights);\n }\n }\n }\n cy.endBatch();\n layout.run();\n });\n layout.run();\n cy.ready((e) => {\n log.info(\"Ready\", e);\n resolve(cy);\n });\n });\n}\n__name(layoutArchitecture, \"layoutArchitecture\");\nvar draw = /* @__PURE__ */ __name(async (text, id, _version, diagObj) => {\n const db2 = diagObj.db;\n const services = db2.getServices();\n const junctions = db2.getJunctions();\n const groups = db2.getGroups();\n const edges = db2.getEdges();\n const ds = db2.getDataStructures();\n const svg = selectSvgElement(id);\n const edgesElem = svg.append(\"g\");\n edgesElem.attr(\"class\", \"architecture-edges\");\n const servicesElem = svg.append(\"g\");\n servicesElem.attr(\"class\", \"architecture-services\");\n const groupElem = svg.append(\"g\");\n groupElem.attr(\"class\", \"architecture-groups\");\n await drawServices(db2, servicesElem, services);\n drawJunctions(db2, servicesElem, junctions);\n const cy = await layoutArchitecture(services, junctions, groups, edges, ds);\n await drawEdges(edgesElem, cy);\n await drawGroups(groupElem, cy);\n positionNodes(db2, cy);\n setupGraphViewbox(void 0, svg, getConfigField(\"padding\"), getConfigField(\"useMaxWidth\"));\n}, \"draw\");\nvar renderer = { draw };\n\n// src/diagrams/architecture/architectureDiagram.ts\nvar diagram = {\n parser,\n db,\n renderer,\n styles: architectureStyles_default\n};\nexport {\n diagram\n};\n"], + "mappings": "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", + "names": ["require_layout_base", "__commonJSMin", "exports", "module", "root", "factory", "modules", "installedModules", "__webpack_require__", "moduleId", "value", "name", "getter", "object", "property", "LayoutConstants", "LGraphObject", "IGeometry", "IMath", "LEdge", "source", "target", "vEdge", "prop", "node", "graph", "otherEnd", "clipPointCoordinates", "vGraphObject", "Integer", "RectangleD", "RandomSeed", "PointD", "LNode", "gm", "loc", "size", "vNode", "width", "height", "upperLeft", "dimension", "cx", "cy", "x", "y", "dx", "dy", "to", "edgeList", "edge", "self", "other", "neighbors", "withNeighborsList", "childNode", "children", "nodes", "i", "noOfChildren", "randomCenterX", "randomCenterY", "minX", "maxX", "minY", "maxY", "childGraph", "trans", "left", "top", "leftTop", "vLeftTop", "FDLayoutConstants", "pt", "dim", "LGraphManager", "Point", "LinkedList", "LGraph", "parent", "obj2", "vGraph", "obj1", "sourceNode", "targetNode", "newNode", "newEdge", "obj", "edgesToBeRemoved", "s", "index", "sourceIndex", "targetIndex", "nodeTop", "nodeLeft", "margin", "lNode", "recursive", "right", "bottom", "nodeRight", "nodeBottom", "boundingRect", "queue", "visited", "currentNode", "neighborEdges", "currentNeighbor", "childrenOfNode", "neighborEdge", "childrenOfNeighbor", "noOfVisitedInThisGraph", "visitedNode", "layout", "ngraph", "nnode", "newGraph", "parentNode", "sourceGraph", "targetGraph", "lObj", "nodesToBeRemoved", "nodeList", "graphs", "firstNode", "secondNode", "ownerGraph", "sourceAncestorGraph", "targetAncestorGraph", "edges", "firstOwnerGraph", "secondOwnerGraph", "depth", "edgesToRemove", "rectA", "rectB", "overlapAmount", "separationBuffer", "directions", "slope", "moveByY", "moveByX", "result", "p1x", "p1y", "p2x", "p2y", "topLeftAx", "topLeftAy", "topRightAx", "bottomLeftAx", "bottomLeftAy", "bottomRightAx", "halfWidthA", "halfHeightA", "topLeftBx", "topLeftBy", "topRightBx", "bottomLeftBx", "bottomLeftBy", "bottomRightBx", "halfWidthB", "halfHeightB", "clipPointAFound", "clipPointBFound", "slopeA", "slopeB", "slopePrime", "cardinalDirectionA", "cardinalDirectionB", "tempPointAx", "tempPointAy", "tempPointBx", "tempPointBy", "line", "s1", "s2", "f1", "f2", "x1", "y1", "x2", "y2", "x3", "y3", "x4", "y4", "a1", "a2", "b1", "b2", "c1", "c2", "denom", "Cx", "Cy", "Nx", "Ny", "C_angle", "p1", "p2", "p3", "p4", "a", "b", "c", "d", "p", "q", "r", "det", "lambda", "gamma", "Ex", "Ey", "Lx", "Ly", "disc", "t1", "t2", "intersections", "_createClass", "defineProperties", "props", "descriptor", "Constructor", "protoProps", "staticProps", "_classCallCheck", "instance", "nodeFrom", "add", "prev", "next", "list", "_remove", "vals", "_this", "v", "val", "otherNode", "current", "_typeof", "UniqueIDGeneretor", "id", "arg", "type", "_toConsumableArray", "arr", "arr2", "Transform", "Emitter", "Layout", "isRemoteUse", "isLayoutSuccessfull", "allEdges", "newLeftTop", "flatForest", "isForest", "allNodes", "isFlat", "toBeVisited", "parents", "unProcessedNodes", "temp", "dummyNodes", "dummyNode", "dummyEdge", "k", "lEdge", "path", "ebp", "sliderValue", "defaultValue", "minDiv", "maxMul", "minValue", "maxValue", "removedNodes", "remainingDegrees", "foundCenter", "centerNode", "degree", "tempList", "tempList2", "neighbours", "neighbour", "otherDegree", "newDegree", "wox", "woy", "wex", "wey", "dox", "doy", "dex", "dey", "xDevice", "worldExtX", "yDevice", "worldExtY", "xWorld", "deviceExtX", "yWorld", "deviceExtY", "inPoint", "outPoint", "FDLayout", "originalIdealLength", "lcaDepth", "sizeOfSourceInLca", "sizeOfTargetInLca", "lEdges", "gridUpdateAllowed", "forceToNodeSurroundingUpdate", "j", "nodeA", "nodeB", "lNodes", "processedNodeSet", "idealLength", "length", "springForce", "springForceX", "springForceY", "clipPoints", "distanceX", "distanceY", "distanceSquared", "distance", "repulsionForce", "repulsionForceX", "repulsionForceY", "childrenConstant", "ownerCenterX", "ownerCenterY", "absDistanceX", "absDistanceY", "estimatedSize", "converged", "oscilating", "sizeX", "sizeY", "grid", "startX", "finishX", "startY", "finishY", "surrounding", "FDLayoutEdge", "FDLayoutNode", "_startX", "_finishX", "_startY", "_finishY", "DimensionD", "HashMap", "key", "theId", "HashSet", "keys", "Matrix", "array1", "array2", "array", "constant", "product", "magnitude", "sum", "_i", "C", "INV", "temp1", "temp2", "_i2", "_sum", "_j", "_i3", "_sum2", "_j2", "Quicksort", "A", "compareFunction", "SVD", "nu", "dims", "allocate", "e", "work", "wantu", "wantv", "nct", "nrt", "lhs", "rhs", "t", "_i4", "_i5", "_i6", "_i7", "_i8", "_t", "_i9", "_i10", "_j3", "_i11", "_k", "_j4", "_t2", "_i12", "_i13", "_i14", "_i15", "_i16", "_k2", "_j5", "_t3", "_i17", "_i18", "_i19", "pp", "iter", "eps", "tiny", "_k3", "kase", "ks", "_t4", "f", "_j6", "_t5", "cs", "sn", "_i20", "_f", "_j7", "_t6", "_cs", "_sn", "_i21", "scale", "sp", "spm1", "epm1", "sk", "ek", "shift", "_f2", "g", "_j8", "_t7", "_cs2", "_sn2", "_i22", "_i23", "_i24", "_t8", "_i25", "_i26", "NeedlemanWunsch", "sequence1", "sequence2", "match_score", "mismatch_penalty", "gap_penalty", "diag", "up", "maxOf", "indices", "inProcessAlignments", "indexes", "layoutBase", "event", "callback", "l", "data", "require_cose_base", "__commonJSMin", "exports", "module", "root", "factory", "__WEBPACK_EXTERNAL_MODULE__551__", "__webpack_modules__", "__unused_webpack_exports", "__webpack_require__", "coseBase", "FDLayoutConstants", "CoSEConstants", "prop", "FDLayoutEdge", "CoSEEdge", "source", "target", "vEdge", "LGraph", "CoSEGraph", "parent", "graphMgr", "vGraph", "LGraphManager", "CoSEGraphManager", "layout", "FDLayout", "CoSENode", "ConstraintHandler", "LayoutConstants", "Point", "PointD", "DimensionD", "Layout", "Integer", "IGeometry", "Transform", "LinkedList", "CoSELayout", "gm", "vNode", "createBendsAsNeeded", "allNodes", "intersection", "x", "forest", "gridUpdateAllowed", "forceToNodeSurroundingUpdate", "pData", "i", "rect", "id", "layoutEnded", "lNodes", "node", "self", "calculateCompoundWeight", "compoundNode", "nodes", "fixedNodeWeight", "nodeData", "nodeToDummyForVerticalAlignment", "nodeToDummyForHorizontalAlignment", "nodeId", "verticalAlignment", "horizontalAlignment", "array", "j", "constraint", "nodeIdLeft", "nodeIdRight", "nodeIdTop", "nodeIdBottom", "subGraphOnHorizontal", "subGraphOnVertical", "left", "right", "top", "bottom", "constructComponents", "graph", "fixedNodes", "components", "isFixed", "queue", "visited", "count", "value", "key", "currentNode", "neighbors", "neighbor", "resultOnHorizontal", "resultOnVertical", "fixedNode", "allVerticalAlignments", "totalDisplacementX", "averageDisplacementX", "allHorizontalAlignments", "totalDisplacementY", "averageDisplacementY", "displacement", "diff", "component", "sum", "actualNodes", "averageDisplacement", "nodeList", "graphs", "size", "edges", "edge", "edgeList", "k", "multiEdge", "currentStartingPoint", "numberOfColumns", "height", "currentY", "currentX", "point", "tree", "centerNode", "startingPoint", "radialSep", "bounds", "transform", "bottomRight", "parentOfNode", "startAngle", "endAngle", "distance", "radialSeparation", "halfInterval", "nodeAngle", "teta", "cos_teta", "x_", "y_", "neighborEdges", "childCount", "branchCount", "incEdgesCount", "startIndex", "temp", "index", "stepAngle", "currentNeighbor", "childStartAngle", "childEndAngle", "maxDiagonal", "diagonal", "tempMemberGroups", "zeroDegree", "p_id", "dummyCompoundId", "dummyCompound", "dummyParentGraph", "parentGraph", "childGraphMap", "idToNode", "tiledZeroDegreePack", "width", "lCompoundNode", "horizontalMargin", "verticalMargin", "labelMarginLeft", "labelMarginTop", "tiledPack", "childGraph", "children", "theChild", "degree", "child", "organization", "y", "compoundHorizontalMargin", "compoundVerticalMargin", "compoundLabelMarginLeft", "compoundLabelMarginTop", "row", "maxHeight", "lnode", "minWidth", "horizontalOrg", "verticalOrg", "horizontalRatio", "verticalRatio", "bestOrg", "ratio", "members", "favorHorizontalDim", "verticalPadding", "horizontalPadding", "membersSize", "totalWidth", "totalHeight", "maxWidth", "averageWidth", "averageHeight", "delta", "horizontalCountDouble", "horizontalCount", "idealWidth", "tilingCompareBy", "getNodeArea", "n", "areaCompareFcn", "n1", "n2", "cmpBy", "sumCenterX", "sumCenterY", "lNode", "rowIndex", "minCompoundSize", "secondDimension", "w", "h", "extraHeight", "r", "min", "max", "extraWidth", "lastRowIndex", "lastRowWidth", "sri", "hDiff", "add_to_row_ratio", "add_new_row_ratio", "longest", "last", "prevTotal", "finalTotal", "prunedNodesAll", "containsLeaf", "prunedNodesInStepTemp", "otherEnd", "relativePosition", "prunedNodesInStep", "lengthOfPrunedNodesInStep", "gridForPrunedNode", "nodeToConnect", "prunedNode", "startGridX", "finishGridX", "startGridY", "finishGridY", "upNodeCount", "downNodeCount", "rightNodeCount", "leftNodeCount", "controlRegions", "minCount", "minIndex", "random", "FDLayoutNode", "IMath", "loc", "dX", "dY", "pred1", "next", "processed", "_toConsumableArray", "arr", "arr2", "Matrix", "SVD", "constraints", "idToNodeMap", "nodeIndexes", "xCoords", "yCoords", "calculatePositionDiff", "pos1", "pos2", "calculateAvgPosition", "nodeIdSet", "xPosSum", "yPosSum", "findAppropriatePositionForRelativePlacement", "direction", "dummyPositions", "componentSources", "setUnion", "setA", "setB", "union", "_iteratorNormalCompletion", "_didIteratorError", "_iteratorError", "_iterator", "_step", "elem", "err", "inDegrees", "adjacent", "positionMap", "pastMap", "fixedIds", "position", "fixedId", "_position", "_loop", "fixedPosition", "sinkNodes", "_components", "isFixedComponent", "_iteratorNormalCompletion2", "_didIteratorError2", "_iteratorError2", "_iterator2", "_step2", "isExist", "existAt", "ele", "minBefore", "minAfter", "maxBefore", "maxAfter", "_iteratorNormalCompletion3", "_didIteratorError3", "_iteratorError3", "_iterator3", "_step3", "posBefore", "posAfter", "_iteratorNormalCompletion4", "_didIteratorError4", "_iteratorError4", "_iterator4", "_step4", "_nodeId", "applyReflectionForRelativePlacement", "relativePlacementConstraints", "reflectOnY", "notReflectOnY", "reflectOnX", "notReflectOnX", "_i", "_i2", "_i3", "findComponents", "_currentNode", "dagToUndirected", "dag", "undirected", "dagToReversed", "reversed", "targetMatrix", "sourceMatrix", "standardTransformation", "reflectionType", "dagUndirected", "verticalAlign", "_loop2", "_i4", "alignmentSet", "xPos", "horizontalAlign", "_loop3", "_i5", "yPos", "largestComponentSize", "largestComponentIndex", "_i6", "constraintsInlargestComponent", "positionMapHorizontal", "positionMapVertical", "transformationMatrix", "targetMatrixTranspose", "sourceMatrixTranspose", "_i7", "tempMatrix", "SVDResult", "_i8", "temp1", "temp2", "temp3", "translationAmount", "posInTheory", "posDesired", "posDiff", "xAlign", "_loop4", "_i9", "yAlign", "_loop5", "_i10", "dummyToNodeForVerticalAlignment", "dummyToNodeForHorizontalAlignment", "dummyPositionsForVerticalAlignment", "dummyPositionsForHorizontalAlignment", "fixedNodesOnHorizontal", "fixedNodesOnVertical", "_loop6", "_i11", "_loop7", "_i12", "dagOnHorizontal", "dagOnVertical", "_loop8", "sourceId", "targetNode", "_iteratorNormalCompletion5", "_didIteratorError5", "_iteratorError5", "_iterator5", "_step5", "undirectedOnHorizontal", "undirectedOnVertical", "componentsOnHorizontal", "componentsOnVertical", "reversedDagOnHorizontal", "reversedDagOnVertical", "componentSourcesOnHorizontal", "componentSourcesOnVertical", "_loop9", "_iteratorNormalCompletion6", "_didIteratorError6", "_iteratorError6", "_iterator6", "_step6", "_loop10", "_iteratorNormalCompletion7", "_didIteratorError7", "_iteratorError7", "_iterator7", "_step7", "_i13", "_node", "__webpack_module_cache__", "moduleId", "cachedModule", "__webpack_exports__", "require_cytoscape_fcose", "__commonJSMin", "exports", "module", "root", "factory", "__WEBPACK_EXTERNAL_MODULE__140__", "__webpack_modules__", "tgt", "_len", "srcs", "_key", "src", "k", "__unused_webpack_exports", "__webpack_require__", "_slicedToArray", "sliceIterator", "arr", "i", "_arr", "_n", "_d", "_e", "_i", "_s", "err", "LinkedList", "auxiliary", "nodes", "nodesMap", "roots", "ele", "parent", "cy", "eles", "topMostNodes", "dummyNodes", "queue", "visited", "visitedTopMostNodes", "currentNeighbor", "minDegreeNode", "minDegree", "isConnected", "count", "nodesConnectedToDummy", "components", "_loop", "cmpt", "currentNode", "childrenOfCurrentNode", "node", "_loop2", "neighborNodes", "neighborNode", "childrenOfNeighbor", "e", "temp", "originalCenter", "componentResult", "options", "minXCoord", "maxXCoord", "minYCoord", "maxYCoord", "_iteratorNormalCompletion", "_didIteratorError", "_iteratorError", "_iterator", "_step", "_ref", "_ref2", "key", "value", "cyNode", "nodeBB", "leftX", "rightX", "topY", "bottomY", "diffOnX", "diffOnY", "y", "item", "_diffOnX", "_diffOnY", "parentNode", "xCoords", "yCoords", "nodeIndexes", "left", "right", "top", "bottom", "nodeLeft", "nodeRight", "nodeTop", "nodeBottom", "s", "boundingBox", "parentsWithoutChildren", "check", "child", "aux", "CoSELayout", "CoSENode", "PointD", "DimensionD", "LayoutConstants", "FDLayoutConstants", "CoSEConstants", "coseLayout", "spectralResult", "edges", "idToLNode", "isFn", "fn", "optFn", "opt", "processChildrenList", "children", "layout", "size", "theChild", "children_of_children", "theNode", "dimensions", "parentInfo", "theNewGraph", "processEdges", "gm", "idealLengthTotal", "edgeCount", "edge", "sourceNode", "targetNode", "e1", "processConstraints", "_createClass", "defineProperties", "target", "props", "descriptor", "Constructor", "protoProps", "staticProps", "_classCallCheck", "instance", "assign", "_require", "spectralLayout", "_require2", "defaults", "Layout", "coseResult", "componentCenters", "constraintExist", "layUtil", "packingEnabled", "component", "toBeTiledNodes", "_xCoords", "_yCoords", "tempSpectralResult", "indexesToBeDeleted", "index", "_boundingBox", "componentsEvaluated", "subgraphs", "hiddenEles", "subgraph", "nodeIndex", "source", "sourceNodeIndex", "targetNodeIndex", "sourceCenter", "targetCenter", "_parentInfo", "shiftResult", "result", "newXCoords", "x", "newYCoords", "_count", "nodeRectangle", "getPositions", "pos", "theId", "_pos", "_hiddenEles", "Matrix", "SVD", "parentNodes", "parentChildMap", "allNodesNeighborhood", "samplesColumn", "minDistancesColumn", "C", "PHI", "INV", "firstSample", "nodeSize", "infinity", "small", "piTol", "samplingType", "nodeSeparation", "sampleSize", "randomSampleCR", "sample", "flag", "BFS", "pivot", "samplingMethod", "path", "front", "back", "current", "distance", "max_dist", "max_ind", "neighbors", "_i2", "_i3", "allBFS", "_i4", "_i5", "_i6", "j", "_i7", "_i8", "_j", "SVDResult", "a_q", "a_u", "a_v", "max_s", "a_Sig", "powerIteration", "theta1", "theta2", "Y1", "Y2", "V1", "V2", "previous", "_i9", "_i10", "_i11", "_i12", "_i13", "min", "ele2", "eleIndex", "disconnectedId", "id", "_iteratorNormalCompletion2", "_didIteratorError2", "_iteratorError2", "_iterator2", "_step2", "_i14", "_i15", "iterator", "firstNode", "firstNodePos", "firstNodeWidth", "secondNode", "secondNodeWidth", "impl", "register", "cytoscape", "__webpack_module_cache__", "moduleId", "cachedModule", "__webpack_exports__", "import_cytoscape_fcose", "ArchitectureDirectionName", "ArchitectureDirectionArrow", "__name", "scale", "ArchitectureDirectionArrowShift", "orig", "arrowSize", "_arrowSize", "getOppositeArchitectureDirection", "x", "isArchitectureDirectionX", "isArchitectureDirection", "temp", "isArchitectureDirectionY", "isArchitectureDirectionXY", "a", "b", "aX_bY", "aY_bX", "isArchitecturePairXY", "pair", "lhs", "rhs", "isValidArchitectureDirectionPair", "getArchitectureDirectionPair", "sourceDir", "targetDir", "shiftPositionByArchitectureDirectionPair", "y", "getArchitectureDirectionXYFactors", "isArchitectureService", "isArchitectureJunction", "edgeData", "edge", "nodeData", "node", "DEFAULT_ARCHITECTURE_CONFIG", "defaultConfig_default", "state", "ImperativeState", "clear2", "clear", "addService", "id", "icon", "parent", "title", "iconText", "getServices", "addJunction", "getJunctions", "getNodes", "getNode", "addGroup", "getGroups", "addEdge", "lhsId", "rhsId", "lhsDir", "rhsDir", "lhsInto", "rhsInto", "lhsGroup", "rhsGroup", "lhsGroupId", "rhsGroupId", "getEdges", "getDataStructures", "adjList", "prevOuter", "service", "prevInner", "firstId", "visited", "notVisited", "prev", "BFS", "startingId", "spatialMap", "queue", "adj", "posX", "posY", "dir", "spatialMaps", "setElementForId", "element", "getElementById", "db", "setDiagramTitle", "getDiagramTitle", "setAccTitle", "getAccTitle", "setAccDescription", "getAccDescription", "getConfigField", "field", "arch", "getConfig2", "populateDb", "ast", "db2", "populateCommonDb", "parser", "input", "parse", "log", "getStyles", "options", "architectureStyles_default", "wrapIcon", "architectureIcons", "unknownIcon", "drawEdges", "edgesEl", "cy", "padding", "iconSize", "halfIconSize", "halfArrowSize", "source", "sourceArrow", "sourceGroup", "target", "targetArrow", "targetGroup", "label", "startX", "startY", "midX", "midY", "endX", "endY", "groupEdgeShift", "g", "xShift", "yShift", "axis", "width", "textElem", "createText", "bboxOrig", "bboxNew", "drawGroups", "groupsEl", "groupIconSize", "fontSize", "data", "h", "w", "x1", "y1", "groupLabelContainer", "shiftedX1", "shiftedY1", "bkgElem", "getIconSVG", "drawServices", "elem", "services", "serviceElem", "divElem", "height", "drawJunctions", "junctions", "junction", "junctionElem", "registerIconPacks", "cytoscape", "fcose", "addServices", "addJunctions", "positionNodes", "addGroups", "groups", "group", "addEdges", "edges", "parsedEdge", "edgeType", "getAlignments", "alignments", "horizontalAlignments", "verticalAlignments", "arr", "horizontal", "vertical", "prevHoriz", "prevVert", "horiz", "vert", "getRelativeConstraints", "relativeConstraints", "posToStr", "pos", "strToPos", "p", "invSpatialMap", "directions", "curr", "currId", "currPos", "shift", "newPos", "newId", "layoutArchitecture", "resolve", "renderEl", "select_default", "alignmentConstraint", "relativePlacementConstraint", "layout", "nodeA", "nodeB", "parentA", "parentB", "getSegmentWeights", "pointX", "pointY", "W", "D", "sX", "sY", "tX", "tY", "distAB", "delta1", "delta2", "sEP", "tEP", "weights", "distances", "e", "draw", "text", "_version", "diagObj", "ds", "svg", "selectSvgElement", "edgesElem", "servicesElem", "groupElem", "setupGraphViewbox", "renderer", "diagram"] +} diff --git a/docs/_site/public/blockDiagram-ZHA2E4KO-IZKTV5IP.min.js b/docs/_site/public/blockDiagram-ZHA2E4KO-IZKTV5IP.min.js new file mode 100644 index 0000000..5ae91b0 --- /dev/null +++ b/docs/_site/public/blockDiagram-ZHA2E4KO-IZKTV5IP.min.js @@ -0,0 +1,122 @@ +import{a as Ut}from"./chunk-3Z74ZUXG.min.js";import{e as Xt}from"./chunk-U4DUTLYF.min.js";import"./chunk-IQQ46AC6.min.js";import{a as Kt}from"./chunk-CLIYZZ5Y.min.js";import{a as Ft}from"./chunk-V55NTXQN.min.js";import{c as Ht,d as mt}from"./chunk-AUO2PXKS.min.js";import{d as Yt,m as tt,o as nt}from"./chunk-PYPO7LRM.min.js";import"./chunk-CM5D5KZN.min.js";import{D as $,Fa as Wt,H as yt,I as X,Ja as Pt,N as zt,O as At,S as Mt,Z as I,b as Ot,c as Rt,h as d,ia as N,j as k}from"./chunk-U3SD26FK.min.js";import"./chunk-CXRPJJJE.min.js";import"./chunk-OSRY5VT3.min.js";var wt=function(){var e=d(function(D,x,g,f){for(g=g||{},f=D.length;f--;g[D[f]]=x);return g},"o"),t=[1,7],s=[1,13],n=[1,14],i=[1,15],r=[1,19],a=[1,16],l=[1,17],c=[1,18],u=[8,30],h=[8,21,28,29,30,31,32,40,44,47],b=[1,23],m=[1,24],y=[8,15,16,21,28,29,30,31,32,40,44,47],L=[8,15,16,21,27,28,29,30,31,32,40,44,47],E=[1,49],S={trace:d(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,block:31,NODE_ID:32,nodeShapeNLabel:33,dirList: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:49,$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:"block",32:"NODE_ID",35:"DIR",36:"NODE_DSTART",37:"NODE_DEND",38:"BLOCK_ARROW_START",39:"BLOCK_ARROW_END",40:"classDef",41:"CLASSDEF_ID",42:"CLASSDEF_STYLEOPTS",43:"DEFAULT",44:"class",45:"CLASSENTITY_IDS",46:"STYLECLASS",47:"style",48:"STYLE_ENTITY_IDS",49:"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],[34,1],[34,2],[33,3],[33,4],[23,3],[23,3],[24,3],[25,3]],performAction:d(function(x,g,f,w,v,o,W){var p=o.length-1;switch(v){case 4:w.getLogger().debug("Rule: separator (NL) ");break;case 5:w.getLogger().debug("Rule: separator (Space) ");break;case 6:w.getLogger().debug("Rule: separator (EOF) ");break;case 7:w.getLogger().debug("Rule: hierarchy: ",o[p-1]),w.setHierarchy(o[p-1]);break;case 8:w.getLogger().debug("Stop NL ");break;case 9:w.getLogger().debug("Stop EOF ");break;case 10:w.getLogger().debug("Stop NL2 ");break;case 11:w.getLogger().debug("Stop EOF2 ");break;case 12:w.getLogger().debug("Rule: statement: ",o[p]),typeof o[p].length=="number"?this.$=o[p]:this.$=[o[p]];break;case 13:w.getLogger().debug("Rule: statement #2: ",o[p-1]),this.$=[o[p-1]].concat(o[p]);break;case 14:w.getLogger().debug("Rule: link: ",o[p],x),this.$={edgeTypeStr:o[p],label:""};break;case 15:w.getLogger().debug("Rule: LABEL link: ",o[p-3],o[p-1],o[p]),this.$={edgeTypeStr:o[p],label:o[p-1]};break;case 18:let R=parseInt(o[p]),G=w.generateId();this.$={id:G,type:"space",label:"",width:R,children:[]};break;case 23:w.getLogger().debug("Rule: (nodeStatement link node) ",o[p-2],o[p-1],o[p]," typestr: ",o[p-1].edgeTypeStr);let V=w.edgeStrToEdgeData(o[p-1].edgeTypeStr);this.$=[{id:o[p-2].id,label:o[p-2].label,type:o[p-2].type,directions:o[p-2].directions},{id:o[p-2].id+"-"+o[p].id,start:o[p-2].id,end:o[p].id,label:o[p-1].label,type:"edge",directions:o[p].directions,arrowTypeEnd:V,arrowTypeStart:"arrow_open"},{id:o[p].id,label:o[p].label,type:w.typeStr2Type(o[p].typeStr),directions:o[p].directions}];break;case 24:w.getLogger().debug("Rule: nodeStatement (abc88 node size) ",o[p-1],o[p]),this.$={id:o[p-1].id,label:o[p-1].label,type:w.typeStr2Type(o[p-1].typeStr),directions:o[p-1].directions,widthInColumns:parseInt(o[p],10)};break;case 25:w.getLogger().debug("Rule: nodeStatement (node) ",o[p]),this.$={id:o[p].id,label:o[p].label,type:w.typeStr2Type(o[p].typeStr),directions:o[p].directions,widthInColumns:1};break;case 26:w.getLogger().debug("APA123",this?this:"na"),w.getLogger().debug("COLUMNS: ",o[p]),this.$={type:"column-setting",columns:o[p]==="auto"?-1:parseInt(o[p])};break;case 27:w.getLogger().debug("Rule: id-block statement : ",o[p-2],o[p-1]);let Bt=w.generateId();this.$={...o[p-2],type:"composite",children:o[p-1]};break;case 28:w.getLogger().debug("Rule: blockStatement : ",o[p-2],o[p-1],o[p]);let at=w.generateId();this.$={id:at,type:"composite",label:"",children:o[p-1]};break;case 29:w.getLogger().debug("Rule: node (NODE_ID separator): ",o[p]),this.$={id:o[p]};break;case 30:w.getLogger().debug("Rule: node (NODE_ID nodeShapeNLabel separator): ",o[p-1],o[p]),this.$={id:o[p-1],label:o[p].label,typeStr:o[p].typeStr,directions:o[p].directions};break;case 31:w.getLogger().debug("Rule: dirList: ",o[p]),this.$=[o[p]];break;case 32:w.getLogger().debug("Rule: dirList: ",o[p-1],o[p]),this.$=[o[p-1]].concat(o[p]);break;case 33:w.getLogger().debug("Rule: nodeShapeNLabel: ",o[p-2],o[p-1],o[p]),this.$={typeStr:o[p-2]+o[p],label:o[p-1]};break;case 34:w.getLogger().debug("Rule: BLOCK_ARROW nodeShapeNLabel: ",o[p-3],o[p-2]," #3:",o[p-1],o[p]),this.$={typeStr:o[p-3]+o[p],label:o[p-2],directions:o[p-1]};break;case 35:case 36:this.$={type:"classDef",id:o[p-1].trim(),css:o[p].trim()};break;case 37:this.$={type:"applyClass",id:o[p-1].trim(),styleClass:o[p].trim()};break;case 38:this.$={type:"applyStyles",id:o[p-1].trim(),stylesStr:o[p].trim()};break}},"anonymous"),table:[{9:1,10:[1,2]},{1:[3]},{11:3,13:4,19:5,20:6,21:t,22:8,23:9,24:10,25:11,26:12,28:s,29:n,31:i,32:r,40:a,44:l,47:c},{8:[1,20]},e(u,[2,12],{13:4,19:5,20:6,22:8,23:9,24:10,25:11,26:12,11:21,21:t,28:s,29:n,31:i,32:r,40:a,44:l,47:c}),e(h,[2,16],{14:22,15:b,16:m}),e(h,[2,17]),e(h,[2,18]),e(h,[2,19]),e(h,[2,20]),e(h,[2,21]),e(h,[2,22]),e(y,[2,25],{27:[1,25]}),e(h,[2,26]),{19:26,26:12,32:r},{11:27,13:4,19:5,20:6,21:t,22:8,23:9,24:10,25:11,26:12,28:s,29:n,31:i,32:r,40:a,44:l,47:c},{41:[1,28],43:[1,29]},{45:[1,30]},{48:[1,31]},e(L,[2,29],{33:32,36:[1,33],38:[1,34]}),{1:[2,7]},e(u,[2,13]),{26:35,32:r},{32:[2,14]},{17:[1,36]},e(y,[2,24]),{11:37,13:4,14:22,15:b,16:m,19:5,20:6,21:t,22:8,23:9,24:10,25:11,26:12,28:s,29:n,31:i,32:r,40:a,44:l,47:c},{30:[1,38]},{42:[1,39]},{42:[1,40]},{46:[1,41]},{49:[1,42]},e(L,[2,30]),{18:[1,43]},{18:[1,44]},e(y,[2,23]),{18:[1,45]},{30:[1,46]},e(h,[2,28]),e(h,[2,35]),e(h,[2,36]),e(h,[2,37]),e(h,[2,38]),{37:[1,47]},{34:48,35:E},{15:[1,50]},e(h,[2,27]),e(L,[2,33]),{39:[1,51]},{34:52,35:E,39:[2,31]},{32:[2,15]},e(L,[2,34]),{39:[2,32]}],defaultActions:{20:[2,7],23:[2,14],50:[2,15],52:[2,32]},parseError:d(function(x,g){if(g.recoverable)this.trace(x);else{var f=new Error(x);throw f.hash=g,f}},"parseError"),parse:d(function(x){var g=this,f=[0],w=[],v=[null],o=[],W=this.table,p="",R=0,G=0,V=0,Bt=2,at=1,ke=o.slice.call(arguments,1),z=Object.create(this.lexer),q={yy:{}};for(var ut in this.yy)Object.prototype.hasOwnProperty.call(this.yy,ut)&&(q.yy[ut]=this.yy[ut]);z.setInput(x,q.yy),q.yy.lexer=z,q.yy.parser=this,typeof z.yylloc>"u"&&(z.yylloc={});var pt=z.yylloc;o.push(pt);var Le=z.options&&z.options.ranges;typeof q.yy.parseError=="function"?this.parseError=q.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Se(P){f.length=f.length-2*P,v.length=v.length-P,o.length=o.length-P}d(Se,"popStack");function Ct(){var P;return P=w.pop()||z.lex()||at,typeof P!="number"&&(P instanceof Array&&(w=P,P=w.pop()),P=g.symbols_[P]||P),P}d(Ct,"lex");for(var F,ft,J,H,Zr,bt,Q={},st,Z,It,it;;){if(J=f[f.length-1],this.defaultActions[J]?H=this.defaultActions[J]:((F===null||typeof F>"u")&&(F=Ct()),H=W[J]&&W[J][F]),typeof H>"u"||!H.length||!H[0]){var xt="";it=[];for(st in W[J])this.terminals_[st]&&st>Bt&&it.push("'"+this.terminals_[st]+"'");z.showPosition?xt="Parse error on line "+(R+1)+`: +`+z.showPosition()+` +Expecting `+it.join(", ")+", got '"+(this.terminals_[F]||F)+"'":xt="Parse error on line "+(R+1)+": Unexpected "+(F==at?"end of input":"'"+(this.terminals_[F]||F)+"'"),this.parseError(xt,{text:z.match,token:this.terminals_[F]||F,line:z.yylineno,loc:pt,expected:it})}if(H[0]instanceof Array&&H.length>1)throw new Error("Parse Error: multiple actions possible at state: "+J+", token: "+F);switch(H[0]){case 1:f.push(F),v.push(z.yytext),o.push(z.yylloc),f.push(H[1]),F=null,ft?(F=ft,ft=null):(G=z.yyleng,p=z.yytext,R=z.yylineno,pt=z.yylloc,V>0&&V--);break;case 2:if(Z=this.productions_[H[1]][1],Q.$=v[v.length-Z],Q._$={first_line:o[o.length-(Z||1)].first_line,last_line:o[o.length-1].last_line,first_column:o[o.length-(Z||1)].first_column,last_column:o[o.length-1].last_column},Le&&(Q._$.range=[o[o.length-(Z||1)].range[0],o[o.length-1].range[1]]),bt=this.performAction.apply(Q,[p,G,R,q.yy,H[1],v,o].concat(ke)),typeof bt<"u")return bt;Z&&(f=f.slice(0,-1*Z*2),v=v.slice(0,-1*Z),o=o.slice(0,-1*Z)),f.push(this.productions_[H[1]][0]),v.push(Q.$),o.push(Q._$),It=W[f[f.length-2]][f[f.length-1]],f.push(It);break;case 3:return!0}}return!0},"parse")},C=function(){var D={EOF:1,parseError:d(function(g,f){if(this.yy.parser)this.yy.parser.parseError(g,f);else throw new Error(g)},"parseError"),setInput:d(function(x,g){return this.yy=g||this.yy||{},this._input=x,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:d(function(){var x=this._input[0];this.yytext+=x,this.yyleng++,this.offset++,this.match+=x,this.matched+=x;var g=x.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),x},"input"),unput:d(function(x){var g=x.length,f=x.split(/(?:\r\n?|\n)/g);this._input=x+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-g),this.offset-=g;var w=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),f.length-1&&(this.yylineno-=f.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:f?(f.length===w.length?this.yylloc.first_column:0)+w[w.length-f.length].length-f[0].length:this.yylloc.first_column-g},this.options.ranges&&(this.yylloc.range=[v[0],v[0]+this.yyleng-g]),this.yyleng=this.yytext.length,this},"unput"),more:d(function(){return this._more=!0,this},"more"),reject:d(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:d(function(x){this.unput(this.match.slice(x))},"less"),pastInput:d(function(){var x=this.matched.substr(0,this.matched.length-this.match.length);return(x.length>20?"...":"")+x.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:d(function(){var x=this.match;return x.length<20&&(x+=this._input.substr(0,20-x.length)),(x.substr(0,20)+(x.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:d(function(){var x=this.pastInput(),g=new Array(x.length+1).join("-");return x+this.upcomingInput()+` +`+g+"^"},"showPosition"),test_match:d(function(x,g){var f,w,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))),w=x[0].match(/(?:\r\n?|\n).*/g),w&&(this.yylineno+=w.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:w?w[w.length-1].length-w[w.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+x[0].length},this.yytext+=x[0],this.match+=x[0],this.matches=x,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(x[0].length),this.matched+=x[0],f=this.performAction.call(this,this.yy,this,g,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),f)return f;if(this._backtrack){for(var o in v)this[o]=v[o];return!1}return!1},"test_match"),next:d(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var x,g,f,w;this._more||(this.yytext="",this.match="");for(var v=this._currentRules(),o=0;og[0].length)){if(g=f,w=o,this.options.backtrack_lexer){if(x=this.test_match(f,v[o]),x!==!1)return x;if(this._backtrack){g=!1;continue}else return!1}else if(!this.options.flex)break}return g?(x=this.test_match(g,v[w]),x!==!1?x:!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:d(function(){var g=this.next();return g||this.lex()},"lex"),begin:d(function(g){this.conditionStack.push(g)},"begin"),popState:d(function(){var g=this.conditionStack.length-1;return g>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:d(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:d(function(g){return g=this.conditionStack.length-1-Math.abs(g||0),g>=0?this.conditionStack[g]:"INITIAL"},"topState"),pushState:d(function(g){this.begin(g)},"pushState"),stateStackSize:d(function(){return this.conditionStack.length},"stateStackSize"),options:{},performAction:d(function(g,f,w,v){var o=v;switch(w){case 0:return 10;case 1:return g.getLogger().debug("Found space-block"),31;break;case 2:return g.getLogger().debug("Found nl-block"),31;break;case 3:return g.getLogger().debug("Found space-block"),29;break;case 4:g.getLogger().debug(".",f.yytext);break;case 5:g.getLogger().debug("_",f.yytext);break;case 6:return 5;case 7:return f.yytext=-1,28;break;case 8:return f.yytext=f.yytext.replace(/columns\s+/,""),g.getLogger().debug("COLUMNS (LEX)",f.yytext),28;break;case 9:this.pushState("md_string");break;case 10:return"MD_STR";case 11:this.popState();break;case 12:this.pushState("string");break;case 13:g.getLogger().debug("LEX: POPPING STR:",f.yytext),this.popState();break;case 14:return g.getLogger().debug("LEX: STR end:",f.yytext),"STR";break;case 15:return f.yytext=f.yytext.replace(/space\:/,""),g.getLogger().debug("SPACE NUM (LEX)",f.yytext),21;break;case 16:return f.yytext="1",g.getLogger().debug("COLUMNS (LEX)",f.yytext),21;break;case 17:return 43;case 18:return"LINKSTYLE";case 19:return"INTERPOLATE";case 20:return this.pushState("CLASSDEF"),40;break;case 21:return this.popState(),this.pushState("CLASSDEFID"),"DEFAULT_CLASSDEF_ID";break;case 22:return this.popState(),this.pushState("CLASSDEFID"),41;break;case 23:return this.popState(),42;break;case 24:return this.pushState("CLASS"),44;break;case 25:return this.popState(),this.pushState("CLASS_STYLE"),45;break;case 26:return this.popState(),46;break;case 27:return this.pushState("STYLE_STMNT"),47;break;case 28:return this.popState(),this.pushState("STYLE_DEFINITION"),48;break;case 29:return this.popState(),49;break;case 30:return this.pushState("acc_title"),"acc_title";break;case 31:return this.popState(),"acc_title_value";break;case 32:return this.pushState("acc_descr"),"acc_descr";break;case 33:return this.popState(),"acc_descr_value";break;case 34:this.pushState("acc_descr_multiline");break;case 35:this.popState();break;case 36:return"acc_descr_multiline_value";case 37:return 30;case 38:return this.popState(),g.getLogger().debug("Lex: (("),"NODE_DEND";break;case 39:return this.popState(),g.getLogger().debug("Lex: (("),"NODE_DEND";break;case 40:return this.popState(),g.getLogger().debug("Lex: ))"),"NODE_DEND";break;case 41:return this.popState(),g.getLogger().debug("Lex: (("),"NODE_DEND";break;case 42:return this.popState(),g.getLogger().debug("Lex: (("),"NODE_DEND";break;case 43:return this.popState(),g.getLogger().debug("Lex: (-"),"NODE_DEND";break;case 44:return this.popState(),g.getLogger().debug("Lex: -)"),"NODE_DEND";break;case 45:return this.popState(),g.getLogger().debug("Lex: (("),"NODE_DEND";break;case 46:return this.popState(),g.getLogger().debug("Lex: ]]"),"NODE_DEND";break;case 47:return this.popState(),g.getLogger().debug("Lex: ("),"NODE_DEND";break;case 48:return this.popState(),g.getLogger().debug("Lex: ])"),"NODE_DEND";break;case 49:return this.popState(),g.getLogger().debug("Lex: /]"),"NODE_DEND";break;case 50:return this.popState(),g.getLogger().debug("Lex: /]"),"NODE_DEND";break;case 51:return this.popState(),g.getLogger().debug("Lex: )]"),"NODE_DEND";break;case 52:return this.popState(),g.getLogger().debug("Lex: )"),"NODE_DEND";break;case 53:return this.popState(),g.getLogger().debug("Lex: ]>"),"NODE_DEND";break;case 54:return this.popState(),g.getLogger().debug("Lex: ]"),"NODE_DEND";break;case 55:return g.getLogger().debug("Lexa: -)"),this.pushState("NODE"),36;break;case 56:return g.getLogger().debug("Lexa: (-"),this.pushState("NODE"),36;break;case 57:return g.getLogger().debug("Lexa: ))"),this.pushState("NODE"),36;break;case 58:return g.getLogger().debug("Lexa: )"),this.pushState("NODE"),36;break;case 59:return g.getLogger().debug("Lex: ((("),this.pushState("NODE"),36;break;case 60:return g.getLogger().debug("Lexa: )"),this.pushState("NODE"),36;break;case 61:return g.getLogger().debug("Lexa: )"),this.pushState("NODE"),36;break;case 62:return g.getLogger().debug("Lexa: )"),this.pushState("NODE"),36;break;case 63:return g.getLogger().debug("Lexc: >"),this.pushState("NODE"),36;break;case 64:return g.getLogger().debug("Lexa: (["),this.pushState("NODE"),36;break;case 65:return g.getLogger().debug("Lexa: )"),this.pushState("NODE"),36;break;case 66:return this.pushState("NODE"),36;break;case 67:return this.pushState("NODE"),36;break;case 68:return this.pushState("NODE"),36;break;case 69:return this.pushState("NODE"),36;break;case 70:return this.pushState("NODE"),36;break;case 71:return this.pushState("NODE"),36;break;case 72:return this.pushState("NODE"),36;break;case 73:return g.getLogger().debug("Lexa: ["),this.pushState("NODE"),36;break;case 74:return this.pushState("BLOCK_ARROW"),g.getLogger().debug("LEX ARR START"),38;break;case 75:return g.getLogger().debug("Lex: NODE_ID",f.yytext),32;break;case 76:return g.getLogger().debug("Lex: EOF",f.yytext),8;break;case 77:this.pushState("md_string");break;case 78:this.pushState("md_string");break;case 79:return"NODE_DESCR";case 80:this.popState();break;case 81:g.getLogger().debug("Lex: Starting string"),this.pushState("string");break;case 82:g.getLogger().debug("LEX ARR: Starting string"),this.pushState("string");break;case 83:return g.getLogger().debug("LEX: NODE_DESCR:",f.yytext),"NODE_DESCR";break;case 84:g.getLogger().debug("LEX POPPING"),this.popState();break;case 85:g.getLogger().debug("Lex: =>BAE"),this.pushState("ARROW_DIR");break;case 86:return f.yytext=f.yytext.replace(/^,\s*/,""),g.getLogger().debug("Lex (right): dir:",f.yytext),"DIR";break;case 87:return f.yytext=f.yytext.replace(/^,\s*/,""),g.getLogger().debug("Lex (left):",f.yytext),"DIR";break;case 88:return f.yytext=f.yytext.replace(/^,\s*/,""),g.getLogger().debug("Lex (x):",f.yytext),"DIR";break;case 89:return f.yytext=f.yytext.replace(/^,\s*/,""),g.getLogger().debug("Lex (y):",f.yytext),"DIR";break;case 90:return f.yytext=f.yytext.replace(/^,\s*/,""),g.getLogger().debug("Lex (up):",f.yytext),"DIR";break;case 91:return f.yytext=f.yytext.replace(/^,\s*/,""),g.getLogger().debug("Lex (down):",f.yytext),"DIR";break;case 92:return f.yytext="]>",g.getLogger().debug("Lex (ARROW_DIR end):",f.yytext),this.popState(),this.popState(),"BLOCK_ARROW_END";break;case 93:return g.getLogger().debug("Lex: LINK","#"+f.yytext+"#"),15;break;case 94:return g.getLogger().debug("Lex: LINK",f.yytext),15;break;case 95:return g.getLogger().debug("Lex: LINK",f.yytext),15;break;case 96:return g.getLogger().debug("Lex: LINK",f.yytext),15;break;case 97:return g.getLogger().debug("Lex: START_LINK",f.yytext),this.pushState("LLABEL"),16;break;case 98:return g.getLogger().debug("Lex: START_LINK",f.yytext),this.pushState("LLABEL"),16;break;case 99:return g.getLogger().debug("Lex: START_LINK",f.yytext),this.pushState("LLABEL"),16;break;case 100:this.pushState("md_string");break;case 101:return g.getLogger().debug("Lex: Starting string"),this.pushState("string"),"LINK_LABEL";break;case 102:return this.popState(),g.getLogger().debug("Lex: LINK","#"+f.yytext+"#"),15;break;case 103:return this.popState(),g.getLogger().debug("Lex: LINK",f.yytext),15;break;case 104:return this.popState(),g.getLogger().debug("Lex: LINK",f.yytext),15;break;case 105:return g.getLogger().debug("Lex: COLON",f.yytext),f.yytext=f.yytext.slice(1),27;break}},"anonymous"),rules:[/^(?:block-beta\b)/,/^(?:block\s+)/,/^(?:block\n+)/,/^(?:block:)/,/^(?:[\s]+)/,/^(?:[\n]+)/,/^(?:((\u000D\u000A)|(\u000A)))/,/^(?:columns\s+auto\b)/,/^(?:columns\s+[\d]+)/,/^(?:["][`])/,/^(?:[^`"]+)/,/^(?:[`]["])/,/^(?:["])/,/^(?:["])/,/^(?:[^"]*)/,/^(?:space[:]\d+)/,/^(?:space\b)/,/^(?:default\b)/,/^(?:linkStyle\b)/,/^(?:interpolate\b)/,/^(?:classDef\s+)/,/^(?:DEFAULT\s+)/,/^(?:\w+\s+)/,/^(?:[^\n]*)/,/^(?:class\s+)/,/^(?:(\w+)+((,\s*\w+)*))/,/^(?:[^\n]*)/,/^(?:style\s+)/,/^(?:(\w+)+((,\s*\w+)*))/,/^(?:[^\n]*)/,/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:end\b\s*)/,/^(?:\(\(\()/,/^(?:\)\)\))/,/^(?:[\)]\))/,/^(?:\}\})/,/^(?:\})/,/^(?:\(-)/,/^(?:-\))/,/^(?:\(\()/,/^(?:\]\])/,/^(?:\()/,/^(?:\]\))/,/^(?:\\\])/,/^(?:\/\])/,/^(?:\)\])/,/^(?:[\)])/,/^(?:\]>)/,/^(?:[\]])/,/^(?:-\))/,/^(?:\(-)/,/^(?:\)\))/,/^(?:\))/,/^(?:\(\(\()/,/^(?:\(\()/,/^(?:\{\{)/,/^(?:\{)/,/^(?:>)/,/^(?:\(\[)/,/^(?:\()/,/^(?:\[\[)/,/^(?:\[\|)/,/^(?:\[\()/,/^(?:\)\)\))/,/^(?:\[\\)/,/^(?:\[\/)/,/^(?:\[\\)/,/^(?:\[)/,/^(?:<\[)/,/^(?:[^\(\[\n\-\)\{\}\s\<\>:]+)/,/^(?:$)/,/^(?:["][`])/,/^(?:["][`])/,/^(?:[^`"]+)/,/^(?:[`]["])/,/^(?:["])/,/^(?:["])/,/^(?:[^"]+)/,/^(?:["])/,/^(?:\]>\s*\()/,/^(?:,?\s*right\s*)/,/^(?:,?\s*left\s*)/,/^(?:,?\s*x\s*)/,/^(?:,?\s*y\s*)/,/^(?:,?\s*up\s*)/,/^(?:,?\s*down\s*)/,/^(?:\)\s*)/,/^(?:\s*[xo<]?--+[-xo>]\s*)/,/^(?:\s*[xo<]?==+[=xo>]\s*)/,/^(?:\s*[xo<]?-?\.+-[xo>]?\s*)/,/^(?:\s*~~[\~]+\s*)/,/^(?:\s*[xo<]?--\s*)/,/^(?:\s*[xo<]?==\s*)/,/^(?:\s*[xo<]?-\.\s*)/,/^(?:["][`])/,/^(?:["])/,/^(?:\s*[xo<]?--+[-xo>]\s*)/,/^(?:\s*[xo<]?==+[=xo>]\s*)/,/^(?:\s*[xo<]?-?\.+-[xo>]?\s*)/,/^(?::\d+)/],conditions:{STYLE_DEFINITION:{rules:[29],inclusive:!1},STYLE_STMNT:{rules:[28],inclusive:!1},CLASSDEFID:{rules:[23],inclusive:!1},CLASSDEF:{rules:[21,22],inclusive:!1},CLASS_STYLE:{rules:[26],inclusive:!1},CLASS:{rules:[25],inclusive:!1},LLABEL:{rules:[100,101,102,103,104],inclusive:!1},ARROW_DIR:{rules:[86,87,88,89,90,91,92],inclusive:!1},BLOCK_ARROW:{rules:[77,82,85],inclusive:!1},NODE:{rules:[38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,78,81],inclusive:!1},md_string:{rules:[10,11,79,80],inclusive:!1},space:{rules:[],inclusive:!1},string:{rules:[13,14,83,84],inclusive:!1},acc_descr_multiline:{rules:[35,36],inclusive:!1},acc_descr:{rules:[33],inclusive:!1},acc_title:{rules:[31],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,8,9,12,15,16,17,18,19,20,24,27,30,32,34,37,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,93,94,95,96,97,98,99,105],inclusive:!0}}};return D}();S.lexer=C;function _(){this.yy={}}return d(_,"Parser"),_.prototype=S,S.Parser=_,new _}();wt.parser=wt;var ve=wt,U=new Map,Et=[],kt=new Map,jt="color",Vt="fill",Ee="bgFill",ee=",",_e=I(),ot=new Map,De=d(e=>zt.sanitizeText(e,_e),"sanitizeText"),Ne=d(function(e,t=""){let s=ot.get(e);s||(s={id:e,styles:[],textStyles:[]},ot.set(e,s)),t?.split(ee).forEach(n=>{let i=n.replace(/([^;]*);/,"$1").trim();if(RegExp(jt).exec(n)){let a=i.replace(Vt,Ee).replace(jt,Vt);s.textStyles.push(a)}s.styles.push(i)})},"addStyleClass"),Te=d(function(e,t=""){let s=U.get(e);t!=null&&(s.styles=t.split(ee))},"addStyle2Node"),Be=d(function(e,t){e.split(",").forEach(function(s){let n=U.get(s);if(n===void 0){let i=s.trim();n={id:i,type:"na",children:[]},U.set(i,n)}n.classes||(n.classes=[]),n.classes.push(t)})},"setCssClass"),re=d((e,t)=>{let s=e.flat(),n=[];for(let i of s){if(i.label&&(i.label=De(i.label)),i.type==="classDef"){Ne(i.id,i.css);continue}if(i.type==="applyClass"){Be(i.id,i?.styleClass??"");continue}if(i.type==="applyStyles"){i?.stylesStr&&Te(i.id,i?.stylesStr);continue}if(i.type==="column-setting")t.columns=i.columns??-1;else if(i.type==="edge"){let r=(kt.get(i.id)??0)+1;kt.set(i.id,r),i.id=r+"-"+i.id,Et.push(i)}else{i.label||(i.type==="composite"?i.label="":i.label=i.id);let r=U.get(i.id);if(r===void 0?U.set(i.id,i):(i.type!=="na"&&(r.type=i.type),i.label!==i.id&&(r.label=i.label)),i.children&&re(i.children,i),i.type==="space"){let a=i.width??1;for(let l=0;l{k.debug("Clear called"),Mt(),rt={id:"root",type:"composite",children:[],columns:-1},U=new Map([["root",rt]]),_t=[],ot=new Map,Et=[],kt=new Map},"clear");function ae(e){switch(k.debug("typeStr2Type",e),e){case"[]":return"square";case"()":return k.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"}}d(ae,"typeStr2Type");function se(e){switch(k.debug("typeStr2Type",e),e){case"==":return"thick";default:return"normal"}}d(se,"edgeTypeStr2Type");function ie(e){switch(e.trim()){case"--x":return"arrow_cross";case"--o":return"arrow_circle";default:return"arrow_point"}}d(ie,"edgeStrToEdgeData");var Zt=0,Ie=d(()=>(Zt++,"id-"+Math.random().toString(36).substr(2,12)+"-"+Zt),"generateId"),Oe=d(e=>{rt.children=e,re(e,rt),_t=rt.children},"setHierarchy"),Re=d(e=>{let t=U.get(e);return t?t.columns?t.columns:t.children?t.children.length:-1:-1},"getColumns"),ze=d(()=>[...U.values()],"getBlocksFlat"),Ae=d(()=>_t||[],"getBlocks"),Me=d(()=>Et,"getEdges"),Fe=d(e=>U.get(e),"getBlock"),We=d(e=>{U.set(e.id,e)},"setBlock"),Pe=d(()=>console,"getLogger"),Ye=d(function(){return ot},"getClasses"),He={getConfig:d(()=>$().block,"getConfig"),typeStr2Type:ae,edgeTypeStr2Type:se,edgeStrToEdgeData:ie,getLogger:Pe,getBlocksFlat:ze,getBlocks:Ae,getEdges:Me,setHierarchy:Oe,getBlock:Fe,setBlock:We,getColumns:Re,getClasses:Ye,clear:Ce,generateId:Ie},Ke=He,lt=d((e,t)=>{let s=Rt,n=s(e,"r"),i=s(e,"g"),r=s(e,"b");return Ot(n,i,r,t)},"fade"),Xe=d(e=>`.label { + font-family: ${e.fontFamily}; + color: ${e.nodeTextColor||e.textColor}; + } + .cluster-label text { + fill: ${e.titleColor}; + } + .cluster-label span,p { + color: ${e.titleColor}; + } + + + + .label text,span,p { + fill: ${e.nodeTextColor||e.textColor}; + color: ${e.nodeTextColor||e.textColor}; + } + + .node rect, + .node circle, + .node ellipse, + .node polygon, + .node path { + fill: ${e.mainBkg}; + stroke: ${e.nodeBorder}; + stroke-width: 1px; + } + .flowchart-label text { + text-anchor: middle; + } + // .flowchart-label .text-outer-tspan { + // text-anchor: middle; + // } + // .flowchart-label .text-inner-tspan { + // text-anchor: start; + // } + + .node .label { + text-align: center; + } + .node.clickable { + cursor: pointer; + } + + .arrowheadPath { + fill: ${e.arrowheadColor}; + } + + .edgePath .path { + stroke: ${e.lineColor}; + stroke-width: 2.0px; + } + + .flowchart-link { + stroke: ${e.lineColor}; + fill: none; + } + + .edgeLabel { + background-color: ${e.edgeLabelBackground}; + rect { + opacity: 0.5; + background-color: ${e.edgeLabelBackground}; + fill: ${e.edgeLabelBackground}; + } + text-align: center; + } + + /* For html labels only */ + .labelBkg { + background-color: ${lt(e.edgeLabelBackground,.5)}; + // background-color: + } + + .node .cluster { + // fill: ${lt(e.mainBkg,.5)}; + fill: ${lt(e.clusterBkg,.5)}; + stroke: ${lt(e.clusterBorder,.2)}; + box-shadow: rgba(50, 50, 93, 0.25) 0px 13px 27px -5px, rgba(0, 0, 0, 0.3) 0px 8px 16px -8px; + stroke-width: 1px; + } + + .cluster text { + fill: ${e.titleColor}; + } + + .cluster span,p { + color: ${e.titleColor}; + } + /* .cluster div { + color: ${e.titleColor}; + } */ + + div.mermaidTooltip { + position: absolute; + text-align: center; + max-width: 200px; + padding: 2px; + font-family: ${e.fontFamily}; + font-size: 12px; + background: ${e.tertiaryColor}; + border: 1px solid ${e.border2}; + border-radius: 2px; + pointer-events: none; + z-index: 100; + } + + .flowchartTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${e.textColor}; + } +`,"getStyles"),Ue=Xe,je=d((e,t,s,n)=>{t.forEach(i=>{rr[i](e,s,n)})},"insertMarkers"),Ve=d((e,t,s)=>{k.trace("Making markers for ",s),e.append("defs").append("marker").attr("id",s+"_"+t+"-extensionStart").attr("class","marker extension "+t).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 1,7 L18,13 V 1 Z"),e.append("defs").append("marker").attr("id",s+"_"+t+"-extensionEnd").attr("class","marker extension "+t).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 1,1 V 13 L18,7 Z")},"extension"),Ze=d((e,t,s)=>{e.append("defs").append("marker").attr("id",s+"_"+t+"-compositionStart").attr("class","marker composition "+t).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),e.append("defs").append("marker").attr("id",s+"_"+t+"-compositionEnd").attr("class","marker composition "+t).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z")},"composition"),Ge=d((e,t,s)=>{e.append("defs").append("marker").attr("id",s+"_"+t+"-aggregationStart").attr("class","marker aggregation "+t).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),e.append("defs").append("marker").attr("id",s+"_"+t+"-aggregationEnd").attr("class","marker aggregation "+t).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z")},"aggregation"),qe=d((e,t,s)=>{e.append("defs").append("marker").attr("id",s+"_"+t+"-dependencyStart").attr("class","marker dependency "+t).attr("refX",6).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 5,7 L9,13 L1,7 L9,1 Z"),e.append("defs").append("marker").attr("id",s+"_"+t+"-dependencyEnd").attr("class","marker dependency "+t).attr("refX",13).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z")},"dependency"),Je=d((e,t,s)=>{e.append("defs").append("marker").attr("id",s+"_"+t+"-lollipopStart").attr("class","marker lollipop "+t).attr("refX",13).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("circle").attr("stroke","black").attr("fill","transparent").attr("cx",7).attr("cy",7).attr("r",6),e.append("defs").append("marker").attr("id",s+"_"+t+"-lollipopEnd").attr("class","marker lollipop "+t).attr("refX",1).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("circle").attr("stroke","black").attr("fill","transparent").attr("cx",7).attr("cy",7).attr("r",6)},"lollipop"),Qe=d((e,t,s)=>{e.append("marker").attr("id",s+"_"+t+"-pointEnd").attr("class","marker "+t).attr("viewBox","0 0 10 10").attr("refX",6).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 0 0 L 10 5 L 0 10 z").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0"),e.append("marker").attr("id",s+"_"+t+"-pointStart").attr("class","marker "+t).attr("viewBox","0 0 10 10").attr("refX",4.5).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 0 5 L 10 10 L 10 0 z").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0")},"point"),$e=d((e,t,s)=>{e.append("marker").attr("id",s+"_"+t+"-circleEnd").attr("class","marker "+t).attr("viewBox","0 0 10 10").attr("refX",11).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("circle").attr("cx","5").attr("cy","5").attr("r","5").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0"),e.append("marker").attr("id",s+"_"+t+"-circleStart").attr("class","marker "+t).attr("viewBox","0 0 10 10").attr("refX",-1).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("circle").attr("cx","5").attr("cy","5").attr("r","5").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0")},"circle"),tr=d((e,t,s)=>{e.append("marker").attr("id",s+"_"+t+"-crossEnd").attr("class","marker cross "+t).attr("viewBox","0 0 11 11").attr("refX",12).attr("refY",5.2).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("path").attr("d","M 1,1 l 9,9 M 10,1 l -9,9").attr("class","arrowMarkerPath").style("stroke-width",2).style("stroke-dasharray","1,0"),e.append("marker").attr("id",s+"_"+t+"-crossStart").attr("class","marker cross "+t).attr("viewBox","0 0 11 11").attr("refX",-1).attr("refY",5.2).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("path").attr("d","M 1,1 l 9,9 M 10,1 l -9,9").attr("class","arrowMarkerPath").style("stroke-width",2).style("stroke-dasharray","1,0")},"cross"),er=d((e,t,s)=>{e.append("defs").append("marker").attr("id",s+"_"+t+"-barbEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",14).attr("markerUnits","strokeWidth").attr("orient","auto").append("path").attr("d","M 19,7 L9,13 L14,7 L9,1 Z")},"barb"),rr={extension:Ve,composition:Ze,aggregation:Ge,dependency:qe,lollipop:Je,point:Qe,circle:$e,cross:tr,barb:er},ar=je,O=I()?.block?.padding??8;function ne(e,t){if(e===0||!Number.isInteger(e))throw new Error("Columns must be an integer !== 0.");if(t<0||!Number.isInteger(t))throw new Error("Position must be a non-negative integer."+t);if(e<0)return{px:t,py:0};if(e===1)return{px:0,py:t};let s=t%e,n=Math.floor(t/e);return{px:s,py:n}}d(ne,"calculateBlockPosition");var sr=d(e=>{let t=0,s=0;for(let n of e.children){let{width:i,height:r,x:a,y:l}=n.size??{width:0,height:0,x:0,y:0};k.debug("getMaxChildSize abc95 child:",n.id,"width:",i,"height:",r,"x:",a,"y:",l,n.type),n.type!=="space"&&(i>t&&(t=i/(e.widthInColumns??1)),r>s&&(s=r))}return{width:t,height:s}},"getMaxChildSize");function ht(e,t,s=0,n=0){k.debug("setBlockSizes abc95 (start)",e.id,e?.size?.x,"block width =",e?.size,"sieblingWidth",s),e?.size?.width||(e.size={width:s,height:n,x:0,y:0});let i=0,r=0;if(e.children?.length>0){for(let y of e.children)ht(y,t);let a=sr(e);i=a.width,r=a.height,k.debug("setBlockSizes abc95 maxWidth of",e.id,":s children is ",i,r);for(let y of e.children)y.size&&(k.debug(`abc95 Setting size of children of ${e.id} id=${y.id} ${i} ${r} ${JSON.stringify(y.size)}`),y.size.width=i*(y.widthInColumns??1)+O*((y.widthInColumns??1)-1),y.size.height=r,y.size.x=0,y.size.y=0,k.debug(`abc95 updating size of ${e.id} children child:${y.id} maxWidth:${i} maxHeight:${r}`));for(let y of e.children)ht(y,t,i,r);let l=e.columns??-1,c=0;for(let y of e.children)c+=y.widthInColumns??1;let u=e.children.length;l>0&&l0?Math.min(e.children.length,l):e.children.length;if(y>0){let L=(b-y*O-O)/y;k.debug("abc95 (growing to fit) width",e.id,b,e.size?.width,L);for(let E of e.children)E.size&&(E.size.width=L)}}e.size={width:b,height:m,x:0,y:0}}k.debug("setBlockSizes abc94 (done)",e.id,e?.size?.x,e?.size?.width,e?.size?.y,e?.size?.height)}d(ht,"setBlockSizes");function Dt(e,t){k.debug(`abc85 layout blocks (=>layoutBlocks) ${e.id} x: ${e?.size?.x} y: ${e?.size?.y} width: ${e?.size?.width}`);let s=e.columns??-1;if(k.debug("layoutBlocks columns abc95",e.id,"=>",s,e),e.children&&e.children.length>0){let n=e?.children[0]?.size?.width??0,i=e.children.length*n+(e.children.length-1)*O;k.debug("widthOfChildren 88",i,"posX");let r=0;k.debug("abc91 block?.size?.x",e.id,e?.size?.x);let a=e?.size?.x?e?.size?.x+(-e?.size?.width/2||0):-O,l=0;for(let c of e.children){let u=e;if(!c.size)continue;let{width:h,height:b}=c.size,{px:m,py:y}=ne(s,r);if(y!=l&&(l=y,a=e?.size?.x?e?.size?.x+(-e?.size?.width/2||0):-O,k.debug("New row in layout for block",e.id," and child ",c.id,l)),k.debug(`abc89 layout blocks (child) id: ${c.id} Pos: ${r} (px, py) ${m},${y} (${u?.size?.x},${u?.size?.y}) parent: ${u.id} width: ${h}${O}`),u.size){let L=h/2;c.size.x=a+O+L,k.debug(`abc91 layout blocks (calc) px, pyid:${c.id} startingPos=X${a} new startingPosX${c.size.x} ${L} padding=${O} width=${h} halfWidth=${L} => x:${c.size.x} y:${c.size.y} ${c.widthInColumns} (width * (child?.w || 1)) / 2 ${h*(c?.widthInColumns??1)/2}`),a=c.size.x+L,c.size.y=u.size.y-u.size.height/2+y*(b+O)+b/2+O,k.debug(`abc88 layout blocks (calc) px, pyid:${c.id}startingPosX${a}${O}${L}=>x:${c.size.x}y:${c.size.y}${c.widthInColumns}(width * (child?.w || 1)) / 2${h*(c?.widthInColumns??1)/2}`)}c.children&&Dt(c,t),r+=c?.widthInColumns??1,k.debug("abc88 columnsPos",c,r)}}k.debug(`layout blocks (<==layoutBlocks) ${e.id} x: ${e?.size?.x} y: ${e?.size?.y} width: ${e?.size?.width}`)}d(Dt,"layoutBlocks");function Nt(e,{minX:t,minY:s,maxX:n,maxY:i}={minX:0,minY:0,maxX:0,maxY:0}){if(e.size&&e.id!=="root"){let{x:r,y:a,width:l,height:c}=e.size;r-l/2n&&(n=r+l/2),a+c/2>i&&(i=a+c/2)}if(e.children)for(let r of e.children)({minX:t,minY:s,maxX:n,maxY:i}=Nt(r,{minX:t,minY:s,maxX:n,maxY:i}));return{minX:t,minY:s,maxX:n,maxY:i}}d(Nt,"findBounds");function le(e){let t=e.getBlock("root");if(!t)return;ht(t,e,0,0),Dt(t,e),k.debug("getBlocks",JSON.stringify(t,null,2));let{minX:s,minY:n,maxX:i,maxY:r}=Nt(t),a=r-n,l=i-s;return{x:s,y:n,width:l,height:a}}d(le,"layout");function Lt(e,t){t&&e.attr("style",t)}d(Lt,"applyStyle");function ce(e){let t=N(document.createElementNS("http://www.w3.org/2000/svg","foreignObject")),s=t.append("xhtml:div"),n=e.label,i=e.isNode?"nodeLabel":"edgeLabel",r=s.append("span");return r.html(n),Lt(r,e.labelStyle),r.attr("class",i),Lt(s,e.labelStyle),s.style("display","inline-block"),s.style("white-space","nowrap"),s.attr("xmlns","http://www.w3.org/1999/xhtml"),t.node()}d(ce,"addHtmlLabel");var ir=d((e,t,s,n)=>{let i=e||"";if(typeof i=="object"&&(i=i[0]),X(I().flowchart.htmlLabels)){i=i.replace(/\\n|\n/g,"
    "),k.debug("vertexText"+i);let r={isNode:n,label:Ht(nt(i)),labelStyle:t.replace("fill:","color:")};return ce(r)}else{let r=document.createElementNS("http://www.w3.org/2000/svg","text");r.setAttribute("style",t.replace("color:","fill:"));let a=[];typeof i=="string"?a=i.split(/\\n|\n|/gi):Array.isArray(i)?a=i:a=[];for(let l of a){let c=document.createElementNS("http://www.w3.org/2000/svg","tspan");c.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),c.setAttribute("dy","1em"),c.setAttribute("x","0"),s?c.setAttribute("class","title-row"):c.setAttribute("class","row"),c.textContent=l.trim(),r.appendChild(c)}return r}},"createLabel"),K=ir,nr=d((e,t,s,n,i)=>{t.arrowTypeStart&&Gt(e,"start",t.arrowTypeStart,s,n,i),t.arrowTypeEnd&&Gt(e,"end",t.arrowTypeEnd,s,n,i)},"addEdgeMarkers"),lr={arrow_cross:"cross",arrow_point:"point",arrow_barb:"barb",arrow_circle:"circle",aggregation:"aggregation",extension:"extension",composition:"composition",dependency:"dependency",lollipop:"lollipop"},Gt=d((e,t,s,n,i,r)=>{let a=lr[s];if(!a){k.warn(`Unknown arrow type: ${s}`);return}let l=t==="start"?"Start":"End";e.attr(`marker-${t}`,`url(${n}#${i}_${r}-${a}${l})`)},"addEdgeMarker"),St={},M={},cr=d((e,t)=>{let s=I(),n=X(s.flowchart.htmlLabels),i=t.labelType==="markdown"?mt(e,t.label,{style:t.labelStyle,useHtmlLabels:n,addSvgBackground:!0},s):K(t.label,t.labelStyle),r=e.insert("g").attr("class","edgeLabel"),a=r.insert("g").attr("class","label");a.node().appendChild(i);let l=i.getBBox();if(n){let u=i.children[0],h=N(i);l=u.getBoundingClientRect(),h.attr("width",l.width),h.attr("height",l.height)}a.attr("transform","translate("+-l.width/2+", "+-l.height/2+")"),St[t.id]=r,t.width=l.width,t.height=l.height;let c;if(t.startLabelLeft){let u=K(t.startLabelLeft,t.labelStyle),h=e.insert("g").attr("class","edgeTerminals"),b=h.insert("g").attr("class","inner");c=b.node().appendChild(u);let m=u.getBBox();b.attr("transform","translate("+-m.width/2+", "+-m.height/2+")"),M[t.id]||(M[t.id]={}),M[t.id].startLeft=h,et(c,t.startLabelLeft)}if(t.startLabelRight){let u=K(t.startLabelRight,t.labelStyle),h=e.insert("g").attr("class","edgeTerminals"),b=h.insert("g").attr("class","inner");c=h.node().appendChild(u),b.node().appendChild(u);let m=u.getBBox();b.attr("transform","translate("+-m.width/2+", "+-m.height/2+")"),M[t.id]||(M[t.id]={}),M[t.id].startRight=h,et(c,t.startLabelRight)}if(t.endLabelLeft){let u=K(t.endLabelLeft,t.labelStyle),h=e.insert("g").attr("class","edgeTerminals"),b=h.insert("g").attr("class","inner");c=b.node().appendChild(u);let m=u.getBBox();b.attr("transform","translate("+-m.width/2+", "+-m.height/2+")"),h.node().appendChild(u),M[t.id]||(M[t.id]={}),M[t.id].endLeft=h,et(c,t.endLabelLeft)}if(t.endLabelRight){let u=K(t.endLabelRight,t.labelStyle),h=e.insert("g").attr("class","edgeTerminals"),b=h.insert("g").attr("class","inner");c=b.node().appendChild(u);let m=u.getBBox();b.attr("transform","translate("+-m.width/2+", "+-m.height/2+")"),h.node().appendChild(u),M[t.id]||(M[t.id]={}),M[t.id].endRight=h,et(c,t.endLabelRight)}return i},"insertEdgeLabel");function et(e,t){I().flowchart.htmlLabels&&e&&(e.style.width=t.length*9+"px",e.style.height="12px")}d(et,"setTerminalWidth");var or=d((e,t)=>{k.debug("Moving label abc88 ",e.id,e.label,St[e.id],t);let s=t.updatedPath?t.updatedPath:t.originalPath,n=I(),{subGraphTitleTotalMargin:i}=Ft(n);if(e.label){let r=St[e.id],a=e.x,l=e.y;if(s){let c=tt.calcLabelPosition(s);k.debug("Moving label "+e.label+" from (",a,",",l,") to (",c.x,",",c.y,") abc88"),t.updatedPath&&(a=c.x,l=c.y)}r.attr("transform",`translate(${a}, ${l+i/2})`)}if(e.startLabelLeft){let r=M[e.id].startLeft,a=e.x,l=e.y;if(s){let c=tt.calcTerminalLabelPosition(e.arrowTypeStart?10:0,"start_left",s);a=c.x,l=c.y}r.attr("transform",`translate(${a}, ${l})`)}if(e.startLabelRight){let r=M[e.id].startRight,a=e.x,l=e.y;if(s){let c=tt.calcTerminalLabelPosition(e.arrowTypeStart?10:0,"start_right",s);a=c.x,l=c.y}r.attr("transform",`translate(${a}, ${l})`)}if(e.endLabelLeft){let r=M[e.id].endLeft,a=e.x,l=e.y;if(s){let c=tt.calcTerminalLabelPosition(e.arrowTypeEnd?10:0,"end_left",s);a=c.x,l=c.y}r.attr("transform",`translate(${a}, ${l})`)}if(e.endLabelRight){let r=M[e.id].endRight,a=e.x,l=e.y;if(s){let c=tt.calcTerminalLabelPosition(e.arrowTypeEnd?10:0,"end_right",s);a=c.x,l=c.y}r.attr("transform",`translate(${a}, ${l})`)}},"positionEdgeLabel"),hr=d((e,t)=>{let s=e.x,n=e.y,i=Math.abs(t.x-s),r=Math.abs(t.y-n),a=e.width/2,l=e.height/2;return i>=a||r>=l},"outsideNode"),dr=d((e,t,s)=>{k.debug(`intersection calc abc89: + outsidePoint: ${JSON.stringify(t)} + insidePoint : ${JSON.stringify(s)} + node : x:${e.x} y:${e.y} w:${e.width} h:${e.height}`);let n=e.x,i=e.y,r=Math.abs(n-s.x),a=e.width/2,l=s.xMath.abs(n-t.x)*c){let b=s.y{k.debug("abc88 cutPathAtIntersect",e,t);let s=[],n=e[0],i=!1;return e.forEach(r=>{if(!hr(t,r)&&!i){let a=dr(t,n,r),l=!1;s.forEach(c=>{l=l||c.x===a.x&&c.y===a.y}),s.some(c=>c.x===a.x&&c.y===a.y)||s.push(a),i=!0}else n=r,i||s.push(r)}),s},"cutPathAtIntersect"),gr=d(function(e,t,s,n,i,r,a){let l=s.points;k.debug("abc88 InsertEdge: edge=",s,"e=",t);let c=!1,u=r.node(t.v);var h=r.node(t.w);h?.intersect&&u?.intersect&&(l=l.slice(1,s.points.length-1),l.unshift(u.intersect(l[0])),l.push(h.intersect(l[l.length-1]))),s.toCluster&&(k.debug("to cluster abc88",n[s.toCluster]),l=qt(s.points,n[s.toCluster].node),c=!0),s.fromCluster&&(k.debug("from cluster abc88",n[s.fromCluster]),l=qt(l.reverse(),n[s.fromCluster].node).reverse(),c=!0);let b=l.filter(x=>!Number.isNaN(x.y)),m=Pt;s.curve&&(i==="graph"||i==="flowchart")&&(m=s.curve);let{x:y,y:L}=Kt(s),E=Wt().x(y).y(L).curve(m),S;switch(s.thickness){case"normal":S="edge-thickness-normal";break;case"thick":S="edge-thickness-thick";break;case"invisible":S="edge-thickness-thick";break;default:S=""}switch(s.pattern){case"solid":S+=" edge-pattern-solid";break;case"dotted":S+=" edge-pattern-dotted";break;case"dashed":S+=" edge-pattern-dashed";break}let C=e.append("path").attr("d",E(b)).attr("id",s.id).attr("class"," "+S+(s.classes?" "+s.classes:"")).attr("style",s.style),_="";(I().flowchart.arrowMarkerAbsolute||I().state.arrowMarkerAbsolute)&&(_=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,_=_.replace(/\(/g,"\\("),_=_.replace(/\)/g,"\\)")),nr(C,s,_,a,i);let D={};return c&&(D.updatedPath=l),D.originalPath=s.points,D},"insertEdge"),ur=d(e=>{let t=new Set;for(let s of e)switch(s){case"x":t.add("right"),t.add("left");break;case"y":t.add("up"),t.add("down");break;default:t.add(s);break}return t},"expandAndDeduplicateDirections"),pr=d((e,t,s)=>{let n=ur(e),i=2,r=t.height+2*s.padding,a=r/i,l=t.width+2*a+s.padding,c=s.padding/2;return n.has("right")&&n.has("left")&&n.has("up")&&n.has("down")?[{x:0,y:0},{x:a,y:0},{x:l/2,y:2*c},{x:l-a,y:0},{x:l,y:0},{x:l,y:-r/3},{x:l+2*c,y:-r/2},{x:l,y:-2*r/3},{x:l,y:-r},{x:l-a,y:-r},{x:l/2,y:-r-2*c},{x:a,y:-r},{x:0,y:-r},{x:0,y:-2*r/3},{x:-2*c,y:-r/2},{x:0,y:-r/3}]:n.has("right")&&n.has("left")&&n.has("up")?[{x:a,y:0},{x:l-a,y:0},{x:l,y:-r/2},{x:l-a,y:-r},{x:a,y:-r},{x:0,y:-r/2}]:n.has("right")&&n.has("left")&&n.has("down")?[{x:0,y:0},{x:a,y:-r},{x:l-a,y:-r},{x:l,y:0}]:n.has("right")&&n.has("up")&&n.has("down")?[{x:0,y:0},{x:l,y:-a},{x:l,y:-r+a},{x:0,y:-r}]:n.has("left")&&n.has("up")&&n.has("down")?[{x:l,y:0},{x:0,y:-a},{x:0,y:-r+a},{x:l,y:-r}]:n.has("right")&&n.has("left")?[{x:a,y:0},{x:a,y:-c},{x:l-a,y:-c},{x:l-a,y:0},{x:l,y:-r/2},{x:l-a,y:-r},{x:l-a,y:-r+c},{x:a,y:-r+c},{x:a,y:-r},{x:0,y:-r/2}]:n.has("up")&&n.has("down")?[{x:l/2,y:0},{x:0,y:-c},{x:a,y:-c},{x:a,y:-r+c},{x:0,y:-r+c},{x:l/2,y:-r},{x:l,y:-r+c},{x:l-a,y:-r+c},{x:l-a,y:-c},{x:l,y:-c}]:n.has("right")&&n.has("up")?[{x:0,y:0},{x:l,y:-a},{x:0,y:-r}]:n.has("right")&&n.has("down")?[{x:0,y:0},{x:l,y:0},{x:0,y:-r}]:n.has("left")&&n.has("up")?[{x:l,y:0},{x:0,y:-a},{x:l,y:-r}]:n.has("left")&&n.has("down")?[{x:l,y:0},{x:0,y:0},{x:l,y:-r}]:n.has("right")?[{x:a,y:-c},{x:a,y:-c},{x:l-a,y:-c},{x:l-a,y:0},{x:l,y:-r/2},{x:l-a,y:-r},{x:l-a,y:-r+c},{x:a,y:-r+c},{x:a,y:-r+c}]:n.has("left")?[{x:a,y:0},{x:a,y:-c},{x:l-a,y:-c},{x:l-a,y:-r+c},{x:a,y:-r+c},{x:a,y:-r},{x:0,y:-r/2}]:n.has("up")?[{x:a,y:-c},{x:a,y:-r+c},{x:0,y:-r+c},{x:l/2,y:-r},{x:l,y:-r+c},{x:l-a,y:-r+c},{x:l-a,y:-c}]:n.has("down")?[{x:l/2,y:0},{x:0,y:-c},{x:a,y:-c},{x:a,y:-r+c},{x:l-a,y:-r+c},{x:l-a,y:-c},{x:l,y:-c}]:[{x:0,y:0}]},"getArrowPoints");function oe(e,t){return e.intersect(t)}d(oe,"intersectNode");var fr=oe;function he(e,t,s,n){var i=e.x,r=e.y,a=i-n.x,l=r-n.y,c=Math.sqrt(t*t*l*l+s*s*a*a),u=Math.abs(t*s*a/c);n.x0}d(vt,"sameSign");var xr=ue,yr=pe;function pe(e,t,s){var n=e.x,i=e.y,r=[],a=Number.POSITIVE_INFINITY,l=Number.POSITIVE_INFINITY;typeof t.forEach=="function"?t.forEach(function(L){a=Math.min(a,L.x),l=Math.min(l,L.y)}):(a=Math.min(a,t.x),l=Math.min(l,t.y));for(var c=n-e.width/2-a,u=i-e.height/2-l,h=0;h1&&r.sort(function(L,E){var S=L.x-s.x,C=L.y-s.y,_=Math.sqrt(S*S+C*C),D=E.x-s.x,x=E.y-s.y,g=Math.sqrt(D*D+x*x);return _{var s=e.x,n=e.y,i=t.x-s,r=t.y-n,a=e.width/2,l=e.height/2,c,u;return Math.abs(r)*a>Math.abs(i)*l?(r<0&&(l=-l),c=r===0?0:l*i/r,u=l):(i<0&&(a=-a),c=a,u=i===0?0:a*r/i),{x:s+c,y:n+u}},"intersectRect"),wr=mr,T={node:fr,circle:br,ellipse:de,polygon:yr,rect:wr},A=d(async(e,t,s,n)=>{let i=I(),r,a=t.useHtmlLabels||X(i.flowchart.htmlLabels);s?r=s:r="node default";let l=e.insert("g").attr("class",r).attr("id",t.domId||t.id),c=l.insert("g").attr("class","label").attr("style",t.labelStyle),u;t.labelText===void 0?u="":u=typeof t.labelText=="string"?t.labelText:t.labelText[0];let h=c.node(),b;t.labelType==="markdown"?b=mt(c,yt(nt(u),i),{useHtmlLabels:a,width:t.width||i.flowchart.wrappingWidth,classes:"markdown-node-label"},i):b=h.appendChild(K(yt(nt(u),i),t.labelStyle,!1,n));let m=b.getBBox(),y=t.padding/2;if(X(i.flowchart.htmlLabels)){let L=b.children[0],E=N(b),S=L.getElementsByTagName("img");if(S){let C=u.replace(/]*>/g,"").trim()==="";await Promise.all([...S].map(_=>new Promise(D=>{function x(){if(_.style.display="flex",_.style.flexDirection="column",C){let g=i.fontSize?i.fontSize:window.getComputedStyle(document.body).fontSize,w=parseInt(g,10)*5+"px";_.style.minWidth=w,_.style.maxWidth=w}else _.style.width="100%";D(_)}d(x,"setupImage"),setTimeout(()=>{_.complete&&x()}),_.addEventListener("error",x),_.addEventListener("load",x)})))}m=L.getBoundingClientRect(),E.attr("width",m.width),E.attr("height",m.height)}return a?c.attr("transform","translate("+-m.width/2+", "+-m.height/2+")"):c.attr("transform","translate(0, "+-m.height/2+")"),t.centerLabel&&c.attr("transform","translate("+-m.width/2+", "+-m.height/2+")"),c.insert("rect",":first-child"),{shapeSvg:l,bbox:m,halfPadding:y,label:c}},"labelHelper"),B=d((e,t)=>{let s=t.node().getBBox();e.width=s.width,e.height=s.height},"updateNodeBounds");function j(e,t,s,n){return e.insert("polygon",":first-child").attr("points",n.map(function(i){return i.x+","+i.y}).join(" ")).attr("class","label-container").attr("transform","translate("+-t/2+","+s/2+")")}d(j,"insertPolygonShape");var kr=d(async(e,t)=>{t.useHtmlLabels||I().flowchart.htmlLabels||(t.centerLabel=!0);let{shapeSvg:n,bbox:i,halfPadding:r}=await A(e,t,"node "+t.classes,!0);k.info("Classes = ",t.classes);let a=n.insert("rect",":first-child");return a.attr("rx",t.rx).attr("ry",t.ry).attr("x",-i.width/2-r).attr("y",-i.height/2-r).attr("width",i.width+t.padding).attr("height",i.height+t.padding),B(t,a),t.intersect=function(l){return T.rect(t,l)},n},"note"),Lr=kr,Jt=d(e=>e?" "+e:"","formatClass"),Y=d((e,t)=>`${t||"node default"}${Jt(e.classes)} ${Jt(e.class)}`,"getClassesFromNode"),Qt=d(async(e,t)=>{let{shapeSvg:s,bbox:n}=await A(e,t,Y(t,void 0),!0),i=n.width+t.padding,r=n.height+t.padding,a=i+r,l=[{x:a/2,y:0},{x:a,y:-a/2},{x:a/2,y:-a},{x:0,y:-a/2}];k.info("Question main (Circle)");let c=j(s,a,a,l);return c.attr("style",t.style),B(t,c),t.intersect=function(u){return k.warn("Intersect called"),T.polygon(t,l,u)},s},"question"),Sr=d((e,t)=>{let s=e.insert("g").attr("class","node default").attr("id",t.domId||t.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 s.insert("polygon",":first-child").attr("points",i.map(function(a){return a.x+","+a.y}).join(" ")).attr("class","state-start").attr("r",7).attr("width",28).attr("height",28),t.width=28,t.height=28,t.intersect=function(a){return T.circle(t,14,a)},s},"choice"),vr=d(async(e,t)=>{let{shapeSvg:s,bbox:n}=await A(e,t,Y(t,void 0),!0),i=4,r=n.height+t.padding,a=r/i,l=n.width+2*a+t.padding,c=[{x:a,y:0},{x:l-a,y:0},{x:l,y:-r/2},{x:l-a,y:-r},{x:a,y:-r},{x:0,y:-r/2}],u=j(s,l,r,c);return u.attr("style",t.style),B(t,u),t.intersect=function(h){return T.polygon(t,c,h)},s},"hexagon"),Er=d(async(e,t)=>{let{shapeSvg:s,bbox:n}=await A(e,t,void 0,!0),i=2,r=n.height+2*t.padding,a=r/i,l=n.width+2*a+t.padding,c=pr(t.directions,n,t),u=j(s,l,r,c);return u.attr("style",t.style),B(t,u),t.intersect=function(h){return T.polygon(t,c,h)},s},"block_arrow"),_r=d(async(e,t)=>{let{shapeSvg:s,bbox:n}=await A(e,t,Y(t,void 0),!0),i=n.width+t.padding,r=n.height+t.padding,a=[{x:-r/2,y:0},{x:i,y:0},{x:i,y:-r},{x:-r/2,y:-r},{x:0,y:-r/2}];return j(s,i,r,a).attr("style",t.style),t.width=i+r,t.height=r,t.intersect=function(c){return T.polygon(t,a,c)},s},"rect_left_inv_arrow"),Dr=d(async(e,t)=>{let{shapeSvg:s,bbox:n}=await A(e,t,Y(t),!0),i=n.width+t.padding,r=n.height+t.padding,a=[{x:-2*r/6,y:0},{x:i-r/6,y:0},{x:i+2*r/6,y:-r},{x:r/6,y:-r}],l=j(s,i,r,a);return l.attr("style",t.style),B(t,l),t.intersect=function(c){return T.polygon(t,a,c)},s},"lean_right"),Nr=d(async(e,t)=>{let{shapeSvg:s,bbox:n}=await A(e,t,Y(t,void 0),!0),i=n.width+t.padding,r=n.height+t.padding,a=[{x:2*r/6,y:0},{x:i+r/6,y:0},{x:i-2*r/6,y:-r},{x:-r/6,y:-r}],l=j(s,i,r,a);return l.attr("style",t.style),B(t,l),t.intersect=function(c){return T.polygon(t,a,c)},s},"lean_left"),Tr=d(async(e,t)=>{let{shapeSvg:s,bbox:n}=await A(e,t,Y(t,void 0),!0),i=n.width+t.padding,r=n.height+t.padding,a=[{x:-2*r/6,y:0},{x:i+2*r/6,y:0},{x:i-r/6,y:-r},{x:r/6,y:-r}],l=j(s,i,r,a);return l.attr("style",t.style),B(t,l),t.intersect=function(c){return T.polygon(t,a,c)},s},"trapezoid"),Br=d(async(e,t)=>{let{shapeSvg:s,bbox:n}=await A(e,t,Y(t,void 0),!0),i=n.width+t.padding,r=n.height+t.padding,a=[{x:r/6,y:0},{x:i-r/6,y:0},{x:i+2*r/6,y:-r},{x:-2*r/6,y:-r}],l=j(s,i,r,a);return l.attr("style",t.style),B(t,l),t.intersect=function(c){return T.polygon(t,a,c)},s},"inv_trapezoid"),Cr=d(async(e,t)=>{let{shapeSvg:s,bbox:n}=await A(e,t,Y(t,void 0),!0),i=n.width+t.padding,r=n.height+t.padding,a=[{x:0,y:0},{x:i+r/2,y:0},{x:i,y:-r/2},{x:i+r/2,y:-r},{x:0,y:-r}],l=j(s,i,r,a);return l.attr("style",t.style),B(t,l),t.intersect=function(c){return T.polygon(t,a,c)},s},"rect_right_inv_arrow"),Ir=d(async(e,t)=>{let{shapeSvg:s,bbox:n}=await A(e,t,Y(t,void 0),!0),i=n.width+t.padding,r=i/2,a=r/(2.5+i/50),l=n.height+a+t.padding,c="M 0,"+a+" a "+r+","+a+" 0,0,0 "+i+" 0 a "+r+","+a+" 0,0,0 "+-i+" 0 l 0,"+l+" a "+r+","+a+" 0,0,0 "+i+" 0 l 0,"+-l,u=s.attr("label-offset-y",a).insert("path",":first-child").attr("style",t.style).attr("d",c).attr("transform","translate("+-i/2+","+-(l/2+a)+")");return B(t,u),t.intersect=function(h){let b=T.rect(t,h),m=b.x-t.x;if(r!=0&&(Math.abs(m)t.height/2-a)){let y=a*a*(1-m*m/(r*r));y!=0&&(y=Math.sqrt(y)),y=a-y,h.y-t.y>0&&(y=-y),b.y+=y}return b},s},"cylinder"),Or=d(async(e,t)=>{let{shapeSvg:s,bbox:n,halfPadding:i}=await A(e,t,"node "+t.classes+" "+t.class,!0),r=s.insert("rect",":first-child"),a=t.positioned?t.width:n.width+t.padding,l=t.positioned?t.height:n.height+t.padding,c=t.positioned?-a/2:-n.width/2-i,u=t.positioned?-l/2:-n.height/2-i;if(r.attr("class","basic label-container").attr("style",t.style).attr("rx",t.rx).attr("ry",t.ry).attr("x",c).attr("y",u).attr("width",a).attr("height",l),t.props){let h=new Set(Object.keys(t.props));t.props.borders&&(dt(r,t.props.borders,a,l),h.delete("borders")),h.forEach(b=>{k.warn(`Unknown node property ${b}`)})}return B(t,r),t.intersect=function(h){return T.rect(t,h)},s},"rect"),Rr=d(async(e,t)=>{let{shapeSvg:s,bbox:n,halfPadding:i}=await A(e,t,"node "+t.classes,!0),r=s.insert("rect",":first-child"),a=t.positioned?t.width:n.width+t.padding,l=t.positioned?t.height:n.height+t.padding,c=t.positioned?-a/2:-n.width/2-i,u=t.positioned?-l/2:-n.height/2-i;if(r.attr("class","basic cluster composite label-container").attr("style",t.style).attr("rx",t.rx).attr("ry",t.ry).attr("x",c).attr("y",u).attr("width",a).attr("height",l),t.props){let h=new Set(Object.keys(t.props));t.props.borders&&(dt(r,t.props.borders,a,l),h.delete("borders")),h.forEach(b=>{k.warn(`Unknown node property ${b}`)})}return B(t,r),t.intersect=function(h){return T.rect(t,h)},s},"composite"),zr=d(async(e,t)=>{let{shapeSvg:s}=await A(e,t,"label",!0);k.trace("Classes = ",t.class);let n=s.insert("rect",":first-child"),i=0,r=0;if(n.attr("width",i).attr("height",r),s.attr("class","label edgeLabel"),t.props){let a=new Set(Object.keys(t.props));t.props.borders&&(dt(n,t.props.borders,i,r),a.delete("borders")),a.forEach(l=>{k.warn(`Unknown node property ${l}`)})}return B(t,n),t.intersect=function(a){return T.rect(t,a)},s},"labelRect");function dt(e,t,s,n){let i=[],r=d(l=>{i.push(l,0)},"addBorder"),a=d(l=>{i.push(0,l)},"skipBorder");t.includes("t")?(k.debug("add top border"),r(s)):a(s),t.includes("r")?(k.debug("add right border"),r(n)):a(n),t.includes("b")?(k.debug("add bottom border"),r(s)):a(s),t.includes("l")?(k.debug("add left border"),r(n)):a(n),e.attr("stroke-dasharray",i.join(" "))}d(dt,"applyNodePropertyBorders");var Ar=d((e,t)=>{let s;t.classes?s="node "+t.classes:s="node default";let n=e.insert("g").attr("class",s).attr("id",t.domId||t.id),i=n.insert("rect",":first-child"),r=n.insert("line"),a=n.insert("g").attr("class","label"),l=t.labelText.flat?t.labelText.flat():t.labelText,c="";typeof l=="object"?c=l[0]:c=l,k.info("Label text abc79",c,l,typeof l=="object");let u=a.node().appendChild(K(c,t.labelStyle,!0,!0)),h={width:0,height:0};if(X(I().flowchart.htmlLabels)){let E=u.children[0],S=N(u);h=E.getBoundingClientRect(),S.attr("width",h.width),S.attr("height",h.height)}k.info("Text 2",l);let b=l.slice(1,l.length),m=u.getBBox(),y=a.node().appendChild(K(b.join?b.join("
    "):b,t.labelStyle,!0,!0));if(X(I().flowchart.htmlLabels)){let E=y.children[0],S=N(y);h=E.getBoundingClientRect(),S.attr("width",h.width),S.attr("height",h.height)}let L=t.padding/2;return N(y).attr("transform","translate( "+(h.width>m.width?0:(m.width-h.width)/2)+", "+(m.height+L+5)+")"),N(u).attr("transform","translate( "+(h.width{let{shapeSvg:s,bbox:n}=await A(e,t,Y(t,void 0),!0),i=n.height+t.padding,r=n.width+i/4+t.padding,a=s.insert("rect",":first-child").attr("style",t.style).attr("rx",i/2).attr("ry",i/2).attr("x",-r/2).attr("y",-i/2).attr("width",r).attr("height",i);return B(t,a),t.intersect=function(l){return T.rect(t,l)},s},"stadium"),Fr=d(async(e,t)=>{let{shapeSvg:s,bbox:n,halfPadding:i}=await A(e,t,Y(t,void 0),!0),r=s.insert("circle",":first-child");return r.attr("style",t.style).attr("rx",t.rx).attr("ry",t.ry).attr("r",n.width/2+i).attr("width",n.width+t.padding).attr("height",n.height+t.padding),k.info("Circle main"),B(t,r),t.intersect=function(a){return k.info("Circle intersect",t,n.width/2+i,a),T.circle(t,n.width/2+i,a)},s},"circle"),Wr=d(async(e,t)=>{let{shapeSvg:s,bbox:n,halfPadding:i}=await A(e,t,Y(t,void 0),!0),r=5,a=s.insert("g",":first-child"),l=a.insert("circle"),c=a.insert("circle");return a.attr("class",t.class),l.attr("style",t.style).attr("rx",t.rx).attr("ry",t.ry).attr("r",n.width/2+i+r).attr("width",n.width+t.padding+r*2).attr("height",n.height+t.padding+r*2),c.attr("style",t.style).attr("rx",t.rx).attr("ry",t.ry).attr("r",n.width/2+i).attr("width",n.width+t.padding).attr("height",n.height+t.padding),k.info("DoubleCircle main"),B(t,l),t.intersect=function(u){return k.info("DoubleCircle intersect",t,n.width/2+i+r,u),T.circle(t,n.width/2+i+r,u)},s},"doublecircle"),Pr=d(async(e,t)=>{let{shapeSvg:s,bbox:n}=await A(e,t,Y(t,void 0),!0),i=n.width+t.padding,r=n.height+t.padding,a=[{x:0,y:0},{x:i,y:0},{x:i,y:-r},{x:0,y:-r},{x:0,y:0},{x:-8,y:0},{x:i+8,y:0},{x:i+8,y:-r},{x:-8,y:-r},{x:-8,y:0}],l=j(s,i,r,a);return l.attr("style",t.style),B(t,l),t.intersect=function(c){return T.polygon(t,a,c)},s},"subroutine"),Yr=d((e,t)=>{let s=e.insert("g").attr("class","node default").attr("id",t.domId||t.id),n=s.insert("circle",":first-child");return n.attr("class","state-start").attr("r",7).attr("width",14).attr("height",14),B(t,n),t.intersect=function(i){return T.circle(t,7,i)},s},"start"),$t=d((e,t,s)=>{let n=e.insert("g").attr("class","node default").attr("id",t.domId||t.id),i=70,r=10;s==="LR"&&(i=10,r=70);let a=n.append("rect").attr("x",-1*i/2).attr("y",-1*r/2).attr("width",i).attr("height",r).attr("class","fork-join");return B(t,a),t.height=t.height+t.padding/2,t.width=t.width+t.padding/2,t.intersect=function(l){return T.rect(t,l)},n},"forkJoin"),Hr=d((e,t)=>{let s=e.insert("g").attr("class","node default").attr("id",t.domId||t.id),n=s.insert("circle",":first-child"),i=s.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),B(t,i),t.intersect=function(r){return T.circle(t,7,r)},s},"end"),Kr=d((e,t)=>{let s=t.padding/2,n=4,i=8,r;t.classes?r="node "+t.classes:r="node default";let a=e.insert("g").attr("class",r).attr("id",t.domId||t.id),l=a.insert("rect",":first-child"),c=a.insert("line"),u=a.insert("line"),h=0,b=n,m=a.insert("g").attr("class","label"),y=0,L=t.classData.annotations?.[0],E=t.classData.annotations[0]?"\xAB"+t.classData.annotations[0]+"\xBB":"",S=m.node().appendChild(K(E,t.labelStyle,!0,!0)),C=S.getBBox();if(X(I().flowchart.htmlLabels)){let v=S.children[0],o=N(S);C=v.getBoundingClientRect(),o.attr("width",C.width),o.attr("height",C.height)}t.classData.annotations[0]&&(b+=C.height+n,h+=C.width);let _=t.classData.label;t.classData.type!==void 0&&t.classData.type!==""&&(I().flowchart.htmlLabels?_+="<"+t.classData.type+">":_+="<"+t.classData.type+">");let D=m.node().appendChild(K(_,t.labelStyle,!0,!0));N(D).attr("class","classTitle");let x=D.getBBox();if(X(I().flowchart.htmlLabels)){let v=D.children[0],o=N(D);x=v.getBoundingClientRect(),o.attr("width",x.width),o.attr("height",x.height)}b+=x.height+n,x.width>h&&(h=x.width);let g=[];t.classData.members.forEach(v=>{let o=v.getDisplayDetails(),W=o.displayText;I().flowchart.htmlLabels&&(W=W.replace(//g,">"));let p=m.node().appendChild(K(W,o.cssStyle?o.cssStyle:t.labelStyle,!0,!0)),R=p.getBBox();if(X(I().flowchart.htmlLabels)){let G=p.children[0],V=N(p);R=G.getBoundingClientRect(),V.attr("width",R.width),V.attr("height",R.height)}R.width>h&&(h=R.width),b+=R.height+n,g.push(p)}),b+=i;let f=[];if(t.classData.methods.forEach(v=>{let o=v.getDisplayDetails(),W=o.displayText;I().flowchart.htmlLabels&&(W=W.replace(//g,">"));let p=m.node().appendChild(K(W,o.cssStyle?o.cssStyle:t.labelStyle,!0,!0)),R=p.getBBox();if(X(I().flowchart.htmlLabels)){let G=p.children[0],V=N(p);R=G.getBoundingClientRect(),V.attr("width",R.width),V.attr("height",R.height)}R.width>h&&(h=R.width),b+=R.height+n,f.push(p)}),b+=i,L){let v=(h-C.width)/2;N(S).attr("transform","translate( "+(-1*h/2+v)+", "+-1*b/2+")"),y=C.height+n}let w=(h-x.width)/2;return N(D).attr("transform","translate( "+(-1*h/2+w)+", "+(-1*b/2+y)+")"),y+=x.height+n,c.attr("class","divider").attr("x1",-h/2-s).attr("x2",h/2+s).attr("y1",-b/2-s+i+y).attr("y2",-b/2-s+i+y),y+=i,g.forEach(v=>{N(v).attr("transform","translate( "+-h/2+", "+(-1*b/2+y+i/2)+")");let o=v?.getBBox();y+=(o?.height??0)+n}),y+=i,u.attr("class","divider").attr("x1",-h/2-s).attr("x2",h/2+s).attr("y1",-b/2-s+i+y).attr("y2",-b/2-s+i+y),y+=i,f.forEach(v=>{N(v).attr("transform","translate( "+-h/2+", "+(-1*b/2+y)+")");let o=v?.getBBox();y+=(o?.height??0)+n}),l.attr("style",t.style).attr("class","outer title-state").attr("x",-h/2-s).attr("y",-(b/2)-s).attr("width",h+t.padding).attr("height",b+t.padding),B(t,l),t.intersect=function(v){return T.rect(t,v)},a},"class_box"),te={rhombus:Qt,composite:Rr,question:Qt,rect:Or,labelRect:zr,rectWithTitle:Ar,choice:Sr,circle:Fr,doublecircle:Wr,stadium:Mr,hexagon:vr,block_arrow:Er,rect_left_inv_arrow:_r,lean_right:Dr,lean_left:Nr,trapezoid:Tr,inv_trapezoid:Br,rect_right_inv_arrow:Cr,cylinder:Ir,start:Yr,end:Hr,note:Lr,subroutine:Pr,fork:$t,join:$t,class_box:Kr},ct={},fe=d(async(e,t,s)=>{let n,i;if(t.link){let r;I().securityLevel==="sandbox"?r="_top":t.linkTarget&&(r=t.linkTarget||"_blank"),n=e.insert("svg:a").attr("xlink:href",t.link).attr("target",r),i=await te[t.shape](n,t,s)}else i=await te[t.shape](e,t,s),n=i;return t.tooltip&&i.attr("title",t.tooltip),t.class&&i.attr("class","node default "+t.class),ct[t.id]=n,t.haveCallback&&ct[t.id].attr("class",ct[t.id].attr("class")+" clickable"),n},"insertNode"),Xr=d(e=>{let t=ct[e.id];k.trace("Transforming node",e.diff,e,"translate("+(e.x-e.width/2-5)+", "+e.width/2+")");let s=8,n=e.diff||0;return e.clusterNode?t.attr("transform","translate("+(e.x+n-e.width/2)+", "+(e.y-e.height/2-s)+")"):t.attr("transform","translate("+e.x+", "+e.y+")"),n},"positionNode");function Tt(e,t,s=!1){let n=e,i="default";(n?.classes?.length||0)>0&&(i=(n?.classes??[]).join(" ")),i=i+" flowchart-label";let r=0,a="",l;switch(n.type){case"round":r=5,a="rect";break;case"composite":r=0,a="composite",l=0;break;case"square":a="rect";break;case"diamond":a="question";break;case"hexagon":a="hexagon";break;case"block_arrow":a="block_arrow";break;case"odd":a="rect_left_inv_arrow";break;case"lean_right":a="lean_right";break;case"lean_left":a="lean_left";break;case"trapezoid":a="trapezoid";break;case"inv_trapezoid":a="inv_trapezoid";break;case"rect_left_inv_arrow":a="rect_left_inv_arrow";break;case"circle":a="circle";break;case"ellipse":a="ellipse";break;case"stadium":a="stadium";break;case"subroutine":a="subroutine";break;case"cylinder":a="cylinder";break;case"group":a="rect";break;case"doublecircle":a="doublecircle";break;default:a="rect"}let c=Yt(n?.styles??[]),u=n.label,h=n.size??{width:0,height:0,x:0,y:0};return{labelStyle:c.labelStyle,shape:a,labelText:u,rx:r,ry:r,class:i,style:c.style,id:n.id,directions:n.directions,width:h.width,height:h.height,x:h.x,y:h.y,positioned:s,intersect:void 0,type:n.type,padding:l??$()?.block?.padding??0}}d(Tt,"getNodeFromBlock");async function be(e,t,s){let n=Tt(t,s,!1);if(n.type==="group")return;let i=$(),r=await fe(e,n,{config:i}),a=r.node().getBBox(),l=s.getBlock(n.id);l.size={width:a.width,height:a.height,x:0,y:0,node:r},s.setBlock(l),r.remove()}d(be,"calculateBlockSize");async function xe(e,t,s){let n=Tt(t,s,!0);if(s.getBlock(n.id).type!=="space"){let r=$();await fe(e,n,{config:r}),t.intersect=n?.intersect,Xr(n)}}d(xe,"insertBlockPositioned");async function gt(e,t,s,n){for(let i of t)await n(e,i,s),i.children&&await gt(e,i.children,s,n)}d(gt,"performOperations");async function ye(e,t,s){await gt(e,t,s,be)}d(ye,"calculateBlockSizes");async function me(e,t,s){await gt(e,t,s,xe)}d(me,"insertBlocks");async function we(e,t,s,n,i){let r=new Ut({multigraph:!0,compound:!0});r.setGraph({rankdir:"TB",nodesep:10,ranksep:10,marginx:8,marginy:8});for(let a of s)a.size&&r.setNode(a.id,{width:a.size.width,height:a.size.height,intersect:a.intersect});for(let a of t)if(a.start&&a.end){let l=n.getBlock(a.start),c=n.getBlock(a.end);if(l?.size&&c?.size){let u=l.size,h=c.size,b=[{x:u.x,y:u.y},{x:u.x+(h.x-u.x)/2,y:u.y+(h.y-u.y)/2},{x:h.x,y:h.y}];gr(e,{v:a.start,w:a.end,name:a.id},{...a,arrowTypeEnd:a.arrowTypeEnd,arrowTypeStart:a.arrowTypeStart,points:b,classes:"edge-thickness-normal edge-pattern-solid flowchart-link LS-a1 LE-b1"},void 0,"block",r,i),a.label&&(await cr(e,{...a,label:a.label,labelStyle:"stroke: #333; stroke-width: 1.5px;fill:none;",arrowTypeEnd:a.arrowTypeEnd,arrowTypeStart:a.arrowTypeStart,points:b,classes:"edge-thickness-normal edge-pattern-solid flowchart-link LS-a1 LE-b1"}),or({...a,x:b[1].x,y:b[1].y},{originalPath:b}))}}}d(we,"insertEdges");var Ur=d(function(e,t){return t.db.getClasses()},"getClasses"),jr=d(async function(e,t,s,n){let{securityLevel:i,block:r}=$(),a=n.db,l;i==="sandbox"&&(l=N("#i"+t));let c=i==="sandbox"?N(l.nodes()[0].contentDocument.body):N("body"),u=i==="sandbox"?c.select(`[id="${t}"]`):N(`[id="${t}"]`);ar(u,["point","circle","cross"],n.type,t);let b=a.getBlocks(),m=a.getBlocksFlat(),y=a.getEdges(),L=u.insert("g").attr("class","block");await ye(L,b,a);let E=le(a);if(await me(L,b,a),await we(L,y,m,a,t),E){let S=E,C=Math.max(1,Math.round(.125*(S.width/S.height))),_=S.height+C+10,D=S.width+10,{useMaxWidth:x}=r;At(u,_,D,!!x),k.debug("Here Bounds",E,S),u.attr("viewBox",`${S.x-5} ${S.y-5} ${S.width+10} ${S.height+10}`)}},"draw"),Vr={draw:jr,getClasses:Ur},ca={parser:ve,db:Ke,renderer:Vr,styles:Ue};export{ca as diagram}; +//# sourceMappingURL=blockDiagram-ZHA2E4KO-IZKTV5IP.min.js.map diff --git a/docs/_site/public/blockDiagram-ZHA2E4KO-IZKTV5IP.min.js.map b/docs/_site/public/blockDiagram-ZHA2E4KO-IZKTV5IP.min.js.map new file mode 100644 index 0000000..f660d66 --- /dev/null +++ b/docs/_site/public/blockDiagram-ZHA2E4KO-IZKTV5IP.min.js.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": ["../../node_modules/mermaid/dist/chunks/mermaid.core/blockDiagram-ZHA2E4KO.mjs"], + "sourcesContent": ["import {\n getLineFunctionsWithOffset\n} from \"./chunk-3JNJP5BE.mjs\";\nimport {\n getSubGraphTitleMargins\n} from \"./chunk-3X56UNUX.mjs\";\nimport {\n createText,\n replaceIconSubstring\n} from \"./chunk-6JOS74DS.mjs\";\nimport {\n decodeEntities,\n getStylesFromArray,\n utils_default\n} from \"./chunk-7DKRZKHE.mjs\";\nimport {\n __name,\n clear,\n common_default,\n configureSvgSize,\n evaluate,\n getConfig,\n getConfig2,\n log,\n sanitizeText\n} from \"./chunk-6DBFFHIP.mjs\";\n\n// src/diagrams/block/parser/block.jison\nvar parser = function() {\n var o = /* @__PURE__ */ __name(function(k, v, o2, l) {\n for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v) ;\n return o2;\n }, \"o\"), $V0 = [1, 7], $V1 = [1, 13], $V2 = [1, 14], $V3 = [1, 15], $V4 = [1, 19], $V5 = [1, 16], $V6 = [1, 17], $V7 = [1, 18], $V8 = [8, 30], $V9 = [8, 21, 28, 29, 30, 31, 32, 40, 44, 47], $Va = [1, 23], $Vb = [1, 24], $Vc = [8, 15, 16, 21, 28, 29, 30, 31, 32, 40, 44, 47], $Vd = [8, 15, 16, 21, 27, 28, 29, 30, 31, 32, 40, 44, 47], $Ve = [1, 49];\n var parser2 = {\n trace: /* @__PURE__ */ __name(function trace() {\n }, \"trace\"),\n yy: {},\n 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, \"block\": 31, \"NODE_ID\": 32, \"nodeShapeNLabel\": 33, \"dirList\": 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\": 49, \"$accept\": 0, \"$end\": 1 },\n 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: \"block\", 32: \"NODE_ID\", 35: \"DIR\", 36: \"NODE_DSTART\", 37: \"NODE_DEND\", 38: \"BLOCK_ARROW_START\", 39: \"BLOCK_ARROW_END\", 40: \"classDef\", 41: \"CLASSDEF_ID\", 42: \"CLASSDEF_STYLEOPTS\", 43: \"DEFAULT\", 44: \"class\", 45: \"CLASSENTITY_IDS\", 46: \"STYLECLASS\", 47: \"style\", 48: \"STYLE_ENTITY_IDS\", 49: \"STYLE_DEFINITION_DATA\" },\n 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], [34, 1], [34, 2], [33, 3], [33, 4], [23, 3], [23, 3], [24, 3], [25, 3]],\n performAction: /* @__PURE__ */ __name(function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {\n var $0 = $$.length - 1;\n switch (yystate) {\n case 4:\n yy.getLogger().debug(\"Rule: separator (NL) \");\n break;\n case 5:\n yy.getLogger().debug(\"Rule: separator (Space) \");\n break;\n case 6:\n yy.getLogger().debug(\"Rule: separator (EOF) \");\n break;\n case 7:\n yy.getLogger().debug(\"Rule: hierarchy: \", $$[$0 - 1]);\n yy.setHierarchy($$[$0 - 1]);\n break;\n case 8:\n yy.getLogger().debug(\"Stop NL \");\n break;\n case 9:\n yy.getLogger().debug(\"Stop EOF \");\n break;\n case 10:\n yy.getLogger().debug(\"Stop NL2 \");\n break;\n case 11:\n yy.getLogger().debug(\"Stop EOF2 \");\n break;\n case 12:\n yy.getLogger().debug(\"Rule: statement: \", $$[$0]);\n typeof $$[$0].length === \"number\" ? this.$ = $$[$0] : this.$ = [$$[$0]];\n break;\n case 13:\n yy.getLogger().debug(\"Rule: statement #2: \", $$[$0 - 1]);\n this.$ = [$$[$0 - 1]].concat($$[$0]);\n break;\n case 14:\n yy.getLogger().debug(\"Rule: link: \", $$[$0], yytext);\n this.$ = { edgeTypeStr: $$[$0], label: \"\" };\n break;\n case 15:\n yy.getLogger().debug(\"Rule: LABEL link: \", $$[$0 - 3], $$[$0 - 1], $$[$0]);\n this.$ = { edgeTypeStr: $$[$0], label: $$[$0 - 1] };\n break;\n case 18:\n const num = parseInt($$[$0]);\n const spaceId = yy.generateId();\n this.$ = { id: spaceId, type: \"space\", label: \"\", width: num, children: [] };\n break;\n case 23:\n yy.getLogger().debug(\"Rule: (nodeStatement link node) \", $$[$0 - 2], $$[$0 - 1], $$[$0], \" typestr: \", $$[$0 - 1].edgeTypeStr);\n const edgeData = yy.edgeStrToEdgeData($$[$0 - 1].edgeTypeStr);\n this.$ = [\n { id: $$[$0 - 2].id, label: $$[$0 - 2].label, type: $$[$0 - 2].type, directions: $$[$0 - 2].directions },\n { id: $$[$0 - 2].id + \"-\" + $$[$0].id, start: $$[$0 - 2].id, end: $$[$0].id, label: $$[$0 - 1].label, type: \"edge\", directions: $$[$0].directions, arrowTypeEnd: edgeData, arrowTypeStart: \"arrow_open\" },\n { id: $$[$0].id, label: $$[$0].label, type: yy.typeStr2Type($$[$0].typeStr), directions: $$[$0].directions }\n ];\n break;\n case 24:\n yy.getLogger().debug(\"Rule: nodeStatement (abc88 node size) \", $$[$0 - 1], $$[$0]);\n this.$ = { id: $$[$0 - 1].id, label: $$[$0 - 1].label, type: yy.typeStr2Type($$[$0 - 1].typeStr), directions: $$[$0 - 1].directions, widthInColumns: parseInt($$[$0], 10) };\n break;\n case 25:\n yy.getLogger().debug(\"Rule: nodeStatement (node) \", $$[$0]);\n this.$ = { id: $$[$0].id, label: $$[$0].label, type: yy.typeStr2Type($$[$0].typeStr), directions: $$[$0].directions, widthInColumns: 1 };\n break;\n case 26:\n yy.getLogger().debug(\"APA123\", this ? this : \"na\");\n yy.getLogger().debug(\"COLUMNS: \", $$[$0]);\n this.$ = { type: \"column-setting\", columns: $$[$0] === \"auto\" ? -1 : parseInt($$[$0]) };\n break;\n case 27:\n yy.getLogger().debug(\"Rule: id-block statement : \", $$[$0 - 2], $$[$0 - 1]);\n const id2 = yy.generateId();\n this.$ = { ...$$[$0 - 2], type: \"composite\", children: $$[$0 - 1] };\n break;\n case 28:\n yy.getLogger().debug(\"Rule: blockStatement : \", $$[$0 - 2], $$[$0 - 1], $$[$0]);\n const id = yy.generateId();\n this.$ = { id, type: \"composite\", label: \"\", children: $$[$0 - 1] };\n break;\n case 29:\n yy.getLogger().debug(\"Rule: node (NODE_ID separator): \", $$[$0]);\n this.$ = { id: $$[$0] };\n break;\n case 30:\n yy.getLogger().debug(\"Rule: node (NODE_ID nodeShapeNLabel separator): \", $$[$0 - 1], $$[$0]);\n this.$ = { id: $$[$0 - 1], label: $$[$0].label, typeStr: $$[$0].typeStr, directions: $$[$0].directions };\n break;\n case 31:\n yy.getLogger().debug(\"Rule: dirList: \", $$[$0]);\n this.$ = [$$[$0]];\n break;\n case 32:\n yy.getLogger().debug(\"Rule: dirList: \", $$[$0 - 1], $$[$0]);\n this.$ = [$$[$0 - 1]].concat($$[$0]);\n break;\n case 33:\n yy.getLogger().debug(\"Rule: nodeShapeNLabel: \", $$[$0 - 2], $$[$0 - 1], $$[$0]);\n this.$ = { typeStr: $$[$0 - 2] + $$[$0], label: $$[$0 - 1] };\n break;\n case 34:\n yy.getLogger().debug(\"Rule: BLOCK_ARROW nodeShapeNLabel: \", $$[$0 - 3], $$[$0 - 2], \" #3:\", $$[$0 - 1], $$[$0]);\n this.$ = { typeStr: $$[$0 - 3] + $$[$0], label: $$[$0 - 2], directions: $$[$0 - 1] };\n break;\n case 35:\n case 36:\n this.$ = { type: \"classDef\", id: $$[$0 - 1].trim(), css: $$[$0].trim() };\n break;\n case 37:\n this.$ = { type: \"applyClass\", id: $$[$0 - 1].trim(), styleClass: $$[$0].trim() };\n break;\n case 38:\n this.$ = { type: \"applyStyles\", id: $$[$0 - 1].trim(), stylesStr: $$[$0].trim() };\n break;\n }\n }, \"anonymous\"),\n table: [{ 9: 1, 10: [1, 2] }, { 1: [3] }, { 11: 3, 13: 4, 19: 5, 20: 6, 21: $V0, 22: 8, 23: 9, 24: 10, 25: 11, 26: 12, 28: $V1, 29: $V2, 31: $V3, 32: $V4, 40: $V5, 44: $V6, 47: $V7 }, { 8: [1, 20] }, o($V8, [2, 12], { 13: 4, 19: 5, 20: 6, 22: 8, 23: 9, 24: 10, 25: 11, 26: 12, 11: 21, 21: $V0, 28: $V1, 29: $V2, 31: $V3, 32: $V4, 40: $V5, 44: $V6, 47: $V7 }), o($V9, [2, 16], { 14: 22, 15: $Va, 16: $Vb }), o($V9, [2, 17]), o($V9, [2, 18]), o($V9, [2, 19]), o($V9, [2, 20]), o($V9, [2, 21]), o($V9, [2, 22]), o($Vc, [2, 25], { 27: [1, 25] }), o($V9, [2, 26]), { 19: 26, 26: 12, 32: $V4 }, { 11: 27, 13: 4, 19: 5, 20: 6, 21: $V0, 22: 8, 23: 9, 24: 10, 25: 11, 26: 12, 28: $V1, 29: $V2, 31: $V3, 32: $V4, 40: $V5, 44: $V6, 47: $V7 }, { 41: [1, 28], 43: [1, 29] }, { 45: [1, 30] }, { 48: [1, 31] }, o($Vd, [2, 29], { 33: 32, 36: [1, 33], 38: [1, 34] }), { 1: [2, 7] }, o($V8, [2, 13]), { 26: 35, 32: $V4 }, { 32: [2, 14] }, { 17: [1, 36] }, o($Vc, [2, 24]), { 11: 37, 13: 4, 14: 22, 15: $Va, 16: $Vb, 19: 5, 20: 6, 21: $V0, 22: 8, 23: 9, 24: 10, 25: 11, 26: 12, 28: $V1, 29: $V2, 31: $V3, 32: $V4, 40: $V5, 44: $V6, 47: $V7 }, { 30: [1, 38] }, { 42: [1, 39] }, { 42: [1, 40] }, { 46: [1, 41] }, { 49: [1, 42] }, o($Vd, [2, 30]), { 18: [1, 43] }, { 18: [1, 44] }, o($Vc, [2, 23]), { 18: [1, 45] }, { 30: [1, 46] }, o($V9, [2, 28]), o($V9, [2, 35]), o($V9, [2, 36]), o($V9, [2, 37]), o($V9, [2, 38]), { 37: [1, 47] }, { 34: 48, 35: $Ve }, { 15: [1, 50] }, o($V9, [2, 27]), o($Vd, [2, 33]), { 39: [1, 51] }, { 34: 52, 35: $Ve, 39: [2, 31] }, { 32: [2, 15] }, o($Vd, [2, 34]), { 39: [2, 32] }],\n defaultActions: { 20: [2, 7], 23: [2, 14], 50: [2, 15], 52: [2, 32] },\n parseError: /* @__PURE__ */ __name(function parseError(str, hash) {\n if (hash.recoverable) {\n this.trace(str);\n } else {\n var error = new Error(str);\n error.hash = hash;\n throw error;\n }\n }, \"parseError\"),\n parse: /* @__PURE__ */ __name(function parse(input) {\n var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = \"\", yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1;\n var args = lstack.slice.call(arguments, 1);\n var lexer2 = Object.create(this.lexer);\n var sharedState = { yy: {} };\n for (var k in this.yy) {\n if (Object.prototype.hasOwnProperty.call(this.yy, k)) {\n sharedState.yy[k] = this.yy[k];\n }\n }\n lexer2.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer2;\n sharedState.yy.parser = this;\n if (typeof lexer2.yylloc == \"undefined\") {\n lexer2.yylloc = {};\n }\n var yyloc = lexer2.yylloc;\n lstack.push(yyloc);\n var ranges = lexer2.options && lexer2.options.ranges;\n if (typeof sharedState.yy.parseError === \"function\") {\n this.parseError = sharedState.yy.parseError;\n } else {\n this.parseError = Object.getPrototypeOf(this).parseError;\n }\n function popStack(n) {\n stack.length = stack.length - 2 * n;\n vstack.length = vstack.length - n;\n lstack.length = lstack.length - n;\n }\n __name(popStack, \"popStack\");\n function lex() {\n var token;\n token = tstack.pop() || lexer2.lex() || EOF;\n if (typeof token !== \"number\") {\n if (token instanceof Array) {\n tstack = token;\n token = tstack.pop();\n }\n token = self.symbols_[token] || token;\n }\n return token;\n }\n __name(lex, \"lex\");\n var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected;\n while (true) {\n state = stack[stack.length - 1];\n if (this.defaultActions[state]) {\n action = this.defaultActions[state];\n } else {\n if (symbol === null || typeof symbol == \"undefined\") {\n symbol = lex();\n }\n action = table[state] && table[state][symbol];\n }\n if (typeof action === \"undefined\" || !action.length || !action[0]) {\n var errStr = \"\";\n expected = [];\n for (p in table[state]) {\n if (this.terminals_[p] && p > TERROR) {\n expected.push(\"'\" + this.terminals_[p] + \"'\");\n }\n }\n if (lexer2.showPosition) {\n errStr = \"Parse error on line \" + (yylineno + 1) + \":\\n\" + lexer2.showPosition() + \"\\nExpecting \" + expected.join(\", \") + \", got '\" + (this.terminals_[symbol] || symbol) + \"'\";\n } else {\n errStr = \"Parse error on line \" + (yylineno + 1) + \": Unexpected \" + (symbol == EOF ? \"end of input\" : \"'\" + (this.terminals_[symbol] || symbol) + \"'\");\n }\n this.parseError(errStr, {\n text: lexer2.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer2.yylineno,\n loc: yyloc,\n expected\n });\n }\n if (action[0] instanceof Array && action.length > 1) {\n throw new Error(\"Parse Error: multiple actions possible at state: \" + state + \", token: \" + symbol);\n }\n switch (action[0]) {\n case 1:\n stack.push(symbol);\n vstack.push(lexer2.yytext);\n lstack.push(lexer2.yylloc);\n stack.push(action[1]);\n symbol = null;\n if (!preErrorSymbol) {\n yyleng = lexer2.yyleng;\n yytext = lexer2.yytext;\n yylineno = lexer2.yylineno;\n yyloc = lexer2.yylloc;\n if (recovering > 0) {\n recovering--;\n }\n } else {\n symbol = preErrorSymbol;\n preErrorSymbol = null;\n }\n break;\n case 2:\n len = this.productions_[action[1]][1];\n yyval.$ = vstack[vstack.length - len];\n yyval._$ = {\n first_line: lstack[lstack.length - (len || 1)].first_line,\n last_line: lstack[lstack.length - 1].last_line,\n first_column: lstack[lstack.length - (len || 1)].first_column,\n last_column: lstack[lstack.length - 1].last_column\n };\n if (ranges) {\n yyval._$.range = [\n lstack[lstack.length - (len || 1)].range[0],\n lstack[lstack.length - 1].range[1]\n ];\n }\n r = this.performAction.apply(yyval, [\n yytext,\n yyleng,\n yylineno,\n sharedState.yy,\n action[1],\n vstack,\n lstack\n ].concat(args));\n if (typeof r !== \"undefined\") {\n return r;\n }\n if (len) {\n stack = stack.slice(0, -1 * len * 2);\n vstack = vstack.slice(0, -1 * len);\n lstack = lstack.slice(0, -1 * len);\n }\n stack.push(this.productions_[action[1]][0]);\n vstack.push(yyval.$);\n lstack.push(yyval._$);\n newState = table[stack[stack.length - 2]][stack[stack.length - 1]];\n stack.push(newState);\n break;\n case 3:\n return true;\n }\n }\n return true;\n }, \"parse\")\n };\n var lexer = /* @__PURE__ */ function() {\n var lexer2 = {\n EOF: 1,\n parseError: /* @__PURE__ */ __name(function parseError(str, hash) {\n if (this.yy.parser) {\n this.yy.parser.parseError(str, hash);\n } else {\n throw new Error(str);\n }\n }, \"parseError\"),\n // resets the lexer, sets new input\n setInput: /* @__PURE__ */ __name(function(input, yy) {\n this.yy = yy || this.yy || {};\n this._input = input;\n this._more = this._backtrack = this.done = false;\n this.yylineno = this.yyleng = 0;\n this.yytext = this.matched = this.match = \"\";\n this.conditionStack = [\"INITIAL\"];\n this.yylloc = {\n first_line: 1,\n first_column: 0,\n last_line: 1,\n last_column: 0\n };\n if (this.options.ranges) {\n this.yylloc.range = [0, 0];\n }\n this.offset = 0;\n return this;\n }, \"setInput\"),\n // consumes and returns one char from the input\n input: /* @__PURE__ */ __name(function() {\n var ch = this._input[0];\n this.yytext += ch;\n this.yyleng++;\n this.offset++;\n this.match += ch;\n this.matched += ch;\n var lines = ch.match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno++;\n this.yylloc.last_line++;\n } else {\n this.yylloc.last_column++;\n }\n if (this.options.ranges) {\n this.yylloc.range[1]++;\n }\n this._input = this._input.slice(1);\n return ch;\n }, \"input\"),\n // unshifts one char (or a string) into the input\n unput: /* @__PURE__ */ __name(function(ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n this.offset -= len;\n var oldLines = this.match.split(/(?:\\r\\n?|\\n)/g);\n this.match = this.match.substr(0, this.match.length - 1);\n this.matched = this.matched.substr(0, this.matched.length - 1);\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n this.yylloc = {\n first_line: this.yylloc.first_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.first_column,\n last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len\n };\n if (this.options.ranges) {\n this.yylloc.range = [r[0], r[0] + this.yyleng - len];\n }\n this.yyleng = this.yytext.length;\n return this;\n }, \"unput\"),\n // When called from action, caches matched text and appends it on next action\n more: /* @__PURE__ */ __name(function() {\n this._more = true;\n return this;\n }, \"more\"),\n // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.\n reject: /* @__PURE__ */ __name(function() {\n if (this.options.backtrack_lexer) {\n this._backtrack = true;\n } else {\n 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).\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n return this;\n }, \"reject\"),\n // retain first n characters of the match\n less: /* @__PURE__ */ __name(function(n) {\n this.unput(this.match.slice(n));\n }, \"less\"),\n // displays already matched input, i.e. for error messages\n pastInput: /* @__PURE__ */ __name(function() {\n var past = this.matched.substr(0, this.matched.length - this.match.length);\n return (past.length > 20 ? \"...\" : \"\") + past.substr(-20).replace(/\\n/g, \"\");\n }, \"pastInput\"),\n // displays upcoming input, i.e. for error messages\n upcomingInput: /* @__PURE__ */ __name(function() {\n var next = this.match;\n if (next.length < 20) {\n next += this._input.substr(0, 20 - next.length);\n }\n return (next.substr(0, 20) + (next.length > 20 ? \"...\" : \"\")).replace(/\\n/g, \"\");\n }, \"upcomingInput\"),\n // displays the character position where the lexing error occurred, i.e. for error messages\n showPosition: /* @__PURE__ */ __name(function() {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n }, \"showPosition\"),\n // test the lexed token: return FALSE when not a match, otherwise return token\n test_match: /* @__PURE__ */ __name(function(match, indexed_rule) {\n var token, lines, backup;\n if (this.options.backtrack_lexer) {\n backup = {\n yylineno: this.yylineno,\n yylloc: {\n first_line: this.yylloc.first_line,\n last_line: this.last_line,\n first_column: this.yylloc.first_column,\n last_column: this.yylloc.last_column\n },\n yytext: this.yytext,\n match: this.match,\n matches: this.matches,\n matched: this.matched,\n yyleng: this.yyleng,\n offset: this.offset,\n _more: this._more,\n _input: this._input,\n yy: this.yy,\n conditionStack: this.conditionStack.slice(0),\n done: this.done\n };\n if (this.options.ranges) {\n backup.yylloc.range = this.yylloc.range.slice(0);\n }\n }\n lines = match[0].match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno += lines.length;\n }\n this.yylloc = {\n first_line: this.yylloc.last_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.last_column,\n last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length : this.yylloc.last_column + match[0].length\n };\n this.yytext += match[0];\n this.match += match[0];\n this.matches = match;\n this.yyleng = this.yytext.length;\n if (this.options.ranges) {\n this.yylloc.range = [this.offset, this.offset += this.yyleng];\n }\n this._more = false;\n this._backtrack = false;\n this._input = this._input.slice(match[0].length);\n this.matched += match[0];\n token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);\n if (this.done && this._input) {\n this.done = false;\n }\n if (token) {\n return token;\n } else if (this._backtrack) {\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false;\n }\n return false;\n }, \"test_match\"),\n // return next match in input\n next: /* @__PURE__ */ __name(function() {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n var token, match, tempMatch, index;\n if (!this._more) {\n this.yytext = \"\";\n this.match = \"\";\n }\n var rules = this._currentRules();\n for (var i = 0; i < rules.length; i++) {\n tempMatch = this._input.match(this.rules[rules[i]]);\n if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {\n match = tempMatch;\n index = i;\n if (this.options.backtrack_lexer) {\n token = this.test_match(tempMatch, rules[i]);\n if (token !== false) {\n return token;\n } else if (this._backtrack) {\n match = false;\n continue;\n } else {\n return false;\n }\n } else if (!this.options.flex) {\n break;\n }\n }\n }\n if (match) {\n token = this.test_match(match, rules[index]);\n if (token !== false) {\n return token;\n }\n return false;\n }\n if (this._input === \"\") {\n return this.EOF;\n } else {\n return this.parseError(\"Lexical error on line \" + (this.yylineno + 1) + \". Unrecognized text.\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n }, \"next\"),\n // return next match that has a token\n lex: /* @__PURE__ */ __name(function lex() {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n }, \"lex\"),\n // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\n begin: /* @__PURE__ */ __name(function begin(condition) {\n this.conditionStack.push(condition);\n }, \"begin\"),\n // pop the previously active lexer condition state off the condition stack\n popState: /* @__PURE__ */ __name(function popState() {\n var n = this.conditionStack.length - 1;\n if (n > 0) {\n return this.conditionStack.pop();\n } else {\n return this.conditionStack[0];\n }\n }, \"popState\"),\n // produce the lexer rule set which is active for the currently active lexer condition state\n _currentRules: /* @__PURE__ */ __name(function _currentRules() {\n if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {\n return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;\n } else {\n return this.conditions[\"INITIAL\"].rules;\n }\n }, \"_currentRules\"),\n // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\n topState: /* @__PURE__ */ __name(function topState(n) {\n n = this.conditionStack.length - 1 - Math.abs(n || 0);\n if (n >= 0) {\n return this.conditionStack[n];\n } else {\n return \"INITIAL\";\n }\n }, \"topState\"),\n // alias for begin(condition)\n pushState: /* @__PURE__ */ __name(function pushState(condition) {\n this.begin(condition);\n }, \"pushState\"),\n // return the number of states currently on the stack\n stateStackSize: /* @__PURE__ */ __name(function stateStackSize() {\n return this.conditionStack.length;\n }, \"stateStackSize\"),\n options: {},\n performAction: /* @__PURE__ */ __name(function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {\n var YYSTATE = YY_START;\n switch ($avoiding_name_collisions) {\n case 0:\n return 10;\n break;\n case 1:\n yy.getLogger().debug(\"Found space-block\");\n return 31;\n break;\n case 2:\n yy.getLogger().debug(\"Found nl-block\");\n return 31;\n break;\n case 3:\n yy.getLogger().debug(\"Found space-block\");\n return 29;\n break;\n case 4:\n yy.getLogger().debug(\".\", yy_.yytext);\n break;\n case 5:\n yy.getLogger().debug(\"_\", yy_.yytext);\n break;\n case 6:\n return 5;\n break;\n case 7:\n yy_.yytext = -1;\n return 28;\n break;\n case 8:\n yy_.yytext = yy_.yytext.replace(/columns\\s+/, \"\");\n yy.getLogger().debug(\"COLUMNS (LEX)\", yy_.yytext);\n return 28;\n break;\n case 9:\n this.pushState(\"md_string\");\n break;\n case 10:\n return \"MD_STR\";\n break;\n case 11:\n this.popState();\n break;\n case 12:\n this.pushState(\"string\");\n break;\n case 13:\n yy.getLogger().debug(\"LEX: POPPING STR:\", yy_.yytext);\n this.popState();\n break;\n case 14:\n yy.getLogger().debug(\"LEX: STR end:\", yy_.yytext);\n return \"STR\";\n break;\n case 15:\n yy_.yytext = yy_.yytext.replace(/space\\:/, \"\");\n yy.getLogger().debug(\"SPACE NUM (LEX)\", yy_.yytext);\n return 21;\n break;\n case 16:\n yy_.yytext = \"1\";\n yy.getLogger().debug(\"COLUMNS (LEX)\", yy_.yytext);\n return 21;\n break;\n case 17:\n return 43;\n break;\n case 18:\n return \"LINKSTYLE\";\n break;\n case 19:\n return \"INTERPOLATE\";\n break;\n case 20:\n this.pushState(\"CLASSDEF\");\n return 40;\n break;\n case 21:\n this.popState();\n this.pushState(\"CLASSDEFID\");\n return \"DEFAULT_CLASSDEF_ID\";\n break;\n case 22:\n this.popState();\n this.pushState(\"CLASSDEFID\");\n return 41;\n break;\n case 23:\n this.popState();\n return 42;\n break;\n case 24:\n this.pushState(\"CLASS\");\n return 44;\n break;\n case 25:\n this.popState();\n this.pushState(\"CLASS_STYLE\");\n return 45;\n break;\n case 26:\n this.popState();\n return 46;\n break;\n case 27:\n this.pushState(\"STYLE_STMNT\");\n return 47;\n break;\n case 28:\n this.popState();\n this.pushState(\"STYLE_DEFINITION\");\n return 48;\n break;\n case 29:\n this.popState();\n return 49;\n break;\n case 30:\n this.pushState(\"acc_title\");\n return \"acc_title\";\n break;\n case 31:\n this.popState();\n return \"acc_title_value\";\n break;\n case 32:\n this.pushState(\"acc_descr\");\n return \"acc_descr\";\n break;\n case 33:\n this.popState();\n return \"acc_descr_value\";\n break;\n case 34:\n this.pushState(\"acc_descr_multiline\");\n break;\n case 35:\n this.popState();\n break;\n case 36:\n return \"acc_descr_multiline_value\";\n break;\n case 37:\n return 30;\n break;\n case 38:\n this.popState();\n yy.getLogger().debug(\"Lex: ((\");\n return \"NODE_DEND\";\n break;\n case 39:\n this.popState();\n yy.getLogger().debug(\"Lex: ((\");\n return \"NODE_DEND\";\n break;\n case 40:\n this.popState();\n yy.getLogger().debug(\"Lex: ))\");\n return \"NODE_DEND\";\n break;\n case 41:\n this.popState();\n yy.getLogger().debug(\"Lex: ((\");\n return \"NODE_DEND\";\n break;\n case 42:\n this.popState();\n yy.getLogger().debug(\"Lex: ((\");\n return \"NODE_DEND\";\n break;\n case 43:\n this.popState();\n yy.getLogger().debug(\"Lex: (-\");\n return \"NODE_DEND\";\n break;\n case 44:\n this.popState();\n yy.getLogger().debug(\"Lex: -)\");\n return \"NODE_DEND\";\n break;\n case 45:\n this.popState();\n yy.getLogger().debug(\"Lex: ((\");\n return \"NODE_DEND\";\n break;\n case 46:\n this.popState();\n yy.getLogger().debug(\"Lex: ]]\");\n return \"NODE_DEND\";\n break;\n case 47:\n this.popState();\n yy.getLogger().debug(\"Lex: (\");\n return \"NODE_DEND\";\n break;\n case 48:\n this.popState();\n yy.getLogger().debug(\"Lex: ])\");\n return \"NODE_DEND\";\n break;\n case 49:\n this.popState();\n yy.getLogger().debug(\"Lex: /]\");\n return \"NODE_DEND\";\n break;\n case 50:\n this.popState();\n yy.getLogger().debug(\"Lex: /]\");\n return \"NODE_DEND\";\n break;\n case 51:\n this.popState();\n yy.getLogger().debug(\"Lex: )]\");\n return \"NODE_DEND\";\n break;\n case 52:\n this.popState();\n yy.getLogger().debug(\"Lex: )\");\n return \"NODE_DEND\";\n break;\n case 53:\n this.popState();\n yy.getLogger().debug(\"Lex: ]>\");\n return \"NODE_DEND\";\n break;\n case 54:\n this.popState();\n yy.getLogger().debug(\"Lex: ]\");\n return \"NODE_DEND\";\n break;\n case 55:\n yy.getLogger().debug(\"Lexa: -)\");\n this.pushState(\"NODE\");\n return 36;\n break;\n case 56:\n yy.getLogger().debug(\"Lexa: (-\");\n this.pushState(\"NODE\");\n return 36;\n break;\n case 57:\n yy.getLogger().debug(\"Lexa: ))\");\n this.pushState(\"NODE\");\n return 36;\n break;\n case 58:\n yy.getLogger().debug(\"Lexa: )\");\n this.pushState(\"NODE\");\n return 36;\n break;\n case 59:\n yy.getLogger().debug(\"Lex: (((\");\n this.pushState(\"NODE\");\n return 36;\n break;\n case 60:\n yy.getLogger().debug(\"Lexa: )\");\n this.pushState(\"NODE\");\n return 36;\n break;\n case 61:\n yy.getLogger().debug(\"Lexa: )\");\n this.pushState(\"NODE\");\n return 36;\n break;\n case 62:\n yy.getLogger().debug(\"Lexa: )\");\n this.pushState(\"NODE\");\n return 36;\n break;\n case 63:\n yy.getLogger().debug(\"Lexc: >\");\n this.pushState(\"NODE\");\n return 36;\n break;\n case 64:\n yy.getLogger().debug(\"Lexa: ([\");\n this.pushState(\"NODE\");\n return 36;\n break;\n case 65:\n yy.getLogger().debug(\"Lexa: )\");\n this.pushState(\"NODE\");\n return 36;\n break;\n case 66:\n this.pushState(\"NODE\");\n return 36;\n break;\n case 67:\n this.pushState(\"NODE\");\n return 36;\n break;\n case 68:\n this.pushState(\"NODE\");\n return 36;\n break;\n case 69:\n this.pushState(\"NODE\");\n return 36;\n break;\n case 70:\n this.pushState(\"NODE\");\n return 36;\n break;\n case 71:\n this.pushState(\"NODE\");\n return 36;\n break;\n case 72:\n this.pushState(\"NODE\");\n return 36;\n break;\n case 73:\n yy.getLogger().debug(\"Lexa: [\");\n this.pushState(\"NODE\");\n return 36;\n break;\n case 74:\n this.pushState(\"BLOCK_ARROW\");\n yy.getLogger().debug(\"LEX ARR START\");\n return 38;\n break;\n case 75:\n yy.getLogger().debug(\"Lex: NODE_ID\", yy_.yytext);\n return 32;\n break;\n case 76:\n yy.getLogger().debug(\"Lex: EOF\", yy_.yytext);\n return 8;\n break;\n case 77:\n this.pushState(\"md_string\");\n break;\n case 78:\n this.pushState(\"md_string\");\n break;\n case 79:\n return \"NODE_DESCR\";\n break;\n case 80:\n this.popState();\n break;\n case 81:\n yy.getLogger().debug(\"Lex: Starting string\");\n this.pushState(\"string\");\n break;\n case 82:\n yy.getLogger().debug(\"LEX ARR: Starting string\");\n this.pushState(\"string\");\n break;\n case 83:\n yy.getLogger().debug(\"LEX: NODE_DESCR:\", yy_.yytext);\n return \"NODE_DESCR\";\n break;\n case 84:\n yy.getLogger().debug(\"LEX POPPING\");\n this.popState();\n break;\n case 85:\n yy.getLogger().debug(\"Lex: =>BAE\");\n this.pushState(\"ARROW_DIR\");\n break;\n case 86:\n yy_.yytext = yy_.yytext.replace(/^,\\s*/, \"\");\n yy.getLogger().debug(\"Lex (right): dir:\", yy_.yytext);\n return \"DIR\";\n break;\n case 87:\n yy_.yytext = yy_.yytext.replace(/^,\\s*/, \"\");\n yy.getLogger().debug(\"Lex (left):\", yy_.yytext);\n return \"DIR\";\n break;\n case 88:\n yy_.yytext = yy_.yytext.replace(/^,\\s*/, \"\");\n yy.getLogger().debug(\"Lex (x):\", yy_.yytext);\n return \"DIR\";\n break;\n case 89:\n yy_.yytext = yy_.yytext.replace(/^,\\s*/, \"\");\n yy.getLogger().debug(\"Lex (y):\", yy_.yytext);\n return \"DIR\";\n break;\n case 90:\n yy_.yytext = yy_.yytext.replace(/^,\\s*/, \"\");\n yy.getLogger().debug(\"Lex (up):\", yy_.yytext);\n return \"DIR\";\n break;\n case 91:\n yy_.yytext = yy_.yytext.replace(/^,\\s*/, \"\");\n yy.getLogger().debug(\"Lex (down):\", yy_.yytext);\n return \"DIR\";\n break;\n case 92:\n yy_.yytext = \"]>\";\n yy.getLogger().debug(\"Lex (ARROW_DIR end):\", yy_.yytext);\n this.popState();\n this.popState();\n return \"BLOCK_ARROW_END\";\n break;\n case 93:\n yy.getLogger().debug(\"Lex: LINK\", \"#\" + yy_.yytext + \"#\");\n return 15;\n break;\n case 94:\n yy.getLogger().debug(\"Lex: LINK\", yy_.yytext);\n return 15;\n break;\n case 95:\n yy.getLogger().debug(\"Lex: LINK\", yy_.yytext);\n return 15;\n break;\n case 96:\n yy.getLogger().debug(\"Lex: LINK\", yy_.yytext);\n return 15;\n break;\n case 97:\n yy.getLogger().debug(\"Lex: START_LINK\", yy_.yytext);\n this.pushState(\"LLABEL\");\n return 16;\n break;\n case 98:\n yy.getLogger().debug(\"Lex: START_LINK\", yy_.yytext);\n this.pushState(\"LLABEL\");\n return 16;\n break;\n case 99:\n yy.getLogger().debug(\"Lex: START_LINK\", yy_.yytext);\n this.pushState(\"LLABEL\");\n return 16;\n break;\n case 100:\n this.pushState(\"md_string\");\n break;\n case 101:\n yy.getLogger().debug(\"Lex: Starting string\");\n this.pushState(\"string\");\n return \"LINK_LABEL\";\n break;\n case 102:\n this.popState();\n yy.getLogger().debug(\"Lex: LINK\", \"#\" + yy_.yytext + \"#\");\n return 15;\n break;\n case 103:\n this.popState();\n yy.getLogger().debug(\"Lex: LINK\", yy_.yytext);\n return 15;\n break;\n case 104:\n this.popState();\n yy.getLogger().debug(\"Lex: LINK\", yy_.yytext);\n return 15;\n break;\n case 105:\n yy.getLogger().debug(\"Lex: COLON\", yy_.yytext);\n yy_.yytext = yy_.yytext.slice(1);\n return 27;\n break;\n }\n }, \"anonymous\"),\n rules: [/^(?:block-beta\\b)/, /^(?:block\\s+)/, /^(?:block\\n+)/, /^(?:block:)/, /^(?:[\\s]+)/, /^(?:[\\n]+)/, /^(?:((\\u000D\\u000A)|(\\u000A)))/, /^(?:columns\\s+auto\\b)/, /^(?:columns\\s+[\\d]+)/, /^(?:[\"][`])/, /^(?:[^`\"]+)/, /^(?:[`][\"])/, /^(?:[\"])/, /^(?:[\"])/, /^(?:[^\"]*)/, /^(?:space[:]\\d+)/, /^(?:space\\b)/, /^(?:default\\b)/, /^(?:linkStyle\\b)/, /^(?:interpolate\\b)/, /^(?:classDef\\s+)/, /^(?:DEFAULT\\s+)/, /^(?:\\w+\\s+)/, /^(?:[^\\n]*)/, /^(?:class\\s+)/, /^(?:(\\w+)+((,\\s*\\w+)*))/, /^(?:[^\\n]*)/, /^(?:style\\s+)/, /^(?:(\\w+)+((,\\s*\\w+)*))/, /^(?:[^\\n]*)/, /^(?:accTitle\\s*:\\s*)/, /^(?:(?!\\n||)*[^\\n]*)/, /^(?:accDescr\\s*:\\s*)/, /^(?:(?!\\n||)*[^\\n]*)/, /^(?:accDescr\\s*\\{\\s*)/, /^(?:[\\}])/, /^(?:[^\\}]*)/, /^(?:end\\b\\s*)/, /^(?:\\(\\(\\()/, /^(?:\\)\\)\\))/, /^(?:[\\)]\\))/, /^(?:\\}\\})/, /^(?:\\})/, /^(?:\\(-)/, /^(?:-\\))/, /^(?:\\(\\()/, /^(?:\\]\\])/, /^(?:\\()/, /^(?:\\]\\))/, /^(?:\\\\\\])/, /^(?:\\/\\])/, /^(?:\\)\\])/, /^(?:[\\)])/, /^(?:\\]>)/, /^(?:[\\]])/, /^(?:-\\))/, /^(?:\\(-)/, /^(?:\\)\\))/, /^(?:\\))/, /^(?:\\(\\(\\()/, /^(?:\\(\\()/, /^(?:\\{\\{)/, /^(?:\\{)/, /^(?:>)/, /^(?:\\(\\[)/, /^(?:\\()/, /^(?:\\[\\[)/, /^(?:\\[\\|)/, /^(?:\\[\\()/, /^(?:\\)\\)\\))/, /^(?:\\[\\\\)/, /^(?:\\[\\/)/, /^(?:\\[\\\\)/, /^(?:\\[)/, /^(?:<\\[)/, /^(?:[^\\(\\[\\n\\-\\)\\{\\}\\s\\<\\>:]+)/, /^(?:$)/, /^(?:[\"][`])/, /^(?:[\"][`])/, /^(?:[^`\"]+)/, /^(?:[`][\"])/, /^(?:[\"])/, /^(?:[\"])/, /^(?:[^\"]+)/, /^(?:[\"])/, /^(?:\\]>\\s*\\()/, /^(?:,?\\s*right\\s*)/, /^(?:,?\\s*left\\s*)/, /^(?:,?\\s*x\\s*)/, /^(?:,?\\s*y\\s*)/, /^(?:,?\\s*up\\s*)/, /^(?:,?\\s*down\\s*)/, /^(?:\\)\\s*)/, /^(?:\\s*[xo<]?--+[-xo>]\\s*)/, /^(?:\\s*[xo<]?==+[=xo>]\\s*)/, /^(?:\\s*[xo<]?-?\\.+-[xo>]?\\s*)/, /^(?:\\s*~~[\\~]+\\s*)/, /^(?:\\s*[xo<]?--\\s*)/, /^(?:\\s*[xo<]?==\\s*)/, /^(?:\\s*[xo<]?-\\.\\s*)/, /^(?:[\"][`])/, /^(?:[\"])/, /^(?:\\s*[xo<]?--+[-xo>]\\s*)/, /^(?:\\s*[xo<]?==+[=xo>]\\s*)/, /^(?:\\s*[xo<]?-?\\.+-[xo>]?\\s*)/, /^(?::\\d+)/],\n conditions: { \"STYLE_DEFINITION\": { \"rules\": [29], \"inclusive\": false }, \"STYLE_STMNT\": { \"rules\": [28], \"inclusive\": false }, \"CLASSDEFID\": { \"rules\": [23], \"inclusive\": false }, \"CLASSDEF\": { \"rules\": [21, 22], \"inclusive\": false }, \"CLASS_STYLE\": { \"rules\": [26], \"inclusive\": false }, \"CLASS\": { \"rules\": [25], \"inclusive\": false }, \"LLABEL\": { \"rules\": [100, 101, 102, 103, 104], \"inclusive\": false }, \"ARROW_DIR\": { \"rules\": [86, 87, 88, 89, 90, 91, 92], \"inclusive\": false }, \"BLOCK_ARROW\": { \"rules\": [77, 82, 85], \"inclusive\": false }, \"NODE\": { \"rules\": [38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 78, 81], \"inclusive\": false }, \"md_string\": { \"rules\": [10, 11, 79, 80], \"inclusive\": false }, \"space\": { \"rules\": [], \"inclusive\": false }, \"string\": { \"rules\": [13, 14, 83, 84], \"inclusive\": false }, \"acc_descr_multiline\": { \"rules\": [35, 36], \"inclusive\": false }, \"acc_descr\": { \"rules\": [33], \"inclusive\": false }, \"acc_title\": { \"rules\": [31], \"inclusive\": false }, \"INITIAL\": { \"rules\": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 15, 16, 17, 18, 19, 20, 24, 27, 30, 32, 34, 37, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 93, 94, 95, 96, 97, 98, 99, 105], \"inclusive\": true } }\n };\n return lexer2;\n }();\n parser2.lexer = lexer;\n function Parser() {\n this.yy = {};\n }\n __name(Parser, \"Parser\");\n Parser.prototype = parser2;\n parser2.Parser = Parser;\n return new Parser();\n}();\nparser.parser = parser;\nvar block_default = parser;\n\n// src/diagrams/block/blockDB.ts\nimport clone from \"lodash-es/clone.js\";\nvar blockDatabase = /* @__PURE__ */ new Map();\nvar edgeList = [];\nvar edgeCount = /* @__PURE__ */ new Map();\nvar COLOR_KEYWORD = \"color\";\nvar FILL_KEYWORD = \"fill\";\nvar BG_FILL = \"bgFill\";\nvar STYLECLASS_SEP = \",\";\nvar config = getConfig2();\nvar classes = /* @__PURE__ */ new Map();\nvar sanitizeText2 = /* @__PURE__ */ __name((txt) => common_default.sanitizeText(txt, config), \"sanitizeText\");\nvar addStyleClass = /* @__PURE__ */ __name(function(id, styleAttributes = \"\") {\n let foundClass = classes.get(id);\n if (!foundClass) {\n foundClass = { id, styles: [], textStyles: [] };\n classes.set(id, foundClass);\n }\n if (styleAttributes !== void 0 && styleAttributes !== null) {\n styleAttributes.split(STYLECLASS_SEP).forEach((attrib) => {\n const fixedAttrib = attrib.replace(/([^;]*);/, \"$1\").trim();\n if (RegExp(COLOR_KEYWORD).exec(attrib)) {\n const newStyle1 = fixedAttrib.replace(FILL_KEYWORD, BG_FILL);\n const newStyle2 = newStyle1.replace(COLOR_KEYWORD, FILL_KEYWORD);\n foundClass.textStyles.push(newStyle2);\n }\n foundClass.styles.push(fixedAttrib);\n });\n }\n}, \"addStyleClass\");\nvar addStyle2Node = /* @__PURE__ */ __name(function(id, styles = \"\") {\n const foundBlock = blockDatabase.get(id);\n if (styles !== void 0 && styles !== null) {\n foundBlock.styles = styles.split(STYLECLASS_SEP);\n }\n}, \"addStyle2Node\");\nvar setCssClass = /* @__PURE__ */ __name(function(itemIds, cssClassName) {\n itemIds.split(\",\").forEach(function(id) {\n let foundBlock = blockDatabase.get(id);\n if (foundBlock === void 0) {\n const trimmedId = id.trim();\n foundBlock = { id: trimmedId, type: \"na\", children: [] };\n blockDatabase.set(trimmedId, foundBlock);\n }\n if (!foundBlock.classes) {\n foundBlock.classes = [];\n }\n foundBlock.classes.push(cssClassName);\n });\n}, \"setCssClass\");\nvar populateBlockDatabase = /* @__PURE__ */ __name((_blockList, parent) => {\n const blockList = _blockList.flat();\n const children = [];\n for (const block of blockList) {\n if (block.label) {\n block.label = sanitizeText2(block.label);\n }\n if (block.type === \"classDef\") {\n addStyleClass(block.id, block.css);\n continue;\n }\n if (block.type === \"applyClass\") {\n setCssClass(block.id, block?.styleClass ?? \"\");\n continue;\n }\n if (block.type === \"applyStyles\") {\n if (block?.stylesStr) {\n addStyle2Node(block.id, block?.stylesStr);\n }\n continue;\n }\n if (block.type === \"column-setting\") {\n parent.columns = block.columns ?? -1;\n } else if (block.type === \"edge\") {\n const count = (edgeCount.get(block.id) ?? 0) + 1;\n edgeCount.set(block.id, count);\n block.id = count + \"-\" + block.id;\n edgeList.push(block);\n } else {\n if (!block.label) {\n if (block.type === \"composite\") {\n block.label = \"\";\n } else {\n block.label = block.id;\n }\n }\n const existingBlock = blockDatabase.get(block.id);\n if (existingBlock === void 0) {\n blockDatabase.set(block.id, block);\n } else {\n if (block.type !== \"na\") {\n existingBlock.type = block.type;\n }\n if (block.label !== block.id) {\n existingBlock.label = block.label;\n }\n }\n if (block.children) {\n populateBlockDatabase(block.children, block);\n }\n if (block.type === \"space\") {\n const w = block.width ?? 1;\n for (let j = 0; j < w; j++) {\n const newBlock = clone(block);\n newBlock.id = newBlock.id + \"-\" + j;\n blockDatabase.set(newBlock.id, newBlock);\n children.push(newBlock);\n }\n } else if (existingBlock === void 0) {\n children.push(block);\n }\n }\n }\n parent.children = children;\n}, \"populateBlockDatabase\");\nvar blocks = [];\nvar rootBlock = { id: \"root\", type: \"composite\", children: [], columns: -1 };\nvar clear2 = /* @__PURE__ */ __name(() => {\n log.debug(\"Clear called\");\n clear();\n rootBlock = { id: \"root\", type: \"composite\", children: [], columns: -1 };\n blockDatabase = /* @__PURE__ */ new Map([[\"root\", rootBlock]]);\n blocks = [];\n classes = /* @__PURE__ */ new Map();\n edgeList = [];\n edgeCount = /* @__PURE__ */ new Map();\n}, \"clear\");\nfunction typeStr2Type(typeStr) {\n log.debug(\"typeStr2Type\", typeStr);\n switch (typeStr) {\n case \"[]\":\n return \"square\";\n case \"()\":\n log.debug(\"we have a round\");\n return \"round\";\n case \"(())\":\n return \"circle\";\n case \">]\":\n return \"rect_left_inv_arrow\";\n case \"{}\":\n return \"diamond\";\n case \"{{}}\":\n return \"hexagon\";\n case \"([])\":\n return \"stadium\";\n case \"[[]]\":\n return \"subroutine\";\n case \"[()]\":\n return \"cylinder\";\n case \"((()))\":\n return \"doublecircle\";\n case \"[//]\":\n return \"lean_right\";\n case \"[\\\\\\\\]\":\n return \"lean_left\";\n case \"[/\\\\]\":\n return \"trapezoid\";\n case \"[\\\\/]\":\n return \"inv_trapezoid\";\n case \"<[]>\":\n return \"block_arrow\";\n default:\n return \"na\";\n }\n}\n__name(typeStr2Type, \"typeStr2Type\");\nfunction edgeTypeStr2Type(typeStr) {\n log.debug(\"typeStr2Type\", typeStr);\n switch (typeStr) {\n case \"==\":\n return \"thick\";\n default:\n return \"normal\";\n }\n}\n__name(edgeTypeStr2Type, \"edgeTypeStr2Type\");\nfunction edgeStrToEdgeData(typeStr) {\n switch (typeStr.trim()) {\n case \"--x\":\n return \"arrow_cross\";\n case \"--o\":\n return \"arrow_circle\";\n default:\n return \"arrow_point\";\n }\n}\n__name(edgeStrToEdgeData, \"edgeStrToEdgeData\");\nvar cnt = 0;\nvar generateId = /* @__PURE__ */ __name(() => {\n cnt++;\n return \"id-\" + Math.random().toString(36).substr(2, 12) + \"-\" + cnt;\n}, \"generateId\");\nvar setHierarchy = /* @__PURE__ */ __name((block) => {\n rootBlock.children = block;\n populateBlockDatabase(block, rootBlock);\n blocks = rootBlock.children;\n}, \"setHierarchy\");\nvar getColumns = /* @__PURE__ */ __name((blockId) => {\n const block = blockDatabase.get(blockId);\n if (!block) {\n return -1;\n }\n if (block.columns) {\n return block.columns;\n }\n if (!block.children) {\n return -1;\n }\n return block.children.length;\n}, \"getColumns\");\nvar getBlocksFlat = /* @__PURE__ */ __name(() => {\n return [...blockDatabase.values()];\n}, \"getBlocksFlat\");\nvar getBlocks = /* @__PURE__ */ __name(() => {\n return blocks || [];\n}, \"getBlocks\");\nvar getEdges = /* @__PURE__ */ __name(() => {\n return edgeList;\n}, \"getEdges\");\nvar getBlock = /* @__PURE__ */ __name((id) => {\n return blockDatabase.get(id);\n}, \"getBlock\");\nvar setBlock = /* @__PURE__ */ __name((block) => {\n blockDatabase.set(block.id, block);\n}, \"setBlock\");\nvar getLogger = /* @__PURE__ */ __name(() => console, \"getLogger\");\nvar getClasses = /* @__PURE__ */ __name(function() {\n return classes;\n}, \"getClasses\");\nvar db = {\n getConfig: /* @__PURE__ */ __name(() => getConfig().block, \"getConfig\"),\n typeStr2Type,\n edgeTypeStr2Type,\n edgeStrToEdgeData,\n getLogger,\n getBlocksFlat,\n getBlocks,\n getEdges,\n setHierarchy,\n getBlock,\n setBlock,\n getColumns,\n getClasses,\n clear: clear2,\n generateId\n};\nvar blockDB_default = db;\n\n// src/diagrams/block/styles.ts\nimport * as khroma from \"khroma\";\nvar fade = /* @__PURE__ */ __name((color, opacity) => {\n const channel2 = khroma.channel;\n const r = channel2(color, \"r\");\n const g = channel2(color, \"g\");\n const b = channel2(color, \"b\");\n return khroma.rgba(r, g, b, opacity);\n}, \"fade\");\nvar getStyles = /* @__PURE__ */ __name((options) => `.label {\n font-family: ${options.fontFamily};\n color: ${options.nodeTextColor || options.textColor};\n }\n .cluster-label text {\n fill: ${options.titleColor};\n }\n .cluster-label span,p {\n color: ${options.titleColor};\n }\n\n\n\n .label text,span,p {\n fill: ${options.nodeTextColor || options.textColor};\n color: ${options.nodeTextColor || options.textColor};\n }\n\n .node rect,\n .node circle,\n .node ellipse,\n .node polygon,\n .node path {\n fill: ${options.mainBkg};\n stroke: ${options.nodeBorder};\n stroke-width: 1px;\n }\n .flowchart-label text {\n text-anchor: middle;\n }\n // .flowchart-label .text-outer-tspan {\n // text-anchor: middle;\n // }\n // .flowchart-label .text-inner-tspan {\n // text-anchor: start;\n // }\n\n .node .label {\n text-align: center;\n }\n .node.clickable {\n cursor: pointer;\n }\n\n .arrowheadPath {\n fill: ${options.arrowheadColor};\n }\n\n .edgePath .path {\n stroke: ${options.lineColor};\n stroke-width: 2.0px;\n }\n\n .flowchart-link {\n stroke: ${options.lineColor};\n fill: none;\n }\n\n .edgeLabel {\n background-color: ${options.edgeLabelBackground};\n rect {\n opacity: 0.5;\n background-color: ${options.edgeLabelBackground};\n fill: ${options.edgeLabelBackground};\n }\n text-align: center;\n }\n\n /* For html labels only */\n .labelBkg {\n background-color: ${fade(options.edgeLabelBackground, 0.5)};\n // background-color:\n }\n\n .node .cluster {\n // fill: ${fade(options.mainBkg, 0.5)};\n fill: ${fade(options.clusterBkg, 0.5)};\n stroke: ${fade(options.clusterBorder, 0.2)};\n box-shadow: rgba(50, 50, 93, 0.25) 0px 13px 27px -5px, rgba(0, 0, 0, 0.3) 0px 8px 16px -8px;\n stroke-width: 1px;\n }\n\n .cluster text {\n fill: ${options.titleColor};\n }\n\n .cluster span,p {\n color: ${options.titleColor};\n }\n /* .cluster div {\n color: ${options.titleColor};\n } */\n\n div.mermaidTooltip {\n position: absolute;\n text-align: center;\n max-width: 200px;\n padding: 2px;\n font-family: ${options.fontFamily};\n font-size: 12px;\n background: ${options.tertiaryColor};\n border: 1px solid ${options.border2};\n border-radius: 2px;\n pointer-events: none;\n z-index: 100;\n }\n\n .flowchartTitleText {\n text-anchor: middle;\n font-size: 18px;\n fill: ${options.textColor};\n }\n`, \"getStyles\");\nvar styles_default = getStyles;\n\n// src/diagrams/block/blockRenderer.ts\nimport { select as d3select } from \"d3\";\n\n// src/dagre-wrapper/markers.js\nvar insertMarkers = /* @__PURE__ */ __name((elem, markerArray, type, id) => {\n markerArray.forEach((markerName) => {\n markers[markerName](elem, type, id);\n });\n}, \"insertMarkers\");\nvar extension = /* @__PURE__ */ __name((elem, type, id) => {\n log.trace(\"Making markers for \", id);\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-extensionStart\").attr(\"class\", \"marker extension \" + type).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\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-extensionEnd\").attr(\"class\", \"marker extension \" + type).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\");\n}, \"extension\");\nvar composition = /* @__PURE__ */ __name((elem, type, id) => {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-compositionStart\").attr(\"class\", \"marker composition \" + type).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\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-compositionEnd\").attr(\"class\", \"marker composition \" + type).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\");\n}, \"composition\");\nvar aggregation = /* @__PURE__ */ __name((elem, type, id) => {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-aggregationStart\").attr(\"class\", \"marker aggregation \" + type).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\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-aggregationEnd\").attr(\"class\", \"marker aggregation \" + type).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\");\n}, \"aggregation\");\nvar dependency = /* @__PURE__ */ __name((elem, type, id) => {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-dependencyStart\").attr(\"class\", \"marker dependency \" + type).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\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-dependencyEnd\").attr(\"class\", \"marker dependency \" + type).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\");\n}, \"dependency\");\nvar lollipop = /* @__PURE__ */ __name((elem, type, id) => {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-lollipopStart\").attr(\"class\", \"marker lollipop \" + type).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);\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-lollipopEnd\").attr(\"class\", \"marker lollipop \" + type).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);\n}, \"lollipop\");\nvar point = /* @__PURE__ */ __name((elem, type, id) => {\n elem.append(\"marker\").attr(\"id\", id + \"_\" + type + \"-pointEnd\").attr(\"class\", \"marker \" + type).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\");\n elem.append(\"marker\").attr(\"id\", id + \"_\" + type + \"-pointStart\").attr(\"class\", \"marker \" + type).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\");\n}, \"point\");\nvar circle = /* @__PURE__ */ __name((elem, type, id) => {\n elem.append(\"marker\").attr(\"id\", id + \"_\" + type + \"-circleEnd\").attr(\"class\", \"marker \" + type).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\");\n elem.append(\"marker\").attr(\"id\", id + \"_\" + type + \"-circleStart\").attr(\"class\", \"marker \" + type).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\");\n}, \"circle\");\nvar cross = /* @__PURE__ */ __name((elem, type, id) => {\n elem.append(\"marker\").attr(\"id\", id + \"_\" + type + \"-crossEnd\").attr(\"class\", \"marker cross \" + type).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\");\n elem.append(\"marker\").attr(\"id\", id + \"_\" + type + \"-crossStart\").attr(\"class\", \"marker cross \" + type).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\");\n}, \"cross\");\nvar barb = /* @__PURE__ */ __name((elem, type, id) => {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-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\");\n}, \"barb\");\nvar markers = {\n extension,\n composition,\n aggregation,\n dependency,\n lollipop,\n point,\n circle,\n cross,\n barb\n};\nvar markers_default = insertMarkers;\n\n// src/diagrams/block/layout.ts\nvar padding = getConfig2()?.block?.padding ?? 8;\nfunction calculateBlockPosition(columns, position) {\n if (columns === 0 || !Number.isInteger(columns)) {\n throw new Error(\"Columns must be an integer !== 0.\");\n }\n if (position < 0 || !Number.isInteger(position)) {\n throw new Error(\"Position must be a non-negative integer.\" + position);\n }\n if (columns < 0) {\n return { px: position, py: 0 };\n }\n if (columns === 1) {\n return { px: 0, py: position };\n }\n const px = position % columns;\n const py = Math.floor(position / columns);\n return { px, py };\n}\n__name(calculateBlockPosition, \"calculateBlockPosition\");\nvar getMaxChildSize = /* @__PURE__ */ __name((block) => {\n let maxWidth = 0;\n let maxHeight = 0;\n for (const child of block.children) {\n const { width, height, x, y } = child.size ?? { width: 0, height: 0, x: 0, y: 0 };\n log.debug(\n \"getMaxChildSize abc95 child:\",\n child.id,\n \"width:\",\n width,\n \"height:\",\n height,\n \"x:\",\n x,\n \"y:\",\n y,\n child.type\n );\n if (child.type === \"space\") {\n continue;\n }\n if (width > maxWidth) {\n maxWidth = width / (block.widthInColumns ?? 1);\n }\n if (height > maxHeight) {\n maxHeight = height;\n }\n }\n return { width: maxWidth, height: maxHeight };\n}, \"getMaxChildSize\");\nfunction setBlockSizes(block, db2, siblingWidth = 0, siblingHeight = 0) {\n log.debug(\n \"setBlockSizes abc95 (start)\",\n block.id,\n block?.size?.x,\n \"block width =\",\n block?.size,\n \"sieblingWidth\",\n siblingWidth\n );\n if (!block?.size?.width) {\n block.size = {\n width: siblingWidth,\n height: siblingHeight,\n x: 0,\n y: 0\n };\n }\n let maxWidth = 0;\n let maxHeight = 0;\n if (block.children?.length > 0) {\n for (const child of block.children) {\n setBlockSizes(child, db2);\n }\n const childSize = getMaxChildSize(block);\n maxWidth = childSize.width;\n maxHeight = childSize.height;\n log.debug(\"setBlockSizes abc95 maxWidth of\", block.id, \":s children is \", maxWidth, maxHeight);\n for (const child of block.children) {\n if (child.size) {\n log.debug(\n `abc95 Setting size of children of ${block.id} id=${child.id} ${maxWidth} ${maxHeight} ${JSON.stringify(child.size)}`\n );\n child.size.width = maxWidth * (child.widthInColumns ?? 1) + padding * ((child.widthInColumns ?? 1) - 1);\n child.size.height = maxHeight;\n child.size.x = 0;\n child.size.y = 0;\n log.debug(\n `abc95 updating size of ${block.id} children child:${child.id} maxWidth:${maxWidth} maxHeight:${maxHeight}`\n );\n }\n }\n for (const child of block.children) {\n setBlockSizes(child, db2, maxWidth, maxHeight);\n }\n const columns = block.columns ?? -1;\n let numItems = 0;\n for (const child of block.children) {\n numItems += child.widthInColumns ?? 1;\n }\n let xSize = block.children.length;\n if (columns > 0 && columns < numItems) {\n xSize = columns;\n }\n const ySize = Math.ceil(numItems / xSize);\n let width = xSize * (maxWidth + padding) + padding;\n let height = ySize * (maxHeight + padding) + padding;\n if (width < siblingWidth) {\n log.debug(\n `Detected to small siebling: abc95 ${block.id} sieblingWidth ${siblingWidth} sieblingHeight ${siblingHeight} width ${width}`\n );\n width = siblingWidth;\n height = siblingHeight;\n const childWidth = (siblingWidth - xSize * padding - padding) / xSize;\n const childHeight = (siblingHeight - ySize * padding - padding) / ySize;\n log.debug(\"Size indata abc88\", block.id, \"childWidth\", childWidth, \"maxWidth\", maxWidth);\n log.debug(\"Size indata abc88\", block.id, \"childHeight\", childHeight, \"maxHeight\", maxHeight);\n log.debug(\"Size indata abc88 xSize\", xSize, \"padding\", padding);\n for (const child of block.children) {\n if (child.size) {\n child.size.width = childWidth;\n child.size.height = childHeight;\n child.size.x = 0;\n child.size.y = 0;\n }\n }\n }\n log.debug(\n `abc95 (finale calc) ${block.id} xSize ${xSize} ySize ${ySize} columns ${columns}${block.children.length} width=${Math.max(width, block.size?.width || 0)}`\n );\n if (width < (block?.size?.width || 0)) {\n width = block?.size?.width || 0;\n const num = columns > 0 ? Math.min(block.children.length, columns) : block.children.length;\n if (num > 0) {\n const childWidth = (width - num * padding - padding) / num;\n log.debug(\"abc95 (growing to fit) width\", block.id, width, block.size?.width, childWidth);\n for (const child of block.children) {\n if (child.size) {\n child.size.width = childWidth;\n }\n }\n }\n }\n block.size = {\n width,\n height,\n x: 0,\n y: 0\n };\n }\n log.debug(\n \"setBlockSizes abc94 (done)\",\n block.id,\n block?.size?.x,\n block?.size?.width,\n block?.size?.y,\n block?.size?.height\n );\n}\n__name(setBlockSizes, \"setBlockSizes\");\nfunction layoutBlocks(block, db2) {\n log.debug(\n `abc85 layout blocks (=>layoutBlocks) ${block.id} x: ${block?.size?.x} y: ${block?.size?.y} width: ${block?.size?.width}`\n );\n const columns = block.columns ?? -1;\n log.debug(\"layoutBlocks columns abc95\", block.id, \"=>\", columns, block);\n if (block.children && // find max width of children\n block.children.length > 0) {\n const width = block?.children[0]?.size?.width ?? 0;\n const widthOfChildren = block.children.length * width + (block.children.length - 1) * padding;\n log.debug(\"widthOfChildren 88\", widthOfChildren, \"posX\");\n let columnPos = 0;\n log.debug(\"abc91 block?.size?.x\", block.id, block?.size?.x);\n let startingPosX = block?.size?.x ? block?.size?.x + (-block?.size?.width / 2 || 0) : -padding;\n let rowPos = 0;\n for (const child of block.children) {\n const parent = block;\n if (!child.size) {\n continue;\n }\n const { width: width2, height } = child.size;\n const { px, py } = calculateBlockPosition(columns, columnPos);\n if (py != rowPos) {\n rowPos = py;\n startingPosX = block?.size?.x ? block?.size?.x + (-block?.size?.width / 2 || 0) : -padding;\n log.debug(\"New row in layout for block\", block.id, \" and child \", child.id, rowPos);\n }\n log.debug(\n `abc89 layout blocks (child) id: ${child.id} Pos: ${columnPos} (px, py) ${px},${py} (${parent?.size?.x},${parent?.size?.y}) parent: ${parent.id} width: ${width2}${padding}`\n );\n if (parent.size) {\n const halfWidth = width2 / 2;\n child.size.x = startingPosX + padding + halfWidth;\n log.debug(\n `abc91 layout blocks (calc) px, pyid:${child.id} startingPos=X${startingPosX} new startingPosX${child.size.x} ${halfWidth} padding=${padding} width=${width2} halfWidth=${halfWidth} => x:${child.size.x} y:${child.size.y} ${child.widthInColumns} (width * (child?.w || 1)) / 2 ${width2 * (child?.widthInColumns ?? 1) / 2}`\n );\n startingPosX = child.size.x + halfWidth;\n child.size.y = parent.size.y - parent.size.height / 2 + py * (height + padding) + height / 2 + padding;\n log.debug(\n `abc88 layout blocks (calc) px, pyid:${child.id}startingPosX${startingPosX}${padding}${halfWidth}=>x:${child.size.x}y:${child.size.y}${child.widthInColumns}(width * (child?.w || 1)) / 2${width2 * (child?.widthInColumns ?? 1) / 2}`\n );\n }\n if (child.children) {\n layoutBlocks(child, db2);\n }\n columnPos += child?.widthInColumns ?? 1;\n log.debug(\"abc88 columnsPos\", child, columnPos);\n }\n }\n log.debug(\n `layout blocks (<==layoutBlocks) ${block.id} x: ${block?.size?.x} y: ${block?.size?.y} width: ${block?.size?.width}`\n );\n}\n__name(layoutBlocks, \"layoutBlocks\");\nfunction findBounds(block, { minX, minY, maxX, maxY } = { minX: 0, minY: 0, maxX: 0, maxY: 0 }) {\n if (block.size && block.id !== \"root\") {\n const { x, y, width, height } = block.size;\n if (x - width / 2 < minX) {\n minX = x - width / 2;\n }\n if (y - height / 2 < minY) {\n minY = y - height / 2;\n }\n if (x + width / 2 > maxX) {\n maxX = x + width / 2;\n }\n if (y + height / 2 > maxY) {\n maxY = y + height / 2;\n }\n }\n if (block.children) {\n for (const child of block.children) {\n ({ minX, minY, maxX, maxY } = findBounds(child, { minX, minY, maxX, maxY }));\n }\n }\n return { minX, minY, maxX, maxY };\n}\n__name(findBounds, \"findBounds\");\nfunction layout(db2) {\n const root = db2.getBlock(\"root\");\n if (!root) {\n return;\n }\n setBlockSizes(root, db2, 0, 0);\n layoutBlocks(root, db2);\n log.debug(\"getBlocks\", JSON.stringify(root, null, 2));\n const { minX, minY, maxX, maxY } = findBounds(root);\n const height = maxY - minY;\n const width = maxX - minX;\n return { x: minX, y: minY, width, height };\n}\n__name(layout, \"layout\");\n\n// src/diagrams/block/renderHelpers.ts\nimport * as graphlib from \"dagre-d3-es/src/graphlib/index.js\";\n\n// src/dagre-wrapper/createLabel.js\nimport { select } from \"d3\";\nfunction applyStyle(dom, styleFn) {\n if (styleFn) {\n dom.attr(\"style\", styleFn);\n }\n}\n__name(applyStyle, \"applyStyle\");\nfunction addHtmlLabel(node) {\n const fo = select(document.createElementNS(\"http://www.w3.org/2000/svg\", \"foreignObject\"));\n const div = fo.append(\"xhtml:div\");\n const label = node.label;\n const labelClass = node.isNode ? \"nodeLabel\" : \"edgeLabel\";\n const span = div.append(\"span\");\n span.html(label);\n applyStyle(span, node.labelStyle);\n span.attr(\"class\", labelClass);\n applyStyle(div, node.labelStyle);\n div.style(\"display\", \"inline-block\");\n div.style(\"white-space\", \"nowrap\");\n div.attr(\"xmlns\", \"http://www.w3.org/1999/xhtml\");\n return fo.node();\n}\n__name(addHtmlLabel, \"addHtmlLabel\");\nvar createLabel = /* @__PURE__ */ __name((_vertexText, style, isTitle, isNode) => {\n let vertexText = _vertexText || \"\";\n if (typeof vertexText === \"object\") {\n vertexText = vertexText[0];\n }\n if (evaluate(getConfig2().flowchart.htmlLabels)) {\n vertexText = vertexText.replace(/\\\\n|\\n/g, \"
    \");\n log.debug(\"vertexText\" + vertexText);\n const node = {\n isNode,\n label: replaceIconSubstring(decodeEntities(vertexText)),\n labelStyle: style.replace(\"fill:\", \"color:\")\n };\n let vertexNode = addHtmlLabel(node);\n return vertexNode;\n } else {\n const svgLabel = document.createElementNS(\"http://www.w3.org/2000/svg\", \"text\");\n svgLabel.setAttribute(\"style\", style.replace(\"color:\", \"fill:\"));\n let rows = [];\n if (typeof vertexText === \"string\") {\n rows = vertexText.split(/\\\\n|\\n|/gi);\n } else if (Array.isArray(vertexText)) {\n rows = vertexText;\n } else {\n rows = [];\n }\n for (const row of rows) {\n const tspan = document.createElementNS(\"http://www.w3.org/2000/svg\", \"tspan\");\n tspan.setAttributeNS(\"http://www.w3.org/XML/1998/namespace\", \"xml:space\", \"preserve\");\n tspan.setAttribute(\"dy\", \"1em\");\n tspan.setAttribute(\"x\", \"0\");\n if (isTitle) {\n tspan.setAttribute(\"class\", \"title-row\");\n } else {\n tspan.setAttribute(\"class\", \"row\");\n }\n tspan.textContent = row.trim();\n svgLabel.appendChild(tspan);\n }\n return svgLabel;\n }\n}, \"createLabel\");\nvar createLabel_default = createLabel;\n\n// src/dagre-wrapper/edges.js\nimport { line, curveBasis, select as select2 } from \"d3\";\n\n// src/dagre-wrapper/edgeMarker.ts\nvar addEdgeMarkers = /* @__PURE__ */ __name((svgPath, edge, url, id, diagramType) => {\n if (edge.arrowTypeStart) {\n addEdgeMarker(svgPath, \"start\", edge.arrowTypeStart, url, id, diagramType);\n }\n if (edge.arrowTypeEnd) {\n addEdgeMarker(svgPath, \"end\", edge.arrowTypeEnd, url, id, diagramType);\n }\n}, \"addEdgeMarkers\");\nvar arrowTypesMap = {\n arrow_cross: \"cross\",\n arrow_point: \"point\",\n arrow_barb: \"barb\",\n arrow_circle: \"circle\",\n aggregation: \"aggregation\",\n extension: \"extension\",\n composition: \"composition\",\n dependency: \"dependency\",\n lollipop: \"lollipop\"\n};\nvar addEdgeMarker = /* @__PURE__ */ __name((svgPath, position, arrowType, url, id, diagramType) => {\n const endMarkerType = arrowTypesMap[arrowType];\n if (!endMarkerType) {\n log.warn(`Unknown arrow type: ${arrowType}`);\n return;\n }\n const suffix = position === \"start\" ? \"Start\" : \"End\";\n svgPath.attr(`marker-${position}`, `url(${url}#${id}_${diagramType}-${endMarkerType}${suffix})`);\n}, \"addEdgeMarker\");\n\n// src/dagre-wrapper/edges.js\nvar edgeLabels = {};\nvar terminalLabels = {};\nvar insertEdgeLabel = /* @__PURE__ */ __name((elem, edge) => {\n const config2 = getConfig2();\n const useHtmlLabels = evaluate(config2.flowchart.htmlLabels);\n const labelElement = edge.labelType === \"markdown\" ? createText(\n elem,\n edge.label,\n {\n style: edge.labelStyle,\n useHtmlLabels,\n addSvgBackground: true\n },\n config2\n ) : createLabel_default(edge.label, edge.labelStyle);\n const edgeLabel = elem.insert(\"g\").attr(\"class\", \"edgeLabel\");\n const label = edgeLabel.insert(\"g\").attr(\"class\", \"label\");\n label.node().appendChild(labelElement);\n let bbox = labelElement.getBBox();\n if (useHtmlLabels) {\n const div = labelElement.children[0];\n const dv = select2(labelElement);\n bbox = div.getBoundingClientRect();\n dv.attr(\"width\", bbox.width);\n dv.attr(\"height\", bbox.height);\n }\n label.attr(\"transform\", \"translate(\" + -bbox.width / 2 + \", \" + -bbox.height / 2 + \")\");\n edgeLabels[edge.id] = edgeLabel;\n edge.width = bbox.width;\n edge.height = bbox.height;\n let fo;\n if (edge.startLabelLeft) {\n const startLabelElement = createLabel_default(edge.startLabelLeft, edge.labelStyle);\n const startEdgeLabelLeft = elem.insert(\"g\").attr(\"class\", \"edgeTerminals\");\n const inner = startEdgeLabelLeft.insert(\"g\").attr(\"class\", \"inner\");\n fo = inner.node().appendChild(startLabelElement);\n const slBox = startLabelElement.getBBox();\n inner.attr(\"transform\", \"translate(\" + -slBox.width / 2 + \", \" + -slBox.height / 2 + \")\");\n if (!terminalLabels[edge.id]) {\n terminalLabels[edge.id] = {};\n }\n terminalLabels[edge.id].startLeft = startEdgeLabelLeft;\n setTerminalWidth(fo, edge.startLabelLeft);\n }\n if (edge.startLabelRight) {\n const startLabelElement = createLabel_default(edge.startLabelRight, edge.labelStyle);\n const startEdgeLabelRight = elem.insert(\"g\").attr(\"class\", \"edgeTerminals\");\n const inner = startEdgeLabelRight.insert(\"g\").attr(\"class\", \"inner\");\n fo = startEdgeLabelRight.node().appendChild(startLabelElement);\n inner.node().appendChild(startLabelElement);\n const slBox = startLabelElement.getBBox();\n inner.attr(\"transform\", \"translate(\" + -slBox.width / 2 + \", \" + -slBox.height / 2 + \")\");\n if (!terminalLabels[edge.id]) {\n terminalLabels[edge.id] = {};\n }\n terminalLabels[edge.id].startRight = startEdgeLabelRight;\n setTerminalWidth(fo, edge.startLabelRight);\n }\n if (edge.endLabelLeft) {\n const endLabelElement = createLabel_default(edge.endLabelLeft, edge.labelStyle);\n const endEdgeLabelLeft = elem.insert(\"g\").attr(\"class\", \"edgeTerminals\");\n const inner = endEdgeLabelLeft.insert(\"g\").attr(\"class\", \"inner\");\n fo = inner.node().appendChild(endLabelElement);\n const slBox = endLabelElement.getBBox();\n inner.attr(\"transform\", \"translate(\" + -slBox.width / 2 + \", \" + -slBox.height / 2 + \")\");\n endEdgeLabelLeft.node().appendChild(endLabelElement);\n if (!terminalLabels[edge.id]) {\n terminalLabels[edge.id] = {};\n }\n terminalLabels[edge.id].endLeft = endEdgeLabelLeft;\n setTerminalWidth(fo, edge.endLabelLeft);\n }\n if (edge.endLabelRight) {\n const endLabelElement = createLabel_default(edge.endLabelRight, edge.labelStyle);\n const endEdgeLabelRight = elem.insert(\"g\").attr(\"class\", \"edgeTerminals\");\n const inner = endEdgeLabelRight.insert(\"g\").attr(\"class\", \"inner\");\n fo = inner.node().appendChild(endLabelElement);\n const slBox = endLabelElement.getBBox();\n inner.attr(\"transform\", \"translate(\" + -slBox.width / 2 + \", \" + -slBox.height / 2 + \")\");\n endEdgeLabelRight.node().appendChild(endLabelElement);\n if (!terminalLabels[edge.id]) {\n terminalLabels[edge.id] = {};\n }\n terminalLabels[edge.id].endRight = endEdgeLabelRight;\n setTerminalWidth(fo, edge.endLabelRight);\n }\n return labelElement;\n}, \"insertEdgeLabel\");\nfunction setTerminalWidth(fo, value) {\n if (getConfig2().flowchart.htmlLabels && fo) {\n fo.style.width = value.length * 9 + \"px\";\n fo.style.height = \"12px\";\n }\n}\n__name(setTerminalWidth, \"setTerminalWidth\");\nvar positionEdgeLabel = /* @__PURE__ */ __name((edge, paths) => {\n log.debug(\"Moving label abc88 \", edge.id, edge.label, edgeLabels[edge.id], paths);\n let path = paths.updatedPath ? paths.updatedPath : paths.originalPath;\n const siteConfig = getConfig2();\n const { subGraphTitleTotalMargin } = getSubGraphTitleMargins(siteConfig);\n if (edge.label) {\n const el = edgeLabels[edge.id];\n let x = edge.x;\n let y = edge.y;\n if (path) {\n const pos = utils_default.calcLabelPosition(path);\n log.debug(\n \"Moving label \" + edge.label + \" from (\",\n x,\n \",\",\n y,\n \") to (\",\n pos.x,\n \",\",\n pos.y,\n \") abc88\"\n );\n if (paths.updatedPath) {\n x = pos.x;\n y = pos.y;\n }\n }\n el.attr(\"transform\", `translate(${x}, ${y + subGraphTitleTotalMargin / 2})`);\n }\n if (edge.startLabelLeft) {\n const el = terminalLabels[edge.id].startLeft;\n let x = edge.x;\n let y = edge.y;\n if (path) {\n const pos = utils_default.calcTerminalLabelPosition(edge.arrowTypeStart ? 10 : 0, \"start_left\", path);\n x = pos.x;\n y = pos.y;\n }\n el.attr(\"transform\", `translate(${x}, ${y})`);\n }\n if (edge.startLabelRight) {\n const el = terminalLabels[edge.id].startRight;\n let x = edge.x;\n let y = edge.y;\n if (path) {\n const pos = utils_default.calcTerminalLabelPosition(\n edge.arrowTypeStart ? 10 : 0,\n \"start_right\",\n path\n );\n x = pos.x;\n y = pos.y;\n }\n el.attr(\"transform\", `translate(${x}, ${y})`);\n }\n if (edge.endLabelLeft) {\n const el = terminalLabels[edge.id].endLeft;\n let x = edge.x;\n let y = edge.y;\n if (path) {\n const pos = utils_default.calcTerminalLabelPosition(edge.arrowTypeEnd ? 10 : 0, \"end_left\", path);\n x = pos.x;\n y = pos.y;\n }\n el.attr(\"transform\", `translate(${x}, ${y})`);\n }\n if (edge.endLabelRight) {\n const el = terminalLabels[edge.id].endRight;\n let x = edge.x;\n let y = edge.y;\n if (path) {\n const pos = utils_default.calcTerminalLabelPosition(edge.arrowTypeEnd ? 10 : 0, \"end_right\", path);\n x = pos.x;\n y = pos.y;\n }\n el.attr(\"transform\", `translate(${x}, ${y})`);\n }\n}, \"positionEdgeLabel\");\nvar outsideNode = /* @__PURE__ */ __name((node, point2) => {\n const x = node.x;\n const y = node.y;\n const dx = Math.abs(point2.x - x);\n const dy = Math.abs(point2.y - y);\n const w = node.width / 2;\n const h = node.height / 2;\n if (dx >= w || dy >= h) {\n return true;\n }\n return false;\n}, \"outsideNode\");\nvar intersection = /* @__PURE__ */ __name((node, outsidePoint, insidePoint) => {\n log.debug(`intersection calc abc89:\n outsidePoint: ${JSON.stringify(outsidePoint)}\n insidePoint : ${JSON.stringify(insidePoint)}\n node : x:${node.x} y:${node.y} w:${node.width} h:${node.height}`);\n const x = node.x;\n const y = node.y;\n const dx = Math.abs(x - insidePoint.x);\n const w = node.width / 2;\n let r = insidePoint.x < outsidePoint.x ? w - dx : w + dx;\n const h = node.height / 2;\n const Q = Math.abs(outsidePoint.y - insidePoint.y);\n const R = Math.abs(outsidePoint.x - insidePoint.x);\n if (Math.abs(y - outsidePoint.y) * w > Math.abs(x - outsidePoint.x) * h) {\n let q = insidePoint.y < outsidePoint.y ? outsidePoint.y - h - y : y - h - outsidePoint.y;\n r = R * q / Q;\n const res = {\n x: insidePoint.x < outsidePoint.x ? insidePoint.x + r : insidePoint.x - R + r,\n y: insidePoint.y < outsidePoint.y ? insidePoint.y + Q - q : insidePoint.y - Q + q\n };\n if (r === 0) {\n res.x = outsidePoint.x;\n res.y = outsidePoint.y;\n }\n if (R === 0) {\n res.x = outsidePoint.x;\n }\n if (Q === 0) {\n res.y = outsidePoint.y;\n }\n log.debug(`abc89 topp/bott calc, Q ${Q}, q ${q}, R ${R}, r ${r}`, res);\n return res;\n } else {\n if (insidePoint.x < outsidePoint.x) {\n r = outsidePoint.x - w - x;\n } else {\n r = x - w - outsidePoint.x;\n }\n let q = Q * r / R;\n let _x = insidePoint.x < outsidePoint.x ? insidePoint.x + R - r : insidePoint.x - R + r;\n let _y = insidePoint.y < outsidePoint.y ? insidePoint.y + q : insidePoint.y - q;\n log.debug(`sides calc abc89, Q ${Q}, q ${q}, R ${R}, r ${r}`, { _x, _y });\n if (r === 0) {\n _x = outsidePoint.x;\n _y = outsidePoint.y;\n }\n if (R === 0) {\n _x = outsidePoint.x;\n }\n if (Q === 0) {\n _y = outsidePoint.y;\n }\n return { x: _x, y: _y };\n }\n}, \"intersection\");\nvar cutPathAtIntersect = /* @__PURE__ */ __name((_points, boundaryNode) => {\n log.debug(\"abc88 cutPathAtIntersect\", _points, boundaryNode);\n let points = [];\n let lastPointOutside = _points[0];\n let isInside = false;\n _points.forEach((point2) => {\n if (!outsideNode(boundaryNode, point2) && !isInside) {\n const inter = intersection(boundaryNode, lastPointOutside, point2);\n let pointPresent = false;\n points.forEach((p) => {\n pointPresent = pointPresent || p.x === inter.x && p.y === inter.y;\n });\n if (!points.some((e) => e.x === inter.x && e.y === inter.y)) {\n points.push(inter);\n }\n isInside = true;\n } else {\n lastPointOutside = point2;\n if (!isInside) {\n points.push(point2);\n }\n }\n });\n return points;\n}, \"cutPathAtIntersect\");\nvar insertEdge = /* @__PURE__ */ __name(function(elem, e, edge, clusterDb, diagramType, graph, id) {\n let points = edge.points;\n log.debug(\"abc88 InsertEdge: edge=\", edge, \"e=\", e);\n let pointsHasChanged = false;\n const tail = graph.node(e.v);\n var head = graph.node(e.w);\n if (head?.intersect && tail?.intersect) {\n points = points.slice(1, edge.points.length - 1);\n points.unshift(tail.intersect(points[0]));\n points.push(head.intersect(points[points.length - 1]));\n }\n if (edge.toCluster) {\n log.debug(\"to cluster abc88\", clusterDb[edge.toCluster]);\n points = cutPathAtIntersect(edge.points, clusterDb[edge.toCluster].node);\n pointsHasChanged = true;\n }\n if (edge.fromCluster) {\n log.debug(\"from cluster abc88\", clusterDb[edge.fromCluster]);\n points = cutPathAtIntersect(points.reverse(), clusterDb[edge.fromCluster].node).reverse();\n pointsHasChanged = true;\n }\n const lineData = points.filter((p) => !Number.isNaN(p.y));\n let curve = curveBasis;\n if (edge.curve && (diagramType === \"graph\" || diagramType === \"flowchart\")) {\n curve = edge.curve;\n }\n const { x, y } = getLineFunctionsWithOffset(edge);\n const lineFunction = line().x(x).y(y).curve(curve);\n let strokeClasses;\n switch (edge.thickness) {\n case \"normal\":\n strokeClasses = \"edge-thickness-normal\";\n break;\n case \"thick\":\n strokeClasses = \"edge-thickness-thick\";\n break;\n case \"invisible\":\n strokeClasses = \"edge-thickness-thick\";\n break;\n default:\n strokeClasses = \"\";\n }\n switch (edge.pattern) {\n case \"solid\":\n strokeClasses += \" edge-pattern-solid\";\n break;\n case \"dotted\":\n strokeClasses += \" edge-pattern-dotted\";\n break;\n case \"dashed\":\n strokeClasses += \" edge-pattern-dashed\";\n break;\n }\n const svgPath = elem.append(\"path\").attr(\"d\", lineFunction(lineData)).attr(\"id\", edge.id).attr(\"class\", \" \" + strokeClasses + (edge.classes ? \" \" + edge.classes : \"\")).attr(\"style\", edge.style);\n let url = \"\";\n if (getConfig2().flowchart.arrowMarkerAbsolute || getConfig2().state.arrowMarkerAbsolute) {\n url = window.location.protocol + \"//\" + window.location.host + window.location.pathname + window.location.search;\n url = url.replace(/\\(/g, \"\\\\(\");\n url = url.replace(/\\)/g, \"\\\\)\");\n }\n addEdgeMarkers(svgPath, edge, url, id, diagramType);\n let paths = {};\n if (pointsHasChanged) {\n paths.updatedPath = points;\n }\n paths.originalPath = edge.points;\n return paths;\n}, \"insertEdge\");\n\n// src/dagre-wrapper/nodes.js\nimport { select as select4 } from \"d3\";\n\n// src/dagre-wrapper/blockArrowHelper.ts\nvar expandAndDeduplicateDirections = /* @__PURE__ */ __name((directions) => {\n const uniqueDirections = /* @__PURE__ */ new Set();\n for (const direction of directions) {\n switch (direction) {\n case \"x\":\n uniqueDirections.add(\"right\");\n uniqueDirections.add(\"left\");\n break;\n case \"y\":\n uniqueDirections.add(\"up\");\n uniqueDirections.add(\"down\");\n break;\n default:\n uniqueDirections.add(direction);\n break;\n }\n }\n return uniqueDirections;\n}, \"expandAndDeduplicateDirections\");\nvar getArrowPoints = /* @__PURE__ */ __name((duplicatedDirections, bbox, node) => {\n const directions = expandAndDeduplicateDirections(duplicatedDirections);\n const f = 2;\n const height = bbox.height + 2 * node.padding;\n const midpoint = height / f;\n const width = bbox.width + 2 * midpoint + node.padding;\n const padding2 = node.padding / 2;\n if (directions.has(\"right\") && directions.has(\"left\") && directions.has(\"up\") && directions.has(\"down\")) {\n return [\n // Bottom\n { x: 0, y: 0 },\n { x: midpoint, y: 0 },\n { x: width / 2, y: 2 * padding2 },\n { x: width - midpoint, y: 0 },\n { x: width, y: 0 },\n // Right\n { x: width, y: -height / 3 },\n { x: width + 2 * padding2, y: -height / 2 },\n { x: width, y: -2 * height / 3 },\n { x: width, y: -height },\n // Top\n { x: width - midpoint, y: -height },\n { x: width / 2, y: -height - 2 * padding2 },\n { x: midpoint, y: -height },\n // Left\n { x: 0, y: -height },\n { x: 0, y: -2 * height / 3 },\n { x: -2 * padding2, y: -height / 2 },\n { x: 0, y: -height / 3 }\n ];\n }\n if (directions.has(\"right\") && directions.has(\"left\") && directions.has(\"up\")) {\n return [\n { x: midpoint, y: 0 },\n { x: width - midpoint, y: 0 },\n { x: width, y: -height / 2 },\n { x: width - midpoint, y: -height },\n { x: midpoint, y: -height },\n { x: 0, y: -height / 2 }\n ];\n }\n if (directions.has(\"right\") && directions.has(\"left\") && directions.has(\"down\")) {\n return [\n { x: 0, y: 0 },\n { x: midpoint, y: -height },\n { x: width - midpoint, y: -height },\n { x: width, y: 0 }\n ];\n }\n if (directions.has(\"right\") && directions.has(\"up\") && directions.has(\"down\")) {\n return [\n { x: 0, y: 0 },\n { x: width, y: -midpoint },\n { x: width, y: -height + midpoint },\n { x: 0, y: -height }\n ];\n }\n if (directions.has(\"left\") && directions.has(\"up\") && directions.has(\"down\")) {\n return [\n { x: width, y: 0 },\n { x: 0, y: -midpoint },\n { x: 0, y: -height + midpoint },\n { x: width, y: -height }\n ];\n }\n if (directions.has(\"right\") && directions.has(\"left\")) {\n return [\n { x: midpoint, y: 0 },\n { x: midpoint, y: -padding2 },\n { x: width - midpoint, y: -padding2 },\n { x: width - midpoint, y: 0 },\n { x: width, y: -height / 2 },\n { x: width - midpoint, y: -height },\n { x: width - midpoint, y: -height + padding2 },\n { x: midpoint, y: -height + padding2 },\n { x: midpoint, y: -height },\n { x: 0, y: -height / 2 }\n ];\n }\n if (directions.has(\"up\") && directions.has(\"down\")) {\n return [\n // Bottom center\n { x: width / 2, y: 0 },\n // Left pont of bottom arrow\n { x: 0, y: -padding2 },\n { x: midpoint, y: -padding2 },\n // Left top over vertical section\n { x: midpoint, y: -height + padding2 },\n { x: 0, y: -height + padding2 },\n // Top of arrow\n { x: width / 2, y: -height },\n { x: width, y: -height + padding2 },\n // Top of right vertical bar\n { x: width - midpoint, y: -height + padding2 },\n { x: width - midpoint, y: -padding2 },\n { x: width, y: -padding2 }\n ];\n }\n if (directions.has(\"right\") && directions.has(\"up\")) {\n return [\n { x: 0, y: 0 },\n { x: width, y: -midpoint },\n { x: 0, y: -height }\n ];\n }\n if (directions.has(\"right\") && directions.has(\"down\")) {\n return [\n { x: 0, y: 0 },\n { x: width, y: 0 },\n { x: 0, y: -height }\n ];\n }\n if (directions.has(\"left\") && directions.has(\"up\")) {\n return [\n { x: width, y: 0 },\n { x: 0, y: -midpoint },\n { x: width, y: -height }\n ];\n }\n if (directions.has(\"left\") && directions.has(\"down\")) {\n return [\n { x: width, y: 0 },\n { x: 0, y: 0 },\n { x: width, y: -height }\n ];\n }\n if (directions.has(\"right\")) {\n return [\n { x: midpoint, y: -padding2 },\n { x: midpoint, y: -padding2 },\n { x: width - midpoint, y: -padding2 },\n { x: width - midpoint, y: 0 },\n { x: width, y: -height / 2 },\n { x: width - midpoint, y: -height },\n { x: width - midpoint, y: -height + padding2 },\n // top left corner of arrow\n { x: midpoint, y: -height + padding2 },\n { x: midpoint, y: -height + padding2 }\n ];\n }\n if (directions.has(\"left\")) {\n return [\n { x: midpoint, y: 0 },\n { x: midpoint, y: -padding2 },\n // Two points, the right corners\n { x: width - midpoint, y: -padding2 },\n { x: width - midpoint, y: -height + padding2 },\n { x: midpoint, y: -height + padding2 },\n { x: midpoint, y: -height },\n { x: 0, y: -height / 2 }\n ];\n }\n if (directions.has(\"up\")) {\n return [\n // Bottom center\n { x: midpoint, y: -padding2 },\n // Left top over vertical section\n { x: midpoint, y: -height + padding2 },\n { x: 0, y: -height + padding2 },\n // Top of arrow\n { x: width / 2, y: -height },\n { x: width, y: -height + padding2 },\n // Top of right vertical bar\n { x: width - midpoint, y: -height + padding2 },\n { x: width - midpoint, y: -padding2 }\n ];\n }\n if (directions.has(\"down\")) {\n return [\n // Bottom center\n { x: width / 2, y: 0 },\n // Left pont of bottom arrow\n { x: 0, y: -padding2 },\n { x: midpoint, y: -padding2 },\n // Left top over vertical section\n { x: midpoint, y: -height + padding2 },\n { x: width - midpoint, y: -height + padding2 },\n { x: width - midpoint, y: -padding2 },\n { x: width, y: -padding2 }\n ];\n }\n return [{ x: 0, y: 0 }];\n}, \"getArrowPoints\");\n\n// src/dagre-wrapper/intersect/intersect-node.js\nfunction intersectNode(node, point2) {\n return node.intersect(point2);\n}\n__name(intersectNode, \"intersectNode\");\nvar intersect_node_default = intersectNode;\n\n// src/dagre-wrapper/intersect/intersect-ellipse.js\nfunction intersectEllipse(node, rx, ry, point2) {\n var cx = node.x;\n var cy = node.y;\n var px = cx - point2.x;\n var py = cy - point2.y;\n var det = Math.sqrt(rx * rx * py * py + ry * ry * px * px);\n var dx = Math.abs(rx * ry * px / det);\n if (point2.x < cx) {\n dx = -dx;\n }\n var dy = Math.abs(rx * ry * py / det);\n if (point2.y < cy) {\n dy = -dy;\n }\n return { x: cx + dx, y: cy + dy };\n}\n__name(intersectEllipse, \"intersectEllipse\");\nvar intersect_ellipse_default = intersectEllipse;\n\n// src/dagre-wrapper/intersect/intersect-circle.js\nfunction intersectCircle(node, rx, point2) {\n return intersect_ellipse_default(node, rx, rx, point2);\n}\n__name(intersectCircle, \"intersectCircle\");\nvar intersect_circle_default = intersectCircle;\n\n// src/dagre-wrapper/intersect/intersect-line.js\nfunction intersectLine(p1, p2, q1, q2) {\n var a1, a2, b1, b2, c1, c2;\n var r1, r2, r3, r4;\n var denom, offset, num;\n var x, y;\n a1 = p2.y - p1.y;\n b1 = p1.x - p2.x;\n c1 = p2.x * p1.y - p1.x * p2.y;\n r3 = a1 * q1.x + b1 * q1.y + c1;\n r4 = a1 * q2.x + b1 * q2.y + c1;\n if (r3 !== 0 && r4 !== 0 && sameSign(r3, r4)) {\n return;\n }\n a2 = q2.y - q1.y;\n b2 = q1.x - q2.x;\n c2 = q2.x * q1.y - q1.x * q2.y;\n r1 = a2 * p1.x + b2 * p1.y + c2;\n r2 = a2 * p2.x + b2 * p2.y + c2;\n if (r1 !== 0 && r2 !== 0 && sameSign(r1, r2)) {\n return;\n }\n denom = a1 * b2 - a2 * b1;\n if (denom === 0) {\n return;\n }\n offset = Math.abs(denom / 2);\n num = b1 * c2 - b2 * c1;\n x = num < 0 ? (num - offset) / denom : (num + offset) / denom;\n num = a2 * c1 - a1 * c2;\n y = num < 0 ? (num - offset) / denom : (num + offset) / denom;\n return { x, y };\n}\n__name(intersectLine, \"intersectLine\");\nfunction sameSign(r1, r2) {\n return r1 * r2 > 0;\n}\n__name(sameSign, \"sameSign\");\nvar intersect_line_default = intersectLine;\n\n// src/dagre-wrapper/intersect/intersect-polygon.js\nvar intersect_polygon_default = intersectPolygon;\nfunction intersectPolygon(node, polyPoints, point2) {\n var x1 = node.x;\n var y1 = node.y;\n var intersections = [];\n var minX = Number.POSITIVE_INFINITY;\n var minY = Number.POSITIVE_INFINITY;\n if (typeof polyPoints.forEach === \"function\") {\n polyPoints.forEach(function(entry) {\n minX = Math.min(minX, entry.x);\n minY = Math.min(minY, entry.y);\n });\n } else {\n minX = Math.min(minX, polyPoints.x);\n minY = Math.min(minY, polyPoints.y);\n }\n var left = x1 - node.width / 2 - minX;\n var top = y1 - node.height / 2 - minY;\n for (var i = 0; i < polyPoints.length; i++) {\n var p1 = polyPoints[i];\n var p2 = polyPoints[i < polyPoints.length - 1 ? i + 1 : 0];\n var intersect = intersect_line_default(\n node,\n point2,\n { x: left + p1.x, y: top + p1.y },\n { x: left + p2.x, y: top + p2.y }\n );\n if (intersect) {\n intersections.push(intersect);\n }\n }\n if (!intersections.length) {\n return node;\n }\n if (intersections.length > 1) {\n intersections.sort(function(p, q) {\n var pdx = p.x - point2.x;\n var pdy = p.y - point2.y;\n var distp = Math.sqrt(pdx * pdx + pdy * pdy);\n var qdx = q.x - point2.x;\n var qdy = q.y - point2.y;\n var distq = Math.sqrt(qdx * qdx + qdy * qdy);\n return distp < distq ? -1 : distp === distq ? 0 : 1;\n });\n }\n return intersections[0];\n}\n__name(intersectPolygon, \"intersectPolygon\");\n\n// src/dagre-wrapper/intersect/intersect-rect.js\nvar intersectRect = /* @__PURE__ */ __name((node, point2) => {\n var x = node.x;\n var y = node.y;\n var dx = point2.x - x;\n var dy = point2.y - y;\n var w = node.width / 2;\n var h = node.height / 2;\n var sx, sy;\n if (Math.abs(dy) * w > Math.abs(dx) * h) {\n if (dy < 0) {\n h = -h;\n }\n sx = dy === 0 ? 0 : h * dx / dy;\n sy = h;\n } else {\n if (dx < 0) {\n w = -w;\n }\n sx = w;\n sy = dx === 0 ? 0 : w * dy / dx;\n }\n return { x: x + sx, y: y + sy };\n}, \"intersectRect\");\nvar intersect_rect_default = intersectRect;\n\n// src/dagre-wrapper/intersect/index.js\nvar intersect_default = {\n node: intersect_node_default,\n circle: intersect_circle_default,\n ellipse: intersect_ellipse_default,\n polygon: intersect_polygon_default,\n rect: intersect_rect_default\n};\n\n// src/dagre-wrapper/shapes/util.js\nimport { select as select3 } from \"d3\";\nvar labelHelper = /* @__PURE__ */ __name(async (parent, node, _classes, isNode) => {\n const config2 = getConfig2();\n let classes2;\n const useHtmlLabels = node.useHtmlLabels || evaluate(config2.flowchart.htmlLabels);\n if (!_classes) {\n classes2 = \"node default\";\n } else {\n classes2 = _classes;\n }\n const shapeSvg = parent.insert(\"g\").attr(\"class\", classes2).attr(\"id\", node.domId || node.id);\n const label = shapeSvg.insert(\"g\").attr(\"class\", \"label\").attr(\"style\", node.labelStyle);\n let labelText;\n if (node.labelText === void 0) {\n labelText = \"\";\n } else {\n labelText = typeof node.labelText === \"string\" ? node.labelText : node.labelText[0];\n }\n const textNode = label.node();\n let text;\n if (node.labelType === \"markdown\") {\n text = createText(\n label,\n sanitizeText(decodeEntities(labelText), config2),\n {\n useHtmlLabels,\n width: node.width || config2.flowchart.wrappingWidth,\n classes: \"markdown-node-label\"\n },\n config2\n );\n } else {\n text = textNode.appendChild(\n createLabel_default(sanitizeText(decodeEntities(labelText), config2), node.labelStyle, false, isNode)\n );\n }\n let bbox = text.getBBox();\n const halfPadding = node.padding / 2;\n if (evaluate(config2.flowchart.htmlLabels)) {\n const div = text.children[0];\n const dv = select3(text);\n const images = div.getElementsByTagName(\"img\");\n if (images) {\n const noImgText = labelText.replace(/]*>/g, \"\").trim() === \"\";\n await Promise.all(\n [...images].map(\n (img) => new Promise((res) => {\n function setupImage() {\n img.style.display = \"flex\";\n img.style.flexDirection = \"column\";\n if (noImgText) {\n const bodyFontSize = config2.fontSize ? config2.fontSize : window.getComputedStyle(document.body).fontSize;\n const enlargingFactor = 5;\n const width = parseInt(bodyFontSize, 10) * enlargingFactor + \"px\";\n img.style.minWidth = width;\n img.style.maxWidth = width;\n } else {\n img.style.width = \"100%\";\n }\n res(img);\n }\n __name(setupImage, \"setupImage\");\n setTimeout(() => {\n if (img.complete) {\n setupImage();\n }\n });\n img.addEventListener(\"error\", setupImage);\n img.addEventListener(\"load\", setupImage);\n })\n )\n );\n }\n bbox = div.getBoundingClientRect();\n dv.attr(\"width\", bbox.width);\n dv.attr(\"height\", bbox.height);\n }\n if (useHtmlLabels) {\n label.attr(\"transform\", \"translate(\" + -bbox.width / 2 + \", \" + -bbox.height / 2 + \")\");\n } else {\n label.attr(\"transform\", \"translate(0, \" + -bbox.height / 2 + \")\");\n }\n if (node.centerLabel) {\n label.attr(\"transform\", \"translate(\" + -bbox.width / 2 + \", \" + -bbox.height / 2 + \")\");\n }\n label.insert(\"rect\", \":first-child\");\n return { shapeSvg, bbox, halfPadding, label };\n}, \"labelHelper\");\nvar updateNodeBounds = /* @__PURE__ */ __name((node, element) => {\n const bbox = element.node().getBBox();\n node.width = bbox.width;\n node.height = bbox.height;\n}, \"updateNodeBounds\");\nfunction insertPolygonShape(parent, w, h, points) {\n return parent.insert(\"polygon\", \":first-child\").attr(\n \"points\",\n points.map(function(d) {\n return d.x + \",\" + d.y;\n }).join(\" \")\n ).attr(\"class\", \"label-container\").attr(\"transform\", \"translate(\" + -w / 2 + \",\" + h / 2 + \")\");\n}\n__name(insertPolygonShape, \"insertPolygonShape\");\n\n// src/dagre-wrapper/shapes/note.js\nvar note = /* @__PURE__ */ __name(async (parent, node) => {\n const useHtmlLabels = node.useHtmlLabels || getConfig2().flowchart.htmlLabels;\n if (!useHtmlLabels) {\n node.centerLabel = true;\n }\n const { shapeSvg, bbox, halfPadding } = await labelHelper(\n parent,\n node,\n \"node \" + node.classes,\n true\n );\n log.info(\"Classes = \", node.classes);\n const rect2 = shapeSvg.insert(\"rect\", \":first-child\");\n rect2.attr(\"rx\", node.rx).attr(\"ry\", node.ry).attr(\"x\", -bbox.width / 2 - halfPadding).attr(\"y\", -bbox.height / 2 - halfPadding).attr(\"width\", bbox.width + node.padding).attr(\"height\", bbox.height + node.padding);\n updateNodeBounds(node, rect2);\n node.intersect = function(point2) {\n return intersect_default.rect(node, point2);\n };\n return shapeSvg;\n}, \"note\");\nvar note_default = note;\n\n// src/dagre-wrapper/nodes.js\nvar formatClass = /* @__PURE__ */ __name((str) => {\n if (str) {\n return \" \" + str;\n }\n return \"\";\n}, \"formatClass\");\nvar getClassesFromNode = /* @__PURE__ */ __name((node, otherClasses) => {\n return `${otherClasses ? otherClasses : \"node default\"}${formatClass(node.classes)} ${formatClass(\n node.class\n )}`;\n}, \"getClassesFromNode\");\nvar question = /* @__PURE__ */ __name(async (parent, node) => {\n const { shapeSvg, bbox } = await labelHelper(\n parent,\n node,\n getClassesFromNode(node, void 0),\n true\n );\n const w = bbox.width + node.padding;\n const h = bbox.height + node.padding;\n const s = w + h;\n const points = [\n { x: s / 2, y: 0 },\n { x: s, y: -s / 2 },\n { x: s / 2, y: -s },\n { x: 0, y: -s / 2 }\n ];\n log.info(\"Question main (Circle)\");\n const questionElem = insertPolygonShape(shapeSvg, s, s, points);\n questionElem.attr(\"style\", node.style);\n updateNodeBounds(node, questionElem);\n node.intersect = function(point2) {\n log.warn(\"Intersect called\");\n return intersect_default.polygon(node, points, point2);\n };\n return shapeSvg;\n}, \"question\");\nvar choice = /* @__PURE__ */ __name((parent, node) => {\n const shapeSvg = parent.insert(\"g\").attr(\"class\", \"node default\").attr(\"id\", node.domId || node.id);\n const s = 28;\n const points = [\n { x: 0, y: s / 2 },\n { x: s / 2, y: 0 },\n { x: 0, y: -s / 2 },\n { x: -s / 2, y: 0 }\n ];\n const choice2 = shapeSvg.insert(\"polygon\", \":first-child\").attr(\n \"points\",\n points.map(function(d) {\n return d.x + \",\" + d.y;\n }).join(\" \")\n );\n choice2.attr(\"class\", \"state-start\").attr(\"r\", 7).attr(\"width\", 28).attr(\"height\", 28);\n node.width = 28;\n node.height = 28;\n node.intersect = function(point2) {\n return intersect_default.circle(node, 14, point2);\n };\n return shapeSvg;\n}, \"choice\");\nvar hexagon = /* @__PURE__ */ __name(async (parent, node) => {\n const { shapeSvg, bbox } = await labelHelper(\n parent,\n node,\n getClassesFromNode(node, void 0),\n true\n );\n const f = 4;\n const h = bbox.height + node.padding;\n const m = h / f;\n const w = bbox.width + 2 * m + node.padding;\n const points = [\n { x: m, y: 0 },\n { x: w - m, y: 0 },\n { x: w, y: -h / 2 },\n { x: w - m, y: -h },\n { x: m, y: -h },\n { x: 0, y: -h / 2 }\n ];\n const hex = insertPolygonShape(shapeSvg, w, h, points);\n hex.attr(\"style\", node.style);\n updateNodeBounds(node, hex);\n node.intersect = function(point2) {\n return intersect_default.polygon(node, points, point2);\n };\n return shapeSvg;\n}, \"hexagon\");\nvar block_arrow = /* @__PURE__ */ __name(async (parent, node) => {\n const { shapeSvg, bbox } = await labelHelper(parent, node, void 0, true);\n const f = 2;\n const h = bbox.height + 2 * node.padding;\n const m = h / f;\n const w = bbox.width + 2 * m + node.padding;\n const points = getArrowPoints(node.directions, bbox, node);\n const blockArrow = insertPolygonShape(shapeSvg, w, h, points);\n blockArrow.attr(\"style\", node.style);\n updateNodeBounds(node, blockArrow);\n node.intersect = function(point2) {\n return intersect_default.polygon(node, points, point2);\n };\n return shapeSvg;\n}, \"block_arrow\");\nvar rect_left_inv_arrow = /* @__PURE__ */ __name(async (parent, node) => {\n const { shapeSvg, bbox } = await labelHelper(\n parent,\n node,\n getClassesFromNode(node, void 0),\n true\n );\n const w = bbox.width + node.padding;\n const h = bbox.height + node.padding;\n const points = [\n { x: -h / 2, y: 0 },\n { x: w, y: 0 },\n { x: w, y: -h },\n { x: -h / 2, y: -h },\n { x: 0, y: -h / 2 }\n ];\n const el = insertPolygonShape(shapeSvg, w, h, points);\n el.attr(\"style\", node.style);\n node.width = w + h;\n node.height = h;\n node.intersect = function(point2) {\n return intersect_default.polygon(node, points, point2);\n };\n return shapeSvg;\n}, \"rect_left_inv_arrow\");\nvar lean_right = /* @__PURE__ */ __name(async (parent, node) => {\n const { shapeSvg, bbox } = await labelHelper(parent, node, getClassesFromNode(node), true);\n const w = bbox.width + node.padding;\n const h = bbox.height + node.padding;\n const points = [\n { x: -2 * h / 6, y: 0 },\n { x: w - h / 6, y: 0 },\n { x: w + 2 * h / 6, y: -h },\n { x: h / 6, y: -h }\n ];\n const el = insertPolygonShape(shapeSvg, w, h, points);\n el.attr(\"style\", node.style);\n updateNodeBounds(node, el);\n node.intersect = function(point2) {\n return intersect_default.polygon(node, points, point2);\n };\n return shapeSvg;\n}, \"lean_right\");\nvar lean_left = /* @__PURE__ */ __name(async (parent, node) => {\n const { shapeSvg, bbox } = await labelHelper(\n parent,\n node,\n getClassesFromNode(node, void 0),\n true\n );\n const w = bbox.width + node.padding;\n const h = bbox.height + node.padding;\n const points = [\n { x: 2 * h / 6, y: 0 },\n { x: w + h / 6, y: 0 },\n { x: w - 2 * h / 6, y: -h },\n { x: -h / 6, y: -h }\n ];\n const el = insertPolygonShape(shapeSvg, w, h, points);\n el.attr(\"style\", node.style);\n updateNodeBounds(node, el);\n node.intersect = function(point2) {\n return intersect_default.polygon(node, points, point2);\n };\n return shapeSvg;\n}, \"lean_left\");\nvar trapezoid = /* @__PURE__ */ __name(async (parent, node) => {\n const { shapeSvg, bbox } = await labelHelper(\n parent,\n node,\n getClassesFromNode(node, void 0),\n true\n );\n const w = bbox.width + node.padding;\n const h = bbox.height + node.padding;\n const points = [\n { x: -2 * h / 6, y: 0 },\n { x: w + 2 * h / 6, y: 0 },\n { x: w - h / 6, y: -h },\n { x: h / 6, y: -h }\n ];\n const el = insertPolygonShape(shapeSvg, w, h, points);\n el.attr(\"style\", node.style);\n updateNodeBounds(node, el);\n node.intersect = function(point2) {\n return intersect_default.polygon(node, points, point2);\n };\n return shapeSvg;\n}, \"trapezoid\");\nvar inv_trapezoid = /* @__PURE__ */ __name(async (parent, node) => {\n const { shapeSvg, bbox } = await labelHelper(\n parent,\n node,\n getClassesFromNode(node, void 0),\n true\n );\n const w = bbox.width + node.padding;\n const h = bbox.height + node.padding;\n const points = [\n { x: h / 6, y: 0 },\n { x: w - h / 6, y: 0 },\n { x: w + 2 * h / 6, y: -h },\n { x: -2 * h / 6, y: -h }\n ];\n const el = insertPolygonShape(shapeSvg, w, h, points);\n el.attr(\"style\", node.style);\n updateNodeBounds(node, el);\n node.intersect = function(point2) {\n return intersect_default.polygon(node, points, point2);\n };\n return shapeSvg;\n}, \"inv_trapezoid\");\nvar rect_right_inv_arrow = /* @__PURE__ */ __name(async (parent, node) => {\n const { shapeSvg, bbox } = await labelHelper(\n parent,\n node,\n getClassesFromNode(node, void 0),\n true\n );\n const w = bbox.width + node.padding;\n const h = bbox.height + node.padding;\n const points = [\n { x: 0, y: 0 },\n { x: w + h / 2, y: 0 },\n { x: w, y: -h / 2 },\n { x: w + h / 2, y: -h },\n { x: 0, y: -h }\n ];\n const el = insertPolygonShape(shapeSvg, w, h, points);\n el.attr(\"style\", node.style);\n updateNodeBounds(node, el);\n node.intersect = function(point2) {\n return intersect_default.polygon(node, points, point2);\n };\n return shapeSvg;\n}, \"rect_right_inv_arrow\");\nvar cylinder = /* @__PURE__ */ __name(async (parent, node) => {\n const { shapeSvg, bbox } = await labelHelper(\n parent,\n node,\n getClassesFromNode(node, void 0),\n true\n );\n const w = bbox.width + node.padding;\n const rx = w / 2;\n const ry = rx / (2.5 + w / 50);\n const h = bbox.height + ry + node.padding;\n const shape = \"M 0,\" + ry + \" a \" + rx + \",\" + ry + \" 0,0,0 \" + w + \" 0 a \" + rx + \",\" + ry + \" 0,0,0 \" + -w + \" 0 l 0,\" + h + \" a \" + rx + \",\" + ry + \" 0,0,0 \" + w + \" 0 l 0,\" + -h;\n const el = shapeSvg.attr(\"label-offset-y\", ry).insert(\"path\", \":first-child\").attr(\"style\", node.style).attr(\"d\", shape).attr(\"transform\", \"translate(\" + -w / 2 + \",\" + -(h / 2 + ry) + \")\");\n updateNodeBounds(node, el);\n node.intersect = function(point2) {\n const pos = intersect_default.rect(node, point2);\n const x = pos.x - node.x;\n if (rx != 0 && (Math.abs(x) < node.width / 2 || Math.abs(x) == node.width / 2 && Math.abs(pos.y - node.y) > node.height / 2 - ry)) {\n let y = ry * ry * (1 - x * x / (rx * rx));\n if (y != 0) {\n y = Math.sqrt(y);\n }\n y = ry - y;\n if (point2.y - node.y > 0) {\n y = -y;\n }\n pos.y += y;\n }\n return pos;\n };\n return shapeSvg;\n}, \"cylinder\");\nvar rect = /* @__PURE__ */ __name(async (parent, node) => {\n const { shapeSvg, bbox, halfPadding } = await labelHelper(\n parent,\n node,\n \"node \" + node.classes + \" \" + node.class,\n true\n );\n const rect2 = shapeSvg.insert(\"rect\", \":first-child\");\n const totalWidth = node.positioned ? node.width : bbox.width + node.padding;\n const totalHeight = node.positioned ? node.height : bbox.height + node.padding;\n const x = node.positioned ? -totalWidth / 2 : -bbox.width / 2 - halfPadding;\n const y = node.positioned ? -totalHeight / 2 : -bbox.height / 2 - halfPadding;\n rect2.attr(\"class\", \"basic label-container\").attr(\"style\", node.style).attr(\"rx\", node.rx).attr(\"ry\", node.ry).attr(\"x\", x).attr(\"y\", y).attr(\"width\", totalWidth).attr(\"height\", totalHeight);\n if (node.props) {\n const propKeys = new Set(Object.keys(node.props));\n if (node.props.borders) {\n applyNodePropertyBorders(rect2, node.props.borders, totalWidth, totalHeight);\n propKeys.delete(\"borders\");\n }\n propKeys.forEach((propKey) => {\n log.warn(`Unknown node property ${propKey}`);\n });\n }\n updateNodeBounds(node, rect2);\n node.intersect = function(point2) {\n return intersect_default.rect(node, point2);\n };\n return shapeSvg;\n}, \"rect\");\nvar composite = /* @__PURE__ */ __name(async (parent, node) => {\n const { shapeSvg, bbox, halfPadding } = await labelHelper(\n parent,\n node,\n \"node \" + node.classes,\n true\n );\n const rect2 = shapeSvg.insert(\"rect\", \":first-child\");\n const totalWidth = node.positioned ? node.width : bbox.width + node.padding;\n const totalHeight = node.positioned ? node.height : bbox.height + node.padding;\n const x = node.positioned ? -totalWidth / 2 : -bbox.width / 2 - halfPadding;\n const y = node.positioned ? -totalHeight / 2 : -bbox.height / 2 - halfPadding;\n rect2.attr(\"class\", \"basic cluster composite label-container\").attr(\"style\", node.style).attr(\"rx\", node.rx).attr(\"ry\", node.ry).attr(\"x\", x).attr(\"y\", y).attr(\"width\", totalWidth).attr(\"height\", totalHeight);\n if (node.props) {\n const propKeys = new Set(Object.keys(node.props));\n if (node.props.borders) {\n applyNodePropertyBorders(rect2, node.props.borders, totalWidth, totalHeight);\n propKeys.delete(\"borders\");\n }\n propKeys.forEach((propKey) => {\n log.warn(`Unknown node property ${propKey}`);\n });\n }\n updateNodeBounds(node, rect2);\n node.intersect = function(point2) {\n return intersect_default.rect(node, point2);\n };\n return shapeSvg;\n}, \"composite\");\nvar labelRect = /* @__PURE__ */ __name(async (parent, node) => {\n const { shapeSvg } = await labelHelper(parent, node, \"label\", true);\n log.trace(\"Classes = \", node.class);\n const rect2 = shapeSvg.insert(\"rect\", \":first-child\");\n const totalWidth = 0;\n const totalHeight = 0;\n rect2.attr(\"width\", totalWidth).attr(\"height\", totalHeight);\n shapeSvg.attr(\"class\", \"label edgeLabel\");\n if (node.props) {\n const propKeys = new Set(Object.keys(node.props));\n if (node.props.borders) {\n applyNodePropertyBorders(rect2, node.props.borders, totalWidth, totalHeight);\n propKeys.delete(\"borders\");\n }\n propKeys.forEach((propKey) => {\n log.warn(`Unknown node property ${propKey}`);\n });\n }\n updateNodeBounds(node, rect2);\n node.intersect = function(point2) {\n return intersect_default.rect(node, point2);\n };\n return shapeSvg;\n}, \"labelRect\");\nfunction applyNodePropertyBorders(rect2, borders, totalWidth, totalHeight) {\n const strokeDashArray = [];\n const addBorder = /* @__PURE__ */ __name((length) => {\n strokeDashArray.push(length, 0);\n }, \"addBorder\");\n const skipBorder = /* @__PURE__ */ __name((length) => {\n strokeDashArray.push(0, length);\n }, \"skipBorder\");\n if (borders.includes(\"t\")) {\n log.debug(\"add top border\");\n addBorder(totalWidth);\n } else {\n skipBorder(totalWidth);\n }\n if (borders.includes(\"r\")) {\n log.debug(\"add right border\");\n addBorder(totalHeight);\n } else {\n skipBorder(totalHeight);\n }\n if (borders.includes(\"b\")) {\n log.debug(\"add bottom border\");\n addBorder(totalWidth);\n } else {\n skipBorder(totalWidth);\n }\n if (borders.includes(\"l\")) {\n log.debug(\"add left border\");\n addBorder(totalHeight);\n } else {\n skipBorder(totalHeight);\n }\n rect2.attr(\"stroke-dasharray\", strokeDashArray.join(\" \"));\n}\n__name(applyNodePropertyBorders, \"applyNodePropertyBorders\");\nvar rectWithTitle = /* @__PURE__ */ __name((parent, node) => {\n let classes2;\n if (!node.classes) {\n classes2 = \"node default\";\n } else {\n classes2 = \"node \" + node.classes;\n }\n const shapeSvg = parent.insert(\"g\").attr(\"class\", classes2).attr(\"id\", node.domId || node.id);\n const rect2 = shapeSvg.insert(\"rect\", \":first-child\");\n const innerLine = shapeSvg.insert(\"line\");\n const label = shapeSvg.insert(\"g\").attr(\"class\", \"label\");\n const text2 = node.labelText.flat ? node.labelText.flat() : node.labelText;\n let title = \"\";\n if (typeof text2 === \"object\") {\n title = text2[0];\n } else {\n title = text2;\n }\n log.info(\"Label text abc79\", title, text2, typeof text2 === \"object\");\n const text = label.node().appendChild(createLabel_default(title, node.labelStyle, true, true));\n let bbox = { width: 0, height: 0 };\n if (evaluate(getConfig2().flowchart.htmlLabels)) {\n const div = text.children[0];\n const dv = select4(text);\n bbox = div.getBoundingClientRect();\n dv.attr(\"width\", bbox.width);\n dv.attr(\"height\", bbox.height);\n }\n log.info(\"Text 2\", text2);\n const textRows = text2.slice(1, text2.length);\n let titleBox = text.getBBox();\n const descr = label.node().appendChild(\n createLabel_default(textRows.join ? textRows.join(\"
    \") : textRows, node.labelStyle, true, true)\n );\n if (evaluate(getConfig2().flowchart.htmlLabels)) {\n const div = descr.children[0];\n const dv = select4(descr);\n bbox = div.getBoundingClientRect();\n dv.attr(\"width\", bbox.width);\n dv.attr(\"height\", bbox.height);\n }\n const halfPadding = node.padding / 2;\n select4(descr).attr(\n \"transform\",\n \"translate( \" + // (titleBox.width - bbox.width) / 2 +\n (bbox.width > titleBox.width ? 0 : (titleBox.width - bbox.width) / 2) + \", \" + (titleBox.height + halfPadding + 5) + \")\"\n );\n select4(text).attr(\n \"transform\",\n \"translate( \" + // (titleBox.width - bbox.width) / 2 +\n (bbox.width < titleBox.width ? 0 : -(titleBox.width - bbox.width) / 2) + \", 0)\"\n );\n bbox = label.node().getBBox();\n label.attr(\n \"transform\",\n \"translate(\" + -bbox.width / 2 + \", \" + (-bbox.height / 2 - halfPadding + 3) + \")\"\n );\n rect2.attr(\"class\", \"outer title-state\").attr(\"x\", -bbox.width / 2 - halfPadding).attr(\"y\", -bbox.height / 2 - halfPadding).attr(\"width\", bbox.width + node.padding).attr(\"height\", bbox.height + node.padding);\n innerLine.attr(\"class\", \"divider\").attr(\"x1\", -bbox.width / 2 - halfPadding).attr(\"x2\", bbox.width / 2 + halfPadding).attr(\"y1\", -bbox.height / 2 - halfPadding + titleBox.height + halfPadding).attr(\"y2\", -bbox.height / 2 - halfPadding + titleBox.height + halfPadding);\n updateNodeBounds(node, rect2);\n node.intersect = function(point2) {\n return intersect_default.rect(node, point2);\n };\n return shapeSvg;\n}, \"rectWithTitle\");\nvar stadium = /* @__PURE__ */ __name(async (parent, node) => {\n const { shapeSvg, bbox } = await labelHelper(\n parent,\n node,\n getClassesFromNode(node, void 0),\n true\n );\n const h = bbox.height + node.padding;\n const w = bbox.width + h / 4 + node.padding;\n const rect2 = shapeSvg.insert(\"rect\", \":first-child\").attr(\"style\", node.style).attr(\"rx\", h / 2).attr(\"ry\", h / 2).attr(\"x\", -w / 2).attr(\"y\", -h / 2).attr(\"width\", w).attr(\"height\", h);\n updateNodeBounds(node, rect2);\n node.intersect = function(point2) {\n return intersect_default.rect(node, point2);\n };\n return shapeSvg;\n}, \"stadium\");\nvar circle2 = /* @__PURE__ */ __name(async (parent, node) => {\n const { shapeSvg, bbox, halfPadding } = await labelHelper(\n parent,\n node,\n getClassesFromNode(node, void 0),\n true\n );\n const circle3 = shapeSvg.insert(\"circle\", \":first-child\");\n circle3.attr(\"style\", node.style).attr(\"rx\", node.rx).attr(\"ry\", node.ry).attr(\"r\", bbox.width / 2 + halfPadding).attr(\"width\", bbox.width + node.padding).attr(\"height\", bbox.height + node.padding);\n log.info(\"Circle main\");\n updateNodeBounds(node, circle3);\n node.intersect = function(point2) {\n log.info(\"Circle intersect\", node, bbox.width / 2 + halfPadding, point2);\n return intersect_default.circle(node, bbox.width / 2 + halfPadding, point2);\n };\n return shapeSvg;\n}, \"circle\");\nvar doublecircle = /* @__PURE__ */ __name(async (parent, node) => {\n const { shapeSvg, bbox, halfPadding } = await labelHelper(\n parent,\n node,\n getClassesFromNode(node, void 0),\n true\n );\n const gap = 5;\n const circleGroup = shapeSvg.insert(\"g\", \":first-child\");\n const outerCircle = circleGroup.insert(\"circle\");\n const innerCircle = circleGroup.insert(\"circle\");\n circleGroup.attr(\"class\", node.class);\n outerCircle.attr(\"style\", node.style).attr(\"rx\", node.rx).attr(\"ry\", node.ry).attr(\"r\", bbox.width / 2 + halfPadding + gap).attr(\"width\", bbox.width + node.padding + gap * 2).attr(\"height\", bbox.height + node.padding + gap * 2);\n innerCircle.attr(\"style\", node.style).attr(\"rx\", node.rx).attr(\"ry\", node.ry).attr(\"r\", bbox.width / 2 + halfPadding).attr(\"width\", bbox.width + node.padding).attr(\"height\", bbox.height + node.padding);\n log.info(\"DoubleCircle main\");\n updateNodeBounds(node, outerCircle);\n node.intersect = function(point2) {\n log.info(\"DoubleCircle intersect\", node, bbox.width / 2 + halfPadding + gap, point2);\n return intersect_default.circle(node, bbox.width / 2 + halfPadding + gap, point2);\n };\n return shapeSvg;\n}, \"doublecircle\");\nvar subroutine = /* @__PURE__ */ __name(async (parent, node) => {\n const { shapeSvg, bbox } = await labelHelper(\n parent,\n node,\n getClassesFromNode(node, void 0),\n true\n );\n const w = bbox.width + node.padding;\n const h = bbox.height + node.padding;\n const points = [\n { x: 0, y: 0 },\n { x: w, y: 0 },\n { x: w, y: -h },\n { x: 0, y: -h },\n { x: 0, y: 0 },\n { x: -8, y: 0 },\n { x: w + 8, y: 0 },\n { x: w + 8, y: -h },\n { x: -8, y: -h },\n { x: -8, y: 0 }\n ];\n const el = insertPolygonShape(shapeSvg, w, h, points);\n el.attr(\"style\", node.style);\n updateNodeBounds(node, el);\n node.intersect = function(point2) {\n return intersect_default.polygon(node, points, point2);\n };\n return shapeSvg;\n}, \"subroutine\");\nvar start = /* @__PURE__ */ __name((parent, node) => {\n const shapeSvg = parent.insert(\"g\").attr(\"class\", \"node default\").attr(\"id\", node.domId || node.id);\n const circle3 = shapeSvg.insert(\"circle\", \":first-child\");\n circle3.attr(\"class\", \"state-start\").attr(\"r\", 7).attr(\"width\", 14).attr(\"height\", 14);\n updateNodeBounds(node, circle3);\n node.intersect = function(point2) {\n return intersect_default.circle(node, 7, point2);\n };\n return shapeSvg;\n}, \"start\");\nvar forkJoin = /* @__PURE__ */ __name((parent, node, dir) => {\n const shapeSvg = parent.insert(\"g\").attr(\"class\", \"node default\").attr(\"id\", node.domId || node.id);\n let width = 70;\n let height = 10;\n if (dir === \"LR\") {\n width = 10;\n height = 70;\n }\n const shape = shapeSvg.append(\"rect\").attr(\"x\", -1 * width / 2).attr(\"y\", -1 * height / 2).attr(\"width\", width).attr(\"height\", height).attr(\"class\", \"fork-join\");\n updateNodeBounds(node, shape);\n node.height = node.height + node.padding / 2;\n node.width = node.width + node.padding / 2;\n node.intersect = function(point2) {\n return intersect_default.rect(node, point2);\n };\n return shapeSvg;\n}, \"forkJoin\");\nvar end = /* @__PURE__ */ __name((parent, node) => {\n const shapeSvg = parent.insert(\"g\").attr(\"class\", \"node default\").attr(\"id\", node.domId || node.id);\n const innerCircle = shapeSvg.insert(\"circle\", \":first-child\");\n const circle3 = shapeSvg.insert(\"circle\", \":first-child\");\n circle3.attr(\"class\", \"state-start\").attr(\"r\", 7).attr(\"width\", 14).attr(\"height\", 14);\n innerCircle.attr(\"class\", \"state-end\").attr(\"r\", 5).attr(\"width\", 10).attr(\"height\", 10);\n updateNodeBounds(node, circle3);\n node.intersect = function(point2) {\n return intersect_default.circle(node, 7, point2);\n };\n return shapeSvg;\n}, \"end\");\nvar class_box = /* @__PURE__ */ __name((parent, node) => {\n const halfPadding = node.padding / 2;\n const rowPadding = 4;\n const lineHeight = 8;\n let classes2;\n if (!node.classes) {\n classes2 = \"node default\";\n } else {\n classes2 = \"node \" + node.classes;\n }\n const shapeSvg = parent.insert(\"g\").attr(\"class\", classes2).attr(\"id\", node.domId || node.id);\n const rect2 = shapeSvg.insert(\"rect\", \":first-child\");\n const topLine = shapeSvg.insert(\"line\");\n const bottomLine = shapeSvg.insert(\"line\");\n let maxWidth = 0;\n let maxHeight = rowPadding;\n const labelContainer = shapeSvg.insert(\"g\").attr(\"class\", \"label\");\n let verticalPos = 0;\n const hasInterface = node.classData.annotations?.[0];\n const interfaceLabelText = node.classData.annotations[0] ? \"\\xAB\" + node.classData.annotations[0] + \"\\xBB\" : \"\";\n const interfaceLabel = labelContainer.node().appendChild(createLabel_default(interfaceLabelText, node.labelStyle, true, true));\n let interfaceBBox = interfaceLabel.getBBox();\n if (evaluate(getConfig2().flowchart.htmlLabels)) {\n const div = interfaceLabel.children[0];\n const dv = select4(interfaceLabel);\n interfaceBBox = div.getBoundingClientRect();\n dv.attr(\"width\", interfaceBBox.width);\n dv.attr(\"height\", interfaceBBox.height);\n }\n if (node.classData.annotations[0]) {\n maxHeight += interfaceBBox.height + rowPadding;\n maxWidth += interfaceBBox.width;\n }\n let classTitleString = node.classData.label;\n if (node.classData.type !== void 0 && node.classData.type !== \"\") {\n if (getConfig2().flowchart.htmlLabels) {\n classTitleString += \"<\" + node.classData.type + \">\";\n } else {\n classTitleString += \"<\" + node.classData.type + \">\";\n }\n }\n const classTitleLabel = labelContainer.node().appendChild(createLabel_default(classTitleString, node.labelStyle, true, true));\n select4(classTitleLabel).attr(\"class\", \"classTitle\");\n let classTitleBBox = classTitleLabel.getBBox();\n if (evaluate(getConfig2().flowchart.htmlLabels)) {\n const div = classTitleLabel.children[0];\n const dv = select4(classTitleLabel);\n classTitleBBox = div.getBoundingClientRect();\n dv.attr(\"width\", classTitleBBox.width);\n dv.attr(\"height\", classTitleBBox.height);\n }\n maxHeight += classTitleBBox.height + rowPadding;\n if (classTitleBBox.width > maxWidth) {\n maxWidth = classTitleBBox.width;\n }\n const classAttributes = [];\n node.classData.members.forEach((member) => {\n const parsedInfo = member.getDisplayDetails();\n let parsedText = parsedInfo.displayText;\n if (getConfig2().flowchart.htmlLabels) {\n parsedText = parsedText.replace(//g, \">\");\n }\n const lbl = labelContainer.node().appendChild(\n createLabel_default(\n parsedText,\n parsedInfo.cssStyle ? parsedInfo.cssStyle : node.labelStyle,\n true,\n true\n )\n );\n let bbox = lbl.getBBox();\n if (evaluate(getConfig2().flowchart.htmlLabels)) {\n const div = lbl.children[0];\n const dv = select4(lbl);\n bbox = div.getBoundingClientRect();\n dv.attr(\"width\", bbox.width);\n dv.attr(\"height\", bbox.height);\n }\n if (bbox.width > maxWidth) {\n maxWidth = bbox.width;\n }\n maxHeight += bbox.height + rowPadding;\n classAttributes.push(lbl);\n });\n maxHeight += lineHeight;\n const classMethods = [];\n node.classData.methods.forEach((member) => {\n const parsedInfo = member.getDisplayDetails();\n let displayText = parsedInfo.displayText;\n if (getConfig2().flowchart.htmlLabels) {\n displayText = displayText.replace(//g, \">\");\n }\n const lbl = labelContainer.node().appendChild(\n createLabel_default(\n displayText,\n parsedInfo.cssStyle ? parsedInfo.cssStyle : node.labelStyle,\n true,\n true\n )\n );\n let bbox = lbl.getBBox();\n if (evaluate(getConfig2().flowchart.htmlLabels)) {\n const div = lbl.children[0];\n const dv = select4(lbl);\n bbox = div.getBoundingClientRect();\n dv.attr(\"width\", bbox.width);\n dv.attr(\"height\", bbox.height);\n }\n if (bbox.width > maxWidth) {\n maxWidth = bbox.width;\n }\n maxHeight += bbox.height + rowPadding;\n classMethods.push(lbl);\n });\n maxHeight += lineHeight;\n if (hasInterface) {\n let diffX2 = (maxWidth - interfaceBBox.width) / 2;\n select4(interfaceLabel).attr(\n \"transform\",\n \"translate( \" + (-1 * maxWidth / 2 + diffX2) + \", \" + -1 * maxHeight / 2 + \")\"\n );\n verticalPos = interfaceBBox.height + rowPadding;\n }\n let diffX = (maxWidth - classTitleBBox.width) / 2;\n select4(classTitleLabel).attr(\n \"transform\",\n \"translate( \" + (-1 * maxWidth / 2 + diffX) + \", \" + (-1 * maxHeight / 2 + verticalPos) + \")\"\n );\n verticalPos += classTitleBBox.height + rowPadding;\n topLine.attr(\"class\", \"divider\").attr(\"x1\", -maxWidth / 2 - halfPadding).attr(\"x2\", maxWidth / 2 + halfPadding).attr(\"y1\", -maxHeight / 2 - halfPadding + lineHeight + verticalPos).attr(\"y2\", -maxHeight / 2 - halfPadding + lineHeight + verticalPos);\n verticalPos += lineHeight;\n classAttributes.forEach((lbl) => {\n select4(lbl).attr(\n \"transform\",\n \"translate( \" + -maxWidth / 2 + \", \" + (-1 * maxHeight / 2 + verticalPos + lineHeight / 2) + \")\"\n );\n const memberBBox = lbl?.getBBox();\n verticalPos += (memberBBox?.height ?? 0) + rowPadding;\n });\n verticalPos += lineHeight;\n bottomLine.attr(\"class\", \"divider\").attr(\"x1\", -maxWidth / 2 - halfPadding).attr(\"x2\", maxWidth / 2 + halfPadding).attr(\"y1\", -maxHeight / 2 - halfPadding + lineHeight + verticalPos).attr(\"y2\", -maxHeight / 2 - halfPadding + lineHeight + verticalPos);\n verticalPos += lineHeight;\n classMethods.forEach((lbl) => {\n select4(lbl).attr(\n \"transform\",\n \"translate( \" + -maxWidth / 2 + \", \" + (-1 * maxHeight / 2 + verticalPos) + \")\"\n );\n const memberBBox = lbl?.getBBox();\n verticalPos += (memberBBox?.height ?? 0) + rowPadding;\n });\n rect2.attr(\"style\", node.style).attr(\"class\", \"outer title-state\").attr(\"x\", -maxWidth / 2 - halfPadding).attr(\"y\", -(maxHeight / 2) - halfPadding).attr(\"width\", maxWidth + node.padding).attr(\"height\", maxHeight + node.padding);\n updateNodeBounds(node, rect2);\n node.intersect = function(point2) {\n return intersect_default.rect(node, point2);\n };\n return shapeSvg;\n}, \"class_box\");\nvar shapes = {\n rhombus: question,\n composite,\n question,\n rect,\n labelRect,\n rectWithTitle,\n choice,\n circle: circle2,\n doublecircle,\n stadium,\n hexagon,\n block_arrow,\n rect_left_inv_arrow,\n lean_right,\n lean_left,\n trapezoid,\n inv_trapezoid,\n rect_right_inv_arrow,\n cylinder,\n start,\n end,\n note: note_default,\n subroutine,\n fork: forkJoin,\n join: forkJoin,\n class_box\n};\nvar nodeElems = {};\nvar insertNode = /* @__PURE__ */ __name(async (elem, node, renderOptions) => {\n let newEl;\n let el;\n if (node.link) {\n let target;\n if (getConfig2().securityLevel === \"sandbox\") {\n target = \"_top\";\n } else if (node.linkTarget) {\n target = node.linkTarget || \"_blank\";\n }\n newEl = elem.insert(\"svg:a\").attr(\"xlink:href\", node.link).attr(\"target\", target);\n el = await shapes[node.shape](newEl, node, renderOptions);\n } else {\n el = await shapes[node.shape](elem, node, renderOptions);\n newEl = el;\n }\n if (node.tooltip) {\n el.attr(\"title\", node.tooltip);\n }\n if (node.class) {\n el.attr(\"class\", \"node default \" + node.class);\n }\n nodeElems[node.id] = newEl;\n if (node.haveCallback) {\n nodeElems[node.id].attr(\"class\", nodeElems[node.id].attr(\"class\") + \" clickable\");\n }\n return newEl;\n}, \"insertNode\");\nvar positionNode = /* @__PURE__ */ __name((node) => {\n const el = nodeElems[node.id];\n log.trace(\n \"Transforming node\",\n node.diff,\n node,\n \"translate(\" + (node.x - node.width / 2 - 5) + \", \" + node.width / 2 + \")\"\n );\n const padding2 = 8;\n const diff = node.diff || 0;\n if (node.clusterNode) {\n el.attr(\n \"transform\",\n \"translate(\" + (node.x + diff - node.width / 2) + \", \" + (node.y - node.height / 2 - padding2) + \")\"\n );\n } else {\n el.attr(\"transform\", \"translate(\" + node.x + \", \" + node.y + \")\");\n }\n return diff;\n}, \"positionNode\");\n\n// src/diagrams/block/renderHelpers.ts\nfunction getNodeFromBlock(block, db2, positioned = false) {\n const vertex = block;\n let classStr = \"default\";\n if ((vertex?.classes?.length || 0) > 0) {\n classStr = (vertex?.classes ?? []).join(\" \");\n }\n classStr = classStr + \" flowchart-label\";\n let radius = 0;\n let shape = \"\";\n let padding2;\n switch (vertex.type) {\n case \"round\":\n radius = 5;\n shape = \"rect\";\n break;\n case \"composite\":\n radius = 0;\n shape = \"composite\";\n padding2 = 0;\n break;\n case \"square\":\n shape = \"rect\";\n break;\n case \"diamond\":\n shape = \"question\";\n break;\n case \"hexagon\":\n shape = \"hexagon\";\n break;\n case \"block_arrow\":\n shape = \"block_arrow\";\n break;\n case \"odd\":\n shape = \"rect_left_inv_arrow\";\n break;\n case \"lean_right\":\n shape = \"lean_right\";\n break;\n case \"lean_left\":\n shape = \"lean_left\";\n break;\n case \"trapezoid\":\n shape = \"trapezoid\";\n break;\n case \"inv_trapezoid\":\n shape = \"inv_trapezoid\";\n break;\n case \"rect_left_inv_arrow\":\n shape = \"rect_left_inv_arrow\";\n break;\n case \"circle\":\n shape = \"circle\";\n break;\n case \"ellipse\":\n shape = \"ellipse\";\n break;\n case \"stadium\":\n shape = \"stadium\";\n break;\n case \"subroutine\":\n shape = \"subroutine\";\n break;\n case \"cylinder\":\n shape = \"cylinder\";\n break;\n case \"group\":\n shape = \"rect\";\n break;\n case \"doublecircle\":\n shape = \"doublecircle\";\n break;\n default:\n shape = \"rect\";\n }\n const styles = getStylesFromArray(vertex?.styles ?? []);\n const vertexText = vertex.label;\n const bounds = vertex.size ?? { width: 0, height: 0, x: 0, y: 0 };\n const node = {\n labelStyle: styles.labelStyle,\n shape,\n labelText: vertexText,\n rx: radius,\n ry: radius,\n class: classStr,\n style: styles.style,\n id: vertex.id,\n directions: vertex.directions,\n width: bounds.width,\n height: bounds.height,\n x: bounds.x,\n y: bounds.y,\n positioned,\n intersect: void 0,\n type: vertex.type,\n padding: padding2 ?? getConfig()?.block?.padding ?? 0\n };\n return node;\n}\n__name(getNodeFromBlock, \"getNodeFromBlock\");\nasync function calculateBlockSize(elem, block, db2) {\n const node = getNodeFromBlock(block, db2, false);\n if (node.type === \"group\") {\n return;\n }\n const config2 = getConfig();\n const nodeEl = await insertNode(elem, node, { config: config2 });\n const boundingBox = nodeEl.node().getBBox();\n const obj = db2.getBlock(node.id);\n obj.size = { width: boundingBox.width, height: boundingBox.height, x: 0, y: 0, node: nodeEl };\n db2.setBlock(obj);\n nodeEl.remove();\n}\n__name(calculateBlockSize, \"calculateBlockSize\");\nasync function insertBlockPositioned(elem, block, db2) {\n const node = getNodeFromBlock(block, db2, true);\n const obj = db2.getBlock(node.id);\n if (obj.type !== \"space\") {\n const config2 = getConfig();\n await insertNode(elem, node, { config: config2 });\n block.intersect = node?.intersect;\n positionNode(node);\n }\n}\n__name(insertBlockPositioned, \"insertBlockPositioned\");\nasync function performOperations(elem, blocks2, db2, operation) {\n for (const block of blocks2) {\n await operation(elem, block, db2);\n if (block.children) {\n await performOperations(elem, block.children, db2, operation);\n }\n }\n}\n__name(performOperations, \"performOperations\");\nasync function calculateBlockSizes(elem, blocks2, db2) {\n await performOperations(elem, blocks2, db2, calculateBlockSize);\n}\n__name(calculateBlockSizes, \"calculateBlockSizes\");\nasync function insertBlocks(elem, blocks2, db2) {\n await performOperations(elem, blocks2, db2, insertBlockPositioned);\n}\n__name(insertBlocks, \"insertBlocks\");\nasync function insertEdges(elem, edges, blocks2, db2, id) {\n const g = new graphlib.Graph({\n multigraph: true,\n compound: true\n });\n g.setGraph({\n rankdir: \"TB\",\n nodesep: 10,\n ranksep: 10,\n marginx: 8,\n marginy: 8\n });\n for (const block of blocks2) {\n if (block.size) {\n g.setNode(block.id, {\n width: block.size.width,\n height: block.size.height,\n intersect: block.intersect\n });\n }\n }\n for (const edge of edges) {\n if (edge.start && edge.end) {\n const startBlock = db2.getBlock(edge.start);\n const endBlock = db2.getBlock(edge.end);\n if (startBlock?.size && endBlock?.size) {\n const start2 = startBlock.size;\n const end2 = endBlock.size;\n const points = [\n { x: start2.x, y: start2.y },\n { x: start2.x + (end2.x - start2.x) / 2, y: start2.y + (end2.y - start2.y) / 2 },\n { x: end2.x, y: end2.y }\n ];\n insertEdge(\n elem,\n { v: edge.start, w: edge.end, name: edge.id },\n {\n ...edge,\n arrowTypeEnd: edge.arrowTypeEnd,\n arrowTypeStart: edge.arrowTypeStart,\n points,\n classes: \"edge-thickness-normal edge-pattern-solid flowchart-link LS-a1 LE-b1\"\n },\n void 0,\n \"block\",\n g,\n id\n );\n if (edge.label) {\n await insertEdgeLabel(elem, {\n ...edge,\n label: edge.label,\n labelStyle: \"stroke: #333; stroke-width: 1.5px;fill:none;\",\n arrowTypeEnd: edge.arrowTypeEnd,\n arrowTypeStart: edge.arrowTypeStart,\n points,\n classes: \"edge-thickness-normal edge-pattern-solid flowchart-link LS-a1 LE-b1\"\n });\n positionEdgeLabel(\n { ...edge, x: points[1].x, y: points[1].y },\n {\n originalPath: points\n }\n );\n }\n }\n }\n }\n}\n__name(insertEdges, \"insertEdges\");\n\n// src/diagrams/block/blockRenderer.ts\nvar getClasses2 = /* @__PURE__ */ __name(function(text, diagObj) {\n return diagObj.db.getClasses();\n}, \"getClasses\");\nvar draw = /* @__PURE__ */ __name(async function(text, id, _version, diagObj) {\n const { securityLevel, block: conf } = getConfig();\n const db2 = diagObj.db;\n let sandboxElement;\n if (securityLevel === \"sandbox\") {\n sandboxElement = d3select(\"#i\" + id);\n }\n const root = securityLevel === \"sandbox\" ? d3select(sandboxElement.nodes()[0].contentDocument.body) : d3select(\"body\");\n const svg = securityLevel === \"sandbox\" ? root.select(`[id=\"${id}\"]`) : d3select(`[id=\"${id}\"]`);\n const markers2 = [\"point\", \"circle\", \"cross\"];\n markers_default(svg, markers2, diagObj.type, id);\n const bl = db2.getBlocks();\n const blArr = db2.getBlocksFlat();\n const edges = db2.getEdges();\n const nodes = svg.insert(\"g\").attr(\"class\", \"block\");\n await calculateBlockSizes(nodes, bl, db2);\n const bounds = layout(db2);\n await insertBlocks(nodes, bl, db2);\n await insertEdges(nodes, edges, blArr, db2, id);\n if (bounds) {\n const bounds2 = bounds;\n const magicFactor = Math.max(1, Math.round(0.125 * (bounds2.width / bounds2.height)));\n const height = bounds2.height + magicFactor + 10;\n const width = bounds2.width + 10;\n const { useMaxWidth } = conf;\n configureSvgSize(svg, height, width, !!useMaxWidth);\n log.debug(\"Here Bounds\", bounds, bounds2);\n svg.attr(\n \"viewBox\",\n `${bounds2.x - 5} ${bounds2.y - 5} ${bounds2.width + 10} ${bounds2.height + 10}`\n );\n }\n}, \"draw\");\nvar blockRenderer_default = {\n draw,\n getClasses: getClasses2\n};\n\n// src/diagrams/block/blockDiagram.ts\nvar diagram = {\n parser: block_default,\n db: blockDB_default,\n renderer: blockRenderer_default,\n styles: styles_default\n};\nexport {\n diagram\n};\n"], + "mappings": "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", + "names": ["parser", "o", "__name", "k", "v", "o2", "l", "$V0", "$V1", "$V2", "$V3", "$V4", "$V5", "$V6", "$V7", "$V8", "$V9", "$Va", "$Vb", "$Vc", "$Vd", "$Ve", "parser2", "yytext", "yyleng", "yylineno", "yy", "yystate", "$$", "_$", "$0", "num", "spaceId", "edgeData", "id2", "id", "str", "hash", "error", "input", "self", "stack", "tstack", "vstack", "lstack", "table", "recovering", "TERROR", "EOF", "args", "lexer2", "sharedState", "yyloc", "ranges", "popStack", "n", "lex", "token", "symbol", "preErrorSymbol", "state", "action", "a", "r", "yyval", "p", "len", "newState", "expected", "errStr", "lexer", "ch", "lines", "oldLines", "past", "next", "pre", "c", "match", "indexed_rule", "backup", "tempMatch", "index", "rules", "i", "condition", "yy_", "$avoiding_name_collisions", "YY_START", "YYSTATE", "Parser", "block_default", "blockDatabase", "edgeList", "edgeCount", "COLOR_KEYWORD", "FILL_KEYWORD", "BG_FILL", "STYLECLASS_SEP", "config", "getConfig2", "classes", "sanitizeText2", "txt", "common_default", "addStyleClass", "styleAttributes", "foundClass", "attrib", "fixedAttrib", "newStyle2", "addStyle2Node", "styles", "foundBlock", "setCssClass", "itemIds", "cssClassName", "trimmedId", "populateBlockDatabase", "_blockList", "parent", "blockList", "children", "block", "count", "existingBlock", "w", "j", "newBlock", "clone_default", "blocks", "rootBlock", "clear2", "log", "clear", "typeStr2Type", "typeStr", "edgeTypeStr2Type", "edgeStrToEdgeData", "cnt", "generateId", "setHierarchy", "getColumns", "blockId", "getBlocksFlat", "getBlocks", "getEdges", "getBlock", "setBlock", "getLogger", "getClasses", "db", "getConfig", "blockDB_default", "fade", "color", "opacity", "channel2", "channel_default", "g", "b", "rgba_default", "getStyles", "options", "styles_default", "insertMarkers", "elem", "markerArray", "type", "markerName", "markers", "extension", "composition", "aggregation", "dependency", "lollipop", "point", "circle", "cross", "barb", "markers_default", "padding", "calculateBlockPosition", "columns", "position", "px", "py", "getMaxChildSize", "maxWidth", "maxHeight", "child", "width", "height", "x", "y", "setBlockSizes", "db2", "siblingWidth", "siblingHeight", "childSize", "numItems", "xSize", "ySize", "childWidth", "childHeight", "layoutBlocks", "widthOfChildren", "columnPos", "startingPosX", "rowPos", "width2", "halfWidth", "findBounds", "minX", "minY", "maxX", "maxY", "layout", "root", "applyStyle", "dom", "styleFn", "addHtmlLabel", "node", "fo", "select_default", "div", "label", "labelClass", "span", "createLabel", "_vertexText", "style", "isTitle", "isNode", "vertexText", "evaluate", "replaceIconSubstring", "decodeEntities", "svgLabel", "rows", "row", "tspan", "createLabel_default", "addEdgeMarkers", "svgPath", "edge", "url", "diagramType", "addEdgeMarker", "arrowTypesMap", "arrowType", "endMarkerType", "suffix", "edgeLabels", "terminalLabels", "insertEdgeLabel", "config2", "useHtmlLabels", "labelElement", "createText", "edgeLabel", "bbox", "dv", "startLabelElement", "startEdgeLabelLeft", "inner", "slBox", "setTerminalWidth", "startEdgeLabelRight", "endLabelElement", "endEdgeLabelLeft", "endEdgeLabelRight", "value", "positionEdgeLabel", "paths", "path", "siteConfig", "subGraphTitleTotalMargin", "getSubGraphTitleMargins", "el", "pos", "utils_default", "outsideNode", "point2", "dx", "dy", "h", "intersection", "outsidePoint", "insidePoint", "Q", "R", "q", "res", "_x", "_y", "cutPathAtIntersect", "_points", "boundaryNode", "points", "lastPointOutside", "isInside", "inter", "pointPresent", "e", "insertEdge", "clusterDb", "graph", "pointsHasChanged", "tail", "head", "lineData", "curve", "basis_default", "getLineFunctionsWithOffset", "lineFunction", "line_default", "strokeClasses", "expandAndDeduplicateDirections", "directions", "uniqueDirections", "direction", "getArrowPoints", "duplicatedDirections", "f", "midpoint", "padding2", "intersectNode", "intersect_node_default", "intersectEllipse", "rx", "ry", "cx", "cy", "det", "intersect_ellipse_default", "intersectCircle", "intersect_circle_default", "intersectLine", "p1", "p2", "q1", "q2", "a1", "a2", "b1", "b2", "c1", "c2", "r1", "r2", "r3", "r4", "denom", "offset", "sameSign", "intersect_line_default", "intersect_polygon_default", "intersectPolygon", "polyPoints", "x1", "y1", "intersections", "entry", "left", "top", "intersect", "pdx", "pdy", "distp", "qdx", "qdy", "distq", "intersectRect", "sx", "sy", "intersect_rect_default", "intersect_default", "labelHelper", "_classes", "classes2", "shapeSvg", "labelText", "textNode", "text", "sanitizeText", "halfPadding", "images", "noImgText", "img", "setupImage", "bodyFontSize", "updateNodeBounds", "element", "insertPolygonShape", "d", "note", "rect2", "note_default", "formatClass", "getClassesFromNode", "otherClasses", "question", "s", "questionElem", "choice", "hexagon", "m", "hex", "block_arrow", "blockArrow", "rect_left_inv_arrow", "lean_right", "lean_left", "trapezoid", "inv_trapezoid", "rect_right_inv_arrow", "cylinder", "shape", "rect", "totalWidth", "totalHeight", "propKeys", "applyNodePropertyBorders", "propKey", "composite", "labelRect", "borders", "strokeDashArray", "addBorder", "length", "skipBorder", "rectWithTitle", "innerLine", "text2", "title", "textRows", "titleBox", "descr", "stadium", "circle2", "circle3", "doublecircle", "gap", "circleGroup", "outerCircle", "innerCircle", "subroutine", "start", "forkJoin", "dir", "end", "class_box", "rowPadding", "lineHeight", "topLine", "bottomLine", "labelContainer", "verticalPos", "hasInterface", "interfaceLabelText", "interfaceLabel", "interfaceBBox", "classTitleString", "classTitleLabel", "classTitleBBox", "classAttributes", "member", "parsedInfo", "parsedText", "lbl", "classMethods", "displayText", "diffX2", "diffX", "memberBBox", "shapes", "nodeElems", "insertNode", "renderOptions", "newEl", "target", "positionNode", "diff", "getNodeFromBlock", "positioned", "vertex", "classStr", "radius", "getStylesFromArray", "bounds", "calculateBlockSize", "nodeEl", "boundingBox", "obj", "insertBlockPositioned", "performOperations", "blocks2", "operation", "calculateBlockSizes", "insertBlocks", "insertEdges", "edges", "Graph", "startBlock", "endBlock", "start2", "end2", "getClasses2", "diagObj", "draw", "_version", "securityLevel", "conf", "sandboxElement", "svg", "bl", "blArr", "nodes", "bounds2", "magicFactor", "useMaxWidth", "configureSvgSize", "blockRenderer_default", "diagram"] +} diff --git a/docs/_site/public/bootstrap-icons-OCU552PF.woff b/docs/_site/public/bootstrap-icons-OCU552PF.woff new file mode 100644 index 0000000000000000000000000000000000000000..51204d27de92c7bb0f8bed6165b9dc888f38ff38 GIT binary patch literal 176032 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 literal 0 HcmV?d00001 diff --git a/docs/_site/public/bootstrap-icons-X6UQXWUS.woff2 b/docs/_site/public/bootstrap-icons-X6UQXWUS.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..92c4830216044ba21db9f4294b887312e80da38e GIT binary patch literal 130396 zcmZU(V{~Of*EM=#+s;XHV%xUev2EM7ZQJaqW20l+PA8pol8$aa&-=Y&-22`7u~D^a zj9GKeTD8X-%Tq~`6#xbR0Kh)<00{r?Fmmeuo}vHS_wV)pZiMR4Mu6ZWX!xvVqtsqg zFivm^hyh510aySeDO8vZOzA!o-F7~Q5}DiEnd^D%|ke#R3=)|WIr`Ob_2pb}+v7sGp0XTv;e`7SD_8%%8J zIICk&XeJ+SMQxR*4&}06$ZYFy0?huFa)U#L91Kl9Q0uB5H~& z*%Ga7*x&x>m~*5ZNXz?lMA*5o!SjdT;S(NE*Vb>^4VfNofw4oQuneOd2q7kH;71f9 z;p-kD29U?u&1Mhc3{9*i4K{{x*(sR);wv`hRO0kpbX91FK-7k8$}apXcE>3CYdVS= z^GB6Z&7L7I9j9w=p&E5RRm7a-(zi7Ed^3Coo0!}L$TPchcrRf$GiYtZGTc(}?pSxX zsrA{^>Qv>mnjV^%0!70IJ;{9j$qNzW&im89(ibk{3HGOx_G)5NeNGB@_Nv#N~op(=}TgFbwlxfm1 zCpc3o;UQ#GP*oTp1{+6Ag_asDt%loaM#oMMVce#_2g|;{C)FeHdOvU(xqaGk?U#*$ z81GT3B6OkI1Q_( zkfK-_isQ@;@yLM!2;5^DG@YxvdV?V~l>tKxB6U%BJZe+(q9pys+w7s`4=2w(X-&qD zDhTm zuwcxz%K%MY9*UfX0iYPH5m2rC8AOC3Y!HMGG5ovxH4xol3@ORk0XL;+Th1X5HH|vj zBPrJvHyXhexs;d>@fQ>4kwC{om~qCe(}Yo3pEKbYPqXlN6f0J3`tLTUTb|%hrIF3OyYqI*VoDI z$t{TI`?Nl|ZVI`lJn(wIih?2t2PP?&6eJJDC6ZjsXVf0`SpylaGfvUmpD@R?-nf$R zRr|jBxp|woc~N8dQJQ+--2LM(r&6ZJ7KCHx3^83C5rRoJDHxLpUO|4`+s1r|}hKs+63rlxEvT9R%eIDD)IL-He9 zxu$OS0^!I3hc~GXFLR1JeBcO6vD$i#q0MumI_)ubYz{Ticjto%!^xB(x)T0tk-4I# zxpIMMY4B@hhW0a8cVvcvRn_RSV?>gg8PUzPi)SrOuFC+fD{{R=`F*J^B6IEsx2=4Zi&5#@A*HwulW7(%f(zmvXt-Ws$UuD?cW ztvE3(@6`g)Mjt6!&|xXnYH7zSCU)QE(?x^s8=KtYm|qm!OkOuDiXZL!_Yqd5UNDW( zxHELJ@-(PLXU(5Ck7Q!}f1*S*%f|&FlKcAqHmv!x*FoBDrdpiaVwlwPB{cp~@=>~n z;=7f<6DXQMx2+7dD{G`tEQ}2<11SqBGDRPh1{=~AED8oWU<80HH4}o`BJUZN_PPA@ zs08BLK~G}SQ0Xv9dr&=J{jNL;J6{&Kz5b&_^XjeIA6>BB>f0)3%+V@u+~Ym{>>0>& z)t_@xhux}mLuo}Vfm>XoC>Xe)6*|8RueJYWd!rWVrbV4bra1eqOEv$r2;@S@(du6- zE;xzSL8Wx2^P?37;~f@7coAx?bHkeF2GOK3_ezQ=%f)gQ?j;v1r{iUBfx3|y=9L9- z!Df1)nb}ab*tVlcgvi*)Tj6)0*e&JTo`pE7}dgV0~&Mt8D?jc5sU`N4q_m|@Qqg2*Wxu+ zu0CM_8~Q&5cpi=?VkyiYE&Z|cS@kPaDNab?C>{cBD;SfLS$;IAQt@+1_4)?&GP4ov z(%Gw;sG5(D?Zqs!GqAoN06Ykr&$7_EJp+_Jh0Il6`aQJ)T<1EO|Emx?i*L?#;Y0Itmib z7*;Gv-)xDh90N(gocUK*fJx+xc4GPAbtLMLe2_3%5x4GE4UtYyAd;!gSLAH>rnCQr z`TGdvShMgzFkeZ@`G=`ctB`!}mEp6_MhO~fS=7WtT!ZzjSrpIPXR(D`%1+<&5|@qm zrh1Gj7G{}3c#qIT&XbUcz2#=}?=$V#4g=WWFtK6-m>5DJ1#n=lFz~dFILGX-#T_FX zi|uw)8Y3zJE$PWH6Om(*eRpx=CYtgjl&+fO><^RKyIO)H3z4BuawhmCHh~!UD40wx z7u)TgCzLOX!-jxD?|y6^7mCS=e@%MV#8<_68mU!F=~sEy_U-8KOvn!|@}Opl+!}L~ zPS5nyKUkUR84;#7fW1D`x7LT)Rc5+*(&2IzYTr%aZJT&6N79bp*8RF~`pHc`PW(l3 zr};;JTZQSJFSnV3`SAQdHloCRSt^=A^JD6P69F!@lxuBBs%IynpX`BSf!2_hJ!19v zw_lNh8#wKnm0Y+AoSnlbf4uxZg_$uE#7*zTS<~mtTwg_-)f?1(i|Z~cZvGnQotp3b zIqDTEXna0WbG0`9A)dMO)Fm>W9RtQZwO&r5tcksnjB*u zl@u(EC8VYM(ElzZ()llOBo(TR8GO2=C9}32a^^S=tb|FlUa@*LhfY2VrRs&V6fRF5 zV*_!4!LHzsF!<^=<9}33-ZML*Fmod-k*53)g!>opVrlw?3naqUVg9K0+8lua<96u35&fS9D~~nZd4|y>;sT-reQv z1^)k?Hi1bSKWEgkPRN+Zgc|ezn)dc5H&>>R&haLlE^&RH=i2qwc5#078 zirN2&uZYpe&hbsIcGZ5f!*;LOv@!r7p2f^q_8(S!0#yF#jr6`A!0e_rH@NH>#ML0ls^`|mcnJ^Kg%zz)L3 z96-t_{Fj+Np@RSISol9?tswYkD-ld8>kJ(8|LllHuf$w-`_*3af2-TdMymX`rmdyv zTu%}~|JO01=1(MEbO8wRROW}wu`x#3HeBaJkaQY_HatwFy7e}z*;ERHR0BV8NEj>z zP&ST2+vS)>xlBBpmgAD$YOzEik`W@JZllS3yZ}N)jiYh|Q$e|1oFz8T~GQX&`Fi5}3N5xMOgTfWu_itZ^pybLBgxnk?PT zDy#otyRVd0WlzJMljWI?Rp7H_V29OFnWMd(dBI&kE2IsL~zx4KKaALS?XyhgLlap0*1{VN&WFQ&KM5-Vg+18%xMI*A2cE+4a7l{y`!0#5tg4*&5v{T?3fuJ7JnuP;!LRM-ye+I1e0OD96&oc|4l9y4|2yu3YbH>-V8 zKR>>jmG=G&1mzR1LZb&K2B8f>?~e4-nV{xbz*nghFaLK8kEbTg0$;}E;gtGW5*)(-)FFzb*niE-Gm($5uexwz<674r? ze+W~pXE7OTZEp#44R-~5egEOF3#R9=!U+t26Bucp?%QvNG8Ayx)T<9)^+GJ2mnJ4A zM~4{bsVQozON(r*tu3xDzaJ3b-?Fg0asGedQOl0;Zuw%n_dVqE+uHK#3KvIbTZiZW zkpHva3Vb>7!{c_bUH6$-!1w8Psq-soV*Mn$vyXTD`ugzl^!DK59cF&dfI=~7zmrVN<}XkD71kPMgmtl5i2+Ry0G#9V7WEY}28Z>YwvftG4}}9& zxl6=Jbtp{4ftu`xBcw9)i_v1x_Y-7b8x&-b6vruX{HjSxwD8hmzzb?Jh*7hWF#5EV zcvcr>MMl~QG0AVDNhrJ|{@^LXvP-k9=4%%v%bdx2E19wOV(VQrvnRs|32+eLpn$s9FmnDY*cUUvd zoM5b(=;&eql9wf!QNDyA^L^%M<{|ilTxB}Gb+xla0U<4T7h*7rjD&h zqCcjU5bGzT9(-W}$fk|t>u1z|_#z+@j*2k2k13G(!pRkns@S+s=@a-O)#i@c5V()X z=DNdN8IOADzVFjAc1OrH9JLU9KcsBv4!3nU>gM}?!06B&se60W0rUL`caMXq4bpSH(3IAqrRL|vg#<1%fiL!fCit+;K7dAlU2Q7Gn@C(W?xbX$r zZ`gC6F90C)3*#l)aDeF@I^YQ97ffJq{|n6faNvIba|59;9ZZr2V4W7sL<7)n6Qqqa zP>+qO2_sz#lg0tq#0N7~2x_+&&_>v=$AVpj7Po~-aR+Sh2Ak*$w>uPRqs-Ui;I6{R zU%_M`0k)unO~nSqSbjK z=H?H0R5oqlU3(%&>JK<)I&EU%ej1-BsH2ab<-_y}=%i?^i_k-2%rER>( z-1$?X4Wu#d%ED0=$EYs$W8Ll*d|rV5?LsJ<}E#$q|(WEeBQ_0dUWG#8oWH=>L=~gb}-P_SX6qBh`tp~D>-e_`? z!>LTK2l5~9GDQG%+9Yv!vgQz(64VshG&6Yet|6IXSXJ5-^%%1D5}8`uMY;_781mf1 z$!bU!n&d^0N`=`}hG>^6jUhgkY^4dFI&JEdxk|ZRO@>&zOSJ(p$5f>S)N)PICYDO2 z$)%=fpKM=0>*Y7aP+BW3P<(BP%nEybgvH8YFRzZe(lox626?@0iNb7KeYi*a;tx*V zWyNvcb9Jixs}i{#xB5tjr^P-&pJk<=(B~_peFP;+!;ki10r89dEYR$81C+SS6k<6h zR!fMs5eKuZB|MUxKdZ2DcgRe2OzfuPY{T#CS*tlHJLl3kvoG(`E#_MjwIPzOM*jC-=A{f`#LAl)~u4{QqNN4WTP&>{l&w7gxnNJf~ z0?ryg^_CFUo~DrcoYn5O7hyV|CW-u=zwK==p*%lLLwwvTfAPBj_&tL7orU?`2YQ`I zd)wNq}>+lBxjW z;kDQYN+Hl7&a(zaz&SacoP!b(M0*cd7zHVW_rj83(Z$fE;U`IX%7W68;JcQSBG86% zuoK*zDy8Tl4)KyF!u%{STZ*!<%I&Jmq&Q$~cvOCdOFFRsE=tF_@jE{oF9JkBvCxJ& z8_UNS>0rK@aAS@)Ln?xt8N=nQ^``eVv7cSM(#BiC4Y2MT!j#PYYWKfkec3>&Q#C=0 zaKJT4NZX5Ep=xIS@)2LAY5`M0igpl}H#NycT}ykhpkSwJhLT~BagdO;RozNj&3N=M zYols~&?cI^6<4%$=}B5ke|Nxit89V+3DDd~Xgf~5DKBJB1*kt&`T#f}s)@vRj4mVR znbXFM*^w%}AsNW6i6pkHHpk~#GUlA!;wyc@1u!o1#rMqqRx&fE4_YHCSb9N|v*G2B zuG@{BF|%Y&ddtsR`hc+^Wb2P?o1A7gHKmQ3*U?+LL)p@48;*|IaIQ7AXWY17*I9Z( z_!4aFjSN~KcRIDDAKB;Gow>nS^6~7Ajyfo8%L2R zi38(Bup{}wB+#cY*{!YEn9Ysn22lH{^&6|nU8V1!OJHZSwKC!_!VJ}I` zV!sok|CPokHIHgTV;!5wA+?O@#j823(k^m{j=;)Uwc02$jZG#R`;)~xFa*?0X!3}Q z$FR#cIYab4kuKhIjx=W~zE0I7Vpzz(R@A!paWL!w0KS z*A4AsA~(W9N|4dQ%PdU9h^Wxl9L}djHJBlmo6sW3Wv@?-st`9k+^YvQih^UI)#OQI zjnq)6U{&K!E{ivKz{e}wcHZX8( zYSt3DZ)!9OAZ@NyK`8Jp*O4>uuGV1K^R6_oA?LeZhR9`ZcONcrG&;PvO*is^?I2u= zNGA^Ypf9vm8H_yAHgLi9$z6)c7B2oxS?H__IDVvS6oUGo;~hvNRNe?yC)8RIdB_F? zK||7`?gt0Mf}1H9g@6$eW}yy5Kr&+fDi(o-FwsgH3MM2@gDsMT6hOyK9*hImRCg*3 z#vyvgMI8xa#uje|CP2vOSsjUxkVHT-Q-;x?%|sh3fJ>=zrw-;57GVCW2xG!}uSSy& zHPQ)N1m+MoBSu+@lVL1oCr^g>X=1h%XAzYXQlE*FzuuEpKKD71Ji1KF}fVg!lS3Qi=W}{k}FNPy@UMO((wz zKWvSn1UtDsx<<@R-{cZax9~f3lw(p@gtT2&nWVHsTH4rzeO@o+gkwrb1+`sHi3PPo zM#?F*eL)L0wPSKjMwMN5j%Jm8diQFTV}1mum0fB@hm}Kaum`SnX7e9h$HEKb+Y7T1 zl=}4m1~)6?Q4l^jcbK#B7?UH z_rkfWtKJ_!uVDH=4jYBupMQdB&K?Mb{wG_?swIpF#w-Roq#VSmZiI-$Ee12lEW%2! zj7Y#f3^wdE$ja&zN623qG(ZhxrIn7uXDtmLvMOffwTdI=H4PfXHD;yMio@eH4Ib7y zV0G|{gAqKE7IBR1)1{VNw^)Z3`OQly31*tqWzpq8Rp>Xc2U&E956A8i1y00m|BCu@V#yNmjS8 z*x2Rq<`xZ7TDQ>X*yV8M77trowD9=Y6$t7Y4PfK7fF$j*S#*tuG_zaWE$l*hw#)`Q zv|ETY?J_yGOox#-T1-8z!vy$F2Ijb1TotcF*m{nK8osyKI$THa^_&dedbRi(TnBUc z9uF71wBQ6>rwjRF4D3R+pom<{F~4CC1%$N-8DAT6gYlz5Ql|uoqeWSPV~H7=!08c+ zL{Uk@L4uNtKxlDhA?cz{s&EGQKxry*ygq|zajO=l0Y*87tUMGY>9cBN2aG-CKux((cC~Yhcwz#4(XY8UXUW793v(B zByL?mvx8vnTTbYhc9s9&ryQ(A`zRstqk0`B{iR$rQ2n;B1|`S_Imrek>JmBY5+&>} zN*XkB95hOvByxx(N(v=%3?)iV1#(0MN`?h;f(1&!DRS^BN-{QbG&V|h26A`?O1dU; zye3NiDspHCa%u-ktOs(g2TJ50VgcQNVm>&r_p9vA4cL9kRbb#OlFC>9`Xy`+MxDlAF?{&lSLq@<*V^FLSd8{#& z+&-z?0mbw_8QnhR)j@IEL3zx6Y0N=o25M0T+A%fhh>CbtX&9^&l!_v{NuK+NH79x- zbIK!&>Lc9ZBNXc+sO6E12Rf90STfkS((8k@UUsIPwKS${F%G*Xj?-oa|8fQ!zm6*B znvOvd%>Iy(cSP6Cn&xrc_HmL5njK#(Cm$_8#@XMIGV5P@gM21S>2!t(0XrJx8;Zpj z$Kjlg^g5pLZYc!@=?k9(VIDyq8G|uSXqf0bqWtEf(B`t#=91XvirnVn$ma6Q=F-IG%0g$OAZN2A zC{A%d^Q?5Euym8Obc;9+<2(-Y5DwE64$GK!qnviLh<1|<0kZ@FlL7(bU;*=F0n6w< zqwGGj@Q)5zndY%*%ly;<=&b?DtqJU{AAMVGth@NcK z6BqL($^LRbY1Nmo>Q`vVP0FEk+$Ou=oCFbr_I>3&xQ;chXG8Dh;jy6Y)fa+m&tRoQo``0#)eFa zO?oM_yjEp{v&#c@DqxA!;tFU62hvQ;rkGhyvhbL&H6zp0n|1`RJ5k0v@qWyXSR7fn z{%Y#-+Ti!Q{i`IOK42#0;6Q~ASXa(y?lAtc=tm}2%tHu|ZM^AU;o z7DgXDfd=JWQYNg92`3*-ng%BuUR8}Ahd)@25dsagX8pN9hG{=E52V*0S|I25Cu1fh z6Du(mcZ-W2`B!3t4#8$(rYKJ@jVotCMQ386KyN1vsr$gs*OD%*PRqLdNrb=kZq=me`JgzOStSzaGXw#rtv z`f5r`g@>Rzq`Nq!ySgSuqtv0=*u1??fyiA~z+DQ${TsQv5{B*C%$Qa2t!+86RVlGe zCGmxkse6lachz`zHI+|QrBAix-*vB#>m}%_Gw5oZh^owp>Tix2?ef<81)kLlJpzhJN|_D` zrFI3SRxzbcIj;3mrLD@J+(kcm%YO3INL_2$Q%T3DsovEQce=LgSKX-Ef6EeR$nJB< zB6r9p*=atx-M}MW&nDi$R=TGDd2PpJSNpBxN%F8aRg%PP0O#V5!s#0j;XQ>o@L23? zIfWq$g6H$vd!x3uPusSOdV>nd3fSuDQF9IL8>^<|gqOE012B?kO+&3Lz5%5HtOo#OD@ zWm!+_(w_Du0p4?ie78czZbL4CqDbOpIh2di$fqT8=yR3O$1I@FHnV_nSOL4w@3(~()HH;WB=SGx{xQIlX?EsBVYsAO{!yKpyc(9Y^at2^=vbfsnL zQs=1m#%ap66P`zxysut{|E>~DuOYH`Khgas_vwfG(A!zsb0ORA*BlKpPFl3w)C|_g zZO*6DaOGKsiig^aoHi24C6dr3L=ZGs2~gMy+O7>2mjPNNS9rmj*$t0SKUlbvbitnb zlHO_?3i%d3v}b{7JO76h%HMe3#X=!LnGxJjW*v<OR8h_w)wlZ2@)kb%+wvVoSwopgRRy)nz`7O#EN))<$E#JFU81>4 zni3Ml{7$OP?dqQmn?G%~W_?Yi?nIl?+-OOE^mEsz*_Syzliik=*k3$2l-uWb25xpU zCJMRNT{y{K_spJ?ST`%n;_^AHavy>J>R6KGq}0|P1_@Nl&ONm4-J6X`(!vHz|0{~I z58vor{oUbpS$*m?dMKlB( z+G=Kc(u&^H_3yl8J zmHaD?bR446E=0WZ?WO$2Ti8W|`pslhJV#P@__r&wvP8kbjQ!24i zQl*$r5Dvh3Tl5qKM9D+rikMd=v%u134{h(y570oXgjgXX_3sTiDm7Us4{1M;g~9Om zQ8i1bJ8xxk7lO^vr3hoy@J6i2nnW6m>PKlo`uQHTOuVQj%NL2{Vj|>FP)RpP^Y~uz zeZ8MmPM`dVuJNrDLMZXcuyD^|P`RU@mA~mVz$l+|Lt+e@r zIJ={|u3BTZfNS@@pbi(c#vXG&va z8|U3DZaRci^7rAXvOCih1AoV+)%hoMzs9;W4%@2^`i7r3JvT34zeLp!7l6@~xc76> zzx9ovqKf)=xQ(8>OK>M6Va^C)8PD|cIM%%zkyV9b0pI-Gqy!?W8{g=@@udXUY;$yU zG#IdJW^||*5o0eNEi|AEVGJkBhyiN+9y zDF*ulGKuHnDqwePkHA&w|-gJIhnoTTJ^e`-)!eCkQlg?laemGpHg>`r0XP_jqSB`Zj-GtY-84md%Cy$ z_yo+=-u`9Z)83Cwqw?)cPV%nY#rAAH!{?>I_&gKv8ya0P{V$8WRp|k+IUMz`GPY>< zKQwHG`(%oQAL@4)aifdxx&<#^%it)v_&VQA3CG%l*e?9dcO zGL|UN$j#U6S~p$m_fUB+Z%GUT{bKP`TJ7Zh`+w&KkSw*;Df}c05SDMc)16ZJ_z`y@ zJ(aAst3XU65>K8QYDiFmKAapu-qj4ux)38BCAZCqf@l@tI9Pvl(yeF-b7WWT{R>)r z%c7)p7hX5|MWivQ88kMHSE`Ch*4iDEK$d;z;>O6AL59i$%gS~>Q(99+603E1@_HXE zE=mT5@B2&}HQ{M(E$Oi7NY#9B%K1k-%+G_&B^Ix}C`(6nb@c|D{cr4yqWa@zDI6sU zo>SFTz7H^bhRlgv%^Ly0AN zKx#;~Q<#;an0XUK&ff$v0UE=gxz~Vr7TLj>!0^QuQ>Cd*Rm`+_QWX|xyUr?<&&7L4 zUA;Ti&ngs!SI5uL$5St6Tn^Vc>`+4R(pU*-tYtyhddNpu)L{8|9RI9E97yraZZ=7t z-ho5KC`ij7j*!Frmye#>-CH1J5QH(O1{twH@jqojH|%vI_;Kr> zEC5j7P($aLbe1TZ>z4{Xz9Hb7(C>7(wP&DbtH!NqAd#XnlgEkwQRg)*Db1f9m9cVy z$kTVHqBSYpsj~7bq$;m)jp1T`J=$0 z@fYDv$zA%VRtA+*&*`r|uHqWH;(2=lB8m0Z?$8D4J(r7Na6XL{UnA@JxE*ZbeI)_<)oO~DHQx2Ww9{d=Xq%O zmKn=zfUk_E=M@wZ?7{|wDOx5nayqQ4R7q(?nU{hX-rknyW6eF_Rf5E5hyf*2@mjEJ=G<%V06w)sEdwe(8v3H=@Jy0fDE?Bwk`bn6V7aF9 zTtrypR#1GB0;u`$BuAlcllB+yNW5LeXL+Z8QKOW;?)AlxYALe7IaqMTKm&1Sgp2;< zQ1?{oy8L&?ma>j%D%I<8{lCY*ux4w&1(pZR;KBkykdsy(B$f5)BJjRH|t0#@Q$S_-L};}g*q*;(`IsWK=hcRE5MbhW4VG%Cl=p{c`Z^hISj3dDkH ze5q~VD=~fCcQ(FUs1_0Rr@qGO;;!zb+uW(9+BkHV8t4txRoYTLaor7x<KReR9l^0?SVykoDvN@(h z!;C>seH^PV%EYmkIYVUKh`Y^@h2nqDR{y>%_UE0YPsK7M4l9rTjXcb^@g_8;Svm|g zJkP(AIpvRJD!wEU!^#-2QPFgJJPQV9L?@8Cz}vVbIu43%~M9b~LAMQO?fRNvt)xw$ihamqoFyw-f3zok7t`;Vh zdMJzSB|gq<7@X`~{;j8bCm?O?Pv>+9t$opQ@&!cfwW=IaF9ueXpwzhgFPIu{JO}(3 zO^gR?+?RSmA~p*GWYjt~GA_ISR9Ok}3d~mUr&1MHuT|q{zF~uu?C~wIC)ZwUWu8#- z+5}N(MZMb{+NLlgHih>6esy_0eK_rDKAQg7Ur(r{ioC}i6NWSRtv`v%IR8}Xt9_;( zV`|($GIoQ0%e3d?a+)xsLGNm(r3uMievljSn^?Yn!^7qBL5%vd8(t}c=f~8_MeDs9 zi73PC2AH{RqE=_bOH|ZAqL&|U=Y+TL8^HVc$u8GEAbtGX4ks`#$3E-WIjvp;OMUgI z$o(XFRgJB1b))p|MrQZNP7`hbkcf}XgSF*KV#16=t|8CF3m&fpwgk{H4_7)L^VnBF zYa$45Cll=vvuW8^+$AeI7$djR9kBS+U!T69t~1a-ITp9MLoEb~FW2 zjx~|Fb7|y9{=jX1(S*L9<9wR@DIt%W+AM5&m1!mVzMd$~1dfw_k z?8r-Hx~BJ;CqqEGtRqd}i4+kNKBzy1-lXtcS86#2Zu2-h?)CPQ#D^?V3|A)Oy;#c! zKG2AZuHd!Q)af5Py8yhb1vBzJx z&)t;yKx<&R_etv$= z-Wspnl?8gK1qlE3PR4_SFd`tx5`2^I|EhW3rK29`-qdN-)0%KU5lTHMlou{1CAn&BQwUuh64%T|1!fE zc_czPXv#G){FXoW#=4s~p7KKcIj(>)PwvLWw9_j6i1@J04sl!#UV7*Ch8X46_RXi5 z8Dw19@HWBdSsMDiGv?0(6prK^xXahgO(smb@54OBz^ai3O*~K@SGclooZW$$N3LNi zAEccEg)LpNXbEpfRV$?lTuFCY)v$?Z+DICCb{Ls$xmBZQGA4Nz`P0Gl=G}j{Dg^&c zXGyTlfkETV{w&YgPp4AvdTznrT+_ZLCf$12N@U;9iu|+3@BH-~);BGsl9pFmV?j%UBFrypT+-P{5V)Nl8y7 zPXkL&kZ$BHtAT#EGEu0vn^(*C>b9mq{{{UB8t&{s5vavzUH}Gz)+ISU96SQXjm#X! zEqFw9&h5}bH2!l}JD9fa!K-xW0?v?mppZlGmt(-Qp}-*B@2`UtbIa^D8eOR=X4QHTx7TXvrH7U^7B(^ilNSDzqN~DWJZsFuhn6!K= z1+is9?i~XE_46z05qV7v$}Yq0)Q(?()SpNfÃ=hYmg-7dH4?&*NqqtUL18qtx> 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 z zgeXjyNdcU4W!+Q{6DQw!jAr{e+0_i|*z#ADNh6*sHiz7TZ1gcL-|A3_-NVM&U~Z%n z*W8B9YdK@|U+1Igm*?r$LM|eLI2?c#4OMZcbnNNYP!x6AALbBwg=Jr6+wzuuMr(b( zKLc+_-3 z#zYCtnU~UhSZ%g;Xoq%ZMlSkB@?!Q_luVr|e4^BqHDV(sZdLx#UQ58iA5PA?|CmRF zEN-3@DukCxZY?4tJoq^)`S3gm=cwO%A{495(JucnStfA0Dv{6T3hypufi1r@@_jK) zLH_6Dt|ST{$jy@>gHMR*q;_VuHe)=U6f!C&@u{aoR(~sRO*f5g+2WZAN|S#d+sU2h z?y<)kH&|-y=yhB=v_jvh%Gl?bJmbt0sug7xcYceKnhz^irJAEjn7CBUK|O6r*2ax2 zBC@b+H%}6R8&B!(UC#W&V9bH|!}(dJ*cdNwWvZw@t|SUNZJ4I#mvPnN3MCs=awJq! zEBt5FZuL+Jd5dH`G9^j{Y83M^d91N7ftb7BlH~>+@^I-@yZsWqbh_C7*e(CN3zFgN zqb)4{4R}Yo6zvn?`()QhL3hrP4z5nSwIhBL-_)F`-9VJD3o3JBxWW$)^s`)3h}^P} z>AKJTT%ki;`8+DpWNIuZVlsLxCel|AqbstRe_ zAE0F7+SVk*m0sZuIy<=LJ$o$NcIN=y%>dWoa&iYiZ1<4$);!?g?kYu})Q1Flos6)Tan{87JjB=A{W;3*i86j! z0W-YZq-hrF1v#otaq<5!=q1@wfuSvf*yi@1GjK z;H>%UbOmZ>OiY6rg2>zwlPV=4DM@R!GVKNl!7zZ4=sf0JhD@fy0h0b;3jX!EEeG^{ zAKH3E>NP6}N>;lk(bk-`SW{34orQ$9?W|t3IVNY5kpp z?Wwua@V4TSWUe-7*~-JOw`FTNDQ%2^uTd>p7r)FA<5aijk`QEWh?&&dla!RuVzXo+ z4gO+=A@V|m!@y!NAY3JrMWj%F@Lts%oW5$t1ty?b|>cdBCc!vDDi zVj!W4#BvH=IW3l51xtR6`6)-@SQZG)7EA0vUQTUSaa>XYKv&$EF*65 zKXQe_0LYMhLPh4|zgRnMv)d6ye_97cZnr5dJGqdTYj%+a!tgID!6i?!tgz+_3h$6P zCl?6*H%-aRkvw)bYsdVu-wf@igg3oX1ZtZBH)|b6?@x=ZMc;k|@O$8qM!h+>*rc!# z2QYDcx%pCAb|jbTz`)EM@}zE}-Ma)M%g+SoWGZ*qZ0m|%4GkT`acnFr1pfuZ5yLTw zos*S0qzJfNFWEE;T|~c}C6x#H^w5nM%X;NF10m-ua*%eoq4?lV@gVFT-xNnzJ69ub4xIJR@jVKD4A|HZ)Swy=`0vZ*X< zJPK1FU&kS71!N;jj(h-b7wC-2tr{vNw@a@dDTzF87@B529zFGli=NNCXeet=)78Su zaj=v$kv#PUQ^TD;v7Fx&-?8<$;VBseqJk=F5J54bEI%Fl-$l2T0xkO1=T$|T42=ba zC#xRYrkQdzIND{^uEQLue4&}?cCmG{lc`lq2Gm=ZYZ3 zQOErK8tI7t;e3_Yt2h8Gs08&V{4qAEz@an~^`!kN$efx0c#X9eu zW1BOBcU1FCwIjwh1K5#Mg3gnisI}PA88IjP;oI_=^O(|nGe_Mjv`_TCckMm2W^EA0 zsF}ld`0M>tU~n7F_c9HA_1wSg!tN^oac#1K2NMmZU(-3c-S$}ZVaW@TSuddiUNPizlDO^Y^AKmg_IP^9j2NdK zx)y|3Aa)z)aU8O|%RZ;*WcNPKX%T?MQ_8}1o0SOnFk8*1tNJ*LAOJ@|L;FcCAo;Fr zuow>r*nOK9)%oy`=XdjWNPZR&XU+D8BF^u_ZeRU)Hd?%SA!#7b0b#qHpZ7yH2wJNS2`T;*McI;*GE(wj^AWie%lz> z$|vnKap>0Z$gx^dgEX1diNUS5^kucLf`NC!0Ty|0SrW}^o^C;kR{Q77|`g{f%Zo;u)hg(iZ%Cil#*M_n8vlT?3(Bmo_D zGj8T#`?e7ptKGU$nkGyIE`s+?|4}2Pym1sU^eSlK@AUkEaR0NPzUt^=Sqq%^@F#jD zOD3*XH5Ec5My`1a89rH|VKpnhQfrTnY}cqmVQzz}ZO;@}q>G7=*tmVn4sJ)xzi83> z^>W@%f&Kb&y4o|CDNo*^*!>@8Xi%9?v$KhD=k@@t9idnf5>(1fcfiJ6F6%19ybZl_p)8jE$gEu)2pxDh8L1~|Vzo%N=i2G9& zG&1uh+q!@%?aM#y51^@jwI`tZ0?i0wRp~xO<6Vvc1ixK|hK12t%uS!P0M?m-w2A7! zaV6@z$&S`JfUK%fz2&t3Z8(Rc{k4j1YNI~3jIT*VOqOKFEH&fjVd z2eG)nKZ-d|a8Vw_f?fni%Q}|?%SLg0@on+EmxB|FzZTaQx2F1xa1{dL-)OFdQ!L#33YjD0<_;%pY)K&euZm6XLzY;(1%ks)yU9 z?e_^Y?!e)B#d<`YxuRP{V}dx&e;!&vT#g^@VJT>;;Y%Y1nH<9fJGnogKiH;5{vqV> zb6aYP5W|UZF@j9?B^P_yKcI)aNfY}!^g9=Pc?U-xqy_v1x&?PA__M~{3Cn8kx3O_F zd;U2#e;`9d7&F1b5Frzn!`EU;k3)olKF0TgnGtya8Z&8|5r7~;-@*8pi13KNr!Npu`kaI}`^#{EAwQo1?GMGdD%ZX=dSMlcZv_xWAv-)u^;!;&WOU+~ zF9S0~7=yTH3@|t5PeljiuW#V!K>3+CII3njLViv<87ERq$eeOas@caF81?zN^rZ8W zBE3pQ8cDPng`aEa{Hado_mzPd@K>trgr4B|1VvjlA+4m>$WLooKB$naYN~ZZz?NR=#e|c1Ii0oN$-?AMRE_mtdc?_yU zo&RlvSykV0)0Bz%UV=rM$WFL8*W$C_7uhO%AQ^%iOUaq%{zZv6?3a<6v9y-JI@Pvm zzMFrmS*c=F0gu`*qlFV=Rm;t9t5eaCjESuk$h;LqV4~j;5Z>?!!r2K7GD9|4^eh0< zU7A2A7iAo%)pO&vn<0X$EXO`Jfm{vY%VCw&fxlJ&k*A@rszj&BYOrh`@UuumX8c&j zzs$~fGc#e}lC!4((SatQ`MI56gLhiz7XX)S&*ua1w~JA=++=P(=JSlZ3+vSwvG~4l z(aXW`-mfvlU#i2Aj35!rKyX;gr_$?iCES_mrNXI1syOhis-@zRMI(Ai8iXOyQK?9I zRWU0B8y@^|(cJ^IH0OSF4Wk^+)C~_IYPNVEb)X$o=xqQ^{llXwY#qxy@eg;i3icDLa$$$Kf_be+Z=) zF#tu9*I4*WD$L@Rj;Z2J=CC|`5Z>uVXK;}5ZR{bg_g3Ga1uuIDx=G!H4&l6){%B3A z-Cr*y#LWmE22L5(f0hFIPIrM5K4!F75iOD^q8)PAJQd1Fc-ja^W3j&S!qi#Imi z=05CQ6ASy?5$_E4{Cw+x6Mb~!z?$f=4cK|Qji$_#FU)LBs5R(Qo@IK?UbuaW!LNoP z*e2rETMO(qySq!af|(;lL(4)@TI6pF|TPkG0UW&y4<+9M$m$_8qs)2`PWJiGr*Tr9vPy@MU)~ILYE3Y zMLJ3OMm`1?(Z}u-=Vs6&cGlwM)duQ@iAo2BbLKT)m%%LsJi8pzX#t}Z24&;MB8TmkGu+(g~{dx&t2xduJDaIp5%W=trDJCj=6Tti0;aVOH~?O zp}vH#k8{`0oWYV>OzyJd81}&%%EraH*t=UJak6jksRA!5h~K%Q?ewpfNoLBj+z-`}Gk&cb2+92gII=U8 zyXAE`iNim0n!}4;0o!`{kmbGDHd3dN2-Vl1aFw9IR84N{ke8cV%-TM>(P23CgSYqNsNZytMJj%pFV36e}+cS&R zRjum8lH0i*4hLqTXGWUkK6TC?cxu`0Mu=$|6K2kJC2k_I{H7S?%wD%)FHEbuE$7Z@ zYL8+Eoi1p&=w4r%}t1JQ}<3$kHFiOp4%|5yKk{3?cS}nY%opss4?Wm zQ5n%OgVnq!N@(KPtiDl&^5ehHE6@M^F`WFhH@*6o`1>Z;YuL*%bgI{?laVuRicN<@VfnQs1w-vgq#%!@Zj(p}F(Vg!+1_hF^QX=t|Y?j~~UFeVR>rv9GGf zhqA?w2#!wbsp=E;n>71^Rhbo#!tI+F89C7>3QBB`PD5n+y?~~6W~&TSS7DE(A=gwN zxVLC}gJsiI3YJ@E3XW2pq1n|+cSdVuWNU^yw=;d-w*AaQwg&Er)*NtfJriY^*|)(` zP)d~cB?8E|f*->dEF!MTb2%ONJ%%V6Xv%f-13F*G{HGt@=I;?)y?}uu{re2xEMiAMy z=fG7J1;fQ7Pt1EScEk7rEc)0?Xjc8}O}Yh9x)i+H=UdKWw_Ig}=#WWRPUxUqUy;&=yD)NUu%( zgLB&Ydt{py6_Rx!omJ4v~&&~=f#^4CaiXjE^8L(Hr96$6ns!jnK<*?@hqm6shvxOf_C$r|Nm3u`oAbr0p6$3X zMAtnd1*OlvH0AX_$X#*QQCdyj6epu}8@i;)Wnx@=AO;zEl%&dcWk43ORNCXE@Blip ztTv7Db2K~jvxsAMxUlz?W0Vxr1As@6AZRyHPP1I_z|w>k!%vXg6|_&z^S*ioexZaq zw4T-znqKgYbcdS=lDsZ@e(54-bfq$h&E?5vL zn%a2Md1Aq;x%x#LFZr*nT6NKXed8kCyj2VKWS(rCD$>8!%st!nbHj?Gk{4-z|KL~< zQcwELH&Plc-?l+(^+W$_L}_DrtHa)UmGxUKGHJQp(elzuEe?CRRA#aI@vE(NM{Bu} zMvYq`e}Q&GOF3$_yjbg=TwCJQr+Z$PNlxu~ntlB#{S+tR`{|kS*-sXCWC{TeyYQ^x zgzWSd%a+rY{hKYD_XGb;ZYM{>*{SIV4icT3zrUWEx^DLM>$BmxAC?q+d;RPRU2J}J z`t#Az=atp@vAPv!uYc`q_%M{Af0@eg_S=TvK(*!TMdBv!)clpkm3b>`R~#6QV2&IezZar#&#0NS^|qNvlR~# zD=&ULXZPU!x?R8zX{|Zzf(@~GeK)eEA!6^SDs_2F9x^m_2_}D;sH)02AONO?$Q5!$ zg34(#f8F@A{lRCN--zYsr4Rpzo;ho^S42Co#Z(yO2y@VOa0}3|n^8K`Q2A4+0#3*9 zeemNlzApmL2do1ab>+K~U$@tujwU}8l_dLG zjmb3j(wOE#cxw7z`b_8;O^=11p#h8-uyPa#%&H{{8W3yTX)I0y=P??B86$FQ4J{6t zT*>f9RN;jy`2lNK?gDWW*^q~ZCY%qTv>ITq{w6=P1{}@qp zbW?-@FaEkaz_q$h zWPJ_JS^KoKI*Ge_&MeZa_ywNJf`OOKSoYca-MEF_fIjhV3I!TtLz z8l&ckChs|_OVo~>C~=e&>rFj5sk<}43gLo?m-iM=TUF!e1)KAVH_2E$z+O_`HIxuRVHeXxr zieJaY{F^+vdNt9kzodaM50+i9c(!)_v>Z`FN&%BLe`3Xj+6u2F^yW0G`@tOQwqJg< z#GY)el*dQOBctNwm1QL}xH+3;QDl_7EQi}x78>_&OhRFBPH)1|J!<75p3AW0opt6$ z^`4^%z29b_igjOk{>~D6H1B_I#Pfyx?1B_yp2i%rxifZr5Id!AQL8NikWOL+3wZW3Pwq2Mcdz%>gG~ z$Cgb2EFDN^UuFebs1qK-9;)m21m65_1(QWwRWtVGMY(IWC7cpZeJx)LqV!|DO*Re^ z6r*4;(aF*Cie`=Mk&#>~^KA)7g0+^|%Hokg`=flFOhBoLQwgAbkGuX!^`><`|wU zGJfqz0(WY)f+pwr1PcJ=TR!fLx^3h|Z26Wet-}RT=m}XIx$n<*j{qpedK_Y~G1E5r zY>5f}dB{P~`O2L&PTMFXX_C{qnONnhW+!|R)@jWQON<0MbT*Wpu$OR+=nNR-sYHl^ z=Yl#uLqKwVI$+?0EP54Mu_DPrPXHP7&A(m1DTsOFS(s)sd&&0nN)84mh85LKfk3rcOZ%@`%rfCAWnDvEbX%7J*M8+7 zEsF?LTp&{ju~7?Z(f}T67NjsqCu8`2;eLFqo>d|p#~*5W|Aoftv82$0Q}o?Iv7SaG zt!x)=_6s)K8++oRDU45C?EqFljWDR)@BFXg zFeS^!2DNOu-U(!bGUs%stTr9_YJ=>csT7e~MRDGFg+t@5VIG&;=7l>GQRs1vVs~s; zE{&)g)R^W4&(hRuP~O(Pnt8OrFoxVPJu?D5tJ_JJ&(^%%iR}qlGPwC z>$fcma)vCxxwfva-$N4aeQ+K~u~z8(#cxBATVHqCxcGt)XV9W;`g^Q)x*WPVYF4uC zzl^#YO^CXJ#S&vRvo<8ufpe?E>azED&Br;#bvhX{602lk2Ut!^)k!U*PIfGbN+ZQC z4Bq&yMA|nn>b-UkeF2+#>-_&^Cr8a%9C{CH?~G`fO>;I#h5Pi(O1Mp0;^b9-AG4dD z5B%f549u#{oBz6f+K_k#!OneTB(~^mI-Urp8At;{#ZNKjPz-iYIM1o>>T3sEdi7m6 z^$X#&f7|P)DtbieV2AbMd}?;OsHcMV^*$k-*0I;mZ_aE7$18W?PTqnZHiODBPKl=w z0}+bA+tZC_i(-bGH;svhiXsUouO}nl`5kfmDeOiN&7plcjmJWZ2}W(mVS>;8DAwEI zdwQy#8~o_<)!BZ+$TJdaeob0gc{!w`=73qTe0Nuy@T%dM8I0-M5jd1Epk#ZKuzj6VO zA6dzp!+UcZeq3TVAr}0n`wgE5Z>K-oIu!M6Adz#A>!NVKz)2aRIe_#t6Z$86Lpc8$ z$d!r~=^9H^pR~>!%Zj`OqJHDdA-qBO_p#z}!ik_%KicUOX*^jnYvM&vg^C|YoWX^2 zo2Y9cCmq))ZWA7I$MLY#1~#P4vl&wk01-1{FK*HihGu{5$p-c7$?^t3TC*qCJ{%_1+P=?_zuC zLT(P{gv;NtxrmyiLbF}%GiOK&#Eo@pvCUB4MF^cY;wyAT%#`^-fO%B-(nz>j`Uk?M zY&C?-*HCe@1q_s@ZbLCQkpzqybo$2(ECPO&GMf_ERL|`lJt{ZiUorauR=#`h?v zZE{0`%HAP~8WZK{d&x!iz5%9*HJgzCUOOV5 z*RafRvl_JcaDs;6jsLt%x(2S=!OIbh#Q*F-nr%Ru7c#&9X_M7{$ltPjcRE}|`#&wr z6{(Z?-+KPmA`PL4{Pur~qz;P5$STgglA@VGo2mRrWt*RqgT5Z-5)z%#!#$@6poHKd* zWzVeEUu7?OCb@XoL9g7j`okzmD%>ADb7ypZh1{iQI*+Y*9pv|sm9X~Irzd{-UqIgf zhZ{~+c#{ZI9LLoH)pfHrcX z!6a*^T=j7vRyACDokx$(@QSRy{8v|ctxNi{9E%=@^BA(Jg*aX~RmR|jgXeOTbD!Ca zD3+tbtP(A{0)^`&Yf!~93dkG*PHV2%{hbV5^ zS)02O6T3Fw1brCP<$mG-lkQl9%31t>Ky9QGgo5+P#kncRP5!b z3F#0r2Y-_ZdLghSMgWbI?MrwH-Ok0;>Vc@S&B>f$p%c(KA7>@1AEyU)lH4rShq| zKwEs<&1Fs#5QN>wo*hTZhUS=K5CIZno--sPsRG#0oT7f-<^GJKX0!hIBwK*1FcmIf zA6~{TJdclZA z?}ibGOCC=<6X3}2(aq>iV-JSyeANpoC%Q}}j?VlM&SIyRhgCps#D9Ai9- zAP!+0F&zazEdj!yykK6;Hl%FL6R4TbcH$uQ^5}s#JDZxlw%Y2%HTmasI>Jh`Vp!{fzvt1@O!ZjRN-zy+oEm!=zvk0 z22|toaGHtt@^hhsaV%c^z%dDYBQ;4GpmNsY-pSMLjg6w6v1=n(<2!E9UjGS=|Fv+G zrYs)pGAMV=j;IqG9C5kY>jF4fp#pfUhbsWc?N7UNAtVTrnZ~E4gibLAX?!y!yjPg&{vow= z5y}m#Fp$LvoI&?KQ2y}M#~JLw3tYJ4XP9CS`Qp~}nV(EO^MBBD*|v?g^G9%<$v)o+z0jvn3G)pPJO!5yzeO#E5ORsCsGQ!<_ovIX zIN@KSGXCK=`_}`ZU@5LI=53yoru%t+Iv4;l6x}_{!q-b)PoalfsGN7J+F}>9zN=Vs zoYk;r%(+?)Lgw(a!wehd6wET@j&E^sc1W9*jG~+ubNFn(sT?NNZyM?RFr>yI$DLCX z%i$&8d}YSDpzk~oW6tu=yNDT$A;Dd;7meQtN%tH`(7TgZD+aMI&))vxkL0&BTQ>aI zb)a^#1iSl=yGyQJzy7tQXSoO1p6d?bkL*n1#L2KBvyv?MW zs_LQTpYGST7O;3`!4w_(E}KNkEN)|@(=X}APOX#E?#G3rw0k1)X2vOL*B0vblQm1txitd}Es~YXyyd1~!V?CbhL$FiyjdcSRu2CCk$#I8 z_@T#d*Vlu)`IVSd{AfF8=fj;h)V38u^>9B@53bwtomJ|jQ9)E;Y3d;-Yd5W{*HpRE zO5(O73z|rV%kIPN{lbkv-n9?8Z!k#ktkXZ-vzu)HwtYV%eYQ?}r>)O?cb3uc|L}v~ z+sA%!H)d|`?c@GE9OHNhPZFiPbkC*S4Z_rXxV;r#!siG1aF?xi`XQ&0zx%t0*kgEv zk!kZ0)uC{?J8q|8fy)Qd5kL}S27Dqaykty^DjCyYfAYlS0~Ukx6ni1ugqZ>|pS)Fj z@qd~+cd_QHi?z4EpVoRw2p!&UA?p2WrhjIob)G>+B~gGEv}bbl2@Gytk@np;2|Vkg zmizf21E81^(M|y#mo_|S94p<)Bd|K9?8L%tK~WuiMh+z!$^a1D36H*k8NK!kFSuc zh25roEoO^?1Q`I-IJoG$6(Uy(n>?19LTy`=8N`y$6|GhxOny*})o0t6l3n;kn})7F zdc98}U=IXKDXNt0s&4?Q>cuqs82jxFc4KVAtJZrH3nO%U4gxD)3+A(h@hMV0R$A1+ zk+2rj2Y4VPV7)R5;&po$r`I|b<+$b*yj*LC=wR_k!lk5`vK&cm=pbGdmoP*o*<(PX&D?BYLl#On znHv0gy|TG&dE(-XK6)h9Ne_y0jAPf!tjlzThS*voMQfMoAf?m6lFow888&Y~i&&D( z?gdF!J|iO&R;9rH4&K{pA0b7+`&G=*)T>^LbEBAWs~Z5)_&11g#H);R2?VwWNWtsH{34(ZY+AJa_7&i(7IFIV1q)DExIQ>i z)EpLkI{TOihtnMBVI&INGX5(e-k(stfg2V#QDzKUgv}Tv-5zNidrU}wQuPk++xDcG z9$=t>j3EVFd2QW&EO)jc5uELs${PuAZHyYL?U8Ai(b$Z=R;sJ-{!1~YQ>uj%G!a1R z_~c|7b&}+;q;*cQc)Tm);DB?0TXSYKoZcZaA(E8x)To0+iil*10B8Y`>a&Rghmw>` z9!1b}eNGd-BIjifP>zynilX=`4%ZK4Ew&E@y5}#>8n6e3wst$UMOSDCk-SpGc4nQ) zoVUDzQk4IeSVyd2QwLvk>&FjS*4o!#r=4q-B!0(5bS00rgJENIXyZ}0@IJ!nJ9ZEV z%+q=yZO?Z1w)JD*-QHFXWdCzo^UB18Xb*89=HoP$Df{0Zv`;iN>Lv`W?`s+XDlR3| z2|tYG+k5eUezd;-7V(+q_IG3Jx81R_G`QeLss%8Qm2vg24uQO&UwkjQ>f^^V$K&f= zr+mMFo5^YstX?vM=?x5QSEpx=n4dFG%k~&Xj!T-kuu5GeD3cKvUx~UzRY?*v;A!2b z$;i^@zU9*y*)HWQruT-eoq^^cJ1HmNU{vyglGJ4vN>#58efCR#`ilHeEyPe_VMlZ= zNRYbTtrEPdv>^x=A|R&;OtfSK4zVBox|}(U3&YO3X;2S^-n)R{!wMV(4*d?&Ah0u& zy=i7cI5N3S0mVZ>+#m$u!1%xqa!z$-5MAkov8!=1qgy?r z_UBJjU?Ug!E)I4LtREbL@tI4{R%f9X{=B?`fy=~Adfd&{(8X-n#3LbMrKRgz#XJ{28Z1n6D3V9A$POIV_EBH&QW>2Ytgym}hENej6WDvni{U{>O9;u8W zV8N#X1^xLEgO%rAy6sEPP26_EB@R+C0rVBH0&WCD{|Im~&>wRuULuU3md(l7pCuc4 zeJR*I{k*64^rvCi(_at>-}0;=%5?x~uLFcsIzXO}2LwWZT(W59@j!~<1-RWXh-Z$m zBJUjS%xpwG#_vU1JYKoPzvBkaAhtRO)L2(A^CaC#=RP7G%Od?!DXyuofvEY;z3OFI zr+_`yfh=yKR9X6jHy50Ud&cg}ddFdUED2}SFwFRj5nGOjGFS8bYNHEZfLWd~hB3bm zaI8RoIzUA#80B^>%dwRn5%&&`CX7^Mq|}ro1_fYii<9qi{p4W0YMQ#>a+JpbNg`T|NM}^M4K6N5S%^-X zto5D3h}-B5te7vNun7=HefedUN80%zWujE7f%yX~SxBoF)5X{Okg)?Ol~mdXiJ%zZ zh7dur`r)|cKn%g%qKVmwRixYi^{0IIh0$PpZbFlS724&qpt;!{$|&%u*V^OsB!IJ9JrU zsvftDyVQG&cjSe>^C}=3e<{$+no^ypdho{4PYrxX(Le)46HnOosQrCfJPSy~w_^$! zXS@aV2#sj{Vn&)ord1U>#U<-{_a{&-SP^a{mbMztpT~2y@(N{(y=Z^$!X=_JrwZ3i zl9+}aq%jfJP>imK2Z48x2m*odUN4fxB1A$*@&R_?ISa0cVuh-BFoyNHm;0PBrGfVO zUt5sf3MJg11rfC`;*oIm+6bu&Ot8rE6@mEGt0!UrWSti0`8=n<cxne}rNX*qU3tESC&sYwY6It(!TyT^A zH0yT(Q&(%|Y+N@w>qT;E^P@j{8D<_ml`!4dY1-YjfqDM{A^QFQ!fMM!H&xo#C#UtUtLj;Oj z%PD~U-`U7dFbHz6#fi~OvhtZ+L$kgl2ljJ``_21I6N%rl!)7beT+zO;F6%iXJ1gCI ztyz@BJadd$Gc;d|20_sr;mRDX=Ej+dsNITnJ)2pmFdOpc8WN#3xvoUR*BNWU`$cCD z&aepq4=DGnyz0*fk8Hr`s#Ur=E7lYgi4pcW_L>A};)CAm4D8lz?^yRZftH)*5H^x| z)@2EqDUDEutHPBL(wQM?vb7@Vk>$&eNJVR9;3$@q`z6GW_3sdp@-hkTttyWd@3KjB z$0CpEB(_~Pa>qVP-9HAonI4Hd!HxEph8G(pWt;!o-~Dq|meN#lYEQ{`C|ZI3Vlfa~ zTst8U#WVH^kS!dPC>{%?n#0TpMuy4 z!oZ_Y{zA2cm$67#=sXy-L{79IOFrlP z;@EMhqEM&i)R<6r5SKwsYRLL0)Z7J7Me!yEVx|FYRz+e;8PS}RVbzaL9|cAwyufA% z)0;qF47XATbx^ed0{Ah*47E+uLnG9)?Z9GKF%0phY4@1Pa%%~N_`VX~Kv0jHaDi_E z7TZsSL6kl15Cb+%JFY~pIBfHz_Y}?T3I4aXot+3k1_%kRPYTA{{qx3L=?s#fx1=p8 zC`;eG?+fc8sh1agw|LwJ(+7_)KRZQoFA%byx&kRDd2ZZ?*_kLwlHb-~T zMroAgwc5%A8`cASh%4m1$NPzUUaHoMTu6lblk{ro8SXEfMw%O%3RW!4=qi?{S`}kc z8sizEp&4)}(I4$FC`1f~jdna{Ud&C+nm=#qQWl{`1F&1!dp4D|aUY`C*dg#n)~XC& zOUOg6gNm|)$M0W!^Ub%-j+k}(t^3!-ggD+l_a3xxSqU&U?Vfjk(e2c=j%Mo2iZ{Y- z`T*?)f}LVf0!TmoD}(T&eO@9*nD?J4JSi+JG2CREHEizHUBkS1mW@dnlyR`+HGDSc&6E`c9L^lG0<-FvU-kyqgoJxOk+ z^TD2;u1;< zK&w@>CwN;*)Ap-?U%TR84Ci zEsN?4qz3v7fWABwmVi~uufIHL5+ONVvW=Miw9qh6rq41Znz9b=m(KY>V6I!fMH$j6 z!H8ow$i?~Bs}~~!`wdycCdyo@>pTM24WZ50aFS`#w@02Pg%!7h073&P>a!QSn^o+R zc@O)KwAkE7$8ryx)*IwyRRtl=l`}t6o3d*ChCF?tPAA5>7wR)m{}Ka8>kSV#=}MVU zBM@l%siDW?jwif&Qo|e{uH*Qm02??Nx-5)hx@Qf4X!IpyInM%(rUgixAbF8Z;qzDZ zdOuh39`;%z#7L9POE;%B?#{P+q@KynFqXHj*%SbnMdWOzWr8-&oN9a~uS%}FN`TZ) z9H+LevidB+qwF=;;@7|`y^O7POk4!vBgw<|^O~~Il3Tt2(`UEc#}M0` zMV{w%8uqTtj*W;TtTW%qaeo)6?iM-GCvbvK&9`~{V-_61AyCkBm9|(}Gc`n`TaZ## zkjaEsbc%ucb5crT_*Cb)+mrE(OLc}-+PyTRvvgZaiIP2s(x$6J2{bw6`a*SD(NC)j zL<6Y`U*E6L7{p92vUEM*+nzN10POg=va`AffN*42Cwu%gNi3xR3(Fh;NMC2fYsdM{ zt`bPon;;w{Ox1`LNJ$)cxK^wF5Hc<2yHZ*Kce4gDaD=TQQ|ZW)&vHw8v9s?KOB8ef zK%6stz;Edj1%rwx25b_yYnk-KTi4@*1ei)aVRB_7(1XH0Ae#b22@k3S7L&+VWMu=S zUvJnAdXjJqxa6r_gwPS98e+8|6yjo%7s_JuY;=PxwE;MA&i0jpLbTZ_4)ToXa~jMc zXDBuj8*)*-0$)wrZiZF3f5L?|94qbk{d+A*q^0%c0=87JMzxov#IWUcIRp}ZvvD$8 z=L*lMHzdt82v~i%4MDe&@Js3~?s9D493SRt%^~>f6NYROEp!p0@zPOUrPqe7t1-7B zcUhT0SPuUP`a)%IVu6=azmuMK1V|b?Gyc_g%rE_D{`tz3_bW!h9dM&}M$4wKuA#Cf z)<)+Zf7S3xb>s;&=$@ZZ{wHkqP3_GrS05+wAAtHhSiZUajkl2kdfo16SL3C{J4e1# zFRy2g*zO;d!b(#@&#C&yuHJg=tN+s{pKmZF$}r8dUGtv}UZjq&9w)R` zEg*!6r4Nm-A$ae4a8ye9wv66CjU`ZSc(j34VhJE{NA0f@urF<+O87!J|rnpowpQR1y6x zV}Lp#OTurCZ1i2sLxJT}qye61tokeND-N5^;RN5ru6&7oX=Us+#q%8%i=0^U>*N%R z77<)STm!-n^K1pWcVABLj8HD~f$x8yFVFklef>A{y*mqkh_0@V3=BDkhV`+vjvK`) zoD#+qX^X-f;l=8A9UGznR;C{OorX0r?N-y(3=zC|b>>WLF3!7I*o%!-gL5Axj)!}3 zg65ZUEp7o=@LCdg^MMDxlXhc}wLqFOf=`U7>EL~g@M3%}wu;#nh>-Cxe1c*eSU9on zNeX#l857|Td5j$%Kt|B!?Z~1=?{K_?-`K*m~@M{)%tU%M0%AuNW<1y(vRsaXArLGfk=MRt-y44#W$oKOh<158yR(W82V5AnuQ_ z#=d#Q&f`ApYaWWoy8oHqz{)*bAKqU$>|d~eL^)gz%-kg0&w^k|_kG+*eOO0e*uVA6 zrO*59A|}C^`Hy?r5xM2F?`*NX^ZPj79u2Ham! z)AMxAkYah44RI1&U@wySsDnK;4yKae&_=SSPqjz zC@0y9_q!fpmol#FKCs}FSnzG3htgEUkEUreMTzY0&|vCWGfT4KEOAu=v;pM4PIp$8 zaxt%-Yn1@qlgqNyMX6q4_4HL>@aWt~!YMBBL!>VE^@tE;+hh&d-8s1moEF|e=3qgP zgos~d?;dB_mIoDJTXN`{iwLpYSx`ZYY>;UeWul&lj%|5T?~k%seGozcXJxQl!g!U9 z%w#z0!0Cs&={>57OM$7e*t++IHlOLhY?0(F$>aFMghYyjf z4svVx6S#zJs==t_tE*CCcO&)J2|#t7ZkN{8eS#xgPddmA&RDKpK4Xw0I-a~DxD#D& zt-DKm%y6Ul)3-6?;XcQUm1pwj+s)fKi78?vZa6^hADWpXOsB{Zv^3^hOQ0(XPuu0bn!m~?G)_C-^L445_hosb2n6n6DJQ01Xb;u zbcIAd&StlK zsg^`QDsGMwc}foRV90ULKiDJHQg9Jw@zRCR0yy*}Rk6oxmKe7{W)C8o_oGLq==QC= z?|kuky#iz$V9hGV4Mw;!K-j(eLq!mC10;{khp!cG07i{Fa9@nTd-b4(AJ(n_7H{q{ zwHt9G8=AJc*=fme$1Ns6{Q<&jB|Q7>)Negk;}4k+#Z#+pVzRdIEy|Gs-7M3rNV&j= z9JF}E2YJz=$8iuzoNrfEk}?a+PkyL2Z`ZrtaGlf3Lt8mBVEH#yZ5dmfa-hGiqi#a) z(z|tZ@3x1%JI3_x%*B8YRt=hpi1KxHb=>0Kx#&8)+*mYdzgv;o>Tes%we}0 z`rNti_oQBpX}}{2&E=??yXbMK@@cobu@Pn5VA&?0vjz3{a)Titn9W(qR<7WNfsOh; zfG}i%fG%I(nVGKxEU>ajjI_A58jNIlYFDhpp`W2FBaTKa^QHEPm)t89eJl9-`YJ}CUiw5pPk_dtx-E`F>v%M&nG-Ir zr^iC`0?~m8JpyNx{H`n76)W5?MfAPIhUKPzFNVntvFU(bFxkKa-u9~B(UNo$dGjR+ zC!R>#X775P#e9BHkeVIG368ILn;jR=2%WqjHgtxsxEcF1a*LYj!?%m0J#)r=X{x&d z7S3)bL8o0$nDkM%XoCS>7=|U-{X!1Iyh<`fK+fe|Bymg?-nuh-4t@c4wHmScvNNS& z|L^02Zp~SFfsHsfZ`XkI06jp$zpNK1QTNf&2r6jcwA$}UxH%$SlQx|QhNcnHyvGBEKU6L(uN8X`n znh;KWY9FH&PG^!N*j25t4P;dWk|0&nS$>8(0LiU$b~+{(Iz`(WBFV^?Keg9YD-RQW z&zRtaD~YW9dZ7u)^KFAJxl5Agvv%Kw!@Kj8TTFKr&i?FMMOmZj2{R4IuwfNrm~jC5 zQv0{JL;SyV+v`2euOE^M#9&zGLGGNI7ZI^IWd$;CrnPH_TZiYYc=z;*lwsfv?bD2X z)V!sKyqt6U#q17gMv;2Mf%MEK*>&0TQ~Ki`C8`xLg8oY>0>7|o&aI%F-vgZ~24>aT zHyq(WT-+T;yEmV|qTLb~PRzNy7|pvUcz!+*d2uD2`JDlx@=OsSH|2}O6+h0n6G5cY z)+aYao;NheeOH`x&;+4?6(_!*vosu}ex~FbGV&llvF}{qiOGrtf%+eE=8bU>2%m3B$vEFL5###E6z5fEmb;!Bz@(1=KQ7ddKqK??FU*0Dw zcF~NULPy&*Amt;xR~^Gq51pU%*Li;x7btS|+2TAYjD0bkogN%#em$r4Kot*p#bxR1^(q(lc6wq}=BMHq^1*!7fmsR_eA%PBL5Gm0Eal_@Ulf$3Rsx*s08mbN) z8yY?@*(lA+K&gS#Nx;=d`WTRK!|~n%jXl};T2-pL2Yz1tSl#4qClGVn!;mS)bO0!` zgk1l?Q{rm>KKdh3rVxhX%ce7fbnXAW)}UAfHuwmnB@=m^g>f&j7VFW{DZ z!lwB|rJKdor2$r$EA9Z9>9cQV5e1#y%6q#f5c@bZE{R$+6MG$KydpAb&DL#Bd-R&H zn19ql2t| zukt1ZmZE~3`+<)-`G4xP(o5^G6+Jdbi+HzVlO%T6f;ss-q|RX{qerB1I^{hTIx#-( zDHjN&towin?hlJcq*J62?~LQQdHd=hpn)mnlQNF0jdWBik|_?T(2EoiyU!uSjBwuF zt|KNC>$O`ooT#@=WHt(Oz2r29iwzn5?sipGU%I9e)QvdjDVUnZWmkITZu$L&=-<|i z1~J^c%8pyIe2I90gABn@d2C?^*Y19fN!TZrtbWJuhBO);i8 z49E_C*S$-sdtq zJ{ZC4;C$@j{N3+L&;|5_6V~zn{I1if8f)#l)oQDs!?kwJYjnjfu$73yqGE*}oDmji zhgH7Ds8Un1V9rT!W$5Bd`O|A;-0@F+8FawKuJH7q{gO=PT+vl+?_k$^K<?yXvkeifiZore;>q`G0Hp$MUyLq`5_y37=<9fk~dXTTKW|1YRRWgB8 zl>b131pBG1DfXjT=k0<1j|-c2?NDj5G6uKGCSb7UTdi4T1@-79UvqOJWk>?ai52WN ztbiwPk?98(EEQ@9wM?u0IEh8G) zb=nqee7-e#_mR1amh-!3o5RRs%n2mlF1j~83+4B*i~h}+=l+oL2Qb*+uq2t!8;MLW;v;ZaWCL04} znC`~*QM;E%P%{>cBSYLPHduJOmn{x{?WcgnZ;wvId1sVI@j*VubRTkfup3T;z#+RA z=g$S;{y<`h z3d`G@$a+ff@rlKMZ{ftGzAY-_VZzK0z%h&jv zQ~#{+|FO~<;!^^>JVZpwAHJ2lGO9QKBaOO$G6SFP8g)R45*>(5w(i2pIo0wohyG8s4*T_ZgR`!9;3j}u;zfPtZBemkj}Z_8YerY#!z7+R#2 zlE$|tdMX8PQ?FytLm@4o1`+IofKrIvRT7e~Y;q>-S9=5W3l{@n!iw=syF3pn-CUzc zrbMWCKM7L2mvpr=sV)Z4OoIZO(qn-9Ct4=JzyKc8|p^C*A74_3(S}?}tv`LlY$l z_gX~Ze6$sLJE=-=yi-I_@KO)r@dU23()7&T*fH-Xg&Kax4ODdli z&0DQ_9IO~J)o3Rh5x+@8*T~%XQyuBkfw135a~v9|7TU7vGhIQsoC67SXcC%eWk3}{ z7MSu~fL;QC(r^TVBBcfR233$C-rV&!bQ0uiA^dGj)k<^_>HpHg836Cb3`m*w=G?04;vys;SA4LPt|tg~iYl)nm{CGTuZ& z8AWHXbcdw5rPd9Psy0>U4wHskN{z#&K9ir30-AEaM#_W(f3_+t7?=XOFe}8;YGY{= zeI^qmk(MY6#{lOc+LV00ua+6dyu0_PJ&R>TopzM$jS3KX7;6WM$xE3#6x*qlT0q9{m`x7F(@uw3#9lPal|@WTe* zu$>x{S;DptZKuE{ca854Y;GE7}YT+J}n!pOxYLZsWc5&t0|LFwQ zB5)QL+fVZ2dW(~*85YFOkhs{`tHjL;L7{(N|2bFh7&5nLKE+@>WKi_WK?eQ8v)cdF_Iv1CRFqH%ti_uhH+oP&gWW`9s09S?szouPtu zm~a^k_%-IezeZN={TSS!dmx|LTsvBWEXE+_05VJk+f>eV;4;p@z1 zb@&Ae*<{uJpr4QZ#)?i$k(eOCzlQ(#zwT|a^t1^7?b!XW{i?|_X^Tm9<=exO9rIUJ zuGjbhfaX#2V|yVX?L(KBwU^i3T~Vy}S`1UXQocs$lEw2HS-n9B_{@DNNM&CiAa&7zR|kqKk(x@_ciw) zA9WvP%(d-mC|lP0$J?NuWOz~QHx#|h$*HSrMd6TqEJEj%1SD99UcV#aSWL!QWH&db zz+*1N5V(Lg&@KVe7oEix8IH;YO=<=EL_C9|x%=wJK;Au6CSidkNy+e6oIg{O$)H@6 z2|A}ohA}i#wB8#pWohZs?=Zm6^7*^g9=ZjBpW}j;yeEd|3PlUulcTpe?Ek%ukaxv6 z_}C8Vo<4dC(liXq$+(l-d4xE^VA{wd&%B;a`ZL@|TV08Qb?FJ_I=h7Y(V5oD~#`ea;7L=90QAm5gHf#_hs2pUI|v~ne)R%HT{Z>yUF zH_1^{I`5nI2Q+!sYQhk|5Q~@HFWodyh{^F1V^iS(WQneX>g#}?mDOk2qMePDpL~mc z$y=cVk?)$c=$xM4t^oGi4Oj3hhTo|RQO||^L&woYXVyCE!|k7{N{|t{zL(C~W2m*) zO}OCa;R>0Ft{ai1ox`|c*X?x!>&kLw**|e5awUIq+P3sq!#9+PhSwy3QpPLiMuCnH ztCRnCNrj6YeZ3r52n4tV5^+;K3d*lF?_z2e-l(nY;H;EHvi*i?JCix|`uLX;ZfRm7 zaKgJ(&3@vIs3pZL^P+$$@G{QKT*YE<)I9-s!Ef>jOw$Ynwq`3(PO+HL@I2Y>iDq=o zduEo|oI+70B2f_IIu|hyQCG!^XZ)%niLFv2;O4jj$#fpa8TfG`6R`zk8;9^caP<-~ z(kwQS^d;5TAOWa|HaYXS6$Ft2N}cT=5at=?GY52vjy zULj2YtX5m`V?cy@Fu6beFVPpP6HpZk18la*hKgVnlo|v|2oxs3$dh}1BJwVoQKU!G z-G8s#Y2q>G9^ttnv6ftJ!$>MPUmuvm3_eT-G=Y}Pt(G0I_RF27t#bwq6TDR6pPGed zHL2uE19ytPpLzb$FYy0DEj;ZCm{N}#NQBgk4O?IFLH(P$k?k<}Svu})iQW(G)D#Bs?7^+sjlYR?9|5rlss^EjkS`Ov?06gzpe8NpI zXq0rQ>~`F}`0dNk$T-QMGZ9Ci_qSTNuP}`1;-Vv+xN!z&R6lkMOf5h5Bx`-eWBKYv z!&;3yv3O%=FL>=l!?ElsPmVQBX`FOo#Z>&v4K6)Hgt+ASg+6!oZ@axZB-6zp$H$?| zZ!a#w?RJ%eg!L?l&GPX~vAX%RzGMSNjVa%6rVOrA*KR=hMrc2pZtbe9_@k z=9+_;{qGz8@7uPqIMJw)3H-chc|m6nuKRg(7| zuD2@8r9D&yHZQ!{7OG0<1tYYkvhI|!m*K`x1x6Zz`{m>=A4ZzmY7N@#IL_LldaFp^ zErn|uG1HaGko6Owr^GBW592!C@9|Q{Nm6_DJr36yhbQ}7in996X1}$`G24u8x6$|+ z#qtiGb|?6cpLWpnpdN2co|oPgrE~iPoRrs_o(es2vy6Zfuo;)&{S{X#X=uu%1Qq6{ zLiE>33gWP6sgsk-b+!ktf{Ohi{@~u-i-EUalB))10gXtdu%ML58jO;Tej>~Iz3yYz zN(o!H>$Y2q>hrli)_qR}_jHFElNl*AKh$x1gyTUkjH}ndJd^^9c2Yqq zPt)n2^BSzb!s&Wo)0H0x_J@F;P>^b?Rrl0-6^^wBf`0wj(kbwRnhg#N$D2yxXcnzKz;Wng*(kGpThW1E-h{K@(CArV>#hUmAUv*W?qv3rFb z{=VHCTk9^k@JHCR%#-FW>d?EdAELU!DuAz<72Ip zwc`79(1~ykOM5;82*%^1kRjtK2Amkn$0FQBc$1 z_(%6be`{w7yeyD~0GXzs=S@0&Hn-r4v(iH&>Eamqxw zCAL1MyED0N`OBI9Pk({aakGAt0`=hz@HaKcmCk*GMwjsq(An$8$8fhdWu>vQiAuS5 zR7+p(@OV^flyRju#mw?4UeL2;R$r00W#_!Skw9asB$FQWTR*t}e$8_DAMkK-^zu1> zjvl^_zyIpMm1WKpc{Wr;jjdQNN>4p;`S8Gf=3oEb7iVCNu@X`fSYsg3=+eh_k@9^L zJdf0`d)Sm`;W`E^%^W?~-QAJf-CY6ibFPsjC8n0BVHM;(e6{ktz{r_(k4Y>`#Rls;Go?!%3TN4jhwJo> znsH*EoTSUUyJG=pSzZIaxEhSApL|wZm?fq*c6V!YlK^6WoYBR5yVI@w zCBT#OP>G0rI&HOxc6QsLM2UypTmY;JJPQ8%*)z&?N9b9-jtHb5|3Hzdi z+NEs`X6=7x?YT<~{=&HU9D!5N&h4(Y^HTZnxA?%A`ty(j-E?d3tJ3CG)y2ittD2>+ z?tQOG<$GaOg0ibpRay6O)k)UEpPv~?*tII27r$y(!pNB~W}$zn8r{3tSC3c&h^#E_ z#avTh{U;__decE;U|*$V{^2aqBk37GRJNUIcR)ND+d4gSMYirn&q@n&iZmaUGq!=i ze(6~pT{pimu3$+6$50ayl;`~4l2`4ao_R$Tue zj<^+$&!3A~_2LW;9GdC&a$ci7HKW!GHd*uzc>qcoMcewmfjlTqfnK z)vW=<>IPe_mH%Mza50s?Wg%Gg%|rFfcK(}^i?bYG@N$+Qj`XmH*dA)JF+%3(zBM^U z+L-gc(wcpvOd-mxs1kD@iyw1E{b7a{N{KXx5(V7^ijKA6e!}lQq)~1Mwz=Hs<13Ji z?m*p;jylf_1u5~_*Pj!_c~O&wS2_6&9+5^i&OU??^zm_s9t9e_3HthG`k)|-oAzWX zFR$NoQpnsGCP+T){r>*mP(;FNtYiFrGhGdrz9_L_=>|@?U&og7_ zotkGb9oE@&Fh{U3OPpicV1seair{Zhtc|6>K*er=YeKC#d9tX6^N1YB_80^Qi{r+1 z&7U;J#i7#vZN&8mqXD)>+JMF&#?dI^As42u>=k9~L)h4G7%o;9!!Uvi$G{`+=1fYB zQfOBF&EOScF4-u~#>udHwO}=-sA}Va6~cWQFs(&p0uF;$t%Y@V9m3&FjwH`9?Feo# zdgsRx3xSvr!s~aZ^;Fhia>`=#X*G@5m%5JT_Drh|P-rh+(CoGLWH0vi;G0~Mq$_l~ zYSOl~T<7H%joY48y-^SU#?=frC16TCJI!M^Q585U)rOP_YWD0*H|6B~FSYLG7lRv=>3hl+O&irev{5pYBfjHF55Cm_ROuy=7Q|NL!1@~@E zN-k^VM3d2iQ=WP$=b;aB#@eMz_X(n@XijU{fjRv0j2HjD`Hh3U2LJaLDwTN2PZA1# zBgMU{Zijt|G)7f1Gb7{pJ51ObalFu)aal55PbWV!cFyLe_qa$U{{dgKE&8a}+8HkQ z@po8}C9%Ab4aMw%Jll#{^q7A~UpdYNOiTAd>$;PZYpXdkBn$Qd6XA}uUXu_*fL5@i zNu12au2b2lo9o%YHA*zRdoy4|EJl*v$8BMg97|pM?rL`8Yz#weC_HDfYZQ$Q@p9Zy zmBF1eG}g&NlR|yms?n3!gkx+BapNy62=^wOtx?X>ro?j1noXOmq0^8Undl=R;qWCs z{X7?3eU8K3f*;^=xCihp0%pCVLpCW_50dLWqyDqJA2AB;5UgTgM~`Z8&X3Yh*ooBI z+iNx)wS7Q-vN-Jg@?>s2_d^Z?1wF+%_|qV$If#2xbd#%<^SlfzSs`gjZNk6y-5Fj7 zxv++-M`Jk%gVBws;$BJxMyE#A1@O^XO2-3S+iJ!?^Q8sLzUqTPUl8}kLJoVEUlyI6 zPr5keeuC`Wx@L1;1{UZt?m%qHlvejhMsuE!F<_{VIzVrLpFJ*X9f)1YdqSjBsc%=_ zPD-cLCMAY^(U{8uobm?K{<2|24xU34X$nEH28mSMybwB1#`E#&X99=8Qu)E`@sO5+ zlrc!l*$gn21=cIC7y7BVF%I+yuJ<07`$~|$t_BZ{(zmd-XVq#OYRlyi$tEEj#v<$+ zY@n#cvy+K@+fcIq{gSND1;8ycAr*fns~-MX-^HA>H6Il26pC^E2kETu z>sLEp##0k&#;n8j@25pcZpzuebhg{)bcO{2wFUqFb8XQ3QKNtU`_%hkqfx&r{f57^ zv+#qO9X^L6{i8FExz+kXtK|6HTh8Ia4Fw+*G=H8-b5|`V$j;xSYaERfnQ+>8>d_8y z((C&_0ISPi-;E3&+Gzq!sS{LN<}J3#~)dhFtc;ZU6G?DU_!CFH7Iy*-E66Dy?(v5zUJ(L z7*^3Nee>TJh3Zf_5Tev0gPo3;UbdZKDGCWPrSDYb!-2WD@qoAG_2^Lfu z9<4@#`|;q3jf|ba!m>-e396T8DcvNu&(&y`!dYhz`Wlgm6cBY>>)ItxQz=K&X-6G) zuS13PZ)OZ+d1Ujv4V-8@>cdI0L#~vLkjo!vwVJ1ft}&V;_&_cv?CdyTM+$D>mdMvj za6P3X4n*tiOHofX)NgDlHX%MRCt!Z?LzzPRzqv5?c^&1gYP2ATz(?w%l_u$1FbWy% zC+>1`dbz;X9RNuEBX)2-+_n7u&Qf4*Yl%nF<|Ur~!V{DwHE&rFo$%kI`B@M9afcSQ zhiK%Dj7y7RcVFs>>rMgB2hZSC=%@dMs`{)_YLSnud)_ftkCecwO5Io0N_cK^$mrO! zj{NA+1L(5ppH?;-hE1`O(w5e8nK8Dy1o67!()GE$K^MgAx9DU<$48#J=`8)sAYJ*> z9UopD49RI|BDTlJyc^RTzO(5j$Ga6T-EbD5@B-|6T5$^zTwmj=`Hr1e>&oD)b-Lnk zThKKP^%+T=ODDcb1RNn~-a#*(Zh7r1eUquWp-WUjBmsPwe6aZK30`MpLYwe(-bPMj zBD;4gmv|)beTn?DuMZY(+Ek*Z%||d8{lTsP7|Wau8_SqL-RATL=^oQp_#!NQ#Z>duFq)SUmml3V$Rgw#_KiO^8Q2wyh%TRo_F1>3KIwtDluo%XcDOpW2w2 z!sKM&9bM+^-W|xKCf~m{{o`nSoNVS7yUR3AC7ZoVLcHJkFDFg?@^ZGrso=8jHx-`! zSKpf4v3K)FtC{TY>9&3+ufx_7j<-Mg_SkQfO$~?JE}XM;_vdee`k&Rh+l>ZQv#s;Z z(&tpBVOOXDv>g*-i84mv>A>yV6X6iZct~V2T+8MgN&UwD86qdn@EiTmjqqie|ExA;^LO0Ru zB6L8AB`Cfr-7H&3fUqF6=Nqsg9}inbWQU}vjy)k3iJJ*i>eAgHq;-Y29mHb!I6&xzlQH?}gQ(n9_6=3ka+I%fQac%c{%Ohrz0pYN1Y*UQ1Pe-alb_ z+Z|f4x>m_ZQI_1o1|!Ur%s$z!%qfl$pt8ubibnqENO`zgh!ER!SLic9fw;~8YLg#IMSl$8r7B^;{jcAy0$ot%f zl{Ca4_HuQdyTqJ|_;TwV(&t|pO~sN}6OvlY?RBQw(aytk>vQkW<(6_*=KGPeZV;G{ z1j~oh_12^9?a$#+eo0J~8h{tXSc{V6JV)pK_H@D_#Vak0;c~{BRQFVnJx>p>vl|yL zHl92`UHWsC>!QV~61aywLnL6&J+CM{Ir=#5SqFVxrJWk>Mz-sLy;WZRJyn&6V@=Ox z%aYiN)L=fcT&I_9i{^$COSG^G_<_aTpR!{8g1sxo?UCD!j`}bM>iw^;POH{?8hUurEQ;QEj0ui4P z#eaK1t%2(Aa#1Cg68&lDw0X?SE9-LMNgoHaWcxc-(s7ClUNG*NoWwF^*HD;d6z0Ls z&L6EJ2gOfn9@9gD+q*gS6qobGdET6zIx8#zqL)viE(vE@0g^WUwdI(f2=X{h3i?9? zk9`A7P6uZ#ToDo)ZK8dT4BR~-2WlsQ41v6mr*t|r9PvCVH^u3?S0 zm#5_Bf9o&T6pphU0bt$Y{KZvoK!U{jhJ_UPDn^2cd#yq?Ao$djb4)3EjyzIj{p#fR z5k=f=&tlbJ!4RQ_S#i1rTMUbFAa2obp#j?rFep;LFw2$)gQ~f}0vfu3QH#(-AV8o* z?wkx84p2B=&A|7v0H8o2W4laXRJ&p6jA}_hQY!5h{YpjWrH2GlJ2{g`I%C!v=Iy$t zae8xeZxd(8iBbHA9YwPhg_hwwgy_fjKGajLTCqHcQ5R=rDQBVxvo9WAJsWj*BXn^u zR@UzbIhn*Pr^P5M-_WL+kxnod-md#V;pMN%_bO)dUs2N25BDlpW~Viz{WHDcuWL8| zYM3TB1r8N7Hx6}|hp1U<=(`8i`IIveT+t4{pp*wh=n_0xQ61}Al=QcgTD3D~lZBEHS1fwERFS@Um3&qGr?bZ`oV_8U+>bWbT4p!K?Q4irX1B^y zS`|RO`2Pl$dR?N!kqfC=suzu>61;?ZJZhbFPG<+HQy7*PE$v04InNn^BCKXRQ;-v$ zZi^_K%bS<3=jrDx^LT5A*&NdaIdXI9H-Uz?w00M`vBHkke#E|7gm(_hzU>rg8*eBrZ)``9GdV_wnlO48AS$xYswqwjg1GtvgyP6yuiTY zohsZ{2OGomdH|R*=HN9GQVQfN2D>6&L{}Fam{>HR%$0^!ffwQm!;YrCNL{KS-kEws zLLWM|&5KV;FzA7jO5~R931F#3U3)OlNR56~ER81hpswH!P3T`C9!_v?dAauTBzAw* zT3Ao@s_&n6AOIKGQHsqVzvPW|Ux}FXeIu476y;n1N1Xw-rTgA1Z$7u_1ovCRN3_@3 z#eCO^NA}k=#xA@qyv&8}r$eGXn3lzVrfFY9fkkmSV>YeJ?~V;@UKwg{b~K05|1q(s zl;AQ;iZ6qg&L35-BNZ#uK?lt5e8EF{F41u?AO>x^XR^c>P}x_a1&e(ue`#pSQv%md}a}-jAh`930!UIQPEr z#UFEuIN3g1q|GO0q7Gq|W?Dr;FllFQT{f9Ln`}JWFa~UOP#ntNuxqk*Mwzj?)pmk+ z!scttA#+IR&IDMA)|zPAq&2ROPUz3StodiCJY9=vW6N*;v*xGoLQPr_Iu5mr3r&R} zh4@?J{_(B1ek`*7O^AVx7LK>D&l+s21rxS^{ydjaasRE{l$6}J?i;cFD)afKIxv2y z9Lyc?d1HMQEjV?yA{uOcvVhEJ{9z+VuQ+>3Kv(5Ae(sl$^y5Ejb=(C%47zK(ztmE~ zuWaHEV}kaxyh09&`H*SGxe}6WINxJB)d7&qNk zx(r?X)@5#V0C@lhSRkRzIc6xj^$>g`hQUujm#8OivNkdozMy?{{Iu$efq1hVHxN`7 z`nFKfNOGYE4~YZiX-4w$C`8%2n-$y7F~Bhw;P!u@J=dl|O^d zVQYJW;K3jd53s+^6y-|Pi*?O*cv`pt&Ugl$dS&dW&vi#|fJI8`{U1_wVJOk+%3)Hi z3F=CwLlJ-g^4Yc5<)n(H_{02DCQ~&U)ERn?c}uVjfGEk9q)6mP6V7vns#l7{k6+{& zZAlDPv(#gfYu9bkU?0IeLG`8x9ymRL&ei8PSk|3im4q_A>lT#A-jfskqJDfV<2HOA z$_s?szYkwryg20h?LMDv=<+@d;J9v04i5X+YwS4EmrNqDL>abW0KvRH@@Xe6oqj|z z<4EdpVN0R<(q>C#3FWMbDc4=h4W`XFIU+NCp)q5D|EFzqj3d08ij8gQf#)!a`)?kq z1Y!htmz67`x44-Ftq@_+4b_h=CCU>X#ohOIR$R>cb4Q#O0mfl(hI~??^_s%7QYLB;E?e=xgv?QieMHKz!^~EAW zd$xmuzy`ud44V*A1PA}PKHq**XKUztd7J!AXP!E<-Ld7ez6P7_rWVR@{o`&4_7V=R zhED=sq^N?Q6rkY-6_8RarxX;SND7d`23>@AHx)HLy^X|18CG{EQakO^leQt)iQdbr z3ZMhImGJ4g_3uZ2PEj9q`@-yB+3TOJza<}j!xZF$?|dXhdcBd->}5d%^L)wj2tLpt{s9}U+}!id-ar9HTc zW=G2X)|fpj8`2eux52qP;xmkf(dQfXFA#Vvyy#+wb9dz;B;*|X1p>|sc9++*$au8w z1v~y91cX2FrKQ>A(gJ%*eYw$O1bmgE0IH_ifH5X+TQIM*pmfI2zHs%+p6TVW(J@%b zUk@^qUwqTXLzPZ6Sgi)pq_FaB-+b|qKKM#9W{-|7pY90_xj z0)ZC?-fm@SXKg&%x^jg3;>c875ZVFI_4*_mln_rb8Ej;-&4Q2%?oucj>jSDVo+H~l z0$!JKg;F7RzX6UwQ{;iLd)xu~J^BFEPK}w~GmTMEI}#QOW2yto7ROWelekF)5AE#K zV4k)v4F(joU;Sjya)mtC)n|rhM+;whZW?pTCqNf-N7x8`*2SFo$>2{P)i=|aV&SuK zRtIf-6?+OhU#jjDW6u^U?3fFjWw@U@P41E2>=0wPHnz=sq+Z+STz9smxl=0bY;HLl zRkyLM`XBG&&VpBNS+rk0$a`UGrMft4sIj0em$*V{@$E_~?-_w?Ft|iQO`T_B@iiD4L4W z$ixK4x#9aXBX=%ZgLs;XfB?Cs3sW_a969K3}0z@ zBVh$i8cz#im*zC&3(!vr!sin7E~Zu7VQOO;Uw<#H>zZg>)caq- zjI&KC!mKVyan`@y4Y|{rV60>7tRzsGi z^KznJC}Q8I@BsFywAkW-K;2;0-$1Gnlw?R-&0l|z^0AcUH(w-{F4PKMTzDCJ=xgkm zAMPx+Sqtn5>&)`zS7_dxQD@+kC&U_wl2$BH$mwBj<1uxcvjSX<94!;?Y3GouuNv-v z0DUK1ERVVr%UR;^0J^bRppEAM4rUxK(1p1b;eDk4+XMF)_E9E5rtW|U2l<$EgZsm~ zUMu|>B(v+q`4?q_M>TH@>R~J2>w$f`Iu_X?WKH1#OQoF@Ek^4s1K(TY@ctAa-O$dN zYr&~`Ab>s|H=`U~=qc0<>#r%AlwWnkq!Pv&f#R8E3~2x`#%i9Qp@r<^BPlYTk}z01 ze$rB}L)u2tQnE|h`f@8dMhKQ3c;6!^B7mF&>Oo%B)OcK8?Y+{!85b^LEHkb*A5`}| ziu8$+dBJ)~0_&IN8nBtWM=u3QV3dvkL*pVogF1=gm2r`A$q$TjVK*-0s=Ttbqw;{f zA(W6h8F+pigCJ)=w?bXOQO-Es$RTCX0EuRgMK-z?s#PTq@TvNN)SMK%JVbouQx8X1 zgXaMp0Ip?3-YjmSow)4L69IZGbgb|`Q9sC_#zGGiMxy0I8xZKNT--P9?- zA;E6LsYdz{Zo;T2T=$mC#`UDkEClC zD0OpJ-ak5Gj-xEq=QZYyiuSO z@M=reeuL6nIZqL=WPcV~zsKl8gy`dDevq2*4okxc+V%J7+Do&_N#dmNYJJO-%hgrJ zADT|hP{9@kcley6GnicyiJP01jgW3IIN|0C<(J*#MwgIfbI|piU~|4u?I~j4*&4T7 zyx^Ka4|rjr^Ul|jU$fu*{;u|9``9P7cfY+^uU|YhsfTw$G8^s5piH`9Bq9=KE}?M< z#Wf<=#VqQA2wqD*RzlPvPUHfg6aRk->G((g9`cF$AO4=7wCz3eZd;faO0WOMo@rv3 zexif)fz~6ao4giQQ4bPr6~^6#%nILOqFDQJoFVy90&~E@xC2c7qi_SqL4Aa5QsnW& z*KoFC05wOsB95DylC17ewu3nHbm5ZCIoI~YSs0?o%KE6DL4a@Ay)N@HXL_3J7 z@jRzU%Q0`c{t0vNt^069Ed*)uz_}6~Tdc>lJ#@-vvYy}kB7T5gh|w#Q`608MwmUre zIU!GI&&%oq*5liDwp=GQ{T@ETLTn4UqRB^$^USQn&CXNn7v|4}6?=NBK%e~`dfpQe z6~j8FzYU$QlxV7Uqi9P$O_jJh;!?bpFeQv7KzgArZeRi4{!b$4Om6nHtUF`8=QWjLA9G(}c41k2pWnZZ{T8S+KyZlx<~PvqgoczhCFC%@ ztNuyXjD@$F;8^^ajlgDA9h3&zRQkTu0~4pyA2d@zIC~K2Rfv(GybYLnpVN1$7_dxY&a{{<=jUTm+gF+eY9D-joclxG^(cU6?1w&m`2< z&Z^SxbCpUmLQI#H^@;Zp?aU$7*i|Ns%;YgC)r(gtv@<dfsFB*%;YiXKENZPG)wTy~ZjaIqoaBqj)$g2#W5+ybImaqF z={Xf(kS?eT)Pv-pcwIpfIYT|0cha1-+VX+-M)r-s=PFo>3+B!x?j)1tT_}i+7dh6X zQooVK9zQZt9cdlZ24(_juj%iwO844>4=qqflTpQ2cqS@Pi;+5^<{sTc`r4wblr~K4KV~Pi;<0{v7?EL4&|-}`H3^sy0C1DO?NDrjX=o0>`zs?u z%yM^mV)hv&&tX@>PblJgIbjL#DLam*(;=X^ZZJi6}nF)$ft8q#H`^=qGcu@6? z*=$sc4aMe<=yMr%VwGzi%Y5d6#e8=qw|Fyn067~jK_ALJw(w^9n1QinzIYcZ*qF$Q zNoA$13C56;r@_WZdCC?(;vd<+tdBwh4TkRYc@yt4W{7(ziI5E*U&#^!8fr{ zCDpZC^OFiP3!)Y_1^VaPv!`s8@BY{b>iO8sxyf4-mu7d`D@TH=%Y`|(&nYf+V4_*^L$zDkbn$U33v-fZFZ;Ob>b{2 z_t)fgLh-*bzlb65{!WT;1UpFKENc$(muotc{&fE>#o5i{5dFRN6F8g`6ci#?3rOce zd|wryKT~I=q4UIexKmr=tc2iKLGyk!ka5ES2s#*_qS=n9RSg7YNDh3*Nh zk_joQon(@ZaaukLjC>T{5M1Ui3vQ6qi8q@zi#sYtsZlUscTkdPhksp`(kGi0GsA&a zh!Ew|`=VB@^|F7I|I827O4@ZDl)}ONMRSeMcIiXwCN--f*5ZAd5NTWf3j>P6T+|gHX)VhqWZ8w~9_Mvh9ZK13+)VNNFtBaM@95QI#l z;y(-;{tK^i@zX`k)%l!y2ds zHy424A9NITI6lA2XfYozsB>e>0Di0e+p%jbipWE>DSWmq(_05Cci%8=BJQx2n| zU?5@4-fCjG$1ki;^X3js{eL@OdF3HQ;0u6p$T>^sZ(UV_wC8Iz{{^HsW!tG;FwhghtYTAtK!Ax{CuE~2fKXZg&h>f@rC_J z@w%)xE~CHIGwW3;$y~}fI~vD4bGGZ+o%;LFYLerg;cDOPOE^k7cRO4FhmnMZkr@=x z$*^|De9S>ZQ3DD1WmRs#En+Z+(F8h)9PNbP&4C`Ul1MEfR19A()Ho2$U7HiDuo{Np zs@0IgV7ui(NSph^p|GA{!m3Kpj@6)BBk&)X=3+TgVKg|QPw-|jnU3w?*w^Lfc(RBr zGX*$2Y!Oi`gpWu)D~CoWzULYc9sk*oZ27*hC?V<0y!Gdy(p*ymtOuEPZ~YMWu1!)J zp66d-fKI!#+Z>8V0VeDHcMge^kr}bl{$L1N6w+`puVwFB`5$)nhtwYb=gLJUc-_Hl z{sD;FQ!w5u4A(2if}QBnvBzVMmNK!+lH%rO zzhaN{k7n$qRMpydaIs6(=BNx*zaBE-H%kveqHxU<#nV(iXLjTQ07~SZ{gvv+$V6&z zwCP*ne9*y9SpFU?mYXBrAxT^v3;wx$8mlZ^KU<0qb-QRE_kym~O>*)Kz!kWixmhSX z7mvl1!NR@f@=gJOIp)8@bRUfgdP4m#@2TXf zelNdtzHw(7(eiLen5723;@_f7wZvfjk4M9Ig5XXUHZf6?uLD`#TTv8F`yGvwwa3$^ z+>54yyzhK5U7HobS*W7t4c;&!f%=(S4{M_DdY3WWXR5aoZ!Q}0qpB{K4u_G4uz&aB z?JC|*U1|eAKq#^w1|uJ#<>*{MEAfHatKT{*3%89s6v{fXRtF%qkXjPHx;{b~3k;!EHhZsqryj>T6*K$)K~uKXjRGL-U}UvPi=pfr>Va zQOpv+vizktIX_%wKqK3pZ}3<|hF+oBC?DejyRH>kz&P2i*B)o6jlzBvoFxK2~eNq__Raf(mE#4~4;^>Rqqajgf*r4J)1B(&_AlRUu)HenZ86NWcQ=_rS=?YtfvR5Eqf2{B)w+wa z?OeL^c#71*7Pk1t{8FS9=op74xWp<0SSK>cc`Z!k70a{A0@$}9tg#@{A3<;uSHoik zx+Qy*Z%b$#^0JD;5EYa5-CVH+)#6|mAq*%VGE@ccS0fm?+dxvN?fDYel%CA$MPF9} z5}b=?GM1)F_s6HoMiAeR!aKr3F4o0ln|#xfxj5jcPo+^Tt*`O-jQi=Cokf{DaZsE! z5gF2w;S9F>E|oB{5`q0bUj}Wtfgpkaet}IC_vaMggjNh4XIUyqb|{rr~T#&jCbKncb`OD`i)X-u$D$rHQPf3#Ft z1Cvud7??4uApz;9?ruOzM~_+dW89V1&;LE0fX9SK@J{4@f72J!XmX6TYmP+&m03;A zg6H1H)-@49A9nM>1494k0eQO8c6yBZJxCLF<-gi*V^|Ec8obkQV<$eMjFJLz`*dn?u46TY4cRlV#m9R`@ z%*Q}JyT#`tJf0MXN*c+usD&8qhmczxz5+3BH~P-#6(&wV8O;4C=1y+T`cDNA7KA5# zN}B52!B&EGckOhncTGxpn02wH))Ljs1xYI&Q-PB0eb2*BX|W8)s`Nu>t@TKnP$d|a za&u)62rK9SZ2XFEKMX>H7z!!k12wdc5&~n&uvGD`P!2T0(V*4}^7S6l9D-#~Uyx|X zWa`WGnPw88e&!WrejJzU7?ZF(IfDF3?`C1jwrm9%9IDp$^&leHs43iyg}12f5uS@n zNJ-@ka+BQ?WB3rZ=n0g>j`)DTe@KnS+gz2o+CF=6oG28a@ zDYqX>_?wDdZ4w_ifyvEAH(vS7O42y~~%eLeAlZiX}wGVOqH) z{`I0+XfiiTS8G=P@JNp#%hm5{ZZ`HYI%?MHF1DtLROBMLEC_VzUJUnG9rAZgy6z{D zs>@NO5$@}{+MI2gL0DviJeQ?hE&nmHmD0m(VLJh3p7{jNwU+{BR>qxId7syTzv+PM zjOAGY#(T|XdG5GZV|rp&_+|Krh2gvK1F3UeVyUw1xV%RrDV3TqyE|Gy+r5%BlA*aS zZar~;y{IY*AT6yvDVtf}wkwfY+lB5T&gx9-BqImoW&a)l0zjsC(Cf2h`!{U4@lVxl zsatI&g6()4uF+SE{>l^sD^8r?g55Z`F3h2J$R>}h&mMpN2Tm#?R_PFf=bw$~hp_l0 z-#;5Q`bNG4-|u?KME4U)(N&Y|?0lqBEIYA=LnFi7z4un_o+HRii3C;A-;;^DA0O%b zE*~E;RGcIauqcl;{WL-_l4DoSnnQgE)J-ALIRjMfOJ}GV;k{XAB+NCbSLfiryty zu`ouMJp4T*GllR0#Jl5o{uUAnPJ8~fJV>rE|CskYU6?&rx94mlx)n$ZE~Lmvb+9`f ziW_6nwIwps-`+^v55kZ9k% zTVzJb^%*!xPW@K?mC45-V!PR`+s*+rzOrvH75X+jf5L88^(0k^>cc-1PYiCv1&4p` zE49^`=|yS#ZO+h(?uJo3Wj^NkVlhN8cXG z6bWTaI&$f-RwnkPk>C{?Y=Ss|^fXnjjEv7oQTjuu$fPq)7!@qk%iPV)Il}M2cf@u} zGLXWm_F^G!NXo1a6C!$Ecl@2QAc1?XlDRsyXH<0JuEAd>o(l~}?T zqdy{$sVV%Y6SJ(g?WmmKNbPF~<{r1_-j z9Y?{_-8MOYvxqywB>U&Vh56YdODSkw30I;RN z{KB8zLWHES-lgWGkaND_e>7CWbxKR!&{j#_#nhFs(G!R#;*nX=ndNbwtHDP}JpSDX z0ZSyLCJ@>K&PK(Wl81U*S&~OMvEcCVTHAbi0MU2i6w8tr!NUIJ(i}NrO7*^M&Jrs8 z`r)Cwu*I(V{J=1=az7xp`dI*UNFMnSOn&1s%&bWspsh(A4$VNVDgBOEJ5*h$IH7EL zQ@`MV(2a|}I)hHP*Clh|aSvVD0rkbE&cMMSkF@wwxR@57j3il-&iHcp=xU!f3%+Pk z!(3KsuS!|2SoJKd7^>K_UHdr)45rWg16RR5cM%(n{>_VkC;jQh9sH$Yyi?6--MrVw7H$OmR* zl0ojBS~}g7G`do(DKmP2+0!C3x?nf?b9N|<>)AOkr!|6#2NR`N>>+ z(hko+-z&#k57tZCCjS5gRu#gN1du8xQga^VhVetTplLw#T^wAE6P2!Bp|E)JHbpPdp}48LlWH&i4-{Jl zk82LCTw(wDfk@1tyLo**jN0oPGbEkqdzw_z!dNQkIHYWwH5gScnwF-8ens-3vy@63 zJW~Q$mY*IV6!f{8tRRTif4pNZZf$^=yAAwH!O z&7z2T2o=(?1R0kC?GoVQIhA)Fx4@lV6$Xl*))Ab-o$lsC95Z*5u%2;p!U~AkCoBNf z_2A`t!re7w|06j8U-g|oUE58kx~kHjR;P<{sTx~t_fIT{8Fzqg8bLotrZ`)&N~4fF z`m81+Nmr2Ey-3FZaFcPEfte>H9&1KpzubvLDch8y2rF4iNN9pzJqu;t)(m*g+Cm0_ zNhXj`H744)he@)9Ln_*X!@NRoT&;xwxE0ewftn@l#>qCIFk)-_P-)f_LFqNp3^ho= zKzKYh5+6=r{vuG>T4I$wUQJ3I2OKvLx=;(ylG*55wMwM-$e=c~m__;3YI%dJwSCH; zRTnRUh}Inwb_rgVP`x5#x#;m3;PamsRF|-loM9VX*65@py6|^9U&zQB+sY7YYsjIm zzb_;Z&GFS->Eb{W5e>If&j_Bw^`sa%v2+h0Si%oP5(U=km=MLXru4UIbo3b12NWX_ zk-*5o|7ln9q6_!Ad{LhvqbO>uh*f>?XhXf3!C9*mXK6hb8G z9h%hnq33}SI}_+wWPrM)%ulId%NI6DEa4Aia7mn7!SJM~yl=g$8WT;)yNn+N8g3!c zHp`@08mvP7xh+NoEsK>Q9tC7eGsl;z0BTgaTc~xGBZLpzi=fkuuo$7mg0Ivd%_bV! z0zC>M5et~VEv{F)CoEEns5uUr74(%^OC!-U0QXk0xiluHZ^$kHjO(psy-OQ;6dZ|a zqe^vm%NbQ0g=!!=1i=mYRzT*|Dp}pp4g|JJQh%P>)9)$+@+%h3u>*%|njV>>vSK z;jA<#dfJDX%iQFnv6~Ec%6V9C-*mepV$sdotBj%fWbzz%u-1jDI{{ILHQ@ztey zW-%7AB(EfL+pSjUkonkz*xLq4C1P2_ zt|#}ZB>_~V_}pzEgc-nuY^&oS>?=fIQ!r(kFE@@ieJk;m9m$^d#_yhWUFe}@*xVm|z`f)Jvi0|Lisr?DLGG&!|-xt)L) zV36uhIRgMFbiI;66Z1lnX$3N;#b9NvlG~itQ$r8`BSgzZ*=TH=vytA4lGYdpYIM?V zNg0YZjLh>+8xtl9CUL&+cJ=u{065=VmSYaHh&Ty(|uSNqx*}T}`X}$LGQ? zSdQ%EvP#2)!YrsIF-TK0dL!LEdXj2ok)mnoHRSHLMs}uB0b*y#{Z_FcJf#YJzmIVY zxd*S%0uBPpQxPn$5pKBAjyVjO12{t* zRl->~Vkz&&zeY$Eabgk_%KaZM-*zFz>3}XZ#In)nhd>vH?@l9h9x*}T2i^WWw>bzY zB=)J-fbD;;1Z-Sy`C+A5Sz-thv>=wnkkU!_!)1m;m5bZ5+(}DiMRM7KnL5jFLK!^4 zlY_6@7a0vBDl+ZQfGxba6464%K&#QO09NMJDJ1=TX75}{0Ka3hR+HlTs(6T#48-{JigNfR7h9;ylr|6#(^0cfd#o$y&+ z+lhFs36TZK_95h-9C*hI-OAj7PGDvCNJ!dfWxtZZ>30rZ-Gq?c{T-WG5zwwJ;S+_4 z-y$MFXLdB06>NfZ>t$Dp`2T=OeH4h|HeAXa8B{vB=MT%L3LDf+U!tkanicPH=1mpc zgmvxhyPosX!0HwmBg%pK1t~^%KEbWBUF{(MBEe-ZpBt&#uI{j} zS0z|z_$Acna?o}-Q@Edywr|r=2FH0N$&nw^i3`7K|JWtuUN-qJ665h-JsUvPut^&0 zU_G|y-$&p&7=!p|b)yv|kaZ$Kkb|W{il;v@d+|hC`eIesP~q>is?^Qs5@rL3_eUUN z3x^GweL>kP2@aEthl83wVpLZ?4!Uf9P^jZ=1)D871VIT7y6Oog?h2~T3of6GviA)( zT&3$1+dza+aQd{*05Fu`VZGu*kJR<_secv|@KVNM=HHOfDcVUOb~sxwim8f}&8jP=dsE<(v2T8Yym;!1~+WX1Q6 z5QVHF4IRSisZGiiX8$Ztsu)aRiQ%jb*#&r)7UsEjLA3iunQ`S~3>CKa^#XliwaC`r zE;^e_E&j;Lo;9uooC*nlkA1oUR87$pt&;%nD^KVFO4)f@2Fb7XGKPSCRt6g2ElDWR zJQ^fY&@H==;5^R^BatP>lair-1uo7D5wq2}rP#qWpmo)7Ay@IB{7}RBnl)t}c8G=M zYvN97I;zr6YCH^+R&$LlgkU6APS+3=;t?k5F_>w4E(z%9@ipv~0hB*1+MA!*OLDrU zm#CcFE9wjaCAjm_WN&WjpSSiroBu_DvEnbaqFvFi<%Xf#s!3`pm42l%?|4XGI9Ybu zaoFEUC&$Vp--<3lb}6eCC)cl7Gn7L=FFq@o31t(n^VVT4H%7WJ$t=frwLC>-n%FTs zr_iO{y@$0!Umjm`HRtJax-L^|lK_ZV!@j$Ng(0ar=cP7}e<$y)OdLiHV@+_5oE&K1 zLP)e4H#-*}HA(ebwzq-vNx|Vg5o#8G=eG!a_R& zTTnDzO8YIWvhe?yZ4JZyYL^|0{+kO-|cm3THp7f z{g9&auw>)Vrt0t*!V;>=GHlXPF57-$=v#ZZSDfHMbTo`Ir)|00nY*q$grcQ)Y@r$(z34V$FzbC_gBRjKo zf~?BE|Go1iI0!Sx&IlOgCwx7evifO+nFRRG9xLX3)oL0%?mP{`{3}zY{Z*mSedgfRriQ;m6r!mFDDnBa zjf<@*y_f208D2|jQ2#E*+iU3_Tx5B{ZW~9kEz*gt!`Clne*4o=O_1hekA$ow_3Qm# zyIHMTk_|=IoKw2NMD|;(e)J3nq*i(WULEjakn?iga29SI#k<=p2*sbG>ZOP*<*Z^C zPr)yxc%|u-&3*~pC%OA61ld)bxbFgs?*>ZOJ0{aibh9F^*S@2$^oP(qiXv3#Djs_+ zs@O6js2XiDXw9=AL_L@^xlbXeNw*uat?b(3ceo@)Q@{M99F_1%(HuV&JmY$a5R^3(jKxgP`jV==w6F8w>@1mMGWRE9mwl;d3pacGN1L`Mzz>`fDdM-FEk-3?6qPy^meX~=W_h1D0|K&!W% zmJVe@(m=NQ;eR{<_XCD!LbiGq?Z2zOfSOU+*zdt~B!7utre#E;_q8ZOswR8b96?)C zMR(5>w1dLQHsfN_%r%O5CUutLNV6qFH=}TPlG0OuSf6Rex1jI7>DIV(n!fO63qetd z&`*Ov*Q+|1h08-qMefbSTt`p4VFL0iNAtxlN1LtC*`6EmkV6d)3q@-ifUg6f+izm& z=JUA;k#^jA-ce^1Xn@nb=@~k-YLS6^0@JmCR%7vCks*@UYe9wzf?eW|7AabrFe_bO znJj&Tz!Wb)HBhaoQ+rBt*st%s(q>ezz^%M0vx$Lj zBM4bWWiuYk<#_3b&Y6}b3YJue{xAB2UqXBEsyHRIQzHm|($x z<-|+tfxF+@S?(08(==r~r8*F1Wg+0N>|Tv|)$)BmRVj}KxJb%|t7_$iXJ3Nw{V1jH z0=$!^F)(K>7A{;v4!U<*IJ!npokbT=1}tZS&9U<)!m*OJV#0oUUdvr4Xd84=e{sG1 z1N=HW;ijwSJLMq@}IX(WDlf9=>kYWtSsnLFY3;f2L{7AtHcxTl<nMtg<2-en^m|Sv5bXTBrJQT9gEk5!9woO_OVM%4$DOcm(WX}4XwiG94Z%|}a zURAGlgO|RcXg!BEkGtbB+jh;@BQzzZFJ1}(nEaG_Gh zkR)aaWxJ>w8>Q>*vs5tpQHKQ6C2*t0ECRy%L|voe4tzbauC*5xYDHra3`&tzxn-%% z6tESLAB010*1AF;a00iz31gA*mkbeP(wG2p0eR+x(dSMrA$=Y#NUtUdcTo<6_-7x%+d664FznBi;!bc%YN7y7iRF{u5(7>g=*$lq*4G- zp*bVTLbbK9I65uK(`eIzvu?b)Q~Cuh4~E;!D+f(Xc~s1)h%Y&#qzXTE#8*j%H^-JX zkc_y&18X!v$`LAshpy+EBf=%IG|elU4D*o+7H^W5W%t?FfOsi!#D$EXWoZYW?Jx}= zVDW&+fsdw3-_8cH?8iL2;SC>tZ43M9j>!UhQ$HEBR&`sMe1u%KNk(>uI%P35j)w|U z^UW2+PQ6l*3{MWnhcnAh^1c)*T%DsaQhbrjUJ*YrTVmM?LC#E_o<+|fop-K%50uyj z#X_3`G6|jDc0xLEx{tfT>uL>u_3^nW^(^+mdsw5v8?nZbHq1-is5C7JT(E(IGUm(r z=tU!~l_cFU6TTnlc@@%x`Bw>aau-MHEyfwdh#;eo{9cIICMHe9_NkDKQJN4eT*JJj zmBYdTT2>f_bow%U!aH8Qm144WV5pPBqD^=dzfo(ipqdrfQjZ{mI3eliutJF&HKc)F z$hH0qPOT6%7xh@}E>BBa5)9Jo4Wi@yYY$b)>UB=0ZE19LON&iv7AljWC;LVel^e$N zC?03dO22w-71k_0-XTLwUVzQ?9GPucZuJcFg5BME1;`gurM$}-$hd|4XS`#Eq_&Nw z?p~BZrJKK;UxyH1L#U+eX*(CmMzS=h!Sv51ukHdHd~6iR;FHr@;AA?XS~-*{5hykq z))@&+IeMH;%69M}_2W0BSujXpPbRUV$A0lXEzS9FF?c?4lNn9WM1?jtXhQu8S$$h@{Zmh}+Fjl;7&5OF-^dF58H*4CL~BDdx}@HEeL;s(Ms<)n*0mN5y5maqA<{>{M7~@}UkLmA zOkZGG>X0k$@u|jk0uwv1Kl^q*rmN6i+-R)}t>MGsOR55EDjPYl(cyKq4fB? z_x-sa=`#2jAnhOKRgR@KAA?CYz64-^XL5u)4K1 zJoTo_Y`n&IHw&$%l?uUDB)X<5SyYb4HN~6JVobQXv9AxU+3d0fTcG_84jAMaD=|90 z2ZBLnJL}lLZ0NR@Xutw3oCGMP7u>#@o*@;gwer>r-am>IvGcfEm?UYE094lFq0&9T z>}sMnXYL#f#CC;Ms`;oZ9-ta4L}a3%i${tL$t}J6szx;>ekDJ>$}eU$zlO13HC} zBAa#(l4Wa3z?fk1TG!F3ev$3=KjLes=FaeHKg)*3BhLMmC4s%kk>$|x?Mxi16`6#e z7<7`cX5&)%F`C^dzom7tE66!*^w%^kiA_gqGuDeg2Q6=n+sq5`UTT3Aqi5V@~RRf3i9++M864^40ri{|g5zESJ+yL0gsZN%}pr>Lkk~!x}sPjNv7oCZ-Cb{Hp zmo6YFJ`}Aj5g3xiGx)o5)d6QdzWg@Kxg4}Lz@wh#+6UD*7CWzPRD|25ou)AWc1Yl| z-RXd<{YYiH($mAE`FN(IvGTr83!6?RGUVmika2G9wB(xA`Va`7Twk3cHQdra^&65p zi^J_a5!U*&n*rzqcVZG38&R7(&XV_zqI#)&W*dH}edL4>@ zn)iLO$j258w$?AP^Ku{#@_2bENGlQWIN1@vm*B_4@>{kHwTZ_bT$kK`0~Ldq{IDuV zL+$RFBTH3KA9aJ&GzzohX$bvy9^j@0w3sHy^lW4ub>&O`Z8~IriJ>m%w5vPvl*bG< zKVd!RKSNK|TU9}#-k9dC=|5yLMC>(`^;#LNhOm(1+^S6!H7BsoB|Q4jzB1@2^6SYn zI1k5Q**%qiFS-wle#8TcqZajM_VZ-NfIc9^(=~Oq)fBgPi3>8o{&1VJrEms3xQKCM zE2k}>R(}CKk4K-#q${^J8X%rD@@~ta0bY7W2p7ORm2MZuUdo0Fg=vb?&EbuTsW0Qu z!7QNf?&v{IU!wn$`!nzA8I|fTQPp8^Y^CLmW-dfRJHb4jqG9_F6_g^Tq6}?j(T7K7 z{EeoF343!A$78af{er56&$!>yp}~F%L9->N9LmHnr6==!ko^1e8P(IAGC{@kXZy=y z9|TqBO~Abh(EcDMnW@360(((m^6ZPbh3Cr10KGv4OM zy-bfeBo-fohv?vfW*)BEEgrw@Ad-g($IwT1iVW4OFs!dyqnk#RYDkx%;}~P*hBtdV z)kz{8H1LMq7ws0XS#cNeb3Iog>nspR;P_{~AMcTN-fTuzs@h;owbNW zVtgeuAzyKEGXb9?N#9jaad>fW7OVRNbbzt&urPWl3c=;?8P$g&8&-?i3-8VjK551k zp9d#!8Qi?q61*YXI?uv#n0)AMFXqO{)t#dJ=&SqBoNiZ2X>8Ulbl1mGwjI>tMg{YB z)z@K7BSR}XA)l(NvWR34N&~^WZmzQYXz46vLyuBE$Qv<}j?B}>klXXH-^J45(z6rN z-#>SD7(Ts0pvleH|8TFEbBRo`1h|jL8Ra%xtcAn%#**u61BV8kJh0+GHr{9>}T)wl`iOae17xoF-E%X-TSrmv`lqS#Nk+ zF#f_4y>L-p4P2tAS)4`+A2vQBMmyh!jnip-Y|w{yfVw1r9DYX`uqGAy)t01n+1_6e z4QaH8^Bhos;`j^IzUX08uUYB?U?puHiZPuqmg31@2}UWM@1{-WNi8NSx;$J2pXq(0 zLi$@gl^;ybqRC?1Yx5Cp9sG9IVlEcqQb>S|&#gov1-jz3jOY~%-T>GTF#|l0Y3b6x{C_)K_Xu ziO9o}_{QllZS))btIi&uBYXrwt+S?HH6m@;Qldt5#oKT+AH7G47d|uPgo}Of3Pkq{VIIWBH5o#bFSz%@?*SbSF zs!;r_ir}93YCcCx=pwFT5-h04+b*rZ|8C*cC zp~36Aplmg+oVEt45p|G^7GmTHiA`qA=~9@*X@lz^jP)NLvAqKaz2fW{$CYLi9ZN!(GaEGCg$ zr-FmQriByZ*$`60hOjK|B}s*Z*=LasH_^RzbD^Tl@R0$^Wl9af%?ZknqK{-$f& zAr4>@2N>b~fjB3g=-2d5@`Oz}gtdn1y3WQmp`Jp|Cbl}fCOEB=nx@y1BtBHj=fXmg zd}v-?s!4=E001E#l&AI|mQ0@==ZNI}nu4)myhfsFG$KD?IXOJT#tM7Ba0T3d*YpRU^6w^^GIDZ!&V6MHPq$D?3hZBi=Pq!S9DvkIvV7%eetT=U5!xH z&dj%0=785P)CJjN>}sZ%l-itOu%v#ji2;nYgny_hS)~*J6*Vn>gKVj>SzV&>CiuLn ztWt4nq5z;Sj&EK``(xI2S$LvK_7dF~_%+Q{;br);Mn{cB!Pnli37kL1Xi^u(@k00& zL#4(L&E`XY(zB~GIRWVQxk_R$Cz{#l^gl1=qKGC-R60-z&zo;1(RIxn6ds9^8A4U z@Z`e1IUMQ40^JljO5<5Dgd#UQjnv;?(o6%FlLCs5uOvDxR|4?={_QhsAf5vCZ%51d zxRV6zfCxVPV!dT3mEHt4d$zv1|K}5M62a!KV5#>Zt)|ww=eX0pZ{grm3t?L z*FtN1$ru!&F6gDU7|4%;Nmm$WH?ZI;kdNN+E8c)W)K4Dj2zvQn6}{*i9wxSZVLZ>M z0@W=BzNW%o!&qG4+SQabYx68FudFTA)5xqbthV&FW!%v-Q2eB&Lp%^FIGJgqfG`wU z*9yVxeL$Wq*7)Hp%3&H_`jhyw`GbYg-b%R&L!T^agorPC&0-N(qsni+CqLvjUwGp* zM(t)dWs7d&z0BIzD~eFoDnq9FA4)zz6t#(s@l?E#S9VGvv8YK(^?Qv+(vekskrfvJ zii&N5tMIKX7>GzFf4FVr*zTbp)piC7(36K*u;sW5=A z3Wr!W`rBiPy?_$AmHP_Uc62;jzxBRmEeXai7?i!vTBO=;_oi(fU4y}k_n705YWMpB zE0Tds-@Lv^*bfDEU?Sfa#Ko-EGibSI5)7xQ*GJts!uH0u5hN9z*nfc~2a>TP-Yvby1AtTxzf}&r zY>k$d!;r)-KC!5rlZ?^uCt2e9XW*J#sh#hX=AaZ`9ng-^-TO6VvWn7NYR~CyLH3Ty zLBtcu`Q~IUhxfwVoYR5z@WD!)f$L&7|LjGKzp=5l@%qu!GSlU44|y0Mt+m_yy}Wxv zLN>F+E(U)wuBS?Ptf|i}jg5&o9sxoiV^rNAPJs5?B;cpWPiTww;wN{u1fwNKoFTn7 z7odvX!JwSj1~z8q!+;^Tr)3NokC(IDS4Xf&3z zD3Ur_9`^-+6767={!*BJ4cm21FN+T!h&O+-t^X3)F(L-*W7Z*e9^HF&w|p(vp> z2lQRa1g~fmt#e2bFS?lXhnF&rX7b?e=M)&*qOCrb%FvuqrPPfa&RCoLy*YH!j*Yi2 z*b`E{B-hCXId<{|Tecp%D3!?56pMVLGarVe+hQb}&&I7iFpkx|Co>-?_K>yAt02_E zXn7o>U_}~l)81vJU6tP!vzbDsTaEBxS&z#+khdwP>;PZWiQyhhq8A*{My8b~Xye8Pn2Q5@a3;dD*463hBdg z0VOqW%#rzKAg>heVzYxOc5Cnc9{PO{g$$$sJE|hX>i~D_$wVC z`i`a<%HCi$HSjAyceu5RC+HR$8HK~_^V}>KdOx{NOx>x*JS^m3s;_w%vNasNqoVv8Qq(v&A+&|a3Jb?o7e7LB` z!>2g|+)0GYz&j~kzR0wz(&d96AZ_M=b(HcR2p?|i*`oc^ITtu3lAb`x`>W9zNF??&DKUT_wTy-F{f~x9#JOkK4HgJqeQUQ>2REdG1 zBMT1#Ya;??`Y)28qTD8OL5DEwM|qQxlW!;~=tig7%`#YYx*eU<;1sWulaQJn$rysa zz1F36WwUpr$z$~|*p;5OId#pV!z(c0voDLI*PCk*@Rb3^&ky&n+T(AZuiWEr@6+DK zsRh>ljkTOU;cq|R@BYUI>NJYLSoz@Eg~biJ`DHcFuwKhKLyr*wW|eF_V8*N3GZzu4 zey!|gj+wJRpPlPmNyI*E-F!A*V6^0B0NSMaDW%0<$`EO&C1)X_1^3LD~Yb) zN^R;@p#6zNbxJToLaQliybVy+F$qmMSGmUc=FMO5XW`%%c15($pPI*vfh$!n5kGO> zfV8Pxxs~DV+QKL=HaGKn!Cz(Xp#*4nn%3d`V2>6wr1b!=P;G^pKHI<5tlyvaW7M|# zY`jsG11(R1`-=09(%-;8mC>^E$F#hB*LnpS`&)sX@4OBe(%DQSsMQzuvF)lX26<;dLQAGd`F0nky^55A+*"u"&&(D.yylloc={});var Gt=D.yylloc;h.push(Gt);var Ye=D.options&&D.options.ranges;typeof Et.yy.parseError=="function"?this.parseError=Et.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function je(L){v.length=v.length-2*L,R.length=R.length-L,h.length=h.length-L}b(je,"popStack");function fe(){var L;return L=g.pop()||D.lex()||de,typeof L!="number"&&(L instanceof Array&&(g=L,L=g.pop()),L=m.symbols_[L]||L),L}b(fe,"lex");for(var B,Kt,At,N,M0,Jt,Tt={},Lt,W,pe,Nt;;){if(At=v[v.length-1],this.defaultActions[At]?N=this.defaultActions[At]:((B===null||typeof B>"u")&&(B=fe()),N=St[At]&&St[At][B]),typeof N>"u"||!N.length||!N[0]){var Zt="";Nt=[];for(Lt in St[At])this.terminals_[Lt]&&Lt>Le&&Nt.push("'"+this.terminals_[Lt]+"'");D.showPosition?Zt="Parse error on line "+(kt+1)+`: +`+D.showPosition()+` +Expecting `+Nt.join(", ")+", got '"+(this.terminals_[B]||B)+"'":Zt="Parse error on line "+(kt+1)+": Unexpected "+(B==de?"end of input":"'"+(this.terminals_[B]||B)+"'"),this.parseError(Zt,{text:D.match,token:this.terminals_[B]||B,line:D.yylineno,loc:Gt,expected:Nt})}if(N[0]instanceof Array&&N.length>1)throw new Error("Parse Error: multiple actions possible at state: "+At+", token: "+B);switch(N[0]){case 1:v.push(B),R.push(D.yytext),h.push(D.yylloc),v.push(N[1]),B=null,Kt?(B=Kt,Kt=null):(he=D.yyleng,f=D.yytext,kt=D.yylineno,Gt=D.yylloc,ue>0&&ue--);break;case 2:if(W=this.productions_[N[1]][1],Tt.$=R[R.length-W],Tt._$={first_line:h[h.length-(W||1)].first_line,last_line:h[h.length-1].last_line,first_column:h[h.length-(W||1)].first_column,last_column:h[h.length-1].last_column},Ye&&(Tt._$.range=[h[h.length-(W||1)].range[0],h[h.length-1].range[1]]),Jt=this.performAction.apply(Tt,[f,he,kt,Et.yy,N[1],R,h].concat(Ne)),typeof Jt<"u")return Jt;W&&(v=v.slice(0,-1*W*2),R=R.slice(0,-1*W),h=h.slice(0,-1*W)),v.push(this.productions_[N[1]][0]),R.push(Tt.$),h.push(Tt._$),pe=St[v[v.length-2]][v[v.length-1]],v.push(pe);break;case 3:return!0}}return!0},"parse")},Me=function(){var _t={EOF:1,parseError:b(function(m,v){if(this.yy.parser)this.yy.parser.parseError(m,v);else throw new Error(m)},"parseError"),setInput:b(function(x,m){return this.yy=m||this.yy||{},this._input=x,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:b(function(){var x=this._input[0];this.yytext+=x,this.yyleng++,this.offset++,this.match+=x,this.matched+=x;var m=x.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),x},"input"),unput:b(function(x){var m=x.length,v=x.split(/(?:\r\n?|\n)/g);this._input=x+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-m),this.offset-=m;var g=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),v.length-1&&(this.yylineno-=v.length-1);var R=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:v?(v.length===g.length?this.yylloc.first_column:0)+g[g.length-v.length].length-v[0].length:this.yylloc.first_column-m},this.options.ranges&&(this.yylloc.range=[R[0],R[0]+this.yyleng-m]),this.yyleng=this.yytext.length,this},"unput"),more:b(function(){return this._more=!0,this},"more"),reject:b(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:b(function(x){this.unput(this.match.slice(x))},"less"),pastInput:b(function(){var x=this.matched.substr(0,this.matched.length-this.match.length);return(x.length>20?"...":"")+x.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:b(function(){var x=this.match;return x.length<20&&(x+=this._input.substr(0,20-x.length)),(x.substr(0,20)+(x.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:b(function(){var x=this.pastInput(),m=new Array(x.length+1).join("-");return x+this.upcomingInput()+` +`+m+"^"},"showPosition"),test_match:b(function(x,m){var v,g,R;if(this.options.backtrack_lexer&&(R={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(R.yylloc.range=this.yylloc.range.slice(0))),g=x[0].match(/(?:\r\n?|\n).*/g),g&&(this.yylineno+=g.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:g?g[g.length-1].length-g[g.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+x[0].length},this.yytext+=x[0],this.match+=x[0],this.matches=x,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(x[0].length),this.matched+=x[0],v=this.performAction.call(this,this.yy,this,m,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),v)return v;if(this._backtrack){for(var h in R)this[h]=R[h];return!1}return!1},"test_match"),next:b(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var x,m,v,g;this._more||(this.yytext="",this.match="");for(var R=this._currentRules(),h=0;hm[0].length)){if(m=v,g=h,this.options.backtrack_lexer){if(x=this.test_match(v,R[h]),x!==!1)return x;if(this._backtrack){m=!1;continue}else return!1}else if(!this.options.flex)break}return m?(x=this.test_match(m,R[g]),x!==!1?x:!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:b(function(){var m=this.next();return m||this.lex()},"lex"),begin:b(function(m){this.conditionStack.push(m)},"begin"),popState:b(function(){var m=this.conditionStack.length-1;return m>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:b(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:b(function(m){return m=this.conditionStack.length-1-Math.abs(m||0),m>=0?this.conditionStack[m]:"INITIAL"},"topState"),pushState:b(function(m){this.begin(m)},"pushState"),stateStackSize:b(function(){return this.conditionStack.length},"stateStackSize"),options:{},performAction:b(function(m,v,g,R){var h=R;switch(g){case 0:return 6;case 1:return 7;case 2:return 8;case 3:return 9;case 4:return 22;case 5:return 23;case 6:return this.begin("acc_title"),24;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 _t}();Ht.lexer=Me;function Mt(){this.yy={}}return b(Mt,"Parser"),Mt.prototype=Ht,Ht.Parser=Mt,new Mt}();Ut.parser=Ut;var Ve=Ut,V=[],xt=[""],I="global",F="",X=[{alias:"global",label:{text:"global"},type:{text:"global"},tags:null,link:null,parentBoundary:""}],Bt=[],ne="",se=!1,Ft=4,Vt=2,we,ze=b(function(){return we},"getC4Type"),Xe=b(function(e){we=te(e,Ot())},"setC4Type"),We=b(function(e,t,s,o,l,a,n,r,i){if(e==null||t===void 0||t===null||s===void 0||s===null||o===void 0||o===null)return;let u={},d=Bt.find(y=>y.from===t&&y.to===s);if(d?u=d:Bt.push(u),u.type=e,u.from=t,u.to=s,u.label={text:o},l==null)u.techn={text:""};else if(typeof l=="object"){let[y,p]=Object.entries(l)[0];u[y]={text:p}}else u.techn={text:l};if(a==null)u.descr={text:""};else if(typeof a=="object"){let[y,p]=Object.entries(a)[0];u[y]={text:p}}else u.descr={text:a};if(typeof n=="object"){let[y,p]=Object.entries(n)[0];u[y]=p}else u.sprite=n;if(typeof r=="object"){let[y,p]=Object.entries(r)[0];u[y]=p}else u.tags=r;if(typeof i=="object"){let[y,p]=Object.entries(i)[0];u[y]=p}else u.link=i;u.wrap=mt()},"addRel"),Qe=b(function(e,t,s,o,l,a,n){if(t===null||s===null)return;let r={},i=V.find(u=>u.alias===t);if(i&&t===i.alias?r=i:(r.alias=t,V.push(r)),s==null?r.label={text:""}:r.label={text:s},o==null)r.descr={text:""};else if(typeof o=="object"){let[u,d]=Object.entries(o)[0];r[u]={text:d}}else r.descr={text:o};if(typeof l=="object"){let[u,d]=Object.entries(l)[0];r[u]=d}else r.sprite=l;if(typeof a=="object"){let[u,d]=Object.entries(a)[0];r[u]=d}else r.tags=a;if(typeof n=="object"){let[u,d]=Object.entries(n)[0];r[u]=d}else r.link=n;r.typeC4Shape={text:e},r.parentBoundary=I,r.wrap=mt()},"addPersonOrSystem"),He=b(function(e,t,s,o,l,a,n,r){if(t===null||s===null)return;let i={},u=V.find(d=>d.alias===t);if(u&&t===u.alias?i=u:(i.alias=t,V.push(i)),s==null?i.label={text:""}:i.label={text:s},o==null)i.techn={text:""};else if(typeof o=="object"){let[d,y]=Object.entries(o)[0];i[d]={text:y}}else i.techn={text:o};if(l==null)i.descr={text:""};else if(typeof l=="object"){let[d,y]=Object.entries(l)[0];i[d]={text:y}}else i.descr={text:l};if(typeof a=="object"){let[d,y]=Object.entries(a)[0];i[d]=y}else i.sprite=a;if(typeof n=="object"){let[d,y]=Object.entries(n)[0];i[d]=y}else i.tags=n;if(typeof r=="object"){let[d,y]=Object.entries(r)[0];i[d]=y}else i.link=r;i.wrap=mt(),i.typeC4Shape={text:e},i.parentBoundary=I},"addContainer"),qe=b(function(e,t,s,o,l,a,n,r){if(t===null||s===null)return;let i={},u=V.find(d=>d.alias===t);if(u&&t===u.alias?i=u:(i.alias=t,V.push(i)),s==null?i.label={text:""}:i.label={text:s},o==null)i.techn={text:""};else if(typeof o=="object"){let[d,y]=Object.entries(o)[0];i[d]={text:y}}else i.techn={text:o};if(l==null)i.descr={text:""};else if(typeof l=="object"){let[d,y]=Object.entries(l)[0];i[d]={text:y}}else i.descr={text:l};if(typeof a=="object"){let[d,y]=Object.entries(a)[0];i[d]=y}else i.sprite=a;if(typeof n=="object"){let[d,y]=Object.entries(n)[0];i[d]=y}else i.tags=n;if(typeof r=="object"){let[d,y]=Object.entries(r)[0];i[d]=y}else i.link=r;i.wrap=mt(),i.typeC4Shape={text:e},i.parentBoundary=I},"addComponent"),Ge=b(function(e,t,s,o,l){if(e===null||t===null)return;let a={},n=X.find(r=>r.alias===e);if(n&&e===n.alias?a=n:(a.alias=e,X.push(a)),t==null?a.label={text:""}:a.label={text:t},s==null)a.type={text:"system"};else if(typeof s=="object"){let[r,i]=Object.entries(s)[0];a[r]={text:i}}else a.type={text:s};if(typeof o=="object"){let[r,i]=Object.entries(o)[0];a[r]=i}else a.tags=o;if(typeof l=="object"){let[r,i]=Object.entries(l)[0];a[r]=i}else a.link=l;a.parentBoundary=I,a.wrap=mt(),F=I,I=e,xt.push(F)},"addPersonOrSystemBoundary"),Ke=b(function(e,t,s,o,l){if(e===null||t===null)return;let a={},n=X.find(r=>r.alias===e);if(n&&e===n.alias?a=n:(a.alias=e,X.push(a)),t==null?a.label={text:""}:a.label={text:t},s==null)a.type={text:"container"};else if(typeof s=="object"){let[r,i]=Object.entries(s)[0];a[r]={text:i}}else a.type={text:s};if(typeof o=="object"){let[r,i]=Object.entries(o)[0];a[r]=i}else a.tags=o;if(typeof l=="object"){let[r,i]=Object.entries(l)[0];a[r]=i}else a.link=l;a.parentBoundary=I,a.wrap=mt(),F=I,I=e,xt.push(F)},"addContainerBoundary"),Je=b(function(e,t,s,o,l,a,n,r){if(t===null||s===null)return;let i={},u=X.find(d=>d.alias===t);if(u&&t===u.alias?i=u:(i.alias=t,X.push(i)),s==null?i.label={text:""}:i.label={text:s},o==null)i.type={text:"node"};else if(typeof o=="object"){let[d,y]=Object.entries(o)[0];i[d]={text:y}}else i.type={text:o};if(l==null)i.descr={text:""};else if(typeof l=="object"){let[d,y]=Object.entries(l)[0];i[d]={text:y}}else i.descr={text:l};if(typeof n=="object"){let[d,y]=Object.entries(n)[0];i[d]=y}else i.tags=n;if(typeof r=="object"){let[d,y]=Object.entries(r)[0];i[d]=y}else i.link=r;i.nodeType=e,i.parentBoundary=I,i.wrap=mt(),F=I,I=t,xt.push(F)},"addDeploymentNode"),Ze=b(function(){I=F,xt.pop(),F=xt.pop(),xt.push(F)},"popBoundaryParseStack"),$e=b(function(e,t,s,o,l,a,n,r,i,u,d){let y=V.find(p=>p.alias===t);if(!(y===void 0&&(y=X.find(p=>p.alias===t),y===void 0))){if(s!=null)if(typeof s=="object"){let[p,k]=Object.entries(s)[0];y[p]=k}else y.bgColor=s;if(o!=null)if(typeof o=="object"){let[p,k]=Object.entries(o)[0];y[p]=k}else y.fontColor=o;if(l!=null)if(typeof l=="object"){let[p,k]=Object.entries(l)[0];y[p]=k}else y.borderColor=l;if(a!=null)if(typeof a=="object"){let[p,k]=Object.entries(a)[0];y[p]=k}else y.shadowing=a;if(n!=null)if(typeof n=="object"){let[p,k]=Object.entries(n)[0];y[p]=k}else y.shape=n;if(r!=null)if(typeof r=="object"){let[p,k]=Object.entries(r)[0];y[p]=k}else y.sprite=r;if(i!=null)if(typeof i=="object"){let[p,k]=Object.entries(i)[0];y[p]=k}else y.techn=i;if(u!=null)if(typeof u=="object"){let[p,k]=Object.entries(u)[0];y[p]=k}else y.legendText=u;if(d!=null)if(typeof d=="object"){let[p,k]=Object.entries(d)[0];y[p]=k}else y.legendSprite=d}},"updateElStyle"),t0=b(function(e,t,s,o,l,a,n){let r=Bt.find(i=>i.from===t&&i.to===s);if(r!==void 0){if(o!=null)if(typeof o=="object"){let[i,u]=Object.entries(o)[0];r[i]=u}else r.textColor=o;if(l!=null)if(typeof l=="object"){let[i,u]=Object.entries(l)[0];r[i]=u}else r.lineColor=l;if(a!=null)if(typeof a=="object"){let[i,u]=Object.entries(a)[0];r[i]=parseInt(u)}else r.offsetX=parseInt(a);if(n!=null)if(typeof n=="object"){let[i,u]=Object.entries(n)[0];r[i]=parseInt(u)}else r.offsetY=parseInt(n)}},"updateRelStyle"),e0=b(function(e,t,s){let o=Ft,l=Vt;if(typeof t=="object"){let a=Object.values(t)[0];o=parseInt(a)}else o=parseInt(t);if(typeof s=="object"){let a=Object.values(s)[0];l=parseInt(a)}else l=parseInt(s);o>=1&&(Ft=o),l>=1&&(Vt=l)},"updateLayoutConfig"),a0=b(function(){return Ft},"getC4ShapeInRow"),i0=b(function(){return Vt},"getC4BoundaryInRow"),r0=b(function(){return I},"getCurrentBoundaryParse"),n0=b(function(){return F},"getParentBoundaryParse"),Te=b(function(e){return e==null?V:V.filter(t=>t.parentBoundary===e)},"getC4ShapeArray"),s0=b(function(e){return V.find(t=>t.alias===e)},"getC4Shape"),l0=b(function(e){return Object.keys(Te(e))},"getC4ShapeKeys"),Oe=b(function(e){return e==null?X:X.filter(t=>t.parentBoundary===e)},"getBoundaries"),o0=Oe,c0=b(function(){return Bt},"getRels"),h0=b(function(){return ne},"getTitle"),u0=b(function(e){se=e},"setWrap"),mt=b(function(){return se},"autoWrap"),d0=b(function(){V=[],X=[{alias:"global",label:{text:"global"},type:{text:"global"},tags:null,link:null,parentBoundary:""}],F="",I="global",xt=[""],Bt=[],xt=[""],ne="",se=!1,Ft=4,Vt=2},"clear"),f0={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},p0={FILLED:0,OPEN:1},y0={LEFTOF:0,RIGHTOF:1,OVER:2},b0=b(function(e){ne=te(e,Ot())},"setTitle"),ae={addPersonOrSystem:Qe,addPersonOrSystemBoundary:Ge,addContainer:He,addContainerBoundary:Ke,addComponent:qe,addDeploymentNode:Je,popBoundaryParseStack:Ze,addRel:We,updateElStyle:$e,updateRelStyle:t0,updateLayoutConfig:e0,autoWrap:mt,setWrap:u0,getC4ShapeArray:Te,getC4Shape:s0,getC4ShapeKeys:l0,getBoundaries:Oe,getBoundarys:o0,getCurrentBoundaryParse:r0,getParentBoundaryParse:n0,getRels:c0,getTitle:h0,getC4Type:ze,getC4ShapeInRow:a0,getC4BoundaryInRow:i0,setAccTitle:ge,getAccTitle:_e,getAccDescription:me,setAccDescription:xe,getConfig:b(()=>Ot().c4,"getConfig"),clear:d0,LINETYPE:f0,ARROWTYPE:p0,PLACEMENT:y0,setTitle:b0,setC4Type:Xe},le=b(function(e,t){return ke(e,t)},"drawRect"),Se=b(function(e,t,s,o,l,a){let n=e.append("image");n.attr("width",t),n.attr("height",s),n.attr("x",o),n.attr("y",l);let r=a.startsWith("data:image/png;base64")?a:(0,Re.sanitizeUrl)(a);n.attr("xlink:href",r)},"drawImage"),g0=b((e,t,s)=>{let o=e.append("g"),l=0;for(let a of t){let n=a.textColor?a.textColor:"#444444",r=a.lineColor?a.lineColor:"#444444",i=a.offsetX?parseInt(a.offsetX):0,u=a.offsetY?parseInt(a.offsetY):0,d="";if(l===0){let p=o.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",r),p.style("fill","none"),a.type!=="rel_b"&&p.attr("marker-end","url("+d+"#arrowhead)"),(a.type==="birel"||a.type==="rel_b")&&p.attr("marker-start","url("+d+"#arrowend)"),l=-1}else{let p=o.append("path");p.attr("fill","none").attr("stroke-width","1").attr("stroke",r).attr("d","Mstartx,starty Qcontrolx,controly stopx,stopy ".replaceAll("startx",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("+d+"#arrowhead)"),(a.type==="birel"||a.type==="rel_b")&&p.attr("marker-start","url("+d+"#arrowend)")}let y=s.messageFont();Q(s)(a.label.text,o,Math.min(a.startPoint.x,a.endPoint.x)+Math.abs(a.endPoint.x-a.startPoint.x)/2+i,Math.min(a.startPoint.y,a.endPoint.y)+Math.abs(a.endPoint.y-a.startPoint.y)/2+u,a.label.width,a.label.height,{fill:n},y),a.techn&&a.techn.text!==""&&(y=s.messageFont(),Q(s)("["+a.techn.text+"]",o,Math.min(a.startPoint.x,a.endPoint.x)+Math.abs(a.endPoint.x-a.startPoint.x)/2+i,Math.min(a.startPoint.y,a.endPoint.y)+Math.abs(a.endPoint.y-a.startPoint.y)/2+s.messageFontSize+5+u,Math.max(a.label.width,a.techn.width),a.techn.height,{fill:n,"font-style":"italic"},y))}},"drawRels"),_0=b(function(e,t,s){let o=e.append("g"),l=t.bgColor?t.bgColor:"none",a=t.borderColor?t.borderColor:"#444444",n=t.fontColor?t.fontColor:"black",r={"stroke-width":1,"stroke-dasharray":"7.0,7.0"};t.nodeType&&(r={"stroke-width":1});let i={x:t.x,y:t.y,fill:l,stroke:a,width:t.width,height:t.height,rx:2.5,ry:2.5,attrs:r};le(o,i);let u=s.boundaryFont();u.fontWeight="bold",u.fontSize=u.fontSize+2,u.fontColor=n,Q(s)(t.label.text,o,t.x,t.y+t.label.Y,t.width,t.height,{fill:"#444444"},u),t.type&&t.type.text!==""&&(u=s.boundaryFont(),u.fontColor=n,Q(s)(t.type.text,o,t.x,t.y+t.type.Y,t.width,t.height,{fill:"#444444"},u)),t.descr&&t.descr.text!==""&&(u=s.boundaryFont(),u.fontSize=u.fontSize-2,u.fontColor=n,Q(s)(t.descr.text,o,t.x,t.y+t.descr.Y,t.width,t.height,{fill:"#444444"},u))},"drawBoundary"),x0=b(function(e,t,s){let o=t.bgColor?t.bgColor:s[t.typeC4Shape.text+"_bg_color"],l=t.borderColor?t.borderColor:s[t.typeC4Shape.text+"_border_color"],a=t.fontColor?t.fontColor:"#FFFFFF",n="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAACD0lEQVR4Xu2YoU4EMRCGT+4j8Ai8AhaH4QHgAUjQuFMECUgMIUgwJAgMhgQsAYUiJCiQIBBY+EITsjfTdme6V24v4c8vyGbb+ZjOtN0bNcvjQXmkH83WvYBWto6PLm6v7p7uH1/w2fXD+PBycX1Pv2l3IdDm/vn7x+dXQiAubRzoURa7gRZWd0iGRIiJbOnhnfYBQZNJjNbuyY2eJG8fkDE3bbG4ep6MHUAsgYxmE3nVs6VsBWJSGccsOlFPmLIViMzLOB7pCVO2AtHJMohH7Fh6zqitQK7m0rJvAVYgGcEpe//PLdDz65sM4pF9N7ICcXDKIB5Nv6j7tD0NoSdM2QrU9Gg0ewE1LqBhHR3BBdvj2vapnidjHxD/q6vd7Pvhr31AwcY8eXMTXAKECZZJFXuEq27aLgQK5uLMohCenGGuGewOxSjBvYBqeG6B+Nqiblggdjnc+ZXDy+FNFpFzw76O3UBAROuXh6FoiAcf5g9eTvUgzy0nWg6I8cXHRUpg5bOVBCo+KDpFajOf23GgPme7RSQ+lacIENUgJ6gg1k6HjgOlqnLqip4tEuhv0hNEMXUD0clyXE3p6pZA0S2nnvTlXwLJEZWlb7cTQH1+USgTN4VhAenm/wea1OCAOmqo6fE1WCb9WSKBah+rbUWPWAmE2Rvk0ApiB45eOyNAzU8xcTvj8KvkKEoOaIYeHNA3ZuygAvFMUO0AAAAASUVORK5CYII=";switch(t.typeC4Shape.text){case"person":n="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":n="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 r=e.append("g");r.attr("class","person-man");let i=Ee();switch(t.typeC4Shape.text){case"person":case"external_person":case"system":case"external_system":case"container":case"external_container":case"component":case"external_component":i.x=t.x,i.y=t.y,i.fill=o,i.width=t.width,i.height=t.height,i.stroke=l,i.rx=2.5,i.ry=2.5,i.attrs={"stroke-width":.5},le(r,i);break;case"system_db":case"external_system_db":case"container_db":case"external_container_db":case"component_db":case"external_component_db":r.append("path").attr("fill",o).attr("stroke-width","0.5").attr("stroke",l).attr("d","Mstartx,startyc0,-10 half,-10 half,-10c0,0 half,0 half,10l0,heightc0,10 -half,10 -half,10c0,0 -half,0 -half,-10l0,-height".replaceAll("startx",t.x).replaceAll("starty",t.y).replaceAll("half",t.width/2).replaceAll("height",t.height)),r.append("path").attr("fill","none").attr("stroke-width","0.5").attr("stroke",l).attr("d","Mstartx,startyc0,10 half,10 half,10c0,0 half,0 half,-10".replaceAll("startx",t.x).replaceAll("starty",t.y).replaceAll("half",t.width/2));break;case"system_queue":case"external_system_queue":case"container_queue":case"external_container_queue":case"component_queue":case"external_component_queue":r.append("path").attr("fill",o).attr("stroke-width","0.5").attr("stroke",l).attr("d","Mstartx,startylwidth,0c5,0 5,half 5,halfc0,0 0,half -5,halfl-width,0c-5,0 -5,-half -5,-halfc0,0 0,-half 5,-half".replaceAll("startx",t.x).replaceAll("starty",t.y).replaceAll("width",t.width).replaceAll("half",t.height/2)),r.append("path").attr("fill","none").attr("stroke-width","0.5").attr("stroke",l).attr("d","Mstartx,startyc-5,0 -5,half -5,halfc0,half 5,half 5,half".replaceAll("startx",t.x+t.width).replaceAll("starty",t.y).replaceAll("half",t.height/2));break}let u=O0(s,t.typeC4Shape.text);switch(r.append("text").attr("fill",a).attr("font-family",u.fontFamily).attr("font-size",u.fontSize-2).attr("font-style","italic").attr("lengthAdjust","spacing").attr("textLength",t.typeC4Shape.width).attr("x",t.x+t.width/2-t.typeC4Shape.width/2).attr("y",t.y+t.typeC4Shape.Y).text("<<"+t.typeC4Shape.text+">>"),t.typeC4Shape.text){case"person":case"external_person":Se(r,48,48,t.x+t.width/2-24,t.y+t.image.Y,n);break}let d=s[t.typeC4Shape.text+"Font"]();return d.fontWeight="bold",d.fontSize=d.fontSize+2,d.fontColor=a,Q(s)(t.label.text,r,t.x,t.y+t.label.Y,t.width,t.height,{fill:a},d),d=s[t.typeC4Shape.text+"Font"](),d.fontColor=a,t.techn&&t.techn?.text!==""?Q(s)(t.techn.text,r,t.x,t.y+t.techn.Y,t.width,t.height,{fill:a,"font-style":"italic"},d):t.type&&t.type.text!==""&&Q(s)(t.type.text,r,t.x,t.y+t.type.Y,t.width,t.height,{fill:a,"font-style":"italic"},d),t.descr&&t.descr.text!==""&&(d=s.personFont(),d.fontColor=a,Q(s)(t.descr.text,r,t.x,t.y+t.descr.Y,t.width,t.height,{fill:a},d)),t.height},"drawC4Shape"),m0=b(function(e){e.append("defs").append("symbol").attr("id","database").attr("fill-rule","evenodd").attr("clip-rule","evenodd").append("path").attr("transform","scale(.5)").attr("d","M12.258.001l.256.004.255.005.253.008.251.01.249.012.247.015.246.016.242.019.241.02.239.023.236.024.233.027.231.028.229.031.225.032.223.034.22.036.217.038.214.04.211.041.208.043.205.045.201.046.198.048.194.05.191.051.187.053.183.054.18.056.175.057.172.059.168.06.163.061.16.063.155.064.15.066.074.033.073.033.071.034.07.034.069.035.068.035.067.035.066.035.064.036.064.036.062.036.06.036.06.037.058.037.058.037.055.038.055.038.053.038.052.038.051.039.05.039.048.039.047.039.045.04.044.04.043.04.041.04.04.041.039.041.037.041.036.041.034.041.033.042.032.042.03.042.029.042.027.042.026.043.024.043.023.043.021.043.02.043.018.044.017.043.015.044.013.044.012.044.011.045.009.044.007.045.006.045.004.045.002.045.001.045v17l-.001.045-.002.045-.004.045-.006.045-.007.045-.009.044-.011.045-.012.044-.013.044-.015.044-.017.043-.018.044-.02.043-.021.043-.023.043-.024.043-.026.043-.027.042-.029.042-.03.042-.032.042-.033.042-.034.041-.036.041-.037.041-.039.041-.04.041-.041.04-.043.04-.044.04-.045.04-.047.039-.048.039-.05.039-.051.039-.052.038-.053.038-.055.038-.055.038-.058.037-.058.037-.06.037-.06.036-.062.036-.064.036-.064.036-.066.035-.067.035-.068.035-.069.035-.07.034-.071.034-.073.033-.074.033-.15.066-.155.064-.16.063-.163.061-.168.06-.172.059-.175.057-.18.056-.183.054-.187.053-.191.051-.194.05-.198.048-.201.046-.205.045-.208.043-.211.041-.214.04-.217.038-.22.036-.223.034-.225.032-.229.031-.231.028-.233.027-.236.024-.239.023-.241.02-.242.019-.246.016-.247.015-.249.012-.251.01-.253.008-.255.005-.256.004-.258.001-.258-.001-.256-.004-.255-.005-.253-.008-.251-.01-.249-.012-.247-.015-.245-.016-.243-.019-.241-.02-.238-.023-.236-.024-.234-.027-.231-.028-.228-.031-.226-.032-.223-.034-.22-.036-.217-.038-.214-.04-.211-.041-.208-.043-.204-.045-.201-.046-.198-.048-.195-.05-.19-.051-.187-.053-.184-.054-.179-.056-.176-.057-.172-.059-.167-.06-.164-.061-.159-.063-.155-.064-.151-.066-.074-.033-.072-.033-.072-.034-.07-.034-.069-.035-.068-.035-.067-.035-.066-.035-.064-.036-.063-.036-.062-.036-.061-.036-.06-.037-.058-.037-.057-.037-.056-.038-.055-.038-.053-.038-.052-.038-.051-.039-.049-.039-.049-.039-.046-.039-.046-.04-.044-.04-.043-.04-.041-.04-.04-.041-.039-.041-.037-.041-.036-.041-.034-.041-.033-.042-.032-.042-.03-.042-.029-.042-.027-.042-.026-.043-.024-.043-.023-.043-.021-.043-.02-.043-.018-.044-.017-.043-.015-.044-.013-.044-.012-.044-.011-.045-.009-.044-.007-.045-.006-.045-.004-.045-.002-.045-.001-.045v-17l.001-.045.002-.045.004-.045.006-.045.007-.045.009-.044.011-.045.012-.044.013-.044.015-.044.017-.043.018-.044.02-.043.021-.043.023-.043.024-.043.026-.043.027-.042.029-.042.03-.042.032-.042.033-.042.034-.041.036-.041.037-.041.039-.041.04-.041.041-.04.043-.04.044-.04.046-.04.046-.039.049-.039.049-.039.051-.039.052-.038.053-.038.055-.038.056-.038.057-.037.058-.037.06-.037.061-.036.062-.036.063-.036.064-.036.066-.035.067-.035.068-.035.069-.035.07-.034.072-.034.072-.033.074-.033.151-.066.155-.064.159-.063.164-.061.167-.06.172-.059.176-.057.179-.056.184-.054.187-.053.19-.051.195-.05.198-.048.201-.046.204-.045.208-.043.211-.041.214-.04.217-.038.22-.036.223-.034.226-.032.228-.031.231-.028.234-.027.236-.024.238-.023.241-.02.243-.019.245-.016.247-.015.249-.012.251-.01.253-.008.255-.005.256-.004.258-.001.258.001zm-9.258 20.499v.01l.001.021.003.021.004.022.005.021.006.022.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.023.018.024.019.024.021.024.022.025.023.024.024.025.052.049.056.05.061.051.066.051.07.051.075.051.079.052.084.052.088.052.092.052.097.052.102.051.105.052.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.048.144.049.147.047.152.047.155.047.16.045.163.045.167.043.171.043.176.041.178.041.183.039.187.039.19.037.194.035.197.035.202.033.204.031.209.03.212.029.216.027.219.025.222.024.226.021.23.02.233.018.236.016.24.015.243.012.246.01.249.008.253.005.256.004.259.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.021.224-.024.22-.026.216-.027.212-.028.21-.031.205-.031.202-.034.198-.034.194-.036.191-.037.187-.039.183-.04.179-.04.175-.042.172-.043.168-.044.163-.045.16-.046.155-.046.152-.047.148-.048.143-.049.139-.049.136-.05.131-.05.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.053.083-.051.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.05.023-.024.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.023.01-.022.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.127l-.077.055-.08.053-.083.054-.085.053-.087.052-.09.052-.093.051-.095.05-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.045-.118.044-.12.043-.122.042-.124.042-.126.041-.128.04-.13.04-.132.038-.134.038-.135.037-.138.037-.139.035-.142.035-.143.034-.144.033-.147.032-.148.031-.15.03-.151.03-.153.029-.154.027-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.01-.179.008-.179.008-.181.006-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.006-.179-.008-.179-.008-.178-.01-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.027-.153-.029-.151-.03-.15-.03-.148-.031-.146-.032-.145-.033-.143-.034-.141-.035-.14-.035-.137-.037-.136-.037-.134-.038-.132-.038-.13-.04-.128-.04-.126-.041-.124-.042-.122-.042-.12-.044-.117-.043-.116-.045-.113-.045-.112-.046-.109-.047-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.05-.093-.052-.09-.051-.087-.052-.085-.053-.083-.054-.08-.054-.077-.054v4.127zm0-5.654v.011l.001.021.003.021.004.021.005.022.006.022.007.022.009.022.01.022.011.023.012.023.013.023.015.024.016.023.017.024.018.024.019.024.021.024.022.024.023.025.024.024.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.052.11.051.114.051.119.052.123.05.127.051.131.05.135.049.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.044.171.042.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.022.23.02.233.018.236.016.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.012.241-.015.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.048.139-.05.136-.049.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.051.051-.049.023-.025.023-.024.021-.025.02-.024.019-.024.018-.024.017-.024.015-.023.014-.023.013-.024.012-.022.01-.023.01-.023.008-.022.006-.022.006-.022.004-.021.004-.022.001-.021.001-.021v-4.139l-.077.054-.08.054-.083.054-.085.052-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.044-.118.044-.12.044-.122.042-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.035-.143.033-.144.033-.147.033-.148.031-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.009-.179.009-.179.007-.181.007-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.007-.179-.007-.179-.009-.178-.009-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.031-.146-.033-.145-.033-.143-.033-.141-.035-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.04-.126-.041-.124-.042-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.051-.093-.051-.09-.051-.087-.053-.085-.052-.083-.054-.08-.054-.077-.054v4.139zm0-5.666v.011l.001.02.003.022.004.021.005.022.006.021.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.024.018.023.019.024.021.025.022.024.023.024.024.025.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.051.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.043.171.043.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.021.23.02.233.018.236.017.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.013.241-.014.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.049.139-.049.136-.049.131-.051.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.049.023-.025.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.022.01-.023.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.153l-.077.054-.08.054-.083.053-.085.053-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.048-.105.048-.106.048-.109.046-.111.046-.114.046-.115.044-.118.044-.12.043-.122.043-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.034-.143.034-.144.033-.147.032-.148.032-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.024-.161.024-.162.023-.163.023-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.01-.178.01-.179.009-.179.007-.181.006-.182.006-.182.004-.184.003-.184.001-.185.001-.185-.001-.184-.001-.184-.003-.182-.004-.182-.006-.181-.006-.179-.007-.179-.009-.178-.01-.176-.01-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.023-.162-.023-.161-.024-.159-.024-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.032-.146-.032-.145-.033-.143-.034-.141-.034-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.041-.126-.041-.124-.041-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.048-.105-.048-.102-.048-.1-.05-.097-.049-.095-.051-.093-.051-.09-.052-.087-.052-.085-.053-.083-.053-.08-.054-.077-.054v4.153zm8.74-8.179l-.257.004-.254.005-.25.008-.247.011-.244.012-.241.014-.237.016-.233.018-.231.021-.226.022-.224.023-.22.026-.216.027-.212.028-.21.031-.205.032-.202.033-.198.034-.194.036-.191.038-.187.038-.183.04-.179.041-.175.042-.172.043-.168.043-.163.045-.16.046-.155.046-.152.048-.148.048-.143.048-.139.049-.136.05-.131.05-.126.051-.123.051-.118.051-.114.052-.11.052-.106.052-.101.052-.096.052-.092.052-.088.052-.083.052-.079.052-.074.051-.07.052-.065.051-.06.05-.056.05-.051.05-.023.025-.023.024-.021.024-.02.025-.019.024-.018.024-.017.023-.015.024-.014.023-.013.023-.012.023-.01.023-.01.022-.008.022-.006.023-.006.021-.004.022-.004.021-.001.021-.001.021.001.021.001.021.004.021.004.022.006.021.006.023.008.022.01.022.01.023.012.023.013.023.014.023.015.024.017.023.018.024.019.024.02.025.021.024.023.024.023.025.051.05.056.05.06.05.065.051.07.052.074.051.079.052.083.052.088.052.092.052.096.052.101.052.106.052.11.052.114.052.118.051.123.051.126.051.131.05.136.05.139.049.143.048.148.048.152.048.155.046.16.046.163.045.168.043.172.043.175.042.179.041.183.04.187.038.191.038.194.036.198.034.202.033.205.032.21.031.212.028.216.027.22.026.224.023.226.022.231.021.233.018.237.016.241.014.244.012.247.011.25.008.254.005.257.004.26.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.022.224-.023.22-.026.216-.027.212-.028.21-.031.205-.032.202-.033.198-.034.194-.036.191-.038.187-.038.183-.04.179-.041.175-.042.172-.043.168-.043.163-.045.16-.046.155-.046.152-.048.148-.048.143-.048.139-.049.136-.05.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.05.051-.05.023-.025.023-.024.021-.024.02-.025.019-.024.018-.024.017-.023.015-.024.014-.023.013-.023.012-.023.01-.023.01-.022.008-.022.006-.023.006-.021.004-.022.004-.021.001-.021.001-.021-.001-.021-.001-.021-.004-.021-.004-.022-.006-.021-.006-.023-.008-.022-.01-.022-.01-.023-.012-.023-.013-.023-.014-.023-.015-.024-.017-.023-.018-.024-.019-.024-.02-.025-.021-.024-.023-.024-.023-.025-.051-.05-.056-.05-.06-.05-.065-.051-.07-.052-.074-.051-.079-.052-.083-.052-.088-.052-.092-.052-.096-.052-.101-.052-.106-.052-.11-.052-.114-.052-.118-.051-.123-.051-.126-.051-.131-.05-.136-.05-.139-.049-.143-.048-.148-.048-.152-.048-.155-.046-.16-.046-.163-.045-.168-.043-.172-.043-.175-.042-.179-.041-.183-.04-.187-.038-.191-.038-.194-.036-.198-.034-.202-.033-.205-.032-.21-.031-.212-.028-.216-.027-.22-.026-.224-.023-.226-.022-.231-.021-.233-.018-.237-.016-.241-.014-.244-.012-.247-.011-.25-.008-.254-.005-.257-.004-.26-.001-.26.001z")},"insertDatabaseIcon"),v0=b(function(e){e.append("defs").append("symbol").attr("id","computer").attr("width","24").attr("height","24").append("path").attr("transform","scale(.5)").attr("d","M2 2v13h20v-13h-20zm18 11h-16v-9h16v9zm-10.228 6l.466-1h3.524l.467 1h-4.457zm14.228 3h-24l2-6h2.104l-1.33 4h18.45l-1.297-4h2.073l2 6zm-5-10h-14v-7h14v7z")},"insertComputerIcon"),k0=b(function(e){e.append("defs").append("symbol").attr("id","clock").attr("width","24").attr("height","24").append("path").attr("transform","scale(.5)").attr("d","M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm5.848 12.459c.202.038.202.333.001.372-1.907.361-6.045 1.111-6.547 1.111-.719 0-1.301-.582-1.301-1.301 0-.512.77-5.447 1.125-7.445.034-.192.312-.181.343.014l.985 6.238 5.394 1.011z")},"insertClockIcon"),E0=b(function(e){e.append("defs").append("marker").attr("id","arrowhead").attr("refX",9).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 0 0 L 10 5 L 0 10 z")},"insertArrowHead"),A0=b(function(e){e.append("defs").append("marker").attr("id","arrowend").attr("refX",1).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 10 0 L 0 5 L 10 10 z")},"insertArrowEnd"),C0=b(function(e){e.append("defs").append("marker").attr("id","filled-head").attr("refX",18).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z")},"insertArrowFilledHead"),w0=b(function(e){e.append("defs").append("marker").attr("id","sequencenumber").attr("refX",15).attr("refY",15).attr("markerWidth",60).attr("markerHeight",40).attr("orient","auto").append("circle").attr("cx",15).attr("cy",15).attr("r",6)},"insertDynamicNumber"),T0=b(function(e){let s=e.append("defs").append("marker").attr("id","crosshead").attr("markerWidth",15).attr("markerHeight",8).attr("orient","auto").attr("refX",16).attr("refY",4);s.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"),s.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"),O0=b((e,t)=>({fontFamily:e[t+"FontFamily"],fontSize:e[t+"FontSize"],fontWeight:e[t+"FontWeight"]}),"getC4ShapeFont"),Q=function(){function e(l,a,n,r,i,u,d){let y=a.append("text").attr("x",n+i/2).attr("y",r+u/2+5).style("text-anchor","middle").text(l);o(y,d)}b(e,"byText");function t(l,a,n,r,i,u,d,y){let{fontSize:p,fontFamily:k,fontWeight:O}=y,S=l.split(Yt.lineBreakRegex);for(let P=0;P=this.data.widthLimit||s>=this.data.widthLimit||this.nextData.cnt>De)&&(t=this.nextData.startx+e.margin+_.nextLinePaddingX,o=this.nextData.stopy+e.margin*2,this.nextData.stopx=s=t+e.width,this.nextData.starty=this.nextData.stopy,this.nextData.stopy=l=o+e.height,this.nextData.cnt=1),e.x=t,e.y=o,this.updateVal(this.data,"startx",t,Math.min),this.updateVal(this.data,"starty",o,Math.min),this.updateVal(this.data,"stopx",s,Math.max),this.updateVal(this.data,"stopy",l,Math.max),this.updateVal(this.nextData,"startx",t,Math.min),this.updateVal(this.nextData,"starty",o,Math.min),this.updateVal(this.nextData,"stopx",s,Math.max),this.updateVal(this.nextData,"stopy",l,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},re(e.db.getConfig())}bumpLastMargin(e){this.data.stopx+=e,this.data.stopy+=e}},re=b(function(e){ye(_,e),e.fontFamily&&(_.personFontFamily=_.systemFontFamily=_.messageFontFamily=e.fontFamily),e.fontSize&&(_.personFontSize=_.systemFontSize=_.messageFontSize=e.fontSize),e.fontWeight&&(_.personFontWeight=_.systemFontWeight=_.messageFontWeight=e.fontWeight)},"setConf"),Pt=b((e,t)=>({fontFamily:e[t+"FontFamily"],fontSize:e[t+"FontSize"],fontWeight:e[t+"FontWeight"]}),"c4ShapeFont"),jt=b(e=>({fontFamily:e.boundaryFontFamily,fontSize:e.boundaryFontSize,fontWeight:e.boundaryFontWeight}),"boundaryFont"),R0=b(e=>({fontFamily:e.messageFontFamily,fontSize:e.messageFontSize,fontWeight:e.messageFontWeight}),"messageFont");function j(e,t,s,o,l){if(!t[e].width)if(s)t[e].text=ve(t[e].text,l,o),t[e].textLines=t[e].text.split(Yt.lineBreakRegex).length,t[e].width=l,t[e].height=ee(t[e].text,o);else{let a=t[e].text.split(Yt.lineBreakRegex);t[e].textLines=a.length;let n=0;t[e].height=0,t[e].width=0;for(let r of a)t[e].width=Math.max(Ct(r,o),t[e].width),n=ee(r,o),t[e].height=t[e].height+n}}b(j,"calcC4ShapeTextWH");var Be=b(function(e,t,s){t.x=s.data.startx,t.y=s.data.starty,t.width=s.data.stopx-s.data.startx,t.height=s.data.stopy-s.data.starty,t.label.y=_.c4ShapeMargin-35;let o=t.wrap&&_.wrap,l=jt(_);l.fontSize=l.fontSize+2,l.fontWeight="bold";let a=Ct(t.label.text,l);j("label",t,o,l,a),z.drawBoundary(e,t,_)},"drawBoundary"),Ie=b(function(e,t,s,o){let l=0;for(let a of o){l=0;let n=s[a],r=Pt(_,n.typeC4Shape.text);switch(r.fontSize=r.fontSize-2,n.typeC4Shape.width=Ct("\xAB"+n.typeC4Shape.text+"\xBB",r),n.typeC4Shape.height=r.fontSize+2,n.typeC4Shape.Y=_.c4ShapePadding,l=n.typeC4Shape.Y+n.typeC4Shape.height-4,n.image={width:0,height:0,Y:0},n.typeC4Shape.text){case"person":case"external_person":n.image.width=48,n.image.height=48,n.image.Y=l,l=n.image.Y+n.image.height;break}n.sprite&&(n.image.width=48,n.image.height=48,n.image.Y=l,l=n.image.Y+n.image.height);let i=n.wrap&&_.wrap,u=_.width-_.c4ShapePadding*2,d=Pt(_,n.typeC4Shape.text);if(d.fontSize=d.fontSize+2,d.fontWeight="bold",j("label",n,i,d,u),n.label.Y=l+8,l=n.label.Y+n.label.height,n.type&&n.type.text!==""){n.type.text="["+n.type.text+"]";let k=Pt(_,n.typeC4Shape.text);j("type",n,i,k,u),n.type.Y=l+5,l=n.type.Y+n.type.height}else if(n.techn&&n.techn.text!==""){n.techn.text="["+n.techn.text+"]";let k=Pt(_,n.techn.text);j("techn",n,i,k,u),n.techn.Y=l+5,l=n.techn.Y+n.techn.height}let y=l,p=n.label.width;if(n.descr&&n.descr.text!==""){let k=Pt(_,n.typeC4Shape.text);j("descr",n,i,k,u),n.descr.Y=l+20,l=n.descr.Y+n.descr.height,p=Math.max(n.label.width,n.descr.width),y=l-n.descr.textLines*5}p=p+_.c4ShapePadding,n.width=Math.max(n.width||_.width,p,_.width),n.height=Math.max(n.height||_.height,y,_.height),n.margin=n.margin||_.c4ShapeMargin,e.insert(n),z.drawC4Shape(t,n,_)}e.bumpLastMargin(_.c4ShapeMargin)},"drawC4ShapeArray"),Y=class{static{b(this,"Point")}constructor(e,t){this.x=e,this.y=t}},Ae=b(function(e,t){let s=e.x,o=e.y,l=t.x,a=t.y,n=s+e.width/2,r=o+e.height/2,i=Math.abs(s-l),u=Math.abs(o-a),d=u/i,y=e.height/e.width,p=null;return o==a&&sl?p=new Y(s,r):s==l&&oa&&(p=new Y(n,o)),s>l&&o=d?p=new Y(s,r+d*e.width/2):p=new Y(n-i/u*e.height/2,o+e.height):s=d?p=new Y(s+e.width,r+d*e.width/2):p=new Y(n+i/u*e.height/2,o+e.height):sa?y>=d?p=new Y(s+e.width,r-d*e.width/2):p=new Y(n+e.height/2*i/u,o):s>l&&o>a&&(y>=d?p=new Y(s,r-e.width/2*d):p=new Y(n-e.height/2*i/u,o)),p},"getIntersectPoint"),S0=b(function(e,t){let s={x:0,y:0};s.x=t.x+t.width/2,s.y=t.y+t.height/2;let o=Ae(e,s);s.x=e.x+e.width/2,s.y=e.y+e.height/2;let l=Ae(t,s);return{startPoint:o,endPoint:l}},"getIntersectPoints"),D0=b(function(e,t,s,o){let l=0;for(let a of t){l=l+1;let n=a.wrap&&_.wrap,r=R0(_);o.db.getC4Type()==="C4Dynamic"&&(a.label.text=l+": "+a.label.text);let u=Ct(a.label.text,r);j("label",a,n,r,u),a.techn&&a.techn.text!==""&&(u=Ct(a.techn.text,r),j("techn",a,n,r,u)),a.descr&&a.descr.text!==""&&(u=Ct(a.descr.text,r),j("descr",a,n,r,u));let d=s(a.from),y=s(a.to),p=S0(d,y);a.startPoint=p.startPoint,a.endPoint=p.endPoint}z.drawRels(e,t,_)},"drawRels");function oe(e,t,s,o,l){let a=new Pe(l);a.data.widthLimit=s.data.widthLimit/Math.min(ie,o.length);for(let[n,r]of o.entries()){let i=0;r.image={width:0,height:0,Y:0},r.sprite&&(r.image.width=48,r.image.height=48,r.image.Y=i,i=r.image.Y+r.image.height);let u=r.wrap&&_.wrap,d=jt(_);if(d.fontSize=d.fontSize+2,d.fontWeight="bold",j("label",r,u,d,a.data.widthLimit),r.label.Y=i+8,i=r.label.Y+r.label.height,r.type&&r.type.text!==""){r.type.text="["+r.type.text+"]";let O=jt(_);j("type",r,u,O,a.data.widthLimit),r.type.Y=i+5,i=r.type.Y+r.type.height}if(r.descr&&r.descr.text!==""){let O=jt(_);O.fontSize=O.fontSize-2,j("descr",r,u,O,a.data.widthLimit),r.descr.Y=i+20,i=r.descr.Y+r.descr.height}if(n==0||n%ie===0){let O=s.data.startx+_.diagramMarginX,S=s.data.stopy+_.diagramMarginY+i;a.setData(O,O,S,S)}else{let O=a.data.stopx!==a.data.startx?a.data.stopx+_.diagramMarginX:a.data.startx,S=a.data.starty;a.setData(O,O,S,S)}a.name=r.alias;let y=l.db.getC4ShapeArray(r.alias),p=l.db.getC4ShapeKeys(r.alias);p.length>0&&Ie(a,e,y,p),t=r.alias;let k=l.db.getBoundarys(t);k.length>0&&oe(e,t,a,k,l),r.alias!=="global"&&Be(e,r,a),s.data.stopy=Math.max(a.data.stopy+_.c4ShapeMargin,s.data.stopy),s.data.stopx=Math.max(a.data.stopx+_.c4ShapeMargin,s.data.stopx),zt=Math.max(zt,s.data.stopx),Xt=Math.max(Xt,s.data.stopy)}}b(oe,"drawInsideBoundary");var P0=b(function(e,t,s,o){_=Ot().c4;let l=Ot().securityLevel,a;l==="sandbox"&&(a=Dt("#i"+t));let n=l==="sandbox"?Dt(a.nodes()[0].contentDocument.body):Dt("body"),r=o.db;o.db.setWrap(_.wrap),De=r.getC4ShapeInRow(),ie=r.getC4BoundaryInRow(),$t.debug(`C:${JSON.stringify(_,null,2)}`);let i=l==="sandbox"?n.select(`[id="${t}"]`):Dt(`[id="${t}"]`);z.insertComputerIcon(i),z.insertDatabaseIcon(i),z.insertClockIcon(i);let u=new Pe(o);u.setData(_.diagramMarginX,_.diagramMarginX,_.diagramMarginY,_.diagramMarginY),u.data.widthLimit=screen.availWidth,zt=_.diagramMarginX,Xt=_.diagramMarginY;let d=o.db.getTitle(),y=o.db.getBoundarys("");oe(i,"",u,y,o),z.insertArrowHead(i),z.insertArrowEnd(i),z.insertArrowCrossHead(i),z.insertArrowFilledHead(i),D0(i,o.db.getRels(),o.db.getC4Shape,o),u.data.stopx=zt,u.data.stopy=Xt;let p=u.data,O=p.stopy-p.starty+2*_.diagramMarginY,P=p.stopx-p.startx+2*_.diagramMarginX;d&&i.append("text").text(d).attr("x",(p.stopx-p.startx)/2-4*_.diagramMarginX).attr("y",p.starty+_.diagramMarginY),be(i,O,P,_.useMaxWidth);let M=d?60:0;i.attr("viewBox",p.startx-_.diagramMarginX+" -"+(_.diagramMarginY+M)+" "+P+" "+(O+M)),$t.debug("models:",p)},"draw"),Ce={drawPersonOrSystemArray:Ie,drawBoundary:Be,setConf:re,draw:P0},B0=b(e=>`.person { + stroke: ${e.personBorder}; + fill: ${e.personBkg}; + } +`,"getStyles"),I0=B0,U0={parser:Ve,db:ae,renderer:Ce,styles:I0,init:b(({c4:e,wrap:t})=>{Ce.setConf(e),ae.setWrap(t)},"init")};export{U0 as diagram}; +//# sourceMappingURL=c4Diagram-6F5ED5ID-X53KYE5F.min.js.map diff --git a/docs/_site/public/c4Diagram-6F5ED5ID-X53KYE5F.min.js.map b/docs/_site/public/c4Diagram-6F5ED5ID-X53KYE5F.min.js.map new file mode 100644 index 0000000..ceab453 --- /dev/null +++ b/docs/_site/public/c4Diagram-6F5ED5ID-X53KYE5F.min.js.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": ["../../node_modules/mermaid/dist/chunks/mermaid.core/c4Diagram-6F5ED5ID.mjs"], + "sourcesContent": ["import {\n drawRect,\n getNoteRect\n} from \"./chunk-ASOPGD6M.mjs\";\nimport {\n calculateTextHeight,\n calculateTextWidth,\n wrapLabel\n} from \"./chunk-7DKRZKHE.mjs\";\nimport {\n __name,\n assignWithDepth_default,\n common_default,\n configureSvgSize,\n getAccDescription,\n getAccTitle,\n getConfig2 as getConfig,\n log,\n sanitizeText,\n setAccDescription,\n setAccTitle\n} from \"./chunk-6DBFFHIP.mjs\";\n\n// src/diagrams/c4/parser/c4Diagram.jison\nvar parser = function() {\n var o = /* @__PURE__ */ __name(function(k, v, o2, l) {\n for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v) ;\n return o2;\n }, \"o\"), $V0 = [1, 24], $V1 = [1, 25], $V2 = [1, 26], $V3 = [1, 27], $V4 = [1, 28], $V5 = [1, 63], $V6 = [1, 64], $V7 = [1, 65], $V8 = [1, 66], $V9 = [1, 67], $Va = [1, 68], $Vb = [1, 69], $Vc = [1, 29], $Vd = [1, 30], $Ve = [1, 31], $Vf = [1, 32], $Vg = [1, 33], $Vh = [1, 34], $Vi = [1, 35], $Vj = [1, 36], $Vk = [1, 37], $Vl = [1, 38], $Vm = [1, 39], $Vn = [1, 40], $Vo = [1, 41], $Vp = [1, 42], $Vq = [1, 43], $Vr = [1, 44], $Vs = [1, 45], $Vt = [1, 46], $Vu = [1, 47], $Vv = [1, 48], $Vw = [1, 50], $Vx = [1, 51], $Vy = [1, 52], $Vz = [1, 53], $VA = [1, 54], $VB = [1, 55], $VC = [1, 56], $VD = [1, 57], $VE = [1, 58], $VF = [1, 59], $VG = [1, 60], $VH = [14, 42], $VI = [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], $VJ = [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], $VK = [1, 82], $VL = [1, 83], $VM = [1, 84], $VN = [1, 85], $VO = [12, 14, 42], $VP = [12, 14, 33, 42], $VQ = [12, 14, 33, 42, 76, 77, 79, 80], $VR = [12, 33], $VS = [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];\n var parser2 = {\n trace: /* @__PURE__ */ __name(function trace() {\n }, \"trace\"),\n yy: {},\n 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 },\n 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\" },\n 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]],\n performAction: /* @__PURE__ */ __name(function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {\n var $0 = $$.length - 1;\n switch (yystate) {\n case 3:\n yy.setDirection(\"TB\");\n break;\n case 4:\n yy.setDirection(\"BT\");\n break;\n case 5:\n yy.setDirection(\"RL\");\n break;\n case 6:\n yy.setDirection(\"LR\");\n break;\n case 8:\n case 9:\n case 10:\n case 11:\n case 12:\n yy.setC4Type($$[$0 - 3]);\n break;\n case 19:\n yy.setTitle($$[$0].substring(6));\n this.$ = $$[$0].substring(6);\n break;\n case 20:\n yy.setAccDescription($$[$0].substring(15));\n this.$ = $$[$0].substring(15);\n break;\n case 21:\n this.$ = $$[$0].trim();\n yy.setTitle(this.$);\n break;\n case 22:\n case 23:\n this.$ = $$[$0].trim();\n yy.setAccDescription(this.$);\n break;\n case 28:\n $$[$0].splice(2, 0, \"ENTERPRISE\");\n yy.addPersonOrSystemBoundary(...$$[$0]);\n this.$ = $$[$0];\n break;\n case 29:\n $$[$0].splice(2, 0, \"SYSTEM\");\n yy.addPersonOrSystemBoundary(...$$[$0]);\n this.$ = $$[$0];\n break;\n case 30:\n yy.addPersonOrSystemBoundary(...$$[$0]);\n this.$ = $$[$0];\n break;\n case 31:\n $$[$0].splice(2, 0, \"CONTAINER\");\n yy.addContainerBoundary(...$$[$0]);\n this.$ = $$[$0];\n break;\n case 32:\n yy.addDeploymentNode(\"node\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 33:\n yy.addDeploymentNode(\"nodeL\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 34:\n yy.addDeploymentNode(\"nodeR\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 35:\n yy.popBoundaryParseStack();\n break;\n case 39:\n yy.addPersonOrSystem(\"person\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 40:\n yy.addPersonOrSystem(\"external_person\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 41:\n yy.addPersonOrSystem(\"system\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 42:\n yy.addPersonOrSystem(\"system_db\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 43:\n yy.addPersonOrSystem(\"system_queue\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 44:\n yy.addPersonOrSystem(\"external_system\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 45:\n yy.addPersonOrSystem(\"external_system_db\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 46:\n yy.addPersonOrSystem(\"external_system_queue\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 47:\n yy.addContainer(\"container\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 48:\n yy.addContainer(\"container_db\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 49:\n yy.addContainer(\"container_queue\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 50:\n yy.addContainer(\"external_container\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 51:\n yy.addContainer(\"external_container_db\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 52:\n yy.addContainer(\"external_container_queue\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 53:\n yy.addComponent(\"component\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 54:\n yy.addComponent(\"component_db\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 55:\n yy.addComponent(\"component_queue\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 56:\n yy.addComponent(\"external_component\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 57:\n yy.addComponent(\"external_component_db\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 58:\n yy.addComponent(\"external_component_queue\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 60:\n yy.addRel(\"rel\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 61:\n yy.addRel(\"birel\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 62:\n yy.addRel(\"rel_u\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 63:\n yy.addRel(\"rel_d\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 64:\n yy.addRel(\"rel_l\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 65:\n yy.addRel(\"rel_r\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 66:\n yy.addRel(\"rel_b\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 67:\n $$[$0].splice(0, 1);\n yy.addRel(\"rel\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 68:\n yy.updateElStyle(\"update_el_style\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 69:\n yy.updateRelStyle(\"update_rel_style\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 70:\n yy.updateLayoutConfig(\"update_layout_config\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 71:\n this.$ = [$$[$0]];\n break;\n case 72:\n $$[$0].unshift($$[$0 - 1]);\n this.$ = $$[$0];\n break;\n case 73:\n case 75:\n this.$ = $$[$0].trim();\n break;\n case 74:\n let kv = {};\n kv[$$[$0 - 1].trim()] = $$[$0].trim();\n this.$ = kv;\n break;\n case 76:\n this.$ = \"\";\n break;\n }\n }, \"anonymous\"),\n 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: $V0, 23: $V1, 24: $V2, 26: $V3, 28: $V4, 29: 49, 30: 61, 32: 62, 34: $V5, 36: $V6, 37: $V7, 38: $V8, 39: $V9, 40: $Va, 41: $Vb, 43: 23, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi, 51: $Vj, 52: $Vk, 53: $Vl, 54: $Vm, 55: $Vn, 56: $Vo, 57: $Vp, 58: $Vq, 59: $Vr, 60: $Vs, 61: $Vt, 62: $Vu, 63: $Vv, 64: $Vw, 65: $Vx, 66: $Vy, 67: $Vz, 68: $VA, 69: $VB, 70: $VC, 71: $VD, 72: $VE, 73: $VF, 74: $VG }, { 13: 70, 19: 20, 20: 21, 21: 22, 22: $V0, 23: $V1, 24: $V2, 26: $V3, 28: $V4, 29: 49, 30: 61, 32: 62, 34: $V5, 36: $V6, 37: $V7, 38: $V8, 39: $V9, 40: $Va, 41: $Vb, 43: 23, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi, 51: $Vj, 52: $Vk, 53: $Vl, 54: $Vm, 55: $Vn, 56: $Vo, 57: $Vp, 58: $Vq, 59: $Vr, 60: $Vs, 61: $Vt, 62: $Vu, 63: $Vv, 64: $Vw, 65: $Vx, 66: $Vy, 67: $Vz, 68: $VA, 69: $VB, 70: $VC, 71: $VD, 72: $VE, 73: $VF, 74: $VG }, { 13: 71, 19: 20, 20: 21, 21: 22, 22: $V0, 23: $V1, 24: $V2, 26: $V3, 28: $V4, 29: 49, 30: 61, 32: 62, 34: $V5, 36: $V6, 37: $V7, 38: $V8, 39: $V9, 40: $Va, 41: $Vb, 43: 23, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi, 51: $Vj, 52: $Vk, 53: $Vl, 54: $Vm, 55: $Vn, 56: $Vo, 57: $Vp, 58: $Vq, 59: $Vr, 60: $Vs, 61: $Vt, 62: $Vu, 63: $Vv, 64: $Vw, 65: $Vx, 66: $Vy, 67: $Vz, 68: $VA, 69: $VB, 70: $VC, 71: $VD, 72: $VE, 73: $VF, 74: $VG }, { 13: 72, 19: 20, 20: 21, 21: 22, 22: $V0, 23: $V1, 24: $V2, 26: $V3, 28: $V4, 29: 49, 30: 61, 32: 62, 34: $V5, 36: $V6, 37: $V7, 38: $V8, 39: $V9, 40: $Va, 41: $Vb, 43: 23, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi, 51: $Vj, 52: $Vk, 53: $Vl, 54: $Vm, 55: $Vn, 56: $Vo, 57: $Vp, 58: $Vq, 59: $Vr, 60: $Vs, 61: $Vt, 62: $Vu, 63: $Vv, 64: $Vw, 65: $Vx, 66: $Vy, 67: $Vz, 68: $VA, 69: $VB, 70: $VC, 71: $VD, 72: $VE, 73: $VF, 74: $VG }, { 13: 73, 19: 20, 20: 21, 21: 22, 22: $V0, 23: $V1, 24: $V2, 26: $V3, 28: $V4, 29: 49, 30: 61, 32: 62, 34: $V5, 36: $V6, 37: $V7, 38: $V8, 39: $V9, 40: $Va, 41: $Vb, 43: 23, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi, 51: $Vj, 52: $Vk, 53: $Vl, 54: $Vm, 55: $Vn, 56: $Vo, 57: $Vp, 58: $Vq, 59: $Vr, 60: $Vs, 61: $Vt, 62: $Vu, 63: $Vv, 64: $Vw, 65: $Vx, 66: $Vy, 67: $Vz, 68: $VA, 69: $VB, 70: $VC, 71: $VD, 72: $VE, 73: $VF, 74: $VG }, { 14: [1, 74] }, o($VH, [2, 13], { 43: 23, 29: 49, 30: 61, 32: 62, 20: 75, 34: $V5, 36: $V6, 37: $V7, 38: $V8, 39: $V9, 40: $Va, 41: $Vb, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi, 51: $Vj, 52: $Vk, 53: $Vl, 54: $Vm, 55: $Vn, 56: $Vo, 57: $Vp, 58: $Vq, 59: $Vr, 60: $Vs, 61: $Vt, 62: $Vu, 63: $Vv, 64: $Vw, 65: $Vx, 66: $Vy, 67: $Vz, 68: $VA, 69: $VB, 70: $VC, 71: $VD, 72: $VE, 73: $VF, 74: $VG }), o($VH, [2, 14]), o($VI, [2, 16], { 12: [1, 76] }), o($VH, [2, 36], { 12: [1, 77] }), o($VJ, [2, 19]), o($VJ, [2, 20]), { 25: [1, 78] }, { 27: [1, 79] }, o($VJ, [2, 23]), { 35: 80, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 86, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 87, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 88, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 89, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 90, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 91, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 92, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 93, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 94, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 95, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 96, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 97, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 98, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 99, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 100, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 101, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 102, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 103, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 104, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, o($VO, [2, 59]), { 35: 105, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 106, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 107, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 108, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 109, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 110, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 111, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 112, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 113, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 114, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 115, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 20: 116, 29: 49, 30: 61, 32: 62, 34: $V5, 36: $V6, 37: $V7, 38: $V8, 39: $V9, 40: $Va, 41: $Vb, 43: 23, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi, 51: $Vj, 52: $Vk, 53: $Vl, 54: $Vm, 55: $Vn, 56: $Vo, 57: $Vp, 58: $Vq, 59: $Vr, 60: $Vs, 61: $Vt, 62: $Vu, 63: $Vv, 64: $Vw, 65: $Vx, 66: $Vy, 67: $Vz, 68: $VA, 69: $VB, 70: $VC, 71: $VD, 72: $VE, 73: $VF, 74: $VG }, { 12: [1, 118], 33: [1, 117] }, { 35: 119, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 120, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 121, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 122, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 123, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 124, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 125, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 14: [1, 126] }, { 14: [1, 127] }, { 14: [1, 128] }, { 14: [1, 129] }, { 1: [2, 8] }, o($VH, [2, 15]), o($VI, [2, 17], { 21: 22, 19: 130, 22: $V0, 23: $V1, 24: $V2, 26: $V3, 28: $V4 }), o($VH, [2, 37], { 19: 20, 20: 21, 21: 22, 43: 23, 29: 49, 30: 61, 32: 62, 13: 131, 22: $V0, 23: $V1, 24: $V2, 26: $V3, 28: $V4, 34: $V5, 36: $V6, 37: $V7, 38: $V8, 39: $V9, 40: $Va, 41: $Vb, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi, 51: $Vj, 52: $Vk, 53: $Vl, 54: $Vm, 55: $Vn, 56: $Vo, 57: $Vp, 58: $Vq, 59: $Vr, 60: $Vs, 61: $Vt, 62: $Vu, 63: $Vv, 64: $Vw, 65: $Vx, 66: $Vy, 67: $Vz, 68: $VA, 69: $VB, 70: $VC, 71: $VD, 72: $VE, 73: $VF, 74: $VG }), o($VJ, [2, 21]), o($VJ, [2, 22]), o($VO, [2, 39]), o($VP, [2, 71], { 75: 81, 35: 132, 76: $VK, 77: $VL, 79: $VM, 80: $VN }), o($VQ, [2, 73]), { 78: [1, 133] }, o($VQ, [2, 75]), o($VQ, [2, 76]), o($VO, [2, 40]), o($VO, [2, 41]), o($VO, [2, 42]), o($VO, [2, 43]), o($VO, [2, 44]), o($VO, [2, 45]), o($VO, [2, 46]), o($VO, [2, 47]), o($VO, [2, 48]), o($VO, [2, 49]), o($VO, [2, 50]), o($VO, [2, 51]), o($VO, [2, 52]), o($VO, [2, 53]), o($VO, [2, 54]), o($VO, [2, 55]), o($VO, [2, 56]), o($VO, [2, 57]), o($VO, [2, 58]), o($VO, [2, 60]), o($VO, [2, 61]), o($VO, [2, 62]), o($VO, [2, 63]), o($VO, [2, 64]), o($VO, [2, 65]), o($VO, [2, 66]), o($VO, [2, 67]), o($VO, [2, 68]), o($VO, [2, 69]), o($VO, [2, 70]), { 31: 134, 42: [1, 135] }, { 12: [1, 136] }, { 33: [1, 137] }, o($VR, [2, 28]), o($VR, [2, 29]), o($VR, [2, 30]), o($VR, [2, 31]), o($VR, [2, 32]), o($VR, [2, 33]), o($VR, [2, 34]), { 1: [2, 9] }, { 1: [2, 10] }, { 1: [2, 11] }, { 1: [2, 12] }, o($VI, [2, 18]), o($VH, [2, 38]), o($VP, [2, 72]), o($VQ, [2, 74]), o($VO, [2, 24]), o($VO, [2, 35]), o($VS, [2, 25]), o($VS, [2, 26], { 12: [1, 138] }), o($VS, [2, 27])],\n 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] },\n parseError: /* @__PURE__ */ __name(function parseError(str, hash) {\n if (hash.recoverable) {\n this.trace(str);\n } else {\n var error = new Error(str);\n error.hash = hash;\n throw error;\n }\n }, \"parseError\"),\n parse: /* @__PURE__ */ __name(function parse(input) {\n var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = \"\", yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1;\n var args = lstack.slice.call(arguments, 1);\n var lexer2 = Object.create(this.lexer);\n var sharedState = { yy: {} };\n for (var k in this.yy) {\n if (Object.prototype.hasOwnProperty.call(this.yy, k)) {\n sharedState.yy[k] = this.yy[k];\n }\n }\n lexer2.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer2;\n sharedState.yy.parser = this;\n if (typeof lexer2.yylloc == \"undefined\") {\n lexer2.yylloc = {};\n }\n var yyloc = lexer2.yylloc;\n lstack.push(yyloc);\n var ranges = lexer2.options && lexer2.options.ranges;\n if (typeof sharedState.yy.parseError === \"function\") {\n this.parseError = sharedState.yy.parseError;\n } else {\n this.parseError = Object.getPrototypeOf(this).parseError;\n }\n function popStack(n) {\n stack.length = stack.length - 2 * n;\n vstack.length = vstack.length - n;\n lstack.length = lstack.length - n;\n }\n __name(popStack, \"popStack\");\n function lex() {\n var token;\n token = tstack.pop() || lexer2.lex() || EOF;\n if (typeof token !== \"number\") {\n if (token instanceof Array) {\n tstack = token;\n token = tstack.pop();\n }\n token = self.symbols_[token] || token;\n }\n return token;\n }\n __name(lex, \"lex\");\n var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected;\n while (true) {\n state = stack[stack.length - 1];\n if (this.defaultActions[state]) {\n action = this.defaultActions[state];\n } else {\n if (symbol === null || typeof symbol == \"undefined\") {\n symbol = lex();\n }\n action = table[state] && table[state][symbol];\n }\n if (typeof action === \"undefined\" || !action.length || !action[0]) {\n var errStr = \"\";\n expected = [];\n for (p in table[state]) {\n if (this.terminals_[p] && p > TERROR) {\n expected.push(\"'\" + this.terminals_[p] + \"'\");\n }\n }\n if (lexer2.showPosition) {\n errStr = \"Parse error on line \" + (yylineno + 1) + \":\\n\" + lexer2.showPosition() + \"\\nExpecting \" + expected.join(\", \") + \", got '\" + (this.terminals_[symbol] || symbol) + \"'\";\n } else {\n errStr = \"Parse error on line \" + (yylineno + 1) + \": Unexpected \" + (symbol == EOF ? \"end of input\" : \"'\" + (this.terminals_[symbol] || symbol) + \"'\");\n }\n this.parseError(errStr, {\n text: lexer2.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer2.yylineno,\n loc: yyloc,\n expected\n });\n }\n if (action[0] instanceof Array && action.length > 1) {\n throw new Error(\"Parse Error: multiple actions possible at state: \" + state + \", token: \" + symbol);\n }\n switch (action[0]) {\n case 1:\n stack.push(symbol);\n vstack.push(lexer2.yytext);\n lstack.push(lexer2.yylloc);\n stack.push(action[1]);\n symbol = null;\n if (!preErrorSymbol) {\n yyleng = lexer2.yyleng;\n yytext = lexer2.yytext;\n yylineno = lexer2.yylineno;\n yyloc = lexer2.yylloc;\n if (recovering > 0) {\n recovering--;\n }\n } else {\n symbol = preErrorSymbol;\n preErrorSymbol = null;\n }\n break;\n case 2:\n len = this.productions_[action[1]][1];\n yyval.$ = vstack[vstack.length - len];\n yyval._$ = {\n first_line: lstack[lstack.length - (len || 1)].first_line,\n last_line: lstack[lstack.length - 1].last_line,\n first_column: lstack[lstack.length - (len || 1)].first_column,\n last_column: lstack[lstack.length - 1].last_column\n };\n if (ranges) {\n yyval._$.range = [\n lstack[lstack.length - (len || 1)].range[0],\n lstack[lstack.length - 1].range[1]\n ];\n }\n r = this.performAction.apply(yyval, [\n yytext,\n yyleng,\n yylineno,\n sharedState.yy,\n action[1],\n vstack,\n lstack\n ].concat(args));\n if (typeof r !== \"undefined\") {\n return r;\n }\n if (len) {\n stack = stack.slice(0, -1 * len * 2);\n vstack = vstack.slice(0, -1 * len);\n lstack = lstack.slice(0, -1 * len);\n }\n stack.push(this.productions_[action[1]][0]);\n vstack.push(yyval.$);\n lstack.push(yyval._$);\n newState = table[stack[stack.length - 2]][stack[stack.length - 1]];\n stack.push(newState);\n break;\n case 3:\n return true;\n }\n }\n return true;\n }, \"parse\")\n };\n var lexer = /* @__PURE__ */ function() {\n var lexer2 = {\n EOF: 1,\n parseError: /* @__PURE__ */ __name(function parseError(str, hash) {\n if (this.yy.parser) {\n this.yy.parser.parseError(str, hash);\n } else {\n throw new Error(str);\n }\n }, \"parseError\"),\n // resets the lexer, sets new input\n setInput: /* @__PURE__ */ __name(function(input, yy) {\n this.yy = yy || this.yy || {};\n this._input = input;\n this._more = this._backtrack = this.done = false;\n this.yylineno = this.yyleng = 0;\n this.yytext = this.matched = this.match = \"\";\n this.conditionStack = [\"INITIAL\"];\n this.yylloc = {\n first_line: 1,\n first_column: 0,\n last_line: 1,\n last_column: 0\n };\n if (this.options.ranges) {\n this.yylloc.range = [0, 0];\n }\n this.offset = 0;\n return this;\n }, \"setInput\"),\n // consumes and returns one char from the input\n input: /* @__PURE__ */ __name(function() {\n var ch = this._input[0];\n this.yytext += ch;\n this.yyleng++;\n this.offset++;\n this.match += ch;\n this.matched += ch;\n var lines = ch.match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno++;\n this.yylloc.last_line++;\n } else {\n this.yylloc.last_column++;\n }\n if (this.options.ranges) {\n this.yylloc.range[1]++;\n }\n this._input = this._input.slice(1);\n return ch;\n }, \"input\"),\n // unshifts one char (or a string) into the input\n unput: /* @__PURE__ */ __name(function(ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n this.offset -= len;\n var oldLines = this.match.split(/(?:\\r\\n?|\\n)/g);\n this.match = this.match.substr(0, this.match.length - 1);\n this.matched = this.matched.substr(0, this.matched.length - 1);\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n this.yylloc = {\n first_line: this.yylloc.first_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.first_column,\n last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len\n };\n if (this.options.ranges) {\n this.yylloc.range = [r[0], r[0] + this.yyleng - len];\n }\n this.yyleng = this.yytext.length;\n return this;\n }, \"unput\"),\n // When called from action, caches matched text and appends it on next action\n more: /* @__PURE__ */ __name(function() {\n this._more = true;\n return this;\n }, \"more\"),\n // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.\n reject: /* @__PURE__ */ __name(function() {\n if (this.options.backtrack_lexer) {\n this._backtrack = true;\n } else {\n 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).\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n return this;\n }, \"reject\"),\n // retain first n characters of the match\n less: /* @__PURE__ */ __name(function(n) {\n this.unput(this.match.slice(n));\n }, \"less\"),\n // displays already matched input, i.e. for error messages\n pastInput: /* @__PURE__ */ __name(function() {\n var past = this.matched.substr(0, this.matched.length - this.match.length);\n return (past.length > 20 ? \"...\" : \"\") + past.substr(-20).replace(/\\n/g, \"\");\n }, \"pastInput\"),\n // displays upcoming input, i.e. for error messages\n upcomingInput: /* @__PURE__ */ __name(function() {\n var next = this.match;\n if (next.length < 20) {\n next += this._input.substr(0, 20 - next.length);\n }\n return (next.substr(0, 20) + (next.length > 20 ? \"...\" : \"\")).replace(/\\n/g, \"\");\n }, \"upcomingInput\"),\n // displays the character position where the lexing error occurred, i.e. for error messages\n showPosition: /* @__PURE__ */ __name(function() {\n var pre = this.pastInput();\n var c2 = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c2 + \"^\";\n }, \"showPosition\"),\n // test the lexed token: return FALSE when not a match, otherwise return token\n test_match: /* @__PURE__ */ __name(function(match, indexed_rule) {\n var token, lines, backup;\n if (this.options.backtrack_lexer) {\n backup = {\n yylineno: this.yylineno,\n yylloc: {\n first_line: this.yylloc.first_line,\n last_line: this.last_line,\n first_column: this.yylloc.first_column,\n last_column: this.yylloc.last_column\n },\n yytext: this.yytext,\n match: this.match,\n matches: this.matches,\n matched: this.matched,\n yyleng: this.yyleng,\n offset: this.offset,\n _more: this._more,\n _input: this._input,\n yy: this.yy,\n conditionStack: this.conditionStack.slice(0),\n done: this.done\n };\n if (this.options.ranges) {\n backup.yylloc.range = this.yylloc.range.slice(0);\n }\n }\n lines = match[0].match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno += lines.length;\n }\n this.yylloc = {\n first_line: this.yylloc.last_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.last_column,\n last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length : this.yylloc.last_column + match[0].length\n };\n this.yytext += match[0];\n this.match += match[0];\n this.matches = match;\n this.yyleng = this.yytext.length;\n if (this.options.ranges) {\n this.yylloc.range = [this.offset, this.offset += this.yyleng];\n }\n this._more = false;\n this._backtrack = false;\n this._input = this._input.slice(match[0].length);\n this.matched += match[0];\n token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);\n if (this.done && this._input) {\n this.done = false;\n }\n if (token) {\n return token;\n } else if (this._backtrack) {\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false;\n }\n return false;\n }, \"test_match\"),\n // return next match in input\n next: /* @__PURE__ */ __name(function() {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n var token, match, tempMatch, index;\n if (!this._more) {\n this.yytext = \"\";\n this.match = \"\";\n }\n var rules = this._currentRules();\n for (var i = 0; i < rules.length; i++) {\n tempMatch = this._input.match(this.rules[rules[i]]);\n if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {\n match = tempMatch;\n index = i;\n if (this.options.backtrack_lexer) {\n token = this.test_match(tempMatch, rules[i]);\n if (token !== false) {\n return token;\n } else if (this._backtrack) {\n match = false;\n continue;\n } else {\n return false;\n }\n } else if (!this.options.flex) {\n break;\n }\n }\n }\n if (match) {\n token = this.test_match(match, rules[index]);\n if (token !== false) {\n return token;\n }\n return false;\n }\n if (this._input === \"\") {\n return this.EOF;\n } else {\n return this.parseError(\"Lexical error on line \" + (this.yylineno + 1) + \". Unrecognized text.\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n }, \"next\"),\n // return next match that has a token\n lex: /* @__PURE__ */ __name(function lex() {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n }, \"lex\"),\n // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\n begin: /* @__PURE__ */ __name(function begin(condition) {\n this.conditionStack.push(condition);\n }, \"begin\"),\n // pop the previously active lexer condition state off the condition stack\n popState: /* @__PURE__ */ __name(function popState() {\n var n = this.conditionStack.length - 1;\n if (n > 0) {\n return this.conditionStack.pop();\n } else {\n return this.conditionStack[0];\n }\n }, \"popState\"),\n // produce the lexer rule set which is active for the currently active lexer condition state\n _currentRules: /* @__PURE__ */ __name(function _currentRules() {\n if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {\n return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;\n } else {\n return this.conditions[\"INITIAL\"].rules;\n }\n }, \"_currentRules\"),\n // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\n topState: /* @__PURE__ */ __name(function topState(n) {\n n = this.conditionStack.length - 1 - Math.abs(n || 0);\n if (n >= 0) {\n return this.conditionStack[n];\n } else {\n return \"INITIAL\";\n }\n }, \"topState\"),\n // alias for begin(condition)\n pushState: /* @__PURE__ */ __name(function pushState(condition) {\n this.begin(condition);\n }, \"pushState\"),\n // return the number of states currently on the stack\n stateStackSize: /* @__PURE__ */ __name(function stateStackSize() {\n return this.conditionStack.length;\n }, \"stateStackSize\"),\n options: {},\n performAction: /* @__PURE__ */ __name(function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {\n var YYSTATE = YY_START;\n switch ($avoiding_name_collisions) {\n case 0:\n return 6;\n break;\n case 1:\n return 7;\n break;\n case 2:\n return 8;\n break;\n case 3:\n return 9;\n break;\n case 4:\n return 22;\n break;\n case 5:\n return 23;\n break;\n case 6:\n this.begin(\"acc_title\");\n return 24;\n break;\n case 7:\n this.popState();\n return \"acc_title_value\";\n break;\n case 8:\n this.begin(\"acc_descr\");\n return 26;\n break;\n case 9:\n this.popState();\n return \"acc_descr_value\";\n break;\n case 10:\n this.begin(\"acc_descr_multiline\");\n break;\n case 11:\n this.popState();\n break;\n case 12:\n return \"acc_descr_multiline_value\";\n break;\n case 13:\n break;\n case 14:\n c;\n break;\n case 15:\n return 12;\n break;\n case 16:\n break;\n case 17:\n return 11;\n break;\n case 18:\n return 15;\n break;\n case 19:\n return 16;\n break;\n case 20:\n return 17;\n break;\n case 21:\n return 18;\n break;\n case 22:\n this.begin(\"person_ext\");\n return 45;\n break;\n case 23:\n this.begin(\"person\");\n return 44;\n break;\n case 24:\n this.begin(\"system_ext_queue\");\n return 51;\n break;\n case 25:\n this.begin(\"system_ext_db\");\n return 50;\n break;\n case 26:\n this.begin(\"system_ext\");\n return 49;\n break;\n case 27:\n this.begin(\"system_queue\");\n return 48;\n break;\n case 28:\n this.begin(\"system_db\");\n return 47;\n break;\n case 29:\n this.begin(\"system\");\n return 46;\n break;\n case 30:\n this.begin(\"boundary\");\n return 37;\n break;\n case 31:\n this.begin(\"enterprise_boundary\");\n return 34;\n break;\n case 32:\n this.begin(\"system_boundary\");\n return 36;\n break;\n case 33:\n this.begin(\"container_ext_queue\");\n return 57;\n break;\n case 34:\n this.begin(\"container_ext_db\");\n return 56;\n break;\n case 35:\n this.begin(\"container_ext\");\n return 55;\n break;\n case 36:\n this.begin(\"container_queue\");\n return 54;\n break;\n case 37:\n this.begin(\"container_db\");\n return 53;\n break;\n case 38:\n this.begin(\"container\");\n return 52;\n break;\n case 39:\n this.begin(\"container_boundary\");\n return 38;\n break;\n case 40:\n this.begin(\"component_ext_queue\");\n return 63;\n break;\n case 41:\n this.begin(\"component_ext_db\");\n return 62;\n break;\n case 42:\n this.begin(\"component_ext\");\n return 61;\n break;\n case 43:\n this.begin(\"component_queue\");\n return 60;\n break;\n case 44:\n this.begin(\"component_db\");\n return 59;\n break;\n case 45:\n this.begin(\"component\");\n return 58;\n break;\n case 46:\n this.begin(\"node\");\n return 39;\n break;\n case 47:\n this.begin(\"node\");\n return 39;\n break;\n case 48:\n this.begin(\"node_l\");\n return 40;\n break;\n case 49:\n this.begin(\"node_r\");\n return 41;\n break;\n case 50:\n this.begin(\"rel\");\n return 64;\n break;\n case 51:\n this.begin(\"birel\");\n return 65;\n break;\n case 52:\n this.begin(\"rel_u\");\n return 66;\n break;\n case 53:\n this.begin(\"rel_u\");\n return 66;\n break;\n case 54:\n this.begin(\"rel_d\");\n return 67;\n break;\n case 55:\n this.begin(\"rel_d\");\n return 67;\n break;\n case 56:\n this.begin(\"rel_l\");\n return 68;\n break;\n case 57:\n this.begin(\"rel_l\");\n return 68;\n break;\n case 58:\n this.begin(\"rel_r\");\n return 69;\n break;\n case 59:\n this.begin(\"rel_r\");\n return 69;\n break;\n case 60:\n this.begin(\"rel_b\");\n return 70;\n break;\n case 61:\n this.begin(\"rel_index\");\n return 71;\n break;\n case 62:\n this.begin(\"update_el_style\");\n return 72;\n break;\n case 63:\n this.begin(\"update_rel_style\");\n return 73;\n break;\n case 64:\n this.begin(\"update_layout_config\");\n return 74;\n break;\n case 65:\n return \"EOF_IN_STRUCT\";\n break;\n case 66:\n this.begin(\"attribute\");\n return \"ATTRIBUTE_EMPTY\";\n break;\n case 67:\n this.begin(\"attribute\");\n break;\n case 68:\n this.popState();\n this.popState();\n break;\n case 69:\n return 80;\n break;\n case 70:\n break;\n case 71:\n return 80;\n break;\n case 72:\n this.begin(\"string\");\n break;\n case 73:\n this.popState();\n break;\n case 74:\n return \"STR\";\n break;\n case 75:\n this.begin(\"string_kv\");\n break;\n case 76:\n this.begin(\"string_kv_key\");\n return \"STR_KEY\";\n break;\n case 77:\n this.popState();\n this.begin(\"string_kv_value\");\n break;\n case 78:\n return \"STR_VALUE\";\n break;\n case 79:\n this.popState();\n this.popState();\n break;\n case 80:\n return \"STR\";\n break;\n case 81:\n return \"LBRACE\";\n break;\n case 82:\n return \"RBRACE\";\n break;\n case 83:\n return \"SPACE\";\n break;\n case 84:\n return \"EOL\";\n break;\n case 85:\n return 14;\n break;\n }\n }, \"anonymous\"),\n 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]+)/, /^(?:$)/],\n conditions: { \"acc_descr_multiline\": { \"rules\": [11, 12], \"inclusive\": false }, \"acc_descr\": { \"rules\": [9], \"inclusive\": false }, \"acc_title\": { \"rules\": [7], \"inclusive\": false }, \"string_kv_value\": { \"rules\": [78, 79], \"inclusive\": false }, \"string_kv_key\": { \"rules\": [77], \"inclusive\": false }, \"string_kv\": { \"rules\": [76], \"inclusive\": false }, \"string\": { \"rules\": [73, 74], \"inclusive\": false }, \"attribute\": { \"rules\": [68, 69, 70, 71, 72, 75, 80], \"inclusive\": false }, \"update_layout_config\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"update_rel_style\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"update_el_style\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"rel_b\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"rel_r\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"rel_l\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"rel_d\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"rel_u\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"rel_bi\": { \"rules\": [], \"inclusive\": false }, \"rel\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"node_r\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"node_l\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"node\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"index\": { \"rules\": [], \"inclusive\": false }, \"rel_index\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"component_ext_queue\": { \"rules\": [], \"inclusive\": false }, \"component_ext_db\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"component_ext\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"component_queue\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"component_db\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"component\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"container_boundary\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"container_ext_queue\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"container_ext_db\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"container_ext\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"container_queue\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"container_db\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"container\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"birel\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"system_boundary\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"enterprise_boundary\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"boundary\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"system_ext_queue\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"system_ext_db\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"system_ext\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"system_queue\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"system_db\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"system\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"person_ext\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"person\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"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\": true } }\n };\n return lexer2;\n }();\n parser2.lexer = lexer;\n function Parser() {\n this.yy = {};\n }\n __name(Parser, \"Parser\");\n Parser.prototype = parser2;\n parser2.Parser = Parser;\n return new Parser();\n}();\nparser.parser = parser;\nvar c4Diagram_default = parser;\n\n// src/diagrams/c4/c4Db.js\nvar c4ShapeArray = [];\nvar boundaryParseStack = [\"\"];\nvar currentBoundaryParse = \"global\";\nvar parentBoundaryParse = \"\";\nvar boundaries = [\n {\n alias: \"global\",\n label: { text: \"global\" },\n type: { text: \"global\" },\n tags: null,\n link: null,\n parentBoundary: \"\"\n }\n];\nvar rels = [];\nvar title = \"\";\nvar wrapEnabled = false;\nvar c4ShapeInRow = 4;\nvar c4BoundaryInRow = 2;\nvar c4Type;\nvar getC4Type = /* @__PURE__ */ __name(function() {\n return c4Type;\n}, \"getC4Type\");\nvar setC4Type = /* @__PURE__ */ __name(function(c4TypeParam) {\n let sanitizedText = sanitizeText(c4TypeParam, getConfig());\n c4Type = sanitizedText;\n}, \"setC4Type\");\nvar addRel = /* @__PURE__ */ __name(function(type, from, to, label, techn, descr, sprite, tags, link) {\n if (type === void 0 || type === null || from === void 0 || from === null || to === void 0 || to === null || label === void 0 || label === null) {\n return;\n }\n let rel = {};\n const old = rels.find((rel2) => rel2.from === from && rel2.to === to);\n if (old) {\n rel = old;\n } else {\n rels.push(rel);\n }\n rel.type = type;\n rel.from = from;\n rel.to = to;\n rel.label = { text: label };\n if (techn === void 0 || techn === null) {\n rel.techn = { text: \"\" };\n } else {\n if (typeof techn === \"object\") {\n let [key, value] = Object.entries(techn)[0];\n rel[key] = { text: value };\n } else {\n rel.techn = { text: techn };\n }\n }\n if (descr === void 0 || descr === null) {\n rel.descr = { text: \"\" };\n } else {\n if (typeof descr === \"object\") {\n let [key, value] = Object.entries(descr)[0];\n rel[key] = { text: value };\n } else {\n rel.descr = { text: descr };\n }\n }\n if (typeof sprite === \"object\") {\n let [key, value] = Object.entries(sprite)[0];\n rel[key] = value;\n } else {\n rel.sprite = sprite;\n }\n if (typeof tags === \"object\") {\n let [key, value] = Object.entries(tags)[0];\n rel[key] = value;\n } else {\n rel.tags = tags;\n }\n if (typeof link === \"object\") {\n let [key, value] = Object.entries(link)[0];\n rel[key] = value;\n } else {\n rel.link = link;\n }\n rel.wrap = autoWrap();\n}, \"addRel\");\nvar addPersonOrSystem = /* @__PURE__ */ __name(function(typeC4Shape, alias, label, descr, sprite, tags, link) {\n if (alias === null || label === null) {\n return;\n }\n let personOrSystem = {};\n const old = c4ShapeArray.find((personOrSystem2) => personOrSystem2.alias === alias);\n if (old && alias === old.alias) {\n personOrSystem = old;\n } else {\n personOrSystem.alias = alias;\n c4ShapeArray.push(personOrSystem);\n }\n if (label === void 0 || label === null) {\n personOrSystem.label = { text: \"\" };\n } else {\n personOrSystem.label = { text: label };\n }\n if (descr === void 0 || descr === null) {\n personOrSystem.descr = { text: \"\" };\n } else {\n if (typeof descr === \"object\") {\n let [key, value] = Object.entries(descr)[0];\n personOrSystem[key] = { text: value };\n } else {\n personOrSystem.descr = { text: descr };\n }\n }\n if (typeof sprite === \"object\") {\n let [key, value] = Object.entries(sprite)[0];\n personOrSystem[key] = value;\n } else {\n personOrSystem.sprite = sprite;\n }\n if (typeof tags === \"object\") {\n let [key, value] = Object.entries(tags)[0];\n personOrSystem[key] = value;\n } else {\n personOrSystem.tags = tags;\n }\n if (typeof link === \"object\") {\n let [key, value] = Object.entries(link)[0];\n personOrSystem[key] = value;\n } else {\n personOrSystem.link = link;\n }\n personOrSystem.typeC4Shape = { text: typeC4Shape };\n personOrSystem.parentBoundary = currentBoundaryParse;\n personOrSystem.wrap = autoWrap();\n}, \"addPersonOrSystem\");\nvar addContainer = /* @__PURE__ */ __name(function(typeC4Shape, alias, label, techn, descr, sprite, tags, link) {\n if (alias === null || label === null) {\n return;\n }\n let container = {};\n const old = c4ShapeArray.find((container2) => container2.alias === alias);\n if (old && alias === old.alias) {\n container = old;\n } else {\n container.alias = alias;\n c4ShapeArray.push(container);\n }\n if (label === void 0 || label === null) {\n container.label = { text: \"\" };\n } else {\n container.label = { text: label };\n }\n if (techn === void 0 || techn === null) {\n container.techn = { text: \"\" };\n } else {\n if (typeof techn === \"object\") {\n let [key, value] = Object.entries(techn)[0];\n container[key] = { text: value };\n } else {\n container.techn = { text: techn };\n }\n }\n if (descr === void 0 || descr === null) {\n container.descr = { text: \"\" };\n } else {\n if (typeof descr === \"object\") {\n let [key, value] = Object.entries(descr)[0];\n container[key] = { text: value };\n } else {\n container.descr = { text: descr };\n }\n }\n if (typeof sprite === \"object\") {\n let [key, value] = Object.entries(sprite)[0];\n container[key] = value;\n } else {\n container.sprite = sprite;\n }\n if (typeof tags === \"object\") {\n let [key, value] = Object.entries(tags)[0];\n container[key] = value;\n } else {\n container.tags = tags;\n }\n if (typeof link === \"object\") {\n let [key, value] = Object.entries(link)[0];\n container[key] = value;\n } else {\n container.link = link;\n }\n container.wrap = autoWrap();\n container.typeC4Shape = { text: typeC4Shape };\n container.parentBoundary = currentBoundaryParse;\n}, \"addContainer\");\nvar addComponent = /* @__PURE__ */ __name(function(typeC4Shape, alias, label, techn, descr, sprite, tags, link) {\n if (alias === null || label === null) {\n return;\n }\n let component = {};\n const old = c4ShapeArray.find((component2) => component2.alias === alias);\n if (old && alias === old.alias) {\n component = old;\n } else {\n component.alias = alias;\n c4ShapeArray.push(component);\n }\n if (label === void 0 || label === null) {\n component.label = { text: \"\" };\n } else {\n component.label = { text: label };\n }\n if (techn === void 0 || techn === null) {\n component.techn = { text: \"\" };\n } else {\n if (typeof techn === \"object\") {\n let [key, value] = Object.entries(techn)[0];\n component[key] = { text: value };\n } else {\n component.techn = { text: techn };\n }\n }\n if (descr === void 0 || descr === null) {\n component.descr = { text: \"\" };\n } else {\n if (typeof descr === \"object\") {\n let [key, value] = Object.entries(descr)[0];\n component[key] = { text: value };\n } else {\n component.descr = { text: descr };\n }\n }\n if (typeof sprite === \"object\") {\n let [key, value] = Object.entries(sprite)[0];\n component[key] = value;\n } else {\n component.sprite = sprite;\n }\n if (typeof tags === \"object\") {\n let [key, value] = Object.entries(tags)[0];\n component[key] = value;\n } else {\n component.tags = tags;\n }\n if (typeof link === \"object\") {\n let [key, value] = Object.entries(link)[0];\n component[key] = value;\n } else {\n component.link = link;\n }\n component.wrap = autoWrap();\n component.typeC4Shape = { text: typeC4Shape };\n component.parentBoundary = currentBoundaryParse;\n}, \"addComponent\");\nvar addPersonOrSystemBoundary = /* @__PURE__ */ __name(function(alias, label, type, tags, link) {\n if (alias === null || label === null) {\n return;\n }\n let boundary = {};\n const old = boundaries.find((boundary2) => boundary2.alias === alias);\n if (old && alias === old.alias) {\n boundary = old;\n } else {\n boundary.alias = alias;\n boundaries.push(boundary);\n }\n if (label === void 0 || label === null) {\n boundary.label = { text: \"\" };\n } else {\n boundary.label = { text: label };\n }\n if (type === void 0 || type === null) {\n boundary.type = { text: \"system\" };\n } else {\n if (typeof type === \"object\") {\n let [key, value] = Object.entries(type)[0];\n boundary[key] = { text: value };\n } else {\n boundary.type = { text: type };\n }\n }\n if (typeof tags === \"object\") {\n let [key, value] = Object.entries(tags)[0];\n boundary[key] = value;\n } else {\n boundary.tags = tags;\n }\n if (typeof link === \"object\") {\n let [key, value] = Object.entries(link)[0];\n boundary[key] = value;\n } else {\n boundary.link = link;\n }\n boundary.parentBoundary = currentBoundaryParse;\n boundary.wrap = autoWrap();\n parentBoundaryParse = currentBoundaryParse;\n currentBoundaryParse = alias;\n boundaryParseStack.push(parentBoundaryParse);\n}, \"addPersonOrSystemBoundary\");\nvar addContainerBoundary = /* @__PURE__ */ __name(function(alias, label, type, tags, link) {\n if (alias === null || label === null) {\n return;\n }\n let boundary = {};\n const old = boundaries.find((boundary2) => boundary2.alias === alias);\n if (old && alias === old.alias) {\n boundary = old;\n } else {\n boundary.alias = alias;\n boundaries.push(boundary);\n }\n if (label === void 0 || label === null) {\n boundary.label = { text: \"\" };\n } else {\n boundary.label = { text: label };\n }\n if (type === void 0 || type === null) {\n boundary.type = { text: \"container\" };\n } else {\n if (typeof type === \"object\") {\n let [key, value] = Object.entries(type)[0];\n boundary[key] = { text: value };\n } else {\n boundary.type = { text: type };\n }\n }\n if (typeof tags === \"object\") {\n let [key, value] = Object.entries(tags)[0];\n boundary[key] = value;\n } else {\n boundary.tags = tags;\n }\n if (typeof link === \"object\") {\n let [key, value] = Object.entries(link)[0];\n boundary[key] = value;\n } else {\n boundary.link = link;\n }\n boundary.parentBoundary = currentBoundaryParse;\n boundary.wrap = autoWrap();\n parentBoundaryParse = currentBoundaryParse;\n currentBoundaryParse = alias;\n boundaryParseStack.push(parentBoundaryParse);\n}, \"addContainerBoundary\");\nvar addDeploymentNode = /* @__PURE__ */ __name(function(nodeType, alias, label, type, descr, sprite, tags, link) {\n if (alias === null || label === null) {\n return;\n }\n let boundary = {};\n const old = boundaries.find((boundary2) => boundary2.alias === alias);\n if (old && alias === old.alias) {\n boundary = old;\n } else {\n boundary.alias = alias;\n boundaries.push(boundary);\n }\n if (label === void 0 || label === null) {\n boundary.label = { text: \"\" };\n } else {\n boundary.label = { text: label };\n }\n if (type === void 0 || type === null) {\n boundary.type = { text: \"node\" };\n } else {\n if (typeof type === \"object\") {\n let [key, value] = Object.entries(type)[0];\n boundary[key] = { text: value };\n } else {\n boundary.type = { text: type };\n }\n }\n if (descr === void 0 || descr === null) {\n boundary.descr = { text: \"\" };\n } else {\n if (typeof descr === \"object\") {\n let [key, value] = Object.entries(descr)[0];\n boundary[key] = { text: value };\n } else {\n boundary.descr = { text: descr };\n }\n }\n if (typeof tags === \"object\") {\n let [key, value] = Object.entries(tags)[0];\n boundary[key] = value;\n } else {\n boundary.tags = tags;\n }\n if (typeof link === \"object\") {\n let [key, value] = Object.entries(link)[0];\n boundary[key] = value;\n } else {\n boundary.link = link;\n }\n boundary.nodeType = nodeType;\n boundary.parentBoundary = currentBoundaryParse;\n boundary.wrap = autoWrap();\n parentBoundaryParse = currentBoundaryParse;\n currentBoundaryParse = alias;\n boundaryParseStack.push(parentBoundaryParse);\n}, \"addDeploymentNode\");\nvar popBoundaryParseStack = /* @__PURE__ */ __name(function() {\n currentBoundaryParse = parentBoundaryParse;\n boundaryParseStack.pop();\n parentBoundaryParse = boundaryParseStack.pop();\n boundaryParseStack.push(parentBoundaryParse);\n}, \"popBoundaryParseStack\");\nvar updateElStyle = /* @__PURE__ */ __name(function(typeC4Shape, elementName, bgColor, fontColor, borderColor, shadowing, shape, sprite, techn, legendText, legendSprite) {\n let old = c4ShapeArray.find((element) => element.alias === elementName);\n if (old === void 0) {\n old = boundaries.find((element) => element.alias === elementName);\n if (old === void 0) {\n return;\n }\n }\n if (bgColor !== void 0 && bgColor !== null) {\n if (typeof bgColor === \"object\") {\n let [key, value] = Object.entries(bgColor)[0];\n old[key] = value;\n } else {\n old.bgColor = bgColor;\n }\n }\n if (fontColor !== void 0 && fontColor !== null) {\n if (typeof fontColor === \"object\") {\n let [key, value] = Object.entries(fontColor)[0];\n old[key] = value;\n } else {\n old.fontColor = fontColor;\n }\n }\n if (borderColor !== void 0 && borderColor !== null) {\n if (typeof borderColor === \"object\") {\n let [key, value] = Object.entries(borderColor)[0];\n old[key] = value;\n } else {\n old.borderColor = borderColor;\n }\n }\n if (shadowing !== void 0 && shadowing !== null) {\n if (typeof shadowing === \"object\") {\n let [key, value] = Object.entries(shadowing)[0];\n old[key] = value;\n } else {\n old.shadowing = shadowing;\n }\n }\n if (shape !== void 0 && shape !== null) {\n if (typeof shape === \"object\") {\n let [key, value] = Object.entries(shape)[0];\n old[key] = value;\n } else {\n old.shape = shape;\n }\n }\n if (sprite !== void 0 && sprite !== null) {\n if (typeof sprite === \"object\") {\n let [key, value] = Object.entries(sprite)[0];\n old[key] = value;\n } else {\n old.sprite = sprite;\n }\n }\n if (techn !== void 0 && techn !== null) {\n if (typeof techn === \"object\") {\n let [key, value] = Object.entries(techn)[0];\n old[key] = value;\n } else {\n old.techn = techn;\n }\n }\n if (legendText !== void 0 && legendText !== null) {\n if (typeof legendText === \"object\") {\n let [key, value] = Object.entries(legendText)[0];\n old[key] = value;\n } else {\n old.legendText = legendText;\n }\n }\n if (legendSprite !== void 0 && legendSprite !== null) {\n if (typeof legendSprite === \"object\") {\n let [key, value] = Object.entries(legendSprite)[0];\n old[key] = value;\n } else {\n old.legendSprite = legendSprite;\n }\n }\n}, \"updateElStyle\");\nvar updateRelStyle = /* @__PURE__ */ __name(function(typeC4Shape, from, to, textColor, lineColor, offsetX, offsetY) {\n const old = rels.find((rel) => rel.from === from && rel.to === to);\n if (old === void 0) {\n return;\n }\n if (textColor !== void 0 && textColor !== null) {\n if (typeof textColor === \"object\") {\n let [key, value] = Object.entries(textColor)[0];\n old[key] = value;\n } else {\n old.textColor = textColor;\n }\n }\n if (lineColor !== void 0 && lineColor !== null) {\n if (typeof lineColor === \"object\") {\n let [key, value] = Object.entries(lineColor)[0];\n old[key] = value;\n } else {\n old.lineColor = lineColor;\n }\n }\n if (offsetX !== void 0 && offsetX !== null) {\n if (typeof offsetX === \"object\") {\n let [key, value] = Object.entries(offsetX)[0];\n old[key] = parseInt(value);\n } else {\n old.offsetX = parseInt(offsetX);\n }\n }\n if (offsetY !== void 0 && offsetY !== null) {\n if (typeof offsetY === \"object\") {\n let [key, value] = Object.entries(offsetY)[0];\n old[key] = parseInt(value);\n } else {\n old.offsetY = parseInt(offsetY);\n }\n }\n}, \"updateRelStyle\");\nvar updateLayoutConfig = /* @__PURE__ */ __name(function(typeC4Shape, c4ShapeInRowParam, c4BoundaryInRowParam) {\n let c4ShapeInRowValue = c4ShapeInRow;\n let c4BoundaryInRowValue = c4BoundaryInRow;\n if (typeof c4ShapeInRowParam === \"object\") {\n const value = Object.values(c4ShapeInRowParam)[0];\n c4ShapeInRowValue = parseInt(value);\n } else {\n c4ShapeInRowValue = parseInt(c4ShapeInRowParam);\n }\n if (typeof c4BoundaryInRowParam === \"object\") {\n const value = Object.values(c4BoundaryInRowParam)[0];\n c4BoundaryInRowValue = parseInt(value);\n } else {\n c4BoundaryInRowValue = parseInt(c4BoundaryInRowParam);\n }\n if (c4ShapeInRowValue >= 1) {\n c4ShapeInRow = c4ShapeInRowValue;\n }\n if (c4BoundaryInRowValue >= 1) {\n c4BoundaryInRow = c4BoundaryInRowValue;\n }\n}, \"updateLayoutConfig\");\nvar getC4ShapeInRow = /* @__PURE__ */ __name(function() {\n return c4ShapeInRow;\n}, \"getC4ShapeInRow\");\nvar getC4BoundaryInRow = /* @__PURE__ */ __name(function() {\n return c4BoundaryInRow;\n}, \"getC4BoundaryInRow\");\nvar getCurrentBoundaryParse = /* @__PURE__ */ __name(function() {\n return currentBoundaryParse;\n}, \"getCurrentBoundaryParse\");\nvar getParentBoundaryParse = /* @__PURE__ */ __name(function() {\n return parentBoundaryParse;\n}, \"getParentBoundaryParse\");\nvar getC4ShapeArray = /* @__PURE__ */ __name(function(parentBoundary) {\n if (parentBoundary === void 0 || parentBoundary === null) {\n return c4ShapeArray;\n } else {\n return c4ShapeArray.filter((personOrSystem) => {\n return personOrSystem.parentBoundary === parentBoundary;\n });\n }\n}, \"getC4ShapeArray\");\nvar getC4Shape = /* @__PURE__ */ __name(function(alias) {\n return c4ShapeArray.find((personOrSystem) => personOrSystem.alias === alias);\n}, \"getC4Shape\");\nvar getC4ShapeKeys = /* @__PURE__ */ __name(function(parentBoundary) {\n return Object.keys(getC4ShapeArray(parentBoundary));\n}, \"getC4ShapeKeys\");\nvar getBoundaries = /* @__PURE__ */ __name(function(parentBoundary) {\n if (parentBoundary === void 0 || parentBoundary === null) {\n return boundaries;\n } else {\n return boundaries.filter((boundary) => boundary.parentBoundary === parentBoundary);\n }\n}, \"getBoundaries\");\nvar getBoundarys = getBoundaries;\nvar getRels = /* @__PURE__ */ __name(function() {\n return rels;\n}, \"getRels\");\nvar getTitle = /* @__PURE__ */ __name(function() {\n return title;\n}, \"getTitle\");\nvar setWrap = /* @__PURE__ */ __name(function(wrapSetting) {\n wrapEnabled = wrapSetting;\n}, \"setWrap\");\nvar autoWrap = /* @__PURE__ */ __name(function() {\n return wrapEnabled;\n}, \"autoWrap\");\nvar clear = /* @__PURE__ */ __name(function() {\n c4ShapeArray = [];\n boundaries = [\n {\n alias: \"global\",\n label: { text: \"global\" },\n type: { text: \"global\" },\n tags: null,\n link: null,\n parentBoundary: \"\"\n }\n ];\n parentBoundaryParse = \"\";\n currentBoundaryParse = \"global\";\n boundaryParseStack = [\"\"];\n rels = [];\n boundaryParseStack = [\"\"];\n title = \"\";\n wrapEnabled = false;\n c4ShapeInRow = 4;\n c4BoundaryInRow = 2;\n}, \"clear\");\nvar LINETYPE = {\n SOLID: 0,\n DOTTED: 1,\n NOTE: 2,\n SOLID_CROSS: 3,\n DOTTED_CROSS: 4,\n SOLID_OPEN: 5,\n DOTTED_OPEN: 6,\n LOOP_START: 10,\n LOOP_END: 11,\n ALT_START: 12,\n ALT_ELSE: 13,\n ALT_END: 14,\n OPT_START: 15,\n OPT_END: 16,\n ACTIVE_START: 17,\n ACTIVE_END: 18,\n PAR_START: 19,\n PAR_AND: 20,\n PAR_END: 21,\n RECT_START: 22,\n RECT_END: 23,\n SOLID_POINT: 24,\n DOTTED_POINT: 25\n};\nvar ARROWTYPE = {\n FILLED: 0,\n OPEN: 1\n};\nvar PLACEMENT = {\n LEFTOF: 0,\n RIGHTOF: 1,\n OVER: 2\n};\nvar setTitle = /* @__PURE__ */ __name(function(txt) {\n let sanitizedText = sanitizeText(txt, getConfig());\n title = sanitizedText;\n}, \"setTitle\");\nvar c4Db_default = {\n addPersonOrSystem,\n addPersonOrSystemBoundary,\n addContainer,\n addContainerBoundary,\n addComponent,\n addDeploymentNode,\n popBoundaryParseStack,\n addRel,\n updateElStyle,\n updateRelStyle,\n updateLayoutConfig,\n autoWrap,\n setWrap,\n getC4ShapeArray,\n getC4Shape,\n getC4ShapeKeys,\n getBoundaries,\n getBoundarys,\n getCurrentBoundaryParse,\n getParentBoundaryParse,\n getRels,\n getTitle,\n getC4Type,\n getC4ShapeInRow,\n getC4BoundaryInRow,\n setAccTitle,\n getAccTitle,\n getAccDescription,\n setAccDescription,\n getConfig: /* @__PURE__ */ __name(() => getConfig().c4, \"getConfig\"),\n clear,\n LINETYPE,\n ARROWTYPE,\n PLACEMENT,\n setTitle,\n setC4Type\n // apply,\n};\n\n// src/diagrams/c4/c4Renderer.js\nimport { select } from \"d3\";\n\n// src/diagrams/c4/svgDraw.js\nimport { sanitizeUrl } from \"@braintree/sanitize-url\";\nvar drawRect2 = /* @__PURE__ */ __name(function(elem, rectData) {\n return drawRect(elem, rectData);\n}, \"drawRect\");\nvar drawImage = /* @__PURE__ */ __name(function(elem, width, height, x, y, link) {\n const imageElem = elem.append(\"image\");\n imageElem.attr(\"width\", width);\n imageElem.attr(\"height\", height);\n imageElem.attr(\"x\", x);\n imageElem.attr(\"y\", y);\n let sanitizedLink = link.startsWith(\"data:image/png;base64\") ? link : sanitizeUrl(link);\n imageElem.attr(\"xlink:href\", sanitizedLink);\n}, \"drawImage\");\nvar drawRels = /* @__PURE__ */ __name((elem, rels2, conf2) => {\n const relsElem = elem.append(\"g\");\n let i = 0;\n for (let rel of rels2) {\n let textColor = rel.textColor ? rel.textColor : \"#444444\";\n let strokeColor = rel.lineColor ? rel.lineColor : \"#444444\";\n let offsetX = rel.offsetX ? parseInt(rel.offsetX) : 0;\n let offsetY = rel.offsetY ? parseInt(rel.offsetY) : 0;\n let url = \"\";\n if (i === 0) {\n let line = relsElem.append(\"line\");\n line.attr(\"x1\", rel.startPoint.x);\n line.attr(\"y1\", rel.startPoint.y);\n line.attr(\"x2\", rel.endPoint.x);\n line.attr(\"y2\", rel.endPoint.y);\n line.attr(\"stroke-width\", \"1\");\n line.attr(\"stroke\", strokeColor);\n line.style(\"fill\", \"none\");\n if (rel.type !== \"rel_b\") {\n line.attr(\"marker-end\", \"url(\" + url + \"#arrowhead)\");\n }\n if (rel.type === \"birel\" || rel.type === \"rel_b\") {\n line.attr(\"marker-start\", \"url(\" + url + \"#arrowend)\");\n }\n i = -1;\n } else {\n let line = relsElem.append(\"path\");\n line.attr(\"fill\", \"none\").attr(\"stroke-width\", \"1\").attr(\"stroke\", strokeColor).attr(\n \"d\",\n \"Mstartx,starty Qcontrolx,controly stopx,stopy \".replaceAll(\"startx\", rel.startPoint.x).replaceAll(\"starty\", rel.startPoint.y).replaceAll(\n \"controlx\",\n rel.startPoint.x + (rel.endPoint.x - rel.startPoint.x) / 2 - (rel.endPoint.x - rel.startPoint.x) / 4\n ).replaceAll(\"controly\", rel.startPoint.y + (rel.endPoint.y - rel.startPoint.y) / 2).replaceAll(\"stopx\", rel.endPoint.x).replaceAll(\"stopy\", rel.endPoint.y)\n );\n if (rel.type !== \"rel_b\") {\n line.attr(\"marker-end\", \"url(\" + url + \"#arrowhead)\");\n }\n if (rel.type === \"birel\" || rel.type === \"rel_b\") {\n line.attr(\"marker-start\", \"url(\" + url + \"#arrowend)\");\n }\n }\n let messageConf = conf2.messageFont();\n _drawTextCandidateFunc(conf2)(\n rel.label.text,\n relsElem,\n Math.min(rel.startPoint.x, rel.endPoint.x) + Math.abs(rel.endPoint.x - rel.startPoint.x) / 2 + offsetX,\n Math.min(rel.startPoint.y, rel.endPoint.y) + Math.abs(rel.endPoint.y - rel.startPoint.y) / 2 + offsetY,\n rel.label.width,\n rel.label.height,\n { fill: textColor },\n messageConf\n );\n if (rel.techn && rel.techn.text !== \"\") {\n messageConf = conf2.messageFont();\n _drawTextCandidateFunc(conf2)(\n \"[\" + rel.techn.text + \"]\",\n relsElem,\n Math.min(rel.startPoint.x, rel.endPoint.x) + Math.abs(rel.endPoint.x - rel.startPoint.x) / 2 + offsetX,\n Math.min(rel.startPoint.y, rel.endPoint.y) + Math.abs(rel.endPoint.y - rel.startPoint.y) / 2 + conf2.messageFontSize + 5 + offsetY,\n Math.max(rel.label.width, rel.techn.width),\n rel.techn.height,\n { fill: textColor, \"font-style\": \"italic\" },\n messageConf\n );\n }\n }\n}, \"drawRels\");\nvar drawBoundary = /* @__PURE__ */ __name(function(elem, boundary, conf2) {\n const boundaryElem = elem.append(\"g\");\n let fillColor = boundary.bgColor ? boundary.bgColor : \"none\";\n let strokeColor = boundary.borderColor ? boundary.borderColor : \"#444444\";\n let fontColor = boundary.fontColor ? boundary.fontColor : \"black\";\n let attrsValue = { \"stroke-width\": 1, \"stroke-dasharray\": \"7.0,7.0\" };\n if (boundary.nodeType) {\n attrsValue = { \"stroke-width\": 1 };\n }\n let rectData = {\n x: boundary.x,\n y: boundary.y,\n fill: fillColor,\n stroke: strokeColor,\n width: boundary.width,\n height: boundary.height,\n rx: 2.5,\n ry: 2.5,\n attrs: attrsValue\n };\n drawRect2(boundaryElem, rectData);\n let boundaryConf = conf2.boundaryFont();\n boundaryConf.fontWeight = \"bold\";\n boundaryConf.fontSize = boundaryConf.fontSize + 2;\n boundaryConf.fontColor = fontColor;\n _drawTextCandidateFunc(conf2)(\n boundary.label.text,\n boundaryElem,\n boundary.x,\n boundary.y + boundary.label.Y,\n boundary.width,\n boundary.height,\n { fill: \"#444444\" },\n boundaryConf\n );\n if (boundary.type && boundary.type.text !== \"\") {\n boundaryConf = conf2.boundaryFont();\n boundaryConf.fontColor = fontColor;\n _drawTextCandidateFunc(conf2)(\n boundary.type.text,\n boundaryElem,\n boundary.x,\n boundary.y + boundary.type.Y,\n boundary.width,\n boundary.height,\n { fill: \"#444444\" },\n boundaryConf\n );\n }\n if (boundary.descr && boundary.descr.text !== \"\") {\n boundaryConf = conf2.boundaryFont();\n boundaryConf.fontSize = boundaryConf.fontSize - 2;\n boundaryConf.fontColor = fontColor;\n _drawTextCandidateFunc(conf2)(\n boundary.descr.text,\n boundaryElem,\n boundary.x,\n boundary.y + boundary.descr.Y,\n boundary.width,\n boundary.height,\n { fill: \"#444444\" },\n boundaryConf\n );\n }\n}, \"drawBoundary\");\nvar drawC4Shape = /* @__PURE__ */ __name(function(elem, c4Shape, conf2) {\n let fillColor = c4Shape.bgColor ? c4Shape.bgColor : conf2[c4Shape.typeC4Shape.text + \"_bg_color\"];\n let strokeColor = c4Shape.borderColor ? c4Shape.borderColor : conf2[c4Shape.typeC4Shape.text + \"_border_color\"];\n let fontColor = c4Shape.fontColor ? c4Shape.fontColor : \"#FFFFFF\";\n let personImg = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAACD0lEQVR4Xu2YoU4EMRCGT+4j8Ai8AhaH4QHgAUjQuFMECUgMIUgwJAgMhgQsAYUiJCiQIBBY+EITsjfTdme6V24v4c8vyGbb+ZjOtN0bNcvjQXmkH83WvYBWto6PLm6v7p7uH1/w2fXD+PBycX1Pv2l3IdDm/vn7x+dXQiAubRzoURa7gRZWd0iGRIiJbOnhnfYBQZNJjNbuyY2eJG8fkDE3bbG4ep6MHUAsgYxmE3nVs6VsBWJSGccsOlFPmLIViMzLOB7pCVO2AtHJMohH7Fh6zqitQK7m0rJvAVYgGcEpe//PLdDz65sM4pF9N7ICcXDKIB5Nv6j7tD0NoSdM2QrU9Gg0ewE1LqBhHR3BBdvj2vapnidjHxD/q6vd7Pvhr31AwcY8eXMTXAKECZZJFXuEq27aLgQK5uLMohCenGGuGewOxSjBvYBqeG6B+Nqiblggdjnc+ZXDy+FNFpFzw76O3UBAROuXh6FoiAcf5g9eTvUgzy0nWg6I8cXHRUpg5bOVBCo+KDpFajOf23GgPme7RSQ+lacIENUgJ6gg1k6HjgOlqnLqip4tEuhv0hNEMXUD0clyXE3p6pZA0S2nnvTlXwLJEZWlb7cTQH1+USgTN4VhAenm/wea1OCAOmqo6fE1WCb9WSKBah+rbUWPWAmE2Rvk0ApiB45eOyNAzU8xcTvj8KvkKEoOaIYeHNA3ZuygAvFMUO0AAAAASUVORK5CYII=\";\n switch (c4Shape.typeC4Shape.text) {\n case \"person\":\n personImg = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAACD0lEQVR4Xu2YoU4EMRCGT+4j8Ai8AhaH4QHgAUjQuFMECUgMIUgwJAgMhgQsAYUiJCiQIBBY+EITsjfTdme6V24v4c8vyGbb+ZjOtN0bNcvjQXmkH83WvYBWto6PLm6v7p7uH1/w2fXD+PBycX1Pv2l3IdDm/vn7x+dXQiAubRzoURa7gRZWd0iGRIiJbOnhnfYBQZNJjNbuyY2eJG8fkDE3bbG4ep6MHUAsgYxmE3nVs6VsBWJSGccsOlFPmLIViMzLOB7pCVO2AtHJMohH7Fh6zqitQK7m0rJvAVYgGcEpe//PLdDz65sM4pF9N7ICcXDKIB5Nv6j7tD0NoSdM2QrU9Gg0ewE1LqBhHR3BBdvj2vapnidjHxD/q6vd7Pvhr31AwcY8eXMTXAKECZZJFXuEq27aLgQK5uLMohCenGGuGewOxSjBvYBqeG6B+Nqiblggdjnc+ZXDy+FNFpFzw76O3UBAROuXh6FoiAcf5g9eTvUgzy0nWg6I8cXHRUpg5bOVBCo+KDpFajOf23GgPme7RSQ+lacIENUgJ6gg1k6HjgOlqnLqip4tEuhv0hNEMXUD0clyXE3p6pZA0S2nnvTlXwLJEZWlb7cTQH1+USgTN4VhAenm/wea1OCAOmqo6fE1WCb9WSKBah+rbUWPWAmE2Rvk0ApiB45eOyNAzU8xcTvj8KvkKEoOaIYeHNA3ZuygAvFMUO0AAAAASUVORK5CYII=\";\n break;\n case \"external_person\":\n personImg = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAAB6ElEQVR4Xu2YLY+EMBCG9+dWr0aj0Wg0Go1Go0+j8Xdv2uTCvv1gpt0ebHKPuhDaeW4605Z9mJvx4AdXUyTUdd08z+u6flmWZRnHsWkafk9DptAwDPu+f0eAYtu2PEaGWuj5fCIZrBAC2eLBAnRCsEkkxmeaJp7iDJ2QMDdHsLg8SxKFEJaAo8lAXnmuOFIhTMpxxKATebo4UiFknuNo4OniSIXQyRxEA3YsnjGCVEjVXD7yLUAqxBGUyPv/Y4W2beMgGuS7kVQIBycH0fD+oi5pezQETxdHKmQKGk1eQEYldK+jw5GxPfZ9z7Mk0Qnhf1W1m3w//EUn5BDmSZsbR44QQLBEqrBHqOrmSKaQAxdnLArCrxZcM7A7ZKs4ioRq8LFC+NpC3WCBJsvpVw5edm9iEXFuyNfxXAgSwfrFQ1c0iNda8AdejvUgnktOtJQQxmcfFzGglc5WVCj7oDgFqU18boeFSs52CUh8LE8BIVQDT1ABrB0HtgSEYlX5doJnCwv9TXocKCaKbnwhdDKPq4lf3SwU3HLq4V/+WYhHVMa/3b4IlfyikAduCkcBc7mQ3/z/Qq/cTuikhkzB12Ae/mcJC9U+Vo8Ej1gWAtgbeGgFsAMHr50BIWOLCbezvhpBFUdY6EJuJ/QDW0XoMX60zZ0AAAAASUVORK5CYII=\";\n break;\n }\n const c4ShapeElem = elem.append(\"g\");\n c4ShapeElem.attr(\"class\", \"person-man\");\n const rect = getNoteRect();\n switch (c4Shape.typeC4Shape.text) {\n case \"person\":\n case \"external_person\":\n case \"system\":\n case \"external_system\":\n case \"container\":\n case \"external_container\":\n case \"component\":\n case \"external_component\":\n rect.x = c4Shape.x;\n rect.y = c4Shape.y;\n rect.fill = fillColor;\n rect.width = c4Shape.width;\n rect.height = c4Shape.height;\n rect.stroke = strokeColor;\n rect.rx = 2.5;\n rect.ry = 2.5;\n rect.attrs = { \"stroke-width\": 0.5 };\n drawRect2(c4ShapeElem, rect);\n break;\n case \"system_db\":\n case \"external_system_db\":\n case \"container_db\":\n case \"external_container_db\":\n case \"component_db\":\n case \"external_component_db\":\n c4ShapeElem.append(\"path\").attr(\"fill\", fillColor).attr(\"stroke-width\", \"0.5\").attr(\"stroke\", strokeColor).attr(\n \"d\",\n \"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\", c4Shape.x).replaceAll(\"starty\", c4Shape.y).replaceAll(\"half\", c4Shape.width / 2).replaceAll(\"height\", c4Shape.height)\n );\n c4ShapeElem.append(\"path\").attr(\"fill\", \"none\").attr(\"stroke-width\", \"0.5\").attr(\"stroke\", strokeColor).attr(\n \"d\",\n \"Mstartx,startyc0,10 half,10 half,10c0,0 half,0 half,-10\".replaceAll(\"startx\", c4Shape.x).replaceAll(\"starty\", c4Shape.y).replaceAll(\"half\", c4Shape.width / 2)\n );\n break;\n case \"system_queue\":\n case \"external_system_queue\":\n case \"container_queue\":\n case \"external_container_queue\":\n case \"component_queue\":\n case \"external_component_queue\":\n c4ShapeElem.append(\"path\").attr(\"fill\", fillColor).attr(\"stroke-width\", \"0.5\").attr(\"stroke\", strokeColor).attr(\n \"d\",\n \"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\", c4Shape.x).replaceAll(\"starty\", c4Shape.y).replaceAll(\"width\", c4Shape.width).replaceAll(\"half\", c4Shape.height / 2)\n );\n c4ShapeElem.append(\"path\").attr(\"fill\", \"none\").attr(\"stroke-width\", \"0.5\").attr(\"stroke\", strokeColor).attr(\n \"d\",\n \"Mstartx,startyc-5,0 -5,half -5,halfc0,half 5,half 5,half\".replaceAll(\"startx\", c4Shape.x + c4Shape.width).replaceAll(\"starty\", c4Shape.y).replaceAll(\"half\", c4Shape.height / 2)\n );\n break;\n }\n let c4ShapeFontConf = getC4ShapeFont(conf2, c4Shape.typeC4Shape.text);\n c4ShapeElem.append(\"text\").attr(\"fill\", fontColor).attr(\"font-family\", c4ShapeFontConf.fontFamily).attr(\"font-size\", c4ShapeFontConf.fontSize - 2).attr(\"font-style\", \"italic\").attr(\"lengthAdjust\", \"spacing\").attr(\"textLength\", c4Shape.typeC4Shape.width).attr(\"x\", c4Shape.x + c4Shape.width / 2 - c4Shape.typeC4Shape.width / 2).attr(\"y\", c4Shape.y + c4Shape.typeC4Shape.Y).text(\"<<\" + c4Shape.typeC4Shape.text + \">>\");\n switch (c4Shape.typeC4Shape.text) {\n case \"person\":\n case \"external_person\":\n drawImage(\n c4ShapeElem,\n 48,\n 48,\n c4Shape.x + c4Shape.width / 2 - 24,\n c4Shape.y + c4Shape.image.Y,\n personImg\n );\n break;\n }\n let textFontConf = conf2[c4Shape.typeC4Shape.text + \"Font\"]();\n textFontConf.fontWeight = \"bold\";\n textFontConf.fontSize = textFontConf.fontSize + 2;\n textFontConf.fontColor = fontColor;\n _drawTextCandidateFunc(conf2)(\n c4Shape.label.text,\n c4ShapeElem,\n c4Shape.x,\n c4Shape.y + c4Shape.label.Y,\n c4Shape.width,\n c4Shape.height,\n { fill: fontColor },\n textFontConf\n );\n textFontConf = conf2[c4Shape.typeC4Shape.text + \"Font\"]();\n textFontConf.fontColor = fontColor;\n if (c4Shape.techn && c4Shape.techn?.text !== \"\") {\n _drawTextCandidateFunc(conf2)(\n c4Shape.techn.text,\n c4ShapeElem,\n c4Shape.x,\n c4Shape.y + c4Shape.techn.Y,\n c4Shape.width,\n c4Shape.height,\n { fill: fontColor, \"font-style\": \"italic\" },\n textFontConf\n );\n } else if (c4Shape.type && c4Shape.type.text !== \"\") {\n _drawTextCandidateFunc(conf2)(\n c4Shape.type.text,\n c4ShapeElem,\n c4Shape.x,\n c4Shape.y + c4Shape.type.Y,\n c4Shape.width,\n c4Shape.height,\n { fill: fontColor, \"font-style\": \"italic\" },\n textFontConf\n );\n }\n if (c4Shape.descr && c4Shape.descr.text !== \"\") {\n textFontConf = conf2.personFont();\n textFontConf.fontColor = fontColor;\n _drawTextCandidateFunc(conf2)(\n c4Shape.descr.text,\n c4ShapeElem,\n c4Shape.x,\n c4Shape.y + c4Shape.descr.Y,\n c4Shape.width,\n c4Shape.height,\n { fill: fontColor },\n textFontConf\n );\n }\n return c4Shape.height;\n}, \"drawC4Shape\");\nvar insertDatabaseIcon = /* @__PURE__ */ __name(function(elem) {\n elem.append(\"defs\").append(\"symbol\").attr(\"id\", \"database\").attr(\"fill-rule\", \"evenodd\").attr(\"clip-rule\", \"evenodd\").append(\"path\").attr(\"transform\", \"scale(.5)\").attr(\n \"d\",\n \"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\"\n );\n}, \"insertDatabaseIcon\");\nvar insertComputerIcon = /* @__PURE__ */ __name(function(elem) {\n elem.append(\"defs\").append(\"symbol\").attr(\"id\", \"computer\").attr(\"width\", \"24\").attr(\"height\", \"24\").append(\"path\").attr(\"transform\", \"scale(.5)\").attr(\n \"d\",\n \"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\"\n );\n}, \"insertComputerIcon\");\nvar insertClockIcon = /* @__PURE__ */ __name(function(elem) {\n elem.append(\"defs\").append(\"symbol\").attr(\"id\", \"clock\").attr(\"width\", \"24\").attr(\"height\", \"24\").append(\"path\").attr(\"transform\", \"scale(.5)\").attr(\n \"d\",\n \"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\"\n );\n}, \"insertClockIcon\");\nvar insertArrowHead = /* @__PURE__ */ __name(function(elem) {\n elem.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\");\n}, \"insertArrowHead\");\nvar insertArrowEnd = /* @__PURE__ */ __name(function(elem) {\n elem.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\");\n}, \"insertArrowEnd\");\nvar insertArrowFilledHead = /* @__PURE__ */ __name(function(elem) {\n elem.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\");\n}, \"insertArrowFilledHead\");\nvar insertDynamicNumber = /* @__PURE__ */ __name(function(elem) {\n elem.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);\n}, \"insertDynamicNumber\");\nvar insertArrowCrossHead = /* @__PURE__ */ __name(function(elem) {\n const defs = elem.append(\"defs\");\n const marker = defs.append(\"marker\").attr(\"id\", \"crosshead\").attr(\"markerWidth\", 15).attr(\"markerHeight\", 8).attr(\"orient\", \"auto\").attr(\"refX\", 16).attr(\"refY\", 4);\n marker.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\");\n marker.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\");\n}, \"insertArrowCrossHead\");\nvar getC4ShapeFont = /* @__PURE__ */ __name((cnf, typeC4Shape) => {\n return {\n fontFamily: cnf[typeC4Shape + \"FontFamily\"],\n fontSize: cnf[typeC4Shape + \"FontSize\"],\n fontWeight: cnf[typeC4Shape + \"FontWeight\"]\n };\n}, \"getC4ShapeFont\");\nvar _drawTextCandidateFunc = /* @__PURE__ */ function() {\n function byText(content, g, x, y, width, height, textAttrs) {\n const text = g.append(\"text\").attr(\"x\", x + width / 2).attr(\"y\", y + height / 2 + 5).style(\"text-anchor\", \"middle\").text(content);\n _setTextAttrs(text, textAttrs);\n }\n __name(byText, \"byText\");\n function byTspan(content, g, x, y, width, height, textAttrs, conf2) {\n const { fontSize, fontFamily, fontWeight } = conf2;\n const lines = content.split(common_default.lineBreakRegex);\n for (let i = 0; i < lines.length; i++) {\n const dy = i * fontSize - fontSize * (lines.length - 1) / 2;\n const text = g.append(\"text\").attr(\"x\", x + width / 2).attr(\"y\", y).style(\"text-anchor\", \"middle\").attr(\"dominant-baseline\", \"middle\").style(\"font-size\", fontSize).style(\"font-weight\", fontWeight).style(\"font-family\", fontFamily);\n text.append(\"tspan\").attr(\"dy\", dy).text(lines[i]).attr(\"alignment-baseline\", \"mathematical\");\n _setTextAttrs(text, textAttrs);\n }\n }\n __name(byTspan, \"byTspan\");\n function byFo(content, g, x, y, width, height, textAttrs, conf2) {\n const s = g.append(\"switch\");\n const f = s.append(\"foreignObject\").attr(\"x\", x).attr(\"y\", y).attr(\"width\", width).attr(\"height\", height);\n const text = f.append(\"xhtml:div\").style(\"display\", \"table\").style(\"height\", \"100%\").style(\"width\", \"100%\");\n text.append(\"div\").style(\"display\", \"table-cell\").style(\"text-align\", \"center\").style(\"vertical-align\", \"middle\").text(content);\n byTspan(content, s, x, y, width, height, textAttrs, conf2);\n _setTextAttrs(text, textAttrs);\n }\n __name(byFo, \"byFo\");\n function _setTextAttrs(toText, fromTextAttrsDict) {\n for (const key in fromTextAttrsDict) {\n if (fromTextAttrsDict.hasOwnProperty(key)) {\n toText.attr(key, fromTextAttrsDict[key]);\n }\n }\n }\n __name(_setTextAttrs, \"_setTextAttrs\");\n return function(conf2) {\n return conf2.textPlacement === \"fo\" ? byFo : conf2.textPlacement === \"old\" ? byText : byTspan;\n };\n}();\nvar svgDraw_default = {\n drawRect: drawRect2,\n drawBoundary,\n drawC4Shape,\n drawRels,\n drawImage,\n insertArrowHead,\n insertArrowEnd,\n insertArrowFilledHead,\n insertDynamicNumber,\n insertArrowCrossHead,\n insertDatabaseIcon,\n insertComputerIcon,\n insertClockIcon\n};\n\n// src/diagrams/c4/c4Renderer.js\nvar globalBoundaryMaxX = 0;\nvar globalBoundaryMaxY = 0;\nvar c4ShapeInRow2 = 4;\nvar c4BoundaryInRow2 = 2;\nparser.yy = c4Db_default;\nvar conf = {};\nvar Bounds = class {\n static {\n __name(this, \"Bounds\");\n }\n constructor(diagObj) {\n this.name = \"\";\n this.data = {};\n this.data.startx = void 0;\n this.data.stopx = void 0;\n this.data.starty = void 0;\n this.data.stopy = void 0;\n this.data.widthLimit = void 0;\n this.nextData = {};\n this.nextData.startx = void 0;\n this.nextData.stopx = void 0;\n this.nextData.starty = void 0;\n this.nextData.stopy = void 0;\n this.nextData.cnt = 0;\n setConf(diagObj.db.getConfig());\n }\n setData(startx, stopx, starty, stopy) {\n this.nextData.startx = this.data.startx = startx;\n this.nextData.stopx = this.data.stopx = stopx;\n this.nextData.starty = this.data.starty = starty;\n this.nextData.stopy = this.data.stopy = stopy;\n }\n updateVal(obj, key, val, fun) {\n if (obj[key] === void 0) {\n obj[key] = val;\n } else {\n obj[key] = fun(val, obj[key]);\n }\n }\n insert(c4Shape) {\n this.nextData.cnt = this.nextData.cnt + 1;\n let _startx = this.nextData.startx === this.nextData.stopx ? this.nextData.stopx + c4Shape.margin : this.nextData.stopx + c4Shape.margin * 2;\n let _stopx = _startx + c4Shape.width;\n let _starty = this.nextData.starty + c4Shape.margin * 2;\n let _stopy = _starty + c4Shape.height;\n if (_startx >= this.data.widthLimit || _stopx >= this.data.widthLimit || this.nextData.cnt > c4ShapeInRow2) {\n _startx = this.nextData.startx + c4Shape.margin + conf.nextLinePaddingX;\n _starty = this.nextData.stopy + c4Shape.margin * 2;\n this.nextData.stopx = _stopx = _startx + c4Shape.width;\n this.nextData.starty = this.nextData.stopy;\n this.nextData.stopy = _stopy = _starty + c4Shape.height;\n this.nextData.cnt = 1;\n }\n c4Shape.x = _startx;\n c4Shape.y = _starty;\n this.updateVal(this.data, \"startx\", _startx, Math.min);\n this.updateVal(this.data, \"starty\", _starty, Math.min);\n this.updateVal(this.data, \"stopx\", _stopx, Math.max);\n this.updateVal(this.data, \"stopy\", _stopy, Math.max);\n this.updateVal(this.nextData, \"startx\", _startx, Math.min);\n this.updateVal(this.nextData, \"starty\", _starty, Math.min);\n this.updateVal(this.nextData, \"stopx\", _stopx, Math.max);\n this.updateVal(this.nextData, \"stopy\", _stopy, Math.max);\n }\n init(diagObj) {\n this.name = \"\";\n this.data = {\n startx: void 0,\n stopx: void 0,\n starty: void 0,\n stopy: void 0,\n widthLimit: void 0\n };\n this.nextData = {\n startx: void 0,\n stopx: void 0,\n starty: void 0,\n stopy: void 0,\n cnt: 0\n };\n setConf(diagObj.db.getConfig());\n }\n bumpLastMargin(margin) {\n this.data.stopx += margin;\n this.data.stopy += margin;\n }\n};\nvar setConf = /* @__PURE__ */ __name(function(cnf) {\n assignWithDepth_default(conf, cnf);\n if (cnf.fontFamily) {\n conf.personFontFamily = conf.systemFontFamily = conf.messageFontFamily = cnf.fontFamily;\n }\n if (cnf.fontSize) {\n conf.personFontSize = conf.systemFontSize = conf.messageFontSize = cnf.fontSize;\n }\n if (cnf.fontWeight) {\n conf.personFontWeight = conf.systemFontWeight = conf.messageFontWeight = cnf.fontWeight;\n }\n}, \"setConf\");\nvar c4ShapeFont = /* @__PURE__ */ __name((cnf, typeC4Shape) => {\n return {\n fontFamily: cnf[typeC4Shape + \"FontFamily\"],\n fontSize: cnf[typeC4Shape + \"FontSize\"],\n fontWeight: cnf[typeC4Shape + \"FontWeight\"]\n };\n}, \"c4ShapeFont\");\nvar boundaryFont = /* @__PURE__ */ __name((cnf) => {\n return {\n fontFamily: cnf.boundaryFontFamily,\n fontSize: cnf.boundaryFontSize,\n fontWeight: cnf.boundaryFontWeight\n };\n}, \"boundaryFont\");\nvar messageFont = /* @__PURE__ */ __name((cnf) => {\n return {\n fontFamily: cnf.messageFontFamily,\n fontSize: cnf.messageFontSize,\n fontWeight: cnf.messageFontWeight\n };\n}, \"messageFont\");\nfunction calcC4ShapeTextWH(textType, c4Shape, c4ShapeTextWrap, textConf, textLimitWidth) {\n if (!c4Shape[textType].width) {\n if (c4ShapeTextWrap) {\n c4Shape[textType].text = wrapLabel(c4Shape[textType].text, textLimitWidth, textConf);\n c4Shape[textType].textLines = c4Shape[textType].text.split(common_default.lineBreakRegex).length;\n c4Shape[textType].width = textLimitWidth;\n c4Shape[textType].height = calculateTextHeight(c4Shape[textType].text, textConf);\n } else {\n let lines = c4Shape[textType].text.split(common_default.lineBreakRegex);\n c4Shape[textType].textLines = lines.length;\n let lineHeight = 0;\n c4Shape[textType].height = 0;\n c4Shape[textType].width = 0;\n for (const line of lines) {\n c4Shape[textType].width = Math.max(\n calculateTextWidth(line, textConf),\n c4Shape[textType].width\n );\n lineHeight = calculateTextHeight(line, textConf);\n c4Shape[textType].height = c4Shape[textType].height + lineHeight;\n }\n }\n }\n}\n__name(calcC4ShapeTextWH, \"calcC4ShapeTextWH\");\nvar drawBoundary2 = /* @__PURE__ */ __name(function(diagram2, boundary, bounds) {\n boundary.x = bounds.data.startx;\n boundary.y = bounds.data.starty;\n boundary.width = bounds.data.stopx - bounds.data.startx;\n boundary.height = bounds.data.stopy - bounds.data.starty;\n boundary.label.y = conf.c4ShapeMargin - 35;\n let boundaryTextWrap = boundary.wrap && conf.wrap;\n let boundaryLabelConf = boundaryFont(conf);\n boundaryLabelConf.fontSize = boundaryLabelConf.fontSize + 2;\n boundaryLabelConf.fontWeight = \"bold\";\n let textLimitWidth = calculateTextWidth(boundary.label.text, boundaryLabelConf);\n calcC4ShapeTextWH(\"label\", boundary, boundaryTextWrap, boundaryLabelConf, textLimitWidth);\n svgDraw_default.drawBoundary(diagram2, boundary, conf);\n}, \"drawBoundary\");\nvar drawC4ShapeArray = /* @__PURE__ */ __name(function(currentBounds, diagram2, c4ShapeArray2, c4ShapeKeys) {\n let Y = 0;\n for (const c4ShapeKey of c4ShapeKeys) {\n Y = 0;\n const c4Shape = c4ShapeArray2[c4ShapeKey];\n let c4ShapeTypeConf = c4ShapeFont(conf, c4Shape.typeC4Shape.text);\n c4ShapeTypeConf.fontSize = c4ShapeTypeConf.fontSize - 2;\n c4Shape.typeC4Shape.width = calculateTextWidth(\n \"\\xAB\" + c4Shape.typeC4Shape.text + \"\\xBB\",\n c4ShapeTypeConf\n );\n c4Shape.typeC4Shape.height = c4ShapeTypeConf.fontSize + 2;\n c4Shape.typeC4Shape.Y = conf.c4ShapePadding;\n Y = c4Shape.typeC4Shape.Y + c4Shape.typeC4Shape.height - 4;\n c4Shape.image = { width: 0, height: 0, Y: 0 };\n switch (c4Shape.typeC4Shape.text) {\n case \"person\":\n case \"external_person\":\n c4Shape.image.width = 48;\n c4Shape.image.height = 48;\n c4Shape.image.Y = Y;\n Y = c4Shape.image.Y + c4Shape.image.height;\n break;\n }\n if (c4Shape.sprite) {\n c4Shape.image.width = 48;\n c4Shape.image.height = 48;\n c4Shape.image.Y = Y;\n Y = c4Shape.image.Y + c4Shape.image.height;\n }\n let c4ShapeTextWrap = c4Shape.wrap && conf.wrap;\n let textLimitWidth = conf.width - conf.c4ShapePadding * 2;\n let c4ShapeLabelConf = c4ShapeFont(conf, c4Shape.typeC4Shape.text);\n c4ShapeLabelConf.fontSize = c4ShapeLabelConf.fontSize + 2;\n c4ShapeLabelConf.fontWeight = \"bold\";\n calcC4ShapeTextWH(\"label\", c4Shape, c4ShapeTextWrap, c4ShapeLabelConf, textLimitWidth);\n c4Shape.label.Y = Y + 8;\n Y = c4Shape.label.Y + c4Shape.label.height;\n if (c4Shape.type && c4Shape.type.text !== \"\") {\n c4Shape.type.text = \"[\" + c4Shape.type.text + \"]\";\n let c4ShapeTypeConf2 = c4ShapeFont(conf, c4Shape.typeC4Shape.text);\n calcC4ShapeTextWH(\"type\", c4Shape, c4ShapeTextWrap, c4ShapeTypeConf2, textLimitWidth);\n c4Shape.type.Y = Y + 5;\n Y = c4Shape.type.Y + c4Shape.type.height;\n } else if (c4Shape.techn && c4Shape.techn.text !== \"\") {\n c4Shape.techn.text = \"[\" + c4Shape.techn.text + \"]\";\n let c4ShapeTechnConf = c4ShapeFont(conf, c4Shape.techn.text);\n calcC4ShapeTextWH(\"techn\", c4Shape, c4ShapeTextWrap, c4ShapeTechnConf, textLimitWidth);\n c4Shape.techn.Y = Y + 5;\n Y = c4Shape.techn.Y + c4Shape.techn.height;\n }\n let rectHeight = Y;\n let rectWidth = c4Shape.label.width;\n if (c4Shape.descr && c4Shape.descr.text !== \"\") {\n let c4ShapeDescrConf = c4ShapeFont(conf, c4Shape.typeC4Shape.text);\n calcC4ShapeTextWH(\"descr\", c4Shape, c4ShapeTextWrap, c4ShapeDescrConf, textLimitWidth);\n c4Shape.descr.Y = Y + 20;\n Y = c4Shape.descr.Y + c4Shape.descr.height;\n rectWidth = Math.max(c4Shape.label.width, c4Shape.descr.width);\n rectHeight = Y - c4Shape.descr.textLines * 5;\n }\n rectWidth = rectWidth + conf.c4ShapePadding;\n c4Shape.width = Math.max(c4Shape.width || conf.width, rectWidth, conf.width);\n c4Shape.height = Math.max(c4Shape.height || conf.height, rectHeight, conf.height);\n c4Shape.margin = c4Shape.margin || conf.c4ShapeMargin;\n currentBounds.insert(c4Shape);\n svgDraw_default.drawC4Shape(diagram2, c4Shape, conf);\n }\n currentBounds.bumpLastMargin(conf.c4ShapeMargin);\n}, \"drawC4ShapeArray\");\nvar Point = class {\n static {\n __name(this, \"Point\");\n }\n constructor(x, y) {\n this.x = x;\n this.y = y;\n }\n};\nvar getIntersectPoint = /* @__PURE__ */ __name(function(fromNode, endPoint) {\n let x1 = fromNode.x;\n let y1 = fromNode.y;\n let x2 = endPoint.x;\n let y2 = endPoint.y;\n let fromCenterX = x1 + fromNode.width / 2;\n let fromCenterY = y1 + fromNode.height / 2;\n let dx = Math.abs(x1 - x2);\n let dy = Math.abs(y1 - y2);\n let tanDYX = dy / dx;\n let fromDYX = fromNode.height / fromNode.width;\n let returnPoint = null;\n if (y1 == y2 && x1 < x2) {\n returnPoint = new Point(x1 + fromNode.width, fromCenterY);\n } else if (y1 == y2 && x1 > x2) {\n returnPoint = new Point(x1, fromCenterY);\n } else if (x1 == x2 && y1 < y2) {\n returnPoint = new Point(fromCenterX, y1 + fromNode.height);\n } else if (x1 == x2 && y1 > y2) {\n returnPoint = new Point(fromCenterX, y1);\n }\n if (x1 > x2 && y1 < y2) {\n if (fromDYX >= tanDYX) {\n returnPoint = new Point(x1, fromCenterY + tanDYX * fromNode.width / 2);\n } else {\n returnPoint = new Point(\n fromCenterX - dx / dy * fromNode.height / 2,\n y1 + fromNode.height\n );\n }\n } else if (x1 < x2 && y1 < y2) {\n if (fromDYX >= tanDYX) {\n returnPoint = new Point(x1 + fromNode.width, fromCenterY + tanDYX * fromNode.width / 2);\n } else {\n returnPoint = new Point(\n fromCenterX + dx / dy * fromNode.height / 2,\n y1 + fromNode.height\n );\n }\n } else if (x1 < x2 && y1 > y2) {\n if (fromDYX >= tanDYX) {\n returnPoint = new Point(x1 + fromNode.width, fromCenterY - tanDYX * fromNode.width / 2);\n } else {\n returnPoint = new Point(fromCenterX + fromNode.height / 2 * dx / dy, y1);\n }\n } else if (x1 > x2 && y1 > y2) {\n if (fromDYX >= tanDYX) {\n returnPoint = new Point(x1, fromCenterY - fromNode.width / 2 * tanDYX);\n } else {\n returnPoint = new Point(fromCenterX - fromNode.height / 2 * dx / dy, y1);\n }\n }\n return returnPoint;\n}, \"getIntersectPoint\");\nvar getIntersectPoints = /* @__PURE__ */ __name(function(fromNode, endNode) {\n let endIntersectPoint = { x: 0, y: 0 };\n endIntersectPoint.x = endNode.x + endNode.width / 2;\n endIntersectPoint.y = endNode.y + endNode.height / 2;\n let startPoint = getIntersectPoint(fromNode, endIntersectPoint);\n endIntersectPoint.x = fromNode.x + fromNode.width / 2;\n endIntersectPoint.y = fromNode.y + fromNode.height / 2;\n let endPoint = getIntersectPoint(endNode, endIntersectPoint);\n return { startPoint, endPoint };\n}, \"getIntersectPoints\");\nvar drawRels2 = /* @__PURE__ */ __name(function(diagram2, rels2, getC4ShapeObj, diagObj) {\n let i = 0;\n for (let rel of rels2) {\n i = i + 1;\n let relTextWrap = rel.wrap && conf.wrap;\n let relConf = messageFont(conf);\n let diagramType = diagObj.db.getC4Type();\n if (diagramType === \"C4Dynamic\") {\n rel.label.text = i + \": \" + rel.label.text;\n }\n let textLimitWidth = calculateTextWidth(rel.label.text, relConf);\n calcC4ShapeTextWH(\"label\", rel, relTextWrap, relConf, textLimitWidth);\n if (rel.techn && rel.techn.text !== \"\") {\n textLimitWidth = calculateTextWidth(rel.techn.text, relConf);\n calcC4ShapeTextWH(\"techn\", rel, relTextWrap, relConf, textLimitWidth);\n }\n if (rel.descr && rel.descr.text !== \"\") {\n textLimitWidth = calculateTextWidth(rel.descr.text, relConf);\n calcC4ShapeTextWH(\"descr\", rel, relTextWrap, relConf, textLimitWidth);\n }\n let fromNode = getC4ShapeObj(rel.from);\n let endNode = getC4ShapeObj(rel.to);\n let points = getIntersectPoints(fromNode, endNode);\n rel.startPoint = points.startPoint;\n rel.endPoint = points.endPoint;\n }\n svgDraw_default.drawRels(diagram2, rels2, conf);\n}, \"drawRels\");\nfunction drawInsideBoundary(diagram2, parentBoundaryAlias, parentBounds, currentBoundaries, diagObj) {\n let currentBounds = new Bounds(diagObj);\n currentBounds.data.widthLimit = parentBounds.data.widthLimit / Math.min(c4BoundaryInRow2, currentBoundaries.length);\n for (let [i, currentBoundary] of currentBoundaries.entries()) {\n let Y = 0;\n currentBoundary.image = { width: 0, height: 0, Y: 0 };\n if (currentBoundary.sprite) {\n currentBoundary.image.width = 48;\n currentBoundary.image.height = 48;\n currentBoundary.image.Y = Y;\n Y = currentBoundary.image.Y + currentBoundary.image.height;\n }\n let currentBoundaryTextWrap = currentBoundary.wrap && conf.wrap;\n let currentBoundaryLabelConf = boundaryFont(conf);\n currentBoundaryLabelConf.fontSize = currentBoundaryLabelConf.fontSize + 2;\n currentBoundaryLabelConf.fontWeight = \"bold\";\n calcC4ShapeTextWH(\n \"label\",\n currentBoundary,\n currentBoundaryTextWrap,\n currentBoundaryLabelConf,\n currentBounds.data.widthLimit\n );\n currentBoundary.label.Y = Y + 8;\n Y = currentBoundary.label.Y + currentBoundary.label.height;\n if (currentBoundary.type && currentBoundary.type.text !== \"\") {\n currentBoundary.type.text = \"[\" + currentBoundary.type.text + \"]\";\n let currentBoundaryTypeConf = boundaryFont(conf);\n calcC4ShapeTextWH(\n \"type\",\n currentBoundary,\n currentBoundaryTextWrap,\n currentBoundaryTypeConf,\n currentBounds.data.widthLimit\n );\n currentBoundary.type.Y = Y + 5;\n Y = currentBoundary.type.Y + currentBoundary.type.height;\n }\n if (currentBoundary.descr && currentBoundary.descr.text !== \"\") {\n let currentBoundaryDescrConf = boundaryFont(conf);\n currentBoundaryDescrConf.fontSize = currentBoundaryDescrConf.fontSize - 2;\n calcC4ShapeTextWH(\n \"descr\",\n currentBoundary,\n currentBoundaryTextWrap,\n currentBoundaryDescrConf,\n currentBounds.data.widthLimit\n );\n currentBoundary.descr.Y = Y + 20;\n Y = currentBoundary.descr.Y + currentBoundary.descr.height;\n }\n if (i == 0 || i % c4BoundaryInRow2 === 0) {\n let _x = parentBounds.data.startx + conf.diagramMarginX;\n let _y = parentBounds.data.stopy + conf.diagramMarginY + Y;\n currentBounds.setData(_x, _x, _y, _y);\n } else {\n let _x = currentBounds.data.stopx !== currentBounds.data.startx ? currentBounds.data.stopx + conf.diagramMarginX : currentBounds.data.startx;\n let _y = currentBounds.data.starty;\n currentBounds.setData(_x, _x, _y, _y);\n }\n currentBounds.name = currentBoundary.alias;\n let currentPersonOrSystemArray = diagObj.db.getC4ShapeArray(currentBoundary.alias);\n let currentPersonOrSystemKeys = diagObj.db.getC4ShapeKeys(currentBoundary.alias);\n if (currentPersonOrSystemKeys.length > 0) {\n drawC4ShapeArray(\n currentBounds,\n diagram2,\n currentPersonOrSystemArray,\n currentPersonOrSystemKeys\n );\n }\n parentBoundaryAlias = currentBoundary.alias;\n let nextCurrentBoundaries = diagObj.db.getBoundarys(parentBoundaryAlias);\n if (nextCurrentBoundaries.length > 0) {\n drawInsideBoundary(\n diagram2,\n parentBoundaryAlias,\n currentBounds,\n nextCurrentBoundaries,\n diagObj\n );\n }\n if (currentBoundary.alias !== \"global\") {\n drawBoundary2(diagram2, currentBoundary, currentBounds);\n }\n parentBounds.data.stopy = Math.max(\n currentBounds.data.stopy + conf.c4ShapeMargin,\n parentBounds.data.stopy\n );\n parentBounds.data.stopx = Math.max(\n currentBounds.data.stopx + conf.c4ShapeMargin,\n parentBounds.data.stopx\n );\n globalBoundaryMaxX = Math.max(globalBoundaryMaxX, parentBounds.data.stopx);\n globalBoundaryMaxY = Math.max(globalBoundaryMaxY, parentBounds.data.stopy);\n }\n}\n__name(drawInsideBoundary, \"drawInsideBoundary\");\nvar draw = /* @__PURE__ */ __name(function(_text, id, _version, diagObj) {\n conf = getConfig().c4;\n const securityLevel = getConfig().securityLevel;\n let sandboxElement;\n if (securityLevel === \"sandbox\") {\n sandboxElement = select(\"#i\" + id);\n }\n const root = securityLevel === \"sandbox\" ? select(sandboxElement.nodes()[0].contentDocument.body) : select(\"body\");\n let db = diagObj.db;\n diagObj.db.setWrap(conf.wrap);\n c4ShapeInRow2 = db.getC4ShapeInRow();\n c4BoundaryInRow2 = db.getC4BoundaryInRow();\n log.debug(`C:${JSON.stringify(conf, null, 2)}`);\n const diagram2 = securityLevel === \"sandbox\" ? root.select(`[id=\"${id}\"]`) : select(`[id=\"${id}\"]`);\n svgDraw_default.insertComputerIcon(diagram2);\n svgDraw_default.insertDatabaseIcon(diagram2);\n svgDraw_default.insertClockIcon(diagram2);\n let screenBounds = new Bounds(diagObj);\n screenBounds.setData(\n conf.diagramMarginX,\n conf.diagramMarginX,\n conf.diagramMarginY,\n conf.diagramMarginY\n );\n screenBounds.data.widthLimit = screen.availWidth;\n globalBoundaryMaxX = conf.diagramMarginX;\n globalBoundaryMaxY = conf.diagramMarginY;\n const title2 = diagObj.db.getTitle();\n let currentBoundaries = diagObj.db.getBoundarys(\"\");\n drawInsideBoundary(diagram2, \"\", screenBounds, currentBoundaries, diagObj);\n svgDraw_default.insertArrowHead(diagram2);\n svgDraw_default.insertArrowEnd(diagram2);\n svgDraw_default.insertArrowCrossHead(diagram2);\n svgDraw_default.insertArrowFilledHead(diagram2);\n drawRels2(diagram2, diagObj.db.getRels(), diagObj.db.getC4Shape, diagObj);\n screenBounds.data.stopx = globalBoundaryMaxX;\n screenBounds.data.stopy = globalBoundaryMaxY;\n const box = screenBounds.data;\n let boxHeight = box.stopy - box.starty;\n let height = boxHeight + 2 * conf.diagramMarginY;\n let boxWidth = box.stopx - box.startx;\n const width = boxWidth + 2 * conf.diagramMarginX;\n if (title2) {\n diagram2.append(\"text\").text(title2).attr(\"x\", (box.stopx - box.startx) / 2 - 4 * conf.diagramMarginX).attr(\"y\", box.starty + conf.diagramMarginY);\n }\n configureSvgSize(diagram2, height, width, conf.useMaxWidth);\n const extraVertForTitle = title2 ? 60 : 0;\n diagram2.attr(\n \"viewBox\",\n box.startx - conf.diagramMarginX + \" -\" + (conf.diagramMarginY + extraVertForTitle) + \" \" + width + \" \" + (height + extraVertForTitle)\n );\n log.debug(`models:`, box);\n}, \"draw\");\nvar c4Renderer_default = {\n drawPersonOrSystemArray: drawC4ShapeArray,\n drawBoundary: drawBoundary2,\n setConf,\n draw\n};\n\n// src/diagrams/c4/styles.js\nvar getStyles = /* @__PURE__ */ __name((options) => `.person {\n stroke: ${options.personBorder};\n fill: ${options.personBkg};\n }\n`, \"getStyles\");\nvar styles_default = getStyles;\n\n// src/diagrams/c4/c4Diagram.ts\nvar diagram = {\n parser: c4Diagram_default,\n db: c4Db_default,\n renderer: c4Renderer_default,\n styles: styles_default,\n init: /* @__PURE__ */ __name(({ c4, wrap }) => {\n c4Renderer_default.setConf(c4);\n c4Db_default.setWrap(wrap);\n }, \"init\")\n};\nexport {\n diagram\n};\n"], + "mappings": "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I,GAAI,GAAI1C,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAI,GAAI,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,EAAI,EAAG,CAAE,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI1C,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAI,GAAI,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,EAAI,EAAG,CAAE,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI1C,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAI,GAAI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,GACP,MACF,IAAK,IACH,YAAK,MAAM,eAAe,EACnB,GACP,MACF,IAAK,IACH,YAAK,MAAM,YAAY,EAChB,GACP,MACF,IAAK,IACH,YAAK,MAAM,cAAc,EAClB,GACP,MACF,IAAK,IACH,YAAK,MAAM,WAAW,EACf,GACP,MACF,IAAK,IACH,YAAK,MAAM,QAAQ,EACZ,GACP,MACF,IAAK,IACH,YAAK,MAAM,UAAU,EACd,GACP,MACF,IAAK,IACH,YAAK,MAAM,qBAAqB,EACzB,GACP,MACF,IAAK,IACH,YAAK,MAAM,iBAAiB,EACrB,GACP,MACF,IAAK,IACH,YAAK,MAAM,qBAAqB,EACzB,GACP,MACF,IAAK,IACH,YAAK,MAAM,kBAAkB,EACtB,GACP,MACF,IAAK,IACH,YAAK,MAAM,eAAe,EACnB,GACP,MACF,IAAK,IACH,YAAK,MAAM,iBAAiB,EACrB,GACP,MACF,IAAK,IACH,YAAK,MAAM,cAAc,EAClB,GACP,MACF,IAAK,IACH,YAAK,MAAM,WAAW,EACf,GACP,MACF,IAAK,IACH,YAAK,MAAM,oBAAoB,EACxB,GACP,MACF,IAAK,IACH,YAAK,MAAM,qBAAqB,EACzB,GACP,MACF,IAAK,IACH,YAAK,MAAM,kBAAkB,EACtB,GACP,MACF,IAAK,IACH,YAAK,MAAM,eAAe,EACnB,GACP,MACF,IAAK,IACH,YAAK,MAAM,iBAAiB,EACrB,GACP,MACF,IAAK,IACH,YAAK,MAAM,cAAc,EAClB,GACP,MACF,IAAK,IACH,YAAK,MAAM,WAAW,EACf,GACP,MACF,IAAK,IACH,YAAK,MAAM,MAAM,EACV,GACP,MACF,IAAK,IACH,YAAK,MAAM,MAAM,EACV,GACP,MACF,IAAK,IACH,YAAK,MAAM,QAAQ,EACZ,GACP,MACF,IAAK,IACH,YAAK,MAAM,QAAQ,EACZ,GACP,MACF,IAAK,IACH,YAAK,MAAM,KAAK,EACT,GACP,MACF,IAAK,IACH,YAAK,MAAM,OAAO,EACX,GACP,MACF,IAAK,IACH,YAAK,MAAM,OAAO,EACX,GACP,MACF,IAAK,IACH,YAAK,MAAM,OAAO,EACX,GACP,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", + "names": ["import_sanitize_url", "parser", "o", "__name", "k", "v", "o2", "l", "$V0", "$V1", "$V2", "$V3", "$V4", "$V5", "$V6", "$V7", "$V8", "$V9", "$Va", "$Vb", "$Vc", "$Vd", "$Ve", "$Vf", "$Vg", "$Vh", "$Vi", "$Vj", "$Vk", "$Vl", "$Vm", "$Vn", "$Vo", "$Vp", "$Vq", "$Vr", "$Vs", "$Vt", "$Vu", "$Vv", "$Vw", "$Vx", "$Vy", "$Vz", "$VA", "$VB", "$VC", "$VD", "$VE", "$VF", "$VG", "$VH", "$VI", "$VJ", "$VK", "$VL", "$VM", "$VN", "$VO", "$VP", "$VQ", "$VR", "$VS", "parser2", "yytext", "yyleng", "yylineno", "yy", "yystate", "$$", "_$", "$0", "kv", "str", "hash", "error", "input", "self", "stack", "tstack", "vstack", "lstack", "table", "recovering", "TERROR", "EOF", "args", "lexer2", "sharedState", "yyloc", "ranges", "popStack", "n", "lex", "token", "symbol", "preErrorSymbol", "state", "action", "a", "r", "yyval", "p", "len", "newState", "expected", "errStr", "lexer", "ch", "lines", "oldLines", "past", "next", "pre", "c2", "match", "indexed_rule", "backup", "tempMatch", "index", "rules", "i", "condition", "yy_", "$avoiding_name_collisions", "YY_START", "YYSTATE", "Parser", "c4Diagram_default", "c4ShapeArray", "boundaryParseStack", "currentBoundaryParse", "parentBoundaryParse", "boundaries", "rels", "title", "wrapEnabled", "c4ShapeInRow", "c4BoundaryInRow", "c4Type", "getC4Type", "setC4Type", "c4TypeParam", "sanitizeText", "getConfig2", "addRel", "type", "from", "to", "label", "techn", "descr", "sprite", "tags", "link", "rel", "old", "rel2", "key", "value", "autoWrap", "addPersonOrSystem", "typeC4Shape", "alias", "personOrSystem", "personOrSystem2", "addContainer", "container", "container2", "addComponent", "component", "component2", "addPersonOrSystemBoundary", "boundary", "boundary2", "addContainerBoundary", "addDeploymentNode", "nodeType", "popBoundaryParseStack", "updateElStyle", "elementName", "bgColor", "fontColor", "borderColor", "shadowing", "shape", "legendText", "legendSprite", "element", "updateRelStyle", "textColor", "lineColor", "offsetX", "offsetY", "updateLayoutConfig", "c4ShapeInRowParam", "c4BoundaryInRowParam", "c4ShapeInRowValue", "c4BoundaryInRowValue", "getC4ShapeInRow", "getC4BoundaryInRow", "getCurrentBoundaryParse", "getParentBoundaryParse", "getC4ShapeArray", "parentBoundary", "getC4Shape", "getC4ShapeKeys", "getBoundaries", "getBoundarys", "getRels", "getTitle", "setWrap", "wrapSetting", "clear", "LINETYPE", "ARROWTYPE", "PLACEMENT", "setTitle", "txt", "c4Db_default", "setAccTitle", "getAccTitle", "getAccDescription", "setAccDescription", "drawRect2", "elem", "rectData", "drawRect", "drawImage", "width", "height", "x", "y", "imageElem", "sanitizedLink", "drawRels", "rels2", "conf2", "relsElem", "strokeColor", "url", "line", "messageConf", "_drawTextCandidateFunc", "drawBoundary", "boundaryElem", "fillColor", "attrsValue", "boundaryConf", "drawC4Shape", "c4Shape", "personImg", "c4ShapeElem", "rect", "getNoteRect", "c4ShapeFontConf", "getC4ShapeFont", "textFontConf", "insertDatabaseIcon", "insertComputerIcon", "insertClockIcon", "insertArrowHead", "insertArrowEnd", "insertArrowFilledHead", "insertDynamicNumber", "insertArrowCrossHead", "marker", "cnf", "byText", "content", "g", "textAttrs", "text", "_setTextAttrs", "byTspan", "fontSize", "fontFamily", "fontWeight", "common_default", "dy", "byFo", "s", "toText", "fromTextAttrsDict", "svgDraw_default", "globalBoundaryMaxX", "globalBoundaryMaxY", "c4ShapeInRow2", "c4BoundaryInRow2", "conf", "Bounds", "diagObj", "setConf", "startx", "stopx", "starty", "stopy", "obj", "val", "fun", "_startx", "_stopx", "_starty", "_stopy", "margin", "assignWithDepth_default", "c4ShapeFont", "boundaryFont", "messageFont", "calcC4ShapeTextWH", "textType", "c4ShapeTextWrap", "textConf", "textLimitWidth", "wrapLabel", "calculateTextHeight", "lineHeight", "calculateTextWidth", "drawBoundary2", "diagram2", "bounds", "boundaryTextWrap", "boundaryLabelConf", "drawC4ShapeArray", "currentBounds", "c4ShapeArray2", "c4ShapeKeys", "Y", "c4ShapeKey", "c4ShapeTypeConf", "c4ShapeLabelConf", "c4ShapeTypeConf2", "c4ShapeTechnConf", "rectHeight", "rectWidth", "c4ShapeDescrConf", "Point", "getIntersectPoint", "fromNode", "endPoint", "x1", "y1", "x2", "y2", "fromCenterX", "fromCenterY", "dx", "tanDYX", "fromDYX", "returnPoint", "getIntersectPoints", "endNode", "endIntersectPoint", "startPoint", "drawRels2", "getC4ShapeObj", "relTextWrap", "relConf", "points", "drawInsideBoundary", "parentBoundaryAlias", "parentBounds", "currentBoundaries", "currentBoundary", "currentBoundaryTextWrap", "currentBoundaryLabelConf", "currentBoundaryTypeConf", "currentBoundaryDescrConf", "_x", "_y", "currentPersonOrSystemArray", "currentPersonOrSystemKeys", "nextCurrentBoundaries", "draw", "_text", "id", "_version", "securityLevel", "sandboxElement", "select_default", "root", "db", "log", "screenBounds", "title2", "box", "configureSvgSize", "extraVertForTitle", "c4Renderer_default", "getStyles", "options", "styles_default", "diagram", "c4", "wrap"] +} diff --git a/docs/_site/public/chunk-2YMHYP32.min.js b/docs/_site/public/chunk-2YMHYP32.min.js new file mode 100644 index 0000000..5f7c542 --- /dev/null +++ b/docs/_site/public/chunk-2YMHYP32.min.js @@ -0,0 +1,2 @@ +import{a as b}from"./chunk-3Z74ZUXG.min.js";import{D as E,E as F,F as y,G as L,H as G,J as V,K as x,L as R,N as Er,P as I,T as B,U as Q,d as g,f as vr,h as K,i as _r,k as j,n as f,p as N,q as Y,s as v,u as wr,v as br,x as W,z as O}from"./chunk-U4DUTLYF.min.js";import{O as M,T as D,z as mr}from"./chunk-CXRPJJJE.min.js";function k(r,e,n,t){var o;do o=B(t);while(r.hasNode(o));return n.dummy=e,r.setNode(o,n),o}function yr(r){var e=new b().setGraph(r.graph());return f(r.nodes(),function(n){e.setNode(n,r.node(n))}),f(r.edges(),function(n){var t=e.edge(n.v,n.w)||{weight:0,minlen:1},o=r.edge(n);e.setEdge(n.v,n.w,{weight:t.weight+o.weight,minlen:Math.max(t.minlen,o.minlen)})}),e}function q(r){var e=new b({multigraph:r.isMultigraph()}).setGraph(r.graph());return f(r.nodes(),function(n){r.children(n).length||e.setNode(n,r.node(n))}),f(r.edges(),function(n){e.setEdge(n,r.edge(n))}),e}function Z(r,e){var n=r.x,t=r.y,o=e.x-n,a=e.y-t,i=r.width/2,s=r.height/2;if(!o&&!a)throw new Error("Not possible to find intersection inside of the rectangle");var u,d;return Math.abs(a)*i>Math.abs(o)*s?(a<0&&(s=-s),u=s*o/a,d=s):(o<0&&(i=-i),u=i,d=i*a/o),{x:n+u,y:t+d}}function P(r){var e=v(x(rr(r)+1),function(){return[]});return f(r.nodes(),function(n){var t=r.node(n),o=t.rank;E(o)||(e[o][t.order]=n)}),e}function xr(r){var e=L(v(r.nodes(),function(n){return r.node(n).rank}));f(r.nodes(),function(n){var t=r.node(n);W(t,"rank")&&(t.rank-=e)})}function kr(r){var e=L(v(r.nodes(),function(a){return r.node(a).rank})),n=[];f(r.nodes(),function(a){var i=r.node(a).rank-e;n[i]||(n[i]=[]),n[i].push(a)});var t=0,o=r.graph().nodeRankFactor;f(n,function(a,i){E(a)&&i%o!==0?--t:t&&f(a,function(s){r.node(s).rank+=t})})}function $(r,e,n,t){var o={width:0,height:0};return arguments.length>=4&&(o.rank=n,o.order=t),k(r,"border",o,e)}function rr(r){return y(v(r.nodes(),function(e){var n=r.node(e).rank;if(!E(n))return n}))}function gr(r,e){var n={lhs:[],rhs:[]};return f(r,function(t){e(t)?n.lhs.push(t):n.rhs.push(t)}),n}function Nr(r,e){var n=K();try{return e()}finally{console.log(r+" time: "+(K()-n)+"ms")}}function Ir(r,e){return e()}function Lr(r){function e(n){var t=r.children(n),o=r.node(n);if(t.length&&f(t,e),Object.prototype.hasOwnProperty.call(o,"minRank")){o.borderLeft=[],o.borderRight=[];for(var a=o.minRank,i=o.maxRank+1;a0;--s)if(i=e[s].dequeue(),i){t=t.concat(tr(r,e,n,i,!0));break}}}return t}function tr(r,e,n,t,o){var a=o?[]:void 0;return f(r.inEdges(t.v),function(i){var s=r.edge(i),u=r.node(i.v);o&&a.push({v:i.v,w:i.w}),u.out-=s,or(e,n,u)}),f(r.outEdges(t.v),function(i){var s=r.edge(i),u=i.w,d=r.node(u);d.in-=s,or(e,n,d)}),r.removeNode(t.v),a}function be(r,e){var n=new b,t=0,o=0;f(r.nodes(),function(s){n.setNode(s,{v:s,in:0,out:0})}),f(r.edges(),function(s){var u=n.edge(s.v,s.w)||0,d=e(s),c=u+d;n.setEdge(s.v,s.w,c),o=Math.max(o,n.node(s.v).out+=d),t=Math.max(t,n.node(s.w).in+=d)});var a=x(o+t+3).map(function(){return new X}),i=t+1;return f(n.nodes(),function(s){or(a,i,n.node(s))}),{graph:n,buckets:a,zeroIdx:i}}function or(r,e,n){n.out?n.in?r[n.out-n.in+e].enqueue(n):r[r.length-1].enqueue(n):r[0].enqueue(n)}function Mr(r){var e=r.graph().acyclicer==="greedy"?Sr(r,n(r)):Ee(r);f(e,function(t){var o=r.edge(t);r.removeEdge(t),o.forwardName=t.name,o.reversed=!0,r.setEdge(t.w,t.v,o,B("rev"))});function n(t){return function(o){return t.edge(o).weight}}}function Ee(r){var e=[],n={},t={};function o(a){Object.prototype.hasOwnProperty.call(t,a)||(t[a]=!0,n[a]=!0,f(r.outEdges(a),function(i){Object.prototype.hasOwnProperty.call(n,i.w)?e.push(i):o(i.w)}),delete n[a])}return f(r.nodes(),o),e}function Fr(r){f(r.edges(),function(e){var n=r.edge(e);if(n.reversed){r.removeEdge(e);var t=n.forwardName;delete n.reversed,delete n.forwardName,r.setEdge(e.w,e.v,n,t)}})}function Vr(r){r.graph().dummyChains=[],f(r.edges(),function(e){ye(r,e)})}function ye(r,e){var n=e.v,t=r.node(n).rank,o=e.w,a=r.node(o).rank,i=e.name,s=r.edge(e),u=s.labelRank;if(a!==t+1){r.removeEdge(e);var d=void 0,c,h;for(h=0,++t;ti.lim&&(s=i,u=!0);var d=N(e.edges(),function(c){return u===Yr(r,r.node(c.v),s)&&u!==Yr(r,r.node(c.w),s)});return G(d,function(c){return S(e,c)})}function Xr(r,e,n,t){var o=n.v,a=n.w;r.removeEdge(o,a),r.setEdge(t.v,t.w,{}),ur(r),fr(r,e),Ce(r,e)}function Ce(r,e){var n=Y(r.nodes(),function(o){return!e.node(o).parent}),t=sr(r,n);t=t.slice(1),f(t,function(o){var a=r.node(o).parent,i=e.edge(o,a),s=!1;i||(i=e.edge(a,o),s=!0),e.node(o).rank=e.node(a).rank+(s?i.minlen:-i.minlen)})}function Te(r,e,n){return r.hasEdge(e,n)}function Yr(r,e,n){return n.low<=e.lim&&e.lim<=n.lim}function dr(r){switch(r.graph().ranker){case"network-simplex":Hr(r);break;case"tight-tree":Re(r);break;case"longest-path":je(r);break;default:Hr(r)}}var je=z;function Re(r){z(r),H(r)}function Hr(r){T(r)}function Jr(r){var e=k(r,"root",{},"_root"),n=Se(r),t=y(O(n))-1,o=2*t+1;r.graph().nestingRoot=e,f(r.edges(),function(i){r.edge(i).minlen*=o});var a=Me(r)+1;f(r.children(),function(i){Kr(r,e,o,a,t,n,i)}),r.graph().nodeRankFactor=o}function Kr(r,e,n,t,o,a,i){var s=r.children(i);if(!s.length){i!==e&&r.setEdge(e,i,{weight:0,minlen:n});return}var u=$(r,"_bt"),d=$(r,"_bb"),c=r.node(i);r.setParent(u,i),c.borderTop=u,r.setParent(d,i),c.borderBottom=d,f(s,function(h){Kr(r,e,n,t,o,a,h);var l=r.node(h),p=l.borderTop?l.borderTop:h,m=l.borderBottom?l.borderBottom:h,w=l.borderTop?t:2*t,A=p!==m?1:o-a[i]+1;r.setEdge(u,p,{weight:w,minlen:A,nestingEdge:!0}),r.setEdge(m,d,{weight:w,minlen:A,nestingEdge:!0})}),r.parent(i)||r.setEdge(e,u,{weight:0,minlen:o+a[i]})}function Se(r){var e={};function n(t,o){var a=r.children(t);a&&a.length&&f(a,function(i){n(i,o+1)}),e[t]=o}return f(r.children(),function(t){n(t,1)}),e}function Me(r){return R(r.edges(),function(e,n){return e+r.edge(n).weight},0)}function Qr(r){var e=r.graph();r.removeNode(e.nestingRoot),delete e.nestingRoot,f(r.edges(),function(n){var t=r.edge(n);t.nestingEdge&&r.removeEdge(n)})}function Zr(r,e,n){var t={},o;f(n,function(a){for(var i=r.parent(a),s,u;i;){if(s=r.parent(i),s?(u=t[s],t[s]=i):(u=o,o=i),u&&u!==i){e.setEdge(u,i);return}i=s}})}function $r(r,e,n){var t=Ge(r),o=new b({compound:!0}).setGraph({root:t}).setDefaultNodeLabel(function(a){return r.node(a)});return f(r.nodes(),function(a){var i=r.node(a),s=r.parent(a);(i.rank===e||i.minRank<=e&&e<=i.maxRank)&&(o.setNode(a),o.setParent(a,s||t),f(r[n](a),function(u){var d=u.v===a?u.w:u.v,c=o.edge(d,a),h=E(c)?0:c.weight;o.setEdge(d,a,{weight:r.edge(u).weight+h})}),Object.prototype.hasOwnProperty.call(i,"minRank")&&o.setNode(a,{borderLeft:i.borderLeft[e],borderRight:i.borderRight[e]}))}),o}function Ge(r){for(var e;r.hasNode(e=B("_root")););return e}function re(r,e){for(var n=0,t=1;t0;)c%2&&(h+=s[c+1]),c=c-1>>1,s[c]+=d.weight;u+=d.weight*h})),u}function ee(r){var e={},n=N(r.nodes(),function(s){return!r.children(s).length}),t=y(v(n,function(s){return r.node(s).rank})),o=v(x(t+1),function(){return[]});function a(s){if(!W(e,s)){e[s]=!0;var u=r.node(s);o[u.rank].push(s),f(r.successors(s),a)}}var i=I(n,function(s){return r.node(s).rank});return f(i,a),o}function ne(r,e){return v(e,function(n){var t=r.inEdges(n);if(t.length){var o=R(t,function(a,i){var s=r.edge(i),u=r.node(i.v);return{sum:a.sum+s.weight*u.order,weight:a.weight+s.weight}},{sum:0,weight:0});return{v:n,barycenter:o.sum/o.weight,weight:o.weight}}else return{v:n}})}function te(r,e){var n={};f(r,function(o,a){var i=n[o.v]={indegree:0,in:[],out:[],vs:[o.v],i:a};E(o.barycenter)||(i.barycenter=o.barycenter,i.weight=o.weight)}),f(e.edges(),function(o){var a=n[o.v],i=n[o.w];!E(a)&&!E(i)&&(i.indegree++,a.out.push(n[o.w]))});var t=N(n,function(o){return!o.indegree});return Be(t)}function Be(r){var e=[];function n(a){return function(i){i.merged||(E(i.barycenter)||E(a.barycenter)||i.barycenter>=a.barycenter)&&Ae(a,i)}}function t(a){return function(i){i.in.push(a),--i.indegree===0&&r.push(i)}}for(;r.length;){var o=r.pop();e.push(o),f(o.in.reverse(),n(o)),f(o.out,t(o))}return v(N(e,function(a){return!a.merged}),function(a){return V(a,["vs","i","barycenter","weight"])})}function Ae(r,e){var n=0,t=0;r.weight&&(n+=r.barycenter*r.weight,t+=r.weight),e.weight&&(n+=e.barycenter*e.weight,t+=e.weight),r.vs=e.vs.concat(r.vs),r.barycenter=n/t,r.weight=t,r.i=Math.min(e.i,r.i),e.merged=!0}function ae(r,e){var n=gr(r,function(c){return Object.prototype.hasOwnProperty.call(c,"barycenter")}),t=n.lhs,o=I(n.rhs,function(c){return-c.i}),a=[],i=0,s=0,u=0;t.sort(De(!!e)),u=oe(a,o,u),f(t,function(c){u+=c.vs.length,a.push(c.vs),i+=c.barycenter*c.weight,s+=c.weight,u=oe(a,o,u)});var d={vs:g(a)};return s&&(d.barycenter=i/s,d.weight=s),d}function oe(r,e,n){for(var t;e.length&&(t=j(e)).i<=n;)e.pop(),r.push(t.vs),n++;return n}function De(r){return function(e,n){return e.barycentern.barycenter?1:r?n.i-e.i:e.i-n.i}}function cr(r,e,n,t){var o=r.children(e),a=r.node(e),i=a?a.borderLeft:void 0,s=a?a.borderRight:void 0,u={};i&&(o=N(o,function(m){return m!==i&&m!==s}));var d=ne(r,o);f(d,function(m){if(r.children(m.v).length){var w=cr(r,m.v,n,t);u[m.v]=w,Object.prototype.hasOwnProperty.call(w,"barycenter")&&ze(m,w)}});var c=te(d,n);Ye(c,u);var h=ae(c,t);if(i&&(h.vs=g([i,h.vs,s]),r.predecessors(i).length)){var l=r.node(r.predecessors(i)[0]),p=r.node(r.predecessors(s)[0]);Object.prototype.hasOwnProperty.call(h,"barycenter")||(h.barycenter=0,h.weight=0),h.barycenter=(h.barycenter*h.weight+l.order+p.order)/(h.weight+2),h.weight+=2}return h}function Ye(r,e){f(r,function(n){n.vs=g(n.vs.map(function(t){return e[t]?e[t].vs:t}))})}function ze(r,e){E(r.barycenter)?(r.barycenter=e.barycenter,r.weight=e.weight):(r.barycenter=(r.barycenter*r.weight+e.barycenter*e.weight)/(r.weight+e.weight),r.weight+=e.weight)}function fe(r){var e=rr(r),n=ie(r,x(1,e+1),"inEdges"),t=ie(r,x(e-1,-1,-1),"outEdges"),o=ee(r);se(r,o);for(var a=Number.POSITIVE_INFINITY,i,s=0,u=0;u<4;++s,++u){Ue(s%2?n:t,s%4>=2),o=P(r);var d=re(r,o);di||s>e[u].lim));for(d=u,u=t;(u=r.parent(u))!==d;)a.push(u);return{path:o.concat(a.reverse()),lca:d}}function qe(r){var e={},n=0;function t(o){var a=n;f(r.children(o),t),e[o]={low:a,lim:n++}}return f(r.children(),t),e}function Xe(r,e){var n={};function t(o,a){var i=0,s=0,u=o.length,d=j(a);return f(a,function(c,h){var l=Je(r,c),p=l?r.node(l).order:u;(l||c===d)&&(f(a.slice(s,h+1),function(m){f(r.predecessors(m),function(w){var A=r.node(w),pr=A.order;(prd)&&de(n,l,c)})})}function o(a,i){var s=-1,u,d=0;return f(i,function(c,h){if(r.node(c).dummy==="border"){var l=r.predecessors(c);l.length&&(u=r.node(l[0]).order,t(i,d,h,s,u),d=h,s=u)}t(i,d,i.length,u,a.length)}),i}return R(e,o),n}function Je(r,e){if(r.node(e).dummy)return Y(r.predecessors(e),function(n){return r.node(n).dummy})}function de(r,e,n){if(e>n){var t=e;e=n,n=t}var o=r[e];o||(r[e]=o={}),o[n]=!0}function Ke(r,e,n){if(e>n){var t=e;e=n,n=t}return!!r[e]&&Object.prototype.hasOwnProperty.call(r[e],n)}function Qe(r,e,n,t){var o={},a={},i={};return f(e,function(s){f(s,function(u,d){o[u]=u,a[u]=u,i[u]=d})}),f(e,function(s){var u=-1;f(s,function(d){var c=t(d);if(c.length){c=I(c,function(w){return i[w]});for(var h=(c.length-1)/2,l=Math.floor(h),p=Math.ceil(h);l<=p;++l){var m=c[l];a[d]===d&&u{var t=n(" buildLayoutGraph",()=>wn(r));n(" runLayout",()=>fn(t,n)),n(" updateInputGraph",()=>un(r,t))})}function fn(r,e){e(" makeSpaceForEdgeLabels",()=>bn(r)),e(" removeSelfEdges",()=>Ln(r)),e(" acyclic",()=>Mr(r)),e(" nestingGraph.run",()=>Jr(r)),e(" rank",()=>dr(q(r))),e(" injectEdgeLabelProxies",()=>En(r)),e(" removeEmptyRanks",()=>kr(r)),e(" nestingGraph.cleanup",()=>Qr(r)),e(" normalizeRanks",()=>xr(r)),e(" assignRankMinMax",()=>yn(r)),e(" removeEdgeLabelProxies",()=>xn(r)),e(" normalize.run",()=>Vr(r)),e(" parentDummyChains",()=>ue(r)),e(" addBorderSegments",()=>Lr(r)),e(" order",()=>fe(r)),e(" insertSelfEdges",()=>Pn(r)),e(" adjustCoordinateSystem",()=>Cr(r)),e(" position",()=>he(r)),e(" positionSelfEdges",()=>Cn(r)),e(" removeBorderNodes",()=>On(r)),e(" normalize.undo",()=>Br(r)),e(" fixupEdgeLabelCoords",()=>Nn(r)),e(" undoCoordinateSystem",()=>Tr(r)),e(" translateGraph",()=>kn(r)),e(" assignNodeIntersects",()=>gn(r)),e(" reversePoints",()=>In(r)),e(" acyclic.undo",()=>Fr(r))}function un(r,e){f(r.nodes(),function(n){var t=r.node(n),o=e.node(n);t&&(t.x=o.x,t.y=o.y,e.children(n).length&&(t.width=o.width,t.height=o.height))}),f(r.edges(),function(n){var t=r.edge(n),o=e.edge(n);t.points=o.points,Object.prototype.hasOwnProperty.call(o,"x")&&(t.x=o.x,t.y=o.y)}),r.graph().width=e.graph().width,r.graph().height=e.graph().height}var dn=["nodesep","edgesep","ranksep","marginx","marginy"],cn={ranksep:50,edgesep:20,nodesep:50,rankdir:"tb"},hn=["acyclicer","ranker","rankdir","align"],ln=["width","height"],pn={width:0,height:0},mn=["minlen","weight","width","height","labeloffset"],vn={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},_n=["labelpos"];function wn(r){var e=new b({multigraph:!0,compound:!0}),n=lr(r.graph());return e.setGraph(D({},cn,hr(n,dn),V(n,hn))),f(r.nodes(),function(t){var o=lr(r.node(t));e.setNode(t,_r(hr(o,ln),pn)),e.setParent(t,r.parent(t))}),f(r.edges(),function(t){var o=lr(r.edge(t));e.setEdge(t,D({},vn,hr(o,mn),V(o,_n)))}),e}function bn(r){var e=r.graph();e.ranksep/=2,f(r.edges(),function(n){var t=r.edge(n);t.minlen*=2,t.labelpos.toLowerCase()!=="c"&&(e.rankdir==="TB"||e.rankdir==="BT"?t.width+=t.labeloffset:t.height+=t.labeloffset)})}function En(r){f(r.edges(),function(e){var n=r.edge(e);if(n.width&&n.height){var t=r.node(e.v),o=r.node(e.w),a={rank:(o.rank-t.rank)/2+t.rank,e};k(r,"edge-proxy",a,"_ep")}})}function yn(r){var e=0;f(r.nodes(),function(n){var t=r.node(n);t.borderTop&&(t.minRank=r.node(t.borderTop).rank,t.maxRank=r.node(t.borderBottom).rank,e=y(e,t.maxRank))}),r.graph().maxRank=e}function xn(r){f(r.nodes(),function(e){var n=r.node(e);n.dummy==="edge-proxy"&&(r.edge(n.e).labelRank=n.rank,r.removeNode(e))})}function kn(r){var e=Number.POSITIVE_INFINITY,n=0,t=Number.POSITIVE_INFINITY,o=0,a=r.graph(),i=a.marginx||0,s=a.marginy||0;function u(d){var c=d.x,h=d.y,l=d.width,p=d.height;e=Math.min(e,c-l/2),n=Math.max(n,c+l/2),t=Math.min(t,h-p/2),o=Math.max(o,h+p/2)}f(r.nodes(),function(d){u(r.node(d))}),f(r.edges(),function(d){var c=r.edge(d);Object.prototype.hasOwnProperty.call(c,"x")&&u(c)}),e-=i,t-=s,f(r.nodes(),function(d){var c=r.node(d);c.x-=e,c.y-=t}),f(r.edges(),function(d){var c=r.edge(d);f(c.points,function(h){h.x-=e,h.y-=t}),Object.prototype.hasOwnProperty.call(c,"x")&&(c.x-=e),Object.prototype.hasOwnProperty.call(c,"y")&&(c.y-=t)}),a.width=n-e+i,a.height=o-t+s}function gn(r){f(r.edges(),function(e){var n=r.edge(e),t=r.node(e.v),o=r.node(e.w),a,i;n.points?(a=n.points[0],i=n.points[n.points.length-1]):(n.points=[],a=o,i=t),n.points.unshift(Z(t,a)),n.points.push(Z(o,i))})}function Nn(r){f(r.edges(),function(e){var n=r.edge(e);if(Object.prototype.hasOwnProperty.call(n,"x"))switch((n.labelpos==="l"||n.labelpos==="r")&&(n.width-=n.labeloffset),n.labelpos){case"l":n.x-=n.width/2+n.labeloffset;break;case"r":n.x+=n.width/2+n.labeloffset;break}})}function In(r){f(r.edges(),function(e){var n=r.edge(e);n.reversed&&n.points.reverse()})}function On(r){f(r.nodes(),function(e){if(r.children(e).length){var n=r.node(e),t=r.node(n.borderTop),o=r.node(n.borderBottom),a=r.node(j(n.borderLeft)),i=r.node(j(n.borderRight));n.width=Math.abs(i.x-a.x),n.height=Math.abs(o.y-t.y),n.x=a.x+n.width/2,n.y=t.y+n.height/2}}),f(r.nodes(),function(e){r.node(e).dummy==="border"&&r.removeNode(e)})}function Ln(r){f(r.edges(),function(e){if(e.v===e.w){var n=r.node(e.v);n.selfEdges||(n.selfEdges=[]),n.selfEdges.push({e,label:r.edge(e)}),r.removeEdge(e)}})}function Pn(r){var e=P(r);f(e,function(n){var t=0;f(n,function(o,a){var i=r.node(o);i.order=a+t,f(i.selfEdges,function(s){k(r,"selfedge",{width:s.label.width,height:s.label.height,rank:i.rank,order:a+ ++t,e:s.e,label:s.label},"_se")}),delete i.selfEdges})})}function Cn(r){f(r.nodes(),function(e){var n=r.node(e);if(n.dummy==="selfedge"){var t=r.node(n.e.v),o=t.x+t.width/2,a=t.y,i=n.x-o,s=t.height/2;r.setEdge(n.e,n.label),r.removeNode(e),n.label.points=[{x:o+2*i/3,y:a-s},{x:o+5*i/6,y:a-s},{x:o+i,y:a},{x:o+5*i/6,y:a+s},{x:o+2*i/3,y:a+s}],n.label.x=n.x,n.label.y=n.y}})}function hr(r,e){return F(V(r,e),Number)}function lr(r){var e={};return f(r,function(n,t){e[t.toLowerCase()]=n}),e}export{sn as a}; +//# sourceMappingURL=chunk-2YMHYP32.min.js.map diff --git a/docs/_site/public/chunk-2YMHYP32.min.js.map b/docs/_site/public/chunk-2YMHYP32.min.js.map new file mode 100644 index 0000000..ab7f405 --- /dev/null +++ b/docs/_site/public/chunk-2YMHYP32.min.js.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": ["../../node_modules/dagre-d3-es/src/dagre/util.js", "../../node_modules/dagre-d3-es/src/dagre/add-border-segments.js", "../../node_modules/dagre-d3-es/src/dagre/coordinate-system.js", "../../node_modules/dagre-d3-es/src/dagre/data/list.js", "../../node_modules/dagre-d3-es/src/dagre/greedy-fas.js", "../../node_modules/dagre-d3-es/src/dagre/acyclic.js", "../../node_modules/dagre-d3-es/src/dagre/normalize.js", "../../node_modules/dagre-d3-es/src/dagre/rank/util.js", "../../node_modules/dagre-d3-es/src/dagre/rank/feasible-tree.js", "../../node_modules/dagre-d3-es/src/graphlib/alg/dijkstra.js", "../../node_modules/dagre-d3-es/src/graphlib/alg/floyd-warshall.js", "../../node_modules/dagre-d3-es/src/graphlib/alg/topsort.js", "../../node_modules/dagre-d3-es/src/graphlib/alg/dfs.js", "../../node_modules/dagre-d3-es/src/graphlib/alg/postorder.js", "../../node_modules/dagre-d3-es/src/graphlib/alg/preorder.js", "../../node_modules/dagre-d3-es/src/dagre/rank/network-simplex.js", "../../node_modules/dagre-d3-es/src/dagre/rank/index.js", "../../node_modules/dagre-d3-es/src/dagre/nesting-graph.js", "../../node_modules/dagre-d3-es/src/dagre/order/add-subgraph-constraints.js", "../../node_modules/dagre-d3-es/src/dagre/order/build-layer-graph.js", "../../node_modules/dagre-d3-es/src/dagre/order/cross-count.js", "../../node_modules/dagre-d3-es/src/dagre/order/init-order.js", "../../node_modules/dagre-d3-es/src/dagre/order/barycenter.js", "../../node_modules/dagre-d3-es/src/dagre/order/resolve-conflicts.js", "../../node_modules/dagre-d3-es/src/dagre/order/sort.js", "../../node_modules/dagre-d3-es/src/dagre/order/sort-subgraph.js", "../../node_modules/dagre-d3-es/src/dagre/order/index.js", "../../node_modules/dagre-d3-es/src/dagre/parent-dummy-chains.js", "../../node_modules/dagre-d3-es/src/dagre/position/bk.js", "../../node_modules/dagre-d3-es/src/dagre/position/index.js", "../../node_modules/dagre-d3-es/src/dagre/layout.js"], + "sourcesContent": ["import * as _ from 'lodash-es';\nimport { Graph } from '../graphlib/index.js';\n\nexport {\n addDummyNode,\n simplify,\n asNonCompoundGraph,\n successorWeights,\n predecessorWeights,\n intersectRect,\n buildLayerMatrix,\n normalizeRanks,\n removeEmptyRanks,\n addBorderNode,\n maxRank,\n partition,\n time,\n notime,\n};\n\n/*\n * Adds a dummy node to the graph and return v.\n */\nfunction addDummyNode(g, type, attrs, name) {\n var v;\n do {\n v = _.uniqueId(name);\n } while (g.hasNode(v));\n\n attrs.dummy = type;\n g.setNode(v, attrs);\n return v;\n}\n\n/*\n * Returns a new graph with only simple edges. Handles aggregation of data\n * associated with multi-edges.\n */\nfunction simplify(g) {\n var simplified = new Graph().setGraph(g.graph());\n _.forEach(g.nodes(), function (v) {\n simplified.setNode(v, g.node(v));\n });\n _.forEach(g.edges(), function (e) {\n var simpleLabel = simplified.edge(e.v, e.w) || { weight: 0, minlen: 1 };\n var label = g.edge(e);\n simplified.setEdge(e.v, e.w, {\n weight: simpleLabel.weight + label.weight,\n minlen: Math.max(simpleLabel.minlen, label.minlen),\n });\n });\n return simplified;\n}\n\nfunction asNonCompoundGraph(g) {\n var simplified = new Graph({ multigraph: g.isMultigraph() }).setGraph(g.graph());\n _.forEach(g.nodes(), function (v) {\n if (!g.children(v).length) {\n simplified.setNode(v, g.node(v));\n }\n });\n _.forEach(g.edges(), function (e) {\n simplified.setEdge(e, g.edge(e));\n });\n return simplified;\n}\n\nfunction successorWeights(g) {\n var weightMap = _.map(g.nodes(), function (v) {\n var sucs = {};\n _.forEach(g.outEdges(v), function (e) {\n sucs[e.w] = (sucs[e.w] || 0) + g.edge(e).weight;\n });\n return sucs;\n });\n return _.zipObject(g.nodes(), weightMap);\n}\n\nfunction predecessorWeights(g) {\n var weightMap = _.map(g.nodes(), function (v) {\n var preds = {};\n _.forEach(g.inEdges(v), function (e) {\n preds[e.v] = (preds[e.v] || 0) + g.edge(e).weight;\n });\n return preds;\n });\n return _.zipObject(g.nodes(), weightMap);\n}\n\n/*\n * Finds where a line starting at point ({x, y}) would intersect a rectangle\n * ({x, y, width, height}) if it were pointing at the rectangle's center.\n */\nfunction intersectRect(rect, point) {\n var x = rect.x;\n var y = rect.y;\n\n // Rectangle intersection algorithm from:\n // http://math.stackexchange.com/questions/108113/find-edge-between-two-boxes\n var dx = point.x - x;\n var dy = point.y - y;\n var w = rect.width / 2;\n var h = rect.height / 2;\n\n if (!dx && !dy) {\n throw new Error('Not possible to find intersection inside of the rectangle');\n }\n\n var sx, sy;\n if (Math.abs(dy) * w > Math.abs(dx) * h) {\n // Intersection is top or bottom of rect.\n if (dy < 0) {\n h = -h;\n }\n sx = (h * dx) / dy;\n sy = h;\n } else {\n // Intersection is left or right of rect.\n if (dx < 0) {\n w = -w;\n }\n sx = w;\n sy = (w * dy) / dx;\n }\n\n return { x: x + sx, y: y + sy };\n}\n\n/*\n * Given a DAG with each node assigned \"rank\" and \"order\" properties, this\n * function will produce a matrix with the ids of each node.\n */\nfunction buildLayerMatrix(g) {\n var layering = _.map(_.range(maxRank(g) + 1), function () {\n return [];\n });\n _.forEach(g.nodes(), function (v) {\n var node = g.node(v);\n var rank = node.rank;\n if (!_.isUndefined(rank)) {\n layering[rank][node.order] = v;\n }\n });\n return layering;\n}\n\n/*\n * Adjusts the ranks for all nodes in the graph such that all nodes v have\n * rank(v) >= 0 and at least one node w has rank(w) = 0.\n */\nfunction normalizeRanks(g) {\n var min = _.min(\n _.map(g.nodes(), function (v) {\n return g.node(v).rank;\n }),\n );\n _.forEach(g.nodes(), function (v) {\n var node = g.node(v);\n if (_.has(node, 'rank')) {\n node.rank -= min;\n }\n });\n}\n\nfunction removeEmptyRanks(g) {\n // Ranks may not start at 0, so we need to offset them\n var offset = _.min(\n _.map(g.nodes(), function (v) {\n return g.node(v).rank;\n }),\n );\n\n var layers = [];\n _.forEach(g.nodes(), function (v) {\n var rank = g.node(v).rank - offset;\n if (!layers[rank]) {\n layers[rank] = [];\n }\n layers[rank].push(v);\n });\n\n var delta = 0;\n var nodeRankFactor = g.graph().nodeRankFactor;\n _.forEach(layers, function (vs, i) {\n if (_.isUndefined(vs) && i % nodeRankFactor !== 0) {\n --delta;\n } else if (delta) {\n _.forEach(vs, function (v) {\n g.node(v).rank += delta;\n });\n }\n });\n}\n\nfunction addBorderNode(g, prefix, rank, order) {\n var node = {\n width: 0,\n height: 0,\n };\n if (arguments.length >= 4) {\n node.rank = rank;\n node.order = order;\n }\n return addDummyNode(g, 'border', node, prefix);\n}\n\nfunction maxRank(g) {\n return _.max(\n _.map(g.nodes(), function (v) {\n var rank = g.node(v).rank;\n if (!_.isUndefined(rank)) {\n return rank;\n }\n }),\n );\n}\n\n/*\n * Partition a collection into two groups: `lhs` and `rhs`. If the supplied\n * function returns true for an entry it goes into `lhs`. Otherwise it goes\n * into `rhs.\n */\nfunction partition(collection, fn) {\n var result = { lhs: [], rhs: [] };\n _.forEach(collection, function (value) {\n if (fn(value)) {\n result.lhs.push(value);\n } else {\n result.rhs.push(value);\n }\n });\n return result;\n}\n\n/*\n * Returns a new function that wraps `fn` with a timer. The wrapper logs the\n * time it takes to execute the function.\n */\nfunction time(name, fn) {\n var start = _.now();\n try {\n return fn();\n } finally {\n console.log(name + ' time: ' + (_.now() - start) + 'ms');\n }\n}\n\nfunction notime(name, fn) {\n return fn();\n}\n", "import * as _ from 'lodash-es';\nimport * as util from './util.js';\n\nexport { addBorderSegments };\n\nfunction addBorderSegments(g) {\n function dfs(v) {\n var children = g.children(v);\n var node = g.node(v);\n if (children.length) {\n _.forEach(children, dfs);\n }\n\n if (Object.prototype.hasOwnProperty.call(node, 'minRank')) {\n node.borderLeft = [];\n node.borderRight = [];\n for (var rank = node.minRank, maxRank = node.maxRank + 1; rank < maxRank; ++rank) {\n addBorderNode(g, 'borderLeft', '_bl', v, node, rank);\n addBorderNode(g, 'borderRight', '_br', v, node, rank);\n }\n }\n }\n\n _.forEach(g.children(), dfs);\n}\n\nfunction addBorderNode(g, prop, prefix, sg, sgNode, rank) {\n var label = { width: 0, height: 0, rank: rank, borderType: prop };\n var prev = sgNode[prop][rank - 1];\n var curr = util.addDummyNode(g, 'border', label, prefix);\n sgNode[prop][rank] = curr;\n g.setParent(curr, sg);\n if (prev) {\n g.setEdge(prev, curr, { weight: 1 });\n }\n}\n", "import * as _ from 'lodash-es';\n\nexport { adjust, undo };\n\nfunction adjust(g) {\n var rankDir = g.graph().rankdir.toLowerCase();\n if (rankDir === 'lr' || rankDir === 'rl') {\n swapWidthHeight(g);\n }\n}\n\nfunction undo(g) {\n var rankDir = g.graph().rankdir.toLowerCase();\n if (rankDir === 'bt' || rankDir === 'rl') {\n reverseY(g);\n }\n\n if (rankDir === 'lr' || rankDir === 'rl') {\n swapXY(g);\n swapWidthHeight(g);\n }\n}\n\nfunction swapWidthHeight(g) {\n _.forEach(g.nodes(), function (v) {\n swapWidthHeightOne(g.node(v));\n });\n _.forEach(g.edges(), function (e) {\n swapWidthHeightOne(g.edge(e));\n });\n}\n\nfunction swapWidthHeightOne(attrs) {\n var w = attrs.width;\n attrs.width = attrs.height;\n attrs.height = w;\n}\n\nfunction reverseY(g) {\n _.forEach(g.nodes(), function (v) {\n reverseYOne(g.node(v));\n });\n\n _.forEach(g.edges(), function (e) {\n var edge = g.edge(e);\n _.forEach(edge.points, reverseYOne);\n if (Object.prototype.hasOwnProperty.call(edge, 'y')) {\n reverseYOne(edge);\n }\n });\n}\n\nfunction reverseYOne(attrs) {\n attrs.y = -attrs.y;\n}\n\nfunction swapXY(g) {\n _.forEach(g.nodes(), function (v) {\n swapXYOne(g.node(v));\n });\n\n _.forEach(g.edges(), function (e) {\n var edge = g.edge(e);\n _.forEach(edge.points, swapXYOne);\n if (Object.prototype.hasOwnProperty.call(edge, 'x')) {\n swapXYOne(edge);\n }\n });\n}\n\nfunction swapXYOne(attrs) {\n var x = attrs.x;\n attrs.x = attrs.y;\n attrs.y = x;\n}\n", "/*\n * Simple doubly linked list implementation derived from Cormen, et al.,\n * \"Introduction to Algorithms\".\n */\n\nexport { List };\n\nclass List {\n constructor() {\n var sentinel = {};\n sentinel._next = sentinel._prev = sentinel;\n this._sentinel = sentinel;\n }\n dequeue() {\n var sentinel = this._sentinel;\n var entry = sentinel._prev;\n if (entry !== sentinel) {\n unlink(entry);\n return entry;\n }\n }\n enqueue(entry) {\n var sentinel = this._sentinel;\n if (entry._prev && entry._next) {\n unlink(entry);\n }\n entry._next = sentinel._next;\n sentinel._next._prev = entry;\n sentinel._next = entry;\n entry._prev = sentinel;\n }\n toString() {\n var strs = [];\n var sentinel = this._sentinel;\n var curr = sentinel._prev;\n while (curr !== sentinel) {\n strs.push(JSON.stringify(curr, filterOutLinks));\n curr = curr._prev;\n }\n return '[' + strs.join(', ') + ']';\n }\n}\n\nfunction unlink(entry) {\n entry._prev._next = entry._next;\n entry._next._prev = entry._prev;\n delete entry._next;\n delete entry._prev;\n}\n\nfunction filterOutLinks(k, v) {\n if (k !== '_next' && k !== '_prev') {\n return v;\n }\n}\n", "import * as _ from 'lodash-es';\nimport { Graph } from '../graphlib/index.js';\nimport { List } from './data/list.js';\n\n/*\n * A greedy heuristic for finding a feedback arc set for a graph. A feedback\n * arc set is a set of edges that can be removed to make a graph acyclic.\n * The algorithm comes from: P. Eades, X. Lin, and W. F. Smyth, \"A fast and\n * effective heuristic for the feedback arc set problem.\" This implementation\n * adjusts that from the paper to allow for weighted edges.\n */\nexport { greedyFAS };\n\nvar DEFAULT_WEIGHT_FN = _.constant(1);\n\nfunction greedyFAS(g, weightFn) {\n if (g.nodeCount() <= 1) {\n return [];\n }\n var state = buildState(g, weightFn || DEFAULT_WEIGHT_FN);\n var results = doGreedyFAS(state.graph, state.buckets, state.zeroIdx);\n\n // Expand multi-edges\n return _.flatten(\n _.map(results, function (e) {\n return g.outEdges(e.v, e.w);\n }),\n );\n}\n\nfunction doGreedyFAS(g, buckets, zeroIdx) {\n var results = [];\n var sources = buckets[buckets.length - 1];\n var sinks = buckets[0];\n\n var entry;\n while (g.nodeCount()) {\n while ((entry = sinks.dequeue())) {\n removeNode(g, buckets, zeroIdx, entry);\n }\n while ((entry = sources.dequeue())) {\n removeNode(g, buckets, zeroIdx, entry);\n }\n if (g.nodeCount()) {\n for (var i = buckets.length - 2; i > 0; --i) {\n entry = buckets[i].dequeue();\n if (entry) {\n results = results.concat(removeNode(g, buckets, zeroIdx, entry, true));\n break;\n }\n }\n }\n }\n\n return results;\n}\n\nfunction removeNode(g, buckets, zeroIdx, entry, collectPredecessors) {\n var results = collectPredecessors ? [] : undefined;\n\n _.forEach(g.inEdges(entry.v), function (edge) {\n var weight = g.edge(edge);\n var uEntry = g.node(edge.v);\n\n if (collectPredecessors) {\n results.push({ v: edge.v, w: edge.w });\n }\n\n uEntry.out -= weight;\n assignBucket(buckets, zeroIdx, uEntry);\n });\n\n _.forEach(g.outEdges(entry.v), function (edge) {\n var weight = g.edge(edge);\n var w = edge.w;\n var wEntry = g.node(w);\n wEntry['in'] -= weight;\n assignBucket(buckets, zeroIdx, wEntry);\n });\n\n g.removeNode(entry.v);\n\n return results;\n}\n\nfunction buildState(g, weightFn) {\n var fasGraph = new Graph();\n var maxIn = 0;\n var maxOut = 0;\n\n _.forEach(g.nodes(), function (v) {\n fasGraph.setNode(v, { v: v, in: 0, out: 0 });\n });\n\n // Aggregate weights on nodes, but also sum the weights across multi-edges\n // into a single edge for the fasGraph.\n _.forEach(g.edges(), function (e) {\n var prevWeight = fasGraph.edge(e.v, e.w) || 0;\n var weight = weightFn(e);\n var edgeWeight = prevWeight + weight;\n fasGraph.setEdge(e.v, e.w, edgeWeight);\n maxOut = Math.max(maxOut, (fasGraph.node(e.v).out += weight));\n maxIn = Math.max(maxIn, (fasGraph.node(e.w)['in'] += weight));\n });\n\n var buckets = _.range(maxOut + maxIn + 3).map(function () {\n return new List();\n });\n var zeroIdx = maxIn + 1;\n\n _.forEach(fasGraph.nodes(), function (v) {\n assignBucket(buckets, zeroIdx, fasGraph.node(v));\n });\n\n return { graph: fasGraph, buckets: buckets, zeroIdx: zeroIdx };\n}\n\nfunction assignBucket(buckets, zeroIdx, entry) {\n if (!entry.out) {\n buckets[0].enqueue(entry);\n } else if (!entry['in']) {\n buckets[buckets.length - 1].enqueue(entry);\n } else {\n buckets[entry.out - entry['in'] + zeroIdx].enqueue(entry);\n }\n}\n", "import * as _ from 'lodash-es';\nimport { greedyFAS } from './greedy-fas.js';\n\nexport { run, undo };\n\nfunction run(g) {\n var fas = g.graph().acyclicer === 'greedy' ? greedyFAS(g, weightFn(g)) : dfsFAS(g);\n _.forEach(fas, function (e) {\n var label = g.edge(e);\n g.removeEdge(e);\n label.forwardName = e.name;\n label.reversed = true;\n g.setEdge(e.w, e.v, label, _.uniqueId('rev'));\n });\n\n function weightFn(g) {\n return function (e) {\n return g.edge(e).weight;\n };\n }\n}\n\nfunction dfsFAS(g) {\n var fas = [];\n var stack = {};\n var visited = {};\n\n function dfs(v) {\n if (Object.prototype.hasOwnProperty.call(visited, v)) {\n return;\n }\n visited[v] = true;\n stack[v] = true;\n _.forEach(g.outEdges(v), function (e) {\n if (Object.prototype.hasOwnProperty.call(stack, e.w)) {\n fas.push(e);\n } else {\n dfs(e.w);\n }\n });\n delete stack[v];\n }\n\n _.forEach(g.nodes(), dfs);\n return fas;\n}\n\nfunction undo(g) {\n _.forEach(g.edges(), function (e) {\n var label = g.edge(e);\n if (label.reversed) {\n g.removeEdge(e);\n\n var forwardName = label.forwardName;\n delete label.reversed;\n delete label.forwardName;\n g.setEdge(e.w, e.v, label, forwardName);\n }\n });\n}\n", "/**\n * TypeScript type imports:\n *\n * @import { Graph } from '../graphlib/graph.js';\n */\nimport * as _ from 'lodash-es';\nimport * as util from './util.js';\n\nexport { run, undo };\n\n/*\n * Breaks any long edges in the graph into short segments that span 1 layer\n * each. This operation is undoable with the denormalize function.\n *\n * Pre-conditions:\n *\n * 1. The input graph is a DAG.\n * 2. Each node in the graph has a \"rank\" property.\n *\n * Post-condition:\n *\n * 1. All edges in the graph have a length of 1.\n * 2. Dummy nodes are added where edges have been split into segments.\n * 3. The graph is augmented with a \"dummyChains\" attribute which contains\n * the first dummy in each chain of dummy nodes produced.\n */\nfunction run(g) {\n g.graph().dummyChains = [];\n _.forEach(g.edges(), function (edge) {\n normalizeEdge(g, edge);\n });\n}\n\n/**\n * @param {Graph} g\n */\nfunction normalizeEdge(g, e) {\n var v = e.v;\n var vRank = g.node(v).rank;\n var w = e.w;\n var wRank = g.node(w).rank;\n var name = e.name;\n var edgeLabel = g.edge(e);\n var labelRank = edgeLabel.labelRank;\n\n if (wRank === vRank + 1) return;\n\n g.removeEdge(e);\n\n /**\n * @typedef {Object} Attrs\n * @property {number} width\n * @property {number} height\n * @property {ReturnType} edgeLabel\n * @property {any} edgeObj\n * @property {ReturnType[\"rank\"]} rank\n * @property {string} [dummy]\n * @property {ReturnType[\"labelpos\"]} [labelpos]\n */\n\n /** @type {Attrs | undefined} */\n var attrs = undefined;\n var dummy, i;\n for (i = 0, ++vRank; vRank < wRank; ++i, ++vRank) {\n edgeLabel.points = [];\n attrs = {\n width: 0,\n height: 0,\n edgeLabel: edgeLabel,\n edgeObj: e,\n rank: vRank,\n };\n dummy = util.addDummyNode(g, 'edge', attrs, '_d');\n if (vRank === labelRank) {\n attrs.width = edgeLabel.width;\n attrs.height = edgeLabel.height;\n attrs.dummy = 'edge-label';\n attrs.labelpos = edgeLabel.labelpos;\n }\n g.setEdge(v, dummy, { weight: edgeLabel.weight }, name);\n if (i === 0) {\n g.graph().dummyChains.push(dummy);\n }\n v = dummy;\n }\n\n g.setEdge(v, w, { weight: edgeLabel.weight }, name);\n}\n\nfunction undo(g) {\n _.forEach(g.graph().dummyChains, function (v) {\n var node = g.node(v);\n var origLabel = node.edgeLabel;\n var w;\n g.setEdge(node.edgeObj, origLabel);\n while (node.dummy) {\n w = g.successors(v)[0];\n g.removeNode(v);\n origLabel.points.push({ x: node.x, y: node.y });\n if (node.dummy === 'edge-label') {\n origLabel.x = node.x;\n origLabel.y = node.y;\n origLabel.width = node.width;\n origLabel.height = node.height;\n }\n v = w;\n node = g.node(v);\n }\n });\n}\n", "import * as _ from 'lodash-es';\n\nexport { longestPath, slack };\n\n/*\n * Initializes ranks for the input graph using the longest path algorithm. This\n * algorithm scales well and is fast in practice, it yields rather poor\n * solutions. Nodes are pushed to the lowest layer possible, leaving the bottom\n * ranks wide and leaving edges longer than necessary. However, due to its\n * speed, this algorithm is good for getting an initial ranking that can be fed\n * into other algorithms.\n *\n * This algorithm does not normalize layers because it will be used by other\n * algorithms in most cases. If using this algorithm directly, be sure to\n * run normalize at the end.\n *\n * Pre-conditions:\n *\n * 1. Input graph is a DAG.\n * 2. Input graph node labels can be assigned properties.\n *\n * Post-conditions:\n *\n * 1. Each node will be assign an (unnormalized) \"rank\" property.\n */\nfunction longestPath(g) {\n var visited = {};\n\n function dfs(v) {\n var label = g.node(v);\n if (Object.prototype.hasOwnProperty.call(visited, v)) {\n return label.rank;\n }\n visited[v] = true;\n\n var rank = _.min(\n _.map(g.outEdges(v), function (e) {\n return dfs(e.w) - g.edge(e).minlen;\n }),\n );\n\n if (\n rank === Number.POSITIVE_INFINITY || // return value of _.map([]) for Lodash 3\n rank === undefined || // return value of _.map([]) for Lodash 4\n rank === null\n ) {\n // return value of _.map([null])\n rank = 0;\n }\n\n return (label.rank = rank);\n }\n\n _.forEach(g.sources(), dfs);\n}\n\n/*\n * Returns the amount of slack for the given edge. The slack is defined as the\n * difference between the length of the edge and its minimum length.\n */\nfunction slack(g, e) {\n return g.node(e.w).rank - g.node(e.v).rank - g.edge(e).minlen;\n}\n", "import * as _ from 'lodash-es';\nimport { Graph } from '../../graphlib/index.js';\nimport { slack } from './util.js';\n\nexport { feasibleTree };\n\n/*\n * Constructs a spanning tree with tight edges and adjusted the input node's\n * ranks to achieve this. A tight edge is one that is has a length that matches\n * its \"minlen\" attribute.\n *\n * The basic structure for this function is derived from Gansner, et al., \"A\n * Technique for Drawing Directed Graphs.\"\n *\n * Pre-conditions:\n *\n * 1. Graph must be a DAG.\n * 2. Graph must be connected.\n * 3. Graph must have at least one node.\n * 5. Graph nodes must have been previously assigned a \"rank\" property that\n * respects the \"minlen\" property of incident edges.\n * 6. Graph edges must have a \"minlen\" property.\n *\n * Post-conditions:\n *\n * - Graph nodes will have their rank adjusted to ensure that all edges are\n * tight.\n *\n * Returns a tree (undirected graph) that is constructed using only \"tight\"\n * edges.\n */\nfunction feasibleTree(g) {\n var t = new Graph({ directed: false });\n\n // Choose arbitrary node from which to start our tree\n var start = g.nodes()[0];\n var size = g.nodeCount();\n t.setNode(start, {});\n\n var edge, delta;\n while (tightTree(t, g) < size) {\n edge = findMinSlackEdge(t, g);\n delta = t.hasNode(edge.v) ? slack(g, edge) : -slack(g, edge);\n shiftRanks(t, g, delta);\n }\n\n return t;\n}\n\n/*\n * Finds a maximal tree of tight edges and returns the number of nodes in the\n * tree.\n */\nfunction tightTree(t, g) {\n function dfs(v) {\n _.forEach(g.nodeEdges(v), function (e) {\n var edgeV = e.v,\n w = v === edgeV ? e.w : edgeV;\n if (!t.hasNode(w) && !slack(g, e)) {\n t.setNode(w, {});\n t.setEdge(v, w, {});\n dfs(w);\n }\n });\n }\n\n _.forEach(t.nodes(), dfs);\n return t.nodeCount();\n}\n\n/*\n * Finds the edge with the smallest slack that is incident on tree and returns\n * it.\n */\nfunction findMinSlackEdge(t, g) {\n return _.minBy(g.edges(), function (e) {\n if (t.hasNode(e.v) !== t.hasNode(e.w)) {\n return slack(g, e);\n }\n });\n}\n\nfunction shiftRanks(t, g, delta) {\n _.forEach(t.nodes(), function (v) {\n g.node(v).rank += delta;\n });\n}\n", "import * as _ from 'lodash-es';\nimport { PriorityQueue } from '../data/priority-queue.js';\n\nexport { dijkstra };\n\nvar DEFAULT_WEIGHT_FUNC = _.constant(1);\n\nfunction dijkstra(g, source, weightFn, edgeFn) {\n return runDijkstra(\n g,\n String(source),\n weightFn || DEFAULT_WEIGHT_FUNC,\n edgeFn ||\n function (v) {\n return g.outEdges(v);\n },\n );\n}\n\nfunction runDijkstra(g, source, weightFn, edgeFn) {\n var results = {};\n var pq = new PriorityQueue();\n var v, vEntry;\n\n var updateNeighbors = function (edge) {\n var w = edge.v !== v ? edge.v : edge.w;\n var wEntry = results[w];\n var weight = weightFn(edge);\n var distance = vEntry.distance + weight;\n\n if (weight < 0) {\n throw new Error(\n 'dijkstra does not allow negative edge weights. ' +\n 'Bad edge: ' +\n edge +\n ' Weight: ' +\n weight,\n );\n }\n\n if (distance < wEntry.distance) {\n wEntry.distance = distance;\n wEntry.predecessor = v;\n pq.decrease(w, distance);\n }\n };\n\n g.nodes().forEach(function (v) {\n var distance = v === source ? 0 : Number.POSITIVE_INFINITY;\n results[v] = { distance: distance };\n pq.add(v, distance);\n });\n\n while (pq.size() > 0) {\n v = pq.removeMin();\n vEntry = results[v];\n if (vEntry.distance === Number.POSITIVE_INFINITY) {\n break;\n }\n\n edgeFn(v).forEach(updateNeighbors);\n }\n\n return results;\n}\n", "import * as _ from 'lodash-es';\n\nexport { floydWarshall };\n\nvar DEFAULT_WEIGHT_FUNC = _.constant(1);\n\nfunction floydWarshall(g, weightFn, edgeFn) {\n return runFloydWarshall(\n g,\n weightFn || DEFAULT_WEIGHT_FUNC,\n edgeFn ||\n function (v) {\n return g.outEdges(v);\n },\n );\n}\n\nfunction runFloydWarshall(g, weightFn, edgeFn) {\n var results = {};\n var nodes = g.nodes();\n\n nodes.forEach(function (v) {\n results[v] = {};\n results[v][v] = { distance: 0 };\n nodes.forEach(function (w) {\n if (v !== w) {\n results[v][w] = { distance: Number.POSITIVE_INFINITY };\n }\n });\n edgeFn(v).forEach(function (edge) {\n var w = edge.v === v ? edge.w : edge.v;\n var d = weightFn(edge);\n results[v][w] = { distance: d, predecessor: v };\n });\n });\n\n nodes.forEach(function (k) {\n var rowK = results[k];\n nodes.forEach(function (i) {\n var rowI = results[i];\n nodes.forEach(function (j) {\n var ik = rowI[k];\n var kj = rowK[j];\n var ij = rowI[j];\n var altDistance = ik.distance + kj.distance;\n if (altDistance < ij.distance) {\n ij.distance = altDistance;\n ij.predecessor = kj.predecessor;\n }\n });\n });\n });\n\n return results;\n}\n", "import * as _ from 'lodash-es';\n\nexport { topsort, CycleException };\n\ntopsort.CycleException = CycleException;\n\nfunction topsort(g) {\n var visited = {};\n var stack = {};\n var results = [];\n\n function visit(node) {\n if (Object.prototype.hasOwnProperty.call(stack, node)) {\n throw new CycleException();\n }\n\n if (!Object.prototype.hasOwnProperty.call(visited, node)) {\n stack[node] = true;\n visited[node] = true;\n _.each(g.predecessors(node), visit);\n delete stack[node];\n results.push(node);\n }\n }\n\n _.each(g.sinks(), visit);\n\n if (_.size(visited) !== g.nodeCount()) {\n throw new CycleException();\n }\n\n return results;\n}\n\nfunction CycleException() {}\nCycleException.prototype = new Error(); // must be an instance of Error to pass testing\n", "import * as _ from 'lodash-es';\n\nexport { dfs };\n\n/*\n * A helper that preforms a pre- or post-order traversal on the input graph\n * and returns the nodes in the order they were visited. If the graph is\n * undirected then this algorithm will navigate using neighbors. If the graph\n * is directed then this algorithm will navigate using successors.\n *\n * Order must be one of \"pre\" or \"post\".\n */\nfunction dfs(g, vs, order) {\n if (!_.isArray(vs)) {\n vs = [vs];\n }\n\n var navigation = (g.isDirected() ? g.successors : g.neighbors).bind(g);\n\n var acc = [];\n var visited = {};\n _.each(vs, function (v) {\n if (!g.hasNode(v)) {\n throw new Error('Graph does not have node: ' + v);\n }\n\n doDfs(g, v, order === 'post', visited, navigation, acc);\n });\n return acc;\n}\n\nfunction doDfs(g, v, postorder, visited, navigation, acc) {\n if (!Object.prototype.hasOwnProperty.call(visited, v)) {\n visited[v] = true;\n\n if (!postorder) {\n acc.push(v);\n }\n _.each(navigation(v), function (w) {\n doDfs(g, w, postorder, visited, navigation, acc);\n });\n if (postorder) {\n acc.push(v);\n }\n }\n}\n", "import { dfs } from './dfs.js';\n\nexport { postorder };\n\nfunction postorder(g, vs) {\n return dfs(g, vs, 'post');\n}\n", "import { dfs } from './dfs.js';\n\nexport { preorder };\n\nfunction preorder(g, vs) {\n return dfs(g, vs, 'pre');\n}\n", "import * as _ from 'lodash-es';\nimport * as alg from '../../graphlib/alg/index.js';\nimport { simplify } from '../util.js';\nimport { feasibleTree } from './feasible-tree.js';\nimport { longestPath, slack } from './util.js';\n\nexport { networkSimplex };\n\n// Expose some internals for testing purposes\nnetworkSimplex.initLowLimValues = initLowLimValues;\nnetworkSimplex.initCutValues = initCutValues;\nnetworkSimplex.calcCutValue = calcCutValue;\nnetworkSimplex.leaveEdge = leaveEdge;\nnetworkSimplex.enterEdge = enterEdge;\nnetworkSimplex.exchangeEdges = exchangeEdges;\n\n/*\n * The network simplex algorithm assigns ranks to each node in the input graph\n * and iteratively improves the ranking to reduce the length of edges.\n *\n * Preconditions:\n *\n * 1. The input graph must be a DAG.\n * 2. All nodes in the graph must have an object value.\n * 3. All edges in the graph must have \"minlen\" and \"weight\" attributes.\n *\n * Postconditions:\n *\n * 1. All nodes in the graph will have an assigned \"rank\" attribute that has\n * been optimized by the network simplex algorithm. Ranks start at 0.\n *\n *\n * A rough sketch of the algorithm is as follows:\n *\n * 1. Assign initial ranks to each node. We use the longest path algorithm,\n * which assigns ranks to the lowest position possible. In general this\n * leads to very wide bottom ranks and unnecessarily long edges.\n * 2. Construct a feasible tight tree. A tight tree is one such that all\n * edges in the tree have no slack (difference between length of edge\n * and minlen for the edge). This by itself greatly improves the assigned\n * rankings by shorting edges.\n * 3. Iteratively find edges that have negative cut values. Generally a\n * negative cut value indicates that the edge could be removed and a new\n * tree edge could be added to produce a more compact graph.\n *\n * Much of the algorithms here are derived from Gansner, et al., \"A Technique\n * for Drawing Directed Graphs.\" The structure of the file roughly follows the\n * structure of the overall algorithm.\n */\nfunction networkSimplex(g) {\n g = simplify(g);\n longestPath(g);\n var t = feasibleTree(g);\n initLowLimValues(t);\n initCutValues(t, g);\n\n var e, f;\n while ((e = leaveEdge(t))) {\n f = enterEdge(t, g, e);\n exchangeEdges(t, g, e, f);\n }\n}\n\n/*\n * Initializes cut values for all edges in the tree.\n */\nfunction initCutValues(t, g) {\n var vs = alg.postorder(t, t.nodes());\n vs = vs.slice(0, vs.length - 1);\n _.forEach(vs, function (v) {\n assignCutValue(t, g, v);\n });\n}\n\nfunction assignCutValue(t, g, child) {\n var childLab = t.node(child);\n var parent = childLab.parent;\n t.edge(child, parent).cutvalue = calcCutValue(t, g, child);\n}\n\n/*\n * Given the tight tree, its graph, and a child in the graph calculate and\n * return the cut value for the edge between the child and its parent.\n */\nfunction calcCutValue(t, g, child) {\n var childLab = t.node(child);\n var parent = childLab.parent;\n // True if the child is on the tail end of the edge in the directed graph\n var childIsTail = true;\n // The graph's view of the tree edge we're inspecting\n var graphEdge = g.edge(child, parent);\n // The accumulated cut value for the edge between this node and its parent\n var cutValue = 0;\n\n if (!graphEdge) {\n childIsTail = false;\n graphEdge = g.edge(parent, child);\n }\n\n cutValue = graphEdge.weight;\n\n _.forEach(g.nodeEdges(child), function (e) {\n var isOutEdge = e.v === child,\n other = isOutEdge ? e.w : e.v;\n\n if (other !== parent) {\n var pointsToHead = isOutEdge === childIsTail,\n otherWeight = g.edge(e).weight;\n\n cutValue += pointsToHead ? otherWeight : -otherWeight;\n if (isTreeEdge(t, child, other)) {\n var otherCutValue = t.edge(child, other).cutvalue;\n cutValue += pointsToHead ? -otherCutValue : otherCutValue;\n }\n }\n });\n\n return cutValue;\n}\n\nfunction initLowLimValues(tree, root) {\n if (arguments.length < 2) {\n root = tree.nodes()[0];\n }\n dfsAssignLowLim(tree, {}, 1, root);\n}\n\nfunction dfsAssignLowLim(tree, visited, nextLim, v, parent) {\n var low = nextLim;\n var label = tree.node(v);\n\n visited[v] = true;\n _.forEach(tree.neighbors(v), function (w) {\n if (!Object.prototype.hasOwnProperty.call(visited, w)) {\n nextLim = dfsAssignLowLim(tree, visited, nextLim, w, v);\n }\n });\n\n label.low = low;\n label.lim = nextLim++;\n if (parent) {\n label.parent = parent;\n } else {\n // TODO should be able to remove this when we incrementally update low lim\n delete label.parent;\n }\n\n return nextLim;\n}\n\nfunction leaveEdge(tree) {\n return _.find(tree.edges(), function (e) {\n return tree.edge(e).cutvalue < 0;\n });\n}\n\nfunction enterEdge(t, g, edge) {\n var v = edge.v;\n var w = edge.w;\n\n // For the rest of this function we assume that v is the tail and w is the\n // head, so if we don't have this edge in the graph we should flip it to\n // match the correct orientation.\n if (!g.hasEdge(v, w)) {\n v = edge.w;\n w = edge.v;\n }\n\n var vLabel = t.node(v);\n var wLabel = t.node(w);\n var tailLabel = vLabel;\n var flip = false;\n\n // If the root is in the tail of the edge then we need to flip the logic that\n // checks for the head and tail nodes in the candidates function below.\n if (vLabel.lim > wLabel.lim) {\n tailLabel = wLabel;\n flip = true;\n }\n\n var candidates = _.filter(g.edges(), function (edge) {\n return (\n flip === isDescendant(t, t.node(edge.v), tailLabel) &&\n flip !== isDescendant(t, t.node(edge.w), tailLabel)\n );\n });\n\n return _.minBy(candidates, function (edge) {\n return slack(g, edge);\n });\n}\n\nfunction exchangeEdges(t, g, e, f) {\n var v = e.v;\n var w = e.w;\n t.removeEdge(v, w);\n t.setEdge(f.v, f.w, {});\n initLowLimValues(t);\n initCutValues(t, g);\n updateRanks(t, g);\n}\n\nfunction updateRanks(t, g) {\n var root = _.find(t.nodes(), function (v) {\n return !g.node(v).parent;\n });\n var vs = alg.preorder(t, root);\n vs = vs.slice(1);\n _.forEach(vs, function (v) {\n var parent = t.node(v).parent,\n edge = g.edge(v, parent),\n flipped = false;\n\n if (!edge) {\n edge = g.edge(parent, v);\n flipped = true;\n }\n\n g.node(v).rank = g.node(parent).rank + (flipped ? edge.minlen : -edge.minlen);\n });\n}\n\n/*\n * Returns true if the edge is in the tree.\n */\nfunction isTreeEdge(tree, u, v) {\n return tree.hasEdge(u, v);\n}\n\n/*\n * Returns true if the specified node is descendant of the root node per the\n * assigned low and lim attributes in the tree.\n */\nfunction isDescendant(tree, vLabel, rootLabel) {\n return rootLabel.low <= vLabel.lim && vLabel.lim <= rootLabel.lim;\n}\n", "import { feasibleTree } from './feasible-tree.js';\nimport { networkSimplex } from './network-simplex.js';\nimport { longestPath } from './util.js';\n\nexport { rank };\n\n/*\n * Assigns a rank to each node in the input graph that respects the \"minlen\"\n * constraint specified on edges between nodes.\n *\n * This basic structure is derived from Gansner, et al., \"A Technique for\n * Drawing Directed Graphs.\"\n *\n * Pre-conditions:\n *\n * 1. Graph must be a connected DAG\n * 2. Graph nodes must be objects\n * 3. Graph edges must have \"weight\" and \"minlen\" attributes\n *\n * Post-conditions:\n *\n * 1. Graph nodes will have a \"rank\" attribute based on the results of the\n * algorithm. Ranks can start at any index (including negative), we'll\n * fix them up later.\n */\nfunction rank(g) {\n switch (g.graph().ranker) {\n case 'network-simplex':\n networkSimplexRanker(g);\n break;\n case 'tight-tree':\n tightTreeRanker(g);\n break;\n case 'longest-path':\n longestPathRanker(g);\n break;\n default:\n networkSimplexRanker(g);\n }\n}\n\n// A fast and simple ranker, but results are far from optimal.\nvar longestPathRanker = longestPath;\n\nfunction tightTreeRanker(g) {\n longestPath(g);\n feasibleTree(g);\n}\n\nfunction networkSimplexRanker(g) {\n networkSimplex(g);\n}\n", "import * as _ from 'lodash-es';\nimport * as util from './util.js';\n\nexport { run, cleanup };\n\n/*\n * A nesting graph creates dummy nodes for the tops and bottoms of subgraphs,\n * adds appropriate edges to ensure that all cluster nodes are placed between\n * these boundries, and ensures that the graph is connected.\n *\n * In addition we ensure, through the use of the minlen property, that nodes\n * and subgraph border nodes to not end up on the same rank.\n *\n * Preconditions:\n *\n * 1. Input graph is a DAG\n * 2. Nodes in the input graph has a minlen attribute\n *\n * Postconditions:\n *\n * 1. Input graph is connected.\n * 2. Dummy nodes are added for the tops and bottoms of subgraphs.\n * 3. The minlen attribute for nodes is adjusted to ensure nodes do not\n * get placed on the same rank as subgraph border nodes.\n *\n * The nesting graph idea comes from Sander, \"Layout of Compound Directed\n * Graphs.\"\n */\nfunction run(g) {\n var root = util.addDummyNode(g, 'root', {}, '_root');\n var depths = treeDepths(g);\n var height = _.max(_.values(depths)) - 1; // Note: depths is an Object not an array\n var nodeSep = 2 * height + 1;\n\n g.graph().nestingRoot = root;\n\n // Multiply minlen by nodeSep to align nodes on non-border ranks.\n _.forEach(g.edges(), function (e) {\n g.edge(e).minlen *= nodeSep;\n });\n\n // Calculate a weight that is sufficient to keep subgraphs vertically compact\n var weight = sumWeights(g) + 1;\n\n // Create border nodes and link them up\n _.forEach(g.children(), function (child) {\n dfs(g, root, nodeSep, weight, height, depths, child);\n });\n\n // Save the multiplier for node layers for later removal of empty border\n // layers.\n g.graph().nodeRankFactor = nodeSep;\n}\n\nfunction dfs(g, root, nodeSep, weight, height, depths, v) {\n var children = g.children(v);\n if (!children.length) {\n if (v !== root) {\n g.setEdge(root, v, { weight: 0, minlen: nodeSep });\n }\n return;\n }\n\n var top = util.addBorderNode(g, '_bt');\n var bottom = util.addBorderNode(g, '_bb');\n var label = g.node(v);\n\n g.setParent(top, v);\n label.borderTop = top;\n g.setParent(bottom, v);\n label.borderBottom = bottom;\n\n _.forEach(children, function (child) {\n dfs(g, root, nodeSep, weight, height, depths, child);\n\n var childNode = g.node(child);\n var childTop = childNode.borderTop ? childNode.borderTop : child;\n var childBottom = childNode.borderBottom ? childNode.borderBottom : child;\n var thisWeight = childNode.borderTop ? weight : 2 * weight;\n var minlen = childTop !== childBottom ? 1 : height - depths[v] + 1;\n\n g.setEdge(top, childTop, {\n weight: thisWeight,\n minlen: minlen,\n nestingEdge: true,\n });\n\n g.setEdge(childBottom, bottom, {\n weight: thisWeight,\n minlen: minlen,\n nestingEdge: true,\n });\n });\n\n if (!g.parent(v)) {\n g.setEdge(root, top, { weight: 0, minlen: height + depths[v] });\n }\n}\n\nfunction treeDepths(g) {\n var depths = {};\n function dfs(v, depth) {\n var children = g.children(v);\n if (children && children.length) {\n _.forEach(children, function (child) {\n dfs(child, depth + 1);\n });\n }\n depths[v] = depth;\n }\n _.forEach(g.children(), function (v) {\n dfs(v, 1);\n });\n return depths;\n}\n\nfunction sumWeights(g) {\n return _.reduce(\n g.edges(),\n function (acc, e) {\n return acc + g.edge(e).weight;\n },\n 0,\n );\n}\n\nfunction cleanup(g) {\n var graphLabel = g.graph();\n g.removeNode(graphLabel.nestingRoot);\n delete graphLabel.nestingRoot;\n _.forEach(g.edges(), function (e) {\n var edge = g.edge(e);\n if (edge.nestingEdge) {\n g.removeEdge(e);\n }\n });\n}\n", "import * as _ from 'lodash-es';\n\nexport { addSubgraphConstraints };\n\nfunction addSubgraphConstraints(g, cg, vs) {\n var prev = {},\n rootPrev;\n\n _.forEach(vs, function (v) {\n var child = g.parent(v),\n parent,\n prevChild;\n while (child) {\n parent = g.parent(child);\n if (parent) {\n prevChild = prev[parent];\n prev[parent] = child;\n } else {\n prevChild = rootPrev;\n rootPrev = child;\n }\n if (prevChild && prevChild !== child) {\n cg.setEdge(prevChild, child);\n return;\n }\n child = parent;\n }\n });\n\n /*\n function dfs(v) {\n var children = v ? g.children(v) : g.children();\n if (children.length) {\n var min = Number.POSITIVE_INFINITY,\n subgraphs = [];\n _.each(children, function(child) {\n var childMin = dfs(child);\n if (g.children(child).length) {\n subgraphs.push({ v: child, order: childMin });\n }\n min = Math.min(min, childMin);\n });\n _.reduce(_.sortBy(subgraphs, \"order\"), function(prev, curr) {\n cg.setEdge(prev.v, curr.v);\n return curr;\n });\n return min;\n }\n return g.node(v).order;\n }\n dfs(undefined);\n */\n}\n", "import * as _ from 'lodash-es';\nimport { Graph } from '../../graphlib/index.js';\n\nexport { buildLayerGraph };\n\n/*\n * Constructs a graph that can be used to sort a layer of nodes. The graph will\n * contain all base and subgraph nodes from the request layer in their original\n * hierarchy and any edges that are incident on these nodes and are of the type\n * requested by the \"relationship\" parameter.\n *\n * Nodes from the requested rank that do not have parents are assigned a root\n * node in the output graph, which is set in the root graph attribute. This\n * makes it easy to walk the hierarchy of movable nodes during ordering.\n *\n * Pre-conditions:\n *\n * 1. Input graph is a DAG\n * 2. Base nodes in the input graph have a rank attribute\n * 3. Subgraph nodes in the input graph has minRank and maxRank attributes\n * 4. Edges have an assigned weight\n *\n * Post-conditions:\n *\n * 1. Output graph has all nodes in the movable rank with preserved\n * hierarchy.\n * 2. Root nodes in the movable layer are made children of the node\n * indicated by the root attribute of the graph.\n * 3. Non-movable nodes incident on movable nodes, selected by the\n * relationship parameter, are included in the graph (without hierarchy).\n * 4. Edges incident on movable nodes, selected by the relationship\n * parameter, are added to the output graph.\n * 5. The weights for copied edges are aggregated as need, since the output\n * graph is not a multi-graph.\n */\nfunction buildLayerGraph(g, rank, relationship) {\n var root = createRootNode(g),\n result = new Graph({ compound: true })\n .setGraph({ root: root })\n .setDefaultNodeLabel(function (v) {\n return g.node(v);\n });\n\n _.forEach(g.nodes(), function (v) {\n var node = g.node(v),\n parent = g.parent(v);\n\n if (node.rank === rank || (node.minRank <= rank && rank <= node.maxRank)) {\n result.setNode(v);\n result.setParent(v, parent || root);\n\n // This assumes we have only short edges!\n _.forEach(g[relationship](v), function (e) {\n var u = e.v === v ? e.w : e.v,\n edge = result.edge(u, v),\n weight = !_.isUndefined(edge) ? edge.weight : 0;\n result.setEdge(u, v, { weight: g.edge(e).weight + weight });\n });\n\n if (Object.prototype.hasOwnProperty.call(node, 'minRank')) {\n result.setNode(v, {\n borderLeft: node.borderLeft[rank],\n borderRight: node.borderRight[rank],\n });\n }\n }\n });\n\n return result;\n}\n\nfunction createRootNode(g) {\n var v;\n while (g.hasNode((v = _.uniqueId('_root'))));\n return v;\n}\n", "import * as _ from 'lodash-es';\n\nexport { crossCount };\n\n/*\n * A function that takes a layering (an array of layers, each with an array of\n * ordererd nodes) and a graph and returns a weighted crossing count.\n *\n * Pre-conditions:\n *\n * 1. Input graph must be simple (not a multigraph), directed, and include\n * only simple edges.\n * 2. Edges in the input graph must have assigned weights.\n *\n * Post-conditions:\n *\n * 1. The graph and layering matrix are left unchanged.\n *\n * This algorithm is derived from Barth, et al., \"Bilayer Cross Counting.\"\n */\nfunction crossCount(g, layering) {\n var cc = 0;\n for (var i = 1; i < layering.length; ++i) {\n cc += twoLayerCrossCount(g, layering[i - 1], layering[i]);\n }\n return cc;\n}\n\nfunction twoLayerCrossCount(g, northLayer, southLayer) {\n // Sort all of the edges between the north and south layers by their position\n // in the north layer and then the south. Map these edges to the position of\n // their head in the south layer.\n var southPos = _.zipObject(\n southLayer,\n _.map(southLayer, function (v, i) {\n return i;\n }),\n );\n var southEntries = _.flatten(\n _.map(northLayer, function (v) {\n return _.sortBy(\n _.map(g.outEdges(v), function (e) {\n return { pos: southPos[e.w], weight: g.edge(e).weight };\n }),\n 'pos',\n );\n }),\n );\n\n // Build the accumulator tree\n var firstIndex = 1;\n while (firstIndex < southLayer.length) firstIndex <<= 1;\n var treeSize = 2 * firstIndex - 1;\n firstIndex -= 1;\n var tree = _.map(new Array(treeSize), function () {\n return 0;\n });\n\n // Calculate the weighted crossings\n var cc = 0;\n _.forEach(\n // @ts-expect-error\n southEntries.forEach(function (entry) {\n var index = entry.pos + firstIndex;\n tree[index] += entry.weight;\n var weightSum = 0;\n // @ts-expect-error\n while (index > 0) {\n // @ts-expect-error\n if (index % 2) {\n weightSum += tree[index + 1];\n }\n // @ts-expect-error\n index = (index - 1) >> 1;\n tree[index] += entry.weight;\n }\n cc += entry.weight * weightSum;\n }),\n );\n\n return cc;\n}\n", "import * as _ from 'lodash-es';\n\n/*\n * Assigns an initial order value for each node by performing a DFS search\n * starting from nodes in the first rank. Nodes are assigned an order in their\n * rank as they are first visited.\n *\n * This approach comes from Gansner, et al., \"A Technique for Drawing Directed\n * Graphs.\"\n *\n * Returns a layering matrix with an array per layer and each layer sorted by\n * the order of its nodes.\n */\nexport function initOrder(g) {\n var visited = {};\n var simpleNodes = _.filter(g.nodes(), function (v) {\n return !g.children(v).length;\n });\n var maxRank = _.max(\n _.map(simpleNodes, function (v) {\n return g.node(v).rank;\n }),\n );\n var layers = _.map(_.range(maxRank + 1), function () {\n return [];\n });\n\n function dfs(v) {\n if (_.has(visited, v)) return;\n visited[v] = true;\n var node = g.node(v);\n layers[node.rank].push(v);\n _.forEach(g.successors(v), dfs);\n }\n\n var orderedVs = _.sortBy(simpleNodes, function (v) {\n return g.node(v).rank;\n });\n _.forEach(orderedVs, dfs);\n\n return layers;\n}\n", "import * as _ from 'lodash-es';\n\nexport { barycenter };\n\nfunction barycenter(g, movable) {\n return _.map(movable, function (v) {\n var inV = g.inEdges(v);\n if (!inV.length) {\n return { v: v };\n } else {\n var result = _.reduce(\n inV,\n function (acc, e) {\n var edge = g.edge(e),\n nodeU = g.node(e.v);\n return {\n sum: acc.sum + edge.weight * nodeU.order,\n weight: acc.weight + edge.weight,\n };\n },\n { sum: 0, weight: 0 },\n );\n\n return {\n v: v,\n barycenter: result.sum / result.weight,\n weight: result.weight,\n };\n }\n });\n}\n", "import * as _ from 'lodash-es';\n\nexport { resolveConflicts };\n\n/*\n * Given a list of entries of the form {v, barycenter, weight} and a\n * constraint graph this function will resolve any conflicts between the\n * constraint graph and the barycenters for the entries. If the barycenters for\n * an entry would violate a constraint in the constraint graph then we coalesce\n * the nodes in the conflict into a new node that respects the contraint and\n * aggregates barycenter and weight information.\n *\n * This implementation is based on the description in Forster, \"A Fast and\n * Simple Hueristic for Constrained Two-Level Crossing Reduction,\" thought it\n * differs in some specific details.\n *\n * Pre-conditions:\n *\n * 1. Each entry has the form {v, barycenter, weight}, or if the node has\n * no barycenter, then {v}.\n *\n * Returns:\n *\n * A new list of entries of the form {vs, i, barycenter, weight}. The list\n * `vs` may either be a singleton or it may be an aggregation of nodes\n * ordered such that they do not violate constraints from the constraint\n * graph. The property `i` is the lowest original index of any of the\n * elements in `vs`.\n */\nfunction resolveConflicts(entries, cg) {\n var mappedEntries = {};\n _.forEach(entries, function (entry, i) {\n var tmp = (mappedEntries[entry.v] = {\n indegree: 0,\n in: [],\n out: [],\n vs: [entry.v],\n i: i,\n });\n if (!_.isUndefined(entry.barycenter)) {\n // @ts-expect-error\n tmp.barycenter = entry.barycenter;\n // @ts-expect-error\n tmp.weight = entry.weight;\n }\n });\n\n _.forEach(cg.edges(), function (e) {\n var entryV = mappedEntries[e.v];\n var entryW = mappedEntries[e.w];\n if (!_.isUndefined(entryV) && !_.isUndefined(entryW)) {\n entryW.indegree++;\n entryV.out.push(mappedEntries[e.w]);\n }\n });\n\n var sourceSet = _.filter(mappedEntries, function (entry) {\n // @ts-expect-error\n return !entry.indegree;\n });\n\n return doResolveConflicts(sourceSet);\n}\n\nfunction doResolveConflicts(sourceSet) {\n var entries = [];\n\n function handleIn(vEntry) {\n return function (uEntry) {\n if (uEntry.merged) {\n return;\n }\n if (\n _.isUndefined(uEntry.barycenter) ||\n _.isUndefined(vEntry.barycenter) ||\n uEntry.barycenter >= vEntry.barycenter\n ) {\n mergeEntries(vEntry, uEntry);\n }\n };\n }\n\n function handleOut(vEntry) {\n return function (wEntry) {\n wEntry['in'].push(vEntry);\n if (--wEntry.indegree === 0) {\n sourceSet.push(wEntry);\n }\n };\n }\n\n while (sourceSet.length) {\n var entry = sourceSet.pop();\n entries.push(entry);\n _.forEach(entry['in'].reverse(), handleIn(entry));\n _.forEach(entry.out, handleOut(entry));\n }\n\n return _.map(\n _.filter(entries, function (entry) {\n return !entry.merged;\n }),\n function (entry) {\n return _.pick(entry, ['vs', 'i', 'barycenter', 'weight']);\n },\n );\n}\n\nfunction mergeEntries(target, source) {\n var sum = 0;\n var weight = 0;\n\n if (target.weight) {\n sum += target.barycenter * target.weight;\n weight += target.weight;\n }\n\n if (source.weight) {\n sum += source.barycenter * source.weight;\n weight += source.weight;\n }\n\n target.vs = source.vs.concat(target.vs);\n target.barycenter = sum / weight;\n target.weight = weight;\n target.i = Math.min(source.i, target.i);\n source.merged = true;\n}\n", "import * as _ from 'lodash-es';\nimport * as util from '../util.js';\n\nexport { sort };\n\nfunction sort(entries, biasRight) {\n var parts = util.partition(entries, function (entry) {\n return Object.prototype.hasOwnProperty.call(entry, 'barycenter');\n });\n var sortable = parts.lhs,\n unsortable = _.sortBy(parts.rhs, function (entry) {\n return -entry.i;\n }),\n vs = [],\n sum = 0,\n weight = 0,\n vsIndex = 0;\n\n sortable.sort(compareWithBias(!!biasRight));\n\n vsIndex = consumeUnsortable(vs, unsortable, vsIndex);\n\n _.forEach(sortable, function (entry) {\n vsIndex += entry.vs.length;\n vs.push(entry.vs);\n sum += entry.barycenter * entry.weight;\n weight += entry.weight;\n vsIndex = consumeUnsortable(vs, unsortable, vsIndex);\n });\n\n var result = { vs: _.flatten(vs) };\n if (weight) {\n result.barycenter = sum / weight;\n result.weight = weight;\n }\n return result;\n}\n\nfunction consumeUnsortable(vs, unsortable, index) {\n var last;\n while (unsortable.length && (last = _.last(unsortable)).i <= index) {\n unsortable.pop();\n vs.push(last.vs);\n index++;\n }\n return index;\n}\n\nfunction compareWithBias(bias) {\n return function (entryV, entryW) {\n if (entryV.barycenter < entryW.barycenter) {\n return -1;\n } else if (entryV.barycenter > entryW.barycenter) {\n return 1;\n }\n\n return !bias ? entryV.i - entryW.i : entryW.i - entryV.i;\n };\n}\n", "import * as _ from 'lodash-es';\nimport { barycenter } from './barycenter.js';\nimport { resolveConflicts } from './resolve-conflicts.js';\nimport { sort } from './sort.js';\n\nexport { sortSubgraph };\n\nfunction sortSubgraph(g, v, cg, biasRight) {\n var movable = g.children(v);\n var node = g.node(v);\n var bl = node ? node.borderLeft : undefined;\n var br = node ? node.borderRight : undefined;\n var subgraphs = {};\n\n if (bl) {\n movable = _.filter(movable, function (w) {\n return w !== bl && w !== br;\n });\n }\n\n var barycenters = barycenter(g, movable);\n _.forEach(barycenters, function (entry) {\n if (g.children(entry.v).length) {\n var subgraphResult = sortSubgraph(g, entry.v, cg, biasRight);\n subgraphs[entry.v] = subgraphResult;\n if (Object.prototype.hasOwnProperty.call(subgraphResult, 'barycenter')) {\n mergeBarycenters(entry, subgraphResult);\n }\n }\n });\n\n var entries = resolveConflicts(barycenters, cg);\n expandSubgraphs(entries, subgraphs);\n\n var result = sort(entries, biasRight);\n\n if (bl) {\n result.vs = _.flatten([bl, result.vs, br]);\n if (g.predecessors(bl).length) {\n var blPred = g.node(g.predecessors(bl)[0]),\n brPred = g.node(g.predecessors(br)[0]);\n if (!Object.prototype.hasOwnProperty.call(result, 'barycenter')) {\n result.barycenter = 0;\n result.weight = 0;\n }\n result.barycenter =\n (result.barycenter * result.weight + blPred.order + brPred.order) / (result.weight + 2);\n result.weight += 2;\n }\n }\n\n return result;\n}\n\nfunction expandSubgraphs(entries, subgraphs) {\n _.forEach(entries, function (entry) {\n entry.vs = _.flatten(\n entry.vs.map(function (v) {\n if (subgraphs[v]) {\n return subgraphs[v].vs;\n }\n return v;\n }),\n );\n });\n}\n\nfunction mergeBarycenters(target, other) {\n if (!_.isUndefined(target.barycenter)) {\n target.barycenter =\n (target.barycenter * target.weight + other.barycenter * other.weight) /\n (target.weight + other.weight);\n target.weight += other.weight;\n } else {\n target.barycenter = other.barycenter;\n target.weight = other.weight;\n }\n}\n", "import * as _ from 'lodash-es';\nimport { Graph } from '../../graphlib/index.js';\nimport * as util from '../util.js';\nimport { addSubgraphConstraints } from './add-subgraph-constraints.js';\nimport { buildLayerGraph } from './build-layer-graph.js';\nimport { crossCount } from './cross-count.js';\nimport { initOrder } from './init-order.js';\nimport { sortSubgraph } from './sort-subgraph.js';\n\nexport { order };\n\n/*\n * Applies heuristics to minimize edge crossings in the graph and sets the best\n * order solution as an order attribute on each node.\n *\n * Pre-conditions:\n *\n * 1. Graph must be DAG\n * 2. Graph nodes must be objects with a \"rank\" attribute\n * 3. Graph edges must have the \"weight\" attribute\n *\n * Post-conditions:\n *\n * 1. Graph nodes will have an \"order\" attribute based on the results of the\n * algorithm.\n */\nfunction order(g) {\n var maxRank = util.maxRank(g),\n downLayerGraphs = buildLayerGraphs(g, _.range(1, maxRank + 1), 'inEdges'),\n upLayerGraphs = buildLayerGraphs(g, _.range(maxRank - 1, -1, -1), 'outEdges');\n\n var layering = initOrder(g);\n assignOrder(g, layering);\n\n var bestCC = Number.POSITIVE_INFINITY,\n best;\n\n for (var i = 0, lastBest = 0; lastBest < 4; ++i, ++lastBest) {\n sweepLayerGraphs(i % 2 ? downLayerGraphs : upLayerGraphs, i % 4 >= 2);\n\n layering = util.buildLayerMatrix(g);\n var cc = crossCount(g, layering);\n if (cc < bestCC) {\n lastBest = 0;\n best = _.cloneDeep(layering);\n bestCC = cc;\n }\n }\n\n assignOrder(g, best);\n}\n\nfunction buildLayerGraphs(g, ranks, relationship) {\n return _.map(ranks, function (rank) {\n return buildLayerGraph(g, rank, relationship);\n });\n}\n\nfunction sweepLayerGraphs(layerGraphs, biasRight) {\n var cg = new Graph();\n _.forEach(layerGraphs, function (lg) {\n var root = lg.graph().root;\n var sorted = sortSubgraph(lg, root, cg, biasRight);\n _.forEach(sorted.vs, function (v, i) {\n lg.node(v).order = i;\n });\n addSubgraphConstraints(lg, cg, sorted.vs);\n });\n}\n\nfunction assignOrder(g, layering) {\n _.forEach(layering, function (layer) {\n _.forEach(layer, function (v, i) {\n g.node(v).order = i;\n });\n });\n}\n", "import * as _ from 'lodash-es';\n\nexport { parentDummyChains };\n\nfunction parentDummyChains(g) {\n var postorderNums = postorder(g);\n\n _.forEach(g.graph().dummyChains, function (v) {\n var node = g.node(v);\n var edgeObj = node.edgeObj;\n var pathData = findPath(g, postorderNums, edgeObj.v, edgeObj.w);\n var path = pathData.path;\n var lca = pathData.lca;\n var pathIdx = 0;\n var pathV = path[pathIdx];\n var ascending = true;\n\n while (v !== edgeObj.w) {\n node = g.node(v);\n\n if (ascending) {\n while ((pathV = path[pathIdx]) !== lca && g.node(pathV).maxRank < node.rank) {\n pathIdx++;\n }\n\n if (pathV === lca) {\n ascending = false;\n }\n }\n\n if (!ascending) {\n while (\n pathIdx < path.length - 1 &&\n g.node((pathV = path[pathIdx + 1])).minRank <= node.rank\n ) {\n pathIdx++;\n }\n pathV = path[pathIdx];\n }\n\n g.setParent(v, pathV);\n v = g.successors(v)[0];\n }\n });\n}\n\n// Find a path from v to w through the lowest common ancestor (LCA). Return the\n// full path and the LCA.\nfunction findPath(g, postorderNums, v, w) {\n var vPath = [];\n var wPath = [];\n var low = Math.min(postorderNums[v].low, postorderNums[w].low);\n var lim = Math.max(postorderNums[v].lim, postorderNums[w].lim);\n var parent;\n var lca;\n\n // Traverse up from v to find the LCA\n parent = v;\n do {\n parent = g.parent(parent);\n vPath.push(parent);\n } while (parent && (postorderNums[parent].low > low || lim > postorderNums[parent].lim));\n lca = parent;\n\n // Traverse from w to LCA\n parent = w;\n while ((parent = g.parent(parent)) !== lca) {\n wPath.push(parent);\n }\n\n return { path: vPath.concat(wPath.reverse()), lca: lca };\n}\n\nfunction postorder(g) {\n var result = {};\n var lim = 0;\n\n function dfs(v) {\n var low = lim;\n _.forEach(g.children(v), dfs);\n result[v] = { low: low, lim: lim++ };\n }\n _.forEach(g.children(), dfs);\n\n return result;\n}\n", "import * as _ from 'lodash-es';\nimport { Graph } from '../../graphlib/index.js';\nimport * as util from '../util.js';\n\n/*\n * This module provides coordinate assignment based on Brandes and K\u00F6pf, \"Fast\n * and Simple Horizontal Coordinate Assignment.\"\n */\n\nexport {\n positionX,\n findType1Conflicts,\n findType2Conflicts,\n addConflict,\n hasConflict,\n verticalAlignment,\n horizontalCompaction,\n alignCoordinates,\n findSmallestWidthAlignment,\n balance,\n};\n\n/*\n * Marks all edges in the graph with a type-1 conflict with the \"type1Conflict\"\n * property. A type-1 conflict is one where a non-inner segment crosses an\n * inner segment. An inner segment is an edge with both incident nodes marked\n * with the \"dummy\" property.\n *\n * This algorithm scans layer by layer, starting with the second, for type-1\n * conflicts between the current layer and the previous layer. For each layer\n * it scans the nodes from left to right until it reaches one that is incident\n * on an inner segment. It then scans predecessors to determine if they have\n * edges that cross that inner segment. At the end a final scan is done for all\n * nodes on the current rank to see if they cross the last visited inner\n * segment.\n *\n * This algorithm (safely) assumes that a dummy node will only be incident on a\n * single node in the layers being scanned.\n */\nfunction findType1Conflicts(g, layering) {\n var conflicts = {};\n\n function visitLayer(prevLayer, layer) {\n var // last visited node in the previous layer that is incident on an inner\n // segment.\n k0 = 0,\n // Tracks the last node in this layer scanned for crossings with a type-1\n // segment.\n scanPos = 0,\n prevLayerLength = prevLayer.length,\n lastNode = _.last(layer);\n\n _.forEach(layer, function (v, i) {\n var w = findOtherInnerSegmentNode(g, v),\n k1 = w ? g.node(w).order : prevLayerLength;\n\n if (w || v === lastNode) {\n _.forEach(layer.slice(scanPos, i + 1), function (scanNode) {\n _.forEach(g.predecessors(scanNode), function (u) {\n var uLabel = g.node(u),\n uPos = uLabel.order;\n if ((uPos < k0 || k1 < uPos) && !(uLabel.dummy && g.node(scanNode).dummy)) {\n addConflict(conflicts, u, scanNode);\n }\n });\n });\n // @ts-expect-error\n scanPos = i + 1;\n k0 = k1;\n }\n });\n\n return layer;\n }\n\n _.reduce(layering, visitLayer);\n return conflicts;\n}\n\nfunction findType2Conflicts(g, layering) {\n var conflicts = {};\n\n function scan(south, southPos, southEnd, prevNorthBorder, nextNorthBorder) {\n var v;\n _.forEach(_.range(southPos, southEnd), function (i) {\n v = south[i];\n if (g.node(v).dummy) {\n _.forEach(g.predecessors(v), function (u) {\n var uNode = g.node(u);\n if (uNode.dummy && (uNode.order < prevNorthBorder || uNode.order > nextNorthBorder)) {\n addConflict(conflicts, u, v);\n }\n });\n }\n });\n }\n\n function visitLayer(north, south) {\n var prevNorthPos = -1,\n nextNorthPos,\n southPos = 0;\n\n _.forEach(south, function (v, southLookahead) {\n if (g.node(v).dummy === 'border') {\n var predecessors = g.predecessors(v);\n if (predecessors.length) {\n nextNorthPos = g.node(predecessors[0]).order;\n scan(south, southPos, southLookahead, prevNorthPos, nextNorthPos);\n // @ts-expect-error\n southPos = southLookahead;\n prevNorthPos = nextNorthPos;\n }\n }\n scan(south, southPos, south.length, nextNorthPos, north.length);\n });\n\n return south;\n }\n\n _.reduce(layering, visitLayer);\n return conflicts;\n}\n\nfunction findOtherInnerSegmentNode(g, v) {\n if (g.node(v).dummy) {\n return _.find(g.predecessors(v), function (u) {\n return g.node(u).dummy;\n });\n }\n}\n\nfunction addConflict(conflicts, v, w) {\n if (v > w) {\n var tmp = v;\n v = w;\n w = tmp;\n }\n\n var conflictsV = conflicts[v];\n if (!conflictsV) {\n conflicts[v] = conflictsV = {};\n }\n conflictsV[w] = true;\n}\n\nfunction hasConflict(conflicts, v, w) {\n if (v > w) {\n var tmp = v;\n v = w;\n w = tmp;\n }\n return !!conflicts[v] && Object.prototype.hasOwnProperty.call(conflicts[v], w);\n}\n\n/*\n * Try to align nodes into vertical \"blocks\" where possible. This algorithm\n * attempts to align a node with one of its median neighbors. If the edge\n * connecting a neighbor is a type-1 conflict then we ignore that possibility.\n * If a previous node has already formed a block with a node after the node\n * we're trying to form a block with, we also ignore that possibility - our\n * blocks would be split in that scenario.\n */\nfunction verticalAlignment(g, layering, conflicts, neighborFn) {\n var root = {},\n align = {},\n pos = {};\n\n // We cache the position here based on the layering because the graph and\n // layering may be out of sync. The layering matrix is manipulated to\n // generate different extreme alignments.\n _.forEach(layering, function (layer) {\n _.forEach(layer, function (v, order) {\n root[v] = v;\n align[v] = v;\n pos[v] = order;\n });\n });\n\n _.forEach(layering, function (layer) {\n var prevIdx = -1;\n _.forEach(layer, function (v) {\n var ws = neighborFn(v);\n if (ws.length) {\n ws = _.sortBy(ws, function (w) {\n return pos[w];\n });\n var mp = (ws.length - 1) / 2;\n for (var i = Math.floor(mp), il = Math.ceil(mp); i <= il; ++i) {\n var w = ws[i];\n if (align[v] === v && prevIdx < pos[w] && !hasConflict(conflicts, v, w)) {\n align[w] = v;\n align[v] = root[v] = root[w];\n prevIdx = pos[w];\n }\n }\n }\n });\n });\n\n return { root: root, align: align };\n}\n\nfunction horizontalCompaction(g, layering, root, align, reverseSep) {\n // This portion of the algorithm differs from BK due to a number of problems.\n // Instead of their algorithm we construct a new block graph and do two\n // sweeps. The first sweep places blocks with the smallest possible\n // coordinates. The second sweep removes unused space by moving blocks to the\n // greatest coordinates without violating separation.\n var xs = {},\n blockG = buildBlockGraph(g, layering, root, reverseSep),\n borderType = reverseSep ? 'borderLeft' : 'borderRight';\n\n function iterate(setXsFunc, nextNodesFunc) {\n var stack = blockG.nodes();\n var elem = stack.pop();\n var visited = {};\n while (elem) {\n if (visited[elem]) {\n setXsFunc(elem);\n } else {\n visited[elem] = true;\n stack.push(elem);\n stack = stack.concat(nextNodesFunc(elem));\n }\n\n elem = stack.pop();\n }\n }\n\n // First pass, assign smallest coordinates\n function pass1(elem) {\n xs[elem] = blockG.inEdges(elem).reduce(function (acc, e) {\n return Math.max(acc, xs[e.v] + blockG.edge(e));\n }, 0);\n }\n\n // Second pass, assign greatest coordinates\n function pass2(elem) {\n var min = blockG.outEdges(elem).reduce(function (acc, e) {\n return Math.min(acc, xs[e.w] - blockG.edge(e));\n }, Number.POSITIVE_INFINITY);\n\n var node = g.node(elem);\n if (min !== Number.POSITIVE_INFINITY && node.borderType !== borderType) {\n xs[elem] = Math.max(xs[elem], min);\n }\n }\n\n iterate(pass1, blockG.predecessors.bind(blockG));\n iterate(pass2, blockG.successors.bind(blockG));\n\n // Assign x coordinates to all nodes\n _.forEach(align, function (v) {\n xs[v] = xs[root[v]];\n });\n\n return xs;\n}\n\nfunction buildBlockGraph(g, layering, root, reverseSep) {\n var blockGraph = new Graph(),\n graphLabel = g.graph(),\n sepFn = sep(graphLabel.nodesep, graphLabel.edgesep, reverseSep);\n\n _.forEach(layering, function (layer) {\n var u;\n _.forEach(layer, function (v) {\n var vRoot = root[v];\n blockGraph.setNode(vRoot);\n if (u) {\n var uRoot = root[u],\n prevMax = blockGraph.edge(uRoot, vRoot);\n blockGraph.setEdge(uRoot, vRoot, Math.max(sepFn(g, v, u), prevMax || 0));\n }\n u = v;\n });\n });\n\n return blockGraph;\n}\n\n/*\n * Returns the alignment that has the smallest width of the given alignments.\n */\nfunction findSmallestWidthAlignment(g, xss) {\n return _.minBy(_.values(xss), function (xs) {\n var max = Number.NEGATIVE_INFINITY;\n var min = Number.POSITIVE_INFINITY;\n\n _.forIn(xs, function (x, v) {\n var halfWidth = width(g, v) / 2;\n\n max = Math.max(x + halfWidth, max);\n min = Math.min(x - halfWidth, min);\n });\n\n return max - min;\n });\n}\n\n/*\n * Align the coordinates of each of the layout alignments such that\n * left-biased alignments have their minimum coordinate at the same point as\n * the minimum coordinate of the smallest width alignment and right-biased\n * alignments have their maximum coordinate at the same point as the maximum\n * coordinate of the smallest width alignment.\n */\nfunction alignCoordinates(xss, alignTo) {\n var alignToVals = _.values(alignTo),\n alignToMin = _.min(alignToVals),\n alignToMax = _.max(alignToVals);\n\n _.forEach(['u', 'd'], function (vert) {\n _.forEach(['l', 'r'], function (horiz) {\n var alignment = vert + horiz,\n xs = xss[alignment],\n delta;\n if (xs === alignTo) return;\n\n var xsVals = _.values(xs);\n delta = horiz === 'l' ? alignToMin - _.min(xsVals) : alignToMax - _.max(xsVals);\n\n if (delta) {\n xss[alignment] = _.mapValues(xs, function (x) {\n return x + delta;\n });\n }\n });\n });\n}\n\nfunction balance(xss, align) {\n return _.mapValues(xss.ul, function (ignore, v) {\n if (align) {\n return xss[align.toLowerCase()][v];\n } else {\n var xs = _.sortBy(_.map(xss, v));\n return (xs[1] + xs[2]) / 2;\n }\n });\n}\n\nfunction positionX(g) {\n var layering = util.buildLayerMatrix(g);\n var conflicts = _.merge(findType1Conflicts(g, layering), findType2Conflicts(g, layering));\n\n var xss = {};\n var adjustedLayering;\n _.forEach(['u', 'd'], function (vert) {\n adjustedLayering = vert === 'u' ? layering : _.values(layering).reverse();\n _.forEach(['l', 'r'], function (horiz) {\n if (horiz === 'r') {\n adjustedLayering = _.map(adjustedLayering, function (inner) {\n return _.values(inner).reverse();\n });\n }\n\n var neighborFn = (vert === 'u' ? g.predecessors : g.successors).bind(g);\n var align = verticalAlignment(g, adjustedLayering, conflicts, neighborFn);\n var xs = horizontalCompaction(g, adjustedLayering, align.root, align.align, horiz === 'r');\n if (horiz === 'r') {\n xs = _.mapValues(xs, function (x) {\n return -x;\n });\n }\n xss[vert + horiz] = xs;\n });\n });\n\n var smallestWidth = findSmallestWidthAlignment(g, xss);\n alignCoordinates(xss, smallestWidth);\n return balance(xss, g.graph().align);\n}\n\nfunction sep(nodeSep, edgeSep, reverseSep) {\n return function (g, v, w) {\n var vLabel = g.node(v);\n var wLabel = g.node(w);\n var sum = 0;\n var delta;\n\n sum += vLabel.width / 2;\n if (Object.prototype.hasOwnProperty.call(vLabel, 'labelpos')) {\n switch (vLabel.labelpos.toLowerCase()) {\n case 'l':\n delta = -vLabel.width / 2;\n break;\n case 'r':\n delta = vLabel.width / 2;\n break;\n }\n }\n if (delta) {\n sum += reverseSep ? delta : -delta;\n }\n delta = 0;\n\n sum += (vLabel.dummy ? edgeSep : nodeSep) / 2;\n sum += (wLabel.dummy ? edgeSep : nodeSep) / 2;\n\n sum += wLabel.width / 2;\n if (Object.prototype.hasOwnProperty.call(wLabel, 'labelpos')) {\n switch (wLabel.labelpos.toLowerCase()) {\n case 'l':\n delta = wLabel.width / 2;\n break;\n case 'r':\n delta = -wLabel.width / 2;\n break;\n }\n }\n if (delta) {\n sum += reverseSep ? delta : -delta;\n }\n delta = 0;\n\n return sum;\n };\n}\n\nfunction width(g, v) {\n return g.node(v).width;\n}\n", "import * as _ from 'lodash-es';\nimport * as util from '../util.js';\nimport { positionX } from './bk.js';\n\nexport { position };\n\nfunction position(g) {\n g = util.asNonCompoundGraph(g);\n\n positionY(g);\n _.forOwn(positionX(g), function (x, v) {\n g.node(v).x = x;\n });\n}\n\nfunction positionY(g) {\n var layering = util.buildLayerMatrix(g);\n var rankSep = g.graph().ranksep;\n var prevY = 0;\n _.forEach(layering, function (layer) {\n var maxHeight = _.max(\n _.map(layer, function (v) {\n return g.node(v).height;\n }),\n );\n _.forEach(layer, function (v) {\n g.node(v).y = prevY + maxHeight / 2;\n });\n prevY += maxHeight + rankSep;\n });\n}\n", "import * as _ from 'lodash-es';\nimport { Graph } from '../graphlib/index.js';\nimport { addBorderSegments } from './add-border-segments.js';\nimport * as coordinateSystem from './coordinate-system.js';\nimport * as acyclic from './acyclic.js';\nimport * as normalize from './normalize.js';\nimport { rank } from './rank/index.js';\nimport * as nestingGraph from './nesting-graph.js';\nimport { order } from './order/index.js';\nimport { parentDummyChains } from './parent-dummy-chains.js';\nimport { position } from './position/index.js';\nimport * as util from './util.js';\n\nexport { layout };\n\nfunction layout(g, opts) {\n var time = opts && opts.debugTiming ? util.time : util.notime;\n time('layout', () => {\n var layoutGraph = time(' buildLayoutGraph', () => buildLayoutGraph(g));\n time(' runLayout', () => runLayout(layoutGraph, time));\n time(' updateInputGraph', () => updateInputGraph(g, layoutGraph));\n });\n}\n\nfunction runLayout(g, time) {\n time(' makeSpaceForEdgeLabels', () => makeSpaceForEdgeLabels(g));\n time(' removeSelfEdges', () => removeSelfEdges(g));\n time(' acyclic', () => acyclic.run(g));\n time(' nestingGraph.run', () => nestingGraph.run(g));\n time(' rank', () => rank(util.asNonCompoundGraph(g)));\n time(' injectEdgeLabelProxies', () => injectEdgeLabelProxies(g));\n time(' removeEmptyRanks', () => util.removeEmptyRanks(g));\n time(' nestingGraph.cleanup', () => nestingGraph.cleanup(g));\n time(' normalizeRanks', () => util.normalizeRanks(g));\n time(' assignRankMinMax', () => assignRankMinMax(g));\n time(' removeEdgeLabelProxies', () => removeEdgeLabelProxies(g));\n time(' normalize.run', () => normalize.run(g));\n time(' parentDummyChains', () => parentDummyChains(g));\n time(' addBorderSegments', () => addBorderSegments(g));\n time(' order', () => order(g));\n time(' insertSelfEdges', () => insertSelfEdges(g));\n time(' adjustCoordinateSystem', () => coordinateSystem.adjust(g));\n time(' position', () => position(g));\n time(' positionSelfEdges', () => positionSelfEdges(g));\n time(' removeBorderNodes', () => removeBorderNodes(g));\n time(' normalize.undo', () => normalize.undo(g));\n time(' fixupEdgeLabelCoords', () => fixupEdgeLabelCoords(g));\n time(' undoCoordinateSystem', () => coordinateSystem.undo(g));\n time(' translateGraph', () => translateGraph(g));\n time(' assignNodeIntersects', () => assignNodeIntersects(g));\n time(' reversePoints', () => reversePointsForReversedEdges(g));\n time(' acyclic.undo', () => acyclic.undo(g));\n}\n\n/*\n * Copies final layout information from the layout graph back to the input\n * graph. This process only copies whitelisted attributes from the layout graph\n * to the input graph, so it serves as a good place to determine what\n * attributes can influence layout.\n */\nfunction updateInputGraph(inputGraph, layoutGraph) {\n _.forEach(inputGraph.nodes(), function (v) {\n var inputLabel = inputGraph.node(v);\n var layoutLabel = layoutGraph.node(v);\n\n if (inputLabel) {\n inputLabel.x = layoutLabel.x;\n inputLabel.y = layoutLabel.y;\n\n if (layoutGraph.children(v).length) {\n inputLabel.width = layoutLabel.width;\n inputLabel.height = layoutLabel.height;\n }\n }\n });\n\n _.forEach(inputGraph.edges(), function (e) {\n var inputLabel = inputGraph.edge(e);\n var layoutLabel = layoutGraph.edge(e);\n\n inputLabel.points = layoutLabel.points;\n if (Object.prototype.hasOwnProperty.call(layoutLabel, 'x')) {\n inputLabel.x = layoutLabel.x;\n inputLabel.y = layoutLabel.y;\n }\n });\n\n inputGraph.graph().width = layoutGraph.graph().width;\n inputGraph.graph().height = layoutGraph.graph().height;\n}\n\nvar graphNumAttrs = ['nodesep', 'edgesep', 'ranksep', 'marginx', 'marginy'];\nvar graphDefaults = { ranksep: 50, edgesep: 20, nodesep: 50, rankdir: 'tb' };\nvar graphAttrs = ['acyclicer', 'ranker', 'rankdir', 'align'];\nvar nodeNumAttrs = ['width', 'height'];\nvar nodeDefaults = { width: 0, height: 0 };\nvar edgeNumAttrs = ['minlen', 'weight', 'width', 'height', 'labeloffset'];\nvar edgeDefaults = {\n minlen: 1,\n weight: 1,\n width: 0,\n height: 0,\n labeloffset: 10,\n labelpos: 'r',\n};\nvar edgeAttrs = ['labelpos'];\n\n/*\n * Constructs a new graph from the input graph, which can be used for layout.\n * This process copies only whitelisted attributes from the input graph to the\n * layout graph. Thus this function serves as a good place to determine what\n * attributes can influence layout.\n */\nfunction buildLayoutGraph(inputGraph) {\n var g = new Graph({ multigraph: true, compound: true });\n var graph = canonicalize(inputGraph.graph());\n\n g.setGraph(\n _.merge({}, graphDefaults, selectNumberAttrs(graph, graphNumAttrs), _.pick(graph, graphAttrs)),\n );\n\n _.forEach(inputGraph.nodes(), function (v) {\n var node = canonicalize(inputGraph.node(v));\n g.setNode(v, _.defaults(selectNumberAttrs(node, nodeNumAttrs), nodeDefaults));\n g.setParent(v, inputGraph.parent(v));\n });\n\n _.forEach(inputGraph.edges(), function (e) {\n var edge = canonicalize(inputGraph.edge(e));\n g.setEdge(\n e,\n _.merge({}, edgeDefaults, selectNumberAttrs(edge, edgeNumAttrs), _.pick(edge, edgeAttrs)),\n );\n });\n\n return g;\n}\n\n/*\n * This idea comes from the Gansner paper: to account for edge labels in our\n * layout we split each rank in half by doubling minlen and halving ranksep.\n * Then we can place labels at these mid-points between nodes.\n *\n * We also add some minimal padding to the width to push the label for the edge\n * away from the edge itself a bit.\n */\nfunction makeSpaceForEdgeLabels(g) {\n var graph = g.graph();\n graph.ranksep /= 2;\n _.forEach(g.edges(), function (e) {\n var edge = g.edge(e);\n edge.minlen *= 2;\n if (edge.labelpos.toLowerCase() !== 'c') {\n if (graph.rankdir === 'TB' || graph.rankdir === 'BT') {\n edge.width += edge.labeloffset;\n } else {\n edge.height += edge.labeloffset;\n }\n }\n });\n}\n\n/*\n * Creates temporary dummy nodes that capture the rank in which each edge's\n * label is going to, if it has one of non-zero width and height. We do this\n * so that we can safely remove empty ranks while preserving balance for the\n * label's position.\n */\nfunction injectEdgeLabelProxies(g) {\n _.forEach(g.edges(), function (e) {\n var edge = g.edge(e);\n if (edge.width && edge.height) {\n var v = g.node(e.v);\n var w = g.node(e.w);\n var label = { rank: (w.rank - v.rank) / 2 + v.rank, e: e };\n util.addDummyNode(g, 'edge-proxy', label, '_ep');\n }\n });\n}\n\nfunction assignRankMinMax(g) {\n var maxRank = 0;\n _.forEach(g.nodes(), function (v) {\n var node = g.node(v);\n if (node.borderTop) {\n node.minRank = g.node(node.borderTop).rank;\n node.maxRank = g.node(node.borderBottom).rank;\n // @ts-expect-error\n maxRank = _.max(maxRank, node.maxRank);\n }\n });\n g.graph().maxRank = maxRank;\n}\n\nfunction removeEdgeLabelProxies(g) {\n _.forEach(g.nodes(), function (v) {\n var node = g.node(v);\n if (node.dummy === 'edge-proxy') {\n g.edge(node.e).labelRank = node.rank;\n g.removeNode(v);\n }\n });\n}\n\nfunction translateGraph(g) {\n var minX = Number.POSITIVE_INFINITY;\n var maxX = 0;\n var minY = Number.POSITIVE_INFINITY;\n var maxY = 0;\n var graphLabel = g.graph();\n var marginX = graphLabel.marginx || 0;\n var marginY = graphLabel.marginy || 0;\n\n function getExtremes(attrs) {\n var x = attrs.x;\n var y = attrs.y;\n var w = attrs.width;\n var h = attrs.height;\n minX = Math.min(minX, x - w / 2);\n maxX = Math.max(maxX, x + w / 2);\n minY = Math.min(minY, y - h / 2);\n maxY = Math.max(maxY, y + h / 2);\n }\n\n _.forEach(g.nodes(), function (v) {\n getExtremes(g.node(v));\n });\n _.forEach(g.edges(), function (e) {\n var edge = g.edge(e);\n if (Object.prototype.hasOwnProperty.call(edge, 'x')) {\n getExtremes(edge);\n }\n });\n\n minX -= marginX;\n minY -= marginY;\n\n _.forEach(g.nodes(), function (v) {\n var node = g.node(v);\n node.x -= minX;\n node.y -= minY;\n });\n\n _.forEach(g.edges(), function (e) {\n var edge = g.edge(e);\n _.forEach(edge.points, function (p) {\n p.x -= minX;\n p.y -= minY;\n });\n if (Object.prototype.hasOwnProperty.call(edge, 'x')) {\n edge.x -= minX;\n }\n if (Object.prototype.hasOwnProperty.call(edge, 'y')) {\n edge.y -= minY;\n }\n });\n\n graphLabel.width = maxX - minX + marginX;\n graphLabel.height = maxY - minY + marginY;\n}\n\nfunction assignNodeIntersects(g) {\n _.forEach(g.edges(), function (e) {\n var edge = g.edge(e);\n var nodeV = g.node(e.v);\n var nodeW = g.node(e.w);\n var p1, p2;\n if (!edge.points) {\n edge.points = [];\n p1 = nodeW;\n p2 = nodeV;\n } else {\n p1 = edge.points[0];\n p2 = edge.points[edge.points.length - 1];\n }\n edge.points.unshift(util.intersectRect(nodeV, p1));\n edge.points.push(util.intersectRect(nodeW, p2));\n });\n}\n\nfunction fixupEdgeLabelCoords(g) {\n _.forEach(g.edges(), function (e) {\n var edge = g.edge(e);\n if (Object.prototype.hasOwnProperty.call(edge, 'x')) {\n if (edge.labelpos === 'l' || edge.labelpos === 'r') {\n edge.width -= edge.labeloffset;\n }\n switch (edge.labelpos) {\n case 'l':\n edge.x -= edge.width / 2 + edge.labeloffset;\n break;\n case 'r':\n edge.x += edge.width / 2 + edge.labeloffset;\n break;\n }\n }\n });\n}\n\nfunction reversePointsForReversedEdges(g) {\n _.forEach(g.edges(), function (e) {\n var edge = g.edge(e);\n if (edge.reversed) {\n edge.points.reverse();\n }\n });\n}\n\nfunction removeBorderNodes(g) {\n _.forEach(g.nodes(), function (v) {\n if (g.children(v).length) {\n var node = g.node(v);\n var t = g.node(node.borderTop);\n var b = g.node(node.borderBottom);\n var l = g.node(_.last(node.borderLeft));\n var r = g.node(_.last(node.borderRight));\n\n node.width = Math.abs(r.x - l.x);\n node.height = Math.abs(b.y - t.y);\n node.x = l.x + node.width / 2;\n node.y = t.y + node.height / 2;\n }\n });\n\n _.forEach(g.nodes(), function (v) {\n if (g.node(v).dummy === 'border') {\n g.removeNode(v);\n }\n });\n}\n\nfunction removeSelfEdges(g) {\n _.forEach(g.edges(), function (e) {\n if (e.v === e.w) {\n var node = g.node(e.v);\n if (!node.selfEdges) {\n node.selfEdges = [];\n }\n node.selfEdges.push({ e: e, label: g.edge(e) });\n g.removeEdge(e);\n }\n });\n}\n\nfunction insertSelfEdges(g) {\n var layers = util.buildLayerMatrix(g);\n _.forEach(layers, function (layer) {\n var orderShift = 0;\n _.forEach(layer, function (v, i) {\n var node = g.node(v);\n node.order = i + orderShift;\n _.forEach(node.selfEdges, function (selfEdge) {\n util.addDummyNode(\n g,\n 'selfedge',\n {\n width: selfEdge.label.width,\n height: selfEdge.label.height,\n rank: node.rank,\n order: i + ++orderShift,\n e: selfEdge.e,\n label: selfEdge.label,\n },\n '_se',\n );\n });\n delete node.selfEdges;\n });\n });\n}\n\nfunction positionSelfEdges(g) {\n _.forEach(g.nodes(), function (v) {\n var node = g.node(v);\n if (node.dummy === 'selfedge') {\n var selfNode = g.node(node.e.v);\n var x = selfNode.x + selfNode.width / 2;\n var y = selfNode.y;\n var dx = node.x - x;\n var dy = selfNode.height / 2;\n g.setEdge(node.e, node.label);\n g.removeNode(v);\n node.label.points = [\n { x: x + (2 * dx) / 3, y: y - dy },\n { x: x + (5 * dx) / 6, y: y - dy },\n { x: x + dx, y: y },\n { x: x + (5 * dx) / 6, y: y + dy },\n { x: x + (2 * dx) / 3, y: y + dy },\n ];\n node.label.x = node.x;\n node.label.y = node.y;\n }\n });\n}\n\nfunction selectNumberAttrs(obj, attrs) {\n return _.mapValues(_.pick(obj, attrs), Number);\n}\n\nfunction canonicalize(attrs) {\n var newAttrs = {};\n _.forEach(attrs, function (v, k) {\n newAttrs[k.toLowerCase()] = v;\n });\n return newAttrs;\n}\n"], + "mappings": "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", + "names": ["addDummyNode", "g", "type", "attrs", "name", "v", "uniqueId_default", "simplify", "simplified", "Graph", "forEach_default", "e", "simpleLabel", "label", "asNonCompoundGraph", "intersectRect", "rect", "point", "x", "y", "dx", "dy", "w", "h", "sx", "sy", "buildLayerMatrix", "g", "layering", "map_default", "range_default", "maxRank", "forEach_default", "v", "node", "rank", "isUndefined_default", "normalizeRanks", "min", "min_default", "has_default", "removeEmptyRanks", "offset", "layers", "delta", "nodeRankFactor", "vs", "addBorderNode", "prefix", "order", "addDummyNode", "max_default", "partition", "collection", "fn", "result", "value", "time", "name", "start", "now_default", "notime", "addBorderSegments", "g", "dfs", "v", "children", "node", "forEach_default", "rank", "maxRank", "addBorderNode", "prop", "prefix", "sg", "sgNode", "label", "prev", "curr", "addDummyNode", "adjust", "g", "rankDir", "swapWidthHeight", "undo", "reverseY", "swapXY", "forEach_default", "v", "swapWidthHeightOne", "attrs", "w", "reverseYOne", "edge", "swapXYOne", "x", "List", "sentinel", "entry", "unlink", "strs", "curr", "filterOutLinks", "k", "v", "DEFAULT_WEIGHT_FN", "constant_default", "greedyFAS", "g", "weightFn", "state", "buildState", "results", "doGreedyFAS", "flatten_default", "map_default", "e", "buckets", "zeroIdx", "sources", "sinks", "entry", "removeNode", "i", "collectPredecessors", "forEach_default", "edge", "weight", "uEntry", "assignBucket", "w", "wEntry", "fasGraph", "Graph", "maxIn", "maxOut", "v", "prevWeight", "edgeWeight", "range_default", "List", "run", "g", "fas", "greedyFAS", "weightFn", "dfsFAS", "forEach_default", "e", "label", "uniqueId_default", "stack", "visited", "dfs", "v", "undo", "forwardName", "run", "g", "forEach_default", "edge", "normalizeEdge", "v", "vRank", "w", "wRank", "name", "edgeLabel", "labelRank", "attrs", "dummy", "i", "addDummyNode", "undo", "node", "origLabel", "longestPath", "g", "visited", "dfs", "v", "label", "rank", "min_default", "map_default", "e", "forEach_default", "slack", "feasibleTree", "g", "t", "Graph", "start", "size", "edge", "delta", "tightTree", "findMinSlackEdge", "slack", "shiftRanks", "dfs", "v", "forEach_default", "e", "edgeV", "w", "minBy_default", "DEFAULT_WEIGHT_FUNC", "constant_default", "DEFAULT_WEIGHT_FUNC", "constant_default", "topsort", "CycleException", "g", "visited", "stack", "results", "visit", "node", "forEach_default", "size_default", "dfs", "g", "vs", "order", "isArray_default", "navigation", "acc", "visited", "forEach_default", "v", "doDfs", "postorder", "w", "postorder", "g", "vs", "dfs", "preorder", "g", "vs", "dfs", "networkSimplex", "initLowLimValues", "initCutValues", "calcCutValue", "leaveEdge", "enterEdge", "exchangeEdges", "g", "simplify", "longestPath", "t", "feasibleTree", "e", "f", "vs", "postorder", "forEach_default", "v", "assignCutValue", "child", "childLab", "parent", "childIsTail", "graphEdge", "cutValue", "isOutEdge", "other", "pointsToHead", "otherWeight", "isTreeEdge", "otherCutValue", "tree", "root", "dfsAssignLowLim", "visited", "nextLim", "low", "label", "w", "find_default", "edge", "vLabel", "wLabel", "tailLabel", "flip", "candidates", "filter_default", "isDescendant", "minBy_default", "slack", "updateRanks", "preorder", "flipped", "u", "rootLabel", "rank", "g", "networkSimplexRanker", "tightTreeRanker", "longestPathRanker", "longestPath", "feasibleTree", "networkSimplex", "run", "g", "root", "addDummyNode", "depths", "treeDepths", "height", "max_default", "values_default", "nodeSep", "forEach_default", "e", "weight", "sumWeights", "child", "dfs", "v", "children", "top", "addBorderNode", "bottom", "label", "childNode", "childTop", "childBottom", "thisWeight", "minlen", "depth", "reduce_default", "acc", "cleanup", "graphLabel", "edge", "addSubgraphConstraints", "g", "cg", "vs", "prev", "rootPrev", "forEach_default", "v", "child", "parent", "prevChild", "buildLayerGraph", "g", "rank", "relationship", "root", "createRootNode", "result", "Graph", "v", "forEach_default", "node", "parent", "e", "u", "edge", "weight", "isUndefined_default", "uniqueId_default", "crossCount", "g", "layering", "cc", "i", "twoLayerCrossCount", "northLayer", "southLayer", "southPos", "zipObject_default", "map_default", "v", "southEntries", "flatten_default", "sortBy_default", "e", "firstIndex", "treeSize", "tree", "forEach_default", "entry", "index", "weightSum", "initOrder", "g", "visited", "simpleNodes", "filter_default", "v", "maxRank", "max_default", "map_default", "layers", "range_default", "dfs", "has_default", "node", "forEach_default", "orderedVs", "sortBy_default", "barycenter", "g", "movable", "map_default", "v", "inV", "result", "reduce_default", "acc", "e", "edge", "nodeU", "resolveConflicts", "entries", "cg", "mappedEntries", "forEach_default", "entry", "i", "tmp", "isUndefined_default", "e", "entryV", "entryW", "sourceSet", "filter_default", "doResolveConflicts", "handleIn", "vEntry", "uEntry", "mergeEntries", "handleOut", "wEntry", "map_default", "pick_default", "target", "source", "sum", "weight", "sort", "entries", "biasRight", "parts", "partition", "entry", "sortable", "unsortable", "sortBy_default", "vs", "sum", "weight", "vsIndex", "compareWithBias", "consumeUnsortable", "forEach_default", "result", "flatten_default", "index", "last", "last_default", "bias", "entryV", "entryW", "sortSubgraph", "g", "v", "cg", "biasRight", "movable", "node", "bl", "br", "subgraphs", "filter_default", "w", "barycenters", "barycenter", "forEach_default", "entry", "subgraphResult", "mergeBarycenters", "entries", "resolveConflicts", "expandSubgraphs", "result", "sort", "flatten_default", "blPred", "brPred", "target", "other", "isUndefined_default", "order", "g", "maxRank", "downLayerGraphs", "buildLayerGraphs", "range_default", "upLayerGraphs", "layering", "initOrder", "assignOrder", "bestCC", "best", "i", "lastBest", "sweepLayerGraphs", "buildLayerMatrix", "cc", "crossCount", "cloneDeep_default", "ranks", "relationship", "map_default", "rank", "buildLayerGraph", "layerGraphs", "biasRight", "cg", "Graph", "forEach_default", "lg", "root", "sorted", "sortSubgraph", "v", "addSubgraphConstraints", "layer", "parentDummyChains", "g", "postorderNums", "postorder", "forEach_default", "v", "node", "edgeObj", "pathData", "findPath", "path", "lca", "pathIdx", "pathV", "ascending", "w", "vPath", "wPath", "low", "lim", "parent", "result", "dfs", "findType1Conflicts", "g", "layering", "conflicts", "visitLayer", "prevLayer", "layer", "k0", "scanPos", "prevLayerLength", "lastNode", "last_default", "forEach_default", "v", "i", "w", "findOtherInnerSegmentNode", "k1", "scanNode", "u", "uLabel", "uPos", "addConflict", "reduce_default", "findType2Conflicts", "scan", "south", "southPos", "southEnd", "prevNorthBorder", "nextNorthBorder", "range_default", "uNode", "north", "prevNorthPos", "nextNorthPos", "southLookahead", "predecessors", "find_default", "tmp", "conflictsV", "hasConflict", "verticalAlignment", "neighborFn", "root", "align", "pos", "order", "prevIdx", "ws", "sortBy_default", "mp", "il", "horizontalCompaction", "reverseSep", "xs", "blockG", "buildBlockGraph", "borderType", "iterate", "setXsFunc", "nextNodesFunc", "stack", "elem", "visited", "pass1", "acc", "e", "pass2", "min", "node", "blockGraph", "Graph", "graphLabel", "sepFn", "sep", "vRoot", "uRoot", "prevMax", "findSmallestWidthAlignment", "xss", "minBy_default", "values_default", "max", "forIn_default", "x", "halfWidth", "width", "alignCoordinates", "alignTo", "alignToVals", "alignToMin", "min_default", "alignToMax", "max_default", "vert", "horiz", "alignment", "delta", "xsVals", "mapValues_default", "balance", "ignore", "map_default", "positionX", "buildLayerMatrix", "merge_default", "adjustedLayering", "inner", "smallestWidth", "nodeSep", "edgeSep", "vLabel", "wLabel", "sum", "position", "g", "asNonCompoundGraph", "positionY", "forOwn_default", "positionX", "x", "v", "layering", "buildLayerMatrix", "rankSep", "prevY", "forEach_default", "layer", "maxHeight", "max_default", "map_default", "layout", "g", "opts", "time", "notime", "layoutGraph", "buildLayoutGraph", "runLayout", "updateInputGraph", "makeSpaceForEdgeLabels", "removeSelfEdges", "run", "rank", "asNonCompoundGraph", "injectEdgeLabelProxies", "removeEmptyRanks", "cleanup", "normalizeRanks", "assignRankMinMax", "removeEdgeLabelProxies", "parentDummyChains", "addBorderSegments", "order", "insertSelfEdges", "adjust", "position", "positionSelfEdges", "removeBorderNodes", "undo", "fixupEdgeLabelCoords", "translateGraph", "assignNodeIntersects", "reversePointsForReversedEdges", "inputGraph", "forEach_default", "v", "inputLabel", "layoutLabel", "e", "graphNumAttrs", "graphDefaults", "graphAttrs", "nodeNumAttrs", "nodeDefaults", "edgeNumAttrs", "edgeDefaults", "edgeAttrs", "Graph", "graph", "canonicalize", "merge_default", "selectNumberAttrs", "pick_default", "node", "defaults_default", "edge", "w", "label", "addDummyNode", "maxRank", "max_default", "minX", "maxX", "minY", "maxY", "graphLabel", "marginX", "marginY", "getExtremes", "attrs", "x", "y", "h", "p", "nodeV", "nodeW", "p1", "p2", "intersectRect", "b", "l", "last_default", "r", "layers", "buildLayerMatrix", "layer", "orderShift", "i", "selfEdge", "selfNode", "dx", "dy", "obj", "mapValues_default", "newAttrs", "k"] +} diff --git a/docs/_site/public/chunk-33FU46FA.min.js b/docs/_site/public/chunk-33FU46FA.min.js new file mode 100644 index 0000000..9ebdd56 --- /dev/null +++ b/docs/_site/public/chunk-33FU46FA.min.js @@ -0,0 +1,2 @@ +import{a as t,b as a,c as o,d as i,e as f,f as e,g as u,h as d,n as s,o as l}from"./chunk-BIJFJY5F.min.js";var m=class extends l{static{e(this,"InfoTokenBuilder")}constructor(){super(["info","showInfo"])}},v={parser:{TokenBuilder:e(()=>new m,"TokenBuilder"),ValueConverter:e(()=>new s,"ValueConverter")}};function I(c=i){let r=o(a(c),u),n=o(t({shared:r}),d,v);return r.ServiceRegistry.register(n),{shared:r,Info:n}}e(I,"createInfoServices");export{v as a,I as b}; +//# sourceMappingURL=chunk-33FU46FA.min.js.map diff --git a/docs/_site/public/chunk-33FU46FA.min.js.map b/docs/_site/public/chunk-33FU46FA.min.js.map new file mode 100644 index 0000000..4ed6faa --- /dev/null +++ b/docs/_site/public/chunk-33FU46FA.min.js.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": ["../../node_modules/@mermaid-js/parser/dist/chunks/mermaid-parser.core/chunk-4YFB5VUC.mjs"], + "sourcesContent": ["import {\n AbstractMermaidTokenBuilder,\n CommonValueConverter,\n InfoGeneratedModule,\n MermaidGeneratedSharedModule,\n __name\n} from \"./chunk-Y27MQZ3U.mjs\";\n\n// src/language/info/module.ts\nimport {\n EmptyFileSystem,\n createDefaultCoreModule,\n createDefaultSharedCoreModule,\n inject\n} from \"langium\";\n\n// src/language/info/tokenBuilder.ts\nvar InfoTokenBuilder = class extends AbstractMermaidTokenBuilder {\n static {\n __name(this, \"InfoTokenBuilder\");\n }\n constructor() {\n super([\"info\", \"showInfo\"]);\n }\n};\n\n// src/language/info/module.ts\nvar InfoModule = {\n parser: {\n TokenBuilder: /* @__PURE__ */ __name(() => new InfoTokenBuilder(), \"TokenBuilder\"),\n ValueConverter: /* @__PURE__ */ __name(() => new CommonValueConverter(), \"ValueConverter\")\n }\n};\nfunction createInfoServices(context = EmptyFileSystem) {\n const shared = inject(\n createDefaultSharedCoreModule(context),\n MermaidGeneratedSharedModule\n );\n const Info = inject(\n createDefaultCoreModule({ shared }),\n InfoGeneratedModule,\n InfoModule\n );\n shared.ServiceRegistry.register(Info);\n return { shared, Info };\n}\n__name(createInfoServices, \"createInfoServices\");\n\nexport {\n InfoModule,\n createInfoServices\n};\n"], + "mappings": "2GAiBA,IAAIA,EAAmB,cAAcC,CAA4B,CAC/D,MAAO,CACLC,EAAO,KAAM,kBAAkB,CACjC,CACA,aAAc,CACZ,MAAM,CAAC,OAAQ,UAAU,CAAC,CAC5B,CACF,EAGIC,EAAa,CACf,OAAQ,CACN,aAA8BD,EAAO,IAAM,IAAIF,EAAoB,cAAc,EACjF,eAAgCE,EAAO,IAAM,IAAIE,EAAwB,gBAAgB,CAC3F,CACF,EACA,SAASC,EAAmBC,EAAUC,EAAiB,CACrD,IAAMC,EAASC,EACbC,EAA8BJ,CAAO,EACrCK,CACF,EACMC,EAAOH,EACXI,EAAwB,CAAE,OAAAL,CAAO,CAAC,EAClCM,EACAX,CACF,EACA,OAAAK,EAAO,gBAAgB,SAASI,CAAI,EAC7B,CAAE,OAAAJ,EAAQ,KAAAI,CAAK,CACxB,CACAV,EAAOG,EAAoB,oBAAoB", + "names": ["InfoTokenBuilder", "AbstractMermaidTokenBuilder", "__name", "InfoModule", "CommonValueConverter", "createInfoServices", "context", "EmptyFileSystem", "shared", "inject", "createDefaultSharedCoreModule", "MermaidGeneratedSharedModule", "Info", "createDefaultCoreModule", "InfoGeneratedModule"] +} diff --git a/docs/_site/public/chunk-3Z74ZUXG.min.js b/docs/_site/public/chunk-3Z74ZUXG.min.js new file mode 100644 index 0000000..bc6e754 --- /dev/null +++ b/docs/_site/public/chunk-3Z74ZUXG.min.js @@ -0,0 +1,2 @@ +import{D as a,L as O,Q as C,b as u,n as o,p as f,z as m}from"./chunk-U4DUTLYF.min.js";import{d as E}from"./chunk-IQQ46AC6.min.js";import{O as c,e as b}from"./chunk-CXRPJJJE.min.js";var j="\0",_="\0",N="",p=class{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=c(void 0),this._defaultEdgeLabelFn=c(void 0),this._nodes={},this._isCompound&&(this._parent={},this._children={},this._children[_]={}),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 b(e)||(e=c(e)),this._defaultNodeLabelFn=e,this}nodeCount(){return this._nodeCount}nodes(){return u(this._nodes)}sources(){var e=this;return f(this.nodes(),function(t){return E(e._in[t])})}sinks(){var e=this;return f(this.nodes(),function(t){return E(e._out[t])})}setNodes(e,t){var s=arguments,i=this;return o(e,function(r){s.length>1?i.setNode(r,t):i.setNode(r)}),this}setNode(e,t){return Object.prototype.hasOwnProperty.call(this._nodes,e)?(arguments.length>1&&(this._nodes[e]=t),this):(this._nodes[e]=arguments.length>1?t:this._defaultNodeLabelFn(e),this._isCompound&&(this._parent[e]=_,this._children[e]={},this._children[_][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 t=s=>this.removeEdge(this._edgeObjs[s]);delete this._nodes[e],this._isCompound&&(this._removeFromParentsChildList(e),delete this._parent[e],o(this.children(e),s=>{this.setParent(s)}),delete this._children[e]),o(u(this._in[e]),t),delete this._in[e],delete this._preds[e],o(u(this._out[e]),t),delete this._out[e],delete this._sucs[e],--this._nodeCount}return this}setParent(e,t){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if(a(t))t=_;else{t+="";for(var s=t;!a(s);s=this.parent(s))if(s===e)throw new Error("Setting "+t+" as parent of "+e+" would create a cycle");this.setNode(t)}return this.setNode(e),this._removeFromParentsChildList(e),this._parent[e]=t,this._children[t][e]=!0,this}_removeFromParentsChildList(e){delete this._children[this._parent[e]][e]}parent(e){if(this._isCompound){var t=this._parent[e];if(t!==_)return t}}children(e){if(a(e)&&(e=_),this._isCompound){var t=this._children[e];if(t)return u(t)}else{if(e===_)return this.nodes();if(this.hasNode(e))return[]}}predecessors(e){var t=this._preds[e];if(t)return u(t)}successors(e){var t=this._sucs[e];if(t)return u(t)}neighbors(e){var t=this.predecessors(e);if(t)return C(t,this.successors(e))}isLeaf(e){var t;return this.isDirected()?t=this.successors(e):t=this.neighbors(e),t.length===0}filterNodes(e){var t=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});t.setGraph(this.graph());var s=this;o(this._nodes,function(n,h){e(h)&&t.setNode(h,n)}),o(this._edgeObjs,function(n){t.hasNode(n.v)&&t.hasNode(n.w)&&t.setEdge(n,s.edge(n))});var i={};function r(n){var h=s.parent(n);return h===void 0||t.hasNode(h)?(i[n]=h,h):h in i?i[h]:r(h)}return this._isCompound&&o(t.nodes(),function(n){t.setParent(n,r(n))}),t}setDefaultEdgeLabel(e){return b(e)||(e=c(e)),this._defaultEdgeLabelFn=e,this}edgeCount(){return this._edgeCount}edges(){return m(this._edgeObjs)}setPath(e,t){var s=this,i=arguments;return O(e,function(r,n){return i.length>1?s.setEdge(r,n,t):s.setEdge(r,n),n}),this}setEdge(){var e,t,s,i,r=!1,n=arguments[0];typeof n=="object"&&n!==null&&"v"in n?(e=n.v,t=n.w,s=n.name,arguments.length===2&&(i=arguments[1],r=!0)):(e=n,t=arguments[1],s=arguments[3],arguments.length>2&&(i=arguments[2],r=!0)),e=""+e,t=""+t,a(s)||(s=""+s);var h=g(this._isDirected,e,t,s);if(Object.prototype.hasOwnProperty.call(this._edgeLabels,h))return r&&(this._edgeLabels[h]=i),this;if(!a(s)&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(e),this.setNode(t),this._edgeLabels[h]=r?i:this._defaultEdgeLabelFn(e,t,s);var l=P(this._isDirected,e,t,s);return e=l.v,t=l.w,Object.freeze(l),this._edgeObjs[h]=l,v(this._preds[t],e),v(this._sucs[e],t),this._in[t][h]=l,this._out[e][h]=l,this._edgeCount++,this}edge(e,t,s){var i=arguments.length===1?y(this._isDirected,arguments[0]):g(this._isDirected,e,t,s);return this._edgeLabels[i]}hasEdge(e,t,s){var i=arguments.length===1?y(this._isDirected,arguments[0]):g(this._isDirected,e,t,s);return Object.prototype.hasOwnProperty.call(this._edgeLabels,i)}removeEdge(e,t,s){var i=arguments.length===1?y(this._isDirected,arguments[0]):g(this._isDirected,e,t,s),r=this._edgeObjs[i];return r&&(e=r.v,t=r.w,delete this._edgeLabels[i],delete this._edgeObjs[i],L(this._preds[t],e),L(this._sucs[e],t),delete this._in[t][i],delete this._out[e][i],this._edgeCount--),this}inEdges(e,t){var s=this._in[e];if(s){var i=m(s);return t?f(i,function(r){return r.v===t}):i}}outEdges(e,t){var s=this._out[e];if(s){var i=m(s);return t?f(i,function(r){return r.w===t}):i}}nodeEdges(e,t){var s=this.inEdges(e,t);if(s)return s.concat(this.outEdges(e,t))}};p.prototype._nodeCount=0;p.prototype._edgeCount=0;function v(d,e){d[e]?d[e]++:d[e]=1}function L(d,e){--d[e]||delete d[e]}function g(d,e,t,s){var i=""+e,r=""+t;if(!d&&i>r){var n=i;i=r,r=n}return i+N+r+N+(a(s)?j:s)}function P(d,e,t,s){var i=""+e,r=""+t;if(!d&&i>r){var n=i;i=r,r=n}var h={v:i,w:r};return s&&(h.name=s),h}function y(d,e){return g(d,e.v,e.w,e.name)}export{p as a}; +//# sourceMappingURL=chunk-3Z74ZUXG.min.js.map diff --git a/docs/_site/public/chunk-3Z74ZUXG.min.js.map b/docs/_site/public/chunk-3Z74ZUXG.min.js.map new file mode 100644 index 0000000..dd5e351 --- /dev/null +++ b/docs/_site/public/chunk-3Z74ZUXG.min.js.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": ["../../node_modules/dagre-d3-es/src/graphlib/graph.js"], + "sourcesContent": ["import * as _ from 'lodash-es';\n\nvar DEFAULT_EDGE_NAME = '\\x00';\nvar GRAPH_NODE = '\\x00';\nvar EDGE_KEY_DELIM = '\\x01';\n\n// Implementation notes:\n//\n// * Node id query functions should return string ids for the nodes\n// * Edge id query functions should return an \"edgeObj\", edge object, that is\n// composed of enough information to uniquely identify an edge: {v, w, name}.\n// * Internally we use an \"edgeId\", a stringified form of the edgeObj, to\n// reference edges. This is because we need a performant way to look these\n// edges up and, object properties, which have string keys, are the closest\n// we're going to get to a performant hashtable in JavaScript.\n\n// Implementation notes:\n//\n// * Node id query functions should return string ids for the nodes\n// * Edge id query functions should return an \"edgeObj\", edge object, that is\n// composed of enough information to uniquely identify an edge: {v, w, name}.\n// * Internally we use an \"edgeId\", a stringified form of the edgeObj, to\n// reference edges. This is because we need a performant way to look these\n// edges up and, object properties, which have string keys, are the closest\n// we're going to get to a performant hashtable in JavaScript.\nexport class Graph {\n constructor(opts = {}) {\n this._isDirected = Object.prototype.hasOwnProperty.call(opts, 'directed')\n ? opts.directed\n : true;\n this._isMultigraph = Object.prototype.hasOwnProperty.call(opts, 'multigraph')\n ? opts.multigraph\n : false;\n this._isCompound = Object.prototype.hasOwnProperty.call(opts, 'compound')\n ? opts.compound\n : false;\n\n // Label for the graph itself\n this._label = undefined;\n\n // Defaults to be set when creating a new node\n this._defaultNodeLabelFn = _.constant(undefined);\n\n // Defaults to be set when creating a new edge\n this._defaultEdgeLabelFn = _.constant(undefined);\n\n // v -> label\n this._nodes = {};\n\n if (this._isCompound) {\n // v -> parent\n this._parent = {};\n\n // v -> children\n this._children = {};\n this._children[GRAPH_NODE] = {};\n }\n\n // v -> edgeObj\n this._in = {};\n\n // u -> v -> Number\n this._preds = {};\n\n // v -> edgeObj\n this._out = {};\n\n // v -> w -> Number\n this._sucs = {};\n\n // e -> edgeObj\n this._edgeObjs = {};\n\n // e -> label\n this._edgeLabels = {};\n }\n /* === Graph functions ========= */\n isDirected() {\n return this._isDirected;\n }\n isMultigraph() {\n return this._isMultigraph;\n }\n isCompound() {\n return this._isCompound;\n }\n setGraph(label) {\n this._label = label;\n return this;\n }\n graph() {\n return this._label;\n }\n /* === Node functions ========== */\n setDefaultNodeLabel(newDefault) {\n if (!_.isFunction(newDefault)) {\n newDefault = _.constant(newDefault);\n }\n this._defaultNodeLabelFn = newDefault;\n return this;\n }\n nodeCount() {\n return this._nodeCount;\n }\n nodes() {\n return _.keys(this._nodes);\n }\n sources() {\n var self = this;\n return _.filter(this.nodes(), function (v) {\n return _.isEmpty(self._in[v]);\n });\n }\n sinks() {\n var self = this;\n return _.filter(this.nodes(), function (v) {\n return _.isEmpty(self._out[v]);\n });\n }\n setNodes(vs, value) {\n var args = arguments;\n var self = this;\n _.each(vs, function (v) {\n if (args.length > 1) {\n self.setNode(v, value);\n } else {\n self.setNode(v);\n }\n });\n return this;\n }\n setNode(v, value) {\n if (Object.prototype.hasOwnProperty.call(this._nodes, v)) {\n if (arguments.length > 1) {\n this._nodes[v] = value;\n }\n return this;\n }\n\n // @ts-expect-error\n this._nodes[v] = arguments.length > 1 ? value : this._defaultNodeLabelFn(v);\n if (this._isCompound) {\n this._parent[v] = GRAPH_NODE;\n this._children[v] = {};\n this._children[GRAPH_NODE][v] = true;\n }\n this._in[v] = {};\n this._preds[v] = {};\n this._out[v] = {};\n this._sucs[v] = {};\n ++this._nodeCount;\n return this;\n }\n node(v) {\n return this._nodes[v];\n }\n hasNode(v) {\n return Object.prototype.hasOwnProperty.call(this._nodes, v);\n }\n removeNode(v) {\n if (Object.prototype.hasOwnProperty.call(this._nodes, v)) {\n var removeEdge = (e) => this.removeEdge(this._edgeObjs[e]);\n delete this._nodes[v];\n if (this._isCompound) {\n this._removeFromParentsChildList(v);\n delete this._parent[v];\n _.each(this.children(v), (child) => {\n this.setParent(child);\n });\n delete this._children[v];\n }\n _.each(_.keys(this._in[v]), removeEdge);\n delete this._in[v];\n delete this._preds[v];\n _.each(_.keys(this._out[v]), removeEdge);\n delete this._out[v];\n delete this._sucs[v];\n --this._nodeCount;\n }\n return this;\n }\n setParent(v, parent) {\n if (!this._isCompound) {\n throw new Error('Cannot set parent in a non-compound graph');\n }\n\n if (_.isUndefined(parent)) {\n parent = GRAPH_NODE;\n } else {\n // Coerce parent to string\n parent += '';\n for (var ancestor = parent; !_.isUndefined(ancestor); ancestor = this.parent(ancestor)) {\n if (ancestor === v) {\n throw new Error('Setting ' + parent + ' as parent of ' + v + ' would create a cycle');\n }\n }\n\n this.setNode(parent);\n }\n\n this.setNode(v);\n this._removeFromParentsChildList(v);\n this._parent[v] = parent;\n this._children[parent][v] = true;\n return this;\n }\n _removeFromParentsChildList(v) {\n delete this._children[this._parent[v]][v];\n }\n parent(v) {\n if (this._isCompound) {\n var parent = this._parent[v];\n if (parent !== GRAPH_NODE) {\n return parent;\n }\n }\n }\n children(v) {\n if (_.isUndefined(v)) {\n v = GRAPH_NODE;\n }\n\n if (this._isCompound) {\n var children = this._children[v];\n if (children) {\n return _.keys(children);\n }\n } else if (v === GRAPH_NODE) {\n return this.nodes();\n } else if (this.hasNode(v)) {\n return [];\n }\n }\n predecessors(v) {\n var predsV = this._preds[v];\n if (predsV) {\n return _.keys(predsV);\n }\n }\n successors(v) {\n var sucsV = this._sucs[v];\n if (sucsV) {\n return _.keys(sucsV);\n }\n }\n neighbors(v) {\n var preds = this.predecessors(v);\n if (preds) {\n return _.union(preds, this.successors(v));\n }\n }\n isLeaf(v) {\n var neighbors;\n if (this.isDirected()) {\n neighbors = this.successors(v);\n } else {\n neighbors = this.neighbors(v);\n }\n return neighbors.length === 0;\n }\n filterNodes(filter) {\n // @ts-expect-error\n var copy = new this.constructor({\n directed: this._isDirected,\n multigraph: this._isMultigraph,\n compound: this._isCompound,\n });\n\n copy.setGraph(this.graph());\n\n var self = this;\n _.each(this._nodes, function (value, v) {\n if (filter(v)) {\n copy.setNode(v, value);\n }\n });\n\n _.each(this._edgeObjs, function (e) {\n // @ts-expect-error\n if (copy.hasNode(e.v) && copy.hasNode(e.w)) {\n copy.setEdge(e, self.edge(e));\n }\n });\n\n var parents = {};\n function findParent(v) {\n var parent = self.parent(v);\n if (parent === undefined || copy.hasNode(parent)) {\n parents[v] = parent;\n return parent;\n } else if (parent in parents) {\n return parents[parent];\n } else {\n return findParent(parent);\n }\n }\n\n if (this._isCompound) {\n _.each(copy.nodes(), function (v) {\n copy.setParent(v, findParent(v));\n });\n }\n\n return copy;\n }\n /* === Edge functions ========== */\n setDefaultEdgeLabel(newDefault) {\n if (!_.isFunction(newDefault)) {\n newDefault = _.constant(newDefault);\n }\n this._defaultEdgeLabelFn = newDefault;\n return this;\n }\n edgeCount() {\n return this._edgeCount;\n }\n edges() {\n return _.values(this._edgeObjs);\n }\n setPath(vs, value) {\n var self = this;\n var args = arguments;\n _.reduce(vs, function (v, w) {\n if (args.length > 1) {\n self.setEdge(v, w, value);\n } else {\n self.setEdge(v, w);\n }\n return w;\n });\n return this;\n }\n /*\n * setEdge(v, w, [value, [name]])\n * setEdge({ v, w, [name] }, [value])\n */\n setEdge() {\n var v, w, name, value;\n var valueSpecified = false;\n var arg0 = arguments[0];\n\n if (typeof arg0 === 'object' && arg0 !== null && 'v' in arg0) {\n v = arg0.v;\n w = arg0.w;\n name = arg0.name;\n if (arguments.length === 2) {\n value = arguments[1];\n valueSpecified = true;\n }\n } else {\n v = arg0;\n w = arguments[1];\n name = arguments[3];\n if (arguments.length > 2) {\n value = arguments[2];\n valueSpecified = true;\n }\n }\n\n v = '' + v;\n w = '' + w;\n if (!_.isUndefined(name)) {\n name = '' + name;\n }\n\n var e = edgeArgsToId(this._isDirected, v, w, name);\n if (Object.prototype.hasOwnProperty.call(this._edgeLabels, e)) {\n if (valueSpecified) {\n this._edgeLabels[e] = value;\n }\n return this;\n }\n\n if (!_.isUndefined(name) && !this._isMultigraph) {\n throw new Error('Cannot set a named edge when isMultigraph = false');\n }\n\n // It didn't exist, so we need to create it.\n // First ensure the nodes exist.\n this.setNode(v);\n this.setNode(w);\n\n // @ts-expect-error\n this._edgeLabels[e] = valueSpecified ? value : this._defaultEdgeLabelFn(v, w, name);\n\n var edgeObj = edgeArgsToObj(this._isDirected, v, w, name);\n // Ensure we add undirected edges in a consistent way.\n v = edgeObj.v;\n w = edgeObj.w;\n\n Object.freeze(edgeObj);\n this._edgeObjs[e] = edgeObj;\n incrementOrInitEntry(this._preds[w], v);\n incrementOrInitEntry(this._sucs[v], w);\n this._in[w][e] = edgeObj;\n this._out[v][e] = edgeObj;\n this._edgeCount++;\n return this;\n }\n edge(v, w, name) {\n var e =\n arguments.length === 1\n ? edgeObjToId(this._isDirected, arguments[0])\n : edgeArgsToId(this._isDirected, v, w, name);\n return this._edgeLabels[e];\n }\n hasEdge(v, w, name) {\n var e =\n arguments.length === 1\n ? edgeObjToId(this._isDirected, arguments[0])\n : edgeArgsToId(this._isDirected, v, w, name);\n return Object.prototype.hasOwnProperty.call(this._edgeLabels, e);\n }\n removeEdge(v, w, name) {\n var e =\n arguments.length === 1\n ? edgeObjToId(this._isDirected, arguments[0])\n : edgeArgsToId(this._isDirected, v, w, name);\n var edge = this._edgeObjs[e];\n if (edge) {\n v = edge.v;\n w = edge.w;\n delete this._edgeLabels[e];\n delete this._edgeObjs[e];\n decrementOrRemoveEntry(this._preds[w], v);\n decrementOrRemoveEntry(this._sucs[v], w);\n delete this._in[w][e];\n delete this._out[v][e];\n this._edgeCount--;\n }\n return this;\n }\n inEdges(v, u) {\n var inV = this._in[v];\n if (inV) {\n var edges = _.values(inV);\n if (!u) {\n return edges;\n }\n return _.filter(edges, function (edge) {\n return edge.v === u;\n });\n }\n }\n outEdges(v, w) {\n var outV = this._out[v];\n if (outV) {\n var edges = _.values(outV);\n if (!w) {\n return edges;\n }\n return _.filter(edges, function (edge) {\n return edge.w === w;\n });\n }\n }\n nodeEdges(v, w) {\n var inEdges = this.inEdges(v, w);\n if (inEdges) {\n return inEdges.concat(this.outEdges(v, w));\n }\n }\n}\n\n/* Number of nodes in the graph. Should only be changed by the implementation. */\nGraph.prototype._nodeCount = 0;\n\n/* Number of edges in the graph. Should only be changed by the implementation. */\nGraph.prototype._edgeCount = 0;\n\nfunction incrementOrInitEntry(map, k) {\n if (map[k]) {\n map[k]++;\n } else {\n map[k] = 1;\n }\n}\n\nfunction decrementOrRemoveEntry(map, k) {\n if (!--map[k]) {\n delete map[k];\n }\n}\n\nfunction edgeArgsToId(isDirected, v_, w_, name) {\n var v = '' + v_;\n var w = '' + w_;\n if (!isDirected && v > w) {\n var tmp = v;\n v = w;\n w = tmp;\n }\n return v + EDGE_KEY_DELIM + w + EDGE_KEY_DELIM + (_.isUndefined(name) ? DEFAULT_EDGE_NAME : name);\n}\n\nfunction edgeArgsToObj(isDirected, v_, w_, name) {\n var v = '' + v_;\n var w = '' + w_;\n if (!isDirected && v > w) {\n var tmp = v;\n v = w;\n w = tmp;\n }\n var edgeObj = { v: v, w: w };\n if (name) {\n edgeObj.name = name;\n }\n return edgeObj;\n}\n\nfunction edgeObjToId(isDirected, edgeObj) {\n return edgeArgsToId(isDirected, edgeObj.v, edgeObj.w, edgeObj.name);\n}\n"], + "mappings": "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", + "names": ["DEFAULT_EDGE_NAME", "GRAPH_NODE", "EDGE_KEY_DELIM", "Graph", "opts", "constant_default", "label", "newDefault", "isFunction_default", "keys_default", "self", "filter_default", "v", "isEmpty_default", "vs", "value", "args", "forEach_default", "removeEdge", "e", "child", "parent", "isUndefined_default", "ancestor", "children", "predsV", "sucsV", "preds", "union_default", "neighbors", "filter", "copy", "parents", "findParent", "values_default", "reduce_default", "w", "name", "valueSpecified", "arg0", "edgeArgsToId", "edgeObj", "edgeArgsToObj", "incrementOrInitEntry", "edgeObjToId", "edge", "decrementOrRemoveEntry", "u", "inV", "edges", "outV", "inEdges", "map", "k", "isDirected", "v_", "w_", "tmp"] +} diff --git a/docs/_site/public/chunk-54U54PUP.min.js b/docs/_site/public/chunk-54U54PUP.min.js new file mode 100644 index 0000000..f908bad --- /dev/null +++ b/docs/_site/public/chunk-54U54PUP.min.js @@ -0,0 +1,165 @@ +import{a as kt,b as bt}from"./chunk-ISDTAGDN.min.js";import{b as ft,c as At}from"./chunk-JL3VILNY.min.js";import{m as me,p as dt}from"./chunk-PYPO7LRM.min.js";import{H as at,J as R,N as x,S as nt,T as ut,U as lt,V as ot,W as ct,X as ht,Y as pt,Z as T,h as n,ia as K,j as ge}from"./chunk-U3SD26FK.min.js";var Ye=function(){var e=n(function(O,o,c,d){for(c=c||{},d=O.length;d--;c[O[d]]=o);return c},"o"),r=[1,18],u=[1,19],l=[1,20],i=[1,41],p=[1,42],f=[1,26],b=[1,24],F=[1,25],S=[1,32],ye=[1,33],Te=[1,34],g=[1,45],Fe=[1,35],De=[1,36],_e=[1,37],Be=[1,38],Se=[1,27],ve=[1,28],Ne=[1,29],Le=[1,30],xe=[1,31],m=[1,44],C=[1,46],E=[1,43],D=[1,47],Ie=[1,9],h=[1,8,9],ae=[1,58],ne=[1,59],ue=[1,60],le=[1,61],oe=[1,62],Oe=[1,63],we=[1,64],ce=[1,8,9,41],He=[1,76],U=[1,8,9,12,13,22,39,41,44,66,67,68,69,70,71,72,77,79],he=[1,8,9,12,13,17,20,22,39,41,44,48,58,66,67,68,69,70,71,72,77,79,84,99,101,102],pe=[13,58,84,99,101,102],W=[13,58,71,72,84,99,101,102],qe=[13,58,66,67,68,69,70,84,99,101,102],Ve=[1,98],j=[1,115],X=[1,107],H=[1,113],q=[1,108],J=[1,109],Z=[1,110],$=[1,111],ee=[1,112],te=[1,114],Je=[22,58,59,80,84,85,86,87,88,89],Pe=[1,8,9,39,41,44],de=[1,8,9,22],Ze=[1,143],$e=[1,8,9,59],N=[1,8,9,22,58,59,80,84,85,86,87,88,89],Re={trace:n(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,DOT:17,className:18,classLiteralName: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,ANNOTATION_START:47,ANNOTATION_END:48,MEMBER:49,SEPARATOR:50,relation:51,NOTE_FOR:52,noteText:53,NOTE:54,CLASSDEF:55,classList:56,stylesOpt:57,ALPHA:58,COMMA:59,direction_tb:60,direction_bt:61,direction_rl:62,direction_lr:63,relationType:64,lineType:65,AGGREGATION:66,EXTENSION:67,COMPOSITION:68,DEPENDENCY:69,LOLLIPOP:70,LINE:71,DOTTED_LINE:72,CALLBACK:73,LINK:74,LINK_TARGET:75,CLICK:76,CALLBACK_NAME:77,CALLBACK_ARGS:78,HREF:79,STYLE:80,CSSCLASS:81,style:82,styleComponent:83,NUM:84,COLON:85,UNIT:86,SPACE:87,BRKT:88,PCT:89,commentToken:90,textToken:91,graphCodeTokens:92,textNoTagsToken:93,TAGSTART:94,TAGEND:95,"==":96,"--":97,DEFAULT:98,MINUS:99,keywords:100,UNICODE_TEXT:101,BQUOTE_STR:102,$accept:0,$end:1},terminals_:{2:"error",7:"CLASS_DIAGRAM",8:"NEWLINE",9:"EOF",12:"SQS",13:"STR",14:"SQE",17:"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",47:"ANNOTATION_START",48:"ANNOTATION_END",49:"MEMBER",50:"SEPARATOR",52:"NOTE_FOR",54:"NOTE",55:"CLASSDEF",58:"ALPHA",59:"COMMA",60:"direction_tb",61:"direction_bt",62:"direction_rl",63:"direction_lr",66:"AGGREGATION",67:"EXTENSION",68:"COMPOSITION",69:"DEPENDENCY",70:"LOLLIPOP",71:"LINE",72:"DOTTED_LINE",73:"CALLBACK",74:"LINK",75:"LINK_TARGET",76:"CLICK",77:"CALLBACK_NAME",78:"CALLBACK_ARGS",79:"HREF",80:"STYLE",81:"CSSCLASS",84:"NUM",85:"COLON",86:"UNIT",87:"SPACE",88:"BRKT",89:"PCT",92:"graphCodeTokens",94:"TAGSTART",95:"TAGEND",96:"==",97:"--",98:"DEFAULT",99:"MINUS",100:"keywords",101:"UNICODE_TEXT",102:"BQUOTE_STR"},productions_:[0,[3,1],[3,1],[4,1],[6,4],[5,1],[5,2],[5,3],[11,3],[15,1],[15,3],[15,2],[18,1],[18,3],[18,1],[18,2],[18,2],[18,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,6],[43,2],[43,3],[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],[56,1],[56,3],[32,1],[32,1],[32,1],[32,1],[51,3],[51,2],[51,2],[51,1],[64,1],[64,1],[64,1],[64,1],[64,1],[65,1],[65,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],[57,1],[57,3],[82,1],[82,2],[83,1],[83,1],[83,1],[83,1],[83,1],[83,1],[83,1],[83,1],[83,1],[90,1],[90,1],[91,1],[91,1],[91,1],[91,1],[91,1],[91,1],[91,1],[93,1],[93,1],[93,1],[93,1],[16,1],[16,1],[16,1],[16,1],[19,1],[53,1]],performAction:n(function(o,c,d,a,A,t,se){var s=t.length-1;switch(A){case 8:this.$=t[s-1];break;case 9:case 12:case 14:this.$=t[s];break;case 10:case 13:this.$=t[s-2]+"."+t[s];break;case 11:case 15:this.$=t[s-1]+t[s];break;case 16:case 17:this.$=t[s-1]+"~"+t[s]+"~";break;case 18:a.addRelation(t[s]);break;case 19:t[s-1].title=a.cleanupLabel(t[s]),a.addRelation(t[s-1]);break;case 30:this.$=t[s].trim(),a.setAccTitle(this.$);break;case 31:case 32:this.$=t[s].trim(),a.setAccDescription(this.$);break;case 33:a.addClassesToNamespace(t[s-3],t[s-1]);break;case 34:a.addClassesToNamespace(t[s-4],t[s-1]);break;case 35:this.$=t[s],a.addNamespace(t[s]);break;case 36:this.$=[t[s]];break;case 37:this.$=[t[s-1]];break;case 38:t[s].unshift(t[s-2]),this.$=t[s];break;case 40:a.setCssClass(t[s-2],t[s]);break;case 41:a.addMembers(t[s-3],t[s-1]);break;case 42:a.setCssClass(t[s-5],t[s-3]),a.addMembers(t[s-5],t[s-1]);break;case 43:this.$=t[s],a.addClass(t[s]);break;case 44:this.$=t[s-1],a.addClass(t[s-1]),a.setClassLabel(t[s-1],t[s]);break;case 45:a.addAnnotation(t[s],t[s-2]);break;case 46:case 59:this.$=[t[s]];break;case 47:t[s].push(t[s-1]),this.$=t[s];break;case 48:break;case 49:a.addMember(t[s-1],a.cleanupLabel(t[s]));break;case 50:break;case 51:break;case 52:this.$={id1:t[s-2],id2:t[s],relation:t[s-1],relationTitle1:"none",relationTitle2:"none"};break;case 53:this.$={id1:t[s-3],id2:t[s],relation:t[s-1],relationTitle1:t[s-2],relationTitle2:"none"};break;case 54:this.$={id1:t[s-3],id2:t[s],relation:t[s-2],relationTitle1:"none",relationTitle2:t[s-1]};break;case 55:this.$={id1:t[s-4],id2:t[s],relation:t[s-2],relationTitle1:t[s-3],relationTitle2:t[s-1]};break;case 56:a.addNote(t[s],t[s-1]);break;case 57:a.addNote(t[s]);break;case 58:this.$=t[s-2],a.defineClass(t[s-1],t[s]);break;case 60:this.$=t[s-2].concat([t[s]]);break;case 61:a.setDirection("TB");break;case 62:a.setDirection("BT");break;case 63:a.setDirection("RL");break;case 64:a.setDirection("LR");break;case 65:this.$={type1:t[s-2],type2:t[s],lineType:t[s-1]};break;case 66:this.$={type1:"none",type2:t[s],lineType:t[s-1]};break;case 67:this.$={type1:t[s-1],type2:"none",lineType:t[s]};break;case 68:this.$={type1:"none",type2:"none",lineType:t[s]};break;case 69:this.$=a.relationType.AGGREGATION;break;case 70:this.$=a.relationType.EXTENSION;break;case 71:this.$=a.relationType.COMPOSITION;break;case 72:this.$=a.relationType.DEPENDENCY;break;case 73:this.$=a.relationType.LOLLIPOP;break;case 74:this.$=a.lineType.LINE;break;case 75:this.$=a.lineType.DOTTED_LINE;break;case 76:case 82:this.$=t[s-2],a.setClickEvent(t[s-1],t[s]);break;case 77:case 83:this.$=t[s-3],a.setClickEvent(t[s-2],t[s-1]),a.setTooltip(t[s-2],t[s]);break;case 78:this.$=t[s-2],a.setLink(t[s-1],t[s]);break;case 79:this.$=t[s-3],a.setLink(t[s-2],t[s-1],t[s]);break;case 80:this.$=t[s-3],a.setLink(t[s-2],t[s-1]),a.setTooltip(t[s-2],t[s]);break;case 81:this.$=t[s-4],a.setLink(t[s-3],t[s-2],t[s]),a.setTooltip(t[s-3],t[s-1]);break;case 84:this.$=t[s-3],a.setClickEvent(t[s-2],t[s-1],t[s]);break;case 85:this.$=t[s-4],a.setClickEvent(t[s-3],t[s-2],t[s-1]),a.setTooltip(t[s-3],t[s]);break;case 86:this.$=t[s-3],a.setLink(t[s-2],t[s]);break;case 87:this.$=t[s-4],a.setLink(t[s-3],t[s-1],t[s]);break;case 88:this.$=t[s-4],a.setLink(t[s-3],t[s-1]),a.setTooltip(t[s-3],t[s]);break;case 89:this.$=t[s-5],a.setLink(t[s-4],t[s-2],t[s]),a.setTooltip(t[s-4],t[s-1]);break;case 90:this.$=t[s-2],a.setCssStyle(t[s-1],t[s]);break;case 91:a.setCssClass(t[s-1],t[s]);break;case 92:this.$=[t[s]];break;case 93:t[s-2].push(t[s]),this.$=t[s-2];break;case 95:this.$=t[s-1]+t[s];break}},"anonymous"),table:[{3:1,4:2,5:3,6:4,7:[1,6],10:5,16:39,18:21,19:40,21:7,23:8,24:9,25:10,26:11,27:12,28:13,29:14,30:15,31:16,32:17,33:r,35:u,37:l,38:22,42:i,43:23,46:p,47:f,49:b,50:F,52:S,54:ye,55:Te,58:g,60:Fe,61:De,62:_e,63:Be,73:Se,74:ve,76:Ne,80:Le,81:xe,84:m,99:C,101:E,102:D},{1:[3]},{1:[2,1]},{1:[2,2]},{1:[2,3]},e(Ie,[2,5],{8:[1,48]}),{8:[1,49]},e(h,[2,18],{22:[1,50]}),e(h,[2,20]),e(h,[2,21]),e(h,[2,22]),e(h,[2,23]),e(h,[2,24]),e(h,[2,25]),e(h,[2,26]),e(h,[2,27]),e(h,[2,28]),e(h,[2,29]),{34:[1,51]},{36:[1,52]},e(h,[2,32]),e(h,[2,48],{51:53,64:56,65:57,13:[1,54],22:[1,55],66:ae,67:ne,68:ue,69:le,70:oe,71:Oe,72:we}),{39:[1,65]},e(ce,[2,39],{39:[1,67],44:[1,66]}),e(h,[2,50]),e(h,[2,51]),{16:68,58:g,84:m,99:C,101:E},{16:39,18:69,19:40,58:g,84:m,99:C,101:E,102:D},{16:39,18:70,19:40,58:g,84:m,99:C,101:E,102:D},{16:39,18:71,19:40,58:g,84:m,99:C,101:E,102:D},{58:[1,72]},{13:[1,73]},{16:39,18:74,19:40,58:g,84:m,99:C,101:E,102:D},{13:He,53:75},{56:77,58:[1,78]},e(h,[2,61]),e(h,[2,62]),e(h,[2,63]),e(h,[2,64]),e(U,[2,12],{16:39,19:40,18:80,17:[1,79],20:[1,81],58:g,84:m,99:C,101:E,102:D}),e(U,[2,14],{20:[1,82]}),{15:83,16:84,58:g,84:m,99:C,101:E},{16:39,18:85,19:40,58:g,84:m,99:C,101:E,102:D},e(he,[2,118]),e(he,[2,119]),e(he,[2,120]),e(he,[2,121]),e([1,8,9,12,13,20,22,39,41,44,66,67,68,69,70,71,72,77,79],[2,122]),e(Ie,[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,18:21,38:22,43:23,16:39,19:40,5:86,33:r,35:u,37:l,42:i,46:p,47:f,49:b,50:F,52:S,54:ye,55:Te,58:g,60:Fe,61:De,62:_e,63:Be,73:Se,74:ve,76:Ne,80:Le,81:xe,84:m,99:C,101:E,102:D}),{5:87,10:5,16:39,18:21,19:40,21:7,23:8,24:9,25:10,26:11,27:12,28:13,29:14,30:15,31:16,32:17,33:r,35:u,37:l,38:22,42:i,43:23,46:p,47:f,49:b,50:F,52:S,54:ye,55:Te,58:g,60:Fe,61:De,62:_e,63:Be,73:Se,74:ve,76:Ne,80:Le,81:xe,84:m,99:C,101:E,102:D},e(h,[2,19]),e(h,[2,30]),e(h,[2,31]),{13:[1,89],16:39,18:88,19:40,58:g,84:m,99:C,101:E,102:D},{51:90,64:56,65:57,66:ae,67:ne,68:ue,69:le,70:oe,71:Oe,72:we},e(h,[2,49]),{65:91,71:Oe,72:we},e(pe,[2,68],{64:92,66:ae,67:ne,68:ue,69:le,70:oe}),e(W,[2,69]),e(W,[2,70]),e(W,[2,71]),e(W,[2,72]),e(W,[2,73]),e(qe,[2,74]),e(qe,[2,75]),{8:[1,94],24:95,40:93,43:23,46:p},{16:96,58:g,84:m,99:C,101:E},{45:97,49:Ve},{48:[1,99]},{13:[1,100]},{13:[1,101]},{77:[1,102],79:[1,103]},{22:j,57:104,58:X,80:H,82:105,83:106,84:q,85:J,86:Z,87:$,88:ee,89:te},{58:[1,116]},{13:He,53:117},e(h,[2,57]),e(h,[2,123]),{22:j,57:118,58:X,59:[1,119],80:H,82:105,83:106,84:q,85:J,86:Z,87:$,88:ee,89:te},e(Je,[2,59]),{16:39,18:120,19:40,58:g,84:m,99:C,101:E,102:D},e(U,[2,15]),e(U,[2,16]),e(U,[2,17]),{39:[2,35]},{15:122,16:84,17:[1,121],39:[2,9],58:g,84:m,99:C,101:E},e(Pe,[2,43],{11:123,12:[1,124]}),e(Ie,[2,7]),{9:[1,125]},e(de,[2,52]),{16:39,18:126,19:40,58:g,84:m,99:C,101:E,102:D},{13:[1,128],16:39,18:127,19:40,58:g,84:m,99:C,101:E,102:D},e(pe,[2,67],{64:129,66:ae,67:ne,68:ue,69:le,70:oe}),e(pe,[2,66]),{41:[1,130]},{24:95,40:131,43:23,46:p},{8:[1,132],41:[2,36]},e(ce,[2,40],{39:[1,133]}),{41:[1,134]},{41:[2,46],45:135,49:Ve},{16:39,18:136,19:40,58:g,84:m,99:C,101:E,102:D},e(h,[2,76],{13:[1,137]}),e(h,[2,78],{13:[1,139],75:[1,138]}),e(h,[2,82],{13:[1,140],78:[1,141]}),{13:[1,142]},e(h,[2,90],{59:Ze}),e($e,[2,92],{83:144,22:j,58:X,80:H,84:q,85:J,86:Z,87:$,88:ee,89:te}),e(N,[2,94]),e(N,[2,96]),e(N,[2,97]),e(N,[2,98]),e(N,[2,99]),e(N,[2,100]),e(N,[2,101]),e(N,[2,102]),e(N,[2,103]),e(N,[2,104]),e(h,[2,91]),e(h,[2,56]),e(h,[2,58],{59:Ze}),{58:[1,145]},e(U,[2,13]),{15:146,16:84,58:g,84:m,99:C,101:E},{39:[2,11]},e(Pe,[2,44]),{13:[1,147]},{1:[2,4]},e(de,[2,54]),e(de,[2,53]),{16:39,18:148,19:40,58:g,84:m,99:C,101:E,102:D},e(pe,[2,65]),e(h,[2,33]),{41:[1,149]},{24:95,40:150,41:[2,37],43:23,46:p},{45:151,49:Ve},e(ce,[2,41]),{41:[2,47]},e(h,[2,45]),e(h,[2,77]),e(h,[2,79]),e(h,[2,80],{75:[1,152]}),e(h,[2,83]),e(h,[2,84],{13:[1,153]}),e(h,[2,86],{13:[1,155],75:[1,154]}),{22:j,58:X,80:H,82:156,83:106,84:q,85:J,86:Z,87:$,88:ee,89:te},e(N,[2,95]),e(Je,[2,60]),{39:[2,10]},{14:[1,157]},e(de,[2,55]),e(h,[2,34]),{41:[2,38]},{41:[1,158]},e(h,[2,81]),e(h,[2,85]),e(h,[2,87]),e(h,[2,88],{75:[1,159]}),e($e,[2,93],{83:144,22:j,58:X,80:H,84:q,85:J,86:Z,87:$,88:ee,89:te}),e(Pe,[2,8]),e(ce,[2,42]),e(h,[2,89])],defaultActions:{2:[2,1],3:[2,2],4:[2,3],83:[2,35],122:[2,11],125:[2,4],135:[2,47],146:[2,10],150:[2,38]},parseError:n(function(o,c){if(c.recoverable)this.trace(o);else{var d=new Error(o);throw d.hash=c,d}},"parseError"),parse:n(function(o){var c=this,d=[0],a=[],A=[null],t=[],se=this.table,s="",Ae=0,et=0,tt=0,St=2,st=1,vt=t.slice.call(arguments,1),y=Object.create(this.lexer),V={yy:{}};for(var Me in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Me)&&(V.yy[Me]=this.yy[Me]);y.setInput(o,V.yy),V.yy.lexer=y,V.yy.parser=this,typeof y.yylloc>"u"&&(y.yylloc={});var Ge=y.yylloc;t.push(Ge);var Nt=y.options&&y.options.ranges;typeof V.yy.parseError=="function"?this.parseError=V.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Lt(B){d.length=d.length-2*B,A.length=A.length-B,t.length=t.length-B}n(Lt,"popStack");function rt(){var B;return B=a.pop()||y.lex()||st,typeof B!="number"&&(B instanceof Array&&(a=B,B=a.pop()),B=c.symbols_[B]||B),B}n(rt,"lex");for(var _,Ue,P,v,ls,ze,z={},ke,I,it,be;;){if(P=d[d.length-1],this.defaultActions[P]?v=this.defaultActions[P]:((_===null||typeof _>"u")&&(_=rt()),v=se[P]&&se[P][_]),typeof v>"u"||!v.length||!v[0]){var Ke="";be=[];for(ke in se[P])this.terminals_[ke]&&ke>St&&be.push("'"+this.terminals_[ke]+"'");y.showPosition?Ke="Parse error on line "+(Ae+1)+`: +`+y.showPosition()+` +Expecting `+be.join(", ")+", got '"+(this.terminals_[_]||_)+"'":Ke="Parse error on line "+(Ae+1)+": Unexpected "+(_==st?"end of input":"'"+(this.terminals_[_]||_)+"'"),this.parseError(Ke,{text:y.match,token:this.terminals_[_]||_,line:y.yylineno,loc:Ge,expected:be})}if(v[0]instanceof Array&&v.length>1)throw new Error("Parse Error: multiple actions possible at state: "+P+", token: "+_);switch(v[0]){case 1:d.push(_),A.push(y.yytext),t.push(y.yylloc),d.push(v[1]),_=null,Ue?(_=Ue,Ue=null):(et=y.yyleng,s=y.yytext,Ae=y.yylineno,Ge=y.yylloc,tt>0&&tt--);break;case 2:if(I=this.productions_[v[1]][1],z.$=A[A.length-I],z._$={first_line:t[t.length-(I||1)].first_line,last_line:t[t.length-1].last_line,first_column:t[t.length-(I||1)].first_column,last_column:t[t.length-1].last_column},Nt&&(z._$.range=[t[t.length-(I||1)].range[0],t[t.length-1].range[1]]),ze=this.performAction.apply(z,[s,et,Ae,V.yy,v[1],A,t].concat(vt)),typeof ze<"u")return ze;I&&(d=d.slice(0,-1*I*2),A=A.slice(0,-1*I),t=t.slice(0,-1*I)),d.push(this.productions_[v[1]][0]),A.push(z.$),t.push(z._$),it=se[d[d.length-2]][d[d.length-1]],d.push(it);break;case 3:return!0}}return!0},"parse")},Bt=function(){var O={EOF:1,parseError:n(function(c,d){if(this.yy.parser)this.yy.parser.parseError(c,d);else throw new Error(c)},"parseError"),setInput:n(function(o,c){return this.yy=c||this.yy||{},this._input=o,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:n(function(){var o=this._input[0];this.yytext+=o,this.yyleng++,this.offset++,this.match+=o,this.matched+=o;var c=o.match(/(?:\r\n?|\n).*/g);return c?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),o},"input"),unput:n(function(o){var c=o.length,d=o.split(/(?:\r\n?|\n)/g);this._input=o+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-c),this.offset-=c;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),d.length-1&&(this.yylineno-=d.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:d?(d.length===a.length?this.yylloc.first_column:0)+a[a.length-d.length].length-d[0].length:this.yylloc.first_column-c},this.options.ranges&&(this.yylloc.range=[A[0],A[0]+this.yyleng-c]),this.yyleng=this.yytext.length,this},"unput"),more:n(function(){return this._more=!0,this},"more"),reject:n(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:n(function(o){this.unput(this.match.slice(o))},"less"),pastInput:n(function(){var o=this.matched.substr(0,this.matched.length-this.match.length);return(o.length>20?"...":"")+o.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:n(function(){var o=this.match;return o.length<20&&(o+=this._input.substr(0,20-o.length)),(o.substr(0,20)+(o.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:n(function(){var o=this.pastInput(),c=new Array(o.length+1).join("-");return o+this.upcomingInput()+` +`+c+"^"},"showPosition"),test_match:n(function(o,c){var d,a,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))),a=o[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+o[0].length},this.yytext+=o[0],this.match+=o[0],this.matches=o,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(o[0].length),this.matched+=o[0],d=this.performAction.call(this,this.yy,this,c,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),d)return d;if(this._backtrack){for(var t in A)this[t]=A[t];return!1}return!1},"test_match"),next:n(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var o,c,d,a;this._more||(this.yytext="",this.match="");for(var A=this._currentRules(),t=0;tc[0].length)){if(c=d,a=t,this.options.backtrack_lexer){if(o=this.test_match(d,A[t]),o!==!1)return o;if(this._backtrack){c=!1;continue}else return!1}else if(!this.options.flex)break}return c?(o=this.test_match(c,A[a]),o!==!1?o:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:n(function(){var c=this.next();return c||this.lex()},"lex"),begin:n(function(c){this.conditionStack.push(c)},"begin"),popState:n(function(){var c=this.conditionStack.length-1;return c>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:n(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:n(function(c){return c=this.conditionStack.length-1-Math.abs(c||0),c>=0?this.conditionStack[c]:"INITIAL"},"topState"),pushState:n(function(c){this.begin(c)},"pushState"),stateStackSize:n(function(){return this.conditionStack.length},"stateStackSize"),options:{},performAction:n(function(c,d,a,A){var t=A;switch(a){case 0:return 60;case 1:return 61;case 2:return 62;case 3:return 63;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 77;case 22:this.popState();break;case 23:return 78;case 24:this.popState();break;case 25:return"STR";case 26:this.begin("string");break;case 27:return 80;case 28:return 55;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 81;case 50:return 73;case 51:return 74;case 52:return 76;case 53:return 52;case 54:return 54;case 55:return 47;case 56:return 48;case 57:return 79;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 75;case 65:return 75;case 66:return 75;case 67:return 75;case 68:return 67;case 69:return 67;case 70:return 69;case 71:return 69;case 72:return 68;case 73:return 66;case 74:return 70;case 75:return 71;case 76:return 72;case 77:return 22;case 78:return 44;case 79:return 99;case 80:return 17;case 81:return"PLUS";case 82:return 85;case 83:return 59;case 84:return 88;case 85:return 88;case 86:return 89;case 87:return"EQUALS";case 88:return"EQUALS";case 89:return 58;case 90:return 12;case 91:return 14;case 92:return"PUNCTUATION";case 93:return 84;case 94:return 101;case 95:return 87;case 96:return 87;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 O}();Re.lexer=Bt;function fe(){this.yy={}}return n(fe,"Parser"),fe.prototype=Re,Re.Parser=fe,new fe}();Ye.parser=Ye;var ds=Ye,gt=["#","+","~","-",""],mt=class{static{n(this,"ClassMember")}constructor(e,r){this.memberType=r,this.visibility="",this.classifier="",this.text="";let u=at(e,T());this.parseMember(u)}getDisplayDetails(){let e=this.visibility+R(this.id);this.memberType==="method"&&(e+=`(${R(this.parameters.trim())})`,this.returnType&&(e+=" : "+R(this.returnType))),e=e.trim();let r=this.parseClassifier();return{displayText:e,cssStyle:r}}parseMember(e){let r="";if(this.memberType==="method"){let i=/([#+~-])?(.+)\((.*)\)([\s$*])?(.*)([$*])?/.exec(e);if(i){let p=i[1]?i[1].trim():"";if(gt.includes(p)&&(this.visibility=p),this.id=i[2],this.parameters=i[3]?i[3].trim():"",r=i[4]?i[4].trim():"",this.returnType=i[5]?i[5].trim():"",r===""){let f=this.returnType.substring(this.returnType.length-1);/[$*]/.exec(f)&&(r=f,this.returnType=this.returnType.substring(0,this.returnType.length-1))}}}else{let l=e.length,i=e.substring(0,1),p=e.substring(l-1);gt.includes(i)&&(this.visibility=i),/[$*]/.exec(p)&&(r=p),this.id=e.substring(this.visibility===""?0:1,r===""?l:l-1)}this.classifier=r,this.id=this.id.startsWith(" ")?" "+this.id.trim():this.id.trim();let u=`${this.visibility?"\\"+this.visibility:""}${R(this.id)}${this.memberType==="method"?`(${R(this.parameters)})${this.returnType?" : "+R(this.returnType):""}`:""}`;this.text=u.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""}}},Ce="classId-",Ee=[],k=new Map,Ct=new Map,re=[],Q=[],Et=0,L=new Map,Qe=0,ie=[],M=n(e=>x.sanitizeText(e,T()),"sanitizeText"),G=n(function(e){let r=x.sanitizeText(e,T()),u="",l=r;if(r.indexOf("~")>0){let i=r.split("~");l=M(i[0]),u=M(i[1])}return{className:l,type:u}},"splitClassNameAndType"),xt=n(function(e,r){let u=x.sanitizeText(e,T());r&&(r=M(r));let{className:l}=G(u);k.get(l).label=r,k.get(l).text=`${r}${k.get(l).type?`<${k.get(l).type}>`:""}`},"setClassLabel"),Y=n(function(e){let r=x.sanitizeText(e,T()),{className:u,type:l}=G(r);if(k.has(u))return;let i=x.sanitizeText(u,T());k.set(i,{id:i,type:l,label:i,text:`${i}${l?`<${l}>`:""}`,shape:"classBox",cssClasses:"default",methods:[],members:[],annotations:[],styles:[],domId:Ce+i+"-"+Et}),Et++},"addClass"),yt=n(function(e,r){let u={id:`interface${Q.length}`,label:e,classId:r};Q.push(u)},"addInterface"),Tt=n(function(e){let r=x.sanitizeText(e,T());if(k.has(r))return k.get(r).domId;throw new Error("Class not found: "+r)},"lookUpDomId"),It=n(function(){Ee=[],k=new Map,re=[],Q=[],ie=[],ie.push(Dt),L=new Map,Qe=0,Xe="TB",nt()},"clear"),Ot=n(function(e){return k.get(e)},"getClass"),wt=n(function(){return k},"getClasses"),Vt=n(function(){return Ee},"getRelations"),Pt=n(function(){return re},"getNotes"),Rt=n(function(e){ge.debug("Adding relation: "+JSON.stringify(e));let r=[w.LOLLIPOP,w.AGGREGATION,w.COMPOSITION,w.DEPENDENCY,w.EXTENSION];e.relation.type1===w.LOLLIPOP&&!r.includes(e.relation.type2)?(Y(e.id2),yt(e.id1,e.id2),e.id1=`interface${Q.length-1}`):e.relation.type2===w.LOLLIPOP&&!r.includes(e.relation.type1)?(Y(e.id1),yt(e.id2,e.id1),e.id2=`interface${Q.length-1}`):(Y(e.id1),Y(e.id2)),e.id1=G(e.id1).className,e.id2=G(e.id2).className,e.relationTitle1=x.sanitizeText(e.relationTitle1.trim(),T()),e.relationTitle2=x.sanitizeText(e.relationTitle2.trim(),T()),Ee.push(e)},"addRelation"),Mt=n(function(e,r){let u=G(e).className;k.get(u).annotations.push(r)},"addAnnotation"),Ft=n(function(e,r){Y(e);let u=G(e).className,l=k.get(u);if(typeof r=="string"){let i=r.trim();i.startsWith("<<")&&i.endsWith(">>")?l.annotations.push(M(i.substring(2,i.length-2))):i.indexOf(")")>0?l.methods.push(new mt(i,"method")):i&&l.members.push(new mt(i,"attribute"))}},"addMember"),Gt=n(function(e,r){Array.isArray(r)&&(r.reverse(),r.forEach(u=>Ft(e,u)))},"addMembers"),Ut=n(function(e,r){let u={id:`note${re.length}`,class:r,text:e};re.push(u)},"addNote"),zt=n(function(e){return e.startsWith(":")&&(e=e.substring(1)),M(e.trim())},"cleanupLabel"),je=n(function(e,r){e.split(",").forEach(function(u){let l=u;/\d/.exec(u[0])&&(l=Ce+l);let i=k.get(l);i&&(i.cssClasses+=" "+r)})},"setCssClass"),Kt=n(function(e,r){for(let u of e){let l=Ct.get(u);l===void 0&&(l={id:u,styles:[],textStyles:[]},Ct.set(u,l)),r&&r.forEach(function(i){if(/color/.exec(i)){let p=i.replace("fill","bgFill");l.textStyles.push(p)}l.styles.push(i)}),k.forEach(i=>{i.cssClasses.includes(u)&&i.styles.push(...r.flatMap(p=>p.split(",")))})}},"defineClass"),Yt=n(function(e,r){e.split(",").forEach(function(u){r!==void 0&&(k.get(u).tooltip=M(r))})},"setTooltip"),Qt=n(function(e,r){return r&&L.has(r)?L.get(r).classes.get(e).tooltip:k.get(e).tooltip},"getTooltip"),Wt=n(function(e,r,u){let l=T();e.split(",").forEach(function(i){let p=i;/\d/.exec(i[0])&&(p=Ce+p);let f=k.get(p);f&&(f.link=me.formatUrl(r,l),l.securityLevel==="sandbox"?f.linkTarget="_top":typeof u=="string"?f.linkTarget=M(u):f.linkTarget="_blank")}),je(e,"clickable")},"setLink"),jt=n(function(e,r,u){e.split(",").forEach(function(l){Xt(l,r,u),k.get(l).haveCallback=!0}),je(e,"clickable")},"setClickEvent"),Xt=n(function(e,r,u){let l=x.sanitizeText(e,T());if(T().securityLevel!=="loose"||r===void 0)return;let p=l;if(k.has(p)){let f=Tt(p),b=[];if(typeof u=="string"){b=u.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);for(let F=0;F")),i.classed("hover",!0)}).on("mouseout",function(){r.transition().duration(500).style("opacity",0),K(this).classed("hover",!1)})},"setupToolTips");ie.push(Dt);var Xe="TB",_t=n(()=>Xe,"getDirection"),Jt=n(e=>{Xe=e},"setDirection"),Zt=n(function(e){L.has(e)||(L.set(e,{id:e,classes:new Map,children:{},domId:Ce+e+"-"+Qe}),Qe++)},"addNamespace"),$t=n(function(e){return L.get(e)},"getNamespace"),es=n(function(){return L},"getNamespaces"),ts=n(function(e,r){if(L.has(e))for(let u of r){let{className:l}=G(u);k.get(l).parent=e,L.get(e).classes.set(l,k.get(l))}},"addClassesToNamespace"),ss=n(function(e,r){let u=k.get(e);if(!(!r||!u))for(let l of r)l.includes(",")?u.styles.push(...l.split(",")):u.styles.push(l)},"setCssStyle");function We(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}n(We,"getArrowMarker");var rs=n(()=>{let e=[],r=[],u=T();for(let i of L.keys()){let p=L.get(i);if(p){let f={id:p.id,label:p.id,isGroup:!0,padding:u.class.padding??16,shape:"rect",cssStyles:["fill: none","stroke: black"],look:u.look};e.push(f)}}for(let i of k.keys()){let p=k.get(i);if(p){let f=p;f.parentId=p.parent,f.look=u.look,e.push(f)}}let l=0;for(let i of re){l++;let p={id:i.id,label:i.text,isGroup:!1,shape:"note",padding:u.class.padding??6,cssStyles:["text-align: left","white-space: nowrap",`fill: ${u.themeVariables.noteBkgColor}`,`stroke: ${u.themeVariables.noteBorderColor}`],look:u.look};e.push(p);let f=k.get(i.class)?.id??"";if(f){let b={id:`edgeNote${l}`,start:i.id,end:f,type:"normal",thickness:"normal",classes:"relation",arrowTypeStart:"none",arrowTypeEnd:"none",arrowheadStyle:"",labelStyle:[""],style:["fill: none"],pattern:"dotted",look:u.look};r.push(b)}}for(let i of Q){let p={id:i.id,label:i.label,isGroup:!1,shape:"rect",cssStyles:["opacity: 0;"],look:u.look};e.push(p)}l=0;for(let i of Ee){l++;let p={id:dt(i.id1,i.id2,{prefix:"id",counter:l}),start:i.id1,end:i.id2,type:"normal",label:i.title,labelpos:"c",thickness:"normal",classes:"relation",arrowTypeStart:We(i.relation.type1),arrowTypeEnd:We(i.relation.type2),startLabelRight:i.relationTitle1==="none"?"":i.relationTitle1,endLabelLeft:i.relationTitle2==="none"?"":i.relationTitle2,arrowheadStyle:"",labelStyle:["display: inline-block"],style:i.style||"",pattern:i.relation.lineType==1?"dashed":"solid",look:u.look};r.push(p)}return{nodes:e,edges:r,other:{},config:u,direction:_t()}},"getData"),As={setAccTitle:ut,getAccTitle:lt,getAccDescription:ct,setAccDescription:ot,getConfig:n(()=>T().class,"getConfig"),addClass:Y,bindFunctions:Ht,clear:It,getClass:Ot,getClasses:wt,getNotes:Pt,addAnnotation:Mt,addNote:Ut,getRelations:Vt,addRelation:Rt,getDirection:_t,setDirection:Jt,addMember:Ft,addMembers:Gt,cleanupLabel:zt,lineType:qt,relationType:w,setClickEvent:jt,setCssClass:je,defineClass:Kt,setLink:Wt,getTooltip:Qt,setTooltip:Yt,lookUpDomId:Tt,setDiagramTitle:ht,getDiagramTitle:pt,setClassLabel:xt,addNamespace:Zt,addClassesToNamespace:ts,getNamespace:$t,getNamespaces:es,setCssStyle:ss,getData:rs},is=n(e=>`g.classGroup text { + fill: ${e.nodeBorder||e.classText}; + stroke: none; + font-family: ${e.fontFamily}; + font-size: 10px; + + .title { + font-weight: bolder; + } + +} + +.nodeLabel, .edgeLabel { + color: ${e.classText}; +} +.edgeLabel .label rect { + fill: ${e.mainBkg}; +} +.label text { + fill: ${e.classText}; +} + +.labelBkg { + background: ${e.mainBkg}; +} +.edgeLabel .label span { + background: ${e.mainBkg}; +} + +.classTitle { + font-weight: bolder; +} +.node rect, + .node circle, + .node ellipse, + .node polygon, + .node path { + fill: ${e.mainBkg}; + stroke: ${e.nodeBorder}; + stroke-width: 1px; + } + + +.divider { + stroke: ${e.nodeBorder}; + stroke-width: 1; +} + +g.clickable { + cursor: pointer; +} + +g.classGroup rect { + fill: ${e.mainBkg}; + stroke: ${e.nodeBorder}; +} + +g.classGroup line { + stroke: ${e.nodeBorder}; + stroke-width: 1; +} + +.classLabel .box { + stroke: none; + stroke-width: 0; + fill: ${e.mainBkg}; + opacity: 0.5; +} + +.classLabel .label { + fill: ${e.nodeBorder}; + font-size: 10px; +} + +.relation { + stroke: ${e.lineColor}; + stroke-width: 1; + fill: none; +} + +.dashed-line{ + stroke-dasharray: 3; +} + +.dotted-line{ + stroke-dasharray: 1 2; +} + +#compositionStart, .composition { + fill: ${e.lineColor} !important; + stroke: ${e.lineColor} !important; + stroke-width: 1; +} + +#compositionEnd, .composition { + fill: ${e.lineColor} !important; + stroke: ${e.lineColor} !important; + stroke-width: 1; +} + +#dependencyStart, .dependency { + fill: ${e.lineColor} !important; + stroke: ${e.lineColor} !important; + stroke-width: 1; +} + +#dependencyStart, .dependency { + fill: ${e.lineColor} !important; + stroke: ${e.lineColor} !important; + stroke-width: 1; +} + +#extensionStart, .extension { + fill: transparent !important; + stroke: ${e.lineColor} !important; + stroke-width: 1; +} + +#extensionEnd, .extension { + fill: transparent !important; + stroke: ${e.lineColor} !important; + stroke-width: 1; +} + +#aggregationStart, .aggregation { + fill: transparent !important; + stroke: ${e.lineColor} !important; + stroke-width: 1; +} + +#aggregationEnd, .aggregation { + fill: transparent !important; + stroke: ${e.lineColor} !important; + stroke-width: 1; +} + +#lollipopStart, .lollipop { + fill: ${e.mainBkg} !important; + stroke: ${e.lineColor} !important; + stroke-width: 1; +} + +#lollipopEnd, .lollipop { + fill: ${e.mainBkg} !important; + stroke: ${e.lineColor} !important; + stroke-width: 1; +} + +.edgeTerminals { + font-size: 11px; + line-height: initial; +} + +.classTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${e.textColor}; +} +`,"getStyles"),ks=is,as=n((e,r="TB")=>{if(!e.doc)return r;let u=r;for(let l of e.doc)l.stmt==="dir"&&(u=l.value);return u},"getDir"),ns=n(function(e,r){return r.db.getClasses()},"getClasses"),us=n(async function(e,r,u,l){ge.info("REF0:"),ge.info("Drawing class diagram (v3)",r);let{securityLevel:i,state:p,layout:f}=T(),b=l.db.getData(),F=kt(r,i);b.type=l.type,b.layoutAlgorithm=At(f),b.nodeSpacing=p?.nodeSpacing||50,b.rankSpacing=p?.rankSpacing||50,b.markers=["aggregation","extension","composition","dependency","lollipop"],b.diagramId=r,await ft(b,F);let S=8;me.insertTitle(F,"classDiagramTitleText",p?.titleTopMargin??25,l.db.getDiagramTitle()),bt(F,S,"classDiagram",p?.useMaxWidth??!0)},"draw"),bs={getClasses:ns,draw:us,getDir:as};export{ds as a,As as b,ks as c,bs as d}; +//# sourceMappingURL=chunk-54U54PUP.min.js.map diff --git a/docs/_site/public/chunk-54U54PUP.min.js.map b/docs/_site/public/chunk-54U54PUP.min.js.map new file mode 100644 index 0000000..9991aec --- /dev/null +++ b/docs/_site/public/chunk-54U54PUP.min.js.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": ["../../node_modules/mermaid/dist/chunks/mermaid.core/chunk-T2TOU4HS.mjs"], + "sourcesContent": ["import {\n getDiagramElement,\n setupViewPortForSVG\n} from \"./chunk-5HRBRIJM.mjs\";\nimport {\n getRegisteredLayoutAlgorithm,\n render\n} from \"./chunk-BO7VGL7K.mjs\";\nimport {\n getEdgeId,\n utils_default\n} from \"./chunk-7DKRZKHE.mjs\";\nimport {\n __name,\n clear,\n common_default,\n getAccDescription,\n getAccTitle,\n getConfig2 as getConfig,\n getDiagramTitle,\n log,\n parseGenericTypes,\n sanitizeText,\n setAccDescription,\n setAccTitle,\n setDiagramTitle\n} from \"./chunk-6DBFFHIP.mjs\";\n\n// src/diagrams/class/parser/classDiagram.jison\nvar parser = function() {\n var o = /* @__PURE__ */ __name(function(k, v, o2, l) {\n for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v) ;\n return o2;\n }, \"o\"), $V0 = [1, 18], $V1 = [1, 19], $V2 = [1, 20], $V3 = [1, 41], $V4 = [1, 42], $V5 = [1, 26], $V6 = [1, 24], $V7 = [1, 25], $V8 = [1, 32], $V9 = [1, 33], $Va = [1, 34], $Vb = [1, 45], $Vc = [1, 35], $Vd = [1, 36], $Ve = [1, 37], $Vf = [1, 38], $Vg = [1, 27], $Vh = [1, 28], $Vi = [1, 29], $Vj = [1, 30], $Vk = [1, 31], $Vl = [1, 44], $Vm = [1, 46], $Vn = [1, 43], $Vo = [1, 47], $Vp = [1, 9], $Vq = [1, 8, 9], $Vr = [1, 58], $Vs = [1, 59], $Vt = [1, 60], $Vu = [1, 61], $Vv = [1, 62], $Vw = [1, 63], $Vx = [1, 64], $Vy = [1, 8, 9, 41], $Vz = [1, 76], $VA = [1, 8, 9, 12, 13, 22, 39, 41, 44, 66, 67, 68, 69, 70, 71, 72, 77, 79], $VB = [1, 8, 9, 12, 13, 17, 20, 22, 39, 41, 44, 48, 58, 66, 67, 68, 69, 70, 71, 72, 77, 79, 84, 99, 101, 102], $VC = [13, 58, 84, 99, 101, 102], $VD = [13, 58, 71, 72, 84, 99, 101, 102], $VE = [13, 58, 66, 67, 68, 69, 70, 84, 99, 101, 102], $VF = [1, 98], $VG = [1, 115], $VH = [1, 107], $VI = [1, 113], $VJ = [1, 108], $VK = [1, 109], $VL = [1, 110], $VM = [1, 111], $VN = [1, 112], $VO = [1, 114], $VP = [22, 58, 59, 80, 84, 85, 86, 87, 88, 89], $VQ = [1, 8, 9, 39, 41, 44], $VR = [1, 8, 9, 22], $VS = [1, 143], $VT = [1, 8, 9, 59], $VU = [1, 8, 9, 22, 58, 59, 80, 84, 85, 86, 87, 88, 89];\n var parser2 = {\n trace: /* @__PURE__ */ __name(function trace() {\n }, \"trace\"),\n yy: {},\n 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, \"DOT\": 17, \"className\": 18, \"classLiteralName\": 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, \"ANNOTATION_START\": 47, \"ANNOTATION_END\": 48, \"MEMBER\": 49, \"SEPARATOR\": 50, \"relation\": 51, \"NOTE_FOR\": 52, \"noteText\": 53, \"NOTE\": 54, \"CLASSDEF\": 55, \"classList\": 56, \"stylesOpt\": 57, \"ALPHA\": 58, \"COMMA\": 59, \"direction_tb\": 60, \"direction_bt\": 61, \"direction_rl\": 62, \"direction_lr\": 63, \"relationType\": 64, \"lineType\": 65, \"AGGREGATION\": 66, \"EXTENSION\": 67, \"COMPOSITION\": 68, \"DEPENDENCY\": 69, \"LOLLIPOP\": 70, \"LINE\": 71, \"DOTTED_LINE\": 72, \"CALLBACK\": 73, \"LINK\": 74, \"LINK_TARGET\": 75, \"CLICK\": 76, \"CALLBACK_NAME\": 77, \"CALLBACK_ARGS\": 78, \"HREF\": 79, \"STYLE\": 80, \"CSSCLASS\": 81, \"style\": 82, \"styleComponent\": 83, \"NUM\": 84, \"COLON\": 85, \"UNIT\": 86, \"SPACE\": 87, \"BRKT\": 88, \"PCT\": 89, \"commentToken\": 90, \"textToken\": 91, \"graphCodeTokens\": 92, \"textNoTagsToken\": 93, \"TAGSTART\": 94, \"TAGEND\": 95, \"==\": 96, \"--\": 97, \"DEFAULT\": 98, \"MINUS\": 99, \"keywords\": 100, \"UNICODE_TEXT\": 101, \"BQUOTE_STR\": 102, \"$accept\": 0, \"$end\": 1 },\n terminals_: { 2: \"error\", 7: \"CLASS_DIAGRAM\", 8: \"NEWLINE\", 9: \"EOF\", 12: \"SQS\", 13: \"STR\", 14: \"SQE\", 17: \"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\", 47: \"ANNOTATION_START\", 48: \"ANNOTATION_END\", 49: \"MEMBER\", 50: \"SEPARATOR\", 52: \"NOTE_FOR\", 54: \"NOTE\", 55: \"CLASSDEF\", 58: \"ALPHA\", 59: \"COMMA\", 60: \"direction_tb\", 61: \"direction_bt\", 62: \"direction_rl\", 63: \"direction_lr\", 66: \"AGGREGATION\", 67: \"EXTENSION\", 68: \"COMPOSITION\", 69: \"DEPENDENCY\", 70: \"LOLLIPOP\", 71: \"LINE\", 72: \"DOTTED_LINE\", 73: \"CALLBACK\", 74: \"LINK\", 75: \"LINK_TARGET\", 76: \"CLICK\", 77: \"CALLBACK_NAME\", 78: \"CALLBACK_ARGS\", 79: \"HREF\", 80: \"STYLE\", 81: \"CSSCLASS\", 84: \"NUM\", 85: \"COLON\", 86: \"UNIT\", 87: \"SPACE\", 88: \"BRKT\", 89: \"PCT\", 92: \"graphCodeTokens\", 94: \"TAGSTART\", 95: \"TAGEND\", 96: \"==\", 97: \"--\", 98: \"DEFAULT\", 99: \"MINUS\", 100: \"keywords\", 101: \"UNICODE_TEXT\", 102: \"BQUOTE_STR\" },\n productions_: [0, [3, 1], [3, 1], [4, 1], [6, 4], [5, 1], [5, 2], [5, 3], [11, 3], [15, 1], [15, 3], [15, 2], [18, 1], [18, 3], [18, 1], [18, 2], [18, 2], [18, 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, 6], [43, 2], [43, 3], [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], [56, 1], [56, 3], [32, 1], [32, 1], [32, 1], [32, 1], [51, 3], [51, 2], [51, 2], [51, 1], [64, 1], [64, 1], [64, 1], [64, 1], [64, 1], [65, 1], [65, 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], [57, 1], [57, 3], [82, 1], [82, 2], [83, 1], [83, 1], [83, 1], [83, 1], [83, 1], [83, 1], [83, 1], [83, 1], [83, 1], [90, 1], [90, 1], [91, 1], [91, 1], [91, 1], [91, 1], [91, 1], [91, 1], [91, 1], [93, 1], [93, 1], [93, 1], [93, 1], [16, 1], [16, 1], [16, 1], [16, 1], [19, 1], [53, 1]],\n performAction: /* @__PURE__ */ __name(function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {\n var $0 = $$.length - 1;\n switch (yystate) {\n case 8:\n this.$ = $$[$0 - 1];\n break;\n case 9:\n case 12:\n case 14:\n this.$ = $$[$0];\n break;\n case 10:\n case 13:\n this.$ = $$[$0 - 2] + \".\" + $$[$0];\n break;\n case 11:\n case 15:\n this.$ = $$[$0 - 1] + $$[$0];\n break;\n case 16:\n case 17:\n this.$ = $$[$0 - 1] + \"~\" + $$[$0] + \"~\";\n break;\n case 18:\n yy.addRelation($$[$0]);\n break;\n case 19:\n $$[$0 - 1].title = yy.cleanupLabel($$[$0]);\n yy.addRelation($$[$0 - 1]);\n break;\n case 30:\n this.$ = $$[$0].trim();\n yy.setAccTitle(this.$);\n break;\n case 31:\n case 32:\n this.$ = $$[$0].trim();\n yy.setAccDescription(this.$);\n break;\n case 33:\n yy.addClassesToNamespace($$[$0 - 3], $$[$0 - 1]);\n break;\n case 34:\n yy.addClassesToNamespace($$[$0 - 4], $$[$0 - 1]);\n break;\n case 35:\n this.$ = $$[$0];\n yy.addNamespace($$[$0]);\n break;\n case 36:\n this.$ = [$$[$0]];\n break;\n case 37:\n this.$ = [$$[$0 - 1]];\n break;\n case 38:\n $$[$0].unshift($$[$0 - 2]);\n this.$ = $$[$0];\n break;\n case 40:\n yy.setCssClass($$[$0 - 2], $$[$0]);\n break;\n case 41:\n yy.addMembers($$[$0 - 3], $$[$0 - 1]);\n break;\n case 42:\n yy.setCssClass($$[$0 - 5], $$[$0 - 3]);\n yy.addMembers($$[$0 - 5], $$[$0 - 1]);\n break;\n case 43:\n this.$ = $$[$0];\n yy.addClass($$[$0]);\n break;\n case 44:\n this.$ = $$[$0 - 1];\n yy.addClass($$[$0 - 1]);\n yy.setClassLabel($$[$0 - 1], $$[$0]);\n break;\n case 45:\n yy.addAnnotation($$[$0], $$[$0 - 2]);\n break;\n case 46:\n case 59:\n this.$ = [$$[$0]];\n break;\n case 47:\n $$[$0].push($$[$0 - 1]);\n this.$ = $$[$0];\n break;\n case 48:\n break;\n case 49:\n yy.addMember($$[$0 - 1], yy.cleanupLabel($$[$0]));\n break;\n case 50:\n break;\n case 51:\n break;\n case 52:\n this.$ = { \"id1\": $$[$0 - 2], \"id2\": $$[$0], relation: $$[$0 - 1], relationTitle1: \"none\", relationTitle2: \"none\" };\n break;\n case 53:\n this.$ = { id1: $$[$0 - 3], id2: $$[$0], relation: $$[$0 - 1], relationTitle1: $$[$0 - 2], relationTitle2: \"none\" };\n break;\n case 54:\n this.$ = { id1: $$[$0 - 3], id2: $$[$0], relation: $$[$0 - 2], relationTitle1: \"none\", relationTitle2: $$[$0 - 1] };\n break;\n case 55:\n this.$ = { id1: $$[$0 - 4], id2: $$[$0], relation: $$[$0 - 2], relationTitle1: $$[$0 - 3], relationTitle2: $$[$0 - 1] };\n break;\n case 56:\n yy.addNote($$[$0], $$[$0 - 1]);\n break;\n case 57:\n yy.addNote($$[$0]);\n break;\n case 58:\n this.$ = $$[$0 - 2];\n yy.defineClass($$[$0 - 1], $$[$0]);\n break;\n case 60:\n this.$ = $$[$0 - 2].concat([$$[$0]]);\n break;\n case 61:\n yy.setDirection(\"TB\");\n break;\n case 62:\n yy.setDirection(\"BT\");\n break;\n case 63:\n yy.setDirection(\"RL\");\n break;\n case 64:\n yy.setDirection(\"LR\");\n break;\n case 65:\n this.$ = { type1: $$[$0 - 2], type2: $$[$0], lineType: $$[$0 - 1] };\n break;\n case 66:\n this.$ = { type1: \"none\", type2: $$[$0], lineType: $$[$0 - 1] };\n break;\n case 67:\n this.$ = { type1: $$[$0 - 1], type2: \"none\", lineType: $$[$0] };\n break;\n case 68:\n this.$ = { type1: \"none\", type2: \"none\", lineType: $$[$0] };\n break;\n case 69:\n this.$ = yy.relationType.AGGREGATION;\n break;\n case 70:\n this.$ = yy.relationType.EXTENSION;\n break;\n case 71:\n this.$ = yy.relationType.COMPOSITION;\n break;\n case 72:\n this.$ = yy.relationType.DEPENDENCY;\n break;\n case 73:\n this.$ = yy.relationType.LOLLIPOP;\n break;\n case 74:\n this.$ = yy.lineType.LINE;\n break;\n case 75:\n this.$ = yy.lineType.DOTTED_LINE;\n break;\n case 76:\n case 82:\n this.$ = $$[$0 - 2];\n yy.setClickEvent($$[$0 - 1], $$[$0]);\n break;\n case 77:\n case 83:\n this.$ = $$[$0 - 3];\n yy.setClickEvent($$[$0 - 2], $$[$0 - 1]);\n yy.setTooltip($$[$0 - 2], $$[$0]);\n break;\n case 78:\n this.$ = $$[$0 - 2];\n yy.setLink($$[$0 - 1], $$[$0]);\n break;\n case 79:\n this.$ = $$[$0 - 3];\n yy.setLink($$[$0 - 2], $$[$0 - 1], $$[$0]);\n break;\n case 80:\n this.$ = $$[$0 - 3];\n yy.setLink($$[$0 - 2], $$[$0 - 1]);\n yy.setTooltip($$[$0 - 2], $$[$0]);\n break;\n case 81:\n this.$ = $$[$0 - 4];\n yy.setLink($$[$0 - 3], $$[$0 - 2], $$[$0]);\n yy.setTooltip($$[$0 - 3], $$[$0 - 1]);\n break;\n case 84:\n this.$ = $$[$0 - 3];\n yy.setClickEvent($$[$0 - 2], $$[$0 - 1], $$[$0]);\n break;\n case 85:\n this.$ = $$[$0 - 4];\n yy.setClickEvent($$[$0 - 3], $$[$0 - 2], $$[$0 - 1]);\n yy.setTooltip($$[$0 - 3], $$[$0]);\n break;\n case 86:\n this.$ = $$[$0 - 3];\n yy.setLink($$[$0 - 2], $$[$0]);\n break;\n case 87:\n this.$ = $$[$0 - 4];\n yy.setLink($$[$0 - 3], $$[$0 - 1], $$[$0]);\n break;\n case 88:\n this.$ = $$[$0 - 4];\n yy.setLink($$[$0 - 3], $$[$0 - 1]);\n yy.setTooltip($$[$0 - 3], $$[$0]);\n break;\n case 89:\n this.$ = $$[$0 - 5];\n yy.setLink($$[$0 - 4], $$[$0 - 2], $$[$0]);\n yy.setTooltip($$[$0 - 4], $$[$0 - 1]);\n break;\n case 90:\n this.$ = $$[$0 - 2];\n yy.setCssStyle($$[$0 - 1], $$[$0]);\n break;\n case 91:\n yy.setCssClass($$[$0 - 1], $$[$0]);\n break;\n case 92:\n this.$ = [$$[$0]];\n break;\n case 93:\n $$[$0 - 2].push($$[$0]);\n this.$ = $$[$0 - 2];\n break;\n case 95:\n this.$ = $$[$0 - 1] + $$[$0];\n break;\n }\n }, \"anonymous\"),\n table: [{ 3: 1, 4: 2, 5: 3, 6: 4, 7: [1, 6], 10: 5, 16: 39, 18: 21, 19: 40, 21: 7, 23: 8, 24: 9, 25: 10, 26: 11, 27: 12, 28: 13, 29: 14, 30: 15, 31: 16, 32: 17, 33: $V0, 35: $V1, 37: $V2, 38: 22, 42: $V3, 43: 23, 46: $V4, 47: $V5, 49: $V6, 50: $V7, 52: $V8, 54: $V9, 55: $Va, 58: $Vb, 60: $Vc, 61: $Vd, 62: $Ve, 63: $Vf, 73: $Vg, 74: $Vh, 76: $Vi, 80: $Vj, 81: $Vk, 84: $Vl, 99: $Vm, 101: $Vn, 102: $Vo }, { 1: [3] }, { 1: [2, 1] }, { 1: [2, 2] }, { 1: [2, 3] }, o($Vp, [2, 5], { 8: [1, 48] }), { 8: [1, 49] }, o($Vq, [2, 18], { 22: [1, 50] }), o($Vq, [2, 20]), o($Vq, [2, 21]), o($Vq, [2, 22]), o($Vq, [2, 23]), o($Vq, [2, 24]), o($Vq, [2, 25]), o($Vq, [2, 26]), o($Vq, [2, 27]), o($Vq, [2, 28]), o($Vq, [2, 29]), { 34: [1, 51] }, { 36: [1, 52] }, o($Vq, [2, 32]), o($Vq, [2, 48], { 51: 53, 64: 56, 65: 57, 13: [1, 54], 22: [1, 55], 66: $Vr, 67: $Vs, 68: $Vt, 69: $Vu, 70: $Vv, 71: $Vw, 72: $Vx }), { 39: [1, 65] }, o($Vy, [2, 39], { 39: [1, 67], 44: [1, 66] }), o($Vq, [2, 50]), o($Vq, [2, 51]), { 16: 68, 58: $Vb, 84: $Vl, 99: $Vm, 101: $Vn }, { 16: 39, 18: 69, 19: 40, 58: $Vb, 84: $Vl, 99: $Vm, 101: $Vn, 102: $Vo }, { 16: 39, 18: 70, 19: 40, 58: $Vb, 84: $Vl, 99: $Vm, 101: $Vn, 102: $Vo }, { 16: 39, 18: 71, 19: 40, 58: $Vb, 84: $Vl, 99: $Vm, 101: $Vn, 102: $Vo }, { 58: [1, 72] }, { 13: [1, 73] }, { 16: 39, 18: 74, 19: 40, 58: $Vb, 84: $Vl, 99: $Vm, 101: $Vn, 102: $Vo }, { 13: $Vz, 53: 75 }, { 56: 77, 58: [1, 78] }, o($Vq, [2, 61]), o($Vq, [2, 62]), o($Vq, [2, 63]), o($Vq, [2, 64]), o($VA, [2, 12], { 16: 39, 19: 40, 18: 80, 17: [1, 79], 20: [1, 81], 58: $Vb, 84: $Vl, 99: $Vm, 101: $Vn, 102: $Vo }), o($VA, [2, 14], { 20: [1, 82] }), { 15: 83, 16: 84, 58: $Vb, 84: $Vl, 99: $Vm, 101: $Vn }, { 16: 39, 18: 85, 19: 40, 58: $Vb, 84: $Vl, 99: $Vm, 101: $Vn, 102: $Vo }, o($VB, [2, 118]), o($VB, [2, 119]), o($VB, [2, 120]), o($VB, [2, 121]), o([1, 8, 9, 12, 13, 20, 22, 39, 41, 44, 66, 67, 68, 69, 70, 71, 72, 77, 79], [2, 122]), o($Vp, [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, 18: 21, 38: 22, 43: 23, 16: 39, 19: 40, 5: 86, 33: $V0, 35: $V1, 37: $V2, 42: $V3, 46: $V4, 47: $V5, 49: $V6, 50: $V7, 52: $V8, 54: $V9, 55: $Va, 58: $Vb, 60: $Vc, 61: $Vd, 62: $Ve, 63: $Vf, 73: $Vg, 74: $Vh, 76: $Vi, 80: $Vj, 81: $Vk, 84: $Vl, 99: $Vm, 101: $Vn, 102: $Vo }), { 5: 87, 10: 5, 16: 39, 18: 21, 19: 40, 21: 7, 23: 8, 24: 9, 25: 10, 26: 11, 27: 12, 28: 13, 29: 14, 30: 15, 31: 16, 32: 17, 33: $V0, 35: $V1, 37: $V2, 38: 22, 42: $V3, 43: 23, 46: $V4, 47: $V5, 49: $V6, 50: $V7, 52: $V8, 54: $V9, 55: $Va, 58: $Vb, 60: $Vc, 61: $Vd, 62: $Ve, 63: $Vf, 73: $Vg, 74: $Vh, 76: $Vi, 80: $Vj, 81: $Vk, 84: $Vl, 99: $Vm, 101: $Vn, 102: $Vo }, o($Vq, [2, 19]), o($Vq, [2, 30]), o($Vq, [2, 31]), { 13: [1, 89], 16: 39, 18: 88, 19: 40, 58: $Vb, 84: $Vl, 99: $Vm, 101: $Vn, 102: $Vo }, { 51: 90, 64: 56, 65: 57, 66: $Vr, 67: $Vs, 68: $Vt, 69: $Vu, 70: $Vv, 71: $Vw, 72: $Vx }, o($Vq, [2, 49]), { 65: 91, 71: $Vw, 72: $Vx }, o($VC, [2, 68], { 64: 92, 66: $Vr, 67: $Vs, 68: $Vt, 69: $Vu, 70: $Vv }), o($VD, [2, 69]), o($VD, [2, 70]), o($VD, [2, 71]), o($VD, [2, 72]), o($VD, [2, 73]), o($VE, [2, 74]), o($VE, [2, 75]), { 8: [1, 94], 24: 95, 40: 93, 43: 23, 46: $V4 }, { 16: 96, 58: $Vb, 84: $Vl, 99: $Vm, 101: $Vn }, { 45: 97, 49: $VF }, { 48: [1, 99] }, { 13: [1, 100] }, { 13: [1, 101] }, { 77: [1, 102], 79: [1, 103] }, { 22: $VG, 57: 104, 58: $VH, 80: $VI, 82: 105, 83: 106, 84: $VJ, 85: $VK, 86: $VL, 87: $VM, 88: $VN, 89: $VO }, { 58: [1, 116] }, { 13: $Vz, 53: 117 }, o($Vq, [2, 57]), o($Vq, [2, 123]), { 22: $VG, 57: 118, 58: $VH, 59: [1, 119], 80: $VI, 82: 105, 83: 106, 84: $VJ, 85: $VK, 86: $VL, 87: $VM, 88: $VN, 89: $VO }, o($VP, [2, 59]), { 16: 39, 18: 120, 19: 40, 58: $Vb, 84: $Vl, 99: $Vm, 101: $Vn, 102: $Vo }, o($VA, [2, 15]), o($VA, [2, 16]), o($VA, [2, 17]), { 39: [2, 35] }, { 15: 122, 16: 84, 17: [1, 121], 39: [2, 9], 58: $Vb, 84: $Vl, 99: $Vm, 101: $Vn }, o($VQ, [2, 43], { 11: 123, 12: [1, 124] }), o($Vp, [2, 7]), { 9: [1, 125] }, o($VR, [2, 52]), { 16: 39, 18: 126, 19: 40, 58: $Vb, 84: $Vl, 99: $Vm, 101: $Vn, 102: $Vo }, { 13: [1, 128], 16: 39, 18: 127, 19: 40, 58: $Vb, 84: $Vl, 99: $Vm, 101: $Vn, 102: $Vo }, o($VC, [2, 67], { 64: 129, 66: $Vr, 67: $Vs, 68: $Vt, 69: $Vu, 70: $Vv }), o($VC, [2, 66]), { 41: [1, 130] }, { 24: 95, 40: 131, 43: 23, 46: $V4 }, { 8: [1, 132], 41: [2, 36] }, o($Vy, [2, 40], { 39: [1, 133] }), { 41: [1, 134] }, { 41: [2, 46], 45: 135, 49: $VF }, { 16: 39, 18: 136, 19: 40, 58: $Vb, 84: $Vl, 99: $Vm, 101: $Vn, 102: $Vo }, o($Vq, [2, 76], { 13: [1, 137] }), o($Vq, [2, 78], { 13: [1, 139], 75: [1, 138] }), o($Vq, [2, 82], { 13: [1, 140], 78: [1, 141] }), { 13: [1, 142] }, o($Vq, [2, 90], { 59: $VS }), o($VT, [2, 92], { 83: 144, 22: $VG, 58: $VH, 80: $VI, 84: $VJ, 85: $VK, 86: $VL, 87: $VM, 88: $VN, 89: $VO }), o($VU, [2, 94]), o($VU, [2, 96]), o($VU, [2, 97]), o($VU, [2, 98]), o($VU, [2, 99]), o($VU, [2, 100]), o($VU, [2, 101]), o($VU, [2, 102]), o($VU, [2, 103]), o($VU, [2, 104]), o($Vq, [2, 91]), o($Vq, [2, 56]), o($Vq, [2, 58], { 59: $VS }), { 58: [1, 145] }, o($VA, [2, 13]), { 15: 146, 16: 84, 58: $Vb, 84: $Vl, 99: $Vm, 101: $Vn }, { 39: [2, 11] }, o($VQ, [2, 44]), { 13: [1, 147] }, { 1: [2, 4] }, o($VR, [2, 54]), o($VR, [2, 53]), { 16: 39, 18: 148, 19: 40, 58: $Vb, 84: $Vl, 99: $Vm, 101: $Vn, 102: $Vo }, o($VC, [2, 65]), o($Vq, [2, 33]), { 41: [1, 149] }, { 24: 95, 40: 150, 41: [2, 37], 43: 23, 46: $V4 }, { 45: 151, 49: $VF }, o($Vy, [2, 41]), { 41: [2, 47] }, o($Vq, [2, 45]), o($Vq, [2, 77]), o($Vq, [2, 79]), o($Vq, [2, 80], { 75: [1, 152] }), o($Vq, [2, 83]), o($Vq, [2, 84], { 13: [1, 153] }), o($Vq, [2, 86], { 13: [1, 155], 75: [1, 154] }), { 22: $VG, 58: $VH, 80: $VI, 82: 156, 83: 106, 84: $VJ, 85: $VK, 86: $VL, 87: $VM, 88: $VN, 89: $VO }, o($VU, [2, 95]), o($VP, [2, 60]), { 39: [2, 10] }, { 14: [1, 157] }, o($VR, [2, 55]), o($Vq, [2, 34]), { 41: [2, 38] }, { 41: [1, 158] }, o($Vq, [2, 81]), o($Vq, [2, 85]), o($Vq, [2, 87]), o($Vq, [2, 88], { 75: [1, 159] }), o($VT, [2, 93], { 83: 144, 22: $VG, 58: $VH, 80: $VI, 84: $VJ, 85: $VK, 86: $VL, 87: $VM, 88: $VN, 89: $VO }), o($VQ, [2, 8]), o($Vy, [2, 42]), o($Vq, [2, 89])],\n defaultActions: { 2: [2, 1], 3: [2, 2], 4: [2, 3], 83: [2, 35], 122: [2, 11], 125: [2, 4], 135: [2, 47], 146: [2, 10], 150: [2, 38] },\n parseError: /* @__PURE__ */ __name(function parseError(str, hash) {\n if (hash.recoverable) {\n this.trace(str);\n } else {\n var error = new Error(str);\n error.hash = hash;\n throw error;\n }\n }, \"parseError\"),\n parse: /* @__PURE__ */ __name(function parse(input) {\n var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = \"\", yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1;\n var args = lstack.slice.call(arguments, 1);\n var lexer2 = Object.create(this.lexer);\n var sharedState = { yy: {} };\n for (var k in this.yy) {\n if (Object.prototype.hasOwnProperty.call(this.yy, k)) {\n sharedState.yy[k] = this.yy[k];\n }\n }\n lexer2.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer2;\n sharedState.yy.parser = this;\n if (typeof lexer2.yylloc == \"undefined\") {\n lexer2.yylloc = {};\n }\n var yyloc = lexer2.yylloc;\n lstack.push(yyloc);\n var ranges = lexer2.options && lexer2.options.ranges;\n if (typeof sharedState.yy.parseError === \"function\") {\n this.parseError = sharedState.yy.parseError;\n } else {\n this.parseError = Object.getPrototypeOf(this).parseError;\n }\n function popStack(n) {\n stack.length = stack.length - 2 * n;\n vstack.length = vstack.length - n;\n lstack.length = lstack.length - n;\n }\n __name(popStack, \"popStack\");\n function lex() {\n var token;\n token = tstack.pop() || lexer2.lex() || EOF;\n if (typeof token !== \"number\") {\n if (token instanceof Array) {\n tstack = token;\n token = tstack.pop();\n }\n token = self.symbols_[token] || token;\n }\n return token;\n }\n __name(lex, \"lex\");\n var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected;\n while (true) {\n state = stack[stack.length - 1];\n if (this.defaultActions[state]) {\n action = this.defaultActions[state];\n } else {\n if (symbol === null || typeof symbol == \"undefined\") {\n symbol = lex();\n }\n action = table[state] && table[state][symbol];\n }\n if (typeof action === \"undefined\" || !action.length || !action[0]) {\n var errStr = \"\";\n expected = [];\n for (p in table[state]) {\n if (this.terminals_[p] && p > TERROR) {\n expected.push(\"'\" + this.terminals_[p] + \"'\");\n }\n }\n if (lexer2.showPosition) {\n errStr = \"Parse error on line \" + (yylineno + 1) + \":\\n\" + lexer2.showPosition() + \"\\nExpecting \" + expected.join(\", \") + \", got '\" + (this.terminals_[symbol] || symbol) + \"'\";\n } else {\n errStr = \"Parse error on line \" + (yylineno + 1) + \": Unexpected \" + (symbol == EOF ? \"end of input\" : \"'\" + (this.terminals_[symbol] || symbol) + \"'\");\n }\n this.parseError(errStr, {\n text: lexer2.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer2.yylineno,\n loc: yyloc,\n expected\n });\n }\n if (action[0] instanceof Array && action.length > 1) {\n throw new Error(\"Parse Error: multiple actions possible at state: \" + state + \", token: \" + symbol);\n }\n switch (action[0]) {\n case 1:\n stack.push(symbol);\n vstack.push(lexer2.yytext);\n lstack.push(lexer2.yylloc);\n stack.push(action[1]);\n symbol = null;\n if (!preErrorSymbol) {\n yyleng = lexer2.yyleng;\n yytext = lexer2.yytext;\n yylineno = lexer2.yylineno;\n yyloc = lexer2.yylloc;\n if (recovering > 0) {\n recovering--;\n }\n } else {\n symbol = preErrorSymbol;\n preErrorSymbol = null;\n }\n break;\n case 2:\n len = this.productions_[action[1]][1];\n yyval.$ = vstack[vstack.length - len];\n yyval._$ = {\n first_line: lstack[lstack.length - (len || 1)].first_line,\n last_line: lstack[lstack.length - 1].last_line,\n first_column: lstack[lstack.length - (len || 1)].first_column,\n last_column: lstack[lstack.length - 1].last_column\n };\n if (ranges) {\n yyval._$.range = [\n lstack[lstack.length - (len || 1)].range[0],\n lstack[lstack.length - 1].range[1]\n ];\n }\n r = this.performAction.apply(yyval, [\n yytext,\n yyleng,\n yylineno,\n sharedState.yy,\n action[1],\n vstack,\n lstack\n ].concat(args));\n if (typeof r !== \"undefined\") {\n return r;\n }\n if (len) {\n stack = stack.slice(0, -1 * len * 2);\n vstack = vstack.slice(0, -1 * len);\n lstack = lstack.slice(0, -1 * len);\n }\n stack.push(this.productions_[action[1]][0]);\n vstack.push(yyval.$);\n lstack.push(yyval._$);\n newState = table[stack[stack.length - 2]][stack[stack.length - 1]];\n stack.push(newState);\n break;\n case 3:\n return true;\n }\n }\n return true;\n }, \"parse\")\n };\n var lexer = /* @__PURE__ */ function() {\n var lexer2 = {\n EOF: 1,\n parseError: /* @__PURE__ */ __name(function parseError(str, hash) {\n if (this.yy.parser) {\n this.yy.parser.parseError(str, hash);\n } else {\n throw new Error(str);\n }\n }, \"parseError\"),\n // resets the lexer, sets new input\n setInput: /* @__PURE__ */ __name(function(input, yy) {\n this.yy = yy || this.yy || {};\n this._input = input;\n this._more = this._backtrack = this.done = false;\n this.yylineno = this.yyleng = 0;\n this.yytext = this.matched = this.match = \"\";\n this.conditionStack = [\"INITIAL\"];\n this.yylloc = {\n first_line: 1,\n first_column: 0,\n last_line: 1,\n last_column: 0\n };\n if (this.options.ranges) {\n this.yylloc.range = [0, 0];\n }\n this.offset = 0;\n return this;\n }, \"setInput\"),\n // consumes and returns one char from the input\n input: /* @__PURE__ */ __name(function() {\n var ch = this._input[0];\n this.yytext += ch;\n this.yyleng++;\n this.offset++;\n this.match += ch;\n this.matched += ch;\n var lines = ch.match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno++;\n this.yylloc.last_line++;\n } else {\n this.yylloc.last_column++;\n }\n if (this.options.ranges) {\n this.yylloc.range[1]++;\n }\n this._input = this._input.slice(1);\n return ch;\n }, \"input\"),\n // unshifts one char (or a string) into the input\n unput: /* @__PURE__ */ __name(function(ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n this.offset -= len;\n var oldLines = this.match.split(/(?:\\r\\n?|\\n)/g);\n this.match = this.match.substr(0, this.match.length - 1);\n this.matched = this.matched.substr(0, this.matched.length - 1);\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n this.yylloc = {\n first_line: this.yylloc.first_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.first_column,\n last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len\n };\n if (this.options.ranges) {\n this.yylloc.range = [r[0], r[0] + this.yyleng - len];\n }\n this.yyleng = this.yytext.length;\n return this;\n }, \"unput\"),\n // When called from action, caches matched text and appends it on next action\n more: /* @__PURE__ */ __name(function() {\n this._more = true;\n return this;\n }, \"more\"),\n // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.\n reject: /* @__PURE__ */ __name(function() {\n if (this.options.backtrack_lexer) {\n this._backtrack = true;\n } else {\n 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).\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n return this;\n }, \"reject\"),\n // retain first n characters of the match\n less: /* @__PURE__ */ __name(function(n) {\n this.unput(this.match.slice(n));\n }, \"less\"),\n // displays already matched input, i.e. for error messages\n pastInput: /* @__PURE__ */ __name(function() {\n var past = this.matched.substr(0, this.matched.length - this.match.length);\n return (past.length > 20 ? \"...\" : \"\") + past.substr(-20).replace(/\\n/g, \"\");\n }, \"pastInput\"),\n // displays upcoming input, i.e. for error messages\n upcomingInput: /* @__PURE__ */ __name(function() {\n var next = this.match;\n if (next.length < 20) {\n next += this._input.substr(0, 20 - next.length);\n }\n return (next.substr(0, 20) + (next.length > 20 ? \"...\" : \"\")).replace(/\\n/g, \"\");\n }, \"upcomingInput\"),\n // displays the character position where the lexing error occurred, i.e. for error messages\n showPosition: /* @__PURE__ */ __name(function() {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n }, \"showPosition\"),\n // test the lexed token: return FALSE when not a match, otherwise return token\n test_match: /* @__PURE__ */ __name(function(match, indexed_rule) {\n var token, lines, backup;\n if (this.options.backtrack_lexer) {\n backup = {\n yylineno: this.yylineno,\n yylloc: {\n first_line: this.yylloc.first_line,\n last_line: this.last_line,\n first_column: this.yylloc.first_column,\n last_column: this.yylloc.last_column\n },\n yytext: this.yytext,\n match: this.match,\n matches: this.matches,\n matched: this.matched,\n yyleng: this.yyleng,\n offset: this.offset,\n _more: this._more,\n _input: this._input,\n yy: this.yy,\n conditionStack: this.conditionStack.slice(0),\n done: this.done\n };\n if (this.options.ranges) {\n backup.yylloc.range = this.yylloc.range.slice(0);\n }\n }\n lines = match[0].match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno += lines.length;\n }\n this.yylloc = {\n first_line: this.yylloc.last_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.last_column,\n last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length : this.yylloc.last_column + match[0].length\n };\n this.yytext += match[0];\n this.match += match[0];\n this.matches = match;\n this.yyleng = this.yytext.length;\n if (this.options.ranges) {\n this.yylloc.range = [this.offset, this.offset += this.yyleng];\n }\n this._more = false;\n this._backtrack = false;\n this._input = this._input.slice(match[0].length);\n this.matched += match[0];\n token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);\n if (this.done && this._input) {\n this.done = false;\n }\n if (token) {\n return token;\n } else if (this._backtrack) {\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false;\n }\n return false;\n }, \"test_match\"),\n // return next match in input\n next: /* @__PURE__ */ __name(function() {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n var token, match, tempMatch, index;\n if (!this._more) {\n this.yytext = \"\";\n this.match = \"\";\n }\n var rules = this._currentRules();\n for (var i = 0; i < rules.length; i++) {\n tempMatch = this._input.match(this.rules[rules[i]]);\n if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {\n match = tempMatch;\n index = i;\n if (this.options.backtrack_lexer) {\n token = this.test_match(tempMatch, rules[i]);\n if (token !== false) {\n return token;\n } else if (this._backtrack) {\n match = false;\n continue;\n } else {\n return false;\n }\n } else if (!this.options.flex) {\n break;\n }\n }\n }\n if (match) {\n token = this.test_match(match, rules[index]);\n if (token !== false) {\n return token;\n }\n return false;\n }\n if (this._input === \"\") {\n return this.EOF;\n } else {\n return this.parseError(\"Lexical error on line \" + (this.yylineno + 1) + \". Unrecognized text.\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n }, \"next\"),\n // return next match that has a token\n lex: /* @__PURE__ */ __name(function lex() {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n }, \"lex\"),\n // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\n begin: /* @__PURE__ */ __name(function begin(condition) {\n this.conditionStack.push(condition);\n }, \"begin\"),\n // pop the previously active lexer condition state off the condition stack\n popState: /* @__PURE__ */ __name(function popState() {\n var n = this.conditionStack.length - 1;\n if (n > 0) {\n return this.conditionStack.pop();\n } else {\n return this.conditionStack[0];\n }\n }, \"popState\"),\n // produce the lexer rule set which is active for the currently active lexer condition state\n _currentRules: /* @__PURE__ */ __name(function _currentRules() {\n if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {\n return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;\n } else {\n return this.conditions[\"INITIAL\"].rules;\n }\n }, \"_currentRules\"),\n // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\n topState: /* @__PURE__ */ __name(function topState(n) {\n n = this.conditionStack.length - 1 - Math.abs(n || 0);\n if (n >= 0) {\n return this.conditionStack[n];\n } else {\n return \"INITIAL\";\n }\n }, \"topState\"),\n // alias for begin(condition)\n pushState: /* @__PURE__ */ __name(function pushState(condition) {\n this.begin(condition);\n }, \"pushState\"),\n // return the number of states currently on the stack\n stateStackSize: /* @__PURE__ */ __name(function stateStackSize() {\n return this.conditionStack.length;\n }, \"stateStackSize\"),\n options: {},\n performAction: /* @__PURE__ */ __name(function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {\n var YYSTATE = YY_START;\n switch ($avoiding_name_collisions) {\n case 0:\n return 60;\n break;\n case 1:\n return 61;\n break;\n case 2:\n return 62;\n break;\n case 3:\n return 63;\n break;\n case 4:\n break;\n case 5:\n break;\n case 6:\n this.begin(\"acc_title\");\n return 33;\n break;\n case 7:\n this.popState();\n return \"acc_title_value\";\n break;\n case 8:\n this.begin(\"acc_descr\");\n return 35;\n break;\n case 9:\n this.popState();\n return \"acc_descr_value\";\n break;\n case 10:\n this.begin(\"acc_descr_multiline\");\n break;\n case 11:\n this.popState();\n break;\n case 12:\n return \"acc_descr_multiline_value\";\n break;\n case 13:\n return 8;\n break;\n case 14:\n break;\n case 15:\n return 7;\n break;\n case 16:\n return 7;\n break;\n case 17:\n return \"EDGE_STATE\";\n break;\n case 18:\n this.begin(\"callback_name\");\n break;\n case 19:\n this.popState();\n break;\n case 20:\n this.popState();\n this.begin(\"callback_args\");\n break;\n case 21:\n return 77;\n break;\n case 22:\n this.popState();\n break;\n case 23:\n return 78;\n break;\n case 24:\n this.popState();\n break;\n case 25:\n return \"STR\";\n break;\n case 26:\n this.begin(\"string\");\n break;\n case 27:\n return 80;\n break;\n case 28:\n return 55;\n break;\n case 29:\n this.begin(\"namespace\");\n return 42;\n break;\n case 30:\n this.popState();\n return 8;\n break;\n case 31:\n break;\n case 32:\n this.begin(\"namespace-body\");\n return 39;\n break;\n case 33:\n this.popState();\n return 41;\n break;\n case 34:\n return \"EOF_IN_STRUCT\";\n break;\n case 35:\n return 8;\n break;\n case 36:\n break;\n case 37:\n return \"EDGE_STATE\";\n break;\n case 38:\n this.begin(\"class\");\n return 46;\n break;\n case 39:\n this.popState();\n return 8;\n break;\n case 40:\n break;\n case 41:\n this.popState();\n this.popState();\n return 41;\n break;\n case 42:\n this.begin(\"class-body\");\n return 39;\n break;\n case 43:\n this.popState();\n return 41;\n break;\n case 44:\n return \"EOF_IN_STRUCT\";\n break;\n case 45:\n return \"EDGE_STATE\";\n break;\n case 46:\n return \"OPEN_IN_STRUCT\";\n break;\n case 47:\n break;\n case 48:\n return \"MEMBER\";\n break;\n case 49:\n return 81;\n break;\n case 50:\n return 73;\n break;\n case 51:\n return 74;\n break;\n case 52:\n return 76;\n break;\n case 53:\n return 52;\n break;\n case 54:\n return 54;\n break;\n case 55:\n return 47;\n break;\n case 56:\n return 48;\n break;\n case 57:\n return 79;\n break;\n case 58:\n this.popState();\n break;\n case 59:\n return \"GENERICTYPE\";\n break;\n case 60:\n this.begin(\"generic\");\n break;\n case 61:\n this.popState();\n break;\n case 62:\n return \"BQUOTE_STR\";\n break;\n case 63:\n this.begin(\"bqstring\");\n break;\n case 64:\n return 75;\n break;\n case 65:\n return 75;\n break;\n case 66:\n return 75;\n break;\n case 67:\n return 75;\n break;\n case 68:\n return 67;\n break;\n case 69:\n return 67;\n break;\n case 70:\n return 69;\n break;\n case 71:\n return 69;\n break;\n case 72:\n return 68;\n break;\n case 73:\n return 66;\n break;\n case 74:\n return 70;\n break;\n case 75:\n return 71;\n break;\n case 76:\n return 72;\n break;\n case 77:\n return 22;\n break;\n case 78:\n return 44;\n break;\n case 79:\n return 99;\n break;\n case 80:\n return 17;\n break;\n case 81:\n return \"PLUS\";\n break;\n case 82:\n return 85;\n break;\n case 83:\n return 59;\n break;\n case 84:\n return 88;\n break;\n case 85:\n return 88;\n break;\n case 86:\n return 89;\n break;\n case 87:\n return \"EQUALS\";\n break;\n case 88:\n return \"EQUALS\";\n break;\n case 89:\n return 58;\n break;\n case 90:\n return 12;\n break;\n case 91:\n return 14;\n break;\n case 92:\n return \"PUNCTUATION\";\n break;\n case 93:\n return 84;\n break;\n case 94:\n return 101;\n break;\n case 95:\n return 87;\n break;\n case 96:\n return 87;\n break;\n case 97:\n return 9;\n break;\n }\n }, \"anonymous\"),\n 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)/, /^(?:$)/],\n 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\": false }, \"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\": false }, \"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\": false }, \"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\": false }, \"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\": false }, \"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\": false }, \"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\": false }, \"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\": false }, \"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\": false }, \"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\": false }, \"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\": false }, \"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\": false }, \"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\": false }, \"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\": false }, \"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\": true } }\n };\n return lexer2;\n }();\n parser2.lexer = lexer;\n function Parser() {\n this.yy = {};\n }\n __name(Parser, \"Parser\");\n Parser.prototype = parser2;\n parser2.Parser = Parser;\n return new Parser();\n}();\nparser.parser = parser;\nvar classDiagram_default = parser;\n\n// src/diagrams/class/classDb.ts\nimport { select } from \"d3\";\n\n// src/diagrams/class/classTypes.ts\nvar visibilityValues = [\"#\", \"+\", \"~\", \"-\", \"\"];\nvar ClassMember = class {\n static {\n __name(this, \"ClassMember\");\n }\n constructor(input, memberType) {\n this.memberType = memberType;\n this.visibility = \"\";\n this.classifier = \"\";\n this.text = \"\";\n const sanitizedInput = sanitizeText(input, getConfig());\n this.parseMember(sanitizedInput);\n }\n getDisplayDetails() {\n let displayText = this.visibility + parseGenericTypes(this.id);\n if (this.memberType === \"method\") {\n displayText += `(${parseGenericTypes(this.parameters.trim())})`;\n if (this.returnType) {\n displayText += \" : \" + parseGenericTypes(this.returnType);\n }\n }\n displayText = displayText.trim();\n const cssStyle = this.parseClassifier();\n return {\n displayText,\n cssStyle\n };\n }\n parseMember(input) {\n let potentialClassifier = \"\";\n if (this.memberType === \"method\") {\n const methodRegEx = /([#+~-])?(.+)\\((.*)\\)([\\s$*])?(.*)([$*])?/;\n const match = methodRegEx.exec(input);\n if (match) {\n const detectedVisibility = match[1] ? match[1].trim() : \"\";\n if (visibilityValues.includes(detectedVisibility)) {\n this.visibility = detectedVisibility;\n }\n this.id = match[2];\n this.parameters = match[3] ? match[3].trim() : \"\";\n potentialClassifier = match[4] ? match[4].trim() : \"\";\n this.returnType = match[5] ? match[5].trim() : \"\";\n if (potentialClassifier === \"\") {\n const lastChar = this.returnType.substring(this.returnType.length - 1);\n if (/[$*]/.exec(lastChar)) {\n potentialClassifier = lastChar;\n this.returnType = this.returnType.substring(0, this.returnType.length - 1);\n }\n }\n }\n } else {\n const length = input.length;\n const firstChar = input.substring(0, 1);\n const lastChar = input.substring(length - 1);\n if (visibilityValues.includes(firstChar)) {\n this.visibility = firstChar;\n }\n if (/[$*]/.exec(lastChar)) {\n potentialClassifier = lastChar;\n }\n this.id = input.substring(\n this.visibility === \"\" ? 0 : 1,\n potentialClassifier === \"\" ? length : length - 1\n );\n }\n this.classifier = potentialClassifier;\n this.id = this.id.startsWith(\" \") ? \" \" + this.id.trim() : this.id.trim();\n const combinedText = `${this.visibility ? \"\\\\\" + this.visibility : \"\"}${parseGenericTypes(this.id)}${this.memberType === \"method\" ? `(${parseGenericTypes(this.parameters)})${this.returnType ? \" : \" + parseGenericTypes(this.returnType) : \"\"}` : \"\"}`;\n this.text = combinedText.replaceAll(\"<\", \"<\").replaceAll(\">\", \">\");\n if (this.text.startsWith(\"\\\\<\")) {\n this.text = this.text.replace(\"\\\\<\", \"~\");\n }\n }\n parseClassifier() {\n switch (this.classifier) {\n case \"*\":\n return \"font-style:italic;\";\n case \"$\":\n return \"text-decoration:underline;\";\n default:\n return \"\";\n }\n }\n};\n\n// src/diagrams/class/classDb.ts\nvar MERMAID_DOM_ID_PREFIX = \"classId-\";\nvar relations = [];\nvar classes = /* @__PURE__ */ new Map();\nvar styleClasses = /* @__PURE__ */ new Map();\nvar notes = [];\nvar interfaces = [];\nvar classCounter = 0;\nvar namespaces = /* @__PURE__ */ new Map();\nvar namespaceCounter = 0;\nvar functions = [];\nvar sanitizeText2 = /* @__PURE__ */ __name((txt) => common_default.sanitizeText(txt, getConfig()), \"sanitizeText\");\nvar splitClassNameAndType = /* @__PURE__ */ __name(function(_id) {\n const id = common_default.sanitizeText(_id, getConfig());\n let genericType = \"\";\n let className = id;\n if (id.indexOf(\"~\") > 0) {\n const split = id.split(\"~\");\n className = sanitizeText2(split[0]);\n genericType = sanitizeText2(split[1]);\n }\n return { className, type: genericType };\n}, \"splitClassNameAndType\");\nvar setClassLabel = /* @__PURE__ */ __name(function(_id, label) {\n const id = common_default.sanitizeText(_id, getConfig());\n if (label) {\n label = sanitizeText2(label);\n }\n const { className } = splitClassNameAndType(id);\n classes.get(className).label = label;\n classes.get(className).text = `${label}${classes.get(className).type ? `<${classes.get(className).type}>` : \"\"}`;\n}, \"setClassLabel\");\nvar addClass = /* @__PURE__ */ __name(function(_id) {\n const id = common_default.sanitizeText(_id, getConfig());\n const { className, type } = splitClassNameAndType(id);\n if (classes.has(className)) {\n return;\n }\n const name = common_default.sanitizeText(className, getConfig());\n classes.set(name, {\n id: name,\n type,\n label: name,\n text: `${name}${type ? `<${type}>` : \"\"}`,\n shape: \"classBox\",\n cssClasses: \"default\",\n methods: [],\n members: [],\n annotations: [],\n styles: [],\n domId: MERMAID_DOM_ID_PREFIX + name + \"-\" + classCounter\n });\n classCounter++;\n}, \"addClass\");\nvar addInterface = /* @__PURE__ */ __name(function(label, classId) {\n const classInterface = {\n id: `interface${interfaces.length}`,\n label,\n classId\n };\n interfaces.push(classInterface);\n}, \"addInterface\");\nvar lookUpDomId = /* @__PURE__ */ __name(function(_id) {\n const id = common_default.sanitizeText(_id, getConfig());\n if (classes.has(id)) {\n return classes.get(id).domId;\n }\n throw new Error(\"Class not found: \" + id);\n}, \"lookUpDomId\");\nvar clear2 = /* @__PURE__ */ __name(function() {\n relations = [];\n classes = /* @__PURE__ */ new Map();\n notes = [];\n interfaces = [];\n functions = [];\n functions.push(setupToolTips);\n namespaces = /* @__PURE__ */ new Map();\n namespaceCounter = 0;\n direction = \"TB\";\n clear();\n}, \"clear\");\nvar getClass = /* @__PURE__ */ __name(function(id) {\n return classes.get(id);\n}, \"getClass\");\nvar getClasses = /* @__PURE__ */ __name(function() {\n return classes;\n}, \"getClasses\");\nvar getRelations = /* @__PURE__ */ __name(function() {\n return relations;\n}, \"getRelations\");\nvar getNotes = /* @__PURE__ */ __name(function() {\n return notes;\n}, \"getNotes\");\nvar addRelation = /* @__PURE__ */ __name(function(classRelation) {\n log.debug(\"Adding relation: \" + JSON.stringify(classRelation));\n const invalidTypes = [\n relationType.LOLLIPOP,\n relationType.AGGREGATION,\n relationType.COMPOSITION,\n relationType.DEPENDENCY,\n relationType.EXTENSION\n ];\n if (classRelation.relation.type1 === relationType.LOLLIPOP && !invalidTypes.includes(classRelation.relation.type2)) {\n addClass(classRelation.id2);\n addInterface(classRelation.id1, classRelation.id2);\n classRelation.id1 = `interface${interfaces.length - 1}`;\n } else if (classRelation.relation.type2 === relationType.LOLLIPOP && !invalidTypes.includes(classRelation.relation.type1)) {\n addClass(classRelation.id1);\n addInterface(classRelation.id2, classRelation.id1);\n classRelation.id2 = `interface${interfaces.length - 1}`;\n } else {\n addClass(classRelation.id1);\n addClass(classRelation.id2);\n }\n classRelation.id1 = splitClassNameAndType(classRelation.id1).className;\n classRelation.id2 = splitClassNameAndType(classRelation.id2).className;\n classRelation.relationTitle1 = common_default.sanitizeText(\n classRelation.relationTitle1.trim(),\n getConfig()\n );\n classRelation.relationTitle2 = common_default.sanitizeText(\n classRelation.relationTitle2.trim(),\n getConfig()\n );\n relations.push(classRelation);\n}, \"addRelation\");\nvar addAnnotation = /* @__PURE__ */ __name(function(className, annotation) {\n const validatedClassName = splitClassNameAndType(className).className;\n classes.get(validatedClassName).annotations.push(annotation);\n}, \"addAnnotation\");\nvar addMember = /* @__PURE__ */ __name(function(className, member) {\n addClass(className);\n const validatedClassName = splitClassNameAndType(className).className;\n const theClass = classes.get(validatedClassName);\n if (typeof member === \"string\") {\n const memberString = member.trim();\n if (memberString.startsWith(\"<<\") && memberString.endsWith(\">>\")) {\n theClass.annotations.push(sanitizeText2(memberString.substring(2, memberString.length - 2)));\n } else if (memberString.indexOf(\")\") > 0) {\n theClass.methods.push(new ClassMember(memberString, \"method\"));\n } else if (memberString) {\n theClass.members.push(new ClassMember(memberString, \"attribute\"));\n }\n }\n}, \"addMember\");\nvar addMembers = /* @__PURE__ */ __name(function(className, members) {\n if (Array.isArray(members)) {\n members.reverse();\n members.forEach((member) => addMember(className, member));\n }\n}, \"addMembers\");\nvar addNote = /* @__PURE__ */ __name(function(text, className) {\n const note = {\n id: `note${notes.length}`,\n class: className,\n text\n };\n notes.push(note);\n}, \"addNote\");\nvar cleanupLabel = /* @__PURE__ */ __name(function(label) {\n if (label.startsWith(\":\")) {\n label = label.substring(1);\n }\n return sanitizeText2(label.trim());\n}, \"cleanupLabel\");\nvar setCssClass = /* @__PURE__ */ __name(function(ids, className) {\n ids.split(\",\").forEach(function(_id) {\n let id = _id;\n if (/\\d/.exec(_id[0])) {\n id = MERMAID_DOM_ID_PREFIX + id;\n }\n const classNode = classes.get(id);\n if (classNode) {\n classNode.cssClasses += \" \" + className;\n }\n });\n}, \"setCssClass\");\nvar defineClass = /* @__PURE__ */ __name(function(ids, style) {\n for (const id of ids) {\n let styleClass = styleClasses.get(id);\n if (styleClass === void 0) {\n styleClass = { id, styles: [], textStyles: [] };\n styleClasses.set(id, styleClass);\n }\n if (style) {\n style.forEach(function(s) {\n if (/color/.exec(s)) {\n const newStyle = s.replace(\"fill\", \"bgFill\");\n styleClass.textStyles.push(newStyle);\n }\n styleClass.styles.push(s);\n });\n }\n classes.forEach((value) => {\n if (value.cssClasses.includes(id)) {\n value.styles.push(...style.flatMap((s) => s.split(\",\")));\n }\n });\n }\n}, \"defineClass\");\nvar setTooltip = /* @__PURE__ */ __name(function(ids, tooltip) {\n ids.split(\",\").forEach(function(id) {\n if (tooltip !== void 0) {\n classes.get(id).tooltip = sanitizeText2(tooltip);\n }\n });\n}, \"setTooltip\");\nvar getTooltip = /* @__PURE__ */ __name(function(id, namespace) {\n if (namespace && namespaces.has(namespace)) {\n return namespaces.get(namespace).classes.get(id).tooltip;\n }\n return classes.get(id).tooltip;\n}, \"getTooltip\");\nvar setLink = /* @__PURE__ */ __name(function(ids, linkStr, target) {\n const config = getConfig();\n ids.split(\",\").forEach(function(_id) {\n let id = _id;\n if (/\\d/.exec(_id[0])) {\n id = MERMAID_DOM_ID_PREFIX + id;\n }\n const theClass = classes.get(id);\n if (theClass) {\n theClass.link = utils_default.formatUrl(linkStr, config);\n if (config.securityLevel === \"sandbox\") {\n theClass.linkTarget = \"_top\";\n } else if (typeof target === \"string\") {\n theClass.linkTarget = sanitizeText2(target);\n } else {\n theClass.linkTarget = \"_blank\";\n }\n }\n });\n setCssClass(ids, \"clickable\");\n}, \"setLink\");\nvar setClickEvent = /* @__PURE__ */ __name(function(ids, functionName, functionArgs) {\n ids.split(\",\").forEach(function(id) {\n setClickFunc(id, functionName, functionArgs);\n classes.get(id).haveCallback = true;\n });\n setCssClass(ids, \"clickable\");\n}, \"setClickEvent\");\nvar setClickFunc = /* @__PURE__ */ __name(function(_domId, functionName, functionArgs) {\n const domId = common_default.sanitizeText(_domId, getConfig());\n const config = getConfig();\n if (config.securityLevel !== \"loose\") {\n return;\n }\n if (functionName === void 0) {\n return;\n }\n const id = domId;\n if (classes.has(id)) {\n const elemId = lookUpDomId(id);\n let argList = [];\n if (typeof functionArgs === \"string\") {\n argList = functionArgs.split(/,(?=(?:(?:[^\"]*\"){2})*[^\"]*$)/);\n for (let i = 0; i < argList.length; i++) {\n let item = argList[i].trim();\n if (item.startsWith('\"') && item.endsWith('\"')) {\n item = item.substr(1, item.length - 2);\n }\n argList[i] = item;\n }\n }\n if (argList.length === 0) {\n argList.push(elemId);\n }\n functions.push(function() {\n const elem = document.querySelector(`[id=\"${elemId}\"]`);\n if (elem !== null) {\n elem.addEventListener(\n \"click\",\n function() {\n utils_default.runFunc(functionName, ...argList);\n },\n false\n );\n }\n });\n }\n}, \"setClickFunc\");\nvar bindFunctions = /* @__PURE__ */ __name(function(element) {\n functions.forEach(function(fun) {\n fun(element);\n });\n}, \"bindFunctions\");\nvar lineType = {\n LINE: 0,\n DOTTED_LINE: 1\n};\nvar relationType = {\n AGGREGATION: 0,\n EXTENSION: 1,\n COMPOSITION: 2,\n DEPENDENCY: 3,\n LOLLIPOP: 4\n};\nvar setupToolTips = /* @__PURE__ */ __name(function(element) {\n let tooltipElem = select(\".mermaidTooltip\");\n if ((tooltipElem._groups || tooltipElem)[0][0] === null) {\n tooltipElem = select(\"body\").append(\"div\").attr(\"class\", \"mermaidTooltip\").style(\"opacity\", 0);\n }\n const svg = select(element).select(\"svg\");\n const nodes = svg.selectAll(\"g.node\");\n nodes.on(\"mouseover\", function() {\n const el = select(this);\n const title = el.attr(\"title\");\n if (title === null) {\n return;\n }\n const rect = this.getBoundingClientRect();\n tooltipElem.transition().duration(200).style(\"opacity\", \".9\");\n tooltipElem.text(el.attr(\"title\")).style(\"left\", window.scrollX + rect.left + (rect.right - rect.left) / 2 + \"px\").style(\"top\", window.scrollY + rect.top - 14 + document.body.scrollTop + \"px\");\n tooltipElem.html(tooltipElem.html().replace(/<br\\/>/g, \"
    \"));\n el.classed(\"hover\", true);\n }).on(\"mouseout\", function() {\n tooltipElem.transition().duration(500).style(\"opacity\", 0);\n const el = select(this);\n el.classed(\"hover\", false);\n });\n}, \"setupToolTips\");\nfunctions.push(setupToolTips);\nvar direction = \"TB\";\nvar getDirection = /* @__PURE__ */ __name(() => direction, \"getDirection\");\nvar setDirection = /* @__PURE__ */ __name((dir) => {\n direction = dir;\n}, \"setDirection\");\nvar addNamespace = /* @__PURE__ */ __name(function(id) {\n if (namespaces.has(id)) {\n return;\n }\n namespaces.set(id, {\n id,\n classes: /* @__PURE__ */ new Map(),\n children: {},\n domId: MERMAID_DOM_ID_PREFIX + id + \"-\" + namespaceCounter\n });\n namespaceCounter++;\n}, \"addNamespace\");\nvar getNamespace = /* @__PURE__ */ __name(function(name) {\n return namespaces.get(name);\n}, \"getNamespace\");\nvar getNamespaces = /* @__PURE__ */ __name(function() {\n return namespaces;\n}, \"getNamespaces\");\nvar addClassesToNamespace = /* @__PURE__ */ __name(function(id, classNames) {\n if (!namespaces.has(id)) {\n return;\n }\n for (const name of classNames) {\n const { className } = splitClassNameAndType(name);\n classes.get(className).parent = id;\n namespaces.get(id).classes.set(className, classes.get(className));\n }\n}, \"addClassesToNamespace\");\nvar setCssStyle = /* @__PURE__ */ __name(function(id, styles) {\n const thisClass = classes.get(id);\n if (!styles || !thisClass) {\n return;\n }\n for (const s of styles) {\n if (s.includes(\",\")) {\n thisClass.styles.push(...s.split(\",\"));\n } else {\n thisClass.styles.push(s);\n }\n }\n}, \"setCssStyle\");\nfunction getArrowMarker(type) {\n let marker;\n switch (type) {\n case 0:\n marker = \"aggregation\";\n break;\n case 1:\n marker = \"extension\";\n break;\n case 2:\n marker = \"composition\";\n break;\n case 3:\n marker = \"dependency\";\n break;\n case 4:\n marker = \"lollipop\";\n break;\n default:\n marker = \"none\";\n }\n return marker;\n}\n__name(getArrowMarker, \"getArrowMarker\");\nvar getData = /* @__PURE__ */ __name(() => {\n const nodes = [];\n const edges = [];\n const config = getConfig();\n for (const namespaceKey of namespaces.keys()) {\n const namespace = namespaces.get(namespaceKey);\n if (namespace) {\n const node = {\n id: namespace.id,\n label: namespace.id,\n isGroup: true,\n padding: config.class.padding ?? 16,\n // parent node must be one of [rect, roundedWithTitle, noteGroup, divider]\n shape: \"rect\",\n cssStyles: [\"fill: none\", \"stroke: black\"],\n look: config.look\n };\n nodes.push(node);\n }\n }\n for (const classKey of classes.keys()) {\n const classNode = classes.get(classKey);\n if (classNode) {\n const node = classNode;\n node.parentId = classNode.parent;\n node.look = config.look;\n nodes.push(node);\n }\n }\n let cnt = 0;\n for (const note of notes) {\n cnt++;\n const noteNode = {\n id: note.id,\n label: note.text,\n isGroup: false,\n shape: \"note\",\n padding: config.class.padding ?? 6,\n cssStyles: [\n \"text-align: left\",\n \"white-space: nowrap\",\n `fill: ${config.themeVariables.noteBkgColor}`,\n `stroke: ${config.themeVariables.noteBorderColor}`\n ],\n look: config.look\n };\n nodes.push(noteNode);\n const noteClassId = classes.get(note.class)?.id ?? \"\";\n if (noteClassId) {\n const edge = {\n id: `edgeNote${cnt}`,\n start: note.id,\n end: noteClassId,\n type: \"normal\",\n thickness: \"normal\",\n classes: \"relation\",\n arrowTypeStart: \"none\",\n arrowTypeEnd: \"none\",\n arrowheadStyle: \"\",\n labelStyle: [\"\"],\n style: [\"fill: none\"],\n pattern: \"dotted\",\n look: config.look\n };\n edges.push(edge);\n }\n }\n for (const _interface of interfaces) {\n const interfaceNode = {\n id: _interface.id,\n label: _interface.label,\n isGroup: false,\n shape: \"rect\",\n cssStyles: [\"opacity: 0;\"],\n look: config.look\n };\n nodes.push(interfaceNode);\n }\n cnt = 0;\n for (const classRelation of relations) {\n cnt++;\n const edge = {\n id: getEdgeId(classRelation.id1, classRelation.id2, {\n prefix: \"id\",\n counter: cnt\n }),\n start: classRelation.id1,\n end: classRelation.id2,\n type: \"normal\",\n label: classRelation.title,\n labelpos: \"c\",\n thickness: \"normal\",\n classes: \"relation\",\n arrowTypeStart: getArrowMarker(classRelation.relation.type1),\n arrowTypeEnd: getArrowMarker(classRelation.relation.type2),\n startLabelRight: classRelation.relationTitle1 === \"none\" ? \"\" : classRelation.relationTitle1,\n endLabelLeft: classRelation.relationTitle2 === \"none\" ? \"\" : classRelation.relationTitle2,\n arrowheadStyle: \"\",\n labelStyle: [\"display: inline-block\"],\n style: classRelation.style || \"\",\n pattern: classRelation.relation.lineType == 1 ? \"dashed\" : \"solid\",\n look: config.look\n };\n edges.push(edge);\n }\n return { nodes, edges, other: {}, config, direction: getDirection() };\n}, \"getData\");\nvar classDb_default = {\n setAccTitle,\n getAccTitle,\n getAccDescription,\n setAccDescription,\n getConfig: /* @__PURE__ */ __name(() => getConfig().class, \"getConfig\"),\n addClass,\n bindFunctions,\n clear: clear2,\n getClass,\n getClasses,\n getNotes,\n addAnnotation,\n addNote,\n getRelations,\n addRelation,\n getDirection,\n setDirection,\n addMember,\n addMembers,\n cleanupLabel,\n lineType,\n relationType,\n setClickEvent,\n setCssClass,\n defineClass,\n setLink,\n getTooltip,\n setTooltip,\n lookUpDomId,\n setDiagramTitle,\n getDiagramTitle,\n setClassLabel,\n addNamespace,\n addClassesToNamespace,\n getNamespace,\n getNamespaces,\n setCssStyle,\n getData\n};\n\n// src/diagrams/class/styles.js\nvar getStyles = /* @__PURE__ */ __name((options) => `g.classGroup text {\n fill: ${options.nodeBorder || options.classText};\n stroke: none;\n font-family: ${options.fontFamily};\n font-size: 10px;\n\n .title {\n font-weight: bolder;\n }\n\n}\n\n.nodeLabel, .edgeLabel {\n color: ${options.classText};\n}\n.edgeLabel .label rect {\n fill: ${options.mainBkg};\n}\n.label text {\n fill: ${options.classText};\n}\n\n.labelBkg {\n background: ${options.mainBkg};\n}\n.edgeLabel .label span {\n background: ${options.mainBkg};\n}\n\n.classTitle {\n font-weight: bolder;\n}\n.node rect,\n .node circle,\n .node ellipse,\n .node polygon,\n .node path {\n fill: ${options.mainBkg};\n stroke: ${options.nodeBorder};\n stroke-width: 1px;\n }\n\n\n.divider {\n stroke: ${options.nodeBorder};\n stroke-width: 1;\n}\n\ng.clickable {\n cursor: pointer;\n}\n\ng.classGroup rect {\n fill: ${options.mainBkg};\n stroke: ${options.nodeBorder};\n}\n\ng.classGroup line {\n stroke: ${options.nodeBorder};\n stroke-width: 1;\n}\n\n.classLabel .box {\n stroke: none;\n stroke-width: 0;\n fill: ${options.mainBkg};\n opacity: 0.5;\n}\n\n.classLabel .label {\n fill: ${options.nodeBorder};\n font-size: 10px;\n}\n\n.relation {\n stroke: ${options.lineColor};\n stroke-width: 1;\n fill: none;\n}\n\n.dashed-line{\n stroke-dasharray: 3;\n}\n\n.dotted-line{\n stroke-dasharray: 1 2;\n}\n\n#compositionStart, .composition {\n fill: ${options.lineColor} !important;\n stroke: ${options.lineColor} !important;\n stroke-width: 1;\n}\n\n#compositionEnd, .composition {\n fill: ${options.lineColor} !important;\n stroke: ${options.lineColor} !important;\n stroke-width: 1;\n}\n\n#dependencyStart, .dependency {\n fill: ${options.lineColor} !important;\n stroke: ${options.lineColor} !important;\n stroke-width: 1;\n}\n\n#dependencyStart, .dependency {\n fill: ${options.lineColor} !important;\n stroke: ${options.lineColor} !important;\n stroke-width: 1;\n}\n\n#extensionStart, .extension {\n fill: transparent !important;\n stroke: ${options.lineColor} !important;\n stroke-width: 1;\n}\n\n#extensionEnd, .extension {\n fill: transparent !important;\n stroke: ${options.lineColor} !important;\n stroke-width: 1;\n}\n\n#aggregationStart, .aggregation {\n fill: transparent !important;\n stroke: ${options.lineColor} !important;\n stroke-width: 1;\n}\n\n#aggregationEnd, .aggregation {\n fill: transparent !important;\n stroke: ${options.lineColor} !important;\n stroke-width: 1;\n}\n\n#lollipopStart, .lollipop {\n fill: ${options.mainBkg} !important;\n stroke: ${options.lineColor} !important;\n stroke-width: 1;\n}\n\n#lollipopEnd, .lollipop {\n fill: ${options.mainBkg} !important;\n stroke: ${options.lineColor} !important;\n stroke-width: 1;\n}\n\n.edgeTerminals {\n font-size: 11px;\n line-height: initial;\n}\n\n.classTitleText {\n text-anchor: middle;\n font-size: 18px;\n fill: ${options.textColor};\n}\n`, \"getStyles\");\nvar styles_default = getStyles;\n\n// src/diagrams/class/classRenderer-v3-unified.ts\nvar getDir = /* @__PURE__ */ __name((parsedItem, defaultDir = \"TB\") => {\n if (!parsedItem.doc) {\n return defaultDir;\n }\n let dir = defaultDir;\n for (const parsedItemDoc of parsedItem.doc) {\n if (parsedItemDoc.stmt === \"dir\") {\n dir = parsedItemDoc.value;\n }\n }\n return dir;\n}, \"getDir\");\nvar getClasses2 = /* @__PURE__ */ __name(function(text, diagramObj) {\n return diagramObj.db.getClasses();\n}, \"getClasses\");\nvar draw = /* @__PURE__ */ __name(async function(text, id, _version, diag) {\n log.info(\"REF0:\");\n log.info(\"Drawing class diagram (v3)\", id);\n const { securityLevel, state: conf, layout } = getConfig();\n const data4Layout = diag.db.getData();\n const svg = getDiagramElement(id, securityLevel);\n data4Layout.type = diag.type;\n data4Layout.layoutAlgorithm = getRegisteredLayoutAlgorithm(layout);\n data4Layout.nodeSpacing = conf?.nodeSpacing || 50;\n data4Layout.rankSpacing = conf?.rankSpacing || 50;\n data4Layout.markers = [\"aggregation\", \"extension\", \"composition\", \"dependency\", \"lollipop\"];\n data4Layout.diagramId = id;\n await render(data4Layout, svg);\n const padding = 8;\n utils_default.insertTitle(\n svg,\n \"classDiagramTitleText\",\n conf?.titleTopMargin ?? 25,\n diag.db.getDiagramTitle()\n );\n setupViewPortForSVG(svg, padding, \"classDiagram\", conf?.useMaxWidth ?? true);\n}, \"draw\");\nvar classRenderer_v3_unified_default = {\n getClasses: getClasses2,\n draw,\n getDir\n};\n\nexport {\n classDiagram_default,\n classDb_default,\n styles_default,\n classRenderer_v3_unified_default\n};\n"], + "mappings": "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,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG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,IACH,KAAK,SAAS,EACd,KAAK,MAAM,eAAe,EAC1B,MACF,IAAK,IACH,MAAO,IAET,IAAK,IACH,KAAK,SAAS,EACd,MACF,IAAK,IACH,MAAO,IAET,IAAK,IACH,KAAK,SAAS,EACd,MACF,IAAK,IACH,MAAO,MAET,IAAK,IACH,KAAK,MAAM,QAAQ,EACnB,MACF,IAAK,IACH,MAAO,IAET,IAAK,IACH,MAAO,IAET,IAAK,IACH,YAAK,MAAM,WAAW,EACf,GACP,MACF,IAAK,IACH,YAAK,SAAS,EACP,EACP,MACF,IAAK,IACH,MACF,IAAK,IACH,YAAK,MAAM,gBAAgB,EACpB,GACP,MACF,IAAK,IACH,YAAK,SAAS,EACP,GACP,MACF,IAAK,IACH,MAAO,gBAET,IAAK,IACH,MAAO,GAET,IAAK,IACH,MACF,IAAK,IACH,MAAO,aAET,IAAK,IACH,YAAK,MAAM,OAAO,EACX,GACP,MACF,IAAK,IACH,YAAK,SAAS,EACP,EACP,MACF,IAAK,IACH,MACF,IAAK,IACH,YAAK,SAAS,EACd,KAAK,SAAS,EACP,GACP,MACF,IAAK,IACH,YAAK,MAAM,YAAY,EAChB,GACP,MACF,IAAK,IACH,YAAK,SAAS,EACP,GACP,MACF,IAAK,IACH,MAAO,gBAET,IAAK,IACH,MAAO,aAET,IAAK,IACH,MAAO,iBAET,IAAK,IACH,MACF,IAAK,IACH,MAAO,SAET,IAAK,IACH,MAAO,IAET,IAAK,IACH,MAAO,IAET,IAAK,IACH,MAAO,IAET,IAAK,IACH,MAAO,IAET,IAAK,IACH,MAAO,IAET,IAAK,IACH,MAAO,IAET,IAAK,IACH,MAAO,IAET,IAAK,IACH,MAAO,IAET,IAAK,IACH,MAAO,IAET,IAAK,IACH,KAAK,SAAS,EACd,MACF,IAAK,IACH,MAAO,cAET,IAAK,IACH,KAAK,MAAM,SAAS,EACpB,MACF,IAAK,IACH,KAAK,SAAS,EACd,MACF,IAAK,IACH,MAAO,aAET,IAAK,IACH,KAAK,MAAM,UAAU,EACrB,MACF,IAAK,IACH,MAAO,IAET,IAAK,IACH,MAAO,IAET,IAAK,IACH,MAAO,IAET,IAAK,IACH,MAAO,IAET,IAAK,IACH,MAAO,IAET,IAAK,IACH,MAAO,IAET,IAAK,IACH,MAAO,IAET,IAAK,IACH,MAAO,IAET,IAAK,IACH,MAAO,IAET,IAAK,IACH,MAAO,IAET,IAAK,IACH,MAAO,IAET,IAAK,IACH,MAAO,IAET,IAAK,IACH,MAAO,IAET,IAAK,IACH,MAAO,IAET,IAAK,IACH,MAAO,IAET,IAAK,IACH,MAAO,IAET,IAAK,IACH,MAAO,IAET,IAAK,IACH,MAAO,OAET,IAAK,IACH,MAAO,IAET,IAAK,IACH,MAAO,IAET,IAAK,IACH,MAAO,IAET,IAAK,IACH,MAAO,IAET,IAAK,IACH,MAAO,IAET,IAAK,IACH,MAAO,SAET,IAAK,IACH,MAAO,SAET,IAAK,IACH,MAAO,IAET,IAAK,IACH,MAAO,IAET,IAAK,IACH,MAAO,IAET,IAAK,IACH,MAAO,cAET,IAAK,IACH,MAAO,IAET,IAAK,IACH,MAAO,KAET,IAAK,IACH,MAAO,IAET,IAAK,IACH,MAAO,IAET,IAAK,IACH,MAAO,EAEX,CACF,EAAG,WAAW,EACd,MAAO,CAAC,8BAA+B,8BAA+B,8BAA+B,8BAA+B,gCAAiC,wBAAyB,uBAAwB,uBAAwB,uBAAwB,uBAAwB,wBAAyB,YAAa,cAAe,mBAAoB,WAAY,yBAA0B,sBAAuB,cAAe,iBAAkB,iBAAkB,UAAW,aAAc,UAAW,aAAc,WAAY,aAAc,WAAY,eAAgB,kBAAmB,mBAAoB,mBAAoB,WAAY,WAAY,WAAY,SAAU,mBAAoB,WAAY,cAAe,eAAgB,mBAAoB,WAAY,WAAY,WAAY,WAAY,SAAU,cAAe,WAAY,YAAa,gBAAiB,kBAAmB,kBAAmB,cAAe,eAAgB,kBAAmB,cAAe,UAAW,UAAW,cAAe,WAAY,aAAc,SAAU,WAAY,aAAc,WAAY,eAAgB,gBAAiB,iBAAkB,cAAe,cAAe,cAAe,YAAa,YAAa,aAAc,cAAe,eAAgB,UAAW,YAAa,oBAAqB,YAAa,SAAU,UAAW,UAAW,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,WAAY,UAAW,UAAW,2BAA4B,cAAe,qxIAAsxI,UAAW,UAAW,QAAQ,EAC5wL,WAAY,CAAE,iBAAkB,CAAE,MAAS,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAE,EAAG,UAAa,EAAM,EAAG,UAAa,CAAE,MAAS,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAE,EAAG,UAAa,EAAM,EAAG,aAAc,CAAE,MAAS,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAE,EAAG,UAAa,EAAM,EAAG,MAAS,CAAE,MAAS,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAE,EAAG,UAAa,EAAM,EAAG,oBAAuB,CAAE,MAAS,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAE,EAAG,UAAa,EAAM,EAAG,UAAa,CAAE,MAAS,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAE,EAAG,UAAa,EAAM,EAAG,UAAa,CAAE,MAAS,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAE,EAAG,UAAa,EAAM,EAAG,cAAiB,CAAE,MAAS,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAE,EAAG,UAAa,EAAM,EAAG,cAAiB,CAAE,MAAS,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAE,EAAG,UAAa,EAAM,EAAG,KAAQ,CAAE,MAAS,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAE,EAAG,UAAa,EAAM,EAAG,OAAU,CAAE,MAAS,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAE,EAAG,UAAa,EAAM,EAAG,QAAW,CAAE,MAAS,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAE,EAAG,UAAa,EAAM,EAAG,SAAY,CAAE,MAAS,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAE,EAAG,UAAa,EAAM,EAAG,OAAU,CAAE,MAAS,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAE,EAAG,UAAa,EAAM,EAAG,QAAW,CAAE,MAAS,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAE,EAAG,UAAa,EAAK,CAAE,CACh2G,EACA,OAAOpC,CACT,EAAE,EACFvB,GAAQ,MAAQ2C,GAChB,SAASmB,IAAS,CAChB,KAAK,GAAK,CAAC,CACb,CACA,OAAA5H,EAAO4H,GAAQ,QAAQ,EACvBA,GAAO,UAAY9D,GACnBA,GAAQ,OAAS8D,GACV,IAAIA,EACb,EAAE,EACF9H,GAAO,OAASA,GAChB,IAAI+H,GAAuB/H,GAMvBgI,GAAmB,CAAC,IAAK,IAAK,IAAK,IAAK,EAAE,EAC1CC,GAAc,KAAM,CACtB,MAAO,CACL/H,EAAO,KAAM,aAAa,CAC5B,CACA,YAAY0E,EAAOsD,EAAY,CAC7B,KAAK,WAAaA,EAClB,KAAK,WAAa,GAClB,KAAK,WAAa,GAClB,KAAK,KAAO,GACZ,IAAMC,EAAiBC,GAAaxD,EAAOyD,EAAU,CAAC,EACtD,KAAK,YAAYF,CAAc,CACjC,CACA,mBAAoB,CAClB,IAAIG,EAAc,KAAK,WAAaC,EAAkB,KAAK,EAAE,EACzD,KAAK,aAAe,WACtBD,GAAe,IAAIC,EAAkB,KAAK,WAAW,KAAK,CAAC,CAAC,IACxD,KAAK,aACPD,GAAe,MAAQC,EAAkB,KAAK,UAAU,IAG5DD,EAAcA,EAAY,KAAK,EAC/B,IAAME,EAAW,KAAK,gBAAgB,EACtC,MAAO,CACL,YAAAF,EACA,SAAAE,CACF,CACF,CACA,YAAY5D,EAAO,CACjB,IAAI6D,EAAsB,GAC1B,GAAI,KAAK,aAAe,SAAU,CAEhC,IAAMvB,EADc,4CACM,KAAKtC,CAAK,EACpC,GAAIsC,EAAO,CACT,IAAMwB,EAAqBxB,EAAM,CAAC,EAAIA,EAAM,CAAC,EAAE,KAAK,EAAI,GAQxD,GAPIc,GAAiB,SAASU,CAAkB,IAC9C,KAAK,WAAaA,GAEpB,KAAK,GAAKxB,EAAM,CAAC,EACjB,KAAK,WAAaA,EAAM,CAAC,EAAIA,EAAM,CAAC,EAAE,KAAK,EAAI,GAC/CuB,EAAsBvB,EAAM,CAAC,EAAIA,EAAM,CAAC,EAAE,KAAK,EAAI,GACnD,KAAK,WAAaA,EAAM,CAAC,EAAIA,EAAM,CAAC,EAAE,KAAK,EAAI,GAC3CuB,IAAwB,GAAI,CAC9B,IAAME,EAAW,KAAK,WAAW,UAAU,KAAK,WAAW,OAAS,CAAC,EACjE,OAAO,KAAKA,CAAQ,IACtBF,EAAsBE,EACtB,KAAK,WAAa,KAAK,WAAW,UAAU,EAAG,KAAK,WAAW,OAAS,CAAC,EAE7E,CACF,CACF,KAAO,CACL,IAAMC,EAAShE,EAAM,OACfiE,EAAYjE,EAAM,UAAU,EAAG,CAAC,EAChC+D,EAAW/D,EAAM,UAAUgE,EAAS,CAAC,EACvCZ,GAAiB,SAASa,CAAS,IACrC,KAAK,WAAaA,GAEhB,OAAO,KAAKF,CAAQ,IACtBF,EAAsBE,GAExB,KAAK,GAAK/D,EAAM,UACd,KAAK,aAAe,GAAK,EAAI,EAC7B6D,IAAwB,GAAKG,EAASA,EAAS,CACjD,CACF,CACA,KAAK,WAAaH,EAClB,KAAK,GAAK,KAAK,GAAG,WAAW,GAAG,EAAI,IAAM,KAAK,GAAG,KAAK,EAAI,KAAK,GAAG,KAAK,EACxE,IAAMK,EAAe,GAAG,KAAK,WAAa,KAAO,KAAK,WAAa,EAAE,GAAGP,EAAkB,KAAK,EAAE,CAAC,GAAG,KAAK,aAAe,SAAW,IAAIA,EAAkB,KAAK,UAAU,CAAC,IAAI,KAAK,WAAa,MAAQA,EAAkB,KAAK,UAAU,EAAI,EAAE,GAAK,EAAE,GACtP,KAAK,KAAOO,EAAa,WAAW,IAAK,MAAM,EAAE,WAAW,IAAK,MAAM,EACnE,KAAK,KAAK,WAAW,QAAQ,IAC/B,KAAK,KAAO,KAAK,KAAK,QAAQ,SAAU,GAAG,EAE/C,CACA,iBAAkB,CAChB,OAAQ,KAAK,WAAY,CACvB,IAAK,IACH,MAAO,qBACT,IAAK,IACH,MAAO,6BACT,QACE,MAAO,EACX,CACF,CACF,EAGIC,GAAwB,WACxBC,GAAY,CAAC,EACbC,EAA0B,IAAI,IAC9BC,GAA+B,IAAI,IACnCC,GAAQ,CAAC,EACTC,EAAa,CAAC,EACdC,GAAe,EACfC,EAA6B,IAAI,IACjCC,GAAmB,EACnBC,GAAY,CAAC,EACbC,EAAgCvJ,EAAQwJ,GAAQC,EAAe,aAAaD,EAAKrB,EAAU,CAAC,EAAG,cAAc,EAC7GuB,EAAwC1J,EAAO,SAAS2J,EAAK,CAC/D,IAAMC,EAAKH,EAAe,aAAaE,EAAKxB,EAAU,CAAC,EACnD0B,EAAc,GACdC,EAAYF,EAChB,GAAIA,EAAG,QAAQ,GAAG,EAAI,EAAG,CACvB,IAAMG,EAAQH,EAAG,MAAM,GAAG,EAC1BE,EAAYP,EAAcQ,EAAM,CAAC,CAAC,EAClCF,EAAcN,EAAcQ,EAAM,CAAC,CAAC,CACtC,CACA,MAAO,CAAE,UAAAD,EAAW,KAAMD,CAAY,CACxC,EAAG,uBAAuB,EACtBG,GAAgChK,EAAO,SAAS2J,EAAKM,EAAO,CAC9D,IAAML,EAAKH,EAAe,aAAaE,EAAKxB,EAAU,CAAC,EACnD8B,IACFA,EAAQV,EAAcU,CAAK,GAE7B,GAAM,CAAE,UAAAH,CAAU,EAAIJ,EAAsBE,CAAE,EAC9Cb,EAAQ,IAAIe,CAAS,EAAE,MAAQG,EAC/BlB,EAAQ,IAAIe,CAAS,EAAE,KAAO,GAAGG,CAAK,GAAGlB,EAAQ,IAAIe,CAAS,EAAE,KAAO,IAAIf,EAAQ,IAAIe,CAAS,EAAE,IAAI,IAAM,EAAE,EAChH,EAAG,eAAe,EACdI,EAA2BlK,EAAO,SAAS2J,EAAK,CAClD,IAAMC,EAAKH,EAAe,aAAaE,EAAKxB,EAAU,CAAC,EACjD,CAAE,UAAA2B,EAAW,KAAAK,CAAK,EAAIT,EAAsBE,CAAE,EACpD,GAAIb,EAAQ,IAAIe,CAAS,EACvB,OAEF,IAAMM,EAAOX,EAAe,aAAaK,EAAW3B,EAAU,CAAC,EAC/DY,EAAQ,IAAIqB,EAAM,CAChB,GAAIA,EACJ,KAAAD,EACA,MAAOC,EACP,KAAM,GAAGA,CAAI,GAAGD,EAAO,OAAOA,CAAI,OAAS,EAAE,GAC7C,MAAO,WACP,WAAY,UACZ,QAAS,CAAC,EACV,QAAS,CAAC,EACV,YAAa,CAAC,EACd,OAAQ,CAAC,EACT,MAAOtB,GAAwBuB,EAAO,IAAMjB,EAC9C,CAAC,EACDA,IACF,EAAG,UAAU,EACTkB,GAA+BrK,EAAO,SAASiK,EAAOK,EAAS,CACjE,IAAMC,EAAiB,CACrB,GAAI,YAAYrB,EAAW,MAAM,GACjC,MAAAe,EACA,QAAAK,CACF,EACApB,EAAW,KAAKqB,CAAc,CAChC,EAAG,cAAc,EACbC,GAA8BxK,EAAO,SAAS2J,EAAK,CACrD,IAAMC,EAAKH,EAAe,aAAaE,EAAKxB,EAAU,CAAC,EACvD,GAAIY,EAAQ,IAAIa,CAAE,EAChB,OAAOb,EAAQ,IAAIa,CAAE,EAAE,MAEzB,MAAM,IAAI,MAAM,oBAAsBA,CAAE,CAC1C,EAAG,aAAa,EACZa,GAAyBzK,EAAO,UAAW,CAC7C8I,GAAY,CAAC,EACbC,EAA0B,IAAI,IAC9BE,GAAQ,CAAC,EACTC,EAAa,CAAC,EACdI,GAAY,CAAC,EACbA,GAAU,KAAKoB,EAAa,EAC5BtB,EAA6B,IAAI,IACjCC,GAAmB,EACnBsB,GAAY,KACZC,GAAM,CACR,EAAG,OAAO,EACNC,GAA2B7K,EAAO,SAAS4J,EAAI,CACjD,OAAOb,EAAQ,IAAIa,CAAE,CACvB,EAAG,UAAU,EACTkB,GAA6B9K,EAAO,UAAW,CACjD,OAAO+I,CACT,EAAG,YAAY,EACXgC,GAA+B/K,EAAO,UAAW,CACnD,OAAO8I,EACT,EAAG,cAAc,EACbkC,GAA2BhL,EAAO,UAAW,CAC/C,OAAOiJ,EACT,EAAG,UAAU,EACTgC,GAA8BjL,EAAO,SAASkL,EAAe,CAC/DC,GAAI,MAAM,oBAAsB,KAAK,UAAUD,CAAa,CAAC,EAC7D,IAAME,EAAe,CACnBC,EAAa,SACbA,EAAa,YACbA,EAAa,YACbA,EAAa,WACbA,EAAa,SACf,EACIH,EAAc,SAAS,QAAUG,EAAa,UAAY,CAACD,EAAa,SAASF,EAAc,SAAS,KAAK,GAC/GhB,EAASgB,EAAc,GAAG,EAC1Bb,GAAaa,EAAc,IAAKA,EAAc,GAAG,EACjDA,EAAc,IAAM,YAAYhC,EAAW,OAAS,CAAC,IAC5CgC,EAAc,SAAS,QAAUG,EAAa,UAAY,CAACD,EAAa,SAASF,EAAc,SAAS,KAAK,GACtHhB,EAASgB,EAAc,GAAG,EAC1Bb,GAAaa,EAAc,IAAKA,EAAc,GAAG,EACjDA,EAAc,IAAM,YAAYhC,EAAW,OAAS,CAAC,KAErDgB,EAASgB,EAAc,GAAG,EAC1BhB,EAASgB,EAAc,GAAG,GAE5BA,EAAc,IAAMxB,EAAsBwB,EAAc,GAAG,EAAE,UAC7DA,EAAc,IAAMxB,EAAsBwB,EAAc,GAAG,EAAE,UAC7DA,EAAc,eAAiBzB,EAAe,aAC5CyB,EAAc,eAAe,KAAK,EAClC/C,EAAU,CACZ,EACA+C,EAAc,eAAiBzB,EAAe,aAC5CyB,EAAc,eAAe,KAAK,EAClC/C,EAAU,CACZ,EACAW,GAAU,KAAKoC,CAAa,CAC9B,EAAG,aAAa,EACZI,GAAgCtL,EAAO,SAAS8J,EAAWyB,EAAY,CACzE,IAAMC,EAAqB9B,EAAsBI,CAAS,EAAE,UAC5Df,EAAQ,IAAIyC,CAAkB,EAAE,YAAY,KAAKD,CAAU,CAC7D,EAAG,eAAe,EACdE,GAA4BzL,EAAO,SAAS8J,EAAW4B,EAAQ,CACjExB,EAASJ,CAAS,EAClB,IAAM0B,EAAqB9B,EAAsBI,CAAS,EAAE,UACtD6B,EAAW5C,EAAQ,IAAIyC,CAAkB,EAC/C,GAAI,OAAOE,GAAW,SAAU,CAC9B,IAAME,EAAeF,EAAO,KAAK,EAC7BE,EAAa,WAAW,IAAI,GAAKA,EAAa,SAAS,IAAI,EAC7DD,EAAS,YAAY,KAAKpC,EAAcqC,EAAa,UAAU,EAAGA,EAAa,OAAS,CAAC,CAAC,CAAC,EAClFA,EAAa,QAAQ,GAAG,EAAI,EACrCD,EAAS,QAAQ,KAAK,IAAI5D,GAAY6D,EAAc,QAAQ,CAAC,EACpDA,GACTD,EAAS,QAAQ,KAAK,IAAI5D,GAAY6D,EAAc,WAAW,CAAC,CAEpE,CACF,EAAG,WAAW,EACVC,GAA6B7L,EAAO,SAAS8J,EAAWgC,EAAS,CAC/D,MAAM,QAAQA,CAAO,IACvBA,EAAQ,QAAQ,EAChBA,EAAQ,QAASJ,GAAWD,GAAU3B,EAAW4B,CAAM,CAAC,EAE5D,EAAG,YAAY,EACXK,GAA0B/L,EAAO,SAASgM,EAAMlC,EAAW,CAC7D,IAAMmC,EAAO,CACX,GAAI,OAAOhD,GAAM,MAAM,GACvB,MAAOa,EACP,KAAAkC,CACF,EACA/C,GAAM,KAAKgD,CAAI,CACjB,EAAG,SAAS,EACRC,GAA+BlM,EAAO,SAASiK,EAAO,CACxD,OAAIA,EAAM,WAAW,GAAG,IACtBA,EAAQA,EAAM,UAAU,CAAC,GAEpBV,EAAcU,EAAM,KAAK,CAAC,CACnC,EAAG,cAAc,EACbkC,GAA8BnM,EAAO,SAASoM,EAAKtC,EAAW,CAChEsC,EAAI,MAAM,GAAG,EAAE,QAAQ,SAASzC,EAAK,CACnC,IAAIC,EAAKD,EACL,KAAK,KAAKA,EAAI,CAAC,CAAC,IAClBC,EAAKf,GAAwBe,GAE/B,IAAMyC,EAAYtD,EAAQ,IAAIa,CAAE,EAC5ByC,IACFA,EAAU,YAAc,IAAMvC,EAElC,CAAC,CACH,EAAG,aAAa,EACZwC,GAA8BtM,EAAO,SAASoM,EAAKG,EAAO,CAC5D,QAAW3C,KAAMwC,EAAK,CACpB,IAAII,EAAaxD,GAAa,IAAIY,CAAE,EAChC4C,IAAe,SACjBA,EAAa,CAAE,GAAA5C,EAAI,OAAQ,CAAC,EAAG,WAAY,CAAC,CAAE,EAC9CZ,GAAa,IAAIY,EAAI4C,CAAU,GAE7BD,GACFA,EAAM,QAAQ,SAASE,EAAG,CACxB,GAAI,QAAQ,KAAKA,CAAC,EAAG,CACnB,IAAMC,EAAWD,EAAE,QAAQ,OAAQ,QAAQ,EAC3CD,EAAW,WAAW,KAAKE,CAAQ,CACrC,CACAF,EAAW,OAAO,KAAKC,CAAC,CAC1B,CAAC,EAEH1D,EAAQ,QAAS4D,GAAU,CACrBA,EAAM,WAAW,SAAS/C,CAAE,GAC9B+C,EAAM,OAAO,KAAK,GAAGJ,EAAM,QAASE,GAAMA,EAAE,MAAM,GAAG,CAAC,CAAC,CAE3D,CAAC,CACH,CACF,EAAG,aAAa,EACZG,GAA6B5M,EAAO,SAASoM,EAAKS,EAAS,CAC7DT,EAAI,MAAM,GAAG,EAAE,QAAQ,SAASxC,EAAI,CAC9BiD,IAAY,SACd9D,EAAQ,IAAIa,CAAE,EAAE,QAAUL,EAAcsD,CAAO,EAEnD,CAAC,CACH,EAAG,YAAY,EACXC,GAA6B9M,EAAO,SAAS4J,EAAImD,EAAW,CAC9D,OAAIA,GAAa3D,EAAW,IAAI2D,CAAS,EAChC3D,EAAW,IAAI2D,CAAS,EAAE,QAAQ,IAAInD,CAAE,EAAE,QAE5Cb,EAAQ,IAAIa,CAAE,EAAE,OACzB,EAAG,YAAY,EACXoD,GAA0BhN,EAAO,SAASoM,EAAKa,EAASC,EAAQ,CAClE,IAAMC,EAAShF,EAAU,EACzBiE,EAAI,MAAM,GAAG,EAAE,QAAQ,SAASzC,EAAK,CACnC,IAAIC,EAAKD,EACL,KAAK,KAAKA,EAAI,CAAC,CAAC,IAClBC,EAAKf,GAAwBe,GAE/B,IAAM+B,EAAW5C,EAAQ,IAAIa,CAAE,EAC3B+B,IACFA,EAAS,KAAOyB,GAAc,UAAUH,EAASE,CAAM,EACnDA,EAAO,gBAAkB,UAC3BxB,EAAS,WAAa,OACb,OAAOuB,GAAW,SAC3BvB,EAAS,WAAapC,EAAc2D,CAAM,EAE1CvB,EAAS,WAAa,SAG5B,CAAC,EACDQ,GAAYC,EAAK,WAAW,CAC9B,EAAG,SAAS,EACRiB,GAAgCrN,EAAO,SAASoM,EAAKkB,EAAcC,EAAc,CACnFnB,EAAI,MAAM,GAAG,EAAE,QAAQ,SAASxC,EAAI,CAClC4D,GAAa5D,EAAI0D,EAAcC,CAAY,EAC3CxE,EAAQ,IAAIa,CAAE,EAAE,aAAe,EACjC,CAAC,EACDuC,GAAYC,EAAK,WAAW,CAC9B,EAAG,eAAe,EACdoB,GAA+BxN,EAAO,SAASyN,EAAQH,EAAcC,EAAc,CACrF,IAAMG,EAAQjE,EAAe,aAAagE,EAAQtF,EAAU,CAAC,EAK7D,GAJeA,EAAU,EACd,gBAAkB,SAGzBmF,IAAiB,OACnB,OAEF,IAAM1D,EAAK8D,EACX,GAAI3E,EAAQ,IAAIa,CAAE,EAAG,CACnB,IAAM+D,EAASnD,GAAYZ,CAAE,EACzBgE,EAAU,CAAC,EACf,GAAI,OAAOL,GAAiB,SAAU,CACpCK,EAAUL,EAAa,MAAM,+BAA+B,EAC5D,QAASjG,EAAI,EAAGA,EAAIsG,EAAQ,OAAQtG,IAAK,CACvC,IAAIuG,EAAOD,EAAQtG,CAAC,EAAE,KAAK,EACvBuG,EAAK,WAAW,GAAG,GAAKA,EAAK,SAAS,GAAG,IAC3CA,EAAOA,EAAK,OAAO,EAAGA,EAAK,OAAS,CAAC,GAEvCD,EAAQtG,CAAC,EAAIuG,CACf,CACF,CACID,EAAQ,SAAW,GACrBA,EAAQ,KAAKD,CAAM,EAErBrE,GAAU,KAAK,UAAW,CACxB,IAAMwE,EAAO,SAAS,cAAc,QAAQH,CAAM,IAAI,EAClDG,IAAS,MACXA,EAAK,iBACH,QACA,UAAW,CACTV,GAAc,QAAQE,EAAc,GAAGM,CAAO,CAChD,EACA,EACF,CAEJ,CAAC,CACH,CACF,EAAG,cAAc,EACbG,GAAgC/N,EAAO,SAASgO,EAAS,CAC3D1E,GAAU,QAAQ,SAAS2E,EAAK,CAC9BA,EAAID,CAAO,CACb,CAAC,CACH,EAAG,eAAe,EACdE,GAAW,CACb,KAAM,EACN,YAAa,CACf,EACI7C,EAAe,CACjB,YAAa,EACb,UAAW,EACX,YAAa,EACb,WAAY,EACZ,SAAU,CACZ,EACIX,GAAgC1K,EAAO,SAASgO,EAAS,CAC3D,IAAIG,EAAcC,EAAO,iBAAiB,GACrCD,EAAY,SAAWA,GAAa,CAAC,EAAE,CAAC,IAAM,OACjDA,EAAcC,EAAO,MAAM,EAAE,OAAO,KAAK,EAAE,KAAK,QAAS,gBAAgB,EAAE,MAAM,UAAW,CAAC,GAEnFA,EAAOJ,CAAO,EAAE,OAAO,KAAK,EACtB,UAAU,QAAQ,EAC9B,GAAG,YAAa,UAAW,CAC/B,IAAMK,EAAKD,EAAO,IAAI,EAEtB,GADcC,EAAG,KAAK,OAAO,IACf,KACZ,OAEF,IAAMC,EAAO,KAAK,sBAAsB,EACxCH,EAAY,WAAW,EAAE,SAAS,GAAG,EAAE,MAAM,UAAW,IAAI,EAC5DA,EAAY,KAAKE,EAAG,KAAK,OAAO,CAAC,EAAE,MAAM,OAAQ,OAAO,QAAUC,EAAK,MAAQA,EAAK,MAAQA,EAAK,MAAQ,EAAI,IAAI,EAAE,MAAM,MAAO,OAAO,QAAUA,EAAK,IAAM,GAAK,SAAS,KAAK,UAAY,IAAI,EAC/LH,EAAY,KAAKA,EAAY,KAAK,EAAE,QAAQ,gBAAiB,OAAO,CAAC,EACrEE,EAAG,QAAQ,QAAS,EAAI,CAC1B,CAAC,EAAE,GAAG,WAAY,UAAW,CAC3BF,EAAY,WAAW,EAAE,SAAS,GAAG,EAAE,MAAM,UAAW,CAAC,EAC9CC,EAAO,IAAI,EACnB,QAAQ,QAAS,EAAK,CAC3B,CAAC,CACH,EAAG,eAAe,EAClB9E,GAAU,KAAKoB,EAAa,EAC5B,IAAIC,GAAY,KACZ4D,GAA+BvO,EAAO,IAAM2K,GAAW,cAAc,EACrE6D,GAA+BxO,EAAQyO,GAAQ,CACjD9D,GAAY8D,CACd,EAAG,cAAc,EACbC,GAA+B1O,EAAO,SAAS4J,EAAI,CACjDR,EAAW,IAAIQ,CAAE,IAGrBR,EAAW,IAAIQ,EAAI,CACjB,GAAAA,EACA,QAAyB,IAAI,IAC7B,SAAU,CAAC,EACX,MAAOf,GAAwBe,EAAK,IAAMP,EAC5C,CAAC,EACDA,KACF,EAAG,cAAc,EACbsF,GAA+B3O,EAAO,SAASoK,EAAM,CACvD,OAAOhB,EAAW,IAAIgB,CAAI,CAC5B,EAAG,cAAc,EACbwE,GAAgC5O,EAAO,UAAW,CACpD,OAAOoJ,CACT,EAAG,eAAe,EACdyF,GAAwC7O,EAAO,SAAS4J,EAAIkF,EAAY,CAC1E,GAAK1F,EAAW,IAAIQ,CAAE,EAGtB,QAAWQ,KAAQ0E,EAAY,CAC7B,GAAM,CAAE,UAAAhF,CAAU,EAAIJ,EAAsBU,CAAI,EAChDrB,EAAQ,IAAIe,CAAS,EAAE,OAASF,EAChCR,EAAW,IAAIQ,CAAE,EAAE,QAAQ,IAAIE,EAAWf,EAAQ,IAAIe,CAAS,CAAC,CAClE,CACF,EAAG,uBAAuB,EACtBiF,GAA8B/O,EAAO,SAAS4J,EAAIoF,EAAQ,CAC5D,IAAMC,EAAYlG,EAAQ,IAAIa,CAAE,EAChC,GAAI,GAACoF,GAAU,CAACC,GAGhB,QAAWxC,KAAKuC,EACVvC,EAAE,SAAS,GAAG,EAChBwC,EAAU,OAAO,KAAK,GAAGxC,EAAE,MAAM,GAAG,CAAC,EAErCwC,EAAU,OAAO,KAAKxC,CAAC,CAG7B,EAAG,aAAa,EAChB,SAASyC,GAAe/E,EAAM,CAC5B,IAAIgF,EACJ,OAAQhF,EAAM,CACZ,IAAK,GACHgF,EAAS,cACT,MACF,IAAK,GACHA,EAAS,YACT,MACF,IAAK,GACHA,EAAS,cACT,MACF,IAAK,GACHA,EAAS,aACT,MACF,IAAK,GACHA,EAAS,WACT,MACF,QACEA,EAAS,MACb,CACA,OAAOA,CACT,CACAnP,EAAOkP,GAAgB,gBAAgB,EACvC,IAAIE,GAA0BpP,EAAO,IAAM,CACzC,IAAMqP,EAAQ,CAAC,EACTC,EAAQ,CAAC,EACTnC,EAAShF,EAAU,EACzB,QAAWoH,KAAgBnG,EAAW,KAAK,EAAG,CAC5C,IAAM2D,EAAY3D,EAAW,IAAImG,CAAY,EAC7C,GAAIxC,EAAW,CACb,IAAMyC,EAAO,CACX,GAAIzC,EAAU,GACd,MAAOA,EAAU,GACjB,QAAS,GACT,QAASI,EAAO,MAAM,SAAW,GAEjC,MAAO,OACP,UAAW,CAAC,aAAc,eAAe,EACzC,KAAMA,EAAO,IACf,EACAkC,EAAM,KAAKG,CAAI,CACjB,CACF,CACA,QAAWC,KAAY1G,EAAQ,KAAK,EAAG,CACrC,IAAMsD,EAAYtD,EAAQ,IAAI0G,CAAQ,EACtC,GAAIpD,EAAW,CACb,IAAMmD,EAAOnD,EACbmD,EAAK,SAAWnD,EAAU,OAC1BmD,EAAK,KAAOrC,EAAO,KACnBkC,EAAM,KAAKG,CAAI,CACjB,CACF,CACA,IAAIE,EAAM,EACV,QAAWzD,KAAQhD,GAAO,CACxByG,IACA,IAAMC,EAAW,CACf,GAAI1D,EAAK,GACT,MAAOA,EAAK,KACZ,QAAS,GACT,MAAO,OACP,QAASkB,EAAO,MAAM,SAAW,EACjC,UAAW,CACT,mBACA,sBACA,SAASA,EAAO,eAAe,YAAY,GAC3C,WAAWA,EAAO,eAAe,eAAe,EAClD,EACA,KAAMA,EAAO,IACf,EACAkC,EAAM,KAAKM,CAAQ,EACnB,IAAMC,EAAc7G,EAAQ,IAAIkD,EAAK,KAAK,GAAG,IAAM,GACnD,GAAI2D,EAAa,CACf,IAAMC,EAAO,CACX,GAAI,WAAWH,CAAG,GAClB,MAAOzD,EAAK,GACZ,IAAK2D,EACL,KAAM,SACN,UAAW,SACX,QAAS,WACT,eAAgB,OAChB,aAAc,OACd,eAAgB,GAChB,WAAY,CAAC,EAAE,EACf,MAAO,CAAC,YAAY,EACpB,QAAS,SACT,KAAMzC,EAAO,IACf,EACAmC,EAAM,KAAKO,CAAI,CACjB,CACF,CACA,QAAWC,KAAc5G,EAAY,CACnC,IAAM6G,EAAgB,CACpB,GAAID,EAAW,GACf,MAAOA,EAAW,MAClB,QAAS,GACT,MAAO,OACP,UAAW,CAAC,aAAa,EACzB,KAAM3C,EAAO,IACf,EACAkC,EAAM,KAAKU,CAAa,CAC1B,CACAL,EAAM,EACN,QAAWxE,KAAiBpC,GAAW,CACrC4G,IACA,IAAMG,EAAO,CACX,GAAIG,GAAU9E,EAAc,IAAKA,EAAc,IAAK,CAClD,OAAQ,KACR,QAASwE,CACX,CAAC,EACD,MAAOxE,EAAc,IACrB,IAAKA,EAAc,IACnB,KAAM,SACN,MAAOA,EAAc,MACrB,SAAU,IACV,UAAW,SACX,QAAS,WACT,eAAgBgE,GAAehE,EAAc,SAAS,KAAK,EAC3D,aAAcgE,GAAehE,EAAc,SAAS,KAAK,EACzD,gBAAiBA,EAAc,iBAAmB,OAAS,GAAKA,EAAc,eAC9E,aAAcA,EAAc,iBAAmB,OAAS,GAAKA,EAAc,eAC3E,eAAgB,GAChB,WAAY,CAAC,uBAAuB,EACpC,MAAOA,EAAc,OAAS,GAC9B,QAASA,EAAc,SAAS,UAAY,EAAI,SAAW,QAC3D,KAAMiC,EAAO,IACf,EACAmC,EAAM,KAAKO,CAAI,CACjB,CACA,MAAO,CAAE,MAAAR,EAAO,MAAAC,EAAO,MAAO,CAAC,EAAG,OAAAnC,EAAQ,UAAWoB,GAAa,CAAE,CACtE,EAAG,SAAS,EACR0B,GAAkB,CACpB,YAAAC,GACA,YAAAC,GACA,kBAAAC,GACA,kBAAAC,GACA,UAA2BrQ,EAAO,IAAMmI,EAAU,EAAE,MAAO,WAAW,EACtE,SAAA+B,EACA,cAAA6D,GACA,MAAOtD,GACP,SAAAI,GACA,WAAAC,GACA,SAAAE,GACA,cAAAM,GACA,QAAAS,GACA,aAAAhB,GACA,YAAAE,GACA,aAAAsD,GACA,aAAAC,GACA,UAAA/C,GACA,WAAAI,GACA,aAAAK,GACA,SAAAgC,GACA,aAAA7C,EACA,cAAAgC,GACA,YAAAlB,GACA,YAAAG,GACA,QAAAU,GACA,WAAAF,GACA,WAAAF,GACA,YAAApC,GACA,gBAAA8F,GACA,gBAAAC,GACA,cAAAvG,GACA,aAAA0E,GACA,sBAAAG,GACA,aAAAF,GACA,cAAAC,GACA,YAAAG,GACA,QAAAK,EACF,EAGIoB,GAA4BxQ,EAAQyQ,GAAY;AAAA,UAC1CA,EAAQ,YAAcA,EAAQ,SAAS;AAAA;AAAA,iBAEhCA,EAAQ,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,WAUxBA,EAAQ,SAAS;AAAA;AAAA;AAAA,UAGlBA,EAAQ,OAAO;AAAA;AAAA;AAAA,UAGfA,EAAQ,SAAS;AAAA;AAAA;AAAA;AAAA,gBAIXA,EAAQ,OAAO;AAAA;AAAA;AAAA,gBAGfA,EAAQ,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YAWnBA,EAAQ,OAAO;AAAA,cACbA,EAAQ,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YAMpBA,EAAQ,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,UASpBA,EAAQ,OAAO;AAAA,YACbA,EAAQ,UAAU;AAAA;AAAA;AAAA;AAAA,YAIlBA,EAAQ,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,UAOpBA,EAAQ,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA,UAKfA,EAAQ,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA,YAKhBA,EAAQ,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,UAcnBA,EAAQ,SAAS;AAAA,YACfA,EAAQ,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA,UAKnBA,EAAQ,SAAS;AAAA,YACfA,EAAQ,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA,UAKnBA,EAAQ,SAAS;AAAA,YACfA,EAAQ,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA,UAKnBA,EAAQ,SAAS;AAAA,YACfA,EAAQ,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YAMjBA,EAAQ,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YAMjBA,EAAQ,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YAMjBA,EAAQ,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YAMjBA,EAAQ,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA,UAKnBA,EAAQ,OAAO;AAAA,YACbA,EAAQ,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA,UAKnBA,EAAQ,OAAO;AAAA,YACbA,EAAQ,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,UAYnBA,EAAQ,SAAS;AAAA;AAAA,EAExB,WAAW,EACVC,GAAiBF,GAGjBG,GAAyB3Q,EAAO,CAAC4Q,EAAYC,EAAa,OAAS,CACrE,GAAI,CAACD,EAAW,IACd,OAAOC,EAET,IAAIpC,EAAMoC,EACV,QAAWC,KAAiBF,EAAW,IACjCE,EAAc,OAAS,QACzBrC,EAAMqC,EAAc,OAGxB,OAAOrC,CACT,EAAG,QAAQ,EACPsC,GAA8B/Q,EAAO,SAASgM,EAAMgF,EAAY,CAClE,OAAOA,EAAW,GAAG,WAAW,CAClC,EAAG,YAAY,EACXC,GAAuBjR,EAAO,eAAegM,EAAMpC,EAAIsH,EAAUC,EAAM,CACzEhG,GAAI,KAAK,OAAO,EAChBA,GAAI,KAAK,6BAA8BvB,CAAE,EACzC,GAAM,CAAE,cAAAwH,EAAe,MAAOC,EAAM,OAAAC,CAAO,EAAInJ,EAAU,EACnDoJ,EAAcJ,EAAK,GAAG,QAAQ,EAC9BK,EAAMC,GAAkB7H,EAAIwH,CAAa,EAC/CG,EAAY,KAAOJ,EAAK,KACxBI,EAAY,gBAAkBG,GAA6BJ,CAAM,EACjEC,EAAY,YAAcF,GAAM,aAAe,GAC/CE,EAAY,YAAcF,GAAM,aAAe,GAC/CE,EAAY,QAAU,CAAC,cAAe,YAAa,cAAe,aAAc,UAAU,EAC1FA,EAAY,UAAY3H,EACxB,MAAM+H,GAAOJ,EAAaC,CAAG,EAC7B,IAAMI,EAAU,EAChBxE,GAAc,YACZoE,EACA,wBACAH,GAAM,gBAAkB,GACxBF,EAAK,GAAG,gBAAgB,CAC1B,EACAU,GAAoBL,EAAKI,EAAS,eAAgBP,GAAM,aAAe,EAAI,CAC7E,EAAG,MAAM,EACLS,GAAmC,CACrC,WAAYf,GACZ,KAAAE,GACA,OAAAN,EACF", + "names": ["parser", "o", "__name", "k", "v", "o2", "l", "$V0", "$V1", "$V2", "$V3", "$V4", "$V5", "$V6", "$V7", "$V8", "$V9", "$Va", "$Vb", "$Vc", "$Vd", "$Ve", "$Vf", "$Vg", "$Vh", "$Vi", "$Vj", "$Vk", "$Vl", "$Vm", "$Vn", "$Vo", "$Vp", "$Vq", "$Vr", "$Vs", "$Vt", "$Vu", "$Vv", "$Vw", "$Vx", "$Vy", "$Vz", "$VA", "$VB", "$VC", "$VD", "$VE", "$VF", "$VG", "$VH", "$VI", "$VJ", "$VK", "$VL", "$VM", "$VN", "$VO", "$VP", "$VQ", "$VR", "$VS", "$VT", "$VU", "parser2", "yytext", "yyleng", "yylineno", "yy", "yystate", "$$", "_$", "$0", "str", "hash", "error", "input", "self", "stack", "tstack", "vstack", "lstack", "table", "recovering", "TERROR", "EOF", "args", "lexer2", "sharedState", "yyloc", "ranges", "popStack", "n", "lex", "token", "symbol", "preErrorSymbol", "state", "action", "a", "r", "yyval", "p", "len", "newState", "expected", "errStr", "lexer", "ch", "lines", "oldLines", "past", "next", "pre", "match", "indexed_rule", "backup", "tempMatch", "index", "rules", "i", "condition", "yy_", "$avoiding_name_collisions", "YY_START", "YYSTATE", "Parser", "classDiagram_default", "visibilityValues", "ClassMember", "memberType", "sanitizedInput", "sanitizeText", "getConfig2", "displayText", "parseGenericTypes", "cssStyle", "potentialClassifier", "detectedVisibility", "lastChar", "length", "firstChar", "combinedText", "MERMAID_DOM_ID_PREFIX", "relations", "classes", "styleClasses", "notes", "interfaces", "classCounter", "namespaces", "namespaceCounter", "functions", "sanitizeText2", "txt", "common_default", "splitClassNameAndType", "_id", "id", "genericType", "className", "split", "setClassLabel", "label", "addClass", "type", "name", "addInterface", "classId", "classInterface", "lookUpDomId", "clear2", "setupToolTips", "direction", "clear", "getClass", "getClasses", "getRelations", "getNotes", "addRelation", "classRelation", "log", "invalidTypes", "relationType", "addAnnotation", "annotation", "validatedClassName", "addMember", "member", "theClass", "memberString", "addMembers", "members", "addNote", "text", "note", "cleanupLabel", "setCssClass", "ids", "classNode", "defineClass", "style", "styleClass", "s", "newStyle", "value", "setTooltip", "tooltip", "getTooltip", "namespace", "setLink", "linkStr", "target", "config", "utils_default", "setClickEvent", "functionName", "functionArgs", "setClickFunc", "_domId", "domId", "elemId", "argList", "item", "elem", "bindFunctions", "element", "fun", "lineType", "tooltipElem", "select_default", "el", "rect", "getDirection", "setDirection", "dir", "addNamespace", "getNamespace", "getNamespaces", "addClassesToNamespace", "classNames", "setCssStyle", "styles", "thisClass", "getArrowMarker", "marker", "getData", "nodes", "edges", "namespaceKey", "node", "classKey", "cnt", "noteNode", "noteClassId", "edge", "_interface", "interfaceNode", "getEdgeId", "classDb_default", "setAccTitle", "getAccTitle", "getAccDescription", "setAccDescription", "setDiagramTitle", "getDiagramTitle", "getStyles", "options", "styles_default", "getDir", "parsedItem", "defaultDir", "parsedItemDoc", "getClasses2", "diagramObj", "draw", "_version", "diag", "securityLevel", "conf", "layout", "data4Layout", "svg", "getDiagramElement", "getRegisteredLayoutAlgorithm", "render", "padding", "setupViewPortForSVG", "classRenderer_v3_unified_default"] +} diff --git a/docs/_site/public/chunk-5IIW54K6.min.js b/docs/_site/public/chunk-5IIW54K6.min.js new file mode 100644 index 0000000..88298d6 --- /dev/null +++ b/docs/_site/public/chunk-5IIW54K6.min.js @@ -0,0 +1,2 @@ +import{Z as s,h as n,ia as e}from"./chunk-U3SD26FK.min.js";var a=n(t=>{let{securityLevel:c}=s(),o=e("body");if(c==="sandbox"){let m=e(`#i${t}`).node()?.contentDocument??document;o=e(m.body)}return o.select(`#${t}`)},"selectSvgElement");export{a}; +//# sourceMappingURL=chunk-5IIW54K6.min.js.map diff --git a/docs/_site/public/chunk-5IIW54K6.min.js.map b/docs/_site/public/chunk-5IIW54K6.min.js.map new file mode 100644 index 0000000..d60f137 --- /dev/null +++ b/docs/_site/public/chunk-5IIW54K6.min.js.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": ["../../node_modules/mermaid/dist/chunks/mermaid.core/chunk-EJ4ZWXGL.mjs"], + "sourcesContent": ["import {\n __name,\n getConfig2 as getConfig\n} from \"./chunk-6DBFFHIP.mjs\";\n\n// src/rendering-util/selectSvgElement.ts\nimport { select } from \"d3\";\nvar selectSvgElement = /* @__PURE__ */ __name((id) => {\n const { securityLevel } = getConfig();\n let root = select(\"body\");\n if (securityLevel === \"sandbox\") {\n const sandboxElement = select(`#i${id}`);\n const doc = sandboxElement.node()?.contentDocument ?? document;\n root = select(doc.body);\n }\n const svg = root.select(`#${id}`);\n return svg;\n}, \"selectSvgElement\");\n\nexport {\n selectSvgElement\n};\n"], + "mappings": "2DAOA,IAAIA,EAAmCC,EAAQC,GAAO,CACpD,GAAM,CAAE,cAAAC,CAAc,EAAIC,EAAU,EAChCC,EAAOC,EAAO,MAAM,EACxB,GAAIH,IAAkB,UAAW,CAE/B,IAAMI,EADiBD,EAAO,KAAKJ,CAAE,EAAE,EACZ,KAAK,GAAG,iBAAmB,SACtDG,EAAOC,EAAOC,EAAI,IAAI,CACxB,CAEA,OADYF,EAAK,OAAO,IAAIH,CAAE,EAAE,CAElC,EAAG,kBAAkB", + "names": ["selectSvgElement", "__name", "id", "securityLevel", "getConfig2", "root", "select_default", "doc"] +} diff --git a/docs/_site/public/chunk-6YMKSKZH.min.js b/docs/_site/public/chunk-6YMKSKZH.min.js new file mode 100644 index 0000000..df5d623 --- /dev/null +++ b/docs/_site/public/chunk-6YMKSKZH.min.js @@ -0,0 +1,221 @@ +import{a as ee,b as se}from"./chunk-ISDTAGDN.min.js";import{b as te}from"./chunk-JL3VILNY.min.js";import{e as Qt,m as Zt}from"./chunk-PYPO7LRM.min.js";import{N as P,S as Ht,T as zt,U as Wt,V as Xt,W as Kt,X as Jt,Y as qt,Z as C,h as r,j as E}from"./chunk-U3SD26FK.min.js";var Nt=function(){var t=r(function($,o,u,n){for(u=u||{},n=$.length;n--;u[$[n]]=o);return u},"o"),e=[1,2],c=[1,3],a=[1,4],d=[2,4],i=[1,9],p=[1,11],g=[1,16],l=[1,17],_=[1,18],k=[1,19],O=[1,32],L=[1,20],f=[1,21],A=[1,22],I=[1,23],Y=[1,24],F=[1,26],N=[1,27],w=[1,28],st=[1,29],rt=[1,30],it=[1,31],at=[1,34],nt=[1,35],lt=[1,36],ot=[1,37],X=[1,33],S=[1,4,5,16,17,19,21,22,24,25,26,27,28,29,33,35,37,38,42,45,48,49,50,51,54],ct=[1,4,5,14,15,16,17,19,21,22,24,25,26,27,28,29,33,35,37,38,42,45,48,49,50,51,54],Mt=[4,5,16,17,19,21,22,24,25,26,27,28,29,33,35,37,38,42,45,48,49,50,51,54],Dt={trace:r(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,classDef:38,CLASSDEF_ID:39,CLASSDEF_STYLEOPTS:40,DEFAULT:41,style:42,STYLE_IDS:43,STYLEDEF_STYLEOPTS:44,class:45,CLASSENTITY_IDS:46,STYLECLASS:47,direction_tb:48,direction_bt:49,direction_rl:50,direction_lr:51,eol:52,";":53,EDGE_STATE:54,STYLE_SEPARATOR:55,left_of:56,right_of:57,$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:"classDef",39:"CLASSDEF_ID",40:"CLASSDEF_STYLEOPTS",41:"DEFAULT",42:"style",43:"STYLE_IDS",44:"STYLEDEF_STYLEOPTS",45:"class",46:"CLASSENTITY_IDS",47:"STYLECLASS",48:"direction_tb",49:"direction_bt",50:"direction_rl",51:"direction_lr",53:";",54:"EDGE_STATE",55:"STYLE_SEPARATOR",56:"left_of",57:"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],[10,3],[10,3],[11,3],[12,3],[32,1],[32,1],[32,1],[32,1],[52,1],[52,1],[13,1],[13,1],[13,3],[13,3],[30,1],[30,1]],performAction:r(function(o,u,n,y,b,s,K){var h=s.length-1;switch(b){case 3:return y.setRootDoc(s[h]),s[h];break;case 4:this.$=[];break;case 5:s[h]!="nl"&&(s[h-1].push(s[h]),this.$=s[h-1]);break;case 6:case 7:this.$=s[h];break;case 8:this.$="nl";break;case 12:this.$=s[h];break;case 13:let ht=s[h-1];ht.description=y.trimColon(s[h]),this.$=ht;break;case 14:this.$={stmt:"relation",state1:s[h-2],state2:s[h]};break;case 15:let dt=y.trimColon(s[h]);this.$={stmt:"relation",state1:s[h-3],state2:s[h-1],description:dt};break;case 19:this.$={stmt:"state",id:s[h-3],type:"default",description:"",doc:s[h-1]};break;case 20:var V=s[h],H=s[h-2].trim();if(s[h].match(":")){var J=s[h].split(":");V=J[0],H=[H,J[1]]}this.$={stmt:"state",id:V,type:"default",description:H};break;case 21:this.$={stmt:"state",id:s[h-3],type:"default",description:s[h-5],doc:s[h-1]};break;case 22:this.$={stmt:"state",id:s[h],type:"fork"};break;case 23:this.$={stmt:"state",id:s[h],type:"join"};break;case 24:this.$={stmt:"state",id:s[h],type:"choice"};break;case 25:this.$={stmt:"state",id:y.getDividerId(),type:"divider"};break;case 26:this.$={stmt:"state",id:s[h-1].trim(),note:{position:s[h-2].trim(),text:s[h].trim()}};break;case 29:this.$=s[h].trim(),y.setAccTitle(this.$);break;case 30:case 31:this.$=s[h].trim(),y.setAccDescription(this.$);break;case 32:case 33:this.$={stmt:"classDef",id:s[h-1].trim(),classes:s[h].trim()};break;case 34:this.$={stmt:"style",id:s[h-1].trim(),styleClass:s[h].trim()};break;case 35:this.$={stmt:"applyClass",id:s[h-1].trim(),styleClass:s[h].trim()};break;case 36:y.setDirection("TB"),this.$={stmt:"dir",value:"TB"};break;case 37:y.setDirection("BT"),this.$={stmt:"dir",value:"BT"};break;case 38:y.setDirection("RL"),this.$={stmt:"dir",value:"RL"};break;case 39:y.setDirection("LR"),this.$={stmt:"dir",value:"LR"};break;case 42:case 43:this.$={stmt:"state",id:s[h].trim(),type:"default",description:""};break;case 44:this.$={stmt:"state",id:s[h-2].trim(),classes:[s[h].trim()],type:"default",description:""};break;case 45:this.$={stmt:"state",id:s[h-2].trim(),classes:[s[h].trim()],type:"default",description:""};break}},"anonymous"),table:[{3:1,4:e,5:c,6:a},{1:[3]},{3:5,4:e,5:c,6:a},{3:6,4:e,5:c,6:a},t([1,4,5,16,17,19,22,24,25,26,27,28,29,33,35,37,38,42,45,48,49,50,51,54],d,{7:7}),{1:[2,1]},{1:[2,2]},{1:[2,3],4:i,5:p,8:8,9:10,10:12,11:13,12:14,13:15,16:g,17:l,19:_,22:k,24:O,25:L,26:f,27:A,28:I,29:Y,32:25,33:F,35:N,37:w,38:st,42:rt,45:it,48:at,49:nt,50:lt,51:ot,54:X},t(S,[2,5]),{9:38,10:12,11:13,12:14,13:15,16:g,17:l,19:_,22:k,24:O,25:L,26:f,27:A,28:I,29:Y,32:25,33:F,35:N,37:w,38:st,42:rt,45:it,48:at,49:nt,50:lt,51:ot,54:X},t(S,[2,7]),t(S,[2,8]),t(S,[2,9]),t(S,[2,10]),t(S,[2,11]),t(S,[2,12],{14:[1,39],15:[1,40]}),t(S,[2,16]),{18:[1,41]},t(S,[2,18],{20:[1,42]}),{23:[1,43]},t(S,[2,22]),t(S,[2,23]),t(S,[2,24]),t(S,[2,25]),{30:44,31:[1,45],56:[1,46],57:[1,47]},t(S,[2,28]),{34:[1,48]},{36:[1,49]},t(S,[2,31]),{39:[1,50],41:[1,51]},{43:[1,52]},{46:[1,53]},t(ct,[2,42],{55:[1,54]}),t(ct,[2,43],{55:[1,55]}),t(S,[2,36]),t(S,[2,37]),t(S,[2,38]),t(S,[2,39]),t(S,[2,6]),t(S,[2,13]),{13:56,24:O,54:X},t(S,[2,17]),t(Mt,d,{7:57}),{24:[1,58]},{24:[1,59]},{23:[1,60]},{24:[2,46]},{24:[2,47]},t(S,[2,29]),t(S,[2,30]),{40:[1,61]},{40:[1,62]},{44:[1,63]},{47:[1,64]},{24:[1,65]},{24:[1,66]},t(S,[2,14],{14:[1,67]}),{4:i,5:p,8:8,9:10,10:12,11:13,12:14,13:15,16:g,17:l,19:_,21:[1,68],22:k,24:O,25:L,26:f,27:A,28:I,29:Y,32:25,33:F,35:N,37:w,38:st,42:rt,45:it,48:at,49:nt,50:lt,51:ot,54:X},t(S,[2,20],{20:[1,69]}),{31:[1,70]},{24:[1,71]},t(S,[2,32]),t(S,[2,33]),t(S,[2,34]),t(S,[2,35]),t(ct,[2,44]),t(ct,[2,45]),t(S,[2,15]),t(S,[2,19]),t(Mt,d,{7:72}),t(S,[2,26]),t(S,[2,27]),{4:i,5:p,8:8,9:10,10:12,11:13,12:14,13:15,16:g,17:l,19:_,21:[1,73],22:k,24:O,25:L,26:f,27:A,28:I,29:Y,32:25,33:F,35:N,37:w,38:st,42:rt,45:it,48:at,49:nt,50:lt,51:ot,54:X},t(S,[2,21])],defaultActions:{5:[2,1],6:[2,2],46:[2,46],47:[2,47]},parseError:r(function(o,u){if(u.recoverable)this.trace(o);else{var n=new Error(o);throw n.hash=u,n}},"parseError"),parse:r(function(o){var u=this,n=[0],y=[],b=[null],s=[],K=this.table,h="",V=0,H=0,J=0,ht=2,dt=1,Pe=s.slice.call(arguments,1),T=Object.create(this.lexer),M={yy:{}};for(var Ct in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Ct)&&(M.yy[Ct]=this.yy[Ct]);T.setInput(o,M.yy),M.yy.lexer=T,M.yy.parser=this,typeof T.yylloc>"u"&&(T.yylloc={});var xt=T.yylloc;s.push(xt);var Ge=T.options&&T.options.ranges;typeof M.yy.parseError=="function"?this.parseError=M.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Be(D){n.length=n.length-2*D,b.length=b.length-D,s.length=s.length-D}r(Be,"popStack");function Ut(){var D;return D=y.pop()||T.lex()||dt,typeof D!="number"&&(D instanceof Array&&(y=D,D=y.pop()),D=u.symbols_[D]||D),D}r(Ut,"lex");for(var v,At,U,x,As,Lt,z={},ft,R,jt,pt;;){if(U=n[n.length-1],this.defaultActions[U]?x=this.defaultActions[U]:((v===null||typeof v>"u")&&(v=Ut()),x=K[U]&&K[U][v]),typeof x>"u"||!x.length||!x[0]){var It="";pt=[];for(ft in K[U])this.terminals_[ft]&&ft>ht&&pt.push("'"+this.terminals_[ft]+"'");T.showPosition?It="Parse error on line "+(V+1)+`: +`+T.showPosition()+` +Expecting `+pt.join(", ")+", got '"+(this.terminals_[v]||v)+"'":It="Parse error on line "+(V+1)+": Unexpected "+(v==dt?"end of input":"'"+(this.terminals_[v]||v)+"'"),this.parseError(It,{text:T.match,token:this.terminals_[v]||v,line:T.yylineno,loc:xt,expected:pt})}if(x[0]instanceof Array&&x.length>1)throw new Error("Parse Error: multiple actions possible at state: "+U+", token: "+v);switch(x[0]){case 1:n.push(v),b.push(T.yytext),s.push(T.yylloc),n.push(x[1]),v=null,At?(v=At,At=null):(H=T.yyleng,h=T.yytext,V=T.yylineno,xt=T.yylloc,J>0&&J--);break;case 2:if(R=this.productions_[x[1]][1],z.$=b[b.length-R],z._$={first_line:s[s.length-(R||1)].first_line,last_line:s[s.length-1].last_line,first_column:s[s.length-(R||1)].first_column,last_column:s[s.length-1].last_column},Ge&&(z._$.range=[s[s.length-(R||1)].range[0],s[s.length-1].range[1]]),Lt=this.performAction.apply(z,[h,H,V,M.yy,x[1],b,s].concat(Pe)),typeof Lt<"u")return Lt;R&&(n=n.slice(0,-1*R*2),b=b.slice(0,-1*R),s=s.slice(0,-1*R)),n.push(this.productions_[x[1]][0]),b.push(z.$),s.push(z._$),jt=K[n[n.length-2]][n[n.length-1]],n.push(jt);break;case 3:return!0}}return!0},"parse")},$e=function(){var $={EOF:1,parseError:r(function(u,n){if(this.yy.parser)this.yy.parser.parseError(u,n);else throw new Error(u)},"parseError"),setInput:r(function(o,u){return this.yy=u||this.yy||{},this._input=o,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:r(function(){var o=this._input[0];this.yytext+=o,this.yyleng++,this.offset++,this.match+=o,this.matched+=o;var u=o.match(/(?:\r\n?|\n).*/g);return u?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),o},"input"),unput:r(function(o){var u=o.length,n=o.split(/(?:\r\n?|\n)/g);this._input=o+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-u),this.offset-=u;var 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),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===y.length?this.yylloc.first_column:0)+y[y.length-n.length].length-n[0].length:this.yylloc.first_column-u},this.options.ranges&&(this.yylloc.range=[b[0],b[0]+this.yyleng-u]),this.yyleng=this.yytext.length,this},"unput"),more:r(function(){return this._more=!0,this},"more"),reject:r(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:r(function(o){this.unput(this.match.slice(o))},"less"),pastInput:r(function(){var o=this.matched.substr(0,this.matched.length-this.match.length);return(o.length>20?"...":"")+o.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:r(function(){var o=this.match;return o.length<20&&(o+=this._input.substr(0,20-o.length)),(o.substr(0,20)+(o.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:r(function(){var o=this.pastInput(),u=new Array(o.length+1).join("-");return o+this.upcomingInput()+` +`+u+"^"},"showPosition"),test_match:r(function(o,u){var n,y,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))),y=o[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+o[0].length},this.yytext+=o[0],this.match+=o[0],this.matches=o,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(o[0].length),this.matched+=o[0],n=this.performAction.call(this,this.yy,this,u,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),n)return n;if(this._backtrack){for(var s in b)this[s]=b[s];return!1}return!1},"test_match"),next:r(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var o,u,n,y;this._more||(this.yytext="",this.match="");for(var b=this._currentRules(),s=0;su[0].length)){if(u=n,y=s,this.options.backtrack_lexer){if(o=this.test_match(n,b[s]),o!==!1)return o;if(this._backtrack){u=!1;continue}else return!1}else if(!this.options.flex)break}return u?(o=this.test_match(u,b[y]),o!==!1?o:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:r(function(){var u=this.next();return u||this.lex()},"lex"),begin:r(function(u){this.conditionStack.push(u)},"begin"),popState:r(function(){var u=this.conditionStack.length-1;return u>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:r(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:r(function(u){return u=this.conditionStack.length-1-Math.abs(u||0),u>=0?this.conditionStack[u]:"INITIAL"},"topState"),pushState:r(function(u){this.begin(u)},"pushState"),stateStackSize:r(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:r(function(u,n,y,b){var s=b;switch(y){case 0:return 41;case 1:return 48;case 2:return 49;case 3:return 50;case 4:return 51;case 5:break;case 6:break;case 7:return 5;case 8:break;case 9:break;case 10:break;case 11:break;case 12:return this.pushState("SCALE"),17;break;case 13:return 18;case 14:this.popState();break;case 15:return this.begin("acc_title"),33;break;case 16:return this.popState(),"acc_title_value";break;case 17:return this.begin("acc_descr"),35;break;case 18:return this.popState(),"acc_descr_value";break;case 19:this.begin("acc_descr_multiline");break;case 20:this.popState();break;case 21:return"acc_descr_multiline_value";case 22:return this.pushState("CLASSDEF"),38;break;case 23:return this.popState(),this.pushState("CLASSDEFID"),"DEFAULT_CLASSDEF_ID";break;case 24:return this.popState(),this.pushState("CLASSDEFID"),39;break;case 25:return this.popState(),40;break;case 26:return this.pushState("CLASS"),45;break;case 27:return this.popState(),this.pushState("CLASS_STYLE"),46;break;case 28:return this.popState(),47;break;case 29:return this.pushState("STYLE"),42;break;case 30:return this.popState(),this.pushState("STYLEDEF_STYLES"),43;break;case 31:return this.popState(),44;break;case 32:return this.pushState("SCALE"),17;break;case 33:return 18;case 34:this.popState();break;case 35:this.pushState("STATE");break;case 36:return this.popState(),n.yytext=n.yytext.slice(0,-8).trim(),25;break;case 37:return this.popState(),n.yytext=n.yytext.slice(0,-8).trim(),26;break;case 38:return this.popState(),n.yytext=n.yytext.slice(0,-10).trim(),27;break;case 39:return this.popState(),n.yytext=n.yytext.slice(0,-8).trim(),25;break;case 40:return this.popState(),n.yytext=n.yytext.slice(0,-8).trim(),26;break;case 41:return this.popState(),n.yytext=n.yytext.slice(0,-10).trim(),27;break;case 42:return 48;case 43:return 49;case 44:return 50;case 45:return 51;case 46:this.pushState("STATE_STRING");break;case 47:return this.pushState("STATE_ID"),"AS";break;case 48:return this.popState(),"ID";break;case 49:this.popState();break;case 50:return"STATE_DESCR";case 51:return 19;case 52:this.popState();break;case 53:return this.popState(),this.pushState("struct"),20;break;case 54:break;case 55:return this.popState(),21;break;case 56:break;case 57:return this.begin("NOTE"),29;break;case 58:return this.popState(),this.pushState("NOTE_ID"),56;break;case 59:return this.popState(),this.pushState("NOTE_ID"),57;break;case 60:this.popState(),this.pushState("FLOATING_NOTE");break;case 61:return this.popState(),this.pushState("FLOATING_NOTE_ID"),"AS";break;case 62:break;case 63:return"NOTE_TEXT";case 64:return this.popState(),"ID";break;case 65:return this.popState(),this.pushState("NOTE_TEXT"),24;break;case 66:return this.popState(),n.yytext=n.yytext.substr(2).trim(),31;break;case 67:return this.popState(),n.yytext=n.yytext.slice(0,-8).trim(),31;break;case 68:return 6;case 69:return 6;case 70:return 16;case 71:return 54;case 72:return 24;case 73:return n.yytext=n.yytext.trim(),14;break;case 74:return 15;case 75:return 28;case 76:return 55;case 77:return 5;case 78:return"INVALID"}},"anonymous"),rules:[/^(?:default\b)/i,/^(?:.*direction\s+TB[^\n]*)/i,/^(?:.*direction\s+BT[^\n]*)/i,/^(?:.*direction\s+RL[^\n]*)/i,/^(?:.*direction\s+LR[^\n]*)/i,/^(?:%%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n]+)/i,/^(?:[\s]+)/i,/^(?:((?!\n)\s)+)/i,/^(?:#[^\n]*)/i,/^(?:%[^\n]*)/i,/^(?:scale\s+)/i,/^(?:\d+)/i,/^(?:\s+width\b)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:classDef\s+)/i,/^(?:DEFAULT\s+)/i,/^(?:\w+\s+)/i,/^(?:[^\n]*)/i,/^(?:class\s+)/i,/^(?:(\w+)+((,\s*\w+)*))/i,/^(?:[^\n]*)/i,/^(?: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:[9,10],inclusive:!1},struct:{rules:[9,10,22,26,29,35,42,43,44,45,54,55,56,57,71,72,73,74,75],inclusive:!1},FLOATING_NOTE_ID:{rules:[64],inclusive:!1},FLOATING_NOTE:{rules:[61,62,63],inclusive:!1},NOTE_TEXT:{rules:[66,67],inclusive:!1},NOTE_ID:{rules:[65],inclusive:!1},NOTE:{rules:[58,59,60],inclusive:!1},STYLEDEF_STYLEOPTS:{rules:[],inclusive:!1},STYLEDEF_STYLES:{rules:[31],inclusive:!1},STYLE_IDS:{rules:[],inclusive:!1},STYLE:{rules:[30],inclusive:!1},CLASS_STYLE:{rules:[28],inclusive:!1},CLASS:{rules:[27],inclusive:!1},CLASSDEFID:{rules:[25],inclusive:!1},CLASSDEF:{rules:[23,24],inclusive:!1},acc_descr_multiline:{rules:[20,21],inclusive:!1},acc_descr:{rules:[18],inclusive:!1},acc_title:{rules:[16],inclusive:!1},SCALE:{rules:[13,14,33,34],inclusive:!1},ALIAS:{rules:[],inclusive:!1},STATE_ID:{rules:[48],inclusive:!1},STATE_STRING:{rules:[49,50],inclusive:!1},FORK_STATE:{rules:[],inclusive:!1},STATE:{rules:[9,10,36,37,38,39,40,41,46,47,51,52,53],inclusive:!1},ID:{rules:[9,10],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,8,10,11,12,15,17,19,22,26,29,32,35,53,57,68,69,70,71,72,73,74,76,77,78],inclusive:!0}}};return $}();Dt.lexer=$e;function ut(){this.yy={}}return r(ut,"Parser"),ut.prototype=Dt,Dt.Parser=ut,new ut}();Nt.parser=Nt;var Ns=Nt,Ye="LR",ue="TB",_t="state",$t="relation",Fe="classDef",Ve="style",Me="applyClass",tt="default",he="divider",de="fill:none",fe="fill: #333",pe="c",Se="text",ye="normal",Rt="rect",Ot="rectWithTitle",Ue="stateStart",je="stateEnd",re="divider",ie="roundedWithTitle",He="note",ze="noteGroup",et="statediagram",We="state",Xe=`${et}-${We}`,ge="transition",Ke="note",Je="note-edge",qe=`${ge} ${Je}`,Qe=`${et}-${Ke}`,Ze="cluster",ts=`${et}-${Ze}`,es="cluster-alt",ss=`${et}-${es}`,be="parent",_e="note",rs="state",Pt="----",is=`${Pt}${_e}`,ae=`${Pt}${be}`,Te=r((t,e=ue)=>{if(!t.doc)return e;let c=e;for(let a of t.doc)a.stmt==="dir"&&(c=a.value);return c},"getDir"),as=r(function(t,e){return e.db.extract(e.db.getRootDocV2()),e.db.getClasses()},"getClasses"),ns=r(async function(t,e,c,a){E.info("REF0:"),E.info("Drawing state diagram (v2)",e);let{securityLevel:d,state:i,layout:p}=C();a.db.extract(a.db.getRootDocV2());let g=a.db.getData(),l=ee(e,d);g.type=a.type,g.layoutAlgorithm=p,g.nodeSpacing=i?.nodeSpacing||50,g.rankSpacing=i?.rankSpacing||50,g.markers=["barb"],g.diagramId=e,await te(g,l);let _=8;Zt.insertTitle(l,"statediagramTitleText",i?.titleTopMargin??25,a.db.getDiagramTitle()),se(l,_,et,i?.useMaxWidth??!0)},"draw"),ws={getClasses:as,draw:ns,getDir:Te},yt=new Map,G=0;function gt(t="",e=0,c="",a=Pt){let d=c!==null&&c.length>0?`${a}${c}`:"";return`${rs}-${t}${d}-${e}`}r(gt,"stateDomId");var ls=r((t,e,c,a,d,i,p,g)=>{E.trace("items",e),e.forEach(l=>{switch(l.stmt){case _t:Q(t,l,c,a,d,i,p,g);break;case tt:Q(t,l,c,a,d,i,p,g);break;case $t:{Q(t,l.state1,c,a,d,i,p,g),Q(t,l.state2,c,a,d,i,p,g);let _={id:"edge"+G,start:l.state1.id,end:l.state2.id,arrowhead:"normal",arrowTypeEnd:"arrow_barb",style:de,labelStyle:"",label:P.sanitizeText(l.description,C()),arrowheadStyle:fe,labelpos:pe,labelType:Se,thickness:ye,classes:ge,look:p};d.push(_),G++}break}})},"setupDoc"),ne=r((t,e=ue)=>{let c=e;if(t.doc)for(let a of t.doc)a.stmt==="dir"&&(c=a.value);return c},"getDir");function q(t,e,c){if(!e.id||e.id===""||e.id==="")return;e.cssClasses&&(Array.isArray(e.cssCompiledStyles)||(e.cssCompiledStyles=[]),e.cssClasses.split(" ").forEach(d=>{if(c.get(d)){let i=c.get(d);e.cssCompiledStyles=[...e.cssCompiledStyles,...i.styles]}}));let a=t.find(d=>d.id===e.id);a?Object.assign(a,e):t.push(e)}r(q,"insertOrUpdateNode");function Ee(t){return t?.classes?.join(" ")??""}r(Ee,"getClassesFromDbInfo");function ke(t){return t?.styles??[]}r(ke,"getStylesFromDbInfo");var Q=r((t,e,c,a,d,i,p,g)=>{let l=e.id,_=c.get(l),k=Ee(_),O=ke(_);if(E.info("dataFetcher parsedItem",e,_,O),l!=="root"){let L=Rt;e.start===!0?L=Ue:e.start===!1&&(L=je),e.type!==tt&&(L=e.type),yt.get(l)||yt.set(l,{id:l,shape:L,description:P.sanitizeText(l,C()),cssClasses:`${k} ${Xe}`,cssStyles:O});let f=yt.get(l);e.description&&(Array.isArray(f.description)?(f.shape=Ot,f.description.push(e.description)):f.description?.length>0?(f.shape=Ot,f.description===l?f.description=[e.description]:f.description=[f.description,e.description]):(f.shape=Rt,f.description=e.description),f.description=P.sanitizeTextOrArray(f.description,C())),f.description?.length===1&&f.shape===Ot&&(f.type==="group"?f.shape=ie:f.shape=Rt),!f.type&&e.doc&&(E.info("Setting cluster for XCX",l,ne(e)),f.type="group",f.isGroup=!0,f.dir=ne(e),f.shape=e.type===he?re:ie,f.cssClasses=`${f.cssClasses} ${ts} ${i?ss:""}`);let A={labelStyle:"",shape:f.shape,label:f.description,cssClasses:f.cssClasses,cssCompiledStyles:[],cssStyles:f.cssStyles,id:l,dir:f.dir,domId:gt(l,G),type:f.type,isGroup:f.type==="group",padding:8,rx:10,ry:10,look:p};if(A.shape===re&&(A.label=""),t&&t.id!=="root"&&(E.trace("Setting node ",l," to be child of its parent ",t.id),A.parentId=t.id),A.centerLabel=!0,e.note){let I={labelStyle:"",shape:He,label:e.note.text,cssClasses:Qe,cssStyles:[],cssCompilesStyles:[],id:l+is+"-"+G,domId:gt(l,G,_e),type:f.type,isGroup:f.type==="group",padding:C().flowchart.padding,look:p,position:e.note.position},Y=l+ae,F={labelStyle:"",shape:ze,label:e.note.text,cssClasses:f.cssClasses,cssStyles:[],id:l+ae,domId:gt(l,G,be),type:"group",isGroup:!0,padding:16,look:p,position:e.note.position};G++,F.id=Y,I.parentId=Y,q(a,F,g),q(a,I,g),q(a,A,g);let N=l,w=I.id;e.note.position==="left of"&&(N=I.id,w=l),d.push({id:N+"-"+w,start:N,end:w,arrowhead:"none",arrowTypeEnd:"",style:de,labelStyle:"",classes:qe,arrowheadStyle:fe,labelpos:pe,labelType:Se,thickness:ye,look:p})}else q(a,A,g)}e.doc&&(E.trace("Adding nodes children "),ls(e,e.doc,c,a,d,!i,p,g))},"dataFetcher"),os=r(()=>{yt.clear(),G=0},"reset"),Gt="[*]",ve="start",me=Gt,De="end",le="color",oe="fill",cs="bgFill",us=",";function Bt(){return new Map}r(Bt,"newClassesList");var Tt=[],Yt=[],Ce=Ye,Et=[],W=Bt(),xe=r(()=>({relations:[],states:new Map,documents:{}}),"newDoc"),kt={root:xe()},m=kt.root,Z=0,ce=0,hs={LINE:0,DOTTED_LINE:1},ds={AGGREGATION:0,EXTENSION:1,COMPOSITION:2,DEPENDENCY:3},St=r(t=>JSON.parse(JSON.stringify(t)),"clone"),fs=r(t=>{E.info("Setting root doc",t),Et=t},"setRootDoc"),ps=r(()=>Et,"getRootDoc"),bt=r((t,e,c)=>{if(e.stmt===$t)bt(t,e.state1,!0),bt(t,e.state2,!1);else if(e.stmt===_t&&(e.id==="[*]"?(e.id=c?t.id+"_start":t.id+"_end",e.start=c):e.id=e.id.trim()),e.doc){let a=[],d=[],i;for(i=0;i0&&d.length>0){let p={stmt:_t,id:Qt(),type:"divider",doc:St(d)};a.push(St(p)),e.doc=a}e.doc.forEach(p=>bt(e,p,!0))}},"docTranslator"),Ft=r(()=>(bt({id:"root"},{id:"root",doc:Et},!0),{id:"root",doc:Et}),"getRootDocV2"),Ss=r(t=>{let e;t.doc?e=t.doc:e=t,E.info(e),Ae(!0),E.info("Extract initial document:",e),e.forEach(i=>{switch(E.warn("Statement",i.stmt),i.stmt){case _t:B(i.id.trim(),i.type,i.doc,i.description,i.note,i.classes,i.styles,i.textStyles);break;case $t:Ne(i.state1,i.state2,i.description);break;case Fe:we(i.id.trim(),i.classes);break;case Ve:{let p=i.id.trim().split(","),g=i.styleClass.split(",");p.forEach(l=>{let _=j(l);if(_===void 0){let k=l.trim();B(k),_=j(k)}_.styles=g.map(k=>k.replace(/;/g,"")?.trim())})}break;case Me:Vt(i.id.trim(),i.styleClass);break}});let c=Le(),d=C().look;os(),Q(void 0,Ft(),c,Tt,Yt,!0,d,W),Tt.forEach(i=>{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]}})},"extract"),B=r(function(t,e=tt,c=null,a=null,d=null,i=null,p=null,g=null){let l=t?.trim();if(m.states.has(l)?(m.states.get(l).doc||(m.states.get(l).doc=c),m.states.get(l).type||(m.states.get(l).type=e)):(E.info("Adding state ",l,a),m.states.set(l,{id:l,descriptions:[],type:e,doc:c,note:d,classes:[],styles:[],textStyles:[]})),a&&(E.info("Setting state description",l,a),typeof a=="string"&&wt(l,a.trim()),typeof a=="object"&&a.forEach(_=>wt(l,_.trim()))),d){let _=m.states.get(l);_.note=d,_.note.text=P.sanitizeText(_.note.text,C())}i&&(E.info("Setting state classes",l,i),(typeof i=="string"?[i]:i).forEach(k=>Vt(l,k.trim()))),p&&(E.info("Setting state styles",l,p),(typeof p=="string"?[p]:p).forEach(k=>Es(l,k.trim()))),g&&(E.info("Setting state styles",l,p),(typeof g=="string"?[g]:g).forEach(k=>ks(l,k.trim())))},"addState"),Ae=r(function(t){Tt=[],Yt=[],kt={root:xe()},m=kt.root,Z=0,W=Bt(),t||Ht()},"clear"),j=r(function(t){return m.states.get(t)},"getState"),Le=r(function(){return m.states},"getStates"),ys=r(function(){E.info("Documents = ",kt)},"logDocuments"),gs=r(function(){return m.relations},"getRelations");function vt(t=""){let e=t;return t===Gt&&(Z++,e=`${ve}${Z}`),e}r(vt,"startIdIfNeeded");function mt(t="",e=tt){return t===Gt?ve:e}r(mt,"startTypeIfNeeded");function Ie(t=""){let e=t;return t===me&&(Z++,e=`${De}${Z}`),e}r(Ie,"endIdIfNeeded");function Re(t="",e=tt){return t===me?De:e}r(Re,"endTypeIfNeeded");function Oe(t,e,c){let a=vt(t.id.trim()),d=mt(t.id.trim(),t.type),i=vt(e.id.trim()),p=mt(e.id.trim(),e.type);B(a,d,t.doc,t.description,t.note,t.classes,t.styles,t.textStyles),B(i,p,e.doc,e.description,e.note,e.classes,e.styles,e.textStyles),m.relations.push({id1:a,id2:i,relationTitle:P.sanitizeText(c,C())})}r(Oe,"addRelationObjs");var Ne=r(function(t,e,c){if(typeof t=="object")Oe(t,e,c);else{let a=vt(t.trim()),d=mt(t),i=Ie(e.trim()),p=Re(e);B(a,d),B(i,p),m.relations.push({id1:a,id2:i,title:P.sanitizeText(c,C())})}},"addRelation"),wt=r(function(t,e){let c=m.states.get(t),a=e.startsWith(":")?e.replace(":","").trim():e;c.descriptions.push(P.sanitizeText(a,C()))},"addDescription"),bs=r(function(t){return t.substring(0,1)===":"?t.substr(2).trim():t.trim()},"cleanupLabel"),_s=r(()=>(ce++,"divider-id-"+ce),"getDividerId"),we=r(function(t,e=""){W.has(t)||W.set(t,{id:t,styles:[],textStyles:[]});let c=W.get(t);e?.split(us).forEach(a=>{let d=a.replace(/([^;]*);/,"$1").trim();if(RegExp(le).exec(a)){let p=d.replace(oe,cs).replace(le,oe);c.textStyles.push(p)}c.styles.push(d)})},"addStyleClass"),Ts=r(function(){return W},"getClasses"),Vt=r(function(t,e){t.split(",").forEach(function(c){let a=j(c);if(a===void 0){let d=c.trim();B(d),a=j(d)}a.classes.push(e)})},"setCssClass"),Es=r(function(t,e){let c=j(t);c!==void 0&&c.styles.push(e)},"setStyle"),ks=r(function(t,e){let c=j(t);c!==void 0&&c.textStyles.push(e)},"setTextStyle"),vs=r(()=>Ce,"getDirection"),ms=r(t=>{Ce=t},"setDirection"),Ds=r(t=>t&&t[0]===":"?t.substr(1).trim():t.trim(),"trimColon"),Cs=r(()=>{let t=C();return{nodes:Tt,edges:Yt,other:{},config:t,direction:Te(Ft())}},"getData"),$s={getConfig:r(()=>C().state,"getConfig"),getData:Cs,addState:B,clear:Ae,getState:j,getStates:Le,getRelations:gs,getClasses:Ts,getDirection:vs,addRelation:Ne,getDividerId:_s,setDirection:ms,cleanupLabel:bs,lineType:hs,relationType:ds,logDocuments:ys,getRootDoc:ps,setRootDoc:fs,getRootDocV2:Ft,extract:Ss,trimColon:Ds,getAccTitle:Wt,setAccTitle:zt,getAccDescription:Kt,setAccDescription:Xt,addStyleClass:we,setCssClass:Vt,addDescription:wt,setDiagramTitle:Jt,getDiagramTitle:qt},xs=r(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"),Ps=xs;export{Ns as a,ws as b,$s as c,Ps as d}; +//# sourceMappingURL=chunk-6YMKSKZH.min.js.map diff --git a/docs/_site/public/chunk-6YMKSKZH.min.js.map b/docs/_site/public/chunk-6YMKSKZH.min.js.map new file mode 100644 index 0000000..4a5c506 --- /dev/null +++ b/docs/_site/public/chunk-6YMKSKZH.min.js.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": ["../../node_modules/mermaid/dist/chunks/mermaid.core/chunk-7U56Z5CX.mjs"], + "sourcesContent": ["import {\n getDiagramElement,\n setupViewPortForSVG\n} from \"./chunk-5HRBRIJM.mjs\";\nimport {\n render\n} from \"./chunk-BO7VGL7K.mjs\";\nimport {\n generateId,\n utils_default\n} from \"./chunk-7DKRZKHE.mjs\";\nimport {\n __name,\n clear,\n common_default,\n getAccDescription,\n getAccTitle,\n getConfig2 as getConfig,\n getDiagramTitle,\n log,\n setAccDescription,\n setAccTitle,\n setDiagramTitle\n} from \"./chunk-6DBFFHIP.mjs\";\n\n// src/diagrams/state/parser/stateDiagram.jison\nvar parser = function() {\n var o = /* @__PURE__ */ __name(function(k, v, o2, l) {\n for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v) ;\n return o2;\n }, \"o\"), $V0 = [1, 2], $V1 = [1, 3], $V2 = [1, 4], $V3 = [2, 4], $V4 = [1, 9], $V5 = [1, 11], $V6 = [1, 16], $V7 = [1, 17], $V8 = [1, 18], $V9 = [1, 19], $Va = [1, 32], $Vb = [1, 20], $Vc = [1, 21], $Vd = [1, 22], $Ve = [1, 23], $Vf = [1, 24], $Vg = [1, 26], $Vh = [1, 27], $Vi = [1, 28], $Vj = [1, 29], $Vk = [1, 30], $Vl = [1, 31], $Vm = [1, 34], $Vn = [1, 35], $Vo = [1, 36], $Vp = [1, 37], $Vq = [1, 33], $Vr = [1, 4, 5, 16, 17, 19, 21, 22, 24, 25, 26, 27, 28, 29, 33, 35, 37, 38, 42, 45, 48, 49, 50, 51, 54], $Vs = [1, 4, 5, 14, 15, 16, 17, 19, 21, 22, 24, 25, 26, 27, 28, 29, 33, 35, 37, 38, 42, 45, 48, 49, 50, 51, 54], $Vt = [4, 5, 16, 17, 19, 21, 22, 24, 25, 26, 27, 28, 29, 33, 35, 37, 38, 42, 45, 48, 49, 50, 51, 54];\n var parser2 = {\n trace: /* @__PURE__ */ __name(function trace() {\n }, \"trace\"),\n yy: {},\n 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, \"classDef\": 38, \"CLASSDEF_ID\": 39, \"CLASSDEF_STYLEOPTS\": 40, \"DEFAULT\": 41, \"style\": 42, \"STYLE_IDS\": 43, \"STYLEDEF_STYLEOPTS\": 44, \"class\": 45, \"CLASSENTITY_IDS\": 46, \"STYLECLASS\": 47, \"direction_tb\": 48, \"direction_bt\": 49, \"direction_rl\": 50, \"direction_lr\": 51, \"eol\": 52, \";\": 53, \"EDGE_STATE\": 54, \"STYLE_SEPARATOR\": 55, \"left_of\": 56, \"right_of\": 57, \"$accept\": 0, \"$end\": 1 },\n 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: \"classDef\", 39: \"CLASSDEF_ID\", 40: \"CLASSDEF_STYLEOPTS\", 41: \"DEFAULT\", 42: \"style\", 43: \"STYLE_IDS\", 44: \"STYLEDEF_STYLEOPTS\", 45: \"class\", 46: \"CLASSENTITY_IDS\", 47: \"STYLECLASS\", 48: \"direction_tb\", 49: \"direction_bt\", 50: \"direction_rl\", 51: \"direction_lr\", 53: \";\", 54: \"EDGE_STATE\", 55: \"STYLE_SEPARATOR\", 56: \"left_of\", 57: \"right_of\" },\n 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], [10, 3], [10, 3], [11, 3], [12, 3], [32, 1], [32, 1], [32, 1], [32, 1], [52, 1], [52, 1], [13, 1], [13, 1], [13, 3], [13, 3], [30, 1], [30, 1]],\n performAction: /* @__PURE__ */ __name(function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {\n var $0 = $$.length - 1;\n switch (yystate) {\n case 3:\n yy.setRootDoc($$[$0]);\n return $$[$0];\n break;\n case 4:\n this.$ = [];\n break;\n case 5:\n if ($$[$0] != \"nl\") {\n $$[$0 - 1].push($$[$0]);\n this.$ = $$[$0 - 1];\n }\n break;\n case 6:\n case 7:\n this.$ = $$[$0];\n break;\n case 8:\n this.$ = \"nl\";\n break;\n case 12:\n this.$ = $$[$0];\n break;\n case 13:\n const stateStmt = $$[$0 - 1];\n stateStmt.description = yy.trimColon($$[$0]);\n this.$ = stateStmt;\n break;\n case 14:\n this.$ = { stmt: \"relation\", state1: $$[$0 - 2], state2: $$[$0] };\n break;\n case 15:\n const relDescription = yy.trimColon($$[$0]);\n this.$ = { stmt: \"relation\", state1: $$[$0 - 3], state2: $$[$0 - 1], description: relDescription };\n break;\n case 19:\n this.$ = { stmt: \"state\", id: $$[$0 - 3], type: \"default\", description: \"\", doc: $$[$0 - 1] };\n break;\n case 20:\n var id = $$[$0];\n var description = $$[$0 - 2].trim();\n if ($$[$0].match(\":\")) {\n var parts = $$[$0].split(\":\");\n id = parts[0];\n description = [description, parts[1]];\n }\n this.$ = { stmt: \"state\", id, type: \"default\", description };\n break;\n case 21:\n this.$ = { stmt: \"state\", id: $$[$0 - 3], type: \"default\", description: $$[$0 - 5], doc: $$[$0 - 1] };\n break;\n case 22:\n this.$ = { stmt: \"state\", id: $$[$0], type: \"fork\" };\n break;\n case 23:\n this.$ = { stmt: \"state\", id: $$[$0], type: \"join\" };\n break;\n case 24:\n this.$ = { stmt: \"state\", id: $$[$0], type: \"choice\" };\n break;\n case 25:\n this.$ = { stmt: \"state\", id: yy.getDividerId(), type: \"divider\" };\n break;\n case 26:\n this.$ = { stmt: \"state\", id: $$[$0 - 1].trim(), note: { position: $$[$0 - 2].trim(), text: $$[$0].trim() } };\n break;\n case 29:\n this.$ = $$[$0].trim();\n yy.setAccTitle(this.$);\n break;\n case 30:\n case 31:\n this.$ = $$[$0].trim();\n yy.setAccDescription(this.$);\n break;\n case 32:\n case 33:\n this.$ = { stmt: \"classDef\", id: $$[$0 - 1].trim(), classes: $$[$0].trim() };\n break;\n case 34:\n this.$ = { stmt: \"style\", id: $$[$0 - 1].trim(), styleClass: $$[$0].trim() };\n break;\n case 35:\n this.$ = { stmt: \"applyClass\", id: $$[$0 - 1].trim(), styleClass: $$[$0].trim() };\n break;\n case 36:\n yy.setDirection(\"TB\");\n this.$ = { stmt: \"dir\", value: \"TB\" };\n break;\n case 37:\n yy.setDirection(\"BT\");\n this.$ = { stmt: \"dir\", value: \"BT\" };\n break;\n case 38:\n yy.setDirection(\"RL\");\n this.$ = { stmt: \"dir\", value: \"RL\" };\n break;\n case 39:\n yy.setDirection(\"LR\");\n this.$ = { stmt: \"dir\", value: \"LR\" };\n break;\n case 42:\n case 43:\n this.$ = { stmt: \"state\", id: $$[$0].trim(), type: \"default\", description: \"\" };\n break;\n case 44:\n this.$ = { stmt: \"state\", id: $$[$0 - 2].trim(), classes: [$$[$0].trim()], type: \"default\", description: \"\" };\n break;\n case 45:\n this.$ = { stmt: \"state\", id: $$[$0 - 2].trim(), classes: [$$[$0].trim()], type: \"default\", description: \"\" };\n break;\n }\n }, \"anonymous\"),\n table: [{ 3: 1, 4: $V0, 5: $V1, 6: $V2 }, { 1: [3] }, { 3: 5, 4: $V0, 5: $V1, 6: $V2 }, { 3: 6, 4: $V0, 5: $V1, 6: $V2 }, o([1, 4, 5, 16, 17, 19, 22, 24, 25, 26, 27, 28, 29, 33, 35, 37, 38, 42, 45, 48, 49, 50, 51, 54], $V3, { 7: 7 }), { 1: [2, 1] }, { 1: [2, 2] }, { 1: [2, 3], 4: $V4, 5: $V5, 8: 8, 9: 10, 10: 12, 11: 13, 12: 14, 13: 15, 16: $V6, 17: $V7, 19: $V8, 22: $V9, 24: $Va, 25: $Vb, 26: $Vc, 27: $Vd, 28: $Ve, 29: $Vf, 32: 25, 33: $Vg, 35: $Vh, 37: $Vi, 38: $Vj, 42: $Vk, 45: $Vl, 48: $Vm, 49: $Vn, 50: $Vo, 51: $Vp, 54: $Vq }, o($Vr, [2, 5]), { 9: 38, 10: 12, 11: 13, 12: 14, 13: 15, 16: $V6, 17: $V7, 19: $V8, 22: $V9, 24: $Va, 25: $Vb, 26: $Vc, 27: $Vd, 28: $Ve, 29: $Vf, 32: 25, 33: $Vg, 35: $Vh, 37: $Vi, 38: $Vj, 42: $Vk, 45: $Vl, 48: $Vm, 49: $Vn, 50: $Vo, 51: $Vp, 54: $Vq }, o($Vr, [2, 7]), o($Vr, [2, 8]), o($Vr, [2, 9]), o($Vr, [2, 10]), o($Vr, [2, 11]), o($Vr, [2, 12], { 14: [1, 39], 15: [1, 40] }), o($Vr, [2, 16]), { 18: [1, 41] }, o($Vr, [2, 18], { 20: [1, 42] }), { 23: [1, 43] }, o($Vr, [2, 22]), o($Vr, [2, 23]), o($Vr, [2, 24]), o($Vr, [2, 25]), { 30: 44, 31: [1, 45], 56: [1, 46], 57: [1, 47] }, o($Vr, [2, 28]), { 34: [1, 48] }, { 36: [1, 49] }, o($Vr, [2, 31]), { 39: [1, 50], 41: [1, 51] }, { 43: [1, 52] }, { 46: [1, 53] }, o($Vs, [2, 42], { 55: [1, 54] }), o($Vs, [2, 43], { 55: [1, 55] }), o($Vr, [2, 36]), o($Vr, [2, 37]), o($Vr, [2, 38]), o($Vr, [2, 39]), o($Vr, [2, 6]), o($Vr, [2, 13]), { 13: 56, 24: $Va, 54: $Vq }, o($Vr, [2, 17]), o($Vt, $V3, { 7: 57 }), { 24: [1, 58] }, { 24: [1, 59] }, { 23: [1, 60] }, { 24: [2, 46] }, { 24: [2, 47] }, o($Vr, [2, 29]), o($Vr, [2, 30]), { 40: [1, 61] }, { 40: [1, 62] }, { 44: [1, 63] }, { 47: [1, 64] }, { 24: [1, 65] }, { 24: [1, 66] }, o($Vr, [2, 14], { 14: [1, 67] }), { 4: $V4, 5: $V5, 8: 8, 9: 10, 10: 12, 11: 13, 12: 14, 13: 15, 16: $V6, 17: $V7, 19: $V8, 21: [1, 68], 22: $V9, 24: $Va, 25: $Vb, 26: $Vc, 27: $Vd, 28: $Ve, 29: $Vf, 32: 25, 33: $Vg, 35: $Vh, 37: $Vi, 38: $Vj, 42: $Vk, 45: $Vl, 48: $Vm, 49: $Vn, 50: $Vo, 51: $Vp, 54: $Vq }, o($Vr, [2, 20], { 20: [1, 69] }), { 31: [1, 70] }, { 24: [1, 71] }, o($Vr, [2, 32]), o($Vr, [2, 33]), o($Vr, [2, 34]), o($Vr, [2, 35]), o($Vs, [2, 44]), o($Vs, [2, 45]), o($Vr, [2, 15]), o($Vr, [2, 19]), o($Vt, $V3, { 7: 72 }), o($Vr, [2, 26]), o($Vr, [2, 27]), { 4: $V4, 5: $V5, 8: 8, 9: 10, 10: 12, 11: 13, 12: 14, 13: 15, 16: $V6, 17: $V7, 19: $V8, 21: [1, 73], 22: $V9, 24: $Va, 25: $Vb, 26: $Vc, 27: $Vd, 28: $Ve, 29: $Vf, 32: 25, 33: $Vg, 35: $Vh, 37: $Vi, 38: $Vj, 42: $Vk, 45: $Vl, 48: $Vm, 49: $Vn, 50: $Vo, 51: $Vp, 54: $Vq }, o($Vr, [2, 21])],\n defaultActions: { 5: [2, 1], 6: [2, 2], 46: [2, 46], 47: [2, 47] },\n parseError: /* @__PURE__ */ __name(function parseError(str, hash) {\n if (hash.recoverable) {\n this.trace(str);\n } else {\n var error = new Error(str);\n error.hash = hash;\n throw error;\n }\n }, \"parseError\"),\n parse: /* @__PURE__ */ __name(function parse(input) {\n var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = \"\", yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1;\n var args = lstack.slice.call(arguments, 1);\n var lexer2 = Object.create(this.lexer);\n var sharedState = { yy: {} };\n for (var k in this.yy) {\n if (Object.prototype.hasOwnProperty.call(this.yy, k)) {\n sharedState.yy[k] = this.yy[k];\n }\n }\n lexer2.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer2;\n sharedState.yy.parser = this;\n if (typeof lexer2.yylloc == \"undefined\") {\n lexer2.yylloc = {};\n }\n var yyloc = lexer2.yylloc;\n lstack.push(yyloc);\n var ranges = lexer2.options && lexer2.options.ranges;\n if (typeof sharedState.yy.parseError === \"function\") {\n this.parseError = sharedState.yy.parseError;\n } else {\n this.parseError = Object.getPrototypeOf(this).parseError;\n }\n function popStack(n) {\n stack.length = stack.length - 2 * n;\n vstack.length = vstack.length - n;\n lstack.length = lstack.length - n;\n }\n __name(popStack, \"popStack\");\n function lex() {\n var token;\n token = tstack.pop() || lexer2.lex() || EOF;\n if (typeof token !== \"number\") {\n if (token instanceof Array) {\n tstack = token;\n token = tstack.pop();\n }\n token = self.symbols_[token] || token;\n }\n return token;\n }\n __name(lex, \"lex\");\n var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected;\n while (true) {\n state = stack[stack.length - 1];\n if (this.defaultActions[state]) {\n action = this.defaultActions[state];\n } else {\n if (symbol === null || typeof symbol == \"undefined\") {\n symbol = lex();\n }\n action = table[state] && table[state][symbol];\n }\n if (typeof action === \"undefined\" || !action.length || !action[0]) {\n var errStr = \"\";\n expected = [];\n for (p in table[state]) {\n if (this.terminals_[p] && p > TERROR) {\n expected.push(\"'\" + this.terminals_[p] + \"'\");\n }\n }\n if (lexer2.showPosition) {\n errStr = \"Parse error on line \" + (yylineno + 1) + \":\\n\" + lexer2.showPosition() + \"\\nExpecting \" + expected.join(\", \") + \", got '\" + (this.terminals_[symbol] || symbol) + \"'\";\n } else {\n errStr = \"Parse error on line \" + (yylineno + 1) + \": Unexpected \" + (symbol == EOF ? \"end of input\" : \"'\" + (this.terminals_[symbol] || symbol) + \"'\");\n }\n this.parseError(errStr, {\n text: lexer2.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer2.yylineno,\n loc: yyloc,\n expected\n });\n }\n if (action[0] instanceof Array && action.length > 1) {\n throw new Error(\"Parse Error: multiple actions possible at state: \" + state + \", token: \" + symbol);\n }\n switch (action[0]) {\n case 1:\n stack.push(symbol);\n vstack.push(lexer2.yytext);\n lstack.push(lexer2.yylloc);\n stack.push(action[1]);\n symbol = null;\n if (!preErrorSymbol) {\n yyleng = lexer2.yyleng;\n yytext = lexer2.yytext;\n yylineno = lexer2.yylineno;\n yyloc = lexer2.yylloc;\n if (recovering > 0) {\n recovering--;\n }\n } else {\n symbol = preErrorSymbol;\n preErrorSymbol = null;\n }\n break;\n case 2:\n len = this.productions_[action[1]][1];\n yyval.$ = vstack[vstack.length - len];\n yyval._$ = {\n first_line: lstack[lstack.length - (len || 1)].first_line,\n last_line: lstack[lstack.length - 1].last_line,\n first_column: lstack[lstack.length - (len || 1)].first_column,\n last_column: lstack[lstack.length - 1].last_column\n };\n if (ranges) {\n yyval._$.range = [\n lstack[lstack.length - (len || 1)].range[0],\n lstack[lstack.length - 1].range[1]\n ];\n }\n r = this.performAction.apply(yyval, [\n yytext,\n yyleng,\n yylineno,\n sharedState.yy,\n action[1],\n vstack,\n lstack\n ].concat(args));\n if (typeof r !== \"undefined\") {\n return r;\n }\n if (len) {\n stack = stack.slice(0, -1 * len * 2);\n vstack = vstack.slice(0, -1 * len);\n lstack = lstack.slice(0, -1 * len);\n }\n stack.push(this.productions_[action[1]][0]);\n vstack.push(yyval.$);\n lstack.push(yyval._$);\n newState = table[stack[stack.length - 2]][stack[stack.length - 1]];\n stack.push(newState);\n break;\n case 3:\n return true;\n }\n }\n return true;\n }, \"parse\")\n };\n var lexer = /* @__PURE__ */ function() {\n var lexer2 = {\n EOF: 1,\n parseError: /* @__PURE__ */ __name(function parseError(str, hash) {\n if (this.yy.parser) {\n this.yy.parser.parseError(str, hash);\n } else {\n throw new Error(str);\n }\n }, \"parseError\"),\n // resets the lexer, sets new input\n setInput: /* @__PURE__ */ __name(function(input, yy) {\n this.yy = yy || this.yy || {};\n this._input = input;\n this._more = this._backtrack = this.done = false;\n this.yylineno = this.yyleng = 0;\n this.yytext = this.matched = this.match = \"\";\n this.conditionStack = [\"INITIAL\"];\n this.yylloc = {\n first_line: 1,\n first_column: 0,\n last_line: 1,\n last_column: 0\n };\n if (this.options.ranges) {\n this.yylloc.range = [0, 0];\n }\n this.offset = 0;\n return this;\n }, \"setInput\"),\n // consumes and returns one char from the input\n input: /* @__PURE__ */ __name(function() {\n var ch = this._input[0];\n this.yytext += ch;\n this.yyleng++;\n this.offset++;\n this.match += ch;\n this.matched += ch;\n var lines = ch.match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno++;\n this.yylloc.last_line++;\n } else {\n this.yylloc.last_column++;\n }\n if (this.options.ranges) {\n this.yylloc.range[1]++;\n }\n this._input = this._input.slice(1);\n return ch;\n }, \"input\"),\n // unshifts one char (or a string) into the input\n unput: /* @__PURE__ */ __name(function(ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n this.offset -= len;\n var oldLines = this.match.split(/(?:\\r\\n?|\\n)/g);\n this.match = this.match.substr(0, this.match.length - 1);\n this.matched = this.matched.substr(0, this.matched.length - 1);\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n this.yylloc = {\n first_line: this.yylloc.first_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.first_column,\n last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len\n };\n if (this.options.ranges) {\n this.yylloc.range = [r[0], r[0] + this.yyleng - len];\n }\n this.yyleng = this.yytext.length;\n return this;\n }, \"unput\"),\n // When called from action, caches matched text and appends it on next action\n more: /* @__PURE__ */ __name(function() {\n this._more = true;\n return this;\n }, \"more\"),\n // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.\n reject: /* @__PURE__ */ __name(function() {\n if (this.options.backtrack_lexer) {\n this._backtrack = true;\n } else {\n 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).\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n return this;\n }, \"reject\"),\n // retain first n characters of the match\n less: /* @__PURE__ */ __name(function(n) {\n this.unput(this.match.slice(n));\n }, \"less\"),\n // displays already matched input, i.e. for error messages\n pastInput: /* @__PURE__ */ __name(function() {\n var past = this.matched.substr(0, this.matched.length - this.match.length);\n return (past.length > 20 ? \"...\" : \"\") + past.substr(-20).replace(/\\n/g, \"\");\n }, \"pastInput\"),\n // displays upcoming input, i.e. for error messages\n upcomingInput: /* @__PURE__ */ __name(function() {\n var next = this.match;\n if (next.length < 20) {\n next += this._input.substr(0, 20 - next.length);\n }\n return (next.substr(0, 20) + (next.length > 20 ? \"...\" : \"\")).replace(/\\n/g, \"\");\n }, \"upcomingInput\"),\n // displays the character position where the lexing error occurred, i.e. for error messages\n showPosition: /* @__PURE__ */ __name(function() {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n }, \"showPosition\"),\n // test the lexed token: return FALSE when not a match, otherwise return token\n test_match: /* @__PURE__ */ __name(function(match, indexed_rule) {\n var token, lines, backup;\n if (this.options.backtrack_lexer) {\n backup = {\n yylineno: this.yylineno,\n yylloc: {\n first_line: this.yylloc.first_line,\n last_line: this.last_line,\n first_column: this.yylloc.first_column,\n last_column: this.yylloc.last_column\n },\n yytext: this.yytext,\n match: this.match,\n matches: this.matches,\n matched: this.matched,\n yyleng: this.yyleng,\n offset: this.offset,\n _more: this._more,\n _input: this._input,\n yy: this.yy,\n conditionStack: this.conditionStack.slice(0),\n done: this.done\n };\n if (this.options.ranges) {\n backup.yylloc.range = this.yylloc.range.slice(0);\n }\n }\n lines = match[0].match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno += lines.length;\n }\n this.yylloc = {\n first_line: this.yylloc.last_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.last_column,\n last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length : this.yylloc.last_column + match[0].length\n };\n this.yytext += match[0];\n this.match += match[0];\n this.matches = match;\n this.yyleng = this.yytext.length;\n if (this.options.ranges) {\n this.yylloc.range = [this.offset, this.offset += this.yyleng];\n }\n this._more = false;\n this._backtrack = false;\n this._input = this._input.slice(match[0].length);\n this.matched += match[0];\n token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);\n if (this.done && this._input) {\n this.done = false;\n }\n if (token) {\n return token;\n } else if (this._backtrack) {\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false;\n }\n return false;\n }, \"test_match\"),\n // return next match in input\n next: /* @__PURE__ */ __name(function() {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n var token, match, tempMatch, index;\n if (!this._more) {\n this.yytext = \"\";\n this.match = \"\";\n }\n var rules = this._currentRules();\n for (var i = 0; i < rules.length; i++) {\n tempMatch = this._input.match(this.rules[rules[i]]);\n if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {\n match = tempMatch;\n index = i;\n if (this.options.backtrack_lexer) {\n token = this.test_match(tempMatch, rules[i]);\n if (token !== false) {\n return token;\n } else if (this._backtrack) {\n match = false;\n continue;\n } else {\n return false;\n }\n } else if (!this.options.flex) {\n break;\n }\n }\n }\n if (match) {\n token = this.test_match(match, rules[index]);\n if (token !== false) {\n return token;\n }\n return false;\n }\n if (this._input === \"\") {\n return this.EOF;\n } else {\n return this.parseError(\"Lexical error on line \" + (this.yylineno + 1) + \". Unrecognized text.\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n }, \"next\"),\n // return next match that has a token\n lex: /* @__PURE__ */ __name(function lex() {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n }, \"lex\"),\n // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\n begin: /* @__PURE__ */ __name(function begin(condition) {\n this.conditionStack.push(condition);\n }, \"begin\"),\n // pop the previously active lexer condition state off the condition stack\n popState: /* @__PURE__ */ __name(function popState() {\n var n = this.conditionStack.length - 1;\n if (n > 0) {\n return this.conditionStack.pop();\n } else {\n return this.conditionStack[0];\n }\n }, \"popState\"),\n // produce the lexer rule set which is active for the currently active lexer condition state\n _currentRules: /* @__PURE__ */ __name(function _currentRules() {\n if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {\n return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;\n } else {\n return this.conditions[\"INITIAL\"].rules;\n }\n }, \"_currentRules\"),\n // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\n topState: /* @__PURE__ */ __name(function topState(n) {\n n = this.conditionStack.length - 1 - Math.abs(n || 0);\n if (n >= 0) {\n return this.conditionStack[n];\n } else {\n return \"INITIAL\";\n }\n }, \"topState\"),\n // alias for begin(condition)\n pushState: /* @__PURE__ */ __name(function pushState(condition) {\n this.begin(condition);\n }, \"pushState\"),\n // return the number of states currently on the stack\n stateStackSize: /* @__PURE__ */ __name(function stateStackSize() {\n return this.conditionStack.length;\n }, \"stateStackSize\"),\n options: { \"case-insensitive\": true },\n performAction: /* @__PURE__ */ __name(function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {\n var YYSTATE = YY_START;\n switch ($avoiding_name_collisions) {\n case 0:\n return 41;\n break;\n case 1:\n return 48;\n break;\n case 2:\n return 49;\n break;\n case 3:\n return 50;\n break;\n case 4:\n return 51;\n break;\n case 5:\n break;\n case 6:\n {\n }\n break;\n case 7:\n return 5;\n break;\n case 8:\n break;\n case 9:\n break;\n case 10:\n break;\n case 11:\n break;\n case 12:\n this.pushState(\"SCALE\");\n return 17;\n break;\n case 13:\n return 18;\n break;\n case 14:\n this.popState();\n break;\n case 15:\n this.begin(\"acc_title\");\n return 33;\n break;\n case 16:\n this.popState();\n return \"acc_title_value\";\n break;\n case 17:\n this.begin(\"acc_descr\");\n return 35;\n break;\n case 18:\n this.popState();\n return \"acc_descr_value\";\n break;\n case 19:\n this.begin(\"acc_descr_multiline\");\n break;\n case 20:\n this.popState();\n break;\n case 21:\n return \"acc_descr_multiline_value\";\n break;\n case 22:\n this.pushState(\"CLASSDEF\");\n return 38;\n break;\n case 23:\n this.popState();\n this.pushState(\"CLASSDEFID\");\n return \"DEFAULT_CLASSDEF_ID\";\n break;\n case 24:\n this.popState();\n this.pushState(\"CLASSDEFID\");\n return 39;\n break;\n case 25:\n this.popState();\n return 40;\n break;\n case 26:\n this.pushState(\"CLASS\");\n return 45;\n break;\n case 27:\n this.popState();\n this.pushState(\"CLASS_STYLE\");\n return 46;\n break;\n case 28:\n this.popState();\n return 47;\n break;\n case 29:\n this.pushState(\"STYLE\");\n return 42;\n break;\n case 30:\n this.popState();\n this.pushState(\"STYLEDEF_STYLES\");\n return 43;\n break;\n case 31:\n this.popState();\n return 44;\n break;\n case 32:\n this.pushState(\"SCALE\");\n return 17;\n break;\n case 33:\n return 18;\n break;\n case 34:\n this.popState();\n break;\n case 35:\n this.pushState(\"STATE\");\n break;\n case 36:\n this.popState();\n yy_.yytext = yy_.yytext.slice(0, -8).trim();\n return 25;\n break;\n case 37:\n this.popState();\n yy_.yytext = yy_.yytext.slice(0, -8).trim();\n return 26;\n break;\n case 38:\n this.popState();\n yy_.yytext = yy_.yytext.slice(0, -10).trim();\n return 27;\n break;\n case 39:\n this.popState();\n yy_.yytext = yy_.yytext.slice(0, -8).trim();\n return 25;\n break;\n case 40:\n this.popState();\n yy_.yytext = yy_.yytext.slice(0, -8).trim();\n return 26;\n break;\n case 41:\n this.popState();\n yy_.yytext = yy_.yytext.slice(0, -10).trim();\n return 27;\n break;\n case 42:\n return 48;\n break;\n case 43:\n return 49;\n break;\n case 44:\n return 50;\n break;\n case 45:\n return 51;\n break;\n case 46:\n this.pushState(\"STATE_STRING\");\n break;\n case 47:\n this.pushState(\"STATE_ID\");\n return \"AS\";\n break;\n case 48:\n this.popState();\n return \"ID\";\n break;\n case 49:\n this.popState();\n break;\n case 50:\n return \"STATE_DESCR\";\n break;\n case 51:\n return 19;\n break;\n case 52:\n this.popState();\n break;\n case 53:\n this.popState();\n this.pushState(\"struct\");\n return 20;\n break;\n case 54:\n break;\n case 55:\n this.popState();\n return 21;\n break;\n case 56:\n break;\n case 57:\n this.begin(\"NOTE\");\n return 29;\n break;\n case 58:\n this.popState();\n this.pushState(\"NOTE_ID\");\n return 56;\n break;\n case 59:\n this.popState();\n this.pushState(\"NOTE_ID\");\n return 57;\n break;\n case 60:\n this.popState();\n this.pushState(\"FLOATING_NOTE\");\n break;\n case 61:\n this.popState();\n this.pushState(\"FLOATING_NOTE_ID\");\n return \"AS\";\n break;\n case 62:\n break;\n case 63:\n return \"NOTE_TEXT\";\n break;\n case 64:\n this.popState();\n return \"ID\";\n break;\n case 65:\n this.popState();\n this.pushState(\"NOTE_TEXT\");\n return 24;\n break;\n case 66:\n this.popState();\n yy_.yytext = yy_.yytext.substr(2).trim();\n return 31;\n break;\n case 67:\n this.popState();\n yy_.yytext = yy_.yytext.slice(0, -8).trim();\n return 31;\n break;\n case 68:\n return 6;\n break;\n case 69:\n return 6;\n break;\n case 70:\n return 16;\n break;\n case 71:\n return 54;\n break;\n case 72:\n return 24;\n break;\n case 73:\n yy_.yytext = yy_.yytext.trim();\n return 14;\n break;\n case 74:\n return 15;\n break;\n case 75:\n return 28;\n break;\n case 76:\n return 55;\n break;\n case 77:\n return 5;\n break;\n case 78:\n return \"INVALID\";\n break;\n }\n }, \"anonymous\"),\n rules: [/^(?:default\\b)/i, /^(?:.*direction\\s+TB[^\\n]*)/i, /^(?:.*direction\\s+BT[^\\n]*)/i, /^(?:.*direction\\s+RL[^\\n]*)/i, /^(?:.*direction\\s+LR[^\\n]*)/i, /^(?:%%(?!\\{)[^\\n]*)/i, /^(?:[^\\}]%%[^\\n]*)/i, /^(?:[\\n]+)/i, /^(?:[\\s]+)/i, /^(?:((?!\\n)\\s)+)/i, /^(?:#[^\\n]*)/i, /^(?:%[^\\n]*)/i, /^(?:scale\\s+)/i, /^(?:\\d+)/i, /^(?:\\s+width\\b)/i, /^(?:accTitle\\s*:\\s*)/i, /^(?:(?!\\n||)*[^\\n]*)/i, /^(?:accDescr\\s*:\\s*)/i, /^(?:(?!\\n||)*[^\\n]*)/i, /^(?:accDescr\\s*\\{\\s*)/i, /^(?:[\\}])/i, /^(?:[^\\}]*)/i, /^(?:classDef\\s+)/i, /^(?:DEFAULT\\s+)/i, /^(?:\\w+\\s+)/i, /^(?:[^\\n]*)/i, /^(?:class\\s+)/i, /^(?:(\\w+)+((,\\s*\\w+)*))/i, /^(?:[^\\n]*)/i, /^(?: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],\n conditions: { \"LINE\": { \"rules\": [9, 10], \"inclusive\": false }, \"struct\": { \"rules\": [9, 10, 22, 26, 29, 35, 42, 43, 44, 45, 54, 55, 56, 57, 71, 72, 73, 74, 75], \"inclusive\": false }, \"FLOATING_NOTE_ID\": { \"rules\": [64], \"inclusive\": false }, \"FLOATING_NOTE\": { \"rules\": [61, 62, 63], \"inclusive\": false }, \"NOTE_TEXT\": { \"rules\": [66, 67], \"inclusive\": false }, \"NOTE_ID\": { \"rules\": [65], \"inclusive\": false }, \"NOTE\": { \"rules\": [58, 59, 60], \"inclusive\": false }, \"STYLEDEF_STYLEOPTS\": { \"rules\": [], \"inclusive\": false }, \"STYLEDEF_STYLES\": { \"rules\": [31], \"inclusive\": false }, \"STYLE_IDS\": { \"rules\": [], \"inclusive\": false }, \"STYLE\": { \"rules\": [30], \"inclusive\": false }, \"CLASS_STYLE\": { \"rules\": [28], \"inclusive\": false }, \"CLASS\": { \"rules\": [27], \"inclusive\": false }, \"CLASSDEFID\": { \"rules\": [25], \"inclusive\": false }, \"CLASSDEF\": { \"rules\": [23, 24], \"inclusive\": false }, \"acc_descr_multiline\": { \"rules\": [20, 21], \"inclusive\": false }, \"acc_descr\": { \"rules\": [18], \"inclusive\": false }, \"acc_title\": { \"rules\": [16], \"inclusive\": false }, \"SCALE\": { \"rules\": [13, 14, 33, 34], \"inclusive\": false }, \"ALIAS\": { \"rules\": [], \"inclusive\": false }, \"STATE_ID\": { \"rules\": [48], \"inclusive\": false }, \"STATE_STRING\": { \"rules\": [49, 50], \"inclusive\": false }, \"FORK_STATE\": { \"rules\": [], \"inclusive\": false }, \"STATE\": { \"rules\": [9, 10, 36, 37, 38, 39, 40, 41, 46, 47, 51, 52, 53], \"inclusive\": false }, \"ID\": { \"rules\": [9, 10], \"inclusive\": false }, \"INITIAL\": { \"rules\": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 15, 17, 19, 22, 26, 29, 32, 35, 53, 57, 68, 69, 70, 71, 72, 73, 74, 76, 77, 78], \"inclusive\": true } }\n };\n return lexer2;\n }();\n parser2.lexer = lexer;\n function Parser() {\n this.yy = {};\n }\n __name(Parser, \"Parser\");\n Parser.prototype = parser2;\n parser2.Parser = Parser;\n return new Parser();\n}();\nparser.parser = parser;\nvar stateDiagram_default = parser;\n\n// src/diagrams/state/stateCommon.ts\nvar DEFAULT_DIAGRAM_DIRECTION = \"LR\";\nvar DEFAULT_NESTED_DOC_DIR = \"TB\";\nvar STMT_STATE = \"state\";\nvar STMT_RELATION = \"relation\";\nvar STMT_CLASSDEF = \"classDef\";\nvar STMT_STYLEDEF = \"style\";\nvar STMT_APPLYCLASS = \"applyClass\";\nvar DEFAULT_STATE_TYPE = \"default\";\nvar DIVIDER_TYPE = \"divider\";\nvar G_EDGE_STYLE = \"fill:none\";\nvar G_EDGE_ARROWHEADSTYLE = \"fill: #333\";\nvar G_EDGE_LABELPOS = \"c\";\nvar G_EDGE_LABELTYPE = \"text\";\nvar G_EDGE_THICKNESS = \"normal\";\nvar SHAPE_STATE = \"rect\";\nvar SHAPE_STATE_WITH_DESC = \"rectWithTitle\";\nvar SHAPE_START = \"stateStart\";\nvar SHAPE_END = \"stateEnd\";\nvar SHAPE_DIVIDER = \"divider\";\nvar SHAPE_GROUP = \"roundedWithTitle\";\nvar SHAPE_NOTE = \"note\";\nvar SHAPE_NOTEGROUP = \"noteGroup\";\nvar CSS_DIAGRAM = \"statediagram\";\nvar CSS_STATE = \"state\";\nvar CSS_DIAGRAM_STATE = `${CSS_DIAGRAM}-${CSS_STATE}`;\nvar CSS_EDGE = \"transition\";\nvar CSS_NOTE = \"note\";\nvar CSS_NOTE_EDGE = \"note-edge\";\nvar CSS_EDGE_NOTE_EDGE = `${CSS_EDGE} ${CSS_NOTE_EDGE}`;\nvar CSS_DIAGRAM_NOTE = `${CSS_DIAGRAM}-${CSS_NOTE}`;\nvar CSS_CLUSTER = \"cluster\";\nvar CSS_DIAGRAM_CLUSTER = `${CSS_DIAGRAM}-${CSS_CLUSTER}`;\nvar CSS_CLUSTER_ALT = \"cluster-alt\";\nvar CSS_DIAGRAM_CLUSTER_ALT = `${CSS_DIAGRAM}-${CSS_CLUSTER_ALT}`;\nvar PARENT = \"parent\";\nvar NOTE = \"note\";\nvar DOMID_STATE = \"state\";\nvar DOMID_TYPE_SPACER = \"----\";\nvar NOTE_ID = `${DOMID_TYPE_SPACER}${NOTE}`;\nvar PARENT_ID = `${DOMID_TYPE_SPACER}${PARENT}`;\n\n// src/diagrams/state/stateRenderer-v3-unified.ts\nvar getDir = /* @__PURE__ */ __name((parsedItem, defaultDir = DEFAULT_NESTED_DOC_DIR) => {\n if (!parsedItem.doc) {\n return defaultDir;\n }\n let dir = defaultDir;\n for (const parsedItemDoc of parsedItem.doc) {\n if (parsedItemDoc.stmt === \"dir\") {\n dir = parsedItemDoc.value;\n }\n }\n return dir;\n}, \"getDir\");\nvar getClasses = /* @__PURE__ */ __name(function(text, diagramObj) {\n diagramObj.db.extract(diagramObj.db.getRootDocV2());\n return diagramObj.db.getClasses();\n}, \"getClasses\");\nvar draw = /* @__PURE__ */ __name(async function(text, id, _version, diag) {\n log.info(\"REF0:\");\n log.info(\"Drawing state diagram (v2)\", id);\n const { securityLevel, state: conf, layout } = getConfig();\n diag.db.extract(diag.db.getRootDocV2());\n const data4Layout = diag.db.getData();\n const svg = getDiagramElement(id, securityLevel);\n data4Layout.type = diag.type;\n data4Layout.layoutAlgorithm = layout;\n data4Layout.nodeSpacing = conf?.nodeSpacing || 50;\n data4Layout.rankSpacing = conf?.rankSpacing || 50;\n data4Layout.markers = [\"barb\"];\n data4Layout.diagramId = id;\n await render(data4Layout, svg);\n const padding = 8;\n utils_default.insertTitle(\n svg,\n \"statediagramTitleText\",\n conf?.titleTopMargin ?? 25,\n diag.db.getDiagramTitle()\n );\n setupViewPortForSVG(svg, padding, CSS_DIAGRAM, conf?.useMaxWidth ?? true);\n}, \"draw\");\nvar stateRenderer_v3_unified_default = {\n getClasses,\n draw,\n getDir\n};\n\n// src/diagrams/state/dataFetcher.js\nvar nodeDb = /* @__PURE__ */ new Map();\nvar graphItemCount = 0;\nfunction stateDomId(itemId = \"\", counter = 0, type = \"\", typeSpacer = DOMID_TYPE_SPACER) {\n const typeStr = type !== null && type.length > 0 ? `${typeSpacer}${type}` : \"\";\n return `${DOMID_STATE}-${itemId}${typeStr}-${counter}`;\n}\n__name(stateDomId, \"stateDomId\");\nvar setupDoc = /* @__PURE__ */ __name((parentParsedItem, doc, diagramStates, nodes2, edges2, altFlag, look, classes2) => {\n log.trace(\"items\", doc);\n doc.forEach((item) => {\n switch (item.stmt) {\n case STMT_STATE:\n dataFetcher(parentParsedItem, item, diagramStates, nodes2, edges2, altFlag, look, classes2);\n break;\n case DEFAULT_STATE_TYPE:\n dataFetcher(parentParsedItem, item, diagramStates, nodes2, edges2, altFlag, look, classes2);\n break;\n case STMT_RELATION:\n {\n dataFetcher(\n parentParsedItem,\n item.state1,\n diagramStates,\n nodes2,\n edges2,\n altFlag,\n look,\n classes2\n );\n dataFetcher(\n parentParsedItem,\n item.state2,\n diagramStates,\n nodes2,\n edges2,\n altFlag,\n look,\n classes2\n );\n const edgeData = {\n id: \"edge\" + graphItemCount,\n start: item.state1.id,\n end: item.state2.id,\n arrowhead: \"normal\",\n arrowTypeEnd: \"arrow_barb\",\n style: G_EDGE_STYLE,\n labelStyle: \"\",\n label: common_default.sanitizeText(item.description, getConfig()),\n arrowheadStyle: G_EDGE_ARROWHEADSTYLE,\n labelpos: G_EDGE_LABELPOS,\n labelType: G_EDGE_LABELTYPE,\n thickness: G_EDGE_THICKNESS,\n classes: CSS_EDGE,\n look\n };\n edges2.push(edgeData);\n graphItemCount++;\n }\n break;\n }\n });\n}, \"setupDoc\");\nvar getDir2 = /* @__PURE__ */ __name((parsedItem, defaultDir = DEFAULT_NESTED_DOC_DIR) => {\n let dir = defaultDir;\n if (parsedItem.doc) {\n for (const parsedItemDoc of parsedItem.doc) {\n if (parsedItemDoc.stmt === \"dir\") {\n dir = parsedItemDoc.value;\n }\n }\n }\n return dir;\n}, \"getDir\");\nfunction insertOrUpdateNode(nodes2, nodeData, classes2) {\n if (!nodeData.id || nodeData.id === \"\" || nodeData.id === \"\") {\n return;\n }\n if (nodeData.cssClasses) {\n if (!Array.isArray(nodeData.cssCompiledStyles)) {\n nodeData.cssCompiledStyles = [];\n }\n nodeData.cssClasses.split(\" \").forEach((cssClass) => {\n if (classes2.get(cssClass)) {\n const classDef = classes2.get(cssClass);\n nodeData.cssCompiledStyles = [...nodeData.cssCompiledStyles, ...classDef.styles];\n }\n });\n }\n const existingNodeData = nodes2.find((node) => node.id === nodeData.id);\n if (existingNodeData) {\n Object.assign(existingNodeData, nodeData);\n } else {\n nodes2.push(nodeData);\n }\n}\n__name(insertOrUpdateNode, \"insertOrUpdateNode\");\nfunction getClassesFromDbInfo(dbInfoItem) {\n return dbInfoItem?.classes?.join(\" \") ?? \"\";\n}\n__name(getClassesFromDbInfo, \"getClassesFromDbInfo\");\nfunction getStylesFromDbInfo(dbInfoItem) {\n return dbInfoItem?.styles ?? [];\n}\n__name(getStylesFromDbInfo, \"getStylesFromDbInfo\");\nvar dataFetcher = /* @__PURE__ */ __name((parent, parsedItem, diagramStates, nodes2, edges2, altFlag, look, classes2) => {\n const itemId = parsedItem.id;\n const dbState = diagramStates.get(itemId);\n const classStr = getClassesFromDbInfo(dbState);\n const style = getStylesFromDbInfo(dbState);\n log.info(\"dataFetcher parsedItem\", parsedItem, dbState, style);\n if (itemId !== \"root\") {\n let shape = SHAPE_STATE;\n if (parsedItem.start === true) {\n shape = SHAPE_START;\n } else if (parsedItem.start === false) {\n shape = SHAPE_END;\n }\n if (parsedItem.type !== DEFAULT_STATE_TYPE) {\n shape = parsedItem.type;\n }\n if (!nodeDb.get(itemId)) {\n nodeDb.set(itemId, {\n id: itemId,\n shape,\n description: common_default.sanitizeText(itemId, getConfig()),\n cssClasses: `${classStr} ${CSS_DIAGRAM_STATE}`,\n cssStyles: style\n });\n }\n const newNode = nodeDb.get(itemId);\n if (parsedItem.description) {\n if (Array.isArray(newNode.description)) {\n newNode.shape = SHAPE_STATE_WITH_DESC;\n newNode.description.push(parsedItem.description);\n } else {\n if (newNode.description?.length > 0) {\n newNode.shape = SHAPE_STATE_WITH_DESC;\n if (newNode.description === itemId) {\n newNode.description = [parsedItem.description];\n } else {\n newNode.description = [newNode.description, parsedItem.description];\n }\n } else {\n newNode.shape = SHAPE_STATE;\n newNode.description = parsedItem.description;\n }\n }\n newNode.description = common_default.sanitizeTextOrArray(newNode.description, getConfig());\n }\n if (newNode.description?.length === 1 && newNode.shape === SHAPE_STATE_WITH_DESC) {\n if (newNode.type === \"group\") {\n newNode.shape = SHAPE_GROUP;\n } else {\n newNode.shape = SHAPE_STATE;\n }\n }\n if (!newNode.type && parsedItem.doc) {\n log.info(\"Setting cluster for XCX\", itemId, getDir2(parsedItem));\n newNode.type = \"group\";\n newNode.isGroup = true;\n newNode.dir = getDir2(parsedItem);\n newNode.shape = parsedItem.type === DIVIDER_TYPE ? SHAPE_DIVIDER : SHAPE_GROUP;\n newNode.cssClasses = `${newNode.cssClasses} ${CSS_DIAGRAM_CLUSTER} ${altFlag ? CSS_DIAGRAM_CLUSTER_ALT : \"\"}`;\n }\n const nodeData = {\n labelStyle: \"\",\n shape: newNode.shape,\n label: newNode.description,\n cssClasses: newNode.cssClasses,\n cssCompiledStyles: [],\n cssStyles: newNode.cssStyles,\n id: itemId,\n dir: newNode.dir,\n domId: stateDomId(itemId, graphItemCount),\n type: newNode.type,\n isGroup: newNode.type === \"group\",\n padding: 8,\n rx: 10,\n ry: 10,\n look\n };\n if (nodeData.shape === SHAPE_DIVIDER) {\n nodeData.label = \"\";\n }\n if (parent && parent.id !== \"root\") {\n log.trace(\"Setting node \", itemId, \" to be child of its parent \", parent.id);\n nodeData.parentId = parent.id;\n }\n nodeData.centerLabel = true;\n if (parsedItem.note) {\n const noteData = {\n labelStyle: \"\",\n shape: SHAPE_NOTE,\n label: parsedItem.note.text,\n cssClasses: CSS_DIAGRAM_NOTE,\n // useHtmlLabels: false,\n cssStyles: [],\n cssCompilesStyles: [],\n id: itemId + NOTE_ID + \"-\" + graphItemCount,\n domId: stateDomId(itemId, graphItemCount, NOTE),\n type: newNode.type,\n isGroup: newNode.type === \"group\",\n padding: getConfig().flowchart.padding,\n look,\n position: parsedItem.note.position\n };\n const parentNodeId = itemId + PARENT_ID;\n const groupData = {\n labelStyle: \"\",\n shape: SHAPE_NOTEGROUP,\n label: parsedItem.note.text,\n cssClasses: newNode.cssClasses,\n cssStyles: [],\n id: itemId + PARENT_ID,\n domId: stateDomId(itemId, graphItemCount, PARENT),\n type: \"group\",\n isGroup: true,\n padding: 16,\n //getConfig().flowchart.padding\n look,\n position: parsedItem.note.position\n };\n graphItemCount++;\n groupData.id = parentNodeId;\n noteData.parentId = parentNodeId;\n insertOrUpdateNode(nodes2, groupData, classes2);\n insertOrUpdateNode(nodes2, noteData, classes2);\n insertOrUpdateNode(nodes2, nodeData, classes2);\n let from = itemId;\n let to = noteData.id;\n if (parsedItem.note.position === \"left of\") {\n from = noteData.id;\n to = itemId;\n }\n edges2.push({\n id: from + \"-\" + to,\n start: from,\n end: to,\n arrowhead: \"none\",\n arrowTypeEnd: \"\",\n style: G_EDGE_STYLE,\n labelStyle: \"\",\n classes: CSS_EDGE_NOTE_EDGE,\n arrowheadStyle: G_EDGE_ARROWHEADSTYLE,\n labelpos: G_EDGE_LABELPOS,\n labelType: G_EDGE_LABELTYPE,\n thickness: G_EDGE_THICKNESS,\n look\n });\n } else {\n insertOrUpdateNode(nodes2, nodeData, classes2);\n }\n }\n if (parsedItem.doc) {\n log.trace(\"Adding nodes children \");\n setupDoc(parsedItem, parsedItem.doc, diagramStates, nodes2, edges2, !altFlag, look, classes2);\n }\n}, \"dataFetcher\");\nvar reset = /* @__PURE__ */ __name(() => {\n nodeDb.clear();\n graphItemCount = 0;\n}, \"reset\");\n\n// src/diagrams/state/stateDb.js\nvar START_NODE = \"[*]\";\nvar START_TYPE = \"start\";\nvar END_NODE = START_NODE;\nvar END_TYPE = \"end\";\nvar COLOR_KEYWORD = \"color\";\nvar FILL_KEYWORD = \"fill\";\nvar BG_FILL = \"bgFill\";\nvar STYLECLASS_SEP = \",\";\nfunction newClassesList() {\n return /* @__PURE__ */ new Map();\n}\n__name(newClassesList, \"newClassesList\");\nvar nodes = [];\nvar edges = [];\nvar direction = DEFAULT_DIAGRAM_DIRECTION;\nvar rootDoc = [];\nvar classes = newClassesList();\nvar newDoc = /* @__PURE__ */ __name(() => {\n return {\n /** @type {{ id1: string, id2: string, relationTitle: string }[]} */\n relations: [],\n states: /* @__PURE__ */ new Map(),\n documents: {}\n };\n}, \"newDoc\");\nvar documents = {\n root: newDoc()\n};\nvar currentDocument = documents.root;\nvar startEndCount = 0;\nvar dividerCnt = 0;\nvar lineType = {\n LINE: 0,\n DOTTED_LINE: 1\n};\nvar relationType = {\n AGGREGATION: 0,\n EXTENSION: 1,\n COMPOSITION: 2,\n DEPENDENCY: 3\n};\nvar clone = /* @__PURE__ */ __name((o) => JSON.parse(JSON.stringify(o)), \"clone\");\nvar setRootDoc = /* @__PURE__ */ __name((o) => {\n log.info(\"Setting root doc\", o);\n rootDoc = o;\n}, \"setRootDoc\");\nvar getRootDoc = /* @__PURE__ */ __name(() => rootDoc, \"getRootDoc\");\nvar docTranslator = /* @__PURE__ */ __name((parent, node, first) => {\n if (node.stmt === STMT_RELATION) {\n docTranslator(parent, node.state1, true);\n docTranslator(parent, node.state2, false);\n } else {\n if (node.stmt === STMT_STATE) {\n if (node.id === \"[*]\") {\n node.id = first ? parent.id + \"_start\" : parent.id + \"_end\";\n node.start = first;\n } else {\n node.id = node.id.trim();\n }\n }\n if (node.doc) {\n const doc = [];\n let currentDoc = [];\n let i;\n for (i = 0; i < node.doc.length; i++) {\n if (node.doc[i].type === DIVIDER_TYPE) {\n const newNode = clone(node.doc[i]);\n newNode.doc = clone(currentDoc);\n doc.push(newNode);\n currentDoc = [];\n } else {\n currentDoc.push(node.doc[i]);\n }\n }\n if (doc.length > 0 && currentDoc.length > 0) {\n const newNode = {\n stmt: STMT_STATE,\n id: generateId(),\n type: \"divider\",\n doc: clone(currentDoc)\n };\n doc.push(clone(newNode));\n node.doc = doc;\n }\n node.doc.forEach((docNode) => docTranslator(node, docNode, true));\n }\n }\n}, \"docTranslator\");\nvar getRootDocV2 = /* @__PURE__ */ __name(() => {\n docTranslator({ id: \"root\" }, { id: \"root\", doc: rootDoc }, true);\n return { id: \"root\", doc: rootDoc };\n}, \"getRootDocV2\");\nvar extract = /* @__PURE__ */ __name((_doc) => {\n let doc;\n if (_doc.doc) {\n doc = _doc.doc;\n } else {\n doc = _doc;\n }\n log.info(doc);\n clear2(true);\n log.info(\"Extract initial document:\", doc);\n doc.forEach((item) => {\n log.warn(\"Statement\", item.stmt);\n switch (item.stmt) {\n case STMT_STATE:\n addState(\n item.id.trim(),\n item.type,\n item.doc,\n item.description,\n item.note,\n item.classes,\n item.styles,\n item.textStyles\n );\n break;\n case STMT_RELATION:\n addRelation(item.state1, item.state2, item.description);\n break;\n case STMT_CLASSDEF:\n addStyleClass(item.id.trim(), item.classes);\n break;\n case STMT_STYLEDEF:\n {\n const ids = item.id.trim().split(\",\");\n const styles = item.styleClass.split(\",\");\n ids.forEach((id) => {\n let foundState = getState(id);\n if (foundState === void 0) {\n const trimmedId = id.trim();\n addState(trimmedId);\n foundState = getState(trimmedId);\n }\n foundState.styles = styles.map((s) => s.replace(/;/g, \"\")?.trim());\n });\n }\n break;\n case STMT_APPLYCLASS:\n setCssClass(item.id.trim(), item.styleClass);\n break;\n }\n });\n const diagramStates = getStates();\n const config = getConfig();\n const look = config.look;\n reset();\n dataFetcher(void 0, getRootDocV2(), diagramStates, nodes, edges, true, look, classes);\n nodes.forEach((node) => {\n if (Array.isArray(node.label)) {\n node.description = node.label.slice(1);\n if (node.isGroup && node.description.length > 0) {\n throw new Error(\n \"Group nodes can only have label. Remove the additional description for node [\" + node.id + \"]\"\n );\n }\n node.label = node.label[0];\n }\n });\n}, \"extract\");\nvar addState = /* @__PURE__ */ __name(function(id, type = DEFAULT_STATE_TYPE, doc = null, descr = null, note = null, classes2 = null, styles = null, textStyles = null) {\n const trimmedId = id?.trim();\n if (!currentDocument.states.has(trimmedId)) {\n log.info(\"Adding state \", trimmedId, descr);\n currentDocument.states.set(trimmedId, {\n id: trimmedId,\n descriptions: [],\n type,\n doc,\n note,\n classes: [],\n styles: [],\n textStyles: []\n });\n } else {\n if (!currentDocument.states.get(trimmedId).doc) {\n currentDocument.states.get(trimmedId).doc = doc;\n }\n if (!currentDocument.states.get(trimmedId).type) {\n currentDocument.states.get(trimmedId).type = type;\n }\n }\n if (descr) {\n log.info(\"Setting state description\", trimmedId, descr);\n if (typeof descr === \"string\") {\n addDescription(trimmedId, descr.trim());\n }\n if (typeof descr === \"object\") {\n descr.forEach((des) => addDescription(trimmedId, des.trim()));\n }\n }\n if (note) {\n const doc2 = currentDocument.states.get(trimmedId);\n doc2.note = note;\n doc2.note.text = common_default.sanitizeText(doc2.note.text, getConfig());\n }\n if (classes2) {\n log.info(\"Setting state classes\", trimmedId, classes2);\n const classesList = typeof classes2 === \"string\" ? [classes2] : classes2;\n classesList.forEach((cssClass) => setCssClass(trimmedId, cssClass.trim()));\n }\n if (styles) {\n log.info(\"Setting state styles\", trimmedId, styles);\n const stylesList = typeof styles === \"string\" ? [styles] : styles;\n stylesList.forEach((style) => setStyle(trimmedId, style.trim()));\n }\n if (textStyles) {\n log.info(\"Setting state styles\", trimmedId, styles);\n const textStylesList = typeof textStyles === \"string\" ? [textStyles] : textStyles;\n textStylesList.forEach((textStyle) => setTextStyle(trimmedId, textStyle.trim()));\n }\n}, \"addState\");\nvar clear2 = /* @__PURE__ */ __name(function(saveCommon) {\n nodes = [];\n edges = [];\n documents = {\n root: newDoc()\n };\n currentDocument = documents.root;\n startEndCount = 0;\n classes = newClassesList();\n if (!saveCommon) {\n clear();\n }\n}, \"clear\");\nvar getState = /* @__PURE__ */ __name(function(id) {\n return currentDocument.states.get(id);\n}, \"getState\");\nvar getStates = /* @__PURE__ */ __name(function() {\n return currentDocument.states;\n}, \"getStates\");\nvar logDocuments = /* @__PURE__ */ __name(function() {\n log.info(\"Documents = \", documents);\n}, \"logDocuments\");\nvar getRelations = /* @__PURE__ */ __name(function() {\n return currentDocument.relations;\n}, \"getRelations\");\nfunction startIdIfNeeded(id = \"\") {\n let fixedId = id;\n if (id === START_NODE) {\n startEndCount++;\n fixedId = `${START_TYPE}${startEndCount}`;\n }\n return fixedId;\n}\n__name(startIdIfNeeded, \"startIdIfNeeded\");\nfunction startTypeIfNeeded(id = \"\", type = DEFAULT_STATE_TYPE) {\n return id === START_NODE ? START_TYPE : type;\n}\n__name(startTypeIfNeeded, \"startTypeIfNeeded\");\nfunction endIdIfNeeded(id = \"\") {\n let fixedId = id;\n if (id === END_NODE) {\n startEndCount++;\n fixedId = `${END_TYPE}${startEndCount}`;\n }\n return fixedId;\n}\n__name(endIdIfNeeded, \"endIdIfNeeded\");\nfunction endTypeIfNeeded(id = \"\", type = DEFAULT_STATE_TYPE) {\n return id === END_NODE ? END_TYPE : type;\n}\n__name(endTypeIfNeeded, \"endTypeIfNeeded\");\nfunction addRelationObjs(item1, item2, relationTitle) {\n let id1 = startIdIfNeeded(item1.id.trim());\n let type1 = startTypeIfNeeded(item1.id.trim(), item1.type);\n let id2 = startIdIfNeeded(item2.id.trim());\n let type2 = startTypeIfNeeded(item2.id.trim(), item2.type);\n addState(\n id1,\n type1,\n item1.doc,\n item1.description,\n item1.note,\n item1.classes,\n item1.styles,\n item1.textStyles\n );\n addState(\n id2,\n type2,\n item2.doc,\n item2.description,\n item2.note,\n item2.classes,\n item2.styles,\n item2.textStyles\n );\n currentDocument.relations.push({\n id1,\n id2,\n relationTitle: common_default.sanitizeText(relationTitle, getConfig())\n });\n}\n__name(addRelationObjs, \"addRelationObjs\");\nvar addRelation = /* @__PURE__ */ __name(function(item1, item2, title) {\n if (typeof item1 === \"object\") {\n addRelationObjs(item1, item2, title);\n } else {\n const id1 = startIdIfNeeded(item1.trim());\n const type1 = startTypeIfNeeded(item1);\n const id2 = endIdIfNeeded(item2.trim());\n const type2 = endTypeIfNeeded(item2);\n addState(id1, type1);\n addState(id2, type2);\n currentDocument.relations.push({\n id1,\n id2,\n title: common_default.sanitizeText(title, getConfig())\n });\n }\n}, \"addRelation\");\nvar addDescription = /* @__PURE__ */ __name(function(id, descr) {\n const theState = currentDocument.states.get(id);\n const _descr = descr.startsWith(\":\") ? descr.replace(\":\", \"\").trim() : descr;\n theState.descriptions.push(common_default.sanitizeText(_descr, getConfig()));\n}, \"addDescription\");\nvar cleanupLabel = /* @__PURE__ */ __name(function(label) {\n if (label.substring(0, 1) === \":\") {\n return label.substr(2).trim();\n } else {\n return label.trim();\n }\n}, \"cleanupLabel\");\nvar getDividerId = /* @__PURE__ */ __name(() => {\n dividerCnt++;\n return \"divider-id-\" + dividerCnt;\n}, \"getDividerId\");\nvar addStyleClass = /* @__PURE__ */ __name(function(id, styleAttributes = \"\") {\n if (!classes.has(id)) {\n classes.set(id, { id, styles: [], textStyles: [] });\n }\n const foundClass = classes.get(id);\n if (styleAttributes !== void 0 && styleAttributes !== null) {\n styleAttributes.split(STYLECLASS_SEP).forEach((attrib) => {\n const fixedAttrib = attrib.replace(/([^;]*);/, \"$1\").trim();\n if (RegExp(COLOR_KEYWORD).exec(attrib)) {\n const newStyle1 = fixedAttrib.replace(FILL_KEYWORD, BG_FILL);\n const newStyle2 = newStyle1.replace(COLOR_KEYWORD, FILL_KEYWORD);\n foundClass.textStyles.push(newStyle2);\n }\n foundClass.styles.push(fixedAttrib);\n });\n }\n}, \"addStyleClass\");\nvar getClasses2 = /* @__PURE__ */ __name(function() {\n return classes;\n}, \"getClasses\");\nvar setCssClass = /* @__PURE__ */ __name(function(itemIds, cssClassName) {\n itemIds.split(\",\").forEach(function(id) {\n let foundState = getState(id);\n if (foundState === void 0) {\n const trimmedId = id.trim();\n addState(trimmedId);\n foundState = getState(trimmedId);\n }\n foundState.classes.push(cssClassName);\n });\n}, \"setCssClass\");\nvar setStyle = /* @__PURE__ */ __name(function(itemId, styleText) {\n const item = getState(itemId);\n if (item !== void 0) {\n item.styles.push(styleText);\n }\n}, \"setStyle\");\nvar setTextStyle = /* @__PURE__ */ __name(function(itemId, cssClassName) {\n const item = getState(itemId);\n if (item !== void 0) {\n item.textStyles.push(cssClassName);\n }\n}, \"setTextStyle\");\nvar getDirection = /* @__PURE__ */ __name(() => direction, \"getDirection\");\nvar setDirection = /* @__PURE__ */ __name((dir) => {\n direction = dir;\n}, \"setDirection\");\nvar trimColon = /* @__PURE__ */ __name((str) => str && str[0] === \":\" ? str.substr(1).trim() : str.trim(), \"trimColon\");\nvar getData = /* @__PURE__ */ __name(() => {\n const config = getConfig();\n return { nodes, edges, other: {}, config, direction: getDir(getRootDocV2()) };\n}, \"getData\");\nvar stateDb_default = {\n getConfig: /* @__PURE__ */ __name(() => getConfig().state, \"getConfig\"),\n getData,\n addState,\n clear: clear2,\n getState,\n getStates,\n getRelations,\n getClasses: getClasses2,\n getDirection,\n addRelation,\n getDividerId,\n setDirection,\n cleanupLabel,\n lineType,\n relationType,\n logDocuments,\n getRootDoc,\n setRootDoc,\n getRootDocV2,\n extract,\n trimColon,\n getAccTitle,\n setAccTitle,\n getAccDescription,\n setAccDescription,\n addStyleClass,\n setCssClass,\n addDescription,\n setDiagramTitle,\n getDiagramTitle\n};\n\n// src/diagrams/state/styles.js\nvar getStyles = /* @__PURE__ */ __name((options) => `\ndefs #statediagram-barbEnd {\n fill: ${options.transitionColor};\n stroke: ${options.transitionColor};\n }\ng.stateGroup text {\n fill: ${options.nodeBorder};\n stroke: none;\n font-size: 10px;\n}\ng.stateGroup text {\n fill: ${options.textColor};\n stroke: none;\n font-size: 10px;\n\n}\ng.stateGroup .state-title {\n font-weight: bolder;\n fill: ${options.stateLabelColor};\n}\n\ng.stateGroup rect {\n fill: ${options.mainBkg};\n stroke: ${options.nodeBorder};\n}\n\ng.stateGroup line {\n stroke: ${options.lineColor};\n stroke-width: 1;\n}\n\n.transition {\n stroke: ${options.transitionColor};\n stroke-width: 1;\n fill: none;\n}\n\n.stateGroup .composit {\n fill: ${options.background};\n border-bottom: 1px\n}\n\n.stateGroup .alt-composit {\n fill: #e0e0e0;\n border-bottom: 1px\n}\n\n.state-note {\n stroke: ${options.noteBorderColor};\n fill: ${options.noteBkgColor};\n\n text {\n fill: ${options.noteTextColor};\n stroke: none;\n font-size: 10px;\n }\n}\n\n.stateLabel .box {\n stroke: none;\n stroke-width: 0;\n fill: ${options.mainBkg};\n opacity: 0.5;\n}\n\n.edgeLabel .label rect {\n fill: ${options.labelBackgroundColor};\n opacity: 0.5;\n}\n.edgeLabel {\n background-color: ${options.edgeLabelBackground};\n p {\n background-color: ${options.edgeLabelBackground};\n }\n rect {\n opacity: 0.5;\n background-color: ${options.edgeLabelBackground};\n fill: ${options.edgeLabelBackground};\n }\n text-align: center;\n}\n.edgeLabel .label text {\n fill: ${options.transitionLabelColor || options.tertiaryTextColor};\n}\n.label div .edgeLabel {\n color: ${options.transitionLabelColor || options.tertiaryTextColor};\n}\n\n.stateLabel text {\n fill: ${options.stateLabelColor};\n font-size: 10px;\n font-weight: bold;\n}\n\n.node circle.state-start {\n fill: ${options.specialStateColor};\n stroke: ${options.specialStateColor};\n}\n\n.node .fork-join {\n fill: ${options.specialStateColor};\n stroke: ${options.specialStateColor};\n}\n\n.node circle.state-end {\n fill: ${options.innerEndBackground};\n stroke: ${options.background};\n stroke-width: 1.5\n}\n.end-state-inner {\n fill: ${options.compositeBackground || options.background};\n // stroke: ${options.background};\n stroke-width: 1.5\n}\n\n.node rect {\n fill: ${options.stateBkg || options.mainBkg};\n stroke: ${options.stateBorder || options.nodeBorder};\n stroke-width: 1px;\n}\n.node polygon {\n fill: ${options.mainBkg};\n stroke: ${options.stateBorder || options.nodeBorder};;\n stroke-width: 1px;\n}\n#statediagram-barbEnd {\n fill: ${options.lineColor};\n}\n\n.statediagram-cluster rect {\n fill: ${options.compositeTitleBackground};\n stroke: ${options.stateBorder || options.nodeBorder};\n stroke-width: 1px;\n}\n\n.cluster-label, .nodeLabel {\n color: ${options.stateLabelColor};\n // line-height: 1;\n}\n\n.statediagram-cluster rect.outer {\n rx: 5px;\n ry: 5px;\n}\n.statediagram-state .divider {\n stroke: ${options.stateBorder || options.nodeBorder};\n}\n\n.statediagram-state .title-state {\n rx: 5px;\n ry: 5px;\n}\n.statediagram-cluster.statediagram-cluster .inner {\n fill: ${options.compositeBackground || options.background};\n}\n.statediagram-cluster.statediagram-cluster-alt .inner {\n fill: ${options.altBackground ? options.altBackground : \"#efefef\"};\n}\n\n.statediagram-cluster .inner {\n rx:0;\n ry:0;\n}\n\n.statediagram-state rect.basic {\n rx: 5px;\n ry: 5px;\n}\n.statediagram-state rect.divider {\n stroke-dasharray: 10,10;\n fill: ${options.altBackground ? options.altBackground : \"#efefef\"};\n}\n\n.note-edge {\n stroke-dasharray: 5;\n}\n\n.statediagram-note rect {\n fill: ${options.noteBkgColor};\n stroke: ${options.noteBorderColor};\n stroke-width: 1px;\n rx: 0;\n ry: 0;\n}\n.statediagram-note rect {\n fill: ${options.noteBkgColor};\n stroke: ${options.noteBorderColor};\n stroke-width: 1px;\n rx: 0;\n ry: 0;\n}\n\n.statediagram-note text {\n fill: ${options.noteTextColor};\n}\n\n.statediagram-note .nodeLabel {\n color: ${options.noteTextColor};\n}\n.statediagram .edgeLabel {\n color: red; // ${options.noteTextColor};\n}\n\n#dependencyStart, #dependencyEnd {\n fill: ${options.lineColor};\n stroke: ${options.lineColor};\n stroke-width: 1;\n}\n\n.statediagramTitleText {\n text-anchor: middle;\n font-size: 18px;\n fill: ${options.textColor};\n}\n`, \"getStyles\");\nvar styles_default = getStyles;\n\nexport {\n stateDiagram_default,\n stateRenderer_v3_unified_default,\n stateDb_default,\n styles_default\n};\n"], + "mappings": "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", + "names": ["parser", "o", "__name", "k", "v", "o2", "l", "$V0", "$V1", "$V2", "$V3", "$V4", "$V5", "$V6", "$V7", "$V8", "$V9", "$Va", "$Vb", "$Vc", "$Vd", "$Ve", "$Vf", "$Vg", "$Vh", "$Vi", "$Vj", "$Vk", "$Vl", "$Vm", "$Vn", "$Vo", "$Vp", "$Vq", "$Vr", "$Vs", "$Vt", "parser2", "yytext", "yyleng", "yylineno", "yy", "yystate", "$$", "_$", "$0", "stateStmt", "relDescription", "id", "description", "parts", "str", "hash", "error", "input", "self", "stack", "tstack", "vstack", "lstack", "table", "recovering", "TERROR", "EOF", "args", "lexer2", "sharedState", "yyloc", "ranges", "popStack", "n", "lex", "token", "symbol", "preErrorSymbol", "state", "action", "a", "r", "yyval", "p", "len", "newState", "expected", "errStr", "lexer", "ch", "lines", "oldLines", "past", "next", "pre", "c", "match", "indexed_rule", "backup", "tempMatch", "index", "rules", "i", "condition", "yy_", "$avoiding_name_collisions", "YY_START", "YYSTATE", "Parser", "stateDiagram_default", "DEFAULT_DIAGRAM_DIRECTION", "DEFAULT_NESTED_DOC_DIR", "STMT_STATE", "STMT_RELATION", "STMT_CLASSDEF", "STMT_STYLEDEF", "STMT_APPLYCLASS", "DEFAULT_STATE_TYPE", "DIVIDER_TYPE", "G_EDGE_STYLE", "G_EDGE_ARROWHEADSTYLE", "G_EDGE_LABELPOS", "G_EDGE_LABELTYPE", "G_EDGE_THICKNESS", "SHAPE_STATE", "SHAPE_STATE_WITH_DESC", "SHAPE_START", "SHAPE_END", "SHAPE_DIVIDER", "SHAPE_GROUP", "SHAPE_NOTE", "SHAPE_NOTEGROUP", "CSS_DIAGRAM", "CSS_STATE", "CSS_DIAGRAM_STATE", "CSS_EDGE", "CSS_NOTE", "CSS_NOTE_EDGE", "CSS_EDGE_NOTE_EDGE", "CSS_DIAGRAM_NOTE", "CSS_CLUSTER", "CSS_DIAGRAM_CLUSTER", "CSS_CLUSTER_ALT", "CSS_DIAGRAM_CLUSTER_ALT", "PARENT", "NOTE", "DOMID_STATE", "DOMID_TYPE_SPACER", "NOTE_ID", "PARENT_ID", "getDir", "parsedItem", "defaultDir", "dir", "parsedItemDoc", "getClasses", "text", "diagramObj", "draw", "_version", "diag", "log", "securityLevel", "conf", "layout", "getConfig2", "data4Layout", "svg", "getDiagramElement", "render", "padding", "utils_default", "setupViewPortForSVG", "stateRenderer_v3_unified_default", "nodeDb", "graphItemCount", "stateDomId", "itemId", "counter", "type", "typeSpacer", "typeStr", "setupDoc", "parentParsedItem", "doc", "diagramStates", "nodes2", "edges2", "altFlag", "look", "classes2", "item", "dataFetcher", "edgeData", "common_default", "getDir2", "insertOrUpdateNode", "nodeData", "cssClass", "classDef", "existingNodeData", "node", "getClassesFromDbInfo", "dbInfoItem", "getStylesFromDbInfo", "parent", "dbState", "classStr", "style", "shape", "newNode", "noteData", "parentNodeId", "groupData", "from", "to", "reset", "START_NODE", "START_TYPE", "END_NODE", "END_TYPE", "COLOR_KEYWORD", "FILL_KEYWORD", "BG_FILL", "STYLECLASS_SEP", "newClassesList", "nodes", "edges", "direction", "rootDoc", "classes", "newDoc", "documents", "currentDocument", "startEndCount", "dividerCnt", "lineType", "relationType", "clone", "setRootDoc", "getRootDoc", "docTranslator", "first", "currentDoc", "generateId", "docNode", "getRootDocV2", "extract", "_doc", "clear2", "addState", "addRelation", "addStyleClass", "ids", "styles", "foundState", "getState", "trimmedId", "s", "setCssClass", "getStates", "descr", "note", "textStyles", "addDescription", "des", "doc2", "setStyle", "textStyle", "setTextStyle", "saveCommon", "clear", "logDocuments", "getRelations", "startIdIfNeeded", "fixedId", "startTypeIfNeeded", "endIdIfNeeded", "endTypeIfNeeded", "addRelationObjs", "item1", "item2", "relationTitle", "id1", "type1", "id2", "type2", "title", "theState", "_descr", "cleanupLabel", "label", "getDividerId", "styleAttributes", "foundClass", "attrib", "fixedAttrib", "newStyle2", "getClasses2", "itemIds", "cssClassName", "styleText", "getDirection", "setDirection", "trimColon", "getData", "config", "stateDb_default", "getAccTitle", "setAccTitle", "getAccDescription", "setAccDescription", "setDiagramTitle", "getDiagramTitle", "getStyles", "options", "styles_default"] +} diff --git a/docs/_site/public/chunk-AUO2PXKS.min.js b/docs/_site/public/chunk-AUO2PXKS.min.js new file mode 100644 index 0000000..c655cba --- /dev/null +++ b/docs/_site/public/chunk-AUO2PXKS.min.js @@ -0,0 +1,67 @@ +import{o as oe}from"./chunk-PYPO7LRM.min.js";import{K as Q,M as re,N as ie,Z as le,h as x,ia as B,j as se}from"./chunk-U3SD26FK.min.js";function ae(a){for(var e=[],t=1;t"']/,Be=new RegExp(de.source,"g"),ke=/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,qe=new RegExp(ke.source,"g"),je={"&":"&","<":"<",">":">",'"':""","'":"'"},ce=a=>je[a];function m(a,e){if(e){if(de.test(a))return a.replace(Be,ce)}else if(ke.test(a))return a.replace(qe,ce);return a}var Ze=/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/ig;function We(a){return a.replace(Ze,(e,t)=>(t=t.toLowerCase(),t==="colon"?":":t.charAt(0)==="#"?t.charAt(1)==="x"?String.fromCharCode(parseInt(t.substring(2),16)):String.fromCharCode(+t.substring(1)):""))}var Pe=/(^|[^\[])\^/g;function k(a,e){let t=typeof a=="string"?a:a.source;e=e||"";let s={replace:(n,r)=>{let i=typeof r=="string"?r:r.source;return i=i.replace(Pe,"$1"),t=t.replace(n,i),s},getRegex:()=>new RegExp(t,e)};return s}function pe(a){try{a=encodeURI(a).replace(/%25/g,"%")}catch{return null}return a}var L={exec:()=>null};function he(a,e){let t=a.replace(/\|/g,(r,i,l)=>{let o=!1,p=i;for(;--p>=0&&l[p]==="\\";)o=!o;return o?"|":" |"}),s=t.split(/ \|/),n=0;if(s[0].trim()||s.shift(),s.length>0&&!s[s.length-1].trim()&&s.pop(),e)if(s.length>e)s.splice(e);else for(;s.length{let r=n.match(/^\s+/);if(r===null)return n;let[i]=r;return i.length>=s.length?n.slice(s.length):n}).join(` +`)}var S=class{options;rules;lexer;constructor(e){this.options=e||R}space(e){let t=this.rules.block.newline.exec(e);if(t&&t[0].length>0)return{type:"space",raw:t[0]}}code(e){let t=this.rules.block.code.exec(e);if(t){let s=t[0].replace(/^ {1,4}/gm,"");return{type:"code",raw:t[0],codeBlockStyle:"indented",text:this.options.pedantic?s:I(s,` +`)}}}fences(e){let t=this.rules.block.fences.exec(e);if(t){let s=t[0],n=Oe(s,t[3]||"");return{type:"code",raw:s,lang:t[2]?t[2].trim().replace(this.rules.inline.anyPunctuation,"$1"):t[2],text:n}}}heading(e){let t=this.rules.block.heading.exec(e);if(t){let s=t[2].trim();if(/#$/.test(s)){let n=I(s,"#");(this.options.pedantic||!n||/ $/.test(n))&&(s=n.trim())}return{type:"heading",raw:t[0],depth:t[1].length,text:s,tokens:this.lexer.inline(s)}}}hr(e){let t=this.rules.block.hr.exec(e);if(t)return{type:"hr",raw:I(t[0],` +`)}}blockquote(e){let t=this.rules.block.blockquote.exec(e);if(t){let s=I(t[0],` +`).split(` +`),n="",r="",i=[];for(;s.length>0;){let l=!1,o=[],p;for(p=0;p/.test(s[p]))o.push(s[p]),l=!0;else if(!l)o.push(s[p]);else break;s=s.slice(p);let c=o.join(` +`),h=c.replace(/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,` + $1`).replace(/^ {0,3}>[ \t]?/gm,"");n=n?`${n} +${c}`:c,r=r?`${r} +${h}`:h;let u=this.lexer.state.top;if(this.lexer.state.top=!0,this.lexer.blockTokens(h,i,!0),this.lexer.state.top=u,s.length===0)break;let f=i[i.length-1];if(f?.type==="code")break;if(f?.type==="blockquote"){let g=f,b=g.raw+` +`+s.join(` +`),w=this.blockquote(b);i[i.length-1]=w,n=n.substring(0,n.length-g.raw.length)+w.raw,r=r.substring(0,r.length-g.text.length)+w.text;break}else if(f?.type==="list"){let g=f,b=g.raw+` +`+s.join(` +`),w=this.list(b);i[i.length-1]=w,n=n.substring(0,n.length-f.raw.length)+w.raw,r=r.substring(0,r.length-g.raw.length)+w.raw,s=b.substring(i[i.length-1].raw.length).split(` +`);continue}}return{type:"blockquote",raw:n,tokens:i,text:r}}}list(e){let t=this.rules.block.list.exec(e);if(t){let s=t[1].trim(),n=s.length>1,r={type:"list",raw:"",ordered:n,start:n?+s.slice(0,-1):"",loose:!1,items:[]};s=n?`\\d{1,9}\\${s.slice(-1)}`:`\\${s}`,this.options.pedantic&&(s=n?s:"[*+-]");let i=new RegExp(`^( {0,3}${s})((?:[ ][^\\n]*)?(?:\\n|$))`),l=!1;for(;e;){let o=!1,p="",c="";if(!(t=i.exec(e))||this.rules.block.hr.test(e))break;p=t[0],e=e.substring(p.length);let h=t[2].split(` +`,1)[0].replace(/^\t+/,O=>" ".repeat(3*O.length)),u=e.split(` +`,1)[0],f=!h.trim(),g=0;if(this.options.pedantic?(g=2,c=h.trimStart()):f?g=t[1].length+1:(g=t[2].search(/[^ ]/),g=g>4?1:g,c=h.slice(g),g+=t[1].length),f&&/^ *$/.test(u)&&(p+=u+` +`,e=e.substring(u.length+1),o=!0),!o){let O=new RegExp(`^ {0,${Math.min(3,g-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`),ee=new RegExp(`^ {0,${Math.min(3,g-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),te=new RegExp(`^ {0,${Math.min(3,g-1)}}(?:\`\`\`|~~~)`),ne=new RegExp(`^ {0,${Math.min(3,g-1)}}#`);for(;e;){let D=e.split(` +`,1)[0];if(u=D,this.options.pedantic&&(u=u.replace(/^ {1,4}(?=( {4})*[^ ])/g," ")),te.test(u)||ne.test(u)||O.test(u)||ee.test(e))break;if(u.search(/[^ ]/)>=g||!u.trim())c+=` +`+u.slice(g);else{if(f||h.search(/[^ ]/)>=4||te.test(h)||ne.test(h)||ee.test(h))break;c+=` +`+u}!f&&!u.trim()&&(f=!0),p+=D+` +`,e=e.substring(D.length+1),h=u.slice(g)}}r.loose||(l?r.loose=!0:/\n *\n *$/.test(p)&&(l=!0));let b=null,w;this.options.gfm&&(b=/^\[[ xX]\] /.exec(c),b&&(w=b[0]!=="[ ] ",c=c.replace(/^\[[ xX]\] +/,""))),r.items.push({type:"list_item",raw:p,task:!!b,checked:w,loose:!1,text:c,tokens:[]}),r.raw+=p}r.items[r.items.length-1].raw=r.items[r.items.length-1].raw.trimEnd(),r.items[r.items.length-1].text=r.items[r.items.length-1].text.trimEnd(),r.raw=r.raw.trimEnd();for(let o=0;oh.type==="space"),c=p.length>0&&p.some(h=>/\n.*\n/.test(h.raw));r.loose=c}if(r.loose)for(let o=0;o$/,"$1").replace(this.rules.inline.anyPunctuation,"$1"):"",r=t[3]?t[3].substring(1,t[3].length-1).replace(this.rules.inline.anyPunctuation,"$1"):t[3];return{type:"def",tag:s,raw:t[0],href:n,title:r}}}table(e){let t=this.rules.block.table.exec(e);if(!t||!/[:|]/.test(t[2]))return;let s=he(t[1]),n=t[2].replace(/^\||\| *$/g,"").split("|"),r=t[3]&&t[3].trim()?t[3].replace(/\n[ \t]*$/,"").split(` +`):[],i={type:"table",raw:t[0],header:[],align:[],rows:[]};if(s.length===n.length){for(let l of n)/^ *-+: *$/.test(l)?i.align.push("right"):/^ *:-+: *$/.test(l)?i.align.push("center"):/^ *:-+ *$/.test(l)?i.align.push("left"):i.align.push(null);for(let l=0;l({text:o,tokens:this.lexer.inline(o),header:!1,align:i.align[p]})));return i}}lheading(e){let t=this.rules.block.lheading.exec(e);if(t)return{type:"heading",raw:t[0],depth:t[2].charAt(0)==="="?1:2,text:t[1],tokens:this.lexer.inline(t[1])}}paragraph(e){let t=this.rules.block.paragraph.exec(e);if(t){let s=t[1].charAt(t[1].length-1)===` +`?t[1].slice(0,-1):t[1];return{type:"paragraph",raw:t[0],text:s,tokens:this.lexer.inline(s)}}}text(e){let t=this.rules.block.text.exec(e);if(t)return{type:"text",raw:t[0],text:t[0],tokens:this.lexer.inline(t[0])}}escape(e){let t=this.rules.inline.escape.exec(e);if(t)return{type:"escape",raw:t[0],text:m(t[1])}}tag(e){let t=this.rules.inline.tag.exec(e);if(t)return!this.lexer.state.inLink&&/^
    /i.test(t[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&/^<(pre|code|kbd|script)(\s|>)/i.test(t[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&/^<\/(pre|code|kbd|script)(\s|>)/i.test(t[0])&&(this.lexer.state.inRawBlock=!1),{type:"html",raw:t[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:t[0]}}link(e){let t=this.rules.inline.link.exec(e);if(t){let s=t[2].trim();if(!this.options.pedantic&&/^$/.test(s))return;let i=I(s.slice(0,-1),"\\");if((s.length-i.length)%2===0)return}else{let i=Me(t[2],"()");if(i>-1){let o=(t[0].indexOf("!")===0?5:4)+t[1].length+i;t[2]=t[2].substring(0,i),t[0]=t[0].substring(0,o).trim(),t[3]=""}}let n=t[2],r="";if(this.options.pedantic){let i=/^([^'"]*[^\s])\s+(['"])(.*)\2/.exec(n);i&&(n=i[1],r=i[3])}else r=t[3]?t[3].slice(1,-1):"";return n=n.trim(),/^$/.test(s)?n=n.slice(1):n=n.slice(1,-1)),ue(t,{href:n&&n.replace(this.rules.inline.anyPunctuation,"$1"),title:r&&r.replace(this.rules.inline.anyPunctuation,"$1")},t[0],this.lexer)}}reflink(e,t){let s;if((s=this.rules.inline.reflink.exec(e))||(s=this.rules.inline.nolink.exec(e))){let n=(s[2]||s[1]).replace(/\s+/g," "),r=t[n.toLowerCase()];if(!r){let i=s[0].charAt(0);return{type:"text",raw:i,text:i}}return ue(s,r,s[0],this.lexer)}}emStrong(e,t,s=""){let n=this.rules.inline.emStrongLDelim.exec(e);if(!n||n[3]&&s.match(/[\p{L}\p{N}]/u))return;if(!(n[1]||n[2]||"")||!s||this.rules.inline.punctuation.exec(s)){let i=[...n[0]].length-1,l,o,p=i,c=0,h=n[0][0]==="*"?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(h.lastIndex=0,t=t.slice(-1*e.length+i);(n=h.exec(t))!=null;){if(l=n[1]||n[2]||n[3]||n[4]||n[5]||n[6],!l)continue;if(o=[...l].length,n[3]||n[4]){p+=o;continue}else if((n[5]||n[6])&&i%3&&!((i+o)%3)){c+=o;continue}if(p-=o,p>0)continue;o=Math.min(o,o+p+c);let u=[...n[0]][0].length,f=e.slice(0,i+n.index+u+o);if(Math.min(i,o)%2){let b=f.slice(1,-1);return{type:"em",raw:f,text:b,tokens:this.lexer.inlineTokens(b)}}let g=f.slice(2,-2);return{type:"strong",raw:f,text:g,tokens:this.lexer.inlineTokens(g)}}}}codespan(e){let t=this.rules.inline.code.exec(e);if(t){let s=t[2].replace(/\n/g," "),n=/[^ ]/.test(s),r=/^ /.test(s)&&/ $/.test(s);return n&&r&&(s=s.substring(1,s.length-1)),s=m(s,!0),{type:"codespan",raw:t[0],text:s}}}br(e){let t=this.rules.inline.br.exec(e);if(t)return{type:"br",raw:t[0]}}del(e){let t=this.rules.inline.del.exec(e);if(t)return{type:"del",raw:t[0],text:t[2],tokens:this.lexer.inlineTokens(t[2])}}autolink(e){let t=this.rules.inline.autolink.exec(e);if(t){let s,n;return t[2]==="@"?(s=m(t[1]),n="mailto:"+s):(s=m(t[1]),n=s),{type:"link",raw:t[0],text:s,href:n,tokens:[{type:"text",raw:s,text:s}]}}}url(e){let t;if(t=this.rules.inline.url.exec(e)){let s,n;if(t[2]==="@")s=m(t[0]),n="mailto:"+s;else{let r;do r=t[0],t[0]=this.rules.inline._backpedal.exec(t[0])?.[0]??"";while(r!==t[0]);s=m(t[0]),t[1]==="www."?n="http://"+t[0]:n=t[0]}return{type:"link",raw:t[0],text:s,href:n,tokens:[{type:"text",raw:s,text:s}]}}}inlineText(e){let t=this.rules.inline.text.exec(e);if(t){let s;return this.lexer.state.inRawBlock?s=t[0]:s=m(t[0]),{type:"text",raw:t[0],text:s}}}},De=/^(?: *(?:\n|$))+/,Qe=/^( {4}[^\n]+(?:\n(?: *(?:\n|$))*)?)+/,Fe=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,v=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,He=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,xe=/(?:[*+-]|\d{1,9}[.)])/,me=k(/^(?!bull |blockCode|fences|blockquote|heading|html)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html))+?)\n {0,3}(=+|-+) *(?:\n+|$)/).replace(/bull/g,xe).replace(/blockCode/g,/ {4}/).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/).getRegex(),U=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,Ne=/^[^\n]+/,X=/(?!\s*\])(?:\\.|[^\[\]\\])+/,Ue=k(/^ {0,3}\[(label)\]: *(?:\n *)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n *)?| *\n *)(title))? *(?:\n+|$)/).replace("label",X).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),Xe=k(/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,xe).getRegex(),Z="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",G=/|$))/,Ge=k("^ {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",G).replace("tag",Z).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),be=k(U).replace("hr",v).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",Z).getRegex(),Ke=k(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",be).getRegex(),K={blockquote:Ke,code:Qe,def:Ue,fences:Fe,heading:He,hr:v,html:Ge,lheading:me,list:Xe,newline:De,paragraph:be,table:L,text:Ne},fe=k("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",v).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code"," {4}[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",Z).getRegex(),Ve={...K,table:fe,paragraph:k(U).replace("hr",v).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",fe).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",Z).getRegex()},Ye={...K,html:k(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",G).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:L,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:k(U).replace("hr",v).replace("heading",` *#{1,6} *[^ +]`).replace("lheading",me).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()},we=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,Je=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,ye=/^( {2,}|\\)\n(?!\s*$)/,et=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\]*?>/g,st=k(/^(?:\*+(?:((?!\*)[punct])|[^\s*]))|^_+(?:((?!_)[punct])|([^\s_]))/,"u").replace(/punct/g,C).getRegex(),rt=k("^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)[punct](\\*+)(?=[\\s]|$)|[^punct\\s](\\*+)(?!\\*)(?=[punct\\s]|$)|(?!\\*)[punct\\s](\\*+)(?=[^punct\\s])|[\\s](\\*+)(?!\\*)(?=[punct])|(?!\\*)[punct](\\*+)(?!\\*)(?=[punct])|[^punct\\s](\\*+)(?=[^punct\\s])","gu").replace(/punct/g,C).getRegex(),it=k("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)[punct](_+)(?=[\\s]|$)|[^punct\\s](_+)(?!_)(?=[punct\\s]|$)|(?!_)[punct\\s](_+)(?=[^punct\\s])|[\\s](_+)(?!_)(?=[punct])|(?!_)[punct](_+)(?!_)(?=[punct])","gu").replace(/punct/g,C).getRegex(),lt=k(/\\([punct])/,"gu").replace(/punct/g,C).getRegex(),ot=k(/^<(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(),at=k(G).replace("(?:-->|$)","-->").getRegex(),ct=k("^comment|^|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^").replace("comment",at).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),j=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,pt=k(/^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/).replace("label",j).replace("href",/<(?:\\.|[^\n<>\\])+>|[^\s\x00-\x1f]*/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),Te=k(/^!?\[(label)\]\[(ref)\]/).replace("label",j).replace("ref",X).getRegex(),$e=k(/^!?\[(ref)\](?:\[\])?/).replace("ref",X).getRegex(),ht=k("reflink|nolink(?!\\()","g").replace("reflink",Te).replace("nolink",$e).getRegex(),V={_backpedal:L,anyPunctuation:lt,autolink:ot,blockSkip:nt,br:ye,code:Je,del:L,emStrongLDelim:st,emStrongRDelimAst:rt,emStrongRDelimUnd:it,escape:we,link:pt,nolink:$e,punctuation:tt,reflink:Te,reflinkSearch:ht,tag:ct,text:et,url:L},ut={...V,link:k(/^!?\[(label)\]\((.*?)\)/).replace("label",j).getRegex(),reflink:k(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",j).getRegex()},F={...V,escape:k(we).replace("])","~|])").getRegex(),url:k(/^((?: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~])\1(?=[^~]|$)/,text:/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\o+" ".repeat(p.length));let n,r,i;for(;e;)if(!(this.options.extensions&&this.options.extensions.block&&this.options.extensions.block.some(l=>(n=l.call({lexer:this},e,t))?(e=e.substring(n.raw.length),t.push(n),!0):!1))){if(n=this.tokenizer.space(e)){e=e.substring(n.raw.length),n.raw.length===1&&t.length>0?t[t.length-1].raw+=` +`:t.push(n);continue}if(n=this.tokenizer.code(e)){e=e.substring(n.raw.length),r=t[t.length-1],r&&(r.type==="paragraph"||r.type==="text")?(r.raw+=` +`+n.raw,r.text+=` +`+n.text,this.inlineQueue[this.inlineQueue.length-1].src=r.text):t.push(n);continue}if(n=this.tokenizer.fences(e)){e=e.substring(n.raw.length),t.push(n);continue}if(n=this.tokenizer.heading(e)){e=e.substring(n.raw.length),t.push(n);continue}if(n=this.tokenizer.hr(e)){e=e.substring(n.raw.length),t.push(n);continue}if(n=this.tokenizer.blockquote(e)){e=e.substring(n.raw.length),t.push(n);continue}if(n=this.tokenizer.list(e)){e=e.substring(n.raw.length),t.push(n);continue}if(n=this.tokenizer.html(e)){e=e.substring(n.raw.length),t.push(n);continue}if(n=this.tokenizer.def(e)){e=e.substring(n.raw.length),r=t[t.length-1],r&&(r.type==="paragraph"||r.type==="text")?(r.raw+=` +`+n.raw,r.text+=` +`+n.raw,this.inlineQueue[this.inlineQueue.length-1].src=r.text):this.tokens.links[n.tag]||(this.tokens.links[n.tag]={href:n.href,title:n.title});continue}if(n=this.tokenizer.table(e)){e=e.substring(n.raw.length),t.push(n);continue}if(n=this.tokenizer.lheading(e)){e=e.substring(n.raw.length),t.push(n);continue}if(i=e,this.options.extensions&&this.options.extensions.startBlock){let l=1/0,o=e.slice(1),p;this.options.extensions.startBlock.forEach(c=>{p=c.call({lexer:this},o),typeof p=="number"&&p>=0&&(l=Math.min(l,p))}),l<1/0&&l>=0&&(i=e.substring(0,l+1))}if(this.state.top&&(n=this.tokenizer.paragraph(i))){r=t[t.length-1],s&&r?.type==="paragraph"?(r.raw+=` +`+n.raw,r.text+=` +`+n.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=r.text):t.push(n),s=i.length!==e.length,e=e.substring(n.raw.length);continue}if(n=this.tokenizer.text(e)){e=e.substring(n.raw.length),r=t[t.length-1],r&&r.type==="text"?(r.raw+=` +`+n.raw,r.text+=` +`+n.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=r.text):t.push(n);continue}if(e){let l="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(l);break}else throw new Error(l)}}return this.state.top=!0,t}inline(e,t=[]){return this.inlineQueue.push({src:e,tokens:t}),t}inlineTokens(e,t=[]){let s,n,r,i=e,l,o,p;if(this.tokens.links){let c=Object.keys(this.tokens.links);if(c.length>0)for(;(l=this.tokenizer.rules.inline.reflinkSearch.exec(i))!=null;)c.includes(l[0].slice(l[0].lastIndexOf("[")+1,-1))&&(i=i.slice(0,l.index)+"["+"a".repeat(l[0].length-2)+"]"+i.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;(l=this.tokenizer.rules.inline.blockSkip.exec(i))!=null;)i=i.slice(0,l.index)+"["+"a".repeat(l[0].length-2)+"]"+i.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);for(;(l=this.tokenizer.rules.inline.anyPunctuation.exec(i))!=null;)i=i.slice(0,l.index)+"++"+i.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);for(;e;)if(o||(p=""),o=!1,!(this.options.extensions&&this.options.extensions.inline&&this.options.extensions.inline.some(c=>(s=c.call({lexer:this},e,t))?(e=e.substring(s.raw.length),t.push(s),!0):!1))){if(s=this.tokenizer.escape(e)){e=e.substring(s.raw.length),t.push(s);continue}if(s=this.tokenizer.tag(e)){e=e.substring(s.raw.length),n=t[t.length-1],n&&s.type==="text"&&n.type==="text"?(n.raw+=s.raw,n.text+=s.text):t.push(s);continue}if(s=this.tokenizer.link(e)){e=e.substring(s.raw.length),t.push(s);continue}if(s=this.tokenizer.reflink(e,this.tokens.links)){e=e.substring(s.raw.length),n=t[t.length-1],n&&s.type==="text"&&n.type==="text"?(n.raw+=s.raw,n.text+=s.text):t.push(s);continue}if(s=this.tokenizer.emStrong(e,i,p)){e=e.substring(s.raw.length),t.push(s);continue}if(s=this.tokenizer.codespan(e)){e=e.substring(s.raw.length),t.push(s);continue}if(s=this.tokenizer.br(e)){e=e.substring(s.raw.length),t.push(s);continue}if(s=this.tokenizer.del(e)){e=e.substring(s.raw.length),t.push(s);continue}if(s=this.tokenizer.autolink(e)){e=e.substring(s.raw.length),t.push(s);continue}if(!this.state.inLink&&(s=this.tokenizer.url(e))){e=e.substring(s.raw.length),t.push(s);continue}if(r=e,this.options.extensions&&this.options.extensions.startInline){let c=1/0,h=e.slice(1),u;this.options.extensions.startInline.forEach(f=>{u=f.call({lexer:this},h),typeof u=="number"&&u>=0&&(c=Math.min(c,u))}),c<1/0&&c>=0&&(r=e.substring(0,c+1))}if(s=this.tokenizer.inlineText(r)){e=e.substring(s.raw.length),s.raw.slice(-1)!=="_"&&(p=s.raw.slice(-1)),o=!0,n=t[t.length-1],n&&n.type==="text"?(n.raw+=s.raw,n.text+=s.text):t.push(s);continue}if(e){let c="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(c);break}else throw new Error(c)}}return t}},_=class{options;parser;constructor(e){this.options=e||R}space(e){return""}code({text:e,lang:t,escaped:s}){let n=(t||"").match(/^\S*/)?.[0],r=e.replace(/\n$/,"")+` +`;return n?'
    '+(s?r:m(r,!0))+`
    +`:"
    "+(s?r:m(r,!0))+`
    +`}blockquote({tokens:e}){return`
    +${this.parser.parse(e)}
    +`}html({text:e}){return e}heading({tokens:e,depth:t}){return`${this.parser.parseInline(e)} +`}hr(e){return`
    +`}list(e){let t=e.ordered,s=e.start,n="";for(let l=0;l +`+n+" +`}listitem(e){let t="";if(e.task){let s=this.checkbox({checked:!!e.checked});e.loose?e.tokens.length>0&&e.tokens[0].type==="paragraph"?(e.tokens[0].text=s+" "+e.tokens[0].text,e.tokens[0].tokens&&e.tokens[0].tokens.length>0&&e.tokens[0].tokens[0].type==="text"&&(e.tokens[0].tokens[0].text=s+" "+e.tokens[0].tokens[0].text)):e.tokens.unshift({type:"text",raw:s+" ",text:s+" "}):t+=s+" "}return t+=this.parser.parse(e.tokens,!!e.loose),`
    + +
  • ${t}
  • +`}checkbox({checked:e}){return"'}paragraph({tokens:e}){return`

    ${this.parser.parseInline(e)}

    +`}table(e){let t="",s="";for(let r=0;r${n}`),` + +`+t+` +`+n+`
    +`}tablerow({text:e}){return` +${e} +`}tablecell(e){let t=this.parser.parseInline(e.tokens),s=e.header?"th":"td";return(e.align?`<${s} align="${e.align}">`:`<${s}>`)+t+` +`}strong({tokens:e}){return`${this.parser.parseInline(e)}`}em({tokens:e}){return`${this.parser.parseInline(e)}`}codespan({text:e}){return`${e}`}br(e){return"
    "}del({tokens:e}){return`${this.parser.parseInline(e)}`}link({href:e,title:t,tokens:s}){let n=this.parser.parseInline(s),r=pe(e);if(r===null)return n;e=r;let i='
    ",i}image({href:e,title:t,text:s}){let n=pe(e);if(n===null)return s;e=n;let r=`${s}{let l=r[i].flat(1/0);s=s.concat(this.walkTokens(l,t))}):r.tokens&&(s=s.concat(this.walkTokens(r.tokens,t)))}}return s}use(...e){let t=this.defaults.extensions||{renderers:{},childTokens:{}};return e.forEach(s=>{let n={...s};if(n.async=this.defaults.async||n.async||!1,s.extensions&&(s.extensions.forEach(r=>{if(!r.name)throw new Error("extension name required");if("renderer"in r){let i=t.renderers[r.name];i?t.renderers[r.name]=function(...l){let o=r.renderer.apply(this,l);return o===!1&&(o=i.apply(this,l)),o}:t.renderers[r.name]=r.renderer}if("tokenizer"in r){if(!r.level||r.level!=="block"&&r.level!=="inline")throw new Error("extension level must be 'block' or 'inline'");let i=t[r.level];i?i.unshift(r.tokenizer):t[r.level]=[r.tokenizer],r.start&&(r.level==="block"?t.startBlock?t.startBlock.push(r.start):t.startBlock=[r.start]:r.level==="inline"&&(t.startInline?t.startInline.push(r.start):t.startInline=[r.start]))}"childTokens"in r&&r.childTokens&&(t.childTokens[r.name]=r.childTokens)}),n.extensions=t),s.renderer){let r=this.defaults.renderer||new _(this.defaults);for(let i in s.renderer){if(!(i in r))throw new Error(`renderer '${i}' does not exist`);if(["options","parser"].includes(i))continue;let l=i,o=s.renderer[l];s.useNewRenderer||(o=this.#t(o,l,r));let p=r[l];r[l]=(...c)=>{let h=o.apply(r,c);return h===!1&&(h=p.apply(r,c)),h||""}}n.renderer=r}if(s.tokenizer){let r=this.defaults.tokenizer||new S(this.defaults);for(let i in s.tokenizer){if(!(i in r))throw new Error(`tokenizer '${i}' does not exist`);if(["options","rules","lexer"].includes(i))continue;let l=i,o=s.tokenizer[l],p=r[l];r[l]=(...c)=>{let h=o.apply(r,c);return h===!1&&(h=p.apply(r,c)),h}}n.tokenizer=r}if(s.hooks){let r=this.defaults.hooks||new z;for(let i in s.hooks){if(!(i in r))throw new Error(`hook '${i}' does not exist`);if(i==="options")continue;let l=i,o=s.hooks[l],p=r[l];z.passThroughHooks.has(i)?r[l]=c=>{if(this.defaults.async)return Promise.resolve(o.call(r,c)).then(u=>p.call(r,u));let h=o.call(r,c);return p.call(r,h)}:r[l]=(...c)=>{let h=o.apply(r,c);return h===!1&&(h=p.apply(r,c)),h}}n.hooks=r}if(s.walkTokens){let r=this.defaults.walkTokens,i=s.walkTokens;n.walkTokens=function(l){let o=[];return o.push(i.call(this,l)),r&&(o=o.concat(r.call(this,l))),o}}this.defaults={...this.defaults,...n}}),this}#t(e,t,s){switch(t){case"heading":return function(n){return!n.type||n.type!==t?e.apply(this,arguments):e.call(this,s.parser.parseInline(n.tokens),n.depth,We(s.parser.parseInline(n.tokens,s.parser.textRenderer)))};case"code":return function(n){return!n.type||n.type!==t?e.apply(this,arguments):e.call(this,n.text,n.lang,!!n.escaped)};case"table":return function(n){if(!n.type||n.type!==t)return e.apply(this,arguments);let r="",i="";for(let o=0;o0&&c.tokens[0].type==="paragraph"?(c.tokens[0].text=g+" "+c.tokens[0].text,c.tokens[0].tokens&&c.tokens[0].tokens.length>0&&c.tokens[0].tokens[0].type==="text"&&(c.tokens[0].tokens[0].text=g+" "+c.tokens[0].tokens[0].text)):c.tokens.unshift({type:"text",text:g+" "}):f+=g+" "}f+=this.parser.parse(c.tokens,l),o+=this.listitem({type:"list_item",raw:f,text:f,task:u,checked:!!h,loose:l,tokens:c.tokens})}return e.call(this,o,r,i)};case"html":return function(n){return!n.type||n.type!==t?e.apply(this,arguments):e.call(this,n.text,n.block)};case"paragraph":return function(n){return!n.type||n.type!==t?e.apply(this,arguments):e.call(this,this.parser.parseInline(n.tokens))};case"escape":return function(n){return!n.type||n.type!==t?e.apply(this,arguments):e.call(this,n.text)};case"link":return function(n){return!n.type||n.type!==t?e.apply(this,arguments):e.call(this,n.href,n.title,this.parser.parseInline(n.tokens))};case"image":return function(n){return!n.type||n.type!==t?e.apply(this,arguments):e.call(this,n.href,n.title,n.text)};case"strong":return function(n){return!n.type||n.type!==t?e.apply(this,arguments):e.call(this,this.parser.parseInline(n.tokens))};case"em":return function(n){return!n.type||n.type!==t?e.apply(this,arguments):e.call(this,this.parser.parseInline(n.tokens))};case"codespan":return function(n){return!n.type||n.type!==t?e.apply(this,arguments):e.call(this,n.text)};case"del":return function(n){return!n.type||n.type!==t?e.apply(this,arguments):e.call(this,this.parser.parseInline(n.tokens))};case"text":return function(n){return!n.type||n.type!==t?e.apply(this,arguments):e.call(this,n.text)}}return e}setOptions(e){return this.defaults={...this.defaults,...e},this}lexer(e,t){return y.lex(e,t??this.defaults)}parser(e,t){return T.parse(e,t??this.defaults)}#e(e,t){return(s,n)=>{let r={...n},i={...this.defaults,...r};this.defaults.async===!0&&r.async===!1&&(i.silent||console.warn("marked(): The async option was set to true by an extension. The async: false option sent to parse will be ignored."),i.async=!0);let l=this.#n(!!i.silent,!!i.async);if(typeof s>"u"||s===null)return l(new Error("marked(): input parameter is undefined or null"));if(typeof s!="string")return l(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(s)+", string expected"));if(i.hooks&&(i.hooks.options=i),i.async)return Promise.resolve(i.hooks?i.hooks.preprocess(s):s).then(o=>e(o,i)).then(o=>i.hooks?i.hooks.processAllTokens(o):o).then(o=>i.walkTokens?Promise.all(this.walkTokens(o,i.walkTokens)).then(()=>o):o).then(o=>t(o,i)).then(o=>i.hooks?i.hooks.postprocess(o):o).catch(l);try{i.hooks&&(s=i.hooks.preprocess(s));let o=e(s,i);i.hooks&&(o=i.hooks.processAllTokens(o)),i.walkTokens&&this.walkTokens(o,i.walkTokens);let p=t(o,i);return i.hooks&&(p=i.hooks.postprocess(p)),p}catch(o){return l(o)}}}#n(e,t){return s=>{if(s.message+=` +Please report this to https://github.com/markedjs/marked.`,e){let n="

    An error occurred:

    "+m(s.message+"",!0)+"
    ";return t?Promise.resolve(n):n}if(t)return Promise.reject(s);throw s}}},$=new H;function d(a,e){return $.parse(a,e)}d.options=d.setOptions=function(a){return $.setOptions(a),d.defaults=$.defaults,ge(d.defaults),d};d.getDefaults=N;d.defaults=R;d.use=function(...a){return $.use(...a),d.defaults=$.defaults,ge(d.defaults),d};d.walkTokens=function(a,e){return $.walkTokens(a,e)};d.parseInline=$.parseInline;d.Parser=T;d.parser=T.parse;d.Renderer=_;d.TextRenderer=E;d.Lexer=y;d.lexer=y.lex;d.Tokenizer=S;d.Hooks=z;d.parse=d;var kt=d.options,xt=d.setOptions,mt=d.use,bt=d.walkTokens,wt=d.parseInline;var yt=T.parse,Tt=y.lex;function Re(a,{markdownAutoWrap:e}){let s=a.replace(//g,` +`).replace(/\n{2,}/g,` +`),n=ae(s);return e===!1?n.replace(/ /g," "):n}x(Re,"preprocessMarkdown");function ze(a,e={}){let t=Re(a,e),s=d.lexer(t),n=[[]],r=0;function i(l,o="normal"){l.type==="text"?l.text.split(` +`).forEach((c,h)=>{h!==0&&(r++,n.push([])),c.split(" ").forEach(u=>{u=u.replace(/'/g,"'"),u&&n[r].push({content:u,type:o})})}):l.type==="strong"||l.type==="em"?l.tokens.forEach(p=>{i(p,l.type)}):l.type==="html"&&n[r].push({content:l.text,type:"normal"})}return x(i,"processNode"),s.forEach(l=>{l.type==="paragraph"?l.tokens?.forEach(o=>{i(o)}):l.type==="html"&&n[r].push({content:l.text,type:"normal"})}),n}x(ze,"markdownToLines");function Se(a,{markdownAutoWrap:e}={}){let t=d.lexer(a);function s(n){return n.type==="text"?e===!1?n.text.replace(/\n */g,"
    ").replace(/ /g," "):n.text.replace(/\n */g,"
    "):n.type==="strong"?`${n.tokens?.map(s).join("")}`:n.type==="em"?`${n.tokens?.map(s).join("")}`:n.type==="paragraph"?`

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

    `:n.type==="space"?"":n.type==="html"?`${n.text}`:n.type==="escape"?n.text:`Unsupported markdown: ${n.type}`}return x(s,"output"),t.map(s).join("")}x(Se,"markdownToHTML");function _e(a){return Intl.Segmenter?[...new Intl.Segmenter().segment(a)].map(e=>e.segment):[...a]}x(_e,"splitTextToChars");function Ie(a,e){let t=_e(e.content);return J(a,[],t,e.type)}x(Ie,"splitWordToFitWidth");function J(a,e,t,s){if(t.length===0)return[{content:e.join(""),type:s},{content:"",type:s}];let[n,...r]=t,i=[...e,n];return a([{content:i.join(""),type:s}])?J(a,i,r,s):(e.length===0&&n&&(e.push(n),t.shift()),[{content:e.join(""),type:s},{content:t.join(""),type:s}])}x(J,"splitWordToFitWidthRecursion");function Ae(a,e){if(a.some(({content:t})=>t.includes(` +`)))throw new Error("splitLineToFitWidth does not support newlines in the line");return W(a,e)}x(Ae,"splitLineToFitWidth");function W(a,e,t=[],s=[]){if(a.length===0)return s.length>0&&t.push(s),t.length>0?t:[];let n="";a[0].content===" "&&(n=" ",a.shift());let r=a.shift()??{content:" ",type:"normal"},i=[...s];if(n!==""&&i.push({content:n,type:"normal"}),i.push(r),e(i))return W(a,e,t,i);if(s.length>0)t.push(s),a.unshift(r);else if(r.content){let[l,o]=Ie(e,r);t.push([l]),o.content&&a.unshift(o)}return W(a,e,t)}x(W,"splitLineToFitWidthRecursion");function Y(a,e){e&&a.attr("style",e)}x(Y,"applyStyle");async function Le(a,e,t,s,n=!1){let r=a.append("foreignObject");r.attr("width",`${10*t}px`),r.attr("height",`${10*t}px`);let i=r.append("xhtml:div"),l=e.label;e.label&&Q(e.label)&&(l=await re(e.label.replace(ie.lineBreakRegex,` +`),le()));let o=e.isNode?"nodeLabel":"edgeLabel",p=i.append("span");p.html(l),Y(p,e.labelStyle),p.attr("class",`${o} ${s}`),Y(i,e.labelStyle),i.style("display","table-cell"),i.style("white-space","nowrap"),i.style("line-height","1.5"),i.style("max-width",t+"px"),i.style("text-align","center"),i.attr("xmlns","http://www.w3.org/1999/xhtml"),n&&i.attr("class","labelBkg");let c=i.node().getBoundingClientRect();return c.width===t&&(i.style("display","table"),i.style("white-space","break-spaces"),i.style("width",t+"px"),c=i.node().getBoundingClientRect()),r.node()}x(Le,"addHtmlSpan");function P(a,e,t){return a.append("tspan").attr("class","text-outer-tspan").attr("x",0).attr("y",e*t-.1+"em").attr("dy",t+"em")}x(P,"createTspan");function Ee(a,e,t){let s=a.append("text"),n=P(s,1,e);M(n,t);let r=n.node().getComputedTextLength();return s.remove(),r}x(Ee,"computeWidthOfText");function gt(a,e,t){let s=a.append("text"),n=P(s,1,e);M(n,[{content:t,type:"normal"}]);let r=n.node()?.getBoundingClientRect();return r&&s.remove(),r}x(gt,"computeDimensionOfText");function ve(a,e,t,s=!1){let r=e.append("g"),i=r.insert("rect").attr("class","background").attr("style","stroke: none"),l=r.append("text").attr("y","-10.1"),o=0;for(let p of t){let c=x(u=>Ee(r,1.1,u)<=a,"checkWidth"),h=c(p)?[p]:Ae(p,c);for(let u of h){let f=P(l,o,1.1);M(f,u),o++}}if(s){let p=l.node().getBBox(),c=2;return i.attr("x",p.x-c).attr("y",p.y-c).attr("width",p.width+2*c).attr("height",p.height+2*c),r.node()}else return l.node()}x(ve,"createFormattedText");function M(a,e){a.text(""),e.forEach((t,s)=>{let n=a.append("tspan").attr("font-style",t.type==="em"?"italic":"normal").attr("class","text-inner-tspan").attr("font-weight",t.type==="strong"?"bold":"normal");s===0?n.text(t.content):n.text(" "+t.content)})}x(M,"updateTextContentAndStyles");function Ce(a){return a.replace(/fa[bklrs]?:fa-[\w-]+/g,e=>``)}x(Ce,"replaceIconSubstring");var At=x(async(a,e="",{style:t="",isTitle:s=!1,classes:n="",useHtmlLabels:r=!0,isNode:i=!0,width:l=200,addSvgBackground:o=!1}={},p)=>{if(se.debug("XYZ createText",e,t,s,n,r,i,"addSvgBackground: ",o),r){let c=Se(e,p),h=Ce(oe(c)),u=e.replace(/\\\\/g,"\\"),f={isNode:i,label:Q(e)?u:h,labelStyle:t.replace("fill:","color:")};return await Le(a,f,l,n,o)}else{let c=e.replace(//g,"
    "),h=ze(c.replace("
    ","
    "),p),u=ve(l,a,h,e?o:!1);if(i){/stroke:/.exec(t)&&(t=t.replace("stroke:","lineColor:"));let f=t.replace(/stroke:[^;]+;?/g,"").replace(/stroke-width:[^;]+;?/g,"").replace(/fill:[^;]+;?/g,"").replace(/color:/g,"fill:");B(u).attr("style",f)}else{let f=t.replace(/stroke:[^;]+;?/g,"").replace(/stroke-width:[^;]+;?/g,"").replace(/fill:[^;]+;?/g,"").replace(/background:/g,"fill:");B(u).select("rect").attr("style",f.replace(/background:/g,"fill:"));let g=t.replace(/stroke:[^;]+;?/g,"").replace(/stroke-width:[^;]+;?/g,"").replace(/fill:[^;]+;?/g,"").replace(/color:/g,"fill:");B(u).select("text").attr("style",g)}return u}},"createText");export{ae as a,gt as b,Ce as c,At as d}; +//# sourceMappingURL=chunk-AUO2PXKS.min.js.map diff --git a/docs/_site/public/chunk-AUO2PXKS.min.js.map b/docs/_site/public/chunk-AUO2PXKS.min.js.map new file mode 100644 index 0000000..b140ee5 --- /dev/null +++ b/docs/_site/public/chunk-AUO2PXKS.min.js.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": ["../../node_modules/ts-dedent/src/index.ts", "../../node_modules/marked/src/defaults.ts", "../../node_modules/marked/src/helpers.ts", "../../node_modules/marked/src/Tokenizer.ts", "../../node_modules/marked/src/rules.ts", "../../node_modules/marked/src/Lexer.ts", "../../node_modules/marked/src/Renderer.ts", "../../node_modules/marked/src/TextRenderer.ts", "../../node_modules/marked/src/Parser.ts", "../../node_modules/marked/src/Hooks.ts", "../../node_modules/marked/src/Instance.ts", "../../node_modules/marked/src/marked.ts", "../../node_modules/mermaid/dist/chunks/mermaid.core/chunk-6JOS74DS.mjs"], + "sourcesContent": ["export function dedent(\n templ: TemplateStringsArray | string,\n ...values: unknown[]\n): string {\n let strings = Array.from(typeof templ === 'string' ? [templ] : templ);\n\n // 1. Remove trailing whitespace.\n strings[strings.length - 1] = strings[strings.length - 1].replace(\n /\\r?\\n([\\t ]*)$/,\n '',\n );\n\n // 2. Find all line breaks to determine the highest common indentation level.\n const indentLengths = strings.reduce((arr, str) => {\n const matches = str.match(/\\n([\\t ]+|(?!\\s).)/g);\n if (matches) {\n return arr.concat(\n matches.map((match) => match.match(/[\\t ]/g)?.length ?? 0),\n );\n }\n return arr;\n }, []);\n\n // 3. Remove the common indentation from all strings.\n if (indentLengths.length) {\n const pattern = new RegExp(`\\n[\\t ]{${Math.min(...indentLengths)}}`, 'g');\n\n strings = strings.map((str) => str.replace(pattern, '\\n'));\n }\n\n // 4. Remove leading whitespace.\n strings[0] = strings[0].replace(/^\\r?\\n/, '');\n\n // 5. Perform interpolation.\n let string = strings[0];\n\n values.forEach((value, i) => {\n // 5.1 Read current indentation level\n const endentations = string.match(/(?:^|\\n)( *)$/)\n const endentation = endentations ? endentations[1] : ''\n let indentedValue = value\n // 5.2 Add indentation to values with multiline strings\n if (typeof value === 'string' && value.includes('\\n')) {\n indentedValue = String(value)\n .split('\\n')\n .map((str, i) => {\n return i === 0 ? str : `${endentation}${str}`\n })\n .join('\\n');\n }\n\n string += indentedValue + strings[i + 1];\n });\n\n return string;\n}\n\nexport default dedent;\n", "/**\n * Gets the original marked default options.\n */\nexport function _getDefaults() {\n return {\n async: false,\n breaks: false,\n extensions: null,\n gfm: true,\n hooks: null,\n pedantic: false,\n renderer: null,\n silent: false,\n tokenizer: null,\n walkTokens: null,\n };\n}\nexport let _defaults = _getDefaults();\nexport function changeDefaults(newDefaults) {\n _defaults = newDefaults;\n}\n", "/**\n * Helpers\n */\nconst escapeTest = /[&<>\"']/;\nconst escapeReplace = new RegExp(escapeTest.source, 'g');\nconst escapeTestNoEncode = /[<>\"']|&(?!(#\\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\\w+);)/;\nconst escapeReplaceNoEncode = new RegExp(escapeTestNoEncode.source, 'g');\nconst escapeReplacements = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n};\nconst getEscapeReplacement = (ch) => escapeReplacements[ch];\nexport function escape(html, encode) {\n if (encode) {\n if (escapeTest.test(html)) {\n return html.replace(escapeReplace, getEscapeReplacement);\n }\n }\n else {\n if (escapeTestNoEncode.test(html)) {\n return html.replace(escapeReplaceNoEncode, getEscapeReplacement);\n }\n }\n return html;\n}\nconst unescapeTest = /&(#(?:\\d+)|(?:#x[0-9A-Fa-f]+)|(?:\\w+));?/ig;\nexport function unescape(html) {\n // explicitly match decimal, hex, and named HTML entities\n return html.replace(unescapeTest, (_, n) => {\n n = n.toLowerCase();\n if (n === 'colon')\n return ':';\n if (n.charAt(0) === '#') {\n return n.charAt(1) === 'x'\n ? String.fromCharCode(parseInt(n.substring(2), 16))\n : String.fromCharCode(+n.substring(1));\n }\n return '';\n });\n}\nconst caret = /(^|[^\\[])\\^/g;\nexport function edit(regex, opt) {\n let source = typeof regex === 'string' ? regex : regex.source;\n opt = opt || '';\n const obj = {\n replace: (name, val) => {\n let valSource = typeof val === 'string' ? val : val.source;\n valSource = valSource.replace(caret, '$1');\n source = source.replace(name, valSource);\n return obj;\n },\n getRegex: () => {\n return new RegExp(source, opt);\n },\n };\n return obj;\n}\nexport function cleanUrl(href) {\n try {\n href = encodeURI(href).replace(/%25/g, '%');\n }\n catch {\n return null;\n }\n return href;\n}\nexport const noopTest = { exec: () => null };\nexport function splitCells(tableRow, count) {\n // ensure that every cell-delimiting pipe has a space\n // before it to distinguish it from an escaped pipe\n const row = tableRow.replace(/\\|/g, (match, offset, str) => {\n let escaped = false;\n let curr = offset;\n while (--curr >= 0 && str[curr] === '\\\\')\n escaped = !escaped;\n if (escaped) {\n // odd number of slashes means | is escaped\n // so we leave it alone\n return '|';\n }\n else {\n // add space before unescaped |\n return ' |';\n }\n }), cells = row.split(/ \\|/);\n let i = 0;\n // First/last cell in a row cannot be empty if it has no leading/trailing pipe\n if (!cells[0].trim()) {\n cells.shift();\n }\n if (cells.length > 0 && !cells[cells.length - 1].trim()) {\n cells.pop();\n }\n if (count) {\n if (cells.length > count) {\n cells.splice(count);\n }\n else {\n while (cells.length < count)\n cells.push('');\n }\n }\n for (; i < cells.length; i++) {\n // leading or trailing whitespace is ignored per the gfm spec\n cells[i] = cells[i].trim().replace(/\\\\\\|/g, '|');\n }\n return cells;\n}\n/**\n * Remove trailing 'c's. Equivalent to str.replace(/c*$/, '').\n * /c*$/ is vulnerable to REDOS.\n *\n * @param str\n * @param c\n * @param invert Remove suffix of non-c chars instead. Default falsey.\n */\nexport function rtrim(str, c, invert) {\n const l = str.length;\n if (l === 0) {\n return '';\n }\n // Length of suffix matching the invert condition.\n let suffLen = 0;\n // Step left until we fail to match the invert condition.\n while (suffLen < l) {\n const currChar = str.charAt(l - suffLen - 1);\n if (currChar === c && !invert) {\n suffLen++;\n }\n else if (currChar !== c && invert) {\n suffLen++;\n }\n else {\n break;\n }\n }\n return str.slice(0, l - suffLen);\n}\nexport function findClosingBracket(str, b) {\n if (str.indexOf(b[1]) === -1) {\n return -1;\n }\n let level = 0;\n for (let i = 0; i < str.length; i++) {\n if (str[i] === '\\\\') {\n i++;\n }\n else if (str[i] === b[0]) {\n level++;\n }\n else if (str[i] === b[1]) {\n level--;\n if (level < 0) {\n return i;\n }\n }\n }\n return -1;\n}\n", "import { _defaults } from './defaults.ts';\nimport { rtrim, splitCells, escape, findClosingBracket, } from './helpers.ts';\nfunction outputLink(cap, link, raw, lexer) {\n const href = link.href;\n const title = link.title ? escape(link.title) : null;\n const text = cap[1].replace(/\\\\([\\[\\]])/g, '$1');\n if (cap[0].charAt(0) !== '!') {\n lexer.state.inLink = true;\n const token = {\n type: 'link',\n raw,\n href,\n title,\n text,\n tokens: lexer.inlineTokens(text),\n };\n lexer.state.inLink = false;\n return token;\n }\n return {\n type: 'image',\n raw,\n href,\n title,\n text: escape(text),\n };\n}\nfunction indentCodeCompensation(raw, text) {\n const matchIndentToCode = raw.match(/^(\\s+)(?:```)/);\n if (matchIndentToCode === null) {\n return text;\n }\n const indentToCode = matchIndentToCode[1];\n return text\n .split('\\n')\n .map(node => {\n const matchIndentInNode = node.match(/^\\s+/);\n if (matchIndentInNode === null) {\n return node;\n }\n const [indentInNode] = matchIndentInNode;\n if (indentInNode.length >= indentToCode.length) {\n return node.slice(indentToCode.length);\n }\n return node;\n })\n .join('\\n');\n}\n/**\n * Tokenizer\n */\nexport class _Tokenizer {\n options;\n rules; // set by the lexer\n lexer; // set by the lexer\n constructor(options) {\n this.options = options || _defaults;\n }\n space(src) {\n const cap = this.rules.block.newline.exec(src);\n if (cap && cap[0].length > 0) {\n return {\n type: 'space',\n raw: cap[0],\n };\n }\n }\n code(src) {\n const cap = this.rules.block.code.exec(src);\n if (cap) {\n const text = cap[0].replace(/^ {1,4}/gm, '');\n return {\n type: 'code',\n raw: cap[0],\n codeBlockStyle: 'indented',\n text: !this.options.pedantic\n ? rtrim(text, '\\n')\n : text,\n };\n }\n }\n fences(src) {\n const cap = this.rules.block.fences.exec(src);\n if (cap) {\n const raw = cap[0];\n const text = indentCodeCompensation(raw, cap[3] || '');\n return {\n type: 'code',\n raw,\n lang: cap[2] ? cap[2].trim().replace(this.rules.inline.anyPunctuation, '$1') : cap[2],\n text,\n };\n }\n }\n heading(src) {\n const cap = this.rules.block.heading.exec(src);\n if (cap) {\n let text = cap[2].trim();\n // remove trailing #s\n if (/#$/.test(text)) {\n const trimmed = rtrim(text, '#');\n if (this.options.pedantic) {\n text = trimmed.trim();\n }\n else if (!trimmed || / $/.test(trimmed)) {\n // CommonMark requires space before trailing #s\n text = trimmed.trim();\n }\n }\n return {\n type: 'heading',\n raw: cap[0],\n depth: cap[1].length,\n text,\n tokens: this.lexer.inline(text),\n };\n }\n }\n hr(src) {\n const cap = this.rules.block.hr.exec(src);\n if (cap) {\n return {\n type: 'hr',\n raw: rtrim(cap[0], '\\n'),\n };\n }\n }\n blockquote(src) {\n const cap = this.rules.block.blockquote.exec(src);\n if (cap) {\n let lines = rtrim(cap[0], '\\n').split('\\n');\n let raw = '';\n let text = '';\n const tokens = [];\n while (lines.length > 0) {\n let inBlockquote = false;\n const currentLines = [];\n let i;\n for (i = 0; i < lines.length; i++) {\n // get lines up to a continuation\n if (/^ {0,3}>/.test(lines[i])) {\n currentLines.push(lines[i]);\n inBlockquote = true;\n }\n else if (!inBlockquote) {\n currentLines.push(lines[i]);\n }\n else {\n break;\n }\n }\n lines = lines.slice(i);\n const currentRaw = currentLines.join('\\n');\n const currentText = currentRaw\n // precede setext continuation with 4 spaces so it isn't a setext\n .replace(/\\n {0,3}((?:=+|-+) *)(?=\\n|$)/g, '\\n $1')\n .replace(/^ {0,3}>[ \\t]?/gm, '');\n raw = raw ? `${raw}\\n${currentRaw}` : currentRaw;\n text = text ? `${text}\\n${currentText}` : currentText;\n // parse blockquote lines as top level tokens\n // merge paragraphs if this is a continuation\n const top = this.lexer.state.top;\n this.lexer.state.top = true;\n this.lexer.blockTokens(currentText, tokens, true);\n this.lexer.state.top = top;\n // if there is no continuation then we are done\n if (lines.length === 0) {\n break;\n }\n const lastToken = tokens[tokens.length - 1];\n if (lastToken?.type === 'code') {\n // blockquote continuation cannot be preceded by a code block\n break;\n }\n else if (lastToken?.type === 'blockquote') {\n // include continuation in nested blockquote\n const oldToken = lastToken;\n const newText = oldToken.raw + '\\n' + lines.join('\\n');\n const newToken = this.blockquote(newText);\n tokens[tokens.length - 1] = newToken;\n raw = raw.substring(0, raw.length - oldToken.raw.length) + newToken.raw;\n text = text.substring(0, text.length - oldToken.text.length) + newToken.text;\n break;\n }\n else if (lastToken?.type === 'list') {\n // include continuation in nested list\n const oldToken = lastToken;\n const newText = oldToken.raw + '\\n' + lines.join('\\n');\n const newToken = this.list(newText);\n tokens[tokens.length - 1] = newToken;\n raw = raw.substring(0, raw.length - lastToken.raw.length) + newToken.raw;\n text = text.substring(0, text.length - oldToken.raw.length) + newToken.raw;\n lines = newText.substring(tokens[tokens.length - 1].raw.length).split('\\n');\n continue;\n }\n }\n return {\n type: 'blockquote',\n raw,\n tokens,\n text,\n };\n }\n }\n list(src) {\n let cap = this.rules.block.list.exec(src);\n if (cap) {\n let bull = cap[1].trim();\n const isordered = bull.length > 1;\n const list = {\n type: 'list',\n raw: '',\n ordered: isordered,\n start: isordered ? +bull.slice(0, -1) : '',\n loose: false,\n items: [],\n };\n bull = isordered ? `\\\\d{1,9}\\\\${bull.slice(-1)}` : `\\\\${bull}`;\n if (this.options.pedantic) {\n bull = isordered ? bull : '[*+-]';\n }\n // Get next list item\n const itemRegex = new RegExp(`^( {0,3}${bull})((?:[\\t ][^\\\\n]*)?(?:\\\\n|$))`);\n let endsWithBlankLine = false;\n // Check if current bullet point can start a new List Item\n while (src) {\n let endEarly = false;\n let raw = '';\n let itemContents = '';\n if (!(cap = itemRegex.exec(src))) {\n break;\n }\n if (this.rules.block.hr.test(src)) { // End list if bullet was actually HR (possibly move into itemRegex?)\n break;\n }\n raw = cap[0];\n src = src.substring(raw.length);\n let line = cap[2].split('\\n', 1)[0].replace(/^\\t+/, (t) => ' '.repeat(3 * t.length));\n let nextLine = src.split('\\n', 1)[0];\n let blankLine = !line.trim();\n let indent = 0;\n if (this.options.pedantic) {\n indent = 2;\n itemContents = line.trimStart();\n }\n else if (blankLine) {\n indent = cap[1].length + 1;\n }\n else {\n indent = cap[2].search(/[^ ]/); // Find first non-space char\n indent = indent > 4 ? 1 : indent; // Treat indented code blocks (> 4 spaces) as having only 1 indent\n itemContents = line.slice(indent);\n indent += cap[1].length;\n }\n if (blankLine && /^ *$/.test(nextLine)) { // Items begin with at most one blank line\n raw += nextLine + '\\n';\n src = src.substring(nextLine.length + 1);\n endEarly = true;\n }\n if (!endEarly) {\n const nextBulletRegex = new RegExp(`^ {0,${Math.min(3, indent - 1)}}(?:[*+-]|\\\\d{1,9}[.)])((?:[ \\t][^\\\\n]*)?(?:\\\\n|$))`);\n const hrRegex = new RegExp(`^ {0,${Math.min(3, indent - 1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\\\* *){3,})(?:\\\\n+|$)`);\n const fencesBeginRegex = new RegExp(`^ {0,${Math.min(3, indent - 1)}}(?:\\`\\`\\`|~~~)`);\n const headingBeginRegex = new RegExp(`^ {0,${Math.min(3, indent - 1)}}#`);\n // Check if following lines should be included in List Item\n while (src) {\n const rawLine = src.split('\\n', 1)[0];\n nextLine = rawLine;\n // Re-align to follow commonmark nesting rules\n if (this.options.pedantic) {\n nextLine = nextLine.replace(/^ {1,4}(?=( {4})*[^ ])/g, ' ');\n }\n // End list item if found code fences\n if (fencesBeginRegex.test(nextLine)) {\n break;\n }\n // End list item if found start of new heading\n if (headingBeginRegex.test(nextLine)) {\n break;\n }\n // End list item if found start of new bullet\n if (nextBulletRegex.test(nextLine)) {\n break;\n }\n // Horizontal rule found\n if (hrRegex.test(src)) {\n break;\n }\n if (nextLine.search(/[^ ]/) >= indent || !nextLine.trim()) { // Dedent if possible\n itemContents += '\\n' + nextLine.slice(indent);\n }\n else {\n // not enough indentation\n if (blankLine) {\n break;\n }\n // paragraph continuation unless last line was a different block level element\n if (line.search(/[^ ]/) >= 4) { // indented code block\n break;\n }\n if (fencesBeginRegex.test(line)) {\n break;\n }\n if (headingBeginRegex.test(line)) {\n break;\n }\n if (hrRegex.test(line)) {\n break;\n }\n itemContents += '\\n' + nextLine;\n }\n if (!blankLine && !nextLine.trim()) { // Check if current line is blank\n blankLine = true;\n }\n raw += rawLine + '\\n';\n src = src.substring(rawLine.length + 1);\n line = nextLine.slice(indent);\n }\n }\n if (!list.loose) {\n // If the previous item ended with a blank line, the list is loose\n if (endsWithBlankLine) {\n list.loose = true;\n }\n else if (/\\n *\\n *$/.test(raw)) {\n endsWithBlankLine = true;\n }\n }\n let istask = null;\n let ischecked;\n // Check for task list items\n if (this.options.gfm) {\n istask = /^\\[[ xX]\\] /.exec(itemContents);\n if (istask) {\n ischecked = istask[0] !== '[ ] ';\n itemContents = itemContents.replace(/^\\[[ xX]\\] +/, '');\n }\n }\n list.items.push({\n type: 'list_item',\n raw,\n task: !!istask,\n checked: ischecked,\n loose: false,\n text: itemContents,\n tokens: [],\n });\n list.raw += raw;\n }\n // Do not consume newlines at end of final item. Alternatively, make itemRegex *start* with any newlines to simplify/speed up endsWithBlankLine logic\n list.items[list.items.length - 1].raw = list.items[list.items.length - 1].raw.trimEnd();\n list.items[list.items.length - 1].text = list.items[list.items.length - 1].text.trimEnd();\n list.raw = list.raw.trimEnd();\n // Item child tokens handled here at end because we needed to have the final item to trim it first\n for (let i = 0; i < list.items.length; i++) {\n this.lexer.state.top = false;\n list.items[i].tokens = this.lexer.blockTokens(list.items[i].text, []);\n if (!list.loose) {\n // Check if list should be loose\n const spacers = list.items[i].tokens.filter(t => t.type === 'space');\n const hasMultipleLineBreaks = spacers.length > 0 && spacers.some(t => /\\n.*\\n/.test(t.raw));\n list.loose = hasMultipleLineBreaks;\n }\n }\n // Set all items to loose if list is loose\n if (list.loose) {\n for (let i = 0; i < list.items.length; i++) {\n list.items[i].loose = true;\n }\n }\n return list;\n }\n }\n html(src) {\n const cap = this.rules.block.html.exec(src);\n if (cap) {\n const token = {\n type: 'html',\n block: true,\n raw: cap[0],\n pre: cap[1] === 'pre' || cap[1] === 'script' || cap[1] === 'style',\n text: cap[0],\n };\n return token;\n }\n }\n def(src) {\n const cap = this.rules.block.def.exec(src);\n if (cap) {\n const tag = cap[1].toLowerCase().replace(/\\s+/g, ' ');\n const href = cap[2] ? cap[2].replace(/^<(.*)>$/, '$1').replace(this.rules.inline.anyPunctuation, '$1') : '';\n const title = cap[3] ? cap[3].substring(1, cap[3].length - 1).replace(this.rules.inline.anyPunctuation, '$1') : cap[3];\n return {\n type: 'def',\n tag,\n raw: cap[0],\n href,\n title,\n };\n }\n }\n table(src) {\n const cap = this.rules.block.table.exec(src);\n if (!cap) {\n return;\n }\n if (!/[:|]/.test(cap[2])) {\n // delimiter row must have a pipe (|) or colon (:) otherwise it is a setext heading\n return;\n }\n const headers = splitCells(cap[1]);\n const aligns = cap[2].replace(/^\\||\\| *$/g, '').split('|');\n const rows = cap[3] && cap[3].trim() ? cap[3].replace(/\\n[ \\t]*$/, '').split('\\n') : [];\n const item = {\n type: 'table',\n raw: cap[0],\n header: [],\n align: [],\n rows: [],\n };\n if (headers.length !== aligns.length) {\n // header and align columns must be equal, rows can be different.\n return;\n }\n for (const align of aligns) {\n if (/^ *-+: *$/.test(align)) {\n item.align.push('right');\n }\n else if (/^ *:-+: *$/.test(align)) {\n item.align.push('center');\n }\n else if (/^ *:-+ *$/.test(align)) {\n item.align.push('left');\n }\n else {\n item.align.push(null);\n }\n }\n for (let i = 0; i < headers.length; i++) {\n item.header.push({\n text: headers[i],\n tokens: this.lexer.inline(headers[i]),\n header: true,\n align: item.align[i],\n });\n }\n for (const row of rows) {\n item.rows.push(splitCells(row, item.header.length).map((cell, i) => {\n return {\n text: cell,\n tokens: this.lexer.inline(cell),\n header: false,\n align: item.align[i],\n };\n }));\n }\n return item;\n }\n lheading(src) {\n const cap = this.rules.block.lheading.exec(src);\n if (cap) {\n return {\n type: 'heading',\n raw: cap[0],\n depth: cap[2].charAt(0) === '=' ? 1 : 2,\n text: cap[1],\n tokens: this.lexer.inline(cap[1]),\n };\n }\n }\n paragraph(src) {\n const cap = this.rules.block.paragraph.exec(src);\n if (cap) {\n const text = cap[1].charAt(cap[1].length - 1) === '\\n'\n ? cap[1].slice(0, -1)\n : cap[1];\n return {\n type: 'paragraph',\n raw: cap[0],\n text,\n tokens: this.lexer.inline(text),\n };\n }\n }\n text(src) {\n const cap = this.rules.block.text.exec(src);\n if (cap) {\n return {\n type: 'text',\n raw: cap[0],\n text: cap[0],\n tokens: this.lexer.inline(cap[0]),\n };\n }\n }\n escape(src) {\n const cap = this.rules.inline.escape.exec(src);\n if (cap) {\n return {\n type: 'escape',\n raw: cap[0],\n text: escape(cap[1]),\n };\n }\n }\n tag(src) {\n const cap = this.rules.inline.tag.exec(src);\n if (cap) {\n if (!this.lexer.state.inLink && /^
    /i.test(cap[0])) {\n this.lexer.state.inLink = false;\n }\n if (!this.lexer.state.inRawBlock && /^<(pre|code|kbd|script)(\\s|>)/i.test(cap[0])) {\n this.lexer.state.inRawBlock = true;\n }\n else if (this.lexer.state.inRawBlock && /^<\\/(pre|code|kbd|script)(\\s|>)/i.test(cap[0])) {\n this.lexer.state.inRawBlock = false;\n }\n return {\n type: 'html',\n raw: cap[0],\n inLink: this.lexer.state.inLink,\n inRawBlock: this.lexer.state.inRawBlock,\n block: false,\n text: cap[0],\n };\n }\n }\n link(src) {\n const cap = this.rules.inline.link.exec(src);\n if (cap) {\n const trimmedUrl = cap[2].trim();\n if (!this.options.pedantic && /^$/.test(trimmedUrl))) {\n return;\n }\n // ending angle bracket cannot be escaped\n const rtrimSlash = rtrim(trimmedUrl.slice(0, -1), '\\\\');\n if ((trimmedUrl.length - rtrimSlash.length) % 2 === 0) {\n return;\n }\n }\n else {\n // find closing parenthesis\n const lastParenIndex = findClosingBracket(cap[2], '()');\n if (lastParenIndex > -1) {\n const start = cap[0].indexOf('!') === 0 ? 5 : 4;\n const linkLen = start + cap[1].length + lastParenIndex;\n cap[2] = cap[2].substring(0, lastParenIndex);\n cap[0] = cap[0].substring(0, linkLen).trim();\n cap[3] = '';\n }\n }\n let href = cap[2];\n let title = '';\n if (this.options.pedantic) {\n // split pedantic href and title\n const link = /^([^'\"]*[^\\s])\\s+(['\"])(.*)\\2/.exec(href);\n if (link) {\n href = link[1];\n title = link[3];\n }\n }\n else {\n title = cap[3] ? cap[3].slice(1, -1) : '';\n }\n href = href.trim();\n if (/^$/.test(trimmedUrl))) {\n // pedantic allows starting angle bracket without ending angle bracket\n href = href.slice(1);\n }\n else {\n href = href.slice(1, -1);\n }\n }\n return outputLink(cap, {\n href: href ? href.replace(this.rules.inline.anyPunctuation, '$1') : href,\n title: title ? title.replace(this.rules.inline.anyPunctuation, '$1') : title,\n }, cap[0], this.lexer);\n }\n }\n reflink(src, links) {\n let cap;\n if ((cap = this.rules.inline.reflink.exec(src))\n || (cap = this.rules.inline.nolink.exec(src))) {\n const linkString = (cap[2] || cap[1]).replace(/\\s+/g, ' ');\n const link = links[linkString.toLowerCase()];\n if (!link) {\n const text = cap[0].charAt(0);\n return {\n type: 'text',\n raw: text,\n text,\n };\n }\n return outputLink(cap, link, cap[0], this.lexer);\n }\n }\n emStrong(src, maskedSrc, prevChar = '') {\n let match = this.rules.inline.emStrongLDelim.exec(src);\n if (!match)\n return;\n // _ can't be between two alphanumerics. \\p{L}\\p{N} includes non-english alphabet/numbers as well\n if (match[3] && prevChar.match(/[\\p{L}\\p{N}]/u))\n return;\n const nextChar = match[1] || match[2] || '';\n if (!nextChar || !prevChar || this.rules.inline.punctuation.exec(prevChar)) {\n // unicode Regex counts emoji as 1 char; spread into array for proper count (used multiple times below)\n const lLength = [...match[0]].length - 1;\n let rDelim, rLength, delimTotal = lLength, midDelimTotal = 0;\n const endReg = match[0][0] === '*' ? this.rules.inline.emStrongRDelimAst : this.rules.inline.emStrongRDelimUnd;\n endReg.lastIndex = 0;\n // Clip maskedSrc to same section of string as src (move to lexer?)\n maskedSrc = maskedSrc.slice(-1 * src.length + lLength);\n while ((match = endReg.exec(maskedSrc)) != null) {\n rDelim = match[1] || match[2] || match[3] || match[4] || match[5] || match[6];\n if (!rDelim)\n continue; // skip single * in __abc*abc__\n rLength = [...rDelim].length;\n if (match[3] || match[4]) { // found another Left Delim\n delimTotal += rLength;\n continue;\n }\n else if (match[5] || match[6]) { // either Left or Right Delim\n if (lLength % 3 && !((lLength + rLength) % 3)) {\n midDelimTotal += rLength;\n continue; // CommonMark Emphasis Rules 9-10\n }\n }\n delimTotal -= rLength;\n if (delimTotal > 0)\n continue; // Haven't found enough closing delimiters\n // Remove extra characters. *a*** -> *a*\n rLength = Math.min(rLength, rLength + delimTotal + midDelimTotal);\n // char length can be >1 for unicode characters;\n const lastCharLength = [...match[0]][0].length;\n const raw = src.slice(0, lLength + match.index + lastCharLength + rLength);\n // Create `em` if smallest delimiter has odd char count. *a***\n if (Math.min(lLength, rLength) % 2) {\n const text = raw.slice(1, -1);\n return {\n type: 'em',\n raw,\n text,\n tokens: this.lexer.inlineTokens(text),\n };\n }\n // Create 'strong' if smallest delimiter has even char count. **a***\n const text = raw.slice(2, -2);\n return {\n type: 'strong',\n raw,\n text,\n tokens: this.lexer.inlineTokens(text),\n };\n }\n }\n }\n codespan(src) {\n const cap = this.rules.inline.code.exec(src);\n if (cap) {\n let text = cap[2].replace(/\\n/g, ' ');\n const hasNonSpaceChars = /[^ ]/.test(text);\n const hasSpaceCharsOnBothEnds = /^ /.test(text) && / $/.test(text);\n if (hasNonSpaceChars && hasSpaceCharsOnBothEnds) {\n text = text.substring(1, text.length - 1);\n }\n text = escape(text, true);\n return {\n type: 'codespan',\n raw: cap[0],\n text,\n };\n }\n }\n br(src) {\n const cap = this.rules.inline.br.exec(src);\n if (cap) {\n return {\n type: 'br',\n raw: cap[0],\n };\n }\n }\n del(src) {\n const cap = this.rules.inline.del.exec(src);\n if (cap) {\n return {\n type: 'del',\n raw: cap[0],\n text: cap[2],\n tokens: this.lexer.inlineTokens(cap[2]),\n };\n }\n }\n autolink(src) {\n const cap = this.rules.inline.autolink.exec(src);\n if (cap) {\n let text, href;\n if (cap[2] === '@') {\n text = escape(cap[1]);\n href = 'mailto:' + text;\n }\n else {\n text = escape(cap[1]);\n href = text;\n }\n return {\n type: 'link',\n raw: cap[0],\n text,\n href,\n tokens: [\n {\n type: 'text',\n raw: text,\n text,\n },\n ],\n };\n }\n }\n url(src) {\n let cap;\n if (cap = this.rules.inline.url.exec(src)) {\n let text, href;\n if (cap[2] === '@') {\n text = escape(cap[0]);\n href = 'mailto:' + text;\n }\n else {\n // do extended autolink path validation\n let prevCapZero;\n do {\n prevCapZero = cap[0];\n cap[0] = this.rules.inline._backpedal.exec(cap[0])?.[0] ?? '';\n } while (prevCapZero !== cap[0]);\n text = escape(cap[0]);\n if (cap[1] === 'www.') {\n href = 'http://' + cap[0];\n }\n else {\n href = cap[0];\n }\n }\n return {\n type: 'link',\n raw: cap[0],\n text,\n href,\n tokens: [\n {\n type: 'text',\n raw: text,\n text,\n },\n ],\n };\n }\n }\n inlineText(src) {\n const cap = this.rules.inline.text.exec(src);\n if (cap) {\n let text;\n if (this.lexer.state.inRawBlock) {\n text = cap[0];\n }\n else {\n text = escape(cap[0]);\n }\n return {\n type: 'text',\n raw: cap[0],\n text,\n };\n }\n }\n}\n", "import { edit, noopTest, } from './helpers.ts';\n/**\n * Block-Level Grammar\n */\nconst newline = /^(?: *(?:\\n|$))+/;\nconst blockCode = /^( {4}[^\\n]+(?:\\n(?: *(?:\\n|$))*)?)+/;\nconst fences = /^ {0,3}(`{3,}(?=[^`\\n]*(?:\\n|$))|~{3,})([^\\n]*)(?:\\n|$)(?:|([\\s\\S]*?)(?:\\n|$))(?: {0,3}\\1[~`]* *(?=\\n|$)|$)/;\nconst hr = /^ {0,3}((?:-[\\t ]*){3,}|(?:_[ \\t]*){3,}|(?:\\*[ \\t]*){3,})(?:\\n+|$)/;\nconst heading = /^ {0,3}(#{1,6})(?=\\s|$)(.*)(?:\\n+|$)/;\nconst bullet = /(?:[*+-]|\\d{1,9}[.)])/;\nconst lheading = edit(/^(?!bull |blockCode|fences|blockquote|heading|html)((?:.|\\n(?!\\s*?\\n|bull |blockCode|fences|blockquote|heading|html))+?)\\n {0,3}(=+|-+) *(?:\\n+|$)/)\n .replace(/bull/g, bullet) // lists can interrupt\n .replace(/blockCode/g, / {4}/) // indented code blocks can interrupt\n .replace(/fences/g, / {0,3}(?:`{3,}|~{3,})/) // fenced code blocks can interrupt\n .replace(/blockquote/g, / {0,3}>/) // blockquote can interrupt\n .replace(/heading/g, / {0,3}#{1,6}/) // ATX heading can interrupt\n .replace(/html/g, / {0,3}<[^\\n>]+>\\n/) // block html can interrupt\n .getRegex();\nconst _paragraph = /^([^\\n]+(?:\\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\\n)[^\\n]+)*)/;\nconst blockText = /^[^\\n]+/;\nconst _blockLabel = /(?!\\s*\\])(?:\\\\.|[^\\[\\]\\\\])+/;\nconst def = edit(/^ {0,3}\\[(label)\\]: *(?:\\n *)?([^<\\s][^\\s]*|<.*?>)(?:(?: +(?:\\n *)?| *\\n *)(title))? *(?:\\n+|$)/)\n .replace('label', _blockLabel)\n .replace('title', /(?:\"(?:\\\\\"?|[^\"\\\\])*\"|'[^'\\n]*(?:\\n[^'\\n]+)*\\n?'|\\([^()]*\\))/)\n .getRegex();\nconst list = edit(/^( {0,3}bull)([ \\t][^\\n]+?)?(?:\\n|$)/)\n .replace(/bull/g, bullet)\n .getRegex();\nconst _tag = 'address|article|aside|base|basefont|blockquote|body|caption'\n + '|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption'\n + '|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe'\n + '|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option'\n + '|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title'\n + '|tr|track|ul';\nconst _comment = /|$))/;\nconst html = edit('^ {0,3}(?:' // optional indentation\n + '<(script|pre|style|textarea)[\\\\s>][\\\\s\\\\S]*?(?:[^\\\\n]*\\\\n+|$)' // (1)\n + '|comment[^\\\\n]*(\\\\n+|$)' // (2)\n + '|<\\\\?[\\\\s\\\\S]*?(?:\\\\?>\\\\n*|$)' // (3)\n + '|\\\\n*|$)' // (4)\n + '|\\\\n*|$)' // (5)\n + '|)[\\\\s\\\\S]*?(?:(?:\\\\n *)+\\\\n|$)' // (6)\n + '|<(?!script|pre|style|textarea)([a-z][\\\\w-]*)(?:attribute)*? */?>(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:(?:\\\\n *)+\\\\n|$)' // (7) open tag\n + '|(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:(?:\\\\n *)+\\\\n|$)' // (7) closing tag\n + ')', 'i')\n .replace('comment', _comment)\n .replace('tag', _tag)\n .replace('attribute', / +[a-zA-Z:_][\\w.:-]*(?: *= *\"[^\"\\n]*\"| *= *'[^'\\n]*'| *= *[^\\s\"'=<>`]+)?/)\n .getRegex();\nconst paragraph = edit(_paragraph)\n .replace('hr', hr)\n .replace('heading', ' {0,3}#{1,6}(?:\\\\s|$)')\n .replace('|lheading', '') // setext headings don't interrupt commonmark paragraphs\n .replace('|table', '')\n .replace('blockquote', ' {0,3}>')\n .replace('fences', ' {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n')\n .replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt\n .replace('html', ')|<(?:script|pre|style|textarea|!--)')\n .replace('tag', _tag) // pars can be interrupted by type (6) html blocks\n .getRegex();\nconst blockquote = edit(/^( {0,3}> ?(paragraph|[^\\n]*)(?:\\n|$))+/)\n .replace('paragraph', paragraph)\n .getRegex();\n/**\n * Normal Block Grammar\n */\nconst blockNormal = {\n blockquote,\n code: blockCode,\n def,\n fences,\n heading,\n hr,\n html,\n lheading,\n list,\n newline,\n paragraph,\n table: noopTest,\n text: blockText,\n};\n/**\n * GFM Block Grammar\n */\nconst gfmTable = edit('^ *([^\\\\n ].*)\\\\n' // Header\n + ' {0,3}((?:\\\\| *)?:?-+:? *(?:\\\\| *:?-+:? *)*(?:\\\\| *)?)' // Align\n + '(?:\\\\n((?:(?! *\\\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\\\n|$))*)\\\\n*|$)') // Cells\n .replace('hr', hr)\n .replace('heading', ' {0,3}#{1,6}(?:\\\\s|$)')\n .replace('blockquote', ' {0,3}>')\n .replace('code', ' {4}[^\\\\n]')\n .replace('fences', ' {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n')\n .replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt\n .replace('html', ')|<(?:script|pre|style|textarea|!--)')\n .replace('tag', _tag) // tables can be interrupted by type (6) html blocks\n .getRegex();\nconst blockGfm = {\n ...blockNormal,\n table: gfmTable,\n paragraph: edit(_paragraph)\n .replace('hr', hr)\n .replace('heading', ' {0,3}#{1,6}(?:\\\\s|$)')\n .replace('|lheading', '') // setext headings don't interrupt commonmark paragraphs\n .replace('table', gfmTable) // interrupt paragraphs with table\n .replace('blockquote', ' {0,3}>')\n .replace('fences', ' {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n')\n .replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt\n .replace('html', ')|<(?:script|pre|style|textarea|!--)')\n .replace('tag', _tag) // pars can be interrupted by type (6) html blocks\n .getRegex(),\n};\n/**\n * Pedantic grammar (original John Gruber's loose markdown specification)\n */\nconst blockPedantic = {\n ...blockNormal,\n html: edit('^ *(?:comment *(?:\\\\n|\\\\s*$)'\n + '|<(tag)[\\\\s\\\\S]+? *(?:\\\\n{2,}|\\\\s*$)' // closed tag\n + '|\\\\s]*)*?/?> *(?:\\\\n{2,}|\\\\s*$))')\n .replace('comment', _comment)\n .replace(/tag/g, '(?!(?:'\n + 'a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub'\n + '|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)'\n + '\\\\b)\\\\w+(?!:|[^\\\\w\\\\s@]*@)\\\\b')\n .getRegex(),\n def: /^ *\\[([^\\]]+)\\]: *]+)>?(?: +([\"(][^\\n]+[\")]))? *(?:\\n+|$)/,\n heading: /^(#{1,6})(.*)(?:\\n+|$)/,\n fences: noopTest, // fences not supported\n lheading: /^(.+?)\\n {0,3}(=+|-+) *(?:\\n+|$)/,\n paragraph: edit(_paragraph)\n .replace('hr', hr)\n .replace('heading', ' *#{1,6} *[^\\n]')\n .replace('lheading', lheading)\n .replace('|table', '')\n .replace('blockquote', ' {0,3}>')\n .replace('|fences', '')\n .replace('|list', '')\n .replace('|html', '')\n .replace('|tag', '')\n .getRegex(),\n};\n/**\n * Inline-Level Grammar\n */\nconst escape = /^\\\\([!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~])/;\nconst inlineCode = /^(`+)([^`]|[^`][\\s\\S]*?[^`])\\1(?!`)/;\nconst br = /^( {2,}|\\\\)\\n(?!\\s*$)/;\nconst inlineText = /^(`+|[^`])(?:(?= {2,}\\n)|[\\s\\S]*?(?:(?=[\\\\\nconst blockSkip = /\\[[^[\\]]*?\\]\\([^\\(\\)]*?\\)|`[^`]*?`|<[^<>]*?>/g;\nconst emStrongLDelim = edit(/^(?:\\*+(?:((?!\\*)[punct])|[^\\s*]))|^_+(?:((?!_)[punct])|([^\\s_]))/, 'u')\n .replace(/punct/g, _punctuation)\n .getRegex();\nconst emStrongRDelimAst = edit('^[^_*]*?__[^_*]*?\\\\*[^_*]*?(?=__)' // Skip orphan inside strong\n + '|[^*]+(?=[^*])' // Consume to delim\n + '|(?!\\\\*)[punct](\\\\*+)(?=[\\\\s]|$)' // (1) #*** can only be a Right Delimiter\n + '|[^punct\\\\s](\\\\*+)(?!\\\\*)(?=[punct\\\\s]|$)' // (2) a***#, a*** can only be a Right Delimiter\n + '|(?!\\\\*)[punct\\\\s](\\\\*+)(?=[^punct\\\\s])' // (3) #***a, ***a can only be Left Delimiter\n + '|[\\\\s](\\\\*+)(?!\\\\*)(?=[punct])' // (4) ***# can only be Left Delimiter\n + '|(?!\\\\*)[punct](\\\\*+)(?!\\\\*)(?=[punct])' // (5) #***# can be either Left or Right Delimiter\n + '|[^punct\\\\s](\\\\*+)(?=[^punct\\\\s])', 'gu') // (6) a***a can be either Left or Right Delimiter\n .replace(/punct/g, _punctuation)\n .getRegex();\n// (6) Not allowed for _\nconst emStrongRDelimUnd = edit('^[^_*]*?\\\\*\\\\*[^_*]*?_[^_*]*?(?=\\\\*\\\\*)' // Skip orphan inside strong\n + '|[^_]+(?=[^_])' // Consume to delim\n + '|(?!_)[punct](_+)(?=[\\\\s]|$)' // (1) #___ can only be a Right Delimiter\n + '|[^punct\\\\s](_+)(?!_)(?=[punct\\\\s]|$)' // (2) a___#, a___ can only be a Right Delimiter\n + '|(?!_)[punct\\\\s](_+)(?=[^punct\\\\s])' // (3) #___a, ___a can only be Left Delimiter\n + '|[\\\\s](_+)(?!_)(?=[punct])' // (4) ___# can only be Left Delimiter\n + '|(?!_)[punct](_+)(?!_)(?=[punct])', 'gu') // (5) #___# can be either Left or Right Delimiter\n .replace(/punct/g, _punctuation)\n .getRegex();\nconst anyPunctuation = edit(/\\\\([punct])/, 'gu')\n .replace(/punct/g, _punctuation)\n .getRegex();\nconst autolink = edit(/^<(scheme:[^\\s\\x00-\\x1f<>]*|email)>/)\n .replace('scheme', /[a-zA-Z][a-zA-Z0-9+.-]{1,31}/)\n .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])?)+(?![-_])/)\n .getRegex();\nconst _inlineComment = edit(_comment).replace('(?:-->|$)', '-->').getRegex();\nconst tag = edit('^comment'\n + '|^' // self-closing tag\n + '|^<[a-zA-Z][\\\\w-]*(?:attribute)*?\\\\s*/?>' // open tag\n + '|^<\\\\?[\\\\s\\\\S]*?\\\\?>' // processing instruction, e.g. \n + '|^' // declaration, e.g. \n + '|^') // CDATA section\n .replace('comment', _inlineComment)\n .replace('attribute', /\\s+[a-zA-Z:_][\\w.:-]*(?:\\s*=\\s*\"[^\"]*\"|\\s*=\\s*'[^']*'|\\s*=\\s*[^\\s\"'=<>`]+)?/)\n .getRegex();\nconst _inlineLabel = /(?:\\[(?:\\\\.|[^\\[\\]\\\\])*\\]|\\\\.|`[^`]*`|[^\\[\\]\\\\`])*?/;\nconst link = edit(/^!?\\[(label)\\]\\(\\s*(href)(?:\\s+(title))?\\s*\\)/)\n .replace('label', _inlineLabel)\n .replace('href', /<(?:\\\\.|[^\\n<>\\\\])+>|[^\\s\\x00-\\x1f]*/)\n .replace('title', /\"(?:\\\\\"?|[^\"\\\\])*\"|'(?:\\\\'?|[^'\\\\])*'|\\((?:\\\\\\)?|[^)\\\\])*\\)/)\n .getRegex();\nconst reflink = edit(/^!?\\[(label)\\]\\[(ref)\\]/)\n .replace('label', _inlineLabel)\n .replace('ref', _blockLabel)\n .getRegex();\nconst nolink = edit(/^!?\\[(ref)\\](?:\\[\\])?/)\n .replace('ref', _blockLabel)\n .getRegex();\nconst reflinkSearch = edit('reflink|nolink(?!\\\\()', 'g')\n .replace('reflink', reflink)\n .replace('nolink', nolink)\n .getRegex();\n/**\n * Normal Inline Grammar\n */\nconst inlineNormal = {\n _backpedal: noopTest, // only used for GFM url\n anyPunctuation,\n autolink,\n blockSkip,\n br,\n code: inlineCode,\n del: noopTest,\n emStrongLDelim,\n emStrongRDelimAst,\n emStrongRDelimUnd,\n escape,\n link,\n nolink,\n punctuation,\n reflink,\n reflinkSearch,\n tag,\n text: inlineText,\n url: noopTest,\n};\n/**\n * Pedantic Inline Grammar\n */\nconst inlinePedantic = {\n ...inlineNormal,\n link: edit(/^!?\\[(label)\\]\\((.*?)\\)/)\n .replace('label', _inlineLabel)\n .getRegex(),\n reflink: edit(/^!?\\[(label)\\]\\s*\\[([^\\]]*)\\]/)\n .replace('label', _inlineLabel)\n .getRegex(),\n};\n/**\n * GFM Inline Grammar\n */\nconst inlineGfm = {\n ...inlineNormal,\n escape: edit(escape).replace('])', '~|])').getRegex(),\n url: edit(/^((?:ftp|https?):\\/\\/|www\\.)(?:[a-zA-Z0-9\\-]+\\.?)+[^\\s<]*|^email/, 'i')\n .replace('email', /[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/)\n .getRegex(),\n _backpedal: /(?:[^?!.,:;*_'\"~()&]+|\\([^)]*\\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'\"~)]+(?!$))+/,\n del: /^(~~?)(?=[^\\s~])([\\s\\S]*?[^\\s~])\\1(?=[^~]|$)/,\n text: /^([`~]+|[^`~])(?:(?= {2,}\\n)|(?=[a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-]+@)|[\\s\\S]*?(?:(?=[\\\\ {\n return leading + ' '.repeat(tabs.length);\n });\n }\n let token;\n let lastToken;\n let cutSrc;\n while (src) {\n if (this.options.extensions\n && this.options.extensions.block\n && this.options.extensions.block.some((extTokenizer) => {\n if (token = extTokenizer.call({ lexer: this }, src, tokens)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n return true;\n }\n return false;\n })) {\n continue;\n }\n // newline\n if (token = this.tokenizer.space(src)) {\n src = src.substring(token.raw.length);\n if (token.raw.length === 1 && tokens.length > 0) {\n // if there's a single \\n as a spacer, it's terminating the last line,\n // so move it there so that we don't get unnecessary paragraph tags\n tokens[tokens.length - 1].raw += '\\n';\n }\n else {\n tokens.push(token);\n }\n continue;\n }\n // code\n if (token = this.tokenizer.code(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n // An indented code block cannot interrupt a paragraph.\n if (lastToken && (lastToken.type === 'paragraph' || lastToken.type === 'text')) {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.text;\n this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n }\n else {\n tokens.push(token);\n }\n continue;\n }\n // fences\n if (token = this.tokenizer.fences(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // heading\n if (token = this.tokenizer.heading(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // hr\n if (token = this.tokenizer.hr(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // blockquote\n if (token = this.tokenizer.blockquote(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // list\n if (token = this.tokenizer.list(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // html\n if (token = this.tokenizer.html(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // def\n if (token = this.tokenizer.def(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n if (lastToken && (lastToken.type === 'paragraph' || lastToken.type === 'text')) {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.raw;\n this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n }\n else if (!this.tokens.links[token.tag]) {\n this.tokens.links[token.tag] = {\n href: token.href,\n title: token.title,\n };\n }\n continue;\n }\n // table (gfm)\n if (token = this.tokenizer.table(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // lheading\n if (token = this.tokenizer.lheading(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // top-level paragraph\n // prevent paragraph consuming extensions by clipping 'src' to extension start\n cutSrc = src;\n if (this.options.extensions && this.options.extensions.startBlock) {\n let startIndex = Infinity;\n const tempSrc = src.slice(1);\n let tempStart;\n this.options.extensions.startBlock.forEach((getStartIndex) => {\n tempStart = getStartIndex.call({ lexer: this }, tempSrc);\n if (typeof tempStart === 'number' && tempStart >= 0) {\n startIndex = Math.min(startIndex, tempStart);\n }\n });\n if (startIndex < Infinity && startIndex >= 0) {\n cutSrc = src.substring(0, startIndex + 1);\n }\n }\n if (this.state.top && (token = this.tokenizer.paragraph(cutSrc))) {\n lastToken = tokens[tokens.length - 1];\n if (lastParagraphClipped && lastToken?.type === 'paragraph') {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.text;\n this.inlineQueue.pop();\n this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n }\n else {\n tokens.push(token);\n }\n lastParagraphClipped = (cutSrc.length !== src.length);\n src = src.substring(token.raw.length);\n continue;\n }\n // text\n if (token = this.tokenizer.text(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n if (lastToken && lastToken.type === 'text') {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.text;\n this.inlineQueue.pop();\n this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n }\n else {\n tokens.push(token);\n }\n continue;\n }\n if (src) {\n const errMsg = 'Infinite loop on byte: ' + src.charCodeAt(0);\n if (this.options.silent) {\n console.error(errMsg);\n break;\n }\n else {\n throw new Error(errMsg);\n }\n }\n }\n this.state.top = true;\n return tokens;\n }\n inline(src, tokens = []) {\n this.inlineQueue.push({ src, tokens });\n return tokens;\n }\n /**\n * Lexing/Compiling\n */\n inlineTokens(src, tokens = []) {\n let token, lastToken, cutSrc;\n // String with links masked to avoid interference with em and strong\n let maskedSrc = src;\n let match;\n let keepPrevChar, prevChar;\n // Mask out reflinks\n if (this.tokens.links) {\n const links = Object.keys(this.tokens.links);\n if (links.length > 0) {\n while ((match = this.tokenizer.rules.inline.reflinkSearch.exec(maskedSrc)) != null) {\n if (links.includes(match[0].slice(match[0].lastIndexOf('[') + 1, -1))) {\n maskedSrc = maskedSrc.slice(0, match.index) + '[' + 'a'.repeat(match[0].length - 2) + ']' + maskedSrc.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex);\n }\n }\n }\n }\n // Mask out other blocks\n while ((match = this.tokenizer.rules.inline.blockSkip.exec(maskedSrc)) != null) {\n maskedSrc = maskedSrc.slice(0, match.index) + '[' + 'a'.repeat(match[0].length - 2) + ']' + maskedSrc.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);\n }\n // Mask out escaped characters\n while ((match = this.tokenizer.rules.inline.anyPunctuation.exec(maskedSrc)) != null) {\n maskedSrc = maskedSrc.slice(0, match.index) + '++' + maskedSrc.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);\n }\n while (src) {\n if (!keepPrevChar) {\n prevChar = '';\n }\n keepPrevChar = false;\n // extensions\n if (this.options.extensions\n && this.options.extensions.inline\n && this.options.extensions.inline.some((extTokenizer) => {\n if (token = extTokenizer.call({ lexer: this }, src, tokens)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n return true;\n }\n return false;\n })) {\n continue;\n }\n // escape\n if (token = this.tokenizer.escape(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // tag\n if (token = this.tokenizer.tag(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n if (lastToken && token.type === 'text' && lastToken.type === 'text') {\n lastToken.raw += token.raw;\n lastToken.text += token.text;\n }\n else {\n tokens.push(token);\n }\n continue;\n }\n // link\n if (token = this.tokenizer.link(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // reflink, nolink\n if (token = this.tokenizer.reflink(src, this.tokens.links)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n if (lastToken && token.type === 'text' && lastToken.type === 'text') {\n lastToken.raw += token.raw;\n lastToken.text += token.text;\n }\n else {\n tokens.push(token);\n }\n continue;\n }\n // em & strong\n if (token = this.tokenizer.emStrong(src, maskedSrc, prevChar)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // code\n if (token = this.tokenizer.codespan(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // br\n if (token = this.tokenizer.br(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // del (gfm)\n if (token = this.tokenizer.del(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // autolink\n if (token = this.tokenizer.autolink(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // url (gfm)\n if (!this.state.inLink && (token = this.tokenizer.url(src))) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // text\n // prevent inlineText consuming extensions by clipping 'src' to extension start\n cutSrc = src;\n if (this.options.extensions && this.options.extensions.startInline) {\n let startIndex = Infinity;\n const tempSrc = src.slice(1);\n let tempStart;\n this.options.extensions.startInline.forEach((getStartIndex) => {\n tempStart = getStartIndex.call({ lexer: this }, tempSrc);\n if (typeof tempStart === 'number' && tempStart >= 0) {\n startIndex = Math.min(startIndex, tempStart);\n }\n });\n if (startIndex < Infinity && startIndex >= 0) {\n cutSrc = src.substring(0, startIndex + 1);\n }\n }\n if (token = this.tokenizer.inlineText(cutSrc)) {\n src = src.substring(token.raw.length);\n if (token.raw.slice(-1) !== '_') { // Track prevChar before string of ____ started\n prevChar = token.raw.slice(-1);\n }\n keepPrevChar = true;\n lastToken = tokens[tokens.length - 1];\n if (lastToken && lastToken.type === 'text') {\n lastToken.raw += token.raw;\n lastToken.text += token.text;\n }\n else {\n tokens.push(token);\n }\n continue;\n }\n if (src) {\n const errMsg = 'Infinite loop on byte: ' + src.charCodeAt(0);\n if (this.options.silent) {\n console.error(errMsg);\n break;\n }\n else {\n throw new Error(errMsg);\n }\n }\n }\n return tokens;\n }\n}\n", "import { _defaults } from './defaults.ts';\nimport { cleanUrl, escape, } from './helpers.ts';\n/**\n * Renderer\n */\nexport class _Renderer {\n options;\n parser; // set by the parser\n constructor(options) {\n this.options = options || _defaults;\n }\n space(token) {\n return '';\n }\n code({ text, lang, escaped }) {\n const langString = (lang || '').match(/^\\S*/)?.[0];\n const code = text.replace(/\\n$/, '') + '\\n';\n if (!langString) {\n return '
    '\n                + (escaped ? code : escape(code, true))\n                + '
    \\n';\n }\n return '
    '\n            + (escaped ? code : escape(code, true))\n            + '
    \\n';\n }\n blockquote({ tokens }) {\n const body = this.parser.parse(tokens);\n return `
    \\n${body}
    \\n`;\n }\n html({ text }) {\n return text;\n }\n heading({ tokens, depth }) {\n return `${this.parser.parseInline(tokens)}\\n`;\n }\n hr(token) {\n return '
    \\n';\n }\n list(token) {\n const ordered = token.ordered;\n const start = token.start;\n let body = '';\n for (let j = 0; j < token.items.length; j++) {\n const item = token.items[j];\n body += this.listitem(item);\n }\n const type = ordered ? 'ol' : 'ul';\n const startAttr = (ordered && start !== 1) ? (' start=\"' + start + '\"') : '';\n return '<' + type + startAttr + '>\\n' + body + '\\n';\n }\n listitem(item) {\n let itemBody = '';\n if (item.task) {\n const checkbox = this.checkbox({ checked: !!item.checked });\n if (item.loose) {\n if (item.tokens.length > 0 && item.tokens[0].type === 'paragraph') {\n item.tokens[0].text = checkbox + ' ' + item.tokens[0].text;\n if (item.tokens[0].tokens && item.tokens[0].tokens.length > 0 && item.tokens[0].tokens[0].type === 'text') {\n item.tokens[0].tokens[0].text = checkbox + ' ' + item.tokens[0].tokens[0].text;\n }\n }\n else {\n item.tokens.unshift({\n type: 'text',\n raw: checkbox + ' ',\n text: checkbox + ' ',\n });\n }\n }\n else {\n itemBody += checkbox + ' ';\n }\n }\n itemBody += this.parser.parse(item.tokens, !!item.loose);\n return `
  • ${itemBody}
  • \\n`;\n }\n checkbox({ checked }) {\n return '';\n }\n paragraph({ tokens }) {\n return `

    ${this.parser.parseInline(tokens)}

    \\n`;\n }\n table(token) {\n let header = '';\n // header\n let cell = '';\n for (let j = 0; j < token.header.length; j++) {\n cell += this.tablecell(token.header[j]);\n }\n header += this.tablerow({ text: cell });\n let body = '';\n for (let j = 0; j < token.rows.length; j++) {\n const row = token.rows[j];\n cell = '';\n for (let k = 0; k < row.length; k++) {\n cell += this.tablecell(row[k]);\n }\n body += this.tablerow({ text: cell });\n }\n if (body)\n body = `${body}`;\n return '\\n'\n + '\\n'\n + header\n + '\\n'\n + body\n + '
    \\n';\n }\n tablerow({ text }) {\n return `\\n${text}\\n`;\n }\n tablecell(token) {\n const content = this.parser.parseInline(token.tokens);\n const type = token.header ? 'th' : 'td';\n const tag = token.align\n ? `<${type} align=\"${token.align}\">`\n : `<${type}>`;\n return tag + content + `\\n`;\n }\n /**\n * span level renderer\n */\n strong({ tokens }) {\n return `${this.parser.parseInline(tokens)}`;\n }\n em({ tokens }) {\n return `${this.parser.parseInline(tokens)}`;\n }\n codespan({ text }) {\n return `${text}`;\n }\n br(token) {\n return '
    ';\n }\n del({ tokens }) {\n return `${this.parser.parseInline(tokens)}`;\n }\n link({ href, title, tokens }) {\n const text = this.parser.parseInline(tokens);\n const cleanHref = cleanUrl(href);\n if (cleanHref === null) {\n return text;\n }\n href = cleanHref;\n let out = '
    ';\n return out;\n }\n image({ href, title, text }) {\n const cleanHref = cleanUrl(href);\n if (cleanHref === null) {\n return text;\n }\n href = cleanHref;\n let out = `\"${text}\"`;\n {\n const tokens = genericToken[childTokens].flat(Infinity);\n values = values.concat(this.walkTokens(tokens, callback));\n });\n }\n else if (genericToken.tokens) {\n values = values.concat(this.walkTokens(genericToken.tokens, callback));\n }\n }\n }\n }\n return values;\n }\n use(...args) {\n const extensions = this.defaults.extensions || { renderers: {}, childTokens: {} };\n args.forEach((pack) => {\n // copy options to new object\n const opts = { ...pack };\n // set async to true if it was set to true before\n opts.async = this.defaults.async || opts.async || false;\n // ==-- Parse \"addon\" extensions --== //\n if (pack.extensions) {\n pack.extensions.forEach((ext) => {\n if (!ext.name) {\n throw new Error('extension name required');\n }\n if ('renderer' in ext) { // Renderer extensions\n const prevRenderer = extensions.renderers[ext.name];\n if (prevRenderer) {\n // Replace extension with func to run new extension but fall back if false\n extensions.renderers[ext.name] = function (...args) {\n let ret = ext.renderer.apply(this, args);\n if (ret === false) {\n ret = prevRenderer.apply(this, args);\n }\n return ret;\n };\n }\n else {\n extensions.renderers[ext.name] = ext.renderer;\n }\n }\n if ('tokenizer' in ext) { // Tokenizer Extensions\n if (!ext.level || (ext.level !== 'block' && ext.level !== 'inline')) {\n throw new Error(\"extension level must be 'block' or 'inline'\");\n }\n const extLevel = extensions[ext.level];\n if (extLevel) {\n extLevel.unshift(ext.tokenizer);\n }\n else {\n extensions[ext.level] = [ext.tokenizer];\n }\n if (ext.start) { // Function to check for start of token\n if (ext.level === 'block') {\n if (extensions.startBlock) {\n extensions.startBlock.push(ext.start);\n }\n else {\n extensions.startBlock = [ext.start];\n }\n }\n else if (ext.level === 'inline') {\n if (extensions.startInline) {\n extensions.startInline.push(ext.start);\n }\n else {\n extensions.startInline = [ext.start];\n }\n }\n }\n }\n if ('childTokens' in ext && ext.childTokens) { // Child tokens to be visited by walkTokens\n extensions.childTokens[ext.name] = ext.childTokens;\n }\n });\n opts.extensions = extensions;\n }\n // ==-- Parse \"overwrite\" extensions --== //\n if (pack.renderer) {\n const renderer = this.defaults.renderer || new _Renderer(this.defaults);\n for (const prop in pack.renderer) {\n if (!(prop in renderer)) {\n throw new Error(`renderer '${prop}' does not exist`);\n }\n if (['options', 'parser'].includes(prop)) {\n // ignore options property\n continue;\n }\n const rendererProp = prop;\n let rendererFunc = pack.renderer[rendererProp];\n if (!pack.useNewRenderer) {\n // TODO: Remove this in next major version\n rendererFunc = this.#convertRendererFunction(rendererFunc, rendererProp, renderer);\n }\n const prevRenderer = renderer[rendererProp];\n // Replace renderer with func to run extension, but fall back if false\n renderer[rendererProp] = (...args) => {\n let ret = rendererFunc.apply(renderer, args);\n if (ret === false) {\n ret = prevRenderer.apply(renderer, args);\n }\n return ret || '';\n };\n }\n opts.renderer = renderer;\n }\n if (pack.tokenizer) {\n const tokenizer = this.defaults.tokenizer || new _Tokenizer(this.defaults);\n for (const prop in pack.tokenizer) {\n if (!(prop in tokenizer)) {\n throw new Error(`tokenizer '${prop}' does not exist`);\n }\n if (['options', 'rules', 'lexer'].includes(prop)) {\n // ignore options, rules, and lexer properties\n continue;\n }\n const tokenizerProp = prop;\n const tokenizerFunc = pack.tokenizer[tokenizerProp];\n const prevTokenizer = tokenizer[tokenizerProp];\n // Replace tokenizer with func to run extension, but fall back if false\n // @ts-expect-error cannot type tokenizer function dynamically\n tokenizer[tokenizerProp] = (...args) => {\n let ret = tokenizerFunc.apply(tokenizer, args);\n if (ret === false) {\n ret = prevTokenizer.apply(tokenizer, args);\n }\n return ret;\n };\n }\n opts.tokenizer = tokenizer;\n }\n // ==-- Parse Hooks extensions --== //\n if (pack.hooks) {\n const hooks = this.defaults.hooks || new _Hooks();\n for (const prop in pack.hooks) {\n if (!(prop in hooks)) {\n throw new Error(`hook '${prop}' does not exist`);\n }\n if (prop === 'options') {\n // ignore options property\n continue;\n }\n const hooksProp = prop;\n const hooksFunc = pack.hooks[hooksProp];\n const prevHook = hooks[hooksProp];\n if (_Hooks.passThroughHooks.has(prop)) {\n // @ts-expect-error cannot type hook function dynamically\n hooks[hooksProp] = (arg) => {\n if (this.defaults.async) {\n return Promise.resolve(hooksFunc.call(hooks, arg)).then(ret => {\n return prevHook.call(hooks, ret);\n });\n }\n const ret = hooksFunc.call(hooks, arg);\n return prevHook.call(hooks, ret);\n };\n }\n else {\n // @ts-expect-error cannot type hook function dynamically\n hooks[hooksProp] = (...args) => {\n let ret = hooksFunc.apply(hooks, args);\n if (ret === false) {\n ret = prevHook.apply(hooks, args);\n }\n return ret;\n };\n }\n }\n opts.hooks = hooks;\n }\n // ==-- Parse WalkTokens extensions --== //\n if (pack.walkTokens) {\n const walkTokens = this.defaults.walkTokens;\n const packWalktokens = pack.walkTokens;\n opts.walkTokens = function (token) {\n let values = [];\n values.push(packWalktokens.call(this, token));\n if (walkTokens) {\n values = values.concat(walkTokens.call(this, token));\n }\n return values;\n };\n }\n this.defaults = { ...this.defaults, ...opts };\n });\n return this;\n }\n // TODO: Remove this in next major release\n #convertRendererFunction(func, prop, renderer) {\n switch (prop) {\n case 'heading':\n return function (token) {\n if (!token.type || token.type !== prop) {\n // @ts-ignore\n // eslint-disable-next-line prefer-rest-params\n return func.apply(this, arguments);\n }\n return func.call(this, renderer.parser.parseInline(token.tokens), token.depth, unescape(renderer.parser.parseInline(token.tokens, renderer.parser.textRenderer)));\n };\n case 'code':\n return function (token) {\n if (!token.type || token.type !== prop) {\n // @ts-ignore\n // eslint-disable-next-line prefer-rest-params\n return func.apply(this, arguments);\n }\n return func.call(this, token.text, token.lang, !!token.escaped);\n };\n case 'table':\n return function (token) {\n if (!token.type || token.type !== prop) {\n // @ts-ignore\n // eslint-disable-next-line prefer-rest-params\n return func.apply(this, arguments);\n }\n let header = '';\n // header\n let cell = '';\n for (let j = 0; j < token.header.length; j++) {\n cell += this.tablecell({\n text: token.header[j].text,\n tokens: token.header[j].tokens,\n header: true,\n align: token.align[j],\n });\n }\n header += this.tablerow({ text: cell });\n let body = '';\n for (let j = 0; j < token.rows.length; j++) {\n const row = token.rows[j];\n cell = '';\n for (let k = 0; k < row.length; k++) {\n cell += this.tablecell({\n text: row[k].text,\n tokens: row[k].tokens,\n header: false,\n align: token.align[k],\n });\n }\n body += this.tablerow({ text: cell });\n }\n return func.call(this, header, body);\n };\n case 'blockquote':\n return function (token) {\n if (!token.type || token.type !== prop) {\n // @ts-ignore\n // eslint-disable-next-line prefer-rest-params\n return func.apply(this, arguments);\n }\n const body = this.parser.parse(token.tokens);\n return func.call(this, body);\n };\n case 'list':\n return function (token) {\n if (!token.type || token.type !== prop) {\n // @ts-ignore\n // eslint-disable-next-line prefer-rest-params\n return func.apply(this, arguments);\n }\n const ordered = token.ordered;\n const start = token.start;\n const loose = token.loose;\n let body = '';\n for (let j = 0; j < token.items.length; j++) {\n const item = token.items[j];\n const checked = item.checked;\n const task = item.task;\n let itemBody = '';\n if (item.task) {\n const checkbox = this.checkbox({ checked: !!checked });\n if (loose) {\n if (item.tokens.length > 0 && item.tokens[0].type === 'paragraph') {\n item.tokens[0].text = checkbox + ' ' + item.tokens[0].text;\n if (item.tokens[0].tokens && item.tokens[0].tokens.length > 0 && item.tokens[0].tokens[0].type === 'text') {\n item.tokens[0].tokens[0].text = checkbox + ' ' + item.tokens[0].tokens[0].text;\n }\n }\n else {\n item.tokens.unshift({\n type: 'text',\n text: checkbox + ' ',\n });\n }\n }\n else {\n itemBody += checkbox + ' ';\n }\n }\n itemBody += this.parser.parse(item.tokens, loose);\n body += this.listitem({\n type: 'list_item',\n raw: itemBody,\n text: itemBody,\n task,\n checked: !!checked,\n loose,\n tokens: item.tokens,\n });\n }\n return func.call(this, body, ordered, start);\n };\n case 'html':\n return function (token) {\n if (!token.type || token.type !== prop) {\n // @ts-ignore\n // eslint-disable-next-line prefer-rest-params\n return func.apply(this, arguments);\n }\n return func.call(this, token.text, token.block);\n };\n case 'paragraph':\n return function (token) {\n if (!token.type || token.type !== prop) {\n // @ts-ignore\n // eslint-disable-next-line prefer-rest-params\n return func.apply(this, arguments);\n }\n return func.call(this, this.parser.parseInline(token.tokens));\n };\n case 'escape':\n return function (token) {\n if (!token.type || token.type !== prop) {\n // @ts-ignore\n // eslint-disable-next-line prefer-rest-params\n return func.apply(this, arguments);\n }\n return func.call(this, token.text);\n };\n case 'link':\n return function (token) {\n if (!token.type || token.type !== prop) {\n // @ts-ignore\n // eslint-disable-next-line prefer-rest-params\n return func.apply(this, arguments);\n }\n return func.call(this, token.href, token.title, this.parser.parseInline(token.tokens));\n };\n case 'image':\n return function (token) {\n if (!token.type || token.type !== prop) {\n // @ts-ignore\n // eslint-disable-next-line prefer-rest-params\n return func.apply(this, arguments);\n }\n return func.call(this, token.href, token.title, token.text);\n };\n case 'strong':\n return function (token) {\n if (!token.type || token.type !== prop) {\n // @ts-ignore\n // eslint-disable-next-line prefer-rest-params\n return func.apply(this, arguments);\n }\n return func.call(this, this.parser.parseInline(token.tokens));\n };\n case 'em':\n return function (token) {\n if (!token.type || token.type !== prop) {\n // @ts-ignore\n // eslint-disable-next-line prefer-rest-params\n return func.apply(this, arguments);\n }\n return func.call(this, this.parser.parseInline(token.tokens));\n };\n case 'codespan':\n return function (token) {\n if (!token.type || token.type !== prop) {\n // @ts-ignore\n // eslint-disable-next-line prefer-rest-params\n return func.apply(this, arguments);\n }\n return func.call(this, token.text);\n };\n case 'del':\n return function (token) {\n if (!token.type || token.type !== prop) {\n // @ts-ignore\n // eslint-disable-next-line prefer-rest-params\n return func.apply(this, arguments);\n }\n return func.call(this, this.parser.parseInline(token.tokens));\n };\n case 'text':\n return function (token) {\n if (!token.type || token.type !== prop) {\n // @ts-ignore\n // eslint-disable-next-line prefer-rest-params\n return func.apply(this, arguments);\n }\n return func.call(this, token.text);\n };\n default:\n // do nothing\n }\n return func;\n }\n setOptions(opt) {\n this.defaults = { ...this.defaults, ...opt };\n return this;\n }\n lexer(src, options) {\n return _Lexer.lex(src, options ?? this.defaults);\n }\n parser(tokens, options) {\n return _Parser.parse(tokens, options ?? this.defaults);\n }\n #parseMarkdown(lexer, parser) {\n return (src, options) => {\n const origOpt = { ...options };\n const opt = { ...this.defaults, ...origOpt };\n // Show warning if an extension set async to true but the parse was called with async: false\n if (this.defaults.async === true && origOpt.async === false) {\n if (!opt.silent) {\n console.warn('marked(): The async option was set to true by an extension. The async: false option sent to parse will be ignored.');\n }\n opt.async = true;\n }\n const throwError = this.#onError(!!opt.silent, !!opt.async);\n // throw error in case of non string input\n if (typeof src === 'undefined' || src === null) {\n return throwError(new Error('marked(): input parameter is undefined or null'));\n }\n if (typeof src !== 'string') {\n return throwError(new Error('marked(): input parameter is of type '\n + Object.prototype.toString.call(src) + ', string expected'));\n }\n if (opt.hooks) {\n opt.hooks.options = opt;\n }\n if (opt.async) {\n return Promise.resolve(opt.hooks ? opt.hooks.preprocess(src) : src)\n .then(src => lexer(src, opt))\n .then(tokens => opt.hooks ? opt.hooks.processAllTokens(tokens) : tokens)\n .then(tokens => opt.walkTokens ? Promise.all(this.walkTokens(tokens, opt.walkTokens)).then(() => tokens) : tokens)\n .then(tokens => parser(tokens, opt))\n .then(html => opt.hooks ? opt.hooks.postprocess(html) : html)\n .catch(throwError);\n }\n try {\n if (opt.hooks) {\n src = opt.hooks.preprocess(src);\n }\n let tokens = lexer(src, opt);\n if (opt.hooks) {\n tokens = opt.hooks.processAllTokens(tokens);\n }\n if (opt.walkTokens) {\n this.walkTokens(tokens, opt.walkTokens);\n }\n let html = parser(tokens, opt);\n if (opt.hooks) {\n html = opt.hooks.postprocess(html);\n }\n return html;\n }\n catch (e) {\n return throwError(e);\n }\n };\n }\n #onError(silent, async) {\n return (e) => {\n e.message += '\\nPlease report this to https://github.com/markedjs/marked.';\n if (silent) {\n const msg = '

    An error occurred:

    '\n                    + escape(e.message + '', true)\n                    + '
    ';\n if (async) {\n return Promise.resolve(msg);\n }\n return msg;\n }\n if (async) {\n return Promise.reject(e);\n }\n throw e;\n };\n }\n}\n", "import { _Lexer } from './Lexer.ts';\nimport { _Parser } from './Parser.ts';\nimport { _Tokenizer } from './Tokenizer.ts';\nimport { _Renderer } from './Renderer.ts';\nimport { _TextRenderer } from './TextRenderer.ts';\nimport { _Hooks } from './Hooks.ts';\nimport { Marked } from './Instance.ts';\nimport { _getDefaults, changeDefaults, _defaults, } from './defaults.ts';\nconst markedInstance = new Marked();\nexport function marked(src, opt) {\n return markedInstance.parse(src, opt);\n}\n/**\n * Sets the default options.\n *\n * @param options Hash of options\n */\nmarked.options =\n marked.setOptions = function (options) {\n markedInstance.setOptions(options);\n marked.defaults = markedInstance.defaults;\n changeDefaults(marked.defaults);\n return marked;\n };\n/**\n * Gets the original marked default options.\n */\nmarked.getDefaults = _getDefaults;\nmarked.defaults = _defaults;\n/**\n * Use Extension\n */\nmarked.use = function (...args) {\n markedInstance.use(...args);\n marked.defaults = markedInstance.defaults;\n changeDefaults(marked.defaults);\n return marked;\n};\n/**\n * Run callback for every token\n */\nmarked.walkTokens = function (tokens, callback) {\n return markedInstance.walkTokens(tokens, callback);\n};\n/**\n * Compiles markdown to HTML without enclosing `p` tag.\n *\n * @param src String of markdown source to be compiled\n * @param options Hash of options\n * @return String of compiled HTML\n */\nmarked.parseInline = markedInstance.parseInline;\n/**\n * Expose\n */\nmarked.Parser = _Parser;\nmarked.parser = _Parser.parse;\nmarked.Renderer = _Renderer;\nmarked.TextRenderer = _TextRenderer;\nmarked.Lexer = _Lexer;\nmarked.lexer = _Lexer.lex;\nmarked.Tokenizer = _Tokenizer;\nmarked.Hooks = _Hooks;\nmarked.parse = marked;\nexport const options = marked.options;\nexport const setOptions = marked.setOptions;\nexport const use = marked.use;\nexport const walkTokens = marked.walkTokens;\nexport const parseInline = marked.parseInline;\nexport const parse = marked;\nexport const parser = _Parser.parse;\nexport const lexer = _Lexer.lex;\nexport { _defaults as defaults, _getDefaults as getDefaults } from './defaults.ts';\nexport { _Lexer as Lexer } from './Lexer.ts';\nexport { _Parser as Parser } from './Parser.ts';\nexport { _Tokenizer as Tokenizer } from './Tokenizer.ts';\nexport { _Renderer as Renderer } from './Renderer.ts';\nexport { _TextRenderer as TextRenderer } from './TextRenderer.ts';\nexport { _Hooks as Hooks } from './Hooks.ts';\nexport { Marked } from './Instance.ts';\n", "import {\n decodeEntities\n} from \"./chunk-7DKRZKHE.mjs\";\nimport {\n __name,\n common_default,\n getConfig2 as getConfig,\n hasKatex,\n log,\n renderKatex\n} from \"./chunk-6DBFFHIP.mjs\";\n\n// src/rendering-util/createText.ts\nimport { select } from \"d3\";\n\n// src/rendering-util/handle-markdown-text.ts\nimport { marked } from \"marked\";\nimport { dedent } from \"ts-dedent\";\nfunction preprocessMarkdown(markdown, { markdownAutoWrap }) {\n const withoutBR = markdown.replace(//g, \"\\n\");\n const withoutMultipleNewlines = withoutBR.replace(/\\n{2,}/g, \"\\n\");\n const withoutExtraSpaces = dedent(withoutMultipleNewlines);\n if (markdownAutoWrap === false) {\n return withoutExtraSpaces.replace(/ /g, \" \");\n }\n return withoutExtraSpaces;\n}\n__name(preprocessMarkdown, \"preprocessMarkdown\");\nfunction markdownToLines(markdown, config = {}) {\n const preprocessedMarkdown = preprocessMarkdown(markdown, config);\n const nodes = marked.lexer(preprocessedMarkdown);\n const lines = [[]];\n let currentLine = 0;\n function processNode(node, parentType = \"normal\") {\n if (node.type === \"text\") {\n const textLines = node.text.split(\"\\n\");\n textLines.forEach((textLine, index) => {\n if (index !== 0) {\n currentLine++;\n lines.push([]);\n }\n textLine.split(\" \").forEach((word) => {\n word = word.replace(/'/g, `'`);\n if (word) {\n lines[currentLine].push({ content: word, type: parentType });\n }\n });\n });\n } else if (node.type === \"strong\" || node.type === \"em\") {\n node.tokens.forEach((contentNode) => {\n processNode(contentNode, node.type);\n });\n } else if (node.type === \"html\") {\n lines[currentLine].push({ content: node.text, type: \"normal\" });\n }\n }\n __name(processNode, \"processNode\");\n nodes.forEach((treeNode) => {\n if (treeNode.type === \"paragraph\") {\n treeNode.tokens?.forEach((contentNode) => {\n processNode(contentNode);\n });\n } else if (treeNode.type === \"html\") {\n lines[currentLine].push({ content: treeNode.text, type: \"normal\" });\n }\n });\n return lines;\n}\n__name(markdownToLines, \"markdownToLines\");\nfunction markdownToHTML(markdown, { markdownAutoWrap } = {}) {\n const nodes = marked.lexer(markdown);\n function output(node) {\n if (node.type === \"text\") {\n if (markdownAutoWrap === false) {\n return node.text.replace(/\\n */g, \"
    \").replace(/ /g, \" \");\n }\n return node.text.replace(/\\n */g, \"
    \");\n } else if (node.type === \"strong\") {\n return `${node.tokens?.map(output).join(\"\")}`;\n } else if (node.type === \"em\") {\n return `${node.tokens?.map(output).join(\"\")}`;\n } else if (node.type === \"paragraph\") {\n return `

    ${node.tokens?.map(output).join(\"\")}

    `;\n } else if (node.type === \"space\") {\n return \"\";\n } else if (node.type === \"html\") {\n return `${node.text}`;\n } else if (node.type === \"escape\") {\n return node.text;\n }\n return `Unsupported markdown: ${node.type}`;\n }\n __name(output, \"output\");\n return nodes.map(output).join(\"\");\n}\n__name(markdownToHTML, \"markdownToHTML\");\n\n// src/rendering-util/splitText.ts\nfunction splitTextToChars(text) {\n if (Intl.Segmenter) {\n return [...new Intl.Segmenter().segment(text)].map((s) => s.segment);\n }\n return [...text];\n}\n__name(splitTextToChars, \"splitTextToChars\");\nfunction splitWordToFitWidth(checkFit, word) {\n const characters = splitTextToChars(word.content);\n return splitWordToFitWidthRecursion(checkFit, [], characters, word.type);\n}\n__name(splitWordToFitWidth, \"splitWordToFitWidth\");\nfunction splitWordToFitWidthRecursion(checkFit, usedChars, remainingChars, type) {\n if (remainingChars.length === 0) {\n return [\n { content: usedChars.join(\"\"), type },\n { content: \"\", type }\n ];\n }\n const [nextChar, ...rest] = remainingChars;\n const newWord = [...usedChars, nextChar];\n if (checkFit([{ content: newWord.join(\"\"), type }])) {\n return splitWordToFitWidthRecursion(checkFit, newWord, rest, type);\n }\n if (usedChars.length === 0 && nextChar) {\n usedChars.push(nextChar);\n remainingChars.shift();\n }\n return [\n { content: usedChars.join(\"\"), type },\n { content: remainingChars.join(\"\"), type }\n ];\n}\n__name(splitWordToFitWidthRecursion, \"splitWordToFitWidthRecursion\");\nfunction splitLineToFitWidth(line, checkFit) {\n if (line.some(({ content }) => content.includes(\"\\n\"))) {\n throw new Error(\"splitLineToFitWidth does not support newlines in the line\");\n }\n return splitLineToFitWidthRecursion(line, checkFit);\n}\n__name(splitLineToFitWidth, \"splitLineToFitWidth\");\nfunction splitLineToFitWidthRecursion(words, checkFit, lines = [], newLine = []) {\n if (words.length === 0) {\n if (newLine.length > 0) {\n lines.push(newLine);\n }\n return lines.length > 0 ? lines : [];\n }\n let joiner = \"\";\n if (words[0].content === \" \") {\n joiner = \" \";\n words.shift();\n }\n const nextWord = words.shift() ?? { content: \" \", type: \"normal\" };\n const lineWithNextWord = [...newLine];\n if (joiner !== \"\") {\n lineWithNextWord.push({ content: joiner, type: \"normal\" });\n }\n lineWithNextWord.push(nextWord);\n if (checkFit(lineWithNextWord)) {\n return splitLineToFitWidthRecursion(words, checkFit, lines, lineWithNextWord);\n }\n if (newLine.length > 0) {\n lines.push(newLine);\n words.unshift(nextWord);\n } else if (nextWord.content) {\n const [line, rest] = splitWordToFitWidth(checkFit, nextWord);\n lines.push([line]);\n if (rest.content) {\n words.unshift(rest);\n }\n }\n return splitLineToFitWidthRecursion(words, checkFit, lines);\n}\n__name(splitLineToFitWidthRecursion, \"splitLineToFitWidthRecursion\");\n\n// src/rendering-util/createText.ts\nfunction applyStyle(dom, styleFn) {\n if (styleFn) {\n dom.attr(\"style\", styleFn);\n }\n}\n__name(applyStyle, \"applyStyle\");\nasync function addHtmlSpan(element, node, width, classes, addBackground = false) {\n const fo = element.append(\"foreignObject\");\n fo.attr(\"width\", `${10 * width}px`);\n fo.attr(\"height\", `${10 * width}px`);\n const div = fo.append(\"xhtml:div\");\n let label = node.label;\n if (node.label && hasKatex(node.label)) {\n label = await renderKatex(node.label.replace(common_default.lineBreakRegex, \"\\n\"), getConfig());\n }\n const labelClass = node.isNode ? \"nodeLabel\" : \"edgeLabel\";\n const span = div.append(\"span\");\n span.html(label);\n applyStyle(span, node.labelStyle);\n span.attr(\"class\", `${labelClass} ${classes}`);\n applyStyle(div, node.labelStyle);\n div.style(\"display\", \"table-cell\");\n div.style(\"white-space\", \"nowrap\");\n div.style(\"line-height\", \"1.5\");\n div.style(\"max-width\", width + \"px\");\n div.style(\"text-align\", \"center\");\n div.attr(\"xmlns\", \"http://www.w3.org/1999/xhtml\");\n if (addBackground) {\n div.attr(\"class\", \"labelBkg\");\n }\n let bbox = div.node().getBoundingClientRect();\n if (bbox.width === width) {\n div.style(\"display\", \"table\");\n div.style(\"white-space\", \"break-spaces\");\n div.style(\"width\", width + \"px\");\n bbox = div.node().getBoundingClientRect();\n }\n return fo.node();\n}\n__name(addHtmlSpan, \"addHtmlSpan\");\nfunction createTspan(textElement, lineIndex, lineHeight) {\n return textElement.append(\"tspan\").attr(\"class\", \"text-outer-tspan\").attr(\"x\", 0).attr(\"y\", lineIndex * lineHeight - 0.1 + \"em\").attr(\"dy\", lineHeight + \"em\");\n}\n__name(createTspan, \"createTspan\");\nfunction computeWidthOfText(parentNode, lineHeight, line) {\n const testElement = parentNode.append(\"text\");\n const testSpan = createTspan(testElement, 1, lineHeight);\n updateTextContentAndStyles(testSpan, line);\n const textLength = testSpan.node().getComputedTextLength();\n testElement.remove();\n return textLength;\n}\n__name(computeWidthOfText, \"computeWidthOfText\");\nfunction computeDimensionOfText(parentNode, lineHeight, text) {\n const testElement = parentNode.append(\"text\");\n const testSpan = createTspan(testElement, 1, lineHeight);\n updateTextContentAndStyles(testSpan, [{ content: text, type: \"normal\" }]);\n const textDimension = testSpan.node()?.getBoundingClientRect();\n if (textDimension) {\n testElement.remove();\n }\n return textDimension;\n}\n__name(computeDimensionOfText, \"computeDimensionOfText\");\nfunction createFormattedText(width, g, structuredText, addBackground = false) {\n const lineHeight = 1.1;\n const labelGroup = g.append(\"g\");\n const bkg = labelGroup.insert(\"rect\").attr(\"class\", \"background\").attr(\"style\", \"stroke: none\");\n const textElement = labelGroup.append(\"text\").attr(\"y\", \"-10.1\");\n let lineIndex = 0;\n for (const line of structuredText) {\n const checkWidth = /* @__PURE__ */ __name((line2) => computeWidthOfText(labelGroup, lineHeight, line2) <= width, \"checkWidth\");\n const linesUnderWidth = checkWidth(line) ? [line] : splitLineToFitWidth(line, checkWidth);\n for (const preparedLine of linesUnderWidth) {\n const tspan = createTspan(textElement, lineIndex, lineHeight);\n updateTextContentAndStyles(tspan, preparedLine);\n lineIndex++;\n }\n }\n if (addBackground) {\n const bbox = textElement.node().getBBox();\n const padding = 2;\n bkg.attr(\"x\", bbox.x - padding).attr(\"y\", bbox.y - padding).attr(\"width\", bbox.width + 2 * padding).attr(\"height\", bbox.height + 2 * padding);\n return labelGroup.node();\n } else {\n return textElement.node();\n }\n}\n__name(createFormattedText, \"createFormattedText\");\nfunction updateTextContentAndStyles(tspan, wrappedLine) {\n tspan.text(\"\");\n wrappedLine.forEach((word, index) => {\n const innerTspan = tspan.append(\"tspan\").attr(\"font-style\", word.type === \"em\" ? \"italic\" : \"normal\").attr(\"class\", \"text-inner-tspan\").attr(\"font-weight\", word.type === \"strong\" ? \"bold\" : \"normal\");\n if (index === 0) {\n innerTspan.text(word.content);\n } else {\n innerTspan.text(\" \" + word.content);\n }\n });\n}\n__name(updateTextContentAndStyles, \"updateTextContentAndStyles\");\nfunction replaceIconSubstring(text) {\n return text.replace(\n /fa[bklrs]?:fa-[\\w-]+/g,\n // cspell: disable-line\n (s) => ``\n );\n}\n__name(replaceIconSubstring, \"replaceIconSubstring\");\nvar createText = /* @__PURE__ */ __name(async (el, text = \"\", {\n style = \"\",\n isTitle = false,\n classes = \"\",\n useHtmlLabels = true,\n isNode = true,\n width = 200,\n addSvgBackground = false\n} = {}, config) => {\n log.debug(\n \"XYZ createText\",\n text,\n style,\n isTitle,\n classes,\n useHtmlLabels,\n isNode,\n \"addSvgBackground: \",\n addSvgBackground\n );\n if (useHtmlLabels) {\n const htmlText = markdownToHTML(text, config);\n const decodedReplacedText = replaceIconSubstring(decodeEntities(htmlText));\n const inputForKatex = text.replace(/\\\\\\\\/g, \"\\\\\");\n const node = {\n isNode,\n label: hasKatex(text) ? inputForKatex : decodedReplacedText,\n labelStyle: style.replace(\"fill:\", \"color:\")\n };\n const vertexNode = await addHtmlSpan(el, node, width, classes, addSvgBackground);\n return vertexNode;\n } else {\n const sanitizeBR = text.replace(//g, \"
    \");\n const structuredText = markdownToLines(sanitizeBR.replace(\"
    \", \"
    \"), config);\n const svgLabel = createFormattedText(\n width,\n el,\n structuredText,\n text ? addSvgBackground : false\n );\n if (isNode) {\n if (/stroke:/.exec(style)) {\n style = style.replace(\"stroke:\", \"lineColor:\");\n }\n const nodeLabelTextStyle = style.replace(/stroke:[^;]+;?/g, \"\").replace(/stroke-width:[^;]+;?/g, \"\").replace(/fill:[^;]+;?/g, \"\").replace(/color:/g, \"fill:\");\n select(svgLabel).attr(\"style\", nodeLabelTextStyle);\n } else {\n const edgeLabelRectStyle = style.replace(/stroke:[^;]+;?/g, \"\").replace(/stroke-width:[^;]+;?/g, \"\").replace(/fill:[^;]+;?/g, \"\").replace(/background:/g, \"fill:\");\n select(svgLabel).select(\"rect\").attr(\"style\", edgeLabelRectStyle.replace(/background:/g, \"fill:\"));\n const edgeLabelTextStyle = style.replace(/stroke:[^;]+;?/g, \"\").replace(/stroke-width:[^;]+;?/g, \"\").replace(/fill:[^;]+;?/g, \"\").replace(/color:/g, \"fill:\");\n select(svgLabel).select(\"text\").attr(\"style\", edgeLabelTextStyle);\n }\n return svgLabel;\n }\n}, \"createText\");\n\nexport {\n computeDimensionOfText,\n replaceIconSubstring,\n createText\n};\n"], + "mappings": "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", + "names": ["dedent", "templ", "values", "_i", "strings", "indentLengths", "arr", "str", "matches", "match", "_a", "_b", "pattern_1", "string", "value", "i", "endentations", "endentation", "indentedValue", "_getDefaults", "_defaults", "changeDefaults", "newDefaults", "escapeTest", "escapeReplace", "escapeTestNoEncode", "escapeReplaceNoEncode", "escapeReplacements", "getEscapeReplacement", "ch", "escape", "html", "encode", "unescapeTest", "unescape", "_", "n", "caret", "edit", "regex", "opt", "source", "obj", "name", "val", "valSource", "cleanUrl", "href", "noopTest", "splitCells", "tableRow", "count", "row", "match", "offset", "str", "escaped", "curr", "cells", "i", "rtrim", "c", "invert", "l", "suffLen", "currChar", "findClosingBracket", "b", "level", "outputLink", "cap", "link", "raw", "lexer", "title", "text", "token", "indentCodeCompensation", "matchIndentToCode", "indentToCode", "node", "matchIndentInNode", "indentInNode", "_Tokenizer", "options", "src", "trimmed", "lines", "tokens", "inBlockquote", "currentLines", "currentRaw", "currentText", "top", "lastToken", "oldToken", "newText", "newToken", "bull", "isordered", "list", "itemRegex", "endsWithBlankLine", "endEarly", "itemContents", "line", "t", "nextLine", "blankLine", "indent", "nextBulletRegex", "hrRegex", "fencesBeginRegex", "headingBeginRegex", "rawLine", "istask", "ischecked", "spacers", "hasMultipleLineBreaks", "tag", "headers", "aligns", "rows", "item", "align", "cell", "trimmedUrl", "rtrimSlash", "lastParenIndex", "linkLen", "links", "linkString", "maskedSrc", "prevChar", "lLength", "rDelim", "rLength", "delimTotal", "midDelimTotal", "endReg", "lastCharLength", "hasNonSpaceChars", "hasSpaceCharsOnBothEnds", "prevCapZero", "newline", "blockCode", "fences", "hr", "heading", "bullet", "lheading", "_paragraph", "blockText", "_blockLabel", "def", "_tag", "_comment", "paragraph", "blockquote", "blockNormal", "gfmTable", "blockGfm", "blockPedantic", "inlineCode", "br", "inlineText", "_punctuation", "punctuation", "blockSkip", "emStrongLDelim", "emStrongRDelimAst", "emStrongRDelimUnd", "anyPunctuation", "autolink", "_inlineComment", "_inlineLabel", "reflink", "nolink", "reflinkSearch", "inlineNormal", "inlinePedantic", "inlineGfm", "inlineBreaks", "block", "inline", "_Lexer", "__Lexer", "rules", "next", "lastParagraphClipped", "leading", "tabs", "cutSrc", "extTokenizer", "startIndex", "tempSrc", "tempStart", "getStartIndex", "errMsg", "keepPrevChar", "_Renderer", "lang", "langString", "code", "depth", "ordered", "start", "body", "j", "type", "startAttr", "itemBody", "checkbox", "checked", "header", "k", "content", "cleanHref", "out", "_TextRenderer", "_Parser", "__Parser", "anyToken", "genericToken", "ret", "textToken", "renderer", "_Hooks", "markdown", "Marked", "#parseMarkdown", "args", "callback", "values", "tableToken", "listToken", "childTokens", "extensions", "pack", "opts", "ext", "prevRenderer", "extLevel", "prop", "rendererProp", "rendererFunc", "#convertRendererFunction", "tokenizer", "tokenizerProp", "tokenizerFunc", "prevTokenizer", "hooks", "hooksProp", "hooksFunc", "prevHook", "arg", "walkTokens", "packWalktokens", "func", "loose", "task", "parser", "origOpt", "throwError", "#onError", "e", "silent", "async", "msg", "markedInstance", "marked", "setOptions", "use", "parseInline", "parser", "_Parser", "lexer", "_Lexer", "preprocessMarkdown", "markdown", "markdownAutoWrap", "withoutMultipleNewlines", "withoutExtraSpaces", "dedent", "__name", "markdownToLines", "config", "preprocessedMarkdown", "nodes", "marked", "lines", "currentLine", "processNode", "node", "parentType", "textLine", "index", "word", "contentNode", "treeNode", "markdownToHTML", "output", "splitTextToChars", "text", "s", "splitWordToFitWidth", "checkFit", "characters", "splitWordToFitWidthRecursion", "usedChars", "remainingChars", "type", "nextChar", "rest", "newWord", "splitLineToFitWidth", "line", "content", "splitLineToFitWidthRecursion", "words", "newLine", "joiner", "nextWord", "lineWithNextWord", "applyStyle", "dom", "styleFn", "addHtmlSpan", "element", "width", "classes", "addBackground", "fo", "div", "label", "hasKatex", "renderKatex", "common_default", "getConfig2", "labelClass", "span", "bbox", "createTspan", "textElement", "lineIndex", "lineHeight", "computeWidthOfText", "parentNode", "testElement", "testSpan", "updateTextContentAndStyles", "textLength", "computeDimensionOfText", "textDimension", "createFormattedText", "g", "structuredText", "labelGroup", "bkg", "checkWidth", "line2", "linesUnderWidth", "preparedLine", "tspan", "padding", "wrappedLine", "innerTspan", "replaceIconSubstring", "createText", "el", "style", "isTitle", "useHtmlLabels", "isNode", "addSvgBackground", "log", "htmlText", "decodedReplacedText", "decodeEntities", "inputForKatex", "sanitizeBR", "svgLabel", "nodeLabelTextStyle", "select_default", "edgeLabelRectStyle", "edgeLabelTextStyle"] +} diff --git a/docs/_site/public/chunk-BD4P4Z7J.min.js b/docs/_site/public/chunk-BD4P4Z7J.min.js new file mode 100644 index 0000000..787e530 --- /dev/null +++ b/docs/_site/public/chunk-BD4P4Z7J.min.js @@ -0,0 +1,2 @@ +import{h as j,j as T}from"./chunk-U3SD26FK.min.js";import{a as P,d as ie}from"./chunk-OSRY5VT3.min.js";var X=P((Xe,Q)=>{var b=1e3,y=b*60,v=y*60,I=v*24,he=I*7,Ce=I*365.25;Q.exports=function(e,o){o=o||{};var t=typeof e;if(t==="string"&&e.length>0)return xe(e);if(t==="number"&&isFinite(e))return o.long?Fe(e):we(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))};function xe(e){if(e=String(e),!(e.length>100)){var o=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(e);if(o){var t=parseFloat(o[1]),n=(o[2]||"ms").toLowerCase();switch(n){case"years":case"year":case"yrs":case"yr":case"y":return t*Ce;case"weeks":case"week":case"w":return t*he;case"days":case"day":case"d":return t*I;case"hours":case"hour":case"hrs":case"hr":case"h":return t*v;case"minutes":case"minute":case"mins":case"min":case"m":return t*y;case"seconds":case"second":case"secs":case"sec":case"s":return t*b;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return t;default:return}}}}function we(e){var o=Math.abs(e);return o>=I?Math.round(e/I)+"d":o>=v?Math.round(e/v)+"h":o>=y?Math.round(e/y)+"m":o>=b?Math.round(e/b)+"s":e+"ms"}function Fe(e){var o=Math.abs(e);return o>=I?O(e,o,I,"day"):o>=v?O(e,o,v,"hour"):o>=y?O(e,o,y,"minute"):o>=b?O(e,o,b,"second"):e+" ms"}function O(e,o,t,n){var r=o>=t*1.5;return Math.round(e/t)+" "+n+(r?"s":"")}});var ee=P((Ye,Y)=>{function Ie(e){t.debug=t,t.default=t,t.coerce=g,t.disable=s,t.enable=r,t.enabled=a,t.humanize=X(),t.destroy=h,Object.keys(e).forEach(i=>{t[i]=e[i]}),t.names=[],t.skips=[],t.formatters={};function o(i){let c=0;for(let u=0;u{if(M==="%%")return"%";m++;let H=t.formatters[re];if(typeof H=="function"){let ne=l[m];M=H.call(x,ne),l.splice(m,1),m--}return M}),t.formatArgs.call(x,l),(x.log||t.log).apply(x,l)}return p.namespace=i,p.useColors=t.useColors(),p.color=t.selectColor(i),p.extend=n,p.destroy=t.destroy,Object.defineProperty(p,"enabled",{enumerable:!0,configurable:!1,get:()=>u!==null?u:(w!==t.namespaces&&(w=t.namespaces,E=t.enabled(i)),E),set:l=>{u=l}}),typeof t.init=="function"&&t.init(p),p}function n(i,c){let u=t(this.namespace+(typeof c>"u"?":":c)+i);return u.log=this.log,u}function r(i){t.save(i),t.namespaces=i,t.names=[],t.skips=[];let c,u=(typeof i=="string"?i:"").split(/[\s,]+/),w=u.length;for(c=0;c"-"+c)].join(",");return t.enable(""),i}function a(i){if(i[i.length-1]==="*")return!0;let c,u;for(c=0,u=t.skips.length;c{d.formatArgs=be;d.save=ye;d.load=ve;d.useColors=Se;d.storage=Ee();d.destroy=(()=>{let e=!1;return()=>{e||(e=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})();d.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function Se(){if(typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs))return!0;if(typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;let e;return typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&(e=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(e[1],10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function be(e){if(e[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+e[0]+(this.useColors?"%c ":" ")+"+"+A.exports.humanize(this.diff),!this.useColors)return;let o="color: "+this.color;e.splice(1,0,o,"color: inherit");let t=0,n=0;e[0].replace(/%[a-zA-Z%]/g,r=>{r!=="%%"&&(t++,r==="%c"&&(n=t))}),e.splice(n,0,o)}d.log=console.debug||console.log||(()=>{});function ye(e){try{e?d.storage.setItem("debug",e):d.storage.removeItem("debug")}catch{}}function ve(){let e;try{e=d.storage.getItem("debug")}catch{}return!e&&typeof process<"u"&&"env"in process&&(e=process.env.DEBUG),e}function Ee(){try{return localStorage}catch{}}A.exports=ee()(d);var{formatters:Te}=A.exports;Te.j=function(e){try{return JSON.stringify(e)}catch(o){return"[UnexpectedJSONParseError]: "+o.message}}});var se=Object.freeze({left:0,top:0,width:16,height:16}),S=Object.freeze({rotate:0,vFlip:!1,hFlip:!1}),V=Object.freeze({...se,...S}),B=Object.freeze({...V,body:"",hidden:!1});var ce=Object.freeze({width:null,height:null}),K=Object.freeze({...ce,...S});var k=/^[a-z0-9]+(-[a-z0-9]+)*$/,G=(e,o,t,n="")=>{let r=e.split(":");if(e.slice(0,1)==="@"){if(r.length<2||r.length>3)return null;n=r.shift().slice(1)}if(r.length>3||!r.length)return null;if(r.length>1){let f=r.pop(),g=r.pop(),h={provider:r.length>0?r[0]:n,prefix:g,name:f};return o&&!D(h)?null:h}let s=r[0],a=s.split("-");if(a.length>1){let f={provider:n,prefix:a.shift(),name:a.join("-")};return o&&!D(f)?null:f}if(t&&n===""){let f={provider:n,prefix:"",name:s};return o&&!D(f,t)?null:f}return null},D=(e,o)=>e?!!((e.provider===""||e.provider.match(k))&&(o&&e.prefix===""||e.prefix.match(k))&&e.name.match(k)):!1;function _(e,o){let t={};!e.hFlip!=!o.hFlip&&(t.hFlip=!0),!e.vFlip!=!o.vFlip&&(t.vFlip=!0);let n=((e.rotate||0)+(o.rotate||0))%4;return n&&(t.rotate=n),t}function z(e,o){let t=_(e,o);for(let n in B)n in S?n in e&&!(n in t)&&(t[n]=S[n]):n in o?t[n]=o[n]:n in e&&(t[n]=e[n]);return t}function J(e,o){let t=e.icons,n=e.aliases||Object.create(null),r=Object.create(null);function s(a){if(t[a])return r[a]=[];if(!(a in r)){r[a]=null;let f=n[a]&&n[a].parent,g=f&&s(f);g&&(r[a]=[f].concat(g))}return r[a]}return(o||Object.keys(t).concat(Object.keys(n))).forEach(s),r}function W(e,o,t){let n=e.icons,r=e.aliases||Object.create(null),s={};function a(f){s=z(n[f]||r[f],s)}return a(o),t.forEach(a),z(e,s)}function $(e,o){if(e.icons[o])return W(e,o,[]);let t=J(e,[o])[o];return t?W(e,o,t):null}var ae=/(-?[0-9.]*[0-9]+[0-9.]*)/g,fe=/^-?[0-9.]*[0-9]+[0-9.]*$/g;function L(e,o,t){if(o===1)return e;if(t=t||100,typeof e=="number")return Math.ceil(e*o*t)/t;if(typeof e!="string")return e;let n=e.split(ae);if(n===null||!n.length)return e;let r=[],s=n.shift(),a=fe.test(s);for(;;){if(a){let f=parseFloat(s);isNaN(f)?r.push(s):r.push(Math.ceil(f*o*t)/t)}else r.push(s);if(s=n.shift(),s===void 0)return r.join("");a=!a}}function le(e,o="defs"){let t="",n=e.indexOf("<"+o);for(;n>=0;){let r=e.indexOf(">",n),s=e.indexOf("",s);if(a===-1)break;t+=e.slice(r+1,s).trim(),e=e.slice(0,n).trim()+e.slice(a+1)}return{defs:t,content:e}}function ue(e,o){return e?""+e+""+o:o}function Z(e,o,t){let n=le(e);return ue(n.defs,o+n.content+t)}var pe=e=>e==="unset"||e==="undefined"||e==="none";function U(e,o){let t={...V,...e},n={...K,...o},r={left:t.left,top:t.top,width:t.width,height:t.height},s=t.body;[t,n].forEach(p=>{let l=[],x=p.hFlip,F=p.vFlip,C=p.rotate;x?F?C+=2:(l.push("translate("+(r.width+r.left).toString()+" "+(0-r.top).toString()+")"),l.push("scale(-1 1)"),r.top=r.left=0):F&&(l.push("translate("+(0-r.left).toString()+" "+(r.height+r.top).toString()+")"),l.push("scale(1 -1)"),r.top=r.left=0);let m;switch(C<0&&(C-=Math.floor(C/4)*4),C=C%4,C){case 1:m=r.height/2+r.top,l.unshift("rotate(90 "+m.toString()+" "+m.toString()+")");break;case 2:l.unshift("rotate(180 "+(r.width/2+r.left).toString()+" "+(r.height/2+r.top).toString()+")");break;case 3:m=r.width/2+r.left,l.unshift("rotate(-90 "+m.toString()+" "+m.toString()+")");break}C%2===1&&(r.left!==r.top&&(m=r.left,r.left=r.top,r.top=m),r.width!==r.height&&(m=r.width,r.width=r.height,r.height=m)),l.length&&(s=Z(s,'',""))});let a=n.width,f=n.height,g=r.width,h=r.height,i,c;a===null?(c=f===null?"1em":f==="auto"?h:f,i=L(c,g/h)):(i=a==="auto"?g:a,c=f===null?L(i,h/g):f==="auto"?h:f);let u={},w=(p,l)=>{pe(l)||(u[p]=l.toString())};w("width",i),w("height",c);let E=[r.left,r.top,g,h];return u.viewBox=E.join(" "),{attributes:u,viewBox:E,body:s}}var me=/\sid="(\S+)"/g,de="IconifyId"+Date.now().toString(16)+(Math.random()*16777216|0).toString(16),ge=0;function q(e,o=de){let t=[],n;for(;n=me.exec(e);)t.push(n[1]);if(!t.length)return e;let r="suffix"+(Math.random()*16777216|Date.now()).toString(16);return t.forEach(s=>{let a=typeof o=="function"?o(s):o+(ge++).toString(),f=s.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");e=e.replace(new RegExp('([#;"])('+f+')([")]|\\.[a-z])',"g"),"$1"+a+r+"$3")}),e=e.replace(new RegExp(r,"g"),""),e}function N(e,o){let t=e.indexOf("xlink:")===-1?"":' xmlns:xlink="http://www.w3.org/1999/xlink"';for(let n in o)t+=" "+n+'="'+o[n]+'"';return'"+e+""}var et=ie(te(),1);var je={body:'?',height:80,width:80},R=new Map,oe=new Map,ft=j(e=>{for(let o of e){if(!o.name)throw new Error('Invalid icon loader. Must have a "name" property with non-empty string value.');if(T.debug("Registering icon pack:",o.name),"loader"in o)oe.set(o.name,o.loader);else if("icons"in o)R.set(o.name,o.icons);else throw T.error("Invalid icon loader:",o),new Error('Invalid icon loader. Must have either "icons" or "loader" property.')}},"registerIconPacks"),ke=j(async(e,o)=>{let t=G(e,!0,o!==void 0);if(!t)throw new Error(`Invalid icon name: ${e}`);let n=t.prefix||o;if(!n)throw new Error(`Icon name must contain a prefix: ${e}`);let r=R.get(n);if(!r){let a=oe.get(n);if(!a)throw new Error(`Icon set not found: ${t.prefix}`);try{r={...await a(),prefix:n},R.set(n,r)}catch(f){throw T.error(f),new Error(`Failed to load icon set: ${t.prefix}`)}}let s=$(r,t.name);if(!s)throw new Error(`Icon not found: ${e}`);return s},"getRegisteredIconData"),lt=j(async(e,o)=>{let t;try{t=await ke(e,o?.fallbackPrefix)}catch(s){T.error(s),t=je}let n=U(t,o);return N(q(n.body),n.attributes)},"getIconSVG");export{je as a,ft as b,lt as c}; +//# sourceMappingURL=chunk-BD4P4Z7J.min.js.map diff --git a/docs/_site/public/chunk-BD4P4Z7J.min.js.map b/docs/_site/public/chunk-BD4P4Z7J.min.js.map new file mode 100644 index 0000000..6a8ff6a --- /dev/null +++ b/docs/_site/public/chunk-BD4P4Z7J.min.js.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": ["../../node_modules/ms/index.js", "../../node_modules/debug/src/common.js", "../../node_modules/debug/src/browser.js", "../../node_modules/@iconify/utils/lib/icon/defaults.mjs", "../../node_modules/@iconify/utils/lib/customisations/defaults.mjs", "../../node_modules/@iconify/utils/lib/icon/name.mjs", "../../node_modules/@iconify/utils/lib/icon/transformations.mjs", "../../node_modules/@iconify/utils/lib/icon/merge.mjs", "../../node_modules/@iconify/utils/lib/icon-set/tree.mjs", "../../node_modules/@iconify/utils/lib/icon-set/get-icon.mjs", "../../node_modules/@iconify/utils/lib/svg/size.mjs", "../../node_modules/@iconify/utils/lib/svg/defs.mjs", "../../node_modules/@iconify/utils/lib/svg/build.mjs", "../../node_modules/@iconify/utils/lib/svg/id.mjs", "../../node_modules/@iconify/utils/lib/svg/html.mjs", "../../node_modules/@iconify/utils/lib/index.mjs", "../../node_modules/mermaid/dist/chunks/mermaid.core/chunk-OPO4IU42.mjs"], + "sourcesContent": ["/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar w = d * 7;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nmodule.exports = function (val, options) {\n options = options || {};\n var type = typeof val;\n if (type === 'string' && val.length > 0) {\n return parse(val);\n } else if (type === 'number' && isFinite(val)) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n throw new Error(\n 'val is not a non-empty string or a valid number. val=' +\n JSON.stringify(val)\n );\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n str = String(str);\n if (str.length > 100) {\n return;\n }\n var match = /^(-?(?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(\n str\n );\n if (!match) {\n return;\n }\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n case 'weeks':\n case 'week':\n case 'w':\n return n * w;\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n default:\n return undefined;\n }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return Math.round(ms / d) + 'd';\n }\n if (msAbs >= h) {\n return Math.round(ms / h) + 'h';\n }\n if (msAbs >= m) {\n return Math.round(ms / m) + 'm';\n }\n if (msAbs >= s) {\n return Math.round(ms / s) + 's';\n }\n return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return plural(ms, msAbs, d, 'day');\n }\n if (msAbs >= h) {\n return plural(ms, msAbs, h, 'hour');\n }\n if (msAbs >= m) {\n return plural(ms, msAbs, m, 'minute');\n }\n if (msAbs >= s) {\n return plural(ms, msAbs, s, 'second');\n }\n return ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, msAbs, n, name) {\n var isPlural = msAbs >= n * 1.5;\n return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : '');\n}\n", "\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n */\n\nfunction setup(env) {\n\tcreateDebug.debug = createDebug;\n\tcreateDebug.default = createDebug;\n\tcreateDebug.coerce = coerce;\n\tcreateDebug.disable = disable;\n\tcreateDebug.enable = enable;\n\tcreateDebug.enabled = enabled;\n\tcreateDebug.humanize = require('ms');\n\tcreateDebug.destroy = destroy;\n\n\tObject.keys(env).forEach(key => {\n\t\tcreateDebug[key] = env[key];\n\t});\n\n\t/**\n\t* The currently active debug mode names, and names to skip.\n\t*/\n\n\tcreateDebug.names = [];\n\tcreateDebug.skips = [];\n\n\t/**\n\t* Map of special \"%n\" handling functions, for the debug \"format\" argument.\n\t*\n\t* Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n\t*/\n\tcreateDebug.formatters = {};\n\n\t/**\n\t* Selects a color for a debug namespace\n\t* @param {String} namespace The namespace string for the debug instance to be colored\n\t* @return {Number|String} An ANSI color code for the given namespace\n\t* @api private\n\t*/\n\tfunction selectColor(namespace) {\n\t\tlet hash = 0;\n\n\t\tfor (let i = 0; i < namespace.length; i++) {\n\t\t\thash = ((hash << 5) - hash) + namespace.charCodeAt(i);\n\t\t\thash |= 0; // Convert to 32bit integer\n\t\t}\n\n\t\treturn createDebug.colors[Math.abs(hash) % createDebug.colors.length];\n\t}\n\tcreateDebug.selectColor = selectColor;\n\n\t/**\n\t* Create a debugger with the given `namespace`.\n\t*\n\t* @param {String} namespace\n\t* @return {Function}\n\t* @api public\n\t*/\n\tfunction createDebug(namespace) {\n\t\tlet prevTime;\n\t\tlet enableOverride = null;\n\t\tlet namespacesCache;\n\t\tlet enabledCache;\n\n\t\tfunction debug(...args) {\n\t\t\t// Disabled?\n\t\t\tif (!debug.enabled) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst self = debug;\n\n\t\t\t// Set `diff` timestamp\n\t\t\tconst curr = Number(new Date());\n\t\t\tconst ms = curr - (prevTime || curr);\n\t\t\tself.diff = ms;\n\t\t\tself.prev = prevTime;\n\t\t\tself.curr = curr;\n\t\t\tprevTime = curr;\n\n\t\t\targs[0] = createDebug.coerce(args[0]);\n\n\t\t\tif (typeof args[0] !== 'string') {\n\t\t\t\t// Anything else let's inspect with %O\n\t\t\t\targs.unshift('%O');\n\t\t\t}\n\n\t\t\t// Apply any `formatters` transformations\n\t\t\tlet index = 0;\n\t\t\targs[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => {\n\t\t\t\t// If we encounter an escaped % then don't increase the array index\n\t\t\t\tif (match === '%%') {\n\t\t\t\t\treturn '%';\n\t\t\t\t}\n\t\t\t\tindex++;\n\t\t\t\tconst formatter = createDebug.formatters[format];\n\t\t\t\tif (typeof formatter === 'function') {\n\t\t\t\t\tconst val = args[index];\n\t\t\t\t\tmatch = formatter.call(self, val);\n\n\t\t\t\t\t// Now we need to remove `args[index]` since it's inlined in the `format`\n\t\t\t\t\targs.splice(index, 1);\n\t\t\t\t\tindex--;\n\t\t\t\t}\n\t\t\t\treturn match;\n\t\t\t});\n\n\t\t\t// Apply env-specific formatting (colors, etc.)\n\t\t\tcreateDebug.formatArgs.call(self, args);\n\n\t\t\tconst logFn = self.log || createDebug.log;\n\t\t\tlogFn.apply(self, args);\n\t\t}\n\n\t\tdebug.namespace = namespace;\n\t\tdebug.useColors = createDebug.useColors();\n\t\tdebug.color = createDebug.selectColor(namespace);\n\t\tdebug.extend = extend;\n\t\tdebug.destroy = createDebug.destroy; // XXX Temporary. Will be removed in the next major release.\n\n\t\tObject.defineProperty(debug, 'enabled', {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: false,\n\t\t\tget: () => {\n\t\t\t\tif (enableOverride !== null) {\n\t\t\t\t\treturn enableOverride;\n\t\t\t\t}\n\t\t\t\tif (namespacesCache !== createDebug.namespaces) {\n\t\t\t\t\tnamespacesCache = createDebug.namespaces;\n\t\t\t\t\tenabledCache = createDebug.enabled(namespace);\n\t\t\t\t}\n\n\t\t\t\treturn enabledCache;\n\t\t\t},\n\t\t\tset: v => {\n\t\t\t\tenableOverride = v;\n\t\t\t}\n\t\t});\n\n\t\t// Env-specific initialization logic for debug instances\n\t\tif (typeof createDebug.init === 'function') {\n\t\t\tcreateDebug.init(debug);\n\t\t}\n\n\t\treturn debug;\n\t}\n\n\tfunction extend(namespace, delimiter) {\n\t\tconst newDebug = createDebug(this.namespace + (typeof delimiter === 'undefined' ? ':' : delimiter) + namespace);\n\t\tnewDebug.log = this.log;\n\t\treturn newDebug;\n\t}\n\n\t/**\n\t* Enables a debug mode by namespaces. This can include modes\n\t* separated by a colon and wildcards.\n\t*\n\t* @param {String} namespaces\n\t* @api public\n\t*/\n\tfunction enable(namespaces) {\n\t\tcreateDebug.save(namespaces);\n\t\tcreateDebug.namespaces = namespaces;\n\n\t\tcreateDebug.names = [];\n\t\tcreateDebug.skips = [];\n\n\t\tlet i;\n\t\tconst split = (typeof namespaces === 'string' ? namespaces : '').split(/[\\s,]+/);\n\t\tconst len = split.length;\n\n\t\tfor (i = 0; i < len; i++) {\n\t\t\tif (!split[i]) {\n\t\t\t\t// ignore empty strings\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tnamespaces = split[i].replace(/\\*/g, '.*?');\n\n\t\t\tif (namespaces[0] === '-') {\n\t\t\t\tcreateDebug.skips.push(new RegExp('^' + namespaces.slice(1) + '$'));\n\t\t\t} else {\n\t\t\t\tcreateDebug.names.push(new RegExp('^' + namespaces + '$'));\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t* Disable debug output.\n\t*\n\t* @return {String} namespaces\n\t* @api public\n\t*/\n\tfunction disable() {\n\t\tconst namespaces = [\n\t\t\t...createDebug.names.map(toNamespace),\n\t\t\t...createDebug.skips.map(toNamespace).map(namespace => '-' + namespace)\n\t\t].join(',');\n\t\tcreateDebug.enable('');\n\t\treturn namespaces;\n\t}\n\n\t/**\n\t* Returns true if the given mode name is enabled, false otherwise.\n\t*\n\t* @param {String} name\n\t* @return {Boolean}\n\t* @api public\n\t*/\n\tfunction enabled(name) {\n\t\tif (name[name.length - 1] === '*') {\n\t\t\treturn true;\n\t\t}\n\n\t\tlet i;\n\t\tlet len;\n\n\t\tfor (i = 0, len = createDebug.skips.length; i < len; i++) {\n\t\t\tif (createDebug.skips[i].test(name)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\tfor (i = 0, len = createDebug.names.length; i < len; i++) {\n\t\t\tif (createDebug.names[i].test(name)) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n\n\t/**\n\t* Convert regexp to namespace\n\t*\n\t* @param {RegExp} regxep\n\t* @return {String} namespace\n\t* @api private\n\t*/\n\tfunction toNamespace(regexp) {\n\t\treturn regexp.toString()\n\t\t\t.substring(2, regexp.toString().length - 2)\n\t\t\t.replace(/\\.\\*\\?$/, '*');\n\t}\n\n\t/**\n\t* Coerce `val`.\n\t*\n\t* @param {Mixed} val\n\t* @return {Mixed}\n\t* @api private\n\t*/\n\tfunction coerce(val) {\n\t\tif (val instanceof Error) {\n\t\t\treturn val.stack || val.message;\n\t\t}\n\t\treturn val;\n\t}\n\n\t/**\n\t* XXX DO NOT USE. This is a temporary stub function.\n\t* XXX It WILL be removed in the next major release.\n\t*/\n\tfunction destroy() {\n\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t}\n\n\tcreateDebug.enable(createDebug.load());\n\n\treturn createDebug;\n}\n\nmodule.exports = setup;\n", "/* eslint-env browser */\n\n/**\n * This is the web browser implementation of `debug()`.\n */\n\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = localstorage();\nexports.destroy = (() => {\n\tlet warned = false;\n\n\treturn () => {\n\t\tif (!warned) {\n\t\t\twarned = true;\n\t\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t\t}\n\t};\n})();\n\n/**\n * Colors.\n */\n\nexports.colors = [\n\t'#0000CC',\n\t'#0000FF',\n\t'#0033CC',\n\t'#0033FF',\n\t'#0066CC',\n\t'#0066FF',\n\t'#0099CC',\n\t'#0099FF',\n\t'#00CC00',\n\t'#00CC33',\n\t'#00CC66',\n\t'#00CC99',\n\t'#00CCCC',\n\t'#00CCFF',\n\t'#3300CC',\n\t'#3300FF',\n\t'#3333CC',\n\t'#3333FF',\n\t'#3366CC',\n\t'#3366FF',\n\t'#3399CC',\n\t'#3399FF',\n\t'#33CC00',\n\t'#33CC33',\n\t'#33CC66',\n\t'#33CC99',\n\t'#33CCCC',\n\t'#33CCFF',\n\t'#6600CC',\n\t'#6600FF',\n\t'#6633CC',\n\t'#6633FF',\n\t'#66CC00',\n\t'#66CC33',\n\t'#9900CC',\n\t'#9900FF',\n\t'#9933CC',\n\t'#9933FF',\n\t'#99CC00',\n\t'#99CC33',\n\t'#CC0000',\n\t'#CC0033',\n\t'#CC0066',\n\t'#CC0099',\n\t'#CC00CC',\n\t'#CC00FF',\n\t'#CC3300',\n\t'#CC3333',\n\t'#CC3366',\n\t'#CC3399',\n\t'#CC33CC',\n\t'#CC33FF',\n\t'#CC6600',\n\t'#CC6633',\n\t'#CC9900',\n\t'#CC9933',\n\t'#CCCC00',\n\t'#CCCC33',\n\t'#FF0000',\n\t'#FF0033',\n\t'#FF0066',\n\t'#FF0099',\n\t'#FF00CC',\n\t'#FF00FF',\n\t'#FF3300',\n\t'#FF3333',\n\t'#FF3366',\n\t'#FF3399',\n\t'#FF33CC',\n\t'#FF33FF',\n\t'#FF6600',\n\t'#FF6633',\n\t'#FF9900',\n\t'#FF9933',\n\t'#FFCC00',\n\t'#FFCC33'\n];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\n// eslint-disable-next-line complexity\nfunction useColors() {\n\t// NB: In an Electron preload script, document will be defined but not fully\n\t// initialized. Since we know we're in Chrome, we'll just detect this case\n\t// explicitly\n\tif (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) {\n\t\treturn true;\n\t}\n\n\t// Internet Explorer and Edge do not support colors.\n\tif (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\\/(\\d+)/)) {\n\t\treturn false;\n\t}\n\n\tlet m;\n\n\t// Is webkit? http://stackoverflow.com/a/16459606/376773\n\t// document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n\treturn (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||\n\t\t// Is firebug? http://stackoverflow.com/a/398120/376773\n\t\t(typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||\n\t\t// Is firefox >= v31?\n\t\t// https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && (m = navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/)) && parseInt(m[1], 10) >= 31) ||\n\t\t// Double check webkit in userAgent just in case we are in a worker\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/));\n}\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n\targs[0] = (this.useColors ? '%c' : '') +\n\t\tthis.namespace +\n\t\t(this.useColors ? ' %c' : ' ') +\n\t\targs[0] +\n\t\t(this.useColors ? '%c ' : ' ') +\n\t\t'+' + module.exports.humanize(this.diff);\n\n\tif (!this.useColors) {\n\t\treturn;\n\t}\n\n\tconst c = 'color: ' + this.color;\n\targs.splice(1, 0, c, 'color: inherit');\n\n\t// The final \"%c\" is somewhat tricky, because there could be other\n\t// arguments passed either before or after the %c, so we need to\n\t// figure out the correct index to insert the CSS into\n\tlet index = 0;\n\tlet lastC = 0;\n\targs[0].replace(/%[a-zA-Z%]/g, match => {\n\t\tif (match === '%%') {\n\t\t\treturn;\n\t\t}\n\t\tindex++;\n\t\tif (match === '%c') {\n\t\t\t// We only are interested in the *last* %c\n\t\t\t// (the user may have provided their own)\n\t\t\tlastC = index;\n\t\t}\n\t});\n\n\targs.splice(lastC, 0, c);\n}\n\n/**\n * Invokes `console.debug()` when available.\n * No-op when `console.debug` is not a \"function\".\n * If `console.debug` is not available, falls back\n * to `console.log`.\n *\n * @api public\n */\nexports.log = console.debug || console.log || (() => {});\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\nfunction save(namespaces) {\n\ttry {\n\t\tif (namespaces) {\n\t\t\texports.storage.setItem('debug', namespaces);\n\t\t} else {\n\t\t\texports.storage.removeItem('debug');\n\t\t}\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\nfunction load() {\n\tlet r;\n\ttry {\n\t\tr = exports.storage.getItem('debug');\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n\n\t// If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n\tif (!r && typeof process !== 'undefined' && 'env' in process) {\n\t\tr = process.env.DEBUG;\n\t}\n\n\treturn r;\n}\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n\ttry {\n\t\t// TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context\n\t\t// The Browser also has localStorage in the global context.\n\t\treturn localStorage;\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\nmodule.exports = require('./common')(exports);\n\nconst {formatters} = module.exports;\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nformatters.j = function (v) {\n\ttry {\n\t\treturn JSON.stringify(v);\n\t} catch (error) {\n\t\treturn '[UnexpectedJSONParseError]: ' + error.message;\n\t}\n};\n", "const defaultIconDimensions = Object.freeze(\n {\n left: 0,\n top: 0,\n width: 16,\n height: 16\n }\n);\nconst defaultIconTransformations = Object.freeze({\n rotate: 0,\n vFlip: false,\n hFlip: false\n});\nconst defaultIconProps = Object.freeze({\n ...defaultIconDimensions,\n ...defaultIconTransformations\n});\nconst defaultExtendedIconProps = Object.freeze({\n ...defaultIconProps,\n body: \"\",\n hidden: false\n});\n\nexport { defaultExtendedIconProps, defaultIconDimensions, defaultIconProps, defaultIconTransformations };\n", "import { defaultIconTransformations } from '../icon/defaults.mjs';\n\nconst defaultIconSizeCustomisations = Object.freeze({\n width: null,\n height: null\n});\nconst defaultIconCustomisations = Object.freeze({\n // Dimensions\n ...defaultIconSizeCustomisations,\n // Transformations\n ...defaultIconTransformations\n});\n\nexport { defaultIconCustomisations, defaultIconSizeCustomisations };\n", "const matchIconName = /^[a-z0-9]+(-[a-z0-9]+)*$/;\nconst stringToIcon = (value, validate, allowSimpleName, provider = \"\") => {\n const colonSeparated = value.split(\":\");\n if (value.slice(0, 1) === \"@\") {\n if (colonSeparated.length < 2 || colonSeparated.length > 3) {\n return null;\n }\n provider = colonSeparated.shift().slice(1);\n }\n if (colonSeparated.length > 3 || !colonSeparated.length) {\n return null;\n }\n if (colonSeparated.length > 1) {\n const name2 = colonSeparated.pop();\n const prefix = colonSeparated.pop();\n const result = {\n // Allow provider without '@': \"provider:prefix:name\"\n provider: colonSeparated.length > 0 ? colonSeparated[0] : provider,\n prefix,\n name: name2\n };\n return validate && !validateIconName(result) ? null : result;\n }\n const name = colonSeparated[0];\n const dashSeparated = name.split(\"-\");\n if (dashSeparated.length > 1) {\n const result = {\n provider,\n prefix: dashSeparated.shift(),\n name: dashSeparated.join(\"-\")\n };\n return validate && !validateIconName(result) ? null : result;\n }\n if (allowSimpleName && provider === \"\") {\n const result = {\n provider,\n prefix: \"\",\n name\n };\n return validate && !validateIconName(result, allowSimpleName) ? null : result;\n }\n return null;\n};\nconst validateIconName = (icon, allowSimpleName) => {\n if (!icon) {\n return false;\n }\n return !!((icon.provider === \"\" || icon.provider.match(matchIconName)) && (allowSimpleName && icon.prefix === \"\" || icon.prefix.match(matchIconName)) && icon.name.match(matchIconName));\n};\n\nexport { matchIconName, stringToIcon, validateIconName };\n", "function mergeIconTransformations(obj1, obj2) {\n const result = {};\n if (!obj1.hFlip !== !obj2.hFlip) {\n result.hFlip = true;\n }\n if (!obj1.vFlip !== !obj2.vFlip) {\n result.vFlip = true;\n }\n const rotate = ((obj1.rotate || 0) + (obj2.rotate || 0)) % 4;\n if (rotate) {\n result.rotate = rotate;\n }\n return result;\n}\n\nexport { mergeIconTransformations };\n", "import { defaultExtendedIconProps, defaultIconTransformations } from './defaults.mjs';\nimport { mergeIconTransformations } from './transformations.mjs';\n\nfunction mergeIconData(parent, child) {\n const result = mergeIconTransformations(parent, child);\n for (const key in defaultExtendedIconProps) {\n if (key in defaultIconTransformations) {\n if (key in parent && !(key in result)) {\n result[key] = defaultIconTransformations[key];\n }\n } else if (key in child) {\n result[key] = child[key];\n } else if (key in parent) {\n result[key] = parent[key];\n }\n }\n return result;\n}\n\nexport { mergeIconData };\n", "function getIconsTree(data, names) {\n const icons = data.icons;\n const aliases = data.aliases || /* @__PURE__ */ Object.create(null);\n const resolved = /* @__PURE__ */ Object.create(null);\n function resolve(name) {\n if (icons[name]) {\n return resolved[name] = [];\n }\n if (!(name in resolved)) {\n resolved[name] = null;\n const parent = aliases[name] && aliases[name].parent;\n const value = parent && resolve(parent);\n if (value) {\n resolved[name] = [parent].concat(value);\n }\n }\n return resolved[name];\n }\n (names || Object.keys(icons).concat(Object.keys(aliases))).forEach(resolve);\n return resolved;\n}\n\nexport { getIconsTree };\n", "import { mergeIconData } from '../icon/merge.mjs';\nimport { getIconsTree } from './tree.mjs';\nimport '../icon/defaults.mjs';\nimport '../icon/transformations.mjs';\n\nfunction internalGetIconData(data, name, tree) {\n const icons = data.icons;\n const aliases = data.aliases || /* @__PURE__ */ Object.create(null);\n let currentProps = {};\n function parse(name2) {\n currentProps = mergeIconData(\n icons[name2] || aliases[name2],\n currentProps\n );\n }\n parse(name);\n tree.forEach(parse);\n return mergeIconData(data, currentProps);\n}\nfunction getIconData(data, name) {\n if (data.icons[name]) {\n return internalGetIconData(data, name, []);\n }\n const tree = getIconsTree(data, [name])[name];\n return tree ? internalGetIconData(data, name, tree) : null;\n}\n\nexport { getIconData, internalGetIconData };\n", "const unitsSplit = /(-?[0-9.]*[0-9]+[0-9.]*)/g;\nconst unitsTest = /^-?[0-9.]*[0-9]+[0-9.]*$/g;\nfunction calculateSize(size, ratio, precision) {\n if (ratio === 1) {\n return size;\n }\n precision = precision || 100;\n if (typeof size === \"number\") {\n return Math.ceil(size * ratio * precision) / precision;\n }\n if (typeof size !== \"string\") {\n return size;\n }\n const oldParts = size.split(unitsSplit);\n if (oldParts === null || !oldParts.length) {\n return size;\n }\n const newParts = [];\n let code = oldParts.shift();\n let isNumber = unitsTest.test(code);\n while (true) {\n if (isNumber) {\n const num = parseFloat(code);\n if (isNaN(num)) {\n newParts.push(code);\n } else {\n newParts.push(Math.ceil(num * ratio * precision) / precision);\n }\n } else {\n newParts.push(code);\n }\n code = oldParts.shift();\n if (code === void 0) {\n return newParts.join(\"\");\n }\n isNumber = !isNumber;\n }\n}\n\nexport { calculateSize };\n", "function splitSVGDefs(content, tag = \"defs\") {\n let defs = \"\";\n const index = content.indexOf(\"<\" + tag);\n while (index >= 0) {\n const start = content.indexOf(\">\", index);\n const end = content.indexOf(\"\", end);\n if (endEnd === -1) {\n break;\n }\n defs += content.slice(start + 1, end).trim();\n content = content.slice(0, index).trim() + content.slice(endEnd + 1);\n }\n return {\n defs,\n content\n };\n}\nfunction mergeDefsAndContent(defs, content) {\n return defs ? \"\" + defs + \"\" + content : content;\n}\nfunction wrapSVGContent(body, start, end) {\n const split = splitSVGDefs(body);\n return mergeDefsAndContent(split.defs, start + split.content + end);\n}\n\nexport { mergeDefsAndContent, splitSVGDefs, wrapSVGContent };\n", "import { defaultIconProps } from '../icon/defaults.mjs';\nimport { defaultIconCustomisations } from '../customisations/defaults.mjs';\nimport { calculateSize } from './size.mjs';\nimport { wrapSVGContent } from './defs.mjs';\n\nconst isUnsetKeyword = (value) => value === \"unset\" || value === \"undefined\" || value === \"none\";\nfunction iconToSVG(icon, customisations) {\n const fullIcon = {\n ...defaultIconProps,\n ...icon\n };\n const fullCustomisations = {\n ...defaultIconCustomisations,\n ...customisations\n };\n const box = {\n left: fullIcon.left,\n top: fullIcon.top,\n width: fullIcon.width,\n height: fullIcon.height\n };\n let body = fullIcon.body;\n [fullIcon, fullCustomisations].forEach((props) => {\n const transformations = [];\n const hFlip = props.hFlip;\n const vFlip = props.vFlip;\n let rotation = props.rotate;\n if (hFlip) {\n if (vFlip) {\n rotation += 2;\n } else {\n transformations.push(\n \"translate(\" + (box.width + box.left).toString() + \" \" + (0 - box.top).toString() + \")\"\n );\n transformations.push(\"scale(-1 1)\");\n box.top = box.left = 0;\n }\n } else if (vFlip) {\n transformations.push(\n \"translate(\" + (0 - box.left).toString() + \" \" + (box.height + box.top).toString() + \")\"\n );\n transformations.push(\"scale(1 -1)\");\n box.top = box.left = 0;\n }\n let tempValue;\n if (rotation < 0) {\n rotation -= Math.floor(rotation / 4) * 4;\n }\n rotation = rotation % 4;\n switch (rotation) {\n case 1:\n tempValue = box.height / 2 + box.top;\n transformations.unshift(\n \"rotate(90 \" + tempValue.toString() + \" \" + tempValue.toString() + \")\"\n );\n break;\n case 2:\n transformations.unshift(\n \"rotate(180 \" + (box.width / 2 + box.left).toString() + \" \" + (box.height / 2 + box.top).toString() + \")\"\n );\n break;\n case 3:\n tempValue = box.width / 2 + box.left;\n transformations.unshift(\n \"rotate(-90 \" + tempValue.toString() + \" \" + tempValue.toString() + \")\"\n );\n break;\n }\n if (rotation % 2 === 1) {\n if (box.left !== box.top) {\n tempValue = box.left;\n box.left = box.top;\n box.top = tempValue;\n }\n if (box.width !== box.height) {\n tempValue = box.width;\n box.width = box.height;\n box.height = tempValue;\n }\n }\n if (transformations.length) {\n body = wrapSVGContent(\n body,\n '',\n \"\"\n );\n }\n });\n const customisationsWidth = fullCustomisations.width;\n const customisationsHeight = fullCustomisations.height;\n const boxWidth = box.width;\n const boxHeight = box.height;\n let width;\n let height;\n if (customisationsWidth === null) {\n height = customisationsHeight === null ? \"1em\" : customisationsHeight === \"auto\" ? boxHeight : customisationsHeight;\n width = calculateSize(height, boxWidth / boxHeight);\n } else {\n width = customisationsWidth === \"auto\" ? boxWidth : customisationsWidth;\n height = customisationsHeight === null ? calculateSize(width, boxHeight / boxWidth) : customisationsHeight === \"auto\" ? boxHeight : customisationsHeight;\n }\n const attributes = {};\n const setAttr = (prop, value) => {\n if (!isUnsetKeyword(value)) {\n attributes[prop] = value.toString();\n }\n };\n setAttr(\"width\", width);\n setAttr(\"height\", height);\n const viewBox = [box.left, box.top, boxWidth, boxHeight];\n attributes.viewBox = viewBox.join(\" \");\n return {\n attributes,\n viewBox,\n body\n };\n}\n\nexport { iconToSVG, isUnsetKeyword };\n", "const regex = /\\sid=\"(\\S+)\"/g;\nconst randomPrefix = \"IconifyId\" + Date.now().toString(16) + (Math.random() * 16777216 | 0).toString(16);\nlet counter = 0;\nfunction replaceIDs(body, prefix = randomPrefix) {\n const ids = [];\n let match;\n while (match = regex.exec(body)) {\n ids.push(match[1]);\n }\n if (!ids.length) {\n return body;\n }\n const suffix = \"suffix\" + (Math.random() * 16777216 | Date.now()).toString(16);\n ids.forEach((id) => {\n const newID = typeof prefix === \"function\" ? prefix(id) : prefix + (counter++).toString();\n const escapedID = id.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n body = body.replace(\n // Allowed characters before id: [#;\"]\n // Allowed characters after id: [)\"], .[a-z]\n new RegExp('([#;\"])(' + escapedID + ')([\")]|\\\\.[a-z])', \"g\"),\n \"$1\" + newID + suffix + \"$3\"\n );\n });\n body = body.replace(new RegExp(suffix, \"g\"), \"\");\n return body;\n}\n\nexport { replaceIDs };\n", "function iconToHTML(body, attributes) {\n let renderAttribsHTML = body.indexOf(\"xlink:\") === -1 ? \"\" : ' xmlns:xlink=\"http://www.w3.org/1999/xlink\"';\n for (const attr in attributes) {\n renderAttribsHTML += \" \" + attr + '=\"' + attributes[attr] + '\"';\n }\n return '\" + body + \"\";\n}\n\nexport { iconToHTML };\n", "export { defaultIconCustomisations, defaultIconSizeCustomisations } from './customisations/defaults.mjs';\nexport { mergeCustomisations } from './customisations/merge.mjs';\nexport { toBoolean } from './customisations/bool.mjs';\nexport { flipFromString } from './customisations/flip.mjs';\nexport { rotateFromString } from './customisations/rotate.mjs';\nexport { matchIconName, stringToIcon, validateIconName } from './icon/name.mjs';\nexport { mergeIconData } from './icon/merge.mjs';\nexport { mergeIconTransformations } from './icon/transformations.mjs';\nexport { defaultExtendedIconProps, defaultIconDimensions, defaultIconProps, defaultIconTransformations } from './icon/defaults.mjs';\nexport { makeIconSquare } from './icon/square.mjs';\nexport { getIconsTree } from './icon-set/tree.mjs';\nexport { parseIconSet, parseIconSetAsync } from './icon-set/parse.mjs';\nexport { validateIconSet } from './icon-set/validate.mjs';\nexport { quicklyValidateIconSet } from './icon-set/validate-basic.mjs';\nexport { expandIconSet } from './icon-set/expand.mjs';\nexport { minifyIconSet } from './icon-set/minify.mjs';\nexport { getIcons } from './icon-set/get-icons.mjs';\nexport { getIconData } from './icon-set/get-icon.mjs';\nexport { convertIconSetInfo } from './icon-set/convert-info.mjs';\nexport { iconToSVG } from './svg/build.mjs';\nexport { mergeDefsAndContent, splitSVGDefs, wrapSVGContent } from './svg/defs.mjs';\nexport { replaceIDs } from './svg/id.mjs';\nexport { calculateSize } from './svg/size.mjs';\nexport { encodeSvgForCss } from './svg/encode-svg-for-css.mjs';\nexport { trimSVG } from './svg/trim.mjs';\nexport { prettifySVG } from './svg/pretty.mjs';\nexport { iconToHTML } from './svg/html.mjs';\nexport { svgToData, svgToURL } from './svg/url.mjs';\nexport { cleanUpInnerHTML } from './svg/inner-html.mjs';\nexport { getSVGViewBox } from './svg/viewbox.mjs';\nexport { buildParsedSVG, convertParsedSVG, parseSVGContent } from './svg/parse.mjs';\nexport { colorKeywords } from './colors/keywords.mjs';\nexport { colorToString, compareColors, stringToColor } from './colors/index.mjs';\nexport { getIconCSS, getIconContentCSS } from './css/icon.mjs';\nexport { getIconsCSS, getIconsContentCSS } from './css/icons.mjs';\nexport { mergeIconProps } from './loader/utils.mjs';\nexport { getCustomIcon } from './loader/custom.mjs';\nexport { searchForIcon } from './loader/modern.mjs';\nexport { loadIcon } from './loader/loader.mjs';\nexport { getEmojiSequenceFromString, getUnqualifiedEmojiSequence } from './emoji/cleanup.mjs';\nexport { convertEmojiSequenceToUTF16, convertEmojiSequenceToUTF32, getEmojiCodePoint, getEmojiUnicode, isUTF32SplitNumber, mergeUTF32Numbers, splitUTF32Number } from './emoji/convert.mjs';\nexport { getEmojiSequenceKeyword, getEmojiSequenceString, getEmojiUnicodeString } from './emoji/format.mjs';\nexport { parseEmojiTestFile } from './emoji/test/parse.mjs';\nexport { getQualifiedEmojiVariations } from './emoji/test/variations.mjs';\nexport { findMissingEmojis } from './emoji/test/missing.mjs';\nexport { createOptimisedRegex, createOptimisedRegexForEmojiSequences } from './emoji/regex/create.mjs';\nexport { prepareEmojiForIconSet, prepareEmojiForIconsList } from './emoji/parse.mjs';\nexport { findAndReplaceEmojisInText } from './emoji/replace/replace.mjs';\nexport { camelToKebab, camelize, pascalize, snakelize } from './misc/strings.mjs';\nexport { commonObjectProps, compareObjects, unmergeObjects } from './misc/objects.mjs';\nexport { sanitiseTitleAttribute } from './misc/title.mjs';\nimport './css/common.mjs';\nimport './css/format.mjs';\nimport 'debug';\nimport './emoji/data.mjs';\nimport './emoji/test/components.mjs';\nimport './emoji/regex/tree.mjs';\nimport './emoji/regex/base.mjs';\nimport './emoji/regex/numbers.mjs';\nimport './emoji/regex/similar.mjs';\nimport './emoji/test/similar.mjs';\nimport './emoji/test/name.mjs';\nimport './emoji/test/tree.mjs';\nimport './emoji/replace/find.mjs';\n", "import {\n __name,\n log\n} from \"./chunk-6DBFFHIP.mjs\";\n\n// src/rendering-util/icons.ts\nimport { getIconData, iconToHTML, iconToSVG, replaceIDs, stringToIcon } from \"@iconify/utils\";\nvar unknownIcon = {\n body: '?',\n height: 80,\n width: 80\n};\nvar iconsStore = /* @__PURE__ */ new Map();\nvar loaderStore = /* @__PURE__ */ new Map();\nvar registerIconPacks = /* @__PURE__ */ __name((iconLoaders) => {\n for (const iconLoader of iconLoaders) {\n if (!iconLoader.name) {\n throw new Error(\n 'Invalid icon loader. Must have a \"name\" property with non-empty string value.'\n );\n }\n log.debug(\"Registering icon pack:\", iconLoader.name);\n if (\"loader\" in iconLoader) {\n loaderStore.set(iconLoader.name, iconLoader.loader);\n } else if (\"icons\" in iconLoader) {\n iconsStore.set(iconLoader.name, iconLoader.icons);\n } else {\n log.error(\"Invalid icon loader:\", iconLoader);\n throw new Error('Invalid icon loader. Must have either \"icons\" or \"loader\" property.');\n }\n }\n}, \"registerIconPacks\");\nvar getRegisteredIconData = /* @__PURE__ */ __name(async (iconName, fallbackPrefix) => {\n const data = stringToIcon(iconName, true, fallbackPrefix !== void 0);\n if (!data) {\n throw new Error(`Invalid icon name: ${iconName}`);\n }\n const prefix = data.prefix || fallbackPrefix;\n if (!prefix) {\n throw new Error(`Icon name must contain a prefix: ${iconName}`);\n }\n let icons = iconsStore.get(prefix);\n if (!icons) {\n const loader = loaderStore.get(prefix);\n if (!loader) {\n throw new Error(`Icon set not found: ${data.prefix}`);\n }\n try {\n const loaded = await loader();\n icons = { ...loaded, prefix };\n iconsStore.set(prefix, icons);\n } catch (e) {\n log.error(e);\n throw new Error(`Failed to load icon set: ${data.prefix}`);\n }\n }\n const iconData = getIconData(icons, data.name);\n if (!iconData) {\n throw new Error(`Icon not found: ${iconName}`);\n }\n return iconData;\n}, \"getRegisteredIconData\");\nvar getIconSVG = /* @__PURE__ */ __name(async (iconName, customisations) => {\n let iconData;\n try {\n iconData = await getRegisteredIconData(iconName, customisations?.fallbackPrefix);\n } catch (e) {\n log.error(e);\n iconData = unknownIcon;\n }\n const renderData = iconToSVG(iconData, customisations);\n const svg = iconToHTML(replaceIDs(renderData.body), renderData.attributes);\n return svg;\n}, \"getIconSVG\");\n\nexport {\n unknownIcon,\n registerIconPacks,\n getIconSVG\n};\n"], + "mappings": "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", + "names": ["require_ms", "__commonJSMin", "exports", "module", "s", "m", "h", "d", "w", "y", "val", "options", "type", "parse", "fmtLong", "fmtShort", "str", "match", "n", "ms", "msAbs", "plural", "name", "isPlural", "require_common", "__commonJSMin", "exports", "module", "setup", "env", "createDebug", "coerce", "disable", "enable", "enabled", "destroy", "key", "selectColor", "namespace", "hash", "i", "prevTime", "enableOverride", "namespacesCache", "enabledCache", "debug", "args", "self", "curr", "ms", "index", "match", "format", "formatter", "val", "extend", "v", "delimiter", "newDebug", "namespaces", "split", "len", "toNamespace", "name", "regexp", "require_browser", "__commonJSMin", "exports", "module", "formatArgs", "save", "load", "useColors", "localstorage", "warned", "m", "args", "c", "index", "lastC", "match", "namespaces", "r", "formatters", "v", "error", "defaultIconDimensions", "defaultIconTransformations", "defaultIconProps", "defaultExtendedIconProps", "defaultIconSizeCustomisations", "defaultIconCustomisations", "defaultIconTransformations", "matchIconName", "stringToIcon", "value", "validate", "allowSimpleName", "provider", "colonSeparated", "name2", "prefix", "result", "validateIconName", "name", "dashSeparated", "icon", "mergeIconTransformations", "obj1", "obj2", "result", "rotate", "mergeIconData", "parent", "child", "result", "mergeIconTransformations", "key", "defaultExtendedIconProps", "defaultIconTransformations", "getIconsTree", "data", "names", "icons", "aliases", "resolved", "resolve", "name", "parent", "value", "internalGetIconData", "data", "name", "tree", "icons", "aliases", "currentProps", "parse", "name2", "mergeIconData", "getIconData", "getIconsTree", "unitsSplit", "unitsTest", "calculateSize", "size", "ratio", "precision", "oldParts", "newParts", "code", "isNumber", "num", "splitSVGDefs", "content", "tag", "defs", "index", "start", "end", "endEnd", "mergeDefsAndContent", "wrapSVGContent", "body", "split", "isUnsetKeyword", "value", "iconToSVG", "icon", "customisations", "fullIcon", "defaultIconProps", "fullCustomisations", "defaultIconCustomisations", "box", "body", "props", "transformations", "hFlip", "vFlip", "rotation", "tempValue", "wrapSVGContent", "customisationsWidth", "customisationsHeight", "boxWidth", "boxHeight", "width", "height", "calculateSize", "attributes", "setAttr", "prop", "viewBox", "regex", "randomPrefix", "counter", "replaceIDs", "body", "prefix", "ids", "match", "suffix", "id", "newID", "escapedID", "iconToHTML", "body", "attributes", "renderAttribsHTML", "attr", "import_debug", "unknownIcon", "iconsStore", "loaderStore", "registerIconPacks", "__name", "iconLoaders", "iconLoader", "log", "getRegisteredIconData", "iconName", "fallbackPrefix", "data", "stringToIcon", "prefix", "icons", "loader", "e", "iconData", "getIconData", "getIconSVG", "customisations", "renderData", "iconToSVG", "iconToHTML", "replaceIDs"] +} diff --git a/docs/_site/public/chunk-BIJFJY5F.min.js b/docs/_site/public/chunk-BIJFJY5F.min.js new file mode 100644 index 0000000..13742bf --- /dev/null +++ b/docs/_site/public/chunk-BIJFJY5F.min.js @@ -0,0 +1,126 @@ +import{A as ie,B as Ys,C as Ze,D as $e,G as sc,I as je,L as ae,M as Kt,O as vi,R as an,S as ac,a as ce,b as mt,c as ke,d as ue,e as ee,g as gt,i as sn,j as Vt,k as yt,l as fe,m as Ot,n as k,o as Oe,p as Re,q as Tt,r as Ie,s as R,t as Ne,w as ic,x as I,y as Se,z as te}from"./chunk-U4DUTLYF.min.js";import{d as b}from"./chunk-IQQ46AC6.min.js";import{M as Xs,d as nc,e as it,z as pe}from"./chunk-CXRPJJJE.min.js";import{a as Ai,b as jt,c as U,d as rc}from"./chunk-OSRY5VT3.min.js";var _l=Ai(Cl=>{"use strict";Object.defineProperty(Cl,"__esModule",{value:!0});var Nl;function Sl(){if(Nl===void 0)throw new Error("No runtime abstraction layer installed");return Nl}(function(r){function e(t){if(t===void 0)throw new Error("No runtime abstraction layer provided");Nl=t}r.install=e})(Sl||(Sl={}));Cl.default=Sl});var ad=Ai(_e=>{"use strict";Object.defineProperty(_e,"__esModule",{value:!0});_e.stringArray=_e.array=_e.func=_e.error=_e.number=_e.string=_e.boolean=void 0;function ym(r){return r===!0||r===!1}_e.boolean=ym;function id(r){return typeof r=="string"||r instanceof String}_e.string=id;function Tm(r){return typeof r=="number"||r instanceof Number}_e.number=Tm;function xm(r){return r instanceof Error}_e.error=xm;function Rm(r){return typeof r=="function"}_e.func=Rm;function sd(r){return Array.isArray(r)}_e.array=sd;function Em(r){return sd(r)&&r.every(e=>id(e))}_e.stringArray=Em});var Ll=Ai(Yr=>{"use strict";Object.defineProperty(Yr,"__esModule",{value:!0});Yr.Emitter=Yr.Event=void 0;var Am=_l(),od;(function(r){let e={dispose(){}};r.None=function(){return e}})(od||(Yr.Event=od={}));var wl=class{add(e,t=null,n){this._callbacks||(this._callbacks=[],this._contexts=[]),this._callbacks.push(e),this._contexts.push(t),Array.isArray(n)&&n.push({dispose:()=>this.remove(e,t)})}remove(e,t=null){if(!this._callbacks)return;let n=!1;for(let i=0,s=this._callbacks.length;i{this._callbacks||(this._callbacks=new wl),this._options&&this._options.onFirstListenerAdd&&this._callbacks.isEmpty()&&this._options.onFirstListenerAdd(this),this._callbacks.add(e,t);let i={dispose:()=>{this._callbacks&&(this._callbacks.remove(e,t),i.dispose=r._noop,this._options&&this._options.onLastListenerRemove&&this._callbacks.isEmpty()&&this._options.onLastListenerRemove(this))}};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)}};Yr.Emitter=Ms;Ms._noop=function(){}});var ld=Ai(Jr=>{"use strict";Object.defineProperty(Jr,"__esModule",{value:!0});Jr.CancellationTokenSource=Jr.CancellationToken=void 0;var vm=_l(),km=ad(),Ol=Ll(),Ds;(function(r){r.None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:Ol.Event.None}),r.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:Ol.Event.None});function e(t){let n=t;return n&&(n===r.None||n===r.Cancelled||km.boolean(n.isCancellationRequested)&&!!n.onCancellationRequested)}r.is=e})(Ds||(Jr.CancellationToken=Ds={}));var Im=Object.freeze(function(r,e){let t=(0,vm.default)().timer.setTimeout(r.bind(e),0);return{dispose(){t.dispose()}}}),Fs=class{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?Im:(this._emitter||(this._emitter=new Ol.Emitter),this._emitter.event)}dispose(){this._emitter&&(this._emitter.dispose(),this._emitter=void 0)}},$l=class{get token(){return this._token||(this._token=new Fs),this._token}cancel(){this._token?this._token.cancel():this._token=Ds.Cancelled}dispose(){this._token?this._token instanceof Fs&&this._token.dispose():this._token=Ds.None}};Jr.CancellationTokenSource=$l});var he={};jt(he,{AbstractAstReflection:()=>Ht,AbstractCstNode:()=>Vn,AbstractLangiumParser:()=>Kn,AbstractParserErrorMessageProvider:()=>$s,AbstractThreadedAsyncParser:()=>Kl,AstUtils:()=>Di,BiMap:()=>gr,Cancellation:()=>_,CompositeCstNodeImpl:()=>dr,ContextCache:()=>yr,CstNodeBuilder:()=>jn,CstUtils:()=>Ni,DONE_RESULT:()=>Pe,DatatypeSymbol:()=>Os,DefaultAstNodeDescriptionProvider:()=>oi,DefaultAstNodeLocator:()=>ci,DefaultAsyncParser:()=>xi,DefaultCommentProvider:()=>Ti,DefaultConfigurationProvider:()=>ui,DefaultDocumentBuilder:()=>fi,DefaultDocumentValidator:()=>ai,DefaultHydrator:()=>Ei,DefaultIndexManager:()=>di,DefaultJsonSerializer:()=>ni,DefaultLangiumDocumentFactory:()=>qn,DefaultLangiumDocuments:()=>Xn,DefaultLexer:()=>pi,DefaultLinker:()=>Yn,DefaultNameProvider:()=>Jn,DefaultReferenceDescriptionProvider:()=>li,DefaultReferences:()=>Qn,DefaultScopeComputation:()=>Zn,DefaultScopeProvider:()=>ri,DefaultServiceRegistry:()=>ii,DefaultTokenBuilder:()=>pr,DefaultValueConverter:()=>mr,DefaultWorkspaceLock:()=>Ri,DefaultWorkspaceManager:()=>hi,Deferred:()=>Fe,Disposable:()=>Tr,DisposableCache:()=>tn,DocumentCache:()=>Gs,DocumentState:()=>X,DocumentValidator:()=>_t,EMPTY_SCOPE:()=>Sm,EMPTY_STREAM:()=>ln,EmptyFileSystem:()=>Jl,EmptyFileSystemProvider:()=>zs,ErrorWithLocation:()=>Yt,GrammarAST:()=>hn,GrammarUtils:()=>ji,JSDocDocumentationProvider:()=>yi,LangiumCompletionParser:()=>zn,LangiumParser:()=>Hn,LangiumParserErrorMessageProvider:()=>Xr,LeafCstNodeImpl:()=>fr,MapScope:()=>ei,Module:()=>Xl,MultiMap:()=>ft,OperationCancelled:()=>ut,ParserWorker:()=>Hl,Reduction:()=>Er,RegExpUtils:()=>Bi,RootCstNodeImpl:()=>qr,SimpleCache:()=>ti,StreamImpl:()=>Ke,StreamScope:()=>en,TextDocument:()=>Qr,TreeStreamImpl:()=>st,URI:()=>Be,UriUtils:()=>Ue,ValidationCategory:()=>nn,ValidationRegistry:()=>si,ValueConverter:()=>ct,WorkspaceCache:()=>rn,assertUnreachable:()=>Pt,createCompletionParser:()=>kl,createDefaultCoreModule:()=>zl,createDefaultSharedCoreModule:()=>ql,createGrammarConfig:()=>No,createLangiumParser:()=>Il,delayNextTick:()=>bl,diagnosticData:()=>Bs,eagerLoad:()=>Cd,getDiagnosticRange:()=>Td,inject:()=>Hs,interruptAndCheck:()=>ye,isAstNode:()=>se,isAstNodeDescription:()=>Js,isAstNodeWithComment:()=>Dl,isCompositeCstNode:()=>Ve,isIMultiModeLexerDefinition:()=>Ul,isJSDoc:()=>jl,isLeafCstNode:()=>$t,isLinkingError:()=>zt,isNamed:()=>gd,isOperationCancelled:()=>Ut,isReference:()=>Ee,isRootCstNode:()=>on,isTokenTypeArray:()=>xd,isTokenTypeDictionary:()=>Fl,loadGrammarFromJson:()=>Gt,parseJSDoc:()=>Wl,prepareLangiumParser:()=>nd,setInterruptionPeriod:()=>fd,startCancelableOperation:()=>ud,stream:()=>V,toDiagnosticSeverity:()=>Ws});var Ni={};jt(Ni,{DefaultNameRegexp:()=>Ii,RangeComparison:()=>xt,compareRange:()=>lc,findCommentNode:()=>ta,findDeclarationNodeAtOffset:()=>jd,findLeafNodeAtOffset:()=>ra,findLeafNodeBeforeOffset:()=>cc,flattenCst:()=>Wd,getInteriorNodes:()=>Hd,getNextNode:()=>Vd,getPreviousNode:()=>fc,getStartlineNode:()=>Kd,inRange:()=>ea,isChildNode:()=>Zs,isCommentNode:()=>Qs,streamCst:()=>qt,toDocumentSegment:()=>Xt,tokenToRange:()=>Ar});function se(r){return typeof r=="object"&&r!==null&&typeof r.$type=="string"}function Ee(r){return typeof r=="object"&&r!==null&&typeof r.$refText=="string"}function Js(r){return typeof r=="object"&&r!==null&&typeof r.name=="string"&&typeof r.type=="string"&&typeof r.path=="string"}function zt(r){return typeof r=="object"&&r!==null&&se(r.container)&&Ee(r.reference)&&typeof r.message=="string"}var Ht=class{constructor(){this.subtypes={},this.allSubtypes={}}isInstance(e,t){return se(e)&&this.isSubtype(e.$type,t)}isSubtype(e,t){if(e===t)return!0;let n=this.subtypes[e];n||(n=this.subtypes[e]={});let i=n[t];if(i!==void 0)return i;{let s=this.computeIsSubtype(e,t);return n[t]=s,s}}getAllSubTypes(e){let t=this.allSubtypes[e];if(t)return t;{let n=this.getAllTypes(),i=[];for(let s of n)this.isSubtype(s,e)&&i.push(s);return this.allSubtypes[e]=i,i}}};function Ve(r){return typeof r=="object"&&r!==null&&Array.isArray(r.content)}function $t(r){return typeof r=="object"&&r!==null&&typeof r.tokenType=="object"}function on(r){return Ve(r)&&typeof r.fullText=="string"}var Ke=class r{constructor(e,t){this.startFn=e,this.nextFn=t}iterator(){let e={state:this.startFn(),next:()=>this.nextFn(e.state),[Symbol.iterator]:()=>e};return e}[Symbol.iterator](){return this.iterator()}isEmpty(){return!!this.iterator().next().done}count(){let e=this.iterator(),t=0,n=e.next();for(;!n.done;)t++,n=e.next();return t}toArray(){let e=[],t=this.iterator(),n;do n=t.next(),n.value!==void 0&&e.push(n.value);while(!n.done);return e}toSet(){return new Set(this)}toMap(e,t){let n=this.map(i=>[e?e(i):i,t?t(i):i]);return new Map(n)}toString(){return this.join()}concat(e){let t=e[Symbol.iterator]();return new r(()=>({first:this.startFn(),firstDone:!1}),n=>{let i;if(!n.firstDone){do if(i=this.nextFn(n.first),!i.done)return i;while(!i.done);n.firstDone=!0}do if(i=t.next(),!i.done)return i;while(!i.done);return Pe})}join(e=","){let t=this.iterator(),n="",i,s=!1;do i=t.next(),i.done||(s&&(n+=e),n+=Bd(i.value)),s=!0;while(!i.done);return n}indexOf(e,t=0){let n=this.iterator(),i=0,s=n.next();for(;!s.done;){if(i>=t&&s.value===e)return i;s=n.next(),i++}return-1}every(e){let t=this.iterator(),n=t.next();for(;!n.done;){if(!e(n.value))return!1;n=t.next()}return!0}some(e){let t=this.iterator(),n=t.next();for(;!n.done;){if(e(n.value))return!0;n=t.next()}return!1}forEach(e){let t=this.iterator(),n=0,i=t.next();for(;!i.done;)e(i.value,n),i=t.next(),n++}map(e){return new r(this.startFn,t=>{let{done:n,value:i}=this.nextFn(t);return n?Pe:{done:!1,value:e(i)}})}filter(e){return new r(this.startFn,t=>{let n;do if(n=this.nextFn(t),!n.done&&e(n.value))return n;while(!n.done);return Pe})}nonNullable(){return this.filter(e=>e!=null)}reduce(e,t){let n=this.iterator(),i=t,s=n.next();for(;!s.done;)i===void 0?i=s.value:i=e(i,s.value),s=n.next();return i}reduceRight(e,t){return this.recursiveReduce(this.iterator(),e,t)}recursiveReduce(e,t,n){let i=e.next();if(i.done)return n;let s=this.recursiveReduce(e,t,n);return s===void 0?i.value:t(s,i.value)}find(e){let t=this.iterator(),n=t.next();for(;!n.done;){if(e(n.value))return n.value;n=t.next()}}findIndex(e){let t=this.iterator(),n=0,i=t.next();for(;!i.done;){if(e(i.value))return n;i=t.next(),n++}return-1}includes(e){let t=this.iterator(),n=t.next();for(;!n.done;){if(n.value===e)return!0;n=t.next()}return!1}flatMap(e){return new r(()=>({this:this.startFn()}),t=>{do{if(t.iterator){let s=t.iterator.next();if(s.done)t.iterator=void 0;else return s}let{done:n,value:i}=this.nextFn(t.this);if(!n){let s=e(i);if(ki(s))t.iterator=s[Symbol.iterator]();else return{done:!1,value:s}}}while(t.iterator);return Pe})}flat(e){if(e===void 0&&(e=1),e<=0)return this;let t=e>1?this.flat(e-1):this;return new r(()=>({this:t.startFn()}),n=>{do{if(n.iterator){let a=n.iterator.next();if(a.done)n.iterator=void 0;else return a}let{done:i,value:s}=t.nextFn(n.this);if(!i)if(ki(s))n.iterator=s[Symbol.iterator]();else return{done:!1,value:s}}while(n.iterator);return Pe})}head(){let t=this.iterator().next();if(!t.done)return t.value}tail(e=1){return new r(()=>{let t=this.startFn();for(let n=0;n({size:0,state:this.startFn()}),t=>(t.size++,t.size>e?Pe:this.nextFn(t.state)))}distinct(e){let t=new Set;return this.filter(n=>{let i=e?e(n):n;return t.has(i)?!1:(t.add(i),!0)})}exclude(e,t){let n=new Set;for(let i of e){let s=t?t(i):i;n.add(s)}return this.filter(i=>{let s=t?t(i):i;return!n.has(s)})}};function Bd(r){return typeof r=="string"?r:typeof r>"u"?"undefined":typeof r.toString=="function"?r.toString():Object.prototype.toString.call(r)}function ki(r){return!!r&&typeof r[Symbol.iterator]=="function"}var ln=new Ke(()=>{},()=>Pe),Pe=Object.freeze({done:!0,value:void 0});function V(...r){if(r.length===1){let e=r[0];if(e instanceof Ke)return e;if(ki(e))return new Ke(()=>e[Symbol.iterator](),t=>t.next());if(typeof e.length=="number")return new Ke(()=>({index:0}),t=>t.index1?new Ke(()=>({collIndex:0,arrIndex:0}),e=>{do{if(e.iterator){let t=e.iterator.next();if(!t.done)return t;e.iterator=void 0}if(e.array){if(e.arrIndex({iterators:n?.includeRoot?[[e][Symbol.iterator]()]:[t(e)[Symbol.iterator]()],pruned:!1}),i=>{for(i.pruned&&(i.iterators.pop(),i.pruned=!1);i.iterators.length>0;){let a=i.iterators[i.iterators.length-1].next();if(a.done)i.iterators.pop();else return i.iterators.push(t(a.value)[Symbol.iterator]()),a}return Pe})}iterator(){let e={state:this.startFn(),next:()=>this.nextFn(e.state),prune:()=>{e.state.pruned=!0},[Symbol.iterator]:()=>e};return e}},Er;(function(r){function e(s){return s.reduce((a,o)=>a+o,0)}r.sum=e;function t(s){return s.reduce((a,o)=>a*o,0)}r.product=t;function n(s){return s.reduce((a,o)=>Math.min(a,o))}r.min=n;function i(s){return s.reduce((a,o)=>Math.max(a,o))}r.max=i})(Er||(Er={}));function qt(r){return new st(r,e=>Ve(e)?e.content:[],{includeRoot:!0})}function Wd(r){return qt(r).filter($t)}function Zs(r,e){for(;r.container;)if(r=r.container,r===e)return!0;return!1}function Ar(r){return{start:{character:r.startColumn-1,line:r.startLine-1},end:{character:r.endColumn,line:r.endLine-1}}}function Xt(r){if(!r)return;let{offset:e,end:t,range:n}=r;return{range:n,offset:e,end:t,length:t-e}}var xt;(function(r){r[r.Before=0]="Before",r[r.After=1]="After",r[r.OverlapFront=2]="OverlapFront",r[r.OverlapBack=3]="OverlapBack",r[r.Inside=4]="Inside"})(xt||(xt={}));function lc(r,e){if(r.end.linee.end.line||r.start.line===e.end.line&&r.start.character>e.end.character)return xt.After;let t=r.start.line>e.start.line||r.start.line===e.start.line&&r.start.character>=e.start.character,n=r.end.linext.After}var Ii=/^[\w\p{L}]$/u;function jd(r,e,t=Ii){if(r){if(e>0){let n=e-r.offset,i=r.text.charAt(n);t.test(i)||e--}return ra(r,e)}}function ta(r,e){if(r){let t=fc(r,!0);if(t&&Qs(t,e))return t;if(on(r)){let n=r.content.findIndex(i=>!i.hidden);for(let i=n-1;i>=0;i--){let s=r.content[i];if(Qs(s,e))return s}}}}function Qs(r,e){return $t(r)&&e.includes(r.tokenType.name)}function ra(r,e){if($t(r))return r;if(Ve(r)){let t=uc(r,e,!1);if(t)return ra(t,e)}}function cc(r,e){if($t(r))return r;if(Ve(r)){let t=uc(r,e,!0);if(t)return cc(t,e)}}function uc(r,e,t){let n=0,i=r.content.length-1,s;for(;n<=i;){let a=Math.floor((n+i)/2),o=r.content[a];if(o.offset<=e&&o.end>e)return o;o.end<=e?(s=t?o:void 0,n=a+1):i=a-1}return s}function fc(r,e=!0){for(;r.container;){let t=r.container,n=t.content.indexOf(r);for(;n>0;){n--;let i=t.content[n];if(e||!i.hidden)return i}r=t}}function Vd(r,e=!0){for(;r.container;){let t=r.container,n=t.content.indexOf(r),i=t.content.length-1;for(;nAo,findNameAssignment:()=>Wi,findNodeForKeyword:()=>Ro,findNodeForProperty:()=>xn,findNodesForKeyword:()=>ph,findNodesForKeywordInternal:()=>Eo,findNodesForProperty:()=>To,getActionAtElement:()=>Ic,getActionType:()=>Sc,getAllReachableRules:()=>Tn,getCrossReferenceTerminal:()=>go,getEntryRule:()=>Ec,getExplicitRuleType:()=>vo,getHiddenRules:()=>Ac,getRuleType:()=>ko,getTypeName:()=>nr,isArrayCardinality:()=>gh,isArrayOperator:()=>yh,isCommentTerminal:()=>yo,isDataType:()=>Th,isDataTypeRule:()=>Rn,isOptionalCardinality:()=>mh,terminalRegex:()=>Nr});var Yt=class extends Error{constructor(e,t){super(e?`${t} at ${e.range.start.line}:${e.range.start.character}`:t)}};function Pt(r){throw new Error("Error! The input value was not handled.")}var hn={};jt(hn,{AbstractElement:()=>ia,AbstractRule:()=>cn,AbstractType:()=>un,Action:()=>Oa,Alternatives:()=>$a,ArrayLiteral:()=>sa,ArrayType:()=>aa,Assignment:()=>Pa,BooleanLiteral:()=>la,CharacterRange:()=>ba,Condition:()=>Si,Conjunction:()=>ua,CrossReference:()=>Da,Disjunction:()=>da,EndOfFile:()=>Fa,Grammar:()=>pa,GrammarImport:()=>hc,Group:()=>Ga,InferredType:()=>ma,Interface:()=>ga,Keyword:()=>Ba,LangiumGrammarAstReflection:()=>vr,LangiumGrammarTerminals:()=>qd,NamedArgument:()=>pc,NegatedToken:()=>Wa,Negation:()=>ya,NumberLiteral:()=>xa,Parameter:()=>Ra,ParameterReference:()=>Ea,ParserRule:()=>va,ReferenceType:()=>ka,RegexToken:()=>Va,ReturnType:()=>mc,RuleCall:()=>Ha,SimpleType:()=>Sa,StringLiteral:()=>Ca,TerminalAlternatives:()=>za,TerminalGroup:()=>Xa,TerminalRule:()=>_i,TerminalRuleCall:()=>Ja,Type:()=>_a,TypeAttribute:()=>gc,TypeDefinition:()=>na,UnionType:()=>wa,UnorderedGroup:()=>Qa,UntilToken:()=>Za,ValueLiteral:()=>Ci,Wildcard:()=>to,isAbstractElement:()=>fn,isAbstractRule:()=>Xd,isAbstractType:()=>Yd,isAction:()=>Rt,isAlternatives:()=>$i,isArrayLiteral:()=>th,isArrayType:()=>oa,isAssignment:()=>et,isBooleanLiteral:()=>ca,isCharacterRange:()=>Ma,isCondition:()=>Jd,isConjunction:()=>fa,isCrossReference:()=>Jt,isDisjunction:()=>ha,isEndOfFile:()=>Ua,isFeatureName:()=>Qd,isGrammar:()=>rh,isGrammarImport:()=>nh,isGroup:()=>bt,isInferredType:()=>wi,isInterface:()=>Li,isKeyword:()=>Ye,isNamedArgument:()=>ih,isNegatedToken:()=>ja,isNegation:()=>Ta,isNumberLiteral:()=>sh,isParameter:()=>ah,isParameterReference:()=>Aa,isParserRule:()=>Ce,isPrimitiveType:()=>dc,isReferenceType:()=>Ia,isRegexToken:()=>Ka,isReturnType:()=>Na,isRuleCall:()=>tt,isSimpleType:()=>Oi,isStringLiteral:()=>oh,isTerminalAlternatives:()=>qa,isTerminalGroup:()=>Ya,isTerminalRule:()=>Xe,isTerminalRuleCall:()=>Pi,isType:()=>dn,isTypeAttribute:()=>lh,isTypeDefinition:()=>Zd,isUnionType:()=>La,isUnorderedGroup:()=>bi,isUntilToken:()=>eo,isValueLiteral:()=>eh,isWildcard:()=>ro,reflection:()=>w});var qd={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]*/},cn="AbstractRule";function Xd(r){return w.isInstance(r,cn)}var un="AbstractType";function Yd(r){return w.isInstance(r,un)}var Si="Condition";function Jd(r){return w.isInstance(r,Si)}function Qd(r){return dc(r)||r==="current"||r==="entry"||r==="extends"||r==="false"||r==="fragment"||r==="grammar"||r==="hidden"||r==="import"||r==="interface"||r==="returns"||r==="terminal"||r==="true"||r==="type"||r==="infer"||r==="infers"||r==="with"||typeof r=="string"&&/\^?[_a-zA-Z][\w_]*/.test(r)}function dc(r){return r==="string"||r==="number"||r==="boolean"||r==="Date"||r==="bigint"}var na="TypeDefinition";function Zd(r){return w.isInstance(r,na)}var Ci="ValueLiteral";function eh(r){return w.isInstance(r,Ci)}var ia="AbstractElement";function fn(r){return w.isInstance(r,ia)}var sa="ArrayLiteral";function th(r){return w.isInstance(r,sa)}var aa="ArrayType";function oa(r){return w.isInstance(r,aa)}var la="BooleanLiteral";function ca(r){return w.isInstance(r,la)}var ua="Conjunction";function fa(r){return w.isInstance(r,ua)}var da="Disjunction";function ha(r){return w.isInstance(r,da)}var pa="Grammar";function rh(r){return w.isInstance(r,pa)}var hc="GrammarImport";function nh(r){return w.isInstance(r,hc)}var ma="InferredType";function wi(r){return w.isInstance(r,ma)}var ga="Interface";function Li(r){return w.isInstance(r,ga)}var pc="NamedArgument";function ih(r){return w.isInstance(r,pc)}var ya="Negation";function Ta(r){return w.isInstance(r,ya)}var xa="NumberLiteral";function sh(r){return w.isInstance(r,xa)}var Ra="Parameter";function ah(r){return w.isInstance(r,Ra)}var Ea="ParameterReference";function Aa(r){return w.isInstance(r,Ea)}var va="ParserRule";function Ce(r){return w.isInstance(r,va)}var ka="ReferenceType";function Ia(r){return w.isInstance(r,ka)}var mc="ReturnType";function Na(r){return w.isInstance(r,mc)}var Sa="SimpleType";function Oi(r){return w.isInstance(r,Sa)}var Ca="StringLiteral";function oh(r){return w.isInstance(r,Ca)}var _i="TerminalRule";function Xe(r){return w.isInstance(r,_i)}var _a="Type";function dn(r){return w.isInstance(r,_a)}var gc="TypeAttribute";function lh(r){return w.isInstance(r,gc)}var wa="UnionType";function La(r){return w.isInstance(r,wa)}var Oa="Action";function Rt(r){return w.isInstance(r,Oa)}var $a="Alternatives";function $i(r){return w.isInstance(r,$a)}var Pa="Assignment";function et(r){return w.isInstance(r,Pa)}var ba="CharacterRange";function Ma(r){return w.isInstance(r,ba)}var Da="CrossReference";function Jt(r){return w.isInstance(r,Da)}var Fa="EndOfFile";function Ua(r){return w.isInstance(r,Fa)}var Ga="Group";function bt(r){return w.isInstance(r,Ga)}var Ba="Keyword";function Ye(r){return w.isInstance(r,Ba)}var Wa="NegatedToken";function ja(r){return w.isInstance(r,Wa)}var Va="RegexToken";function Ka(r){return w.isInstance(r,Va)}var Ha="RuleCall";function tt(r){return w.isInstance(r,Ha)}var za="TerminalAlternatives";function qa(r){return w.isInstance(r,za)}var Xa="TerminalGroup";function Ya(r){return w.isInstance(r,Xa)}var Ja="TerminalRuleCall";function Pi(r){return w.isInstance(r,Ja)}var Qa="UnorderedGroup";function bi(r){return w.isInstance(r,Qa)}var Za="UntilToken";function eo(r){return w.isInstance(r,Za)}var to="Wildcard";function ro(r){return w.isInstance(r,to)}var vr=class extends Ht{getAllTypes(){return["AbstractElement","AbstractRule","AbstractType","Action","Alternatives","ArrayLiteral","ArrayType","Assignment","BooleanLiteral","CharacterRange","Condition","Conjunction","CrossReference","Disjunction","EndOfFile","Grammar","GrammarImport","Group","InferredType","Interface","Keyword","NamedArgument","NegatedToken","Negation","NumberLiteral","Parameter","ParameterReference","ParserRule","ReferenceType","RegexToken","ReturnType","RuleCall","SimpleType","StringLiteral","TerminalAlternatives","TerminalGroup","TerminalRule","TerminalRuleCall","Type","TypeAttribute","TypeDefinition","UnionType","UnorderedGroup","UntilToken","ValueLiteral","Wildcard"]}computeIsSubtype(e,t){switch(e){case Oa:case $a:case Pa:case ba:case Da:case Fa:case Ga:case Ba:case Wa:case Va:case Ha:case za:case Xa:case Ja:case Qa:case Za:case to:return this.isSubtype(ia,t);case sa:case xa:case Ca:return this.isSubtype(Ci,t);case aa:case ka:case Sa:case wa:return this.isSubtype(na,t);case la:return this.isSubtype(Si,t)||this.isSubtype(Ci,t);case ua:case da:case ya:case Ea:return this.isSubtype(Si,t);case ma:case ga:case _a:return this.isSubtype(un,t);case va:return this.isSubtype(cn,t)||this.isSubtype(un,t);case _i:return this.isSubtype(cn,t);default:return!1}}getReferenceType(e){let t=`${e.container.$type}:${e.property}`;switch(t){case"Action:type":case"CrossReference:type":case"Interface:superTypes":case"ParserRule:returnType":case"SimpleType:typeRef":return un;case"Grammar:hiddenTokens":case"ParserRule:hiddenTokens":case"RuleCall:rule":return cn;case"Grammar:usedGrammars":return pa;case"NamedArgument:parameter":case"ParameterReference:parameter":return Ra;case"TerminalRuleCall:rule":return _i;default:throw new Error(`${t} is not a valid reference id.`)}}getTypeMetaData(e){switch(e){case"AbstractElement":return{name:"AbstractElement",properties:[{name:"cardinality"},{name:"lookahead"}]};case"ArrayLiteral":return{name:"ArrayLiteral",properties:[{name:"elements",defaultValue:[]}]};case"ArrayType":return{name:"ArrayType",properties:[{name:"elementType"}]};case"BooleanLiteral":return{name:"BooleanLiteral",properties:[{name:"true",defaultValue:!1}]};case"Conjunction":return{name:"Conjunction",properties:[{name:"left"},{name:"right"}]};case"Disjunction":return{name:"Disjunction",properties:[{name:"left"},{name:"right"}]};case"Grammar":return{name:"Grammar",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"GrammarImport":return{name:"GrammarImport",properties:[{name:"path"}]};case"InferredType":return{name:"InferredType",properties:[{name:"name"}]};case"Interface":return{name:"Interface",properties:[{name:"attributes",defaultValue:[]},{name:"name"},{name:"superTypes",defaultValue:[]}]};case"NamedArgument":return{name:"NamedArgument",properties:[{name:"calledByName",defaultValue:!1},{name:"parameter"},{name:"value"}]};case"Negation":return{name:"Negation",properties:[{name:"value"}]};case"NumberLiteral":return{name:"NumberLiteral",properties:[{name:"value"}]};case"Parameter":return{name:"Parameter",properties:[{name:"name"}]};case"ParameterReference":return{name:"ParameterReference",properties:[{name:"parameter"}]};case"ParserRule":return{name:"ParserRule",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"ReferenceType":return{name:"ReferenceType",properties:[{name:"referenceType"}]};case"ReturnType":return{name:"ReturnType",properties:[{name:"name"}]};case"SimpleType":return{name:"SimpleType",properties:[{name:"primitiveType"},{name:"stringType"},{name:"typeRef"}]};case"StringLiteral":return{name:"StringLiteral",properties:[{name:"value"}]};case"TerminalRule":return{name:"TerminalRule",properties:[{name:"definition"},{name:"fragment",defaultValue:!1},{name:"hidden",defaultValue:!1},{name:"name"},{name:"type"}]};case"Type":return{name:"Type",properties:[{name:"name"},{name:"type"}]};case"TypeAttribute":return{name:"TypeAttribute",properties:[{name:"defaultValue"},{name:"isOptional",defaultValue:!1},{name:"name"},{name:"type"}]};case"UnionType":return{name:"UnionType",properties:[{name:"types",defaultValue:[]}]};case"Action":return{name:"Action",properties:[{name:"cardinality"},{name:"feature"},{name:"inferredType"},{name:"lookahead"},{name:"operator"},{name:"type"}]};case"Alternatives":return{name:"Alternatives",properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case"Assignment":return{name:"Assignment",properties:[{name:"cardinality"},{name:"feature"},{name:"lookahead"},{name:"operator"},{name:"terminal"}]};case"CharacterRange":return{name:"CharacterRange",properties:[{name:"cardinality"},{name:"left"},{name:"lookahead"},{name:"right"}]};case"CrossReference":return{name:"CrossReference",properties:[{name:"cardinality"},{name:"deprecatedSyntax",defaultValue:!1},{name:"lookahead"},{name:"terminal"},{name:"type"}]};case"EndOfFile":return{name:"EndOfFile",properties:[{name:"cardinality"},{name:"lookahead"}]};case"Group":return{name:"Group",properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"guardCondition"},{name:"lookahead"}]};case"Keyword":return{name:"Keyword",properties:[{name:"cardinality"},{name:"lookahead"},{name:"value"}]};case"NegatedToken":return{name:"NegatedToken",properties:[{name:"cardinality"},{name:"lookahead"},{name:"terminal"}]};case"RegexToken":return{name:"RegexToken",properties:[{name:"cardinality"},{name:"lookahead"},{name:"regex"}]};case"RuleCall":return{name:"RuleCall",properties:[{name:"arguments",defaultValue:[]},{name:"cardinality"},{name:"lookahead"},{name:"rule"}]};case"TerminalAlternatives":return{name:"TerminalAlternatives",properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case"TerminalGroup":return{name:"TerminalGroup",properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case"TerminalRuleCall":return{name:"TerminalRuleCall",properties:[{name:"cardinality"},{name:"lookahead"},{name:"rule"}]};case"UnorderedGroup":return{name:"UnorderedGroup",properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case"UntilToken":return{name:"UntilToken",properties:[{name:"cardinality"},{name:"lookahead"},{name:"terminal"}]};case"Wildcard":return{name:"Wildcard",properties:[{name:"cardinality"},{name:"lookahead"}]};default:return{name:e,properties:[]}}}},w=new vr;var Di={};jt(Di,{assignMandatoryProperties:()=>so,copyAstNode:()=>io,findLocalReferences:()=>uh,findRootNode:()=>yc,getContainerOfType:()=>Qt,getDocument:()=>me,hasContainerOfType:()=>ch,linkContentToContainer:()=>Mi,streamAllContents:()=>at,streamAst:()=>Je,streamContents:()=>pn,streamReferences:()=>kr});function Mi(r){for(let[e,t]of Object.entries(r))e.startsWith("$")||(Array.isArray(t)?t.forEach((n,i)=>{se(n)&&(n.$container=r,n.$containerProperty=e,n.$containerIndex=i)}):se(t)&&(t.$container=r,t.$containerProperty=e))}function Qt(r,e){let t=r;for(;t;){if(e(t))return t;t=t.$container}}function ch(r,e){let t=r;for(;t;){if(e(t))return!0;t=t.$container}return!1}function me(r){let t=yc(r).$document;if(!t)throw new Error("AST node has no document.");return t}function yc(r){for(;r.$container;)r=r.$container;return r}function pn(r,e){if(!r)throw new Error("Node must be an AstNode.");let t=e?.range;return new Ke(()=>({keys:Object.keys(r),keyIndex:0,arrayIndex:0}),n=>{for(;n.keyIndexpn(t,e))}function Je(r,e){if(r){if(e?.range&&!no(r,e.range))return new st(r,()=>[])}else throw new Error("Root node must be an AstNode.");return new st(r,t=>pn(t,e),{includeRoot:!0})}function no(r,e){var t;if(!e)return!0;let n=(t=r.$cstNode)===null||t===void 0?void 0:t.range;return n?ea(n,e):!1}function kr(r){return new Ke(()=>({keys:Object.keys(r),keyIndex:0,arrayIndex:0}),e=>{for(;e.keyIndex{kr(n).forEach(i=>{i.reference.ref===r&&t.push(i.reference)})}),V(t)}function so(r,e){let t=r.getTypeMetaData(e.$type),n=e;for(let i of t.properties)i.defaultValue!==void 0&&n[i.name]===void 0&&(n[i.name]=Tc(i.defaultValue))}function Tc(r){return Array.isArray(r)?[...r.map(Tc)]:r}function io(r,e){let t={$type:r.$type};for(let[n,i]of Object.entries(r))if(!n.startsWith("$"))if(se(i))t[n]=io(i,e);else if(Ee(i))t[n]=e(t,n,i.$refNode,i.$refText);else if(Array.isArray(i)){let s=[];for(let a of i)se(a)?s.push(io(a,e)):Ee(a)?s.push(e(t,n,a.$refNode,a.$refText)):s.push(a);t[n]=s}else t[n]=i;return Mi(t),t}var Bi={};jt(Bi,{NEWLINE_REGEXP:()=>co,escapeRegExp:()=>rr,getCaseInsensitivePattern:()=>fo,getTerminalParts:()=>hh,isMultilineComment:()=>uo,isWhitespace:()=>Gi,partialMatches:()=>ho,partialRegExp:()=>Rc});function C(r){return r.charCodeAt(0)}function Fi(r,e){Array.isArray(r)?r.forEach(function(t){e.push(t)}):e.push(r)}function Ir(r,e){if(r[e]===!0)throw"duplicate flag "+e;let t=r[e];r[e]=!0}function Zt(r){if(r===void 0)throw Error("Internal Error - Should never get here!");return!0}function mn(){throw Error("Internal Error - Should never get here!")}function ao(r){return r.type==="Character"}var gn=[];for(let r=C("0");r<=C("9");r++)gn.push(r);var yn=[C("_")].concat(gn);for(let r=C("a");r<=C("z");r++)yn.push(r);for(let r=C("A");r<=C("Z");r++)yn.push(r);var oo=[C(" "),C("\f"),C(` +`),C("\r"),C(" "),C("\v"),C(" "),C("\xA0"),C("\u1680"),C("\u2000"),C("\u2001"),C("\u2002"),C("\u2003"),C("\u2004"),C("\u2005"),C("\u2006"),C("\u2007"),C("\u2008"),C("\u2009"),C("\u200A"),C("\u2028"),C("\u2029"),C("\u202F"),C("\u205F"),C("\u3000"),C("\uFEFF")];var fh=/[0-9a-fA-F]/,Ui=/[0-9]/,dh=/[1-9]/,er=class{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 t=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":Ir(n,"global");break;case"i":Ir(n,"ignoreCase");break;case"m":Ir(n,"multiLine");break;case"u":Ir(n,"unicode");break;case"y":Ir(n,"sticky");break}if(this.idx!==this.input.length)throw Error("Redundant input: "+this.input.substring(this.idx));return{type:"Pattern",flags:n,value:t,loc:this.loc(0)}}disjunction(){let e=[],t=this.idx;for(e.push(this.alternative());this.peekChar()==="|";)this.consumeChar("|"),e.push(this.alternative());return{type:"Disjunction",value:e,loc:this.loc(t)}}alternative(){let e=[],t=this.idx;for(;this.isTerm();)e.push(this.term());return{type:"Alternative",value:e,loc:this.loc(t)}}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 t;switch(this.popChar()){case"=":t="Lookahead";break;case"!":t="NegativeLookahead";break}Zt(t);let n=this.disjunction();return this.consumeChar(")"),{type:t,value:n,loc:this.loc(e)}}return mn()}quantifier(e=!1){let t,n=this.idx;switch(this.popChar()){case"*":t={atLeast:0,atMost:1/0};break;case"+":t={atLeast:1,atMost:1/0};break;case"?":t={atLeast:0,atMost:1};break;case"{":let i=this.integerIncludingZero();switch(this.popChar()){case"}":t={atLeast:i,atMost:i};break;case",":let s;this.isDigit()?(s=this.integerIncludingZero(),t={atLeast:i,atMost:s}):t={atLeast:i,atMost:1/0},this.consumeChar("}");break}if(e===!0&&t===void 0)return;Zt(t);break}if(!(e===!0&&t===void 0)&&Zt(t))return this.peekChar(0)==="?"?(this.consumeChar("?"),t.greedy=!1):t.greedy=!0,t.type="Quantifier",t.loc=this.loc(n),t}atom(){let e,t=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()),Zt(e)?(e.loc=this.loc(t),this.isQuantifier()&&(e.quantifier=this.quantifier()),e):mn()}dotAll(){return this.consumeChar("."),{type:"Set",complement:!0,value:[C(` +`),C("\r"),C("\u2028"),C("\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,t=!1;switch(this.popChar()){case"d":e=gn;break;case"D":e=gn,t=!0;break;case"s":e=oo;break;case"S":e=oo,t=!0;break;case"w":e=yn;break;case"W":e=yn,t=!0;break}return Zt(e)?{type:"Set",value:e,complement:t}:mn()}controlEscapeAtom(){let e;switch(this.popChar()){case"f":e=C("\f");break;case"n":e=C(` +`);break;case"r":e=C("\r");break;case"t":e=C(" ");break;case"v":e=C("\v");break}return Zt(e)?{type:"Character",value:e}:mn()}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:C("\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:C(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:C(e)}}}characterClass(){let e=[],t=!1;for(this.consumeChar("["),this.peekChar(0)==="^"&&(this.consumeChar("^"),t=!0);this.isClassAtom();){let n=this.classAtom(),i=n.type==="Character";if(ao(n)&&this.isRangeDash()){this.consumeChar("-");let s=this.classAtom(),a=s.type==="Character";if(ao(s)){if(s.value=this.input.length)throw Error("Unexpected end of input");this.idx++}loc(e){return{begin:e,end:this.idx}}};var ot=class{visitChildren(e){for(let t in e){let n=e[t];e.hasOwnProperty(t)&&(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 co=/\r?\n/gm,xc=new er,lo=class extends ot{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 t=String.fromCharCode(e.value);if(!this.multiline&&t===` +`&&(this.multiline=!0),e.quantifier)this.isStarting=!1,this.endRegexpStack=[];else{let n=rr(t);this.endRegexpStack.push(n),this.isStarting&&(this.startRegexp+=n)}}visitSet(e){if(!this.multiline){let t=this.regex.substring(e.loc.begin,e.loc.end),n=new RegExp(t);this.multiline=!!` +`.match(n)}if(e.quantifier)this.isStarting=!1,this.endRegexpStack=[];else{let t=this.regex.substring(e.loc.begin,e.loc.end);this.endRegexpStack.push(t),this.isStarting&&(this.startRegexp+=t)}}visitChildren(e){e.type==="Group"&&e.quantifier||super.visitChildren(e)}},tr=new lo;function hh(r){try{typeof r!="string"&&(r=r.source),r=`/${r}/`;let e=xc.pattern(r),t=[];for(let n of e.value.value)tr.reset(r),tr.visit(n),t.push({start:tr.startRegexp,end:tr.endRegex});return t}catch{return[]}}function uo(r){try{return typeof r=="string"&&(r=new RegExp(r)),r=r.toString(),tr.reset(r),tr.visit(xc.pattern(r)),tr.multiline}catch{return!1}}function Gi(r){return(typeof r=="string"?new RegExp(r):r).test(" ")}function rr(r){return r.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function fo(r){return Array.prototype.map.call(r,e=>/\w/.test(e)?`[${e.toLowerCase()}${e.toUpperCase()}]`:rr(e)).join("")}function ho(r,e){let t=Rc(r),n=e.match(t);return!!n&&n[0].length>0}function Rc(r){typeof r=="string"&&(r=new RegExp(r));let e=r,t=r.source,n=0;function i(){let s="",a;function o(c){s+=t.substr(n,c),n+=c}function l(c){s+="(?:"+t.substr(n,c)+"|$)",n+=c}for(;n",n)-n+1);break;default:l(2);break}break;case"[":a=/\[(?:\\.|.)*?\]/g,a.lastIndex=n,a=a.exec(t)||[],l(a[0].length);break;case"|":case"^":case"$":case"*":case"+":case"?":o(1);break;case"{":a=/\{\d+,?\d*\}/g,a.lastIndex=n,a=a.exec(t),a?o(a[0].length):l(1);break;case"(":if(t[n+1]==="?")switch(t[n+2]){case":":s+="(?:",n+=3,s+=i()+"|$)";break;case"=":s+="(?=",n+=3,s+=i()+")";break;case"!":a=n,n+=3,i(),s+=t.substr(a,n-a);break;case"<":switch(t[n+3]){case"=":case"!":a=n,n+=4,i(),s+=t.substr(a,n-a);break;default:o(t.indexOf(">",n)-n+1),s+=i()+"|$)";break}break}else o(1),s+=i()+"|$)";break;case")":return++n,s;default:l(1);break}return s}return new RegExp(i(),r.flags)}function Ec(r){return r.rules.find(e=>Ce(e)&&e.entry)}function Ac(r){return r.rules.filter(e=>Xe(e)&&e.hidden)}function Tn(r,e){let t=new Set,n=Ec(r);if(!n)return new Set(r.rules);let i=[n].concat(Ac(r));for(let a of i)vc(a,t,e);let s=new Set;for(let a of r.rules)(t.has(a.name)||Xe(a)&&a.hidden)&&s.add(a);return s}function vc(r,e,t){e.add(r.name),at(r).forEach(n=>{if(tt(n)||t&&Pi(n)){let i=n.rule.ref;i&&!e.has(i.name)&&vc(i,e,t)}})}function go(r){if(r.terminal)return r.terminal;if(r.type.ref){let e=Wi(r.type.ref);return e?.terminal}}function yo(r){return r.hidden&&!Nr(r).test(" ")}function To(r,e){return!r||!e?[]:xo(r,e,r.astNode,!0)}function xn(r,e,t){if(!r||!e)return;let n=xo(r,e,r.astNode,!0);if(n.length!==0)return t!==void 0?t=Math.max(0,Math.min(t,n.length-1)):t=0,n[t]}function xo(r,e,t,n){if(!n){let i=Qt(r.grammarSource,et);if(i&&i.feature===e)return[r]}return Ve(r)&&r.astNode===t?r.content.flatMap(i=>xo(i,e,t,!1)):[]}function ph(r,e){return r?Eo(r,e,r?.astNode):[]}function Ro(r,e,t){if(!r)return;let n=Eo(r,e,r?.astNode);if(n.length!==0)return t!==void 0?t=Math.max(0,Math.min(t,n.length-1)):t=0,n[t]}function Eo(r,e,t){if(r.astNode!==t)return[];if(Ye(r.grammarSource)&&r.grammarSource.value===e)return[r];let n=qt(r).iterator(),i,s=[];do if(i=n.next(),!i.done){let a=i.value;a.astNode===t?Ye(a.grammarSource)&&a.grammarSource.value===e&&s.push(a):n.prune()}while(!i.done);return s}function Ao(r){var e;let t=r.astNode;for(;t===((e=r.container)===null||e===void 0?void 0:e.astNode);){let n=Qt(r.grammarSource,et);if(n)return n;r=r.container}}function Wi(r){let e=r;return wi(e)&&(Rt(e.$container)?e=e.$container.$container:Ce(e.$container)?e=e.$container:Pt(e.$container)),kc(r,e,new Map)}function kc(r,e,t){var n;function i(s,a){let o;return Qt(s,et)||(o=kc(a,a,t)),t.set(r,o),o}if(t.has(r))return t.get(r);t.set(r,void 0);for(let s of at(e)){if(et(s)&&s.feature.toLowerCase()==="name")return t.set(r,s),s;if(tt(s)&&Ce(s.rule.ref))return i(s,s.rule.ref);if(Oi(s)&&(!((n=s.typeRef)===null||n===void 0)&&n.ref))return i(s,s.typeRef.ref)}}function Ic(r){let e=r.$container;if(bt(e)){let t=e.elements,n=t.indexOf(r);for(let i=n-1;i>=0;i--){let s=t[i];if(Rt(s))return s;{let a=at(t[i]).find(Rt);if(a)return a}}}if(fn(e))return Ic(e)}function mh(r,e){return r==="?"||r==="*"||bt(e)&&!!e.guardCondition}function gh(r){return r==="*"||r==="+"}function yh(r){return r==="+="}function Rn(r){return Nc(r,new Set)}function Nc(r,e){if(e.has(r))return!0;e.add(r);for(let t of at(r))if(tt(t)){if(!t.rule.ref||Ce(t.rule.ref)&&!Nc(t.rule.ref,e))return!1}else{if(et(t))return!1;if(Rt(t))return!1}return!!r.definition}function Th(r){return mo(r.type,new Set)}function mo(r,e){if(e.has(r))return!0;if(e.add(r),oa(r))return!1;if(Ia(r))return!1;if(La(r))return r.types.every(t=>mo(t,e));if(Oi(r)){if(r.primitiveType!==void 0)return!0;if(r.stringType!==void 0)return!0;if(r.typeRef!==void 0){let t=r.typeRef.ref;return dn(t)?mo(t.type,e):!1}else return!1}else return!1}function vo(r){if(r.inferredType)return r.inferredType.name;if(r.dataType)return r.dataType;if(r.returnType){let e=r.returnType.ref;if(e){if(Ce(e))return e.name;if(Li(e)||dn(e))return e.name}}}function nr(r){var e;if(Ce(r))return Rn(r)?r.name:(e=vo(r))!==null&&e!==void 0?e:r.name;if(Li(r)||dn(r)||Na(r))return r.name;if(Rt(r)){let t=Sc(r);if(t)return t}else if(wi(r))return r.name;throw new Error("Cannot get name of Unknown Type")}function Sc(r){var e;if(r.inferredType)return r.inferredType.name;if(!((e=r.type)===null||e===void 0)&&e.ref)return nr(r.type.ref)}function ko(r){var e,t,n;return Xe(r)?(t=(e=r.type)===null||e===void 0?void 0:e.name)!==null&&t!==void 0?t:"string":Rn(r)?r.name:(n=vo(r))!==null&&n!==void 0?n:r.name}function Nr(r){let e={s:!1,i:!1,u:!1},t=Sr(r.definition,e),n=Object.entries(e).filter(([,i])=>i).map(([i])=>i).join("");return new RegExp(t,n)}var Io=/[\s\S]/.source;function Sr(r,e){if(qa(r))return xh(r);if(Ya(r))return Rh(r);if(Ma(r))return vh(r);if(Pi(r)){let t=r.rule.ref;if(!t)throw new Error("Missing rule reference.");return Et(Sr(t.definition),{cardinality:r.cardinality,lookahead:r.lookahead})}else{if(ja(r))return Ah(r);if(eo(r))return Eh(r);if(Ka(r)){let t=r.regex.lastIndexOf("/"),n=r.regex.substring(1,t),i=r.regex.substring(t+1);return e&&(e.i=i.includes("i"),e.s=i.includes("s"),e.u=i.includes("u")),Et(n,{cardinality:r.cardinality,lookahead:r.lookahead,wrap:!1})}else{if(ro(r))return Et(Io,{cardinality:r.cardinality,lookahead:r.lookahead});throw new Error(`Invalid terminal element: ${r?.$type}`)}}}function xh(r){return Et(r.elements.map(e=>Sr(e)).join("|"),{cardinality:r.cardinality,lookahead:r.lookahead})}function Rh(r){return Et(r.elements.map(e=>Sr(e)).join(""),{cardinality:r.cardinality,lookahead:r.lookahead})}function Eh(r){return Et(`${Io}*?${Sr(r.terminal)}`,{cardinality:r.cardinality,lookahead:r.lookahead})}function Ah(r){return Et(`(?!${Sr(r.terminal)})${Io}*?`,{cardinality:r.cardinality,lookahead:r.lookahead})}function vh(r){return r.right?Et(`[${po(r.left)}-${po(r.right)}]`,{cardinality:r.cardinality,lookahead:r.lookahead,wrap:!1}):Et(po(r.left),{cardinality:r.cardinality,lookahead:r.lookahead,wrap:!1})}function po(r){return rr(r.value)}function Et(r,e){var t;return(e.wrap!==!1||e.lookahead)&&(r=`(${(t=e.lookahead)!==null&&t!==void 0?t:""}${r})`),e.cardinality?`${r}${e.cardinality}`:r}function No(r){let e=[],t=r.Grammar;for(let n of t.rules)Xe(n)&&yo(n)&&uo(Nr(n))&&e.push(n.name);return{multilineCommentRules:e,nameRegexp:Ii}}function Cr(r){console&&console.error&&console.error(`Error: ${r}`)}function En(r){console&&console.warn&&console.warn(`Warning: ${r}`)}function An(r){let e=new Date().getTime(),t=r();return{time:new Date().getTime()-e,value:t}}function vn(r){function e(){}e.prototype=r;let t=new e;function n(){return typeof t.bar}return n(),n(),r;(0,eval)(r)}function kh(r){return Ih(r)?r.LABEL:r.name}function Ih(r){return Se(r.LABEL)&&r.LABEL!==""}var He=class{get definition(){return this._definition}set definition(e){this._definition=e}constructor(e){this._definition=e}accept(e){e.visit(this),k(this.definition,t=>{t.accept(e)})}},K=class extends He{constructor(e){super([]),this.idx=1,ke(this,je(e,t=>t!==void 0))}set definition(e){}get definition(){return this.referencedRule!==void 0?this.referencedRule.definition:[]}accept(e){e.visit(this)}},be=class extends He{constructor(e){super(e.definition),this.orgText="",ke(this,je(e,t=>t!==void 0))}},Y=class extends He{constructor(e){super(e.definition),this.ignoreAmbiguities=!1,ke(this,je(e,t=>t!==void 0))}},H=class extends He{constructor(e){super(e.definition),this.idx=1,ke(this,je(e,t=>t!==void 0))}},J=class extends He{constructor(e){super(e.definition),this.idx=1,ke(this,je(e,t=>t!==void 0))}},Q=class extends He{constructor(e){super(e.definition),this.idx=1,ke(this,je(e,t=>t!==void 0))}},D=class extends He{constructor(e){super(e.definition),this.idx=1,ke(this,je(e,t=>t!==void 0))}},z=class extends He{constructor(e){super(e.definition),this.idx=1,ke(this,je(e,t=>t!==void 0))}},q=class extends He{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,ke(this,je(e,t=>t!==void 0))}},M=class{constructor(e){this.idx=1,ke(this,je(e,t=>t!==void 0))}accept(e){e.visit(this)}};function Vi(r){return R(r,_r)}function _r(r){function e(t){return R(t,_r)}if(r instanceof K){let t={type:"NonTerminal",name:r.nonTerminalName,idx:r.idx};return Se(r.label)&&(t.label=r.label),t}else{if(r instanceof Y)return{type:"Alternative",definition:e(r.definition)};if(r instanceof H)return{type:"Option",idx:r.idx,definition:e(r.definition)};if(r instanceof J)return{type:"RepetitionMandatory",idx:r.idx,definition:e(r.definition)};if(r instanceof Q)return{type:"RepetitionMandatoryWithSeparator",idx:r.idx,separator:_r(new M({terminalType:r.separator})),definition:e(r.definition)};if(r instanceof z)return{type:"RepetitionWithSeparator",idx:r.idx,separator:_r(new M({terminalType:r.separator})),definition:e(r.definition)};if(r instanceof D)return{type:"Repetition",idx:r.idx,definition:e(r.definition)};if(r instanceof q)return{type:"Alternation",idx:r.idx,definition:e(r.definition)};if(r instanceof M){let t={type:"Terminal",name:r.terminalType.name,label:kh(r.terminalType),idx:r.idx};Se(r.label)&&(t.terminalLabel=r.label);let n=r.terminalType.PATTERN;return r.terminalType.PATTERN&&(t.pattern=Ze(n)?n.source:n),t}else{if(r instanceof be)return{type:"Rule",name:r.name,orgText:r.orgText,definition:e(r.definition)};throw Error("non exhaustive match")}}}var Me=class{visit(e){let t=e;switch(t.constructor){case K:return this.visitNonTerminal(t);case Y:return this.visitAlternative(t);case H:return this.visitOption(t);case J:return this.visitRepetitionMandatory(t);case Q:return this.visitRepetitionMandatoryWithSeparator(t);case z:return this.visitRepetitionWithSeparator(t);case D:return this.visitRepetition(t);case q:return this.visitAlternation(t);case M:return this.visitTerminal(t);case be:return this.visitRule(t);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 So(r){return r instanceof Y||r instanceof H||r instanceof D||r instanceof J||r instanceof Q||r instanceof z||r instanceof M||r instanceof be}function ir(r,e=[]){return r instanceof H||r instanceof D||r instanceof z?!0:r instanceof q?vi(r.definition,n=>ir(n,e)):r instanceof K&&ie(e,r)?!1:r instanceof He?(r instanceof K&&e.push(r),Oe(r.definition,n=>ir(n,e))):!1}function Co(r){return r instanceof q}function Ge(r){if(r instanceof K)return"SUBRULE";if(r instanceof H)return"OPTION";if(r instanceof q)return"OR";if(r instanceof J)return"AT_LEAST_ONE";if(r instanceof Q)return"AT_LEAST_ONE_SEP";if(r instanceof z)return"MANY_SEP";if(r instanceof D)return"MANY";if(r instanceof M)return"CONSUME";throw Error("non exhaustive match")}var At=class{walk(e,t=[]){k(e.definition,(n,i)=>{let s=fe(e.definition,i+1);if(n instanceof K)this.walkProdRef(n,s,t);else if(n instanceof M)this.walkTerminal(n,s,t);else if(n instanceof Y)this.walkFlat(n,s,t);else if(n instanceof H)this.walkOption(n,s,t);else if(n instanceof J)this.walkAtLeastOne(n,s,t);else if(n instanceof Q)this.walkAtLeastOneSep(n,s,t);else if(n instanceof z)this.walkManySep(n,s,t);else if(n instanceof D)this.walkMany(n,s,t);else if(n instanceof q)this.walkOr(n,s,t);else throw Error("non exhaustive match")})}walkTerminal(e,t,n){}walkProdRef(e,t,n){}walkFlat(e,t,n){let i=t.concat(n);this.walk(e,i)}walkOption(e,t,n){let i=t.concat(n);this.walk(e,i)}walkAtLeastOne(e,t,n){let i=[new H({definition:e.definition})].concat(t,n);this.walk(e,i)}walkAtLeastOneSep(e,t,n){let i=Cc(e,t,n);this.walk(e,i)}walkMany(e,t,n){let i=[new H({definition:e.definition})].concat(t,n);this.walk(e,i)}walkManySep(e,t,n){let i=Cc(e,t,n);this.walk(e,i)}walkOr(e,t,n){let i=t.concat(n);k(e.definition,s=>{let a=new Y({definition:[s]});this.walk(a,i)})}};function Cc(r,e,t){return[new H({definition:[new M({terminalType:r.separator})].concat(r.definition)})].concat(e,t)}function sr(r){if(r instanceof K)return sr(r.referencedRule);if(r instanceof M)return Ch(r);if(So(r))return Nh(r);if(Co(r))return Sh(r);throw Error("non exhaustive match")}function Nh(r){let e=[],t=r.definition,n=0,i=t.length>n,s,a=!0;for(;i&&a;)s=t[n],a=ir(s),e=e.concat(sr(s)),n=n+1,i=t.length>n;return an(e)}function Sh(r){let e=R(r.definition,t=>sr(t));return an(ue(e))}function Ch(r){return[r.terminalType]}var Ki="_~IN~_";var _o=class extends At{constructor(e){super(),this.topProd=e,this.follows={}}startWalking(){return this.walk(this.topProd),this.follows}walkTerminal(e,t,n){}walkProdRef(e,t,n){let i=_h(e.referencedRule,e.idx)+this.topProd.name,s=t.concat(n),a=new Y({definition:s}),o=sr(a);this.follows[i]=o}};function _c(r){let e={};return k(r,t=>{let n=new _o(t).startWalking();ke(e,n)}),e}function _h(r,e){return r.name+e+Ki}var Hi={},wh=new er;function wr(r){let e=r.toString();if(Hi.hasOwnProperty(e))return Hi[e];{let t=wh.pattern(e);return Hi[e]=t,t}}function wc(){Hi={}}var Oc="Complement Sets are not supported for first char optimization",kn=`Unable to use "first char" lexer optimizations: +`;function $c(r,e=!1){try{let t=wr(r);return wo(t.value,{},t.flags.ignoreCase)}catch(t){if(t.message===Oc)e&&En(`${kn} Unable to optimize: < ${r.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.`),Cr(`${kn} + Failed parsing: < ${r.toString()} > + Using the @chevrotain/regexp-to-ast library + Please open an issue at: https://github.com/chevrotain/chevrotain/issues`+n)}}return[]}function wo(r,e,t){switch(r.type){case"Disjunction":for(let i=0;i{if(typeof l=="number")zi(l,e,t);else{let c=l;if(t===!0)for(let u=c.from;u<=c.to;u++)zi(u,e,t);else{for(let u=c.from;u<=c.to&&u=Lr){let u=c.from>=Lr?c.from:Lr,f=c.to,h=lt(u),d=lt(f);for(let m=h;m<=d;m++)e[m]=m}}}});break;case"Group":wo(a.value,e,t);break;default:throw Error("Non Exhaustive Match")}let o=a.quantifier!==void 0&&a.quantifier.atLeast===0;if(a.type==="Group"&&Lo(a)===!1||a.type!=="Group"&&o===!1)break}break;default:throw Error("non exhaustive match!")}return te(e)}function zi(r,e,t){let n=lt(r);e[n]=n,t===!0&&Lh(r,e)}function Lh(r,e){let t=String.fromCharCode(r),n=t.toUpperCase();if(n!==t){let i=lt(n.charCodeAt(0));e[i]=i}else{let i=t.toLowerCase();if(i!==t){let s=lt(i.charCodeAt(0));e[s]=s}}}function Lc(r,e){return Tt(r.value,t=>{if(typeof t=="number")return ie(e,t);{let n=t;return Tt(e,i=>n.from<=i&&i<=n.to)!==void 0}})}function Lo(r){let e=r.quantifier;return e&&e.atLeast===0?!0:r.value?pe(r.value)?Oe(r.value,Lo):Lo(r.value):!1}var Oo=class extends ot{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){ie(this.targetCharCodes,e.value)&&(this.found=!0)}visitSet(e){e.complement?Lc(e,this.targetCharCodes)===void 0&&(this.found=!0):Lc(e,this.targetCharCodes)!==void 0&&(this.found=!0)}};function qi(r,e){if(e instanceof RegExp){let t=wr(e),n=new Oo(r);return n.visit(t),n.found}else return Tt(e,t=>ie(r,t.charCodeAt(0)))!==void 0}var ar="PATTERN",Or="defaultMode",Xi="modes",Po=typeof new RegExp("(?:)").sticky=="boolean";function Mc(r,e){e=sn(e,{useSticky:Po,debug:!1,safeMode:!1,positionTracking:"full",lineTerminatorCharacters:["\r",` +`],tracer:(E,T)=>T()});let t=e.tracer;t("initCharCodeToOptimizedIndexMap",()=>{Xh()});let n;t("Reject Lexer.NA",()=>{n=Kt(r,E=>E[ar]===oe.NA)});let i=!1,s;t("Transform Patterns",()=>{i=!1,s=R(n,E=>{let T=E[ar];if(Ze(T)){let $=T.source;return $.length===1&&$!=="^"&&$!=="$"&&$!=="."&&!T.ignoreCase?$:$.length===2&&$[0]==="\\"&&!ie(["d","D","s","S","t","r","n","t","0","c","b","B","f","v","w","W"],$[1])?$[1]:e.useSticky?bc(T):Pc(T)}else{if(it(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 $=T.replace(/[\\^$.*+?()[\]{}|]/g,"\\$&"),P=new RegExp($);return e.useSticky?bc(P):Pc(P)}}else throw Error("non exhaustive match")}})});let a,o,l,c,u;t("misc mapping",()=>{a=R(n,E=>E.tokenTypeIdx),o=R(n,E=>{let T=E.GROUP;if(T!==oe.SKIPPED){if(Se(T))return T;if($e(T))return!1;throw Error("non exhaustive match")}}),l=R(n,E=>{let T=E.LONGER_ALT;if(T)return pe(T)?R(T,P=>Ys(n,P)):[Ys(n,T)]}),c=R(n,E=>E.PUSH_MODE),u=R(n,E=>I(E,"POP_MODE"))});let f;t("Line Terminator Handling",()=>{let E=Vc(e.lineTerminatorCharacters);f=R(n,T=>!1),e.positionTracking!=="onlyOffset"&&(f=R(n,T=>I(T,"LINE_BREAKS")?!!T.LINE_BREAKS:jc(T,E)===!1&&qi(E,T.PATTERN)))});let h,d,m,y;t("Misc Mapping #2",()=>{h=R(n,Bc),d=R(s,zh),m=ae(n,(E,T)=>{let $=T.GROUP;return Se($)&&$!==oe.SKIPPED&&(E[$]=[]),E},{}),y=R(s,(E,T)=>({pattern:s[T],longerAlt:l[T],canLineTerminator:f[T],isCustom:h[T],short:d[T],group:o[T],push:c[T],pop:u[T],tokenTypeIdx:a[T],tokenType:n[T]}))});let v=!0,x=[];return e.safeMode||t("First Char Optimization",()=>{x=ae(n,(E,T,$)=>{if(typeof T.PATTERN=="string"){let P=T.PATTERN.charCodeAt(0),Te=lt(P);$o(E,Te,y[$])}else if(pe(T.START_CHARS_HINT)){let P;k(T.START_CHARS_HINT,Te=>{let xr=typeof Te=="string"?Te.charCodeAt(0):Te,Ae=lt(xr);P!==Ae&&(P=Ae,$o(E,Ae,y[$]))})}else if(Ze(T.PATTERN))if(T.PATTERN.unicode)v=!1,e.ensureOptimizations&&Cr(`${kn} 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 P=$c(T.PATTERN,e.ensureOptimizations);b(P)&&(v=!1),k(P,Te=>{$o(E,Te,y[$])})}else e.ensureOptimizations&&Cr(`${kn} 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 E},[])}),{emptyGroups:m,patternIdxToConfig:y,charCodeToPatternIdxToConfig:x,hasCustom:i,canBeOptimized:v}}function Dc(r,e){let t=[],n=$h(r);t=t.concat(n.errors);let i=Ph(n.valid),s=i.valid;return t=t.concat(i.errors),t=t.concat(Oh(s)),t=t.concat(Wh(s)),t=t.concat(jh(s,e)),t=t.concat(Vh(s)),t}function Oh(r){let e=[],t=Re(r,n=>Ze(n[ar]));return e=e.concat(Mh(t)),e=e.concat(Uh(t)),e=e.concat(Gh(t)),e=e.concat(Bh(t)),e=e.concat(Dh(t)),e}function $h(r){let e=Re(r,i=>!I(i,ar)),t=R(e,i=>({message:"Token Type: ->"+i.name+"<- missing static 'PATTERN' property",type:re.MISSING_PATTERN,tokenTypes:[i]})),n=Vt(r,e);return{errors:t,valid:n}}function Ph(r){let e=Re(r,i=>{let s=i[ar];return!Ze(s)&&!it(s)&&!I(s,"exec")&&!Se(s)}),t=R(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:re.INVALID_PATTERN,tokenTypes:[i]})),n=Vt(r,e);return{errors:t,valid:n}}var bh=/[^\\][$]/;function Mh(r){class e extends ot{constructor(){super(...arguments),this.found=!1}visitEndAnchor(s){this.found=!0}}let t=Re(r,i=>{let s=i.PATTERN;try{let a=wr(s),o=new e;return o.visit(a),o.found}catch{return bh.test(s.source)}});return R(t,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:re.EOI_ANCHOR_FOUND,tokenTypes:[i]}))}function Dh(r){let e=Re(r,n=>n.PATTERN.test(""));return R(e,n=>({message:"Token Type: ->"+n.name+"<- static 'PATTERN' must not match an empty string",type:re.EMPTY_MATCH_PATTERN,tokenTypes:[n]}))}var Fh=/[^\\[][\^]|^\^/;function Uh(r){class e extends ot{constructor(){super(...arguments),this.found=!1}visitStartAnchor(s){this.found=!0}}let t=Re(r,i=>{let s=i.PATTERN;try{let a=wr(s),o=new e;return o.visit(a),o.found}catch{return Fh.test(s.source)}});return R(t,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:re.SOI_ANCHOR_FOUND,tokenTypes:[i]}))}function Gh(r){let e=Re(r,n=>{let i=n[ar];return i instanceof RegExp&&(i.multiline||i.global)});return R(e,n=>({message:"Token Type: ->"+n.name+"<- static 'PATTERN' may NOT contain global('g') or multiline('m')",type:re.UNSUPPORTED_FLAGS_FOUND,tokenTypes:[n]}))}function Bh(r){let e=[],t=R(r,s=>ae(r,(a,o)=>(s.PATTERN.source===o.PATTERN.source&&!ie(e,o)&&o.PATTERN!==oe.NA&&(e.push(o),a.push(o)),a),[]));t=gt(t);let n=Re(t,s=>s.length>1);return R(n,s=>{let a=R(s,l=>l.name);return{message:`The same RegExp pattern ->${Ie(s).PATTERN}<-has been used in all of the following Token Types: ${a.join(", ")} <-`,type:re.DUPLICATE_PATTERNS_FOUND,tokenTypes:s}})}function Wh(r){let e=Re(r,n=>{if(!I(n,"GROUP"))return!1;let i=n.GROUP;return i!==oe.SKIPPED&&i!==oe.NA&&!Se(i)});return R(e,n=>({message:"Token Type: ->"+n.name+"<- static 'GROUP' can only be Lexer.SKIPPED/Lexer.NA/A String",type:re.INVALID_GROUP_TYPE_FOUND,tokenTypes:[n]}))}function jh(r,e){let t=Re(r,i=>i.PUSH_MODE!==void 0&&!ie(e,i.PUSH_MODE));return R(t,i=>({message:`Token Type: ->${i.name}<- static 'PUSH_MODE' value cannot refer to a Lexer Mode ->${i.PUSH_MODE}<-which does not exist`,type:re.PUSH_MODE_DOES_NOT_EXIST,tokenTypes:[i]}))}function Vh(r){let e=[],t=ae(r,(n,i,s)=>{let a=i.PATTERN;return a===oe.NA||(Se(a)?n.push({str:a,idx:s,tokenType:i}):Ze(a)&&Hh(a)&&n.push({str:a.source,idx:s,tokenType:i})),n},[]);return k(r,(n,i)=>{k(t,({str:s,idx:a,tokenType:o})=>{if(i${o.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:l,type:re.UNREACHABLE_PATTERN,tokenTypes:[n,o]})}})}),e}function Kh(r,e){if(Ze(e)){let t=e.exec(r);return t!==null&&t.index===0}else{if(it(e))return e(r,0,[],{});if(I(e,"exec"))return e.exec(r,0,[],{});if(typeof e=="string")return e===r;throw Error("non exhaustive match")}}function Hh(r){return Tt([".","\\","[","]","|","^","$","(",")","?","*","+","{"],t=>r.source.indexOf(t)!==-1)===void 0}function Pc(r){let e=r.ignoreCase?"i":"";return new RegExp(`^(?:${r.source})`,e)}function bc(r){let e=r.ignoreCase?"iy":"y";return new RegExp(`${r.source}`,e)}function Fc(r,e,t){let n=[];return I(r,Or)||n.push({message:"A MultiMode Lexer cannot be initialized without a <"+Or+`> property in its definition +`,type:re.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE}),I(r,Xi)||n.push({message:"A MultiMode Lexer cannot be initialized without a <"+Xi+`> property in its definition +`,type:re.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY}),I(r,Xi)&&I(r,Or)&&!I(r.modes,r.defaultMode)&&n.push({message:`A MultiMode Lexer cannot be initialized with a ${Or}: <${r.defaultMode}>which does not exist +`,type:re.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST}),I(r,Xi)&&k(r.modes,(i,s)=>{k(i,(a,o)=>{if($e(a))n.push({message:`A Lexer cannot be initialized using an undefined Token Type. Mode:<${s}> at index: <${o}> +`,type:re.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED});else if(I(a,"LONGER_ALT")){let l=pe(a.LONGER_ALT)?a.LONGER_ALT:[a.LONGER_ALT];k(l,c=>{!$e(c)&&!ie(i,c)&&n.push({message:`A MultiMode Lexer cannot be initialized with a longer_alt <${c.name}> on token <${a.name}> outside of mode <${s}> +`,type:re.MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE})})}})}),n}function Uc(r,e,t){let n=[],i=!1,s=gt(ue(te(r.modes))),a=Kt(s,l=>l[ar]===oe.NA),o=Vc(t);return e&&k(a,l=>{let c=jc(l,o);if(c!==!1){let f={message:qh(l,c),type:c.issue,tokenType:l};n.push(f)}else I(l,"LINE_BREAKS")?l.LINE_BREAKS===!0&&(i=!0):qi(o,l.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:re.NO_LINE_BREAKS_FLAGS}),n}function Gc(r){let e={},t=mt(r);return k(t,n=>{let i=r[n];if(pe(i))e[n]=[];else throw Error("non exhaustive match")}),e}function Bc(r){let e=r.PATTERN;if(Ze(e))return!1;if(it(e))return!0;if(I(e,"exec"))return!0;if(Se(e))return!1;throw Error("non exhaustive match")}function zh(r){return Se(r)&&r.length===1?r.charCodeAt(0):!1}var Wc={test:function(r){let e=r.length;for(let t=this.lastIndex;t Token Type + Root cause: ${e.errMsg}. + For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#IDENTIFY_TERMINATOR`;if(e.issue===re.CUSTOM_LINE_BREAK)return`Warning: A Custom Token Pattern should specify the option. + The problem is in the <${r.name}> Token Type + For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_LINE_BREAK`;throw Error("non exhaustive match")}function Vc(r){return R(r,t=>Se(t)?t.charCodeAt(0):t)}function $o(r,e,t){r[e]===void 0?r[e]=[t]:r[e].push(t)}var Lr=256,Yi=[];function lt(r){return r255?255+~~(r/255):r}}function vt(r,e){let t=r.tokenTypeIdx;return t===e.tokenTypeIdx?!0:e.isParent===!0&&e.categoryMatchesMap[t]===!0}function $r(r,e){return r.tokenTypeIdx===e.tokenTypeIdx}var Kc=1,zc={};function kt(r){let e=Yh(r);Jh(e),Zh(e),Qh(e),k(e,t=>{t.isParent=t.categoryMatches.length>0})}function Yh(r){let e=ee(r),t=r,n=!0;for(;n;){t=gt(ue(R(t,s=>s.CATEGORIES)));let i=Vt(t,e);e=e.concat(i),b(i)?n=!1:t=i}return e}function Jh(r){k(r,e=>{bo(e)||(zc[Kc]=e,e.tokenTypeIdx=Kc++),Hc(e)&&!pe(e.CATEGORIES)&&(e.CATEGORIES=[e.CATEGORIES]),Hc(e)||(e.CATEGORIES=[]),ep(e)||(e.categoryMatches=[]),tp(e)||(e.categoryMatchesMap={})})}function Qh(r){k(r,e=>{e.categoryMatches=[],k(e.categoryMatchesMap,(t,n)=>{e.categoryMatches.push(zc[n].tokenTypeIdx)})})}function Zh(r){k(r,e=>{qc([],e)})}function qc(r,e){k(r,t=>{e.categoryMatchesMap[t.tokenTypeIdx]=!0}),k(e.CATEGORIES,t=>{let n=r.concat(e);ie(n,t)||qc(n,t)})}function bo(r){return I(r,"tokenTypeIdx")}function Hc(r){return I(r,"CATEGORIES")}function ep(r){return I(r,"categoryMatches")}function tp(r){return I(r,"categoryMatchesMap")}function Xc(r){return I(r,"tokenTypeIdx")}var Mo={buildUnableToPopLexerModeMessage(r){return`Unable to pop Lexer Mode after encountering Token ->${r.image}<- The Mode Stack is empty`},buildUnexpectedCharactersMessage(r,e,t,n,i){return`unexpected character: ->${r.charAt(e)}<- at offset: ${e}, skipped ${t} characters.`}};var re;(function(r){r[r.MISSING_PATTERN=0]="MISSING_PATTERN",r[r.INVALID_PATTERN=1]="INVALID_PATTERN",r[r.EOI_ANCHOR_FOUND=2]="EOI_ANCHOR_FOUND",r[r.UNSUPPORTED_FLAGS_FOUND=3]="UNSUPPORTED_FLAGS_FOUND",r[r.DUPLICATE_PATTERNS_FOUND=4]="DUPLICATE_PATTERNS_FOUND",r[r.INVALID_GROUP_TYPE_FOUND=5]="INVALID_GROUP_TYPE_FOUND",r[r.PUSH_MODE_DOES_NOT_EXIST=6]="PUSH_MODE_DOES_NOT_EXIST",r[r.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE=7]="MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE",r[r.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY=8]="MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY",r[r.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST=9]="MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST",r[r.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED=10]="LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED",r[r.SOI_ANCHOR_FOUND=11]="SOI_ANCHOR_FOUND",r[r.EMPTY_MATCH_PATTERN=12]="EMPTY_MATCH_PATTERN",r[r.NO_LINE_BREAKS_FLAGS=13]="NO_LINE_BREAKS_FLAGS",r[r.UNREACHABLE_PATTERN=14]="UNREACHABLE_PATTERN",r[r.IDENTIFY_TERMINATOR=15]="IDENTIFY_TERMINATOR",r[r.CUSTOM_LINE_BREAK=16]="CUSTOM_LINE_BREAK",r[r.MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE=17]="MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE"})(re||(re={}));var In={deferDefinitionErrorsHandling:!1,positionTracking:"full",lineTerminatorsPattern:/\n|\r\n?/g,lineTerminatorCharacters:[` +`,"\r"],ensureOptimizations:!1,safeMode:!1,errorMessageProvider:Mo,traceInitPerf:!1,skipValidations:!1,recoveryEnabled:!0};Object.freeze(In);var oe=class{constructor(e,t=In){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,s)=>{if(this.traceInitPerf===!0){this.traceInitIndent++;let a=new Array(this.traceInitIndent+1).join(" ");this.traceInitIndent <${i}>`);let{time:o,value:l}=An(s),c=o>10?console.warn:console.log;return this.traceInitIndent time: ${o}ms`),this.traceInitIndent--,l}else return s()},typeof t=="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=ke({},In,t);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,s=!0;this.TRACE_INIT("Lexer Config handling",()=>{if(this.config.lineTerminatorsPattern===In.lineTerminatorsPattern)this.config.lineTerminatorsPattern=Wc;else if(this.config.lineTerminatorCharacters===In.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(t.safeMode&&t.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),pe(e)?i={modes:{defaultMode:ee(e)},defaultMode:Or}:(s=!1,i=ee(e))}),this.config.skipValidations===!1&&(this.TRACE_INIT("performRuntimeChecks",()=>{this.lexerDefinitionErrors=this.lexerDefinitionErrors.concat(Fc(i,this.trackStartLines,this.config.lineTerminatorCharacters))}),this.TRACE_INIT("performWarningRuntimeChecks",()=>{this.lexerDefinitionWarning=this.lexerDefinitionWarning.concat(Uc(i,this.trackStartLines,this.config.lineTerminatorCharacters))})),i.modes=i.modes?i.modes:{},k(i.modes,(o,l)=>{i.modes[l]=Kt(o,c=>$e(c))});let a=mt(i.modes);if(k(i.modes,(o,l)=>{this.TRACE_INIT(`Mode: <${l}> processing`,()=>{if(this.modes.push(l),this.config.skipValidations===!1&&this.TRACE_INIT("validatePatterns",()=>{this.lexerDefinitionErrors=this.lexerDefinitionErrors.concat(Dc(o,a))}),b(this.lexerDefinitionErrors)){kt(o);let c;this.TRACE_INIT("analyzeTokenTypes",()=>{c=Mc(o,{lineTerminatorCharacters:this.config.lineTerminatorCharacters,positionTracking:t.positionTracking,ensureOptimizations:t.ensureOptimizations,safeMode:t.safeMode,tracer:this.TRACE_INIT})}),this.patternIdxToConfig[l]=c.patternIdxToConfig,this.charCodeToPatternIdxToConfig[l]=c.charCodeToPatternIdxToConfig,this.emptyGroups=ke({},this.emptyGroups,c.emptyGroups),this.hasCustom=c.hasCustom||this.hasCustom,this.canModeBeOptimized[l]=c.canBeOptimized}})}),this.defaultMode=i.defaultMode,!b(this.lexerDefinitionErrors)&&!this.config.deferDefinitionErrorsHandling){let l=R(this.lexerDefinitionErrors,c=>c.message).join(`----------------------- +`);throw new Error(`Errors detected in definition of Lexer: +`+l)}k(this.lexerDefinitionWarning,o=>{En(o.message)}),this.TRACE_INIT("Choosing sub-methods implementations",()=>{if(Po?(this.chopInput=Xs,this.match=this.matchWithTest):(this.updateLastIndex=ce,this.match=this.matchWithExec),s&&(this.handleModes=ce),this.trackStartLines===!1&&(this.computeNewColumn=Xs),this.trackEndLines===!1&&(this.updateTokenEndLineColumnLocation=ce),/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 o=ae(this.canModeBeOptimized,(l,c,u)=>(c===!1&&l.push(u),l),[]);if(t.ensureOptimizations&&!b(o))throw Error(`Lexer Modes: < ${o.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",()=>{wc()}),this.TRACE_INIT("toFastProperties",()=>{vn(this)})})}tokenize(e,t=this.defaultMode){if(!b(this.lexerDefinitionErrors)){let i=R(this.lexerDefinitionErrors,s=>s.message).join(`----------------------- +`);throw new Error(`Unable to Tokenize because Errors detected in definition of Lexer: +`+i)}return this.tokenizeInternal(e,t)}tokenizeInternal(e,t){let n,i,s,a,o,l,c,u,f,h,d,m,y,v,x,E,T=e,$=T.length,P=0,Te=0,xr=this.hasCustom?0:Math.floor(e.length/10),Ae=new Array(xr),wt=[],dt=this.trackStartLines?1:void 0,A=this.trackStartLines?1:void 0,g=Gc(this.emptyGroups),S=this.trackStartLines,N=this.config.lineTerminatorsPattern,j=0,O=[],L=[],we=[],Le=[];Object.freeze(Le);let Z;function Bt(){return O}function Ql(ve){let qe=lt(ve),Rr=L[qe];return Rr===void 0?Le:Rr}let Gd=ve=>{if(we.length===1&&ve.tokenType.PUSH_MODE===void 0){let qe=this.config.errorMessageProvider.buildUnableToPopLexerModeMessage(ve);wt.push({offset:ve.startOffset,line:ve.startLine,column:ve.startColumn,length:ve.image.length,message:qe})}else{we.pop();let qe=yt(we);O=this.patternIdxToConfig[qe],L=this.charCodeToPatternIdxToConfig[qe],j=O.length;let Rr=this.canModeBeOptimized[qe]&&this.config.safeMode===!1;L&&Rr?Z=Ql:Z=Bt}};function Zl(ve){we.push(ve),L=this.charCodeToPatternIdxToConfig[ve],O=this.patternIdxToConfig[ve],j=O.length,j=O.length;let qe=this.canModeBeOptimized[ve]&&this.config.safeMode===!1;L&&qe?Z=Ql:Z=Bt}Zl.call(this,t);let Qe,ec=this.config.recoveryEnabled;for(;P<$;){l=null;let ve=T.charCodeAt(P),qe=Z(ve),Rr=qe.length;for(n=0;nl.length){l=a,c=u,Qe=pt;break}}}break}}if(l!==null){if(f=l.length,h=Qe.group,h!==void 0&&(d=Qe.tokenTypeIdx,m=this.createTokenInstance(l,P,d,Qe.tokenType,dt,A,f),this.handlePayload(m,c),h===!1?Te=this.addToken(Ae,Te,m):g[h].push(m)),e=this.chopInput(e,f),P=P+f,A=this.computeNewColumn(A,f),S===!0&&Qe.canLineTerminator===!0){let We=0,ht,Lt;N.lastIndex=0;do ht=N.test(l),ht===!0&&(Lt=N.lastIndex-1,We++);while(ht===!0);We!==0&&(dt=dt+We,A=f-Lt,this.updateTokenEndLineColumnLocation(m,h,Lt,We,dt,A,f))}this.handleModes(Qe,Gd,Zl,m)}else{let We=P,ht=dt,Lt=A,pt=ec===!1;for(;pt===!1&&P<$;)for(e=this.chopInput(e,1),P++,i=0;i ${It(r)} <--`:`token of type --> ${r.name} <--`} but found --> '${e.image}' <--`},buildNotAllInputParsedMessage({firstRedundant:r,ruleName:e}){return"Redundant input, expecting EOF but found: "+r.image},buildNoViableAltMessage({expectedPathsPerAlt:r,actual:e,previous:t,customUserDescription:n,ruleName:i}){let s="Expecting: ",o=` +but found: '`+Ie(e).image+"'";if(n)return s+n+o;{let l=ae(r,(h,d)=>h.concat(d),[]),c=R(l,h=>`[${R(h,d=>It(d)).join(", ")}]`),f=`one of these possible Token sequences: +${R(c,(h,d)=>` ${d+1}. ${h}`).join(` +`)}`;return s+f+o}},buildEarlyExitMessage({expectedIterationPaths:r,actual:e,customUserDescription:t,ruleName:n}){let i="Expecting: ",a=` +but found: '`+Ie(e).image+"'";if(t)return i+t+a;{let l=`expecting at least one iteration which starts with one of these possible Token sequences:: + <${R(r,c=>`[${R(c,u=>It(u)).join(",")}]`).join(" ,")}>`;return i+l+a}}};Object.freeze(Nt);var iu={buildRuleNotFoundError(r,e){return"Invalid grammar, reference to a rule which is not defined: ->"+e.nonTerminalName+`<- +inside top level rule: ->`+r.name+"<-"}},rt={buildDuplicateFoundError(r,e){function t(u){return u instanceof M?u.terminalType.name:u instanceof K?u.nonTerminalName:""}let n=r.name,i=Ie(e),s=i.idx,a=Ge(i),o=t(i),l=s>0,c=`->${a}${l?s:""}<- ${o?`with argument: ->${o}<-`:""} + 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 c=c.replace(/[ \t]+/g," "),c=c.replace(/\s\s+/g,` +`),c},buildNamespaceConflictError(r){return`Namespace conflict found in grammar. +The grammar has both a Terminal(Token) and a Non-Terminal(Rule) named: <${r.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(r){let e=R(r.prefixPath,i=>It(i)).join(", "),t=r.alternation.idx===0?"":r.alternation.idx;return`Ambiguous alternatives: <${r.ambiguityIndices.join(" ,")}> due to common lookahead prefix +in inside <${r.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(r){let e=R(r.prefixPath,i=>It(i)).join(", "),t=r.alternation.idx===0?"":r.alternation.idx,n=`Ambiguous Alternatives Detected: <${r.ambiguityIndices.join(" ,")}> in inside <${r.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(r){let e=Ge(r.repetition);return r.repetition.idx!==0&&(e+=r.repetition.idx),`The repetition <${e}> within Rule <${r.topLevelRule.name}> can never consume any tokens. +This could lead to an infinite loop.`},buildTokenNameError(r){return"deprecated"},buildEmptyAlternationError(r){return`Ambiguous empty alternative: <${r.emptyChoiceIdx+1}> in inside <${r.topLevelRule.name}> Rule. +Only the last alternative may be an empty alternative.`},buildTooManyAlternativesError(r){return`An Alternation cannot have more than 256 alternatives: + inside <${r.topLevelRule.name}> Rule. + has ${r.alternation.definition.length+1} alternatives.`},buildLeftRecursionError(r){let e=r.topLevelRule.name,t=R(r.leftRecursionPath,s=>s.name),n=`${e} --> ${t.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(r){return"deprecated"},buildDuplicateRuleNameError(r){let e;return r.topLevelRule instanceof be?e=r.topLevelRule.name:e=r.topLevelRule,`Duplicate definition, rule: ->${e}<- is already defined in the grammar: ->${r.grammarName}<-`}};function su(r,e){let t=new Fo(r,e);return t.resolveRefs(),t.errors}var Fo=class extends Me{constructor(e,t){super(),this.nameToTopRule=e,this.errMsgProvider=t,this.errors=[]}resolveRefs(){k(te(this.nameToTopRule),e=>{this.currTopLevel=e,e.accept(this)})}visitNonTerminal(e){let t=this.nameToTopRule[e.nonTerminalName];if(t)e.referencedRule=t;else{let n=this.errMsgProvider.buildRuleNotFoundError(this.currTopLevel,e);this.errors.push({message:n,type:ge.UNRESOLVED_SUBRULE_REF,ruleName:this.currTopLevel.name,unresolvedRefName:e.nonTerminalName})}}};var Uo=class extends At{constructor(e,t){super(),this.topProd=e,this.path=t,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=ee(this.path.ruleStack).reverse(),this.occurrenceStack=ee(this.path.occurrenceStack).reverse(),this.ruleStack.pop(),this.occurrenceStack.pop(),this.updateExpectedNext(),this.walk(this.topProd),this.possibleTokTypes}walk(e,t=[]){this.found||super.walk(e,t)}walkProdRef(e,t,n){if(e.referencedRule.name===this.nextProductionName&&e.idx===this.nextProductionOccurrence){let i=t.concat(n);this.updateExpectedNext(),this.walk(e.referencedRule,i)}}updateExpectedNext(){b(this.ruleStack)?(this.nextProductionName="",this.nextProductionOccurrence=0,this.isAtEndOfPath=!0):(this.nextProductionName=this.ruleStack.pop(),this.nextProductionOccurrence=this.occurrenceStack.pop())}},Qi=class extends Uo{constructor(e,t){super(e,t),this.path=t,this.nextTerminalName="",this.nextTerminalOccurrence=0,this.nextTerminalName=this.path.lastTok.name,this.nextTerminalOccurrence=this.path.lastTokOccurrence}walkTerminal(e,t,n){if(this.isAtEndOfPath&&e.terminalType.name===this.nextTerminalName&&e.idx===this.nextTerminalOccurrence&&!this.found){let i=t.concat(n),s=new Y({definition:i});this.possibleTokTypes=sr(s),this.found=!0}}},Pr=class extends At{constructor(e,t){super(),this.topRule=e,this.occurrence=t,this.result={token:void 0,occurrence:void 0,isEndOfRule:void 0}}startWalking(){return this.walk(this.topRule),this.result}},Zi=class extends Pr{walkMany(e,t,n){if(e.idx===this.occurrence){let i=Ie(t.concat(n));this.result.isEndOfRule=i===void 0,i instanceof M&&(this.result.token=i.terminalType,this.result.occurrence=i.idx)}else super.walkMany(e,t,n)}},Sn=class extends Pr{walkManySep(e,t,n){if(e.idx===this.occurrence){let i=Ie(t.concat(n));this.result.isEndOfRule=i===void 0,i instanceof M&&(this.result.token=i.terminalType,this.result.occurrence=i.idx)}else super.walkManySep(e,t,n)}},es=class extends Pr{walkAtLeastOne(e,t,n){if(e.idx===this.occurrence){let i=Ie(t.concat(n));this.result.isEndOfRule=i===void 0,i instanceof M&&(this.result.token=i.terminalType,this.result.occurrence=i.idx)}else super.walkAtLeastOne(e,t,n)}},Cn=class extends Pr{walkAtLeastOneSep(e,t,n){if(e.idx===this.occurrence){let i=Ie(t.concat(n));this.result.isEndOfRule=i===void 0,i instanceof M&&(this.result.token=i.terminalType,this.result.occurrence=i.idx)}else super.walkAtLeastOneSep(e,t,n)}};function ts(r,e,t=[]){t=ee(t);let n=[],i=0;function s(o){return o.concat(fe(r,i+1))}function a(o){let l=ts(s(o),e,t);return n.concat(l)}for(;t.length{b(l.definition)===!1&&(n=a(l.definition))}),n;if(o instanceof M)t.push(o.terminalType);else throw Error("non exhaustive match")}i++}return n.push({partialPath:t,suffixDef:fe(r,i)}),n}function rs(r,e,t,n){let i="EXIT_NONE_TERMINAL",s=[i],a="EXIT_ALTERNATIVE",o=!1,l=e.length,c=l-n-1,u=[],f=[];for(f.push({idx:-1,def:r,ruleStack:[],occurrenceStack:[]});!b(f);){let h=f.pop();if(h===a){o&&yt(f).idx<=c&&f.pop();continue}let d=h.def,m=h.idx,y=h.ruleStack,v=h.occurrenceStack;if(b(d))continue;let x=d[0];if(x===i){let E={idx:m,def:fe(d),ruleStack:Ot(y),occurrenceStack:Ot(v)};f.push(E)}else if(x instanceof M)if(m=0;E--){let T=x.definition[E],$={idx:m,def:T.definition.concat(fe(d)),ruleStack:y,occurrenceStack:v};f.push($),f.push(a)}else if(x instanceof Y)f.push({idx:m,def:x.definition.concat(fe(d)),ruleStack:y,occurrenceStack:v});else if(x instanceof be)f.push(ip(x,m,y,v));else throw Error("non exhaustive match")}return u}function ip(r,e,t,n){let i=ee(t);i.push(r.name);let s=ee(n);return s.push(1),{idx:e,def:r.definition,ruleStack:i,occurrenceStack:s}}var ne;(function(r){r[r.OPTION=0]="OPTION",r[r.REPETITION=1]="REPETITION",r[r.REPETITION_MANDATORY=2]="REPETITION_MANDATORY",r[r.REPETITION_MANDATORY_WITH_SEPARATOR=3]="REPETITION_MANDATORY_WITH_SEPARATOR",r[r.REPETITION_WITH_SEPARATOR=4]="REPETITION_WITH_SEPARATOR",r[r.ALTERNATION=5]="ALTERNATION"})(ne||(ne={}));function _n(r){if(r instanceof H||r==="Option")return ne.OPTION;if(r instanceof D||r==="Repetition")return ne.REPETITION;if(r instanceof J||r==="RepetitionMandatory")return ne.REPETITION_MANDATORY;if(r instanceof Q||r==="RepetitionMandatoryWithSeparator")return ne.REPETITION_MANDATORY_WITH_SEPARATOR;if(r instanceof z||r==="RepetitionWithSeparator")return ne.REPETITION_WITH_SEPARATOR;if(r instanceof q||r==="Alternation")return ne.ALTERNATION;throw Error("non exhaustive match")}function is(r){let{occurrence:e,rule:t,prodType:n,maxLookahead:i}=r,s=_n(n);return s===ne.ALTERNATION?br(e,t,i):Mr(e,t,s,i)}function ou(r,e,t,n,i,s){let a=br(r,e,t),o=hu(a)?$r:vt;return s(a,n,o,i)}function lu(r,e,t,n,i,s){let a=Mr(r,e,i,t),o=hu(a)?$r:vt;return s(a[0],o,n)}function cu(r,e,t,n){let i=r.length,s=Oe(r,a=>Oe(a,o=>o.length===1));if(e)return function(a){let o=R(a,l=>l.GATE);for(let l=0;lue(l)),o=ae(a,(l,c,u)=>(k(c,f=>{I(l,f.tokenTypeIdx)||(l[f.tokenTypeIdx]=u),k(f.categoryMatches,h=>{I(l,h)||(l[h]=u)})}),l),{});return function(){let l=this.LA(1);return o[l.tokenTypeIdx]}}else return function(){for(let a=0;as.length===1),i=r.length;if(n&&!t){let s=ue(r);if(s.length===1&&b(s[0].categoryMatches)){let o=s[0].tokenTypeIdx;return function(){return this.LA(1).tokenTypeIdx===o}}else{let a=ae(s,(o,l,c)=>(o[l.tokenTypeIdx]=!0,k(l.categoryMatches,u=>{o[u]=!0}),o),[]);return function(){let o=this.LA(1);return a[o.tokenTypeIdx]===!0}}}else return function(){e:for(let s=0;sts([a],1)),n=au(t.length),i=R(t,a=>{let o={};return k(a,l=>{let c=Go(l.partialPath);k(c,u=>{o[u]=!0})}),o}),s=t;for(let a=1;a<=e;a++){let o=s;s=au(o.length);for(let l=0;l{let x=Go(v.partialPath);k(x,E=>{i[l][E]=!0})})}}}}return n}function br(r,e,t,n){let i=new ns(r,ne.ALTERNATION,n);return e.accept(i),fu(i.result,t)}function Mr(r,e,t,n){let i=new ns(r,t);e.accept(i);let s=i.result,o=new Bo(e,r,t).startWalking(),l=new Y({definition:s}),c=new Y({definition:o});return fu([l,c],n)}function ss(r,e){e:for(let t=0;t{let i=e[n];return t===i||i.categoryMatchesMap[t.tokenTypeIdx]})}function hu(r){return Oe(r,e=>Oe(e,t=>Oe(t,n=>b(n.categoryMatches))))}function pu(r){let e=r.lookaheadStrategy.validate({rules:r.rules,tokenTypes:r.tokenTypes,grammarName:r.grammarName});return R(e,t=>Object.assign({type:ge.CUSTOM_LOOKAHEAD_VALIDATION},t))}function mu(r,e,t,n){let i=Ne(r,l=>ap(l,t)),s=dp(r,e,t),a=Ne(r,l=>cp(l,t)),o=Ne(r,l=>lp(l,r,n,t));return i.concat(s,a,o)}function ap(r,e){let t=new Wo;r.accept(t);let n=t.allProductions,i=ic(n,op),s=je(i,o=>o.length>1);return R(te(s),o=>{let l=Ie(o),c=e.buildDuplicateFoundError(r,o),u=Ge(l),f={message:c,type:ge.DUPLICATE_PRODUCTIONS,ruleName:r.name,dslName:u,occurrence:l.idx},h=gu(l);return h&&(f.parameter=h),f})}function op(r){return`${Ge(r)}_#_${r.idx}_#_${gu(r)}`}function gu(r){return r instanceof M?r.terminalType.name:r instanceof K?r.nonTerminalName:""}var Wo=class extends Me{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)}};function lp(r,e,t,n){let i=[];if(ae(e,(a,o)=>o.name===r.name?a+1:a,0)>1){let a=n.buildDuplicateRuleNameError({topLevelRule:r,grammarName:t});i.push({message:a,type:ge.DUPLICATE_RULE_NAME,ruleName:r.name})}return i}function yu(r,e,t){let n=[],i;return ie(e,r)||(i=`Invalid rule override, rule: ->${r}<- cannot be overridden in the grammar: ->${t}<-as it is not defined in any of the super grammars `,n.push({message:i,type:ge.INVALID_RULE_OVERRIDE,ruleName:r})),n}function Vo(r,e,t,n=[]){let i=[],s=as(e.definition);if(b(s))return[];{let a=r.name;ie(s,r)&&i.push({message:t.buildLeftRecursionError({topLevelRule:r,leftRecursionPath:n}),type:ge.LEFT_RECURSION,ruleName:a});let l=Vt(s,n.concat([r])),c=Ne(l,u=>{let f=ee(n);return f.push(u),Vo(r,u,t,f)});return i.concat(c)}}function as(r){let e=[];if(b(r))return e;let t=Ie(r);if(t instanceof K)e.push(t.referencedRule);else if(t instanceof Y||t instanceof H||t instanceof J||t instanceof Q||t instanceof z||t instanceof D)e=e.concat(as(t.definition));else if(t instanceof q)e=ue(R(t.definition,s=>as(s.definition)));else if(!(t instanceof M))throw Error("non exhaustive match");let n=ir(t),i=r.length>1;if(n&&i){let s=fe(r);return e.concat(as(s))}else return e}var wn=class extends Me{constructor(){super(...arguments),this.alternations=[]}visitAlternation(e){this.alternations.push(e)}};function Tu(r,e){let t=new wn;r.accept(t);let n=t.alternations;return Ne(n,s=>{let a=Ot(s.definition);return Ne(a,(o,l)=>{let c=rs([o],[],vt,1);return b(c)?[{message:e.buildEmptyAlternationError({topLevelRule:r,alternation:s,emptyChoiceIdx:l}),type:ge.NONE_LAST_EMPTY_ALT,ruleName:r.name,occurrence:s.idx,alternative:l+1}]:[]})})}function xu(r,e,t){let n=new wn;r.accept(n);let i=n.alternations;return i=Kt(i,a=>a.ignoreAmbiguities===!0),Ne(i,a=>{let o=a.idx,l=a.maxLookahead||e,c=br(o,r,l,a),u=up(c,a,r,t),f=fp(c,a,r,t);return u.concat(f)})}var jo=class extends Me{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)}};function cp(r,e){let t=new wn;r.accept(t);let n=t.alternations;return Ne(n,s=>s.definition.length>255?[{message:e.buildTooManyAlternativesError({topLevelRule:r,alternation:s}),type:ge.TOO_MANY_ALTS,ruleName:r.name,occurrence:s.idx}]:[])}function Ru(r,e,t){let n=[];return k(r,i=>{let s=new jo;i.accept(s);let a=s.allProductions;k(a,o=>{let l=_n(o),c=o.maxLookahead||e,u=o.idx,h=Mr(u,i,l,c)[0];if(b(ue(h))){let d=t.buildEmptyRepetitionError({topLevelRule:i,repetition:o});n.push({message:d,type:ge.NO_NON_EMPTY_LOOKAHEAD,ruleName:i.name})}})}),n}function up(r,e,t,n){let i=[],s=ae(r,(o,l,c)=>(e.definition[c].ignoreAmbiguities===!0||k(l,u=>{let f=[c];k(r,(h,d)=>{c!==d&&ss(h,u)&&e.definition[d].ignoreAmbiguities!==!0&&f.push(d)}),f.length>1&&!ss(i,u)&&(i.push(u),o.push({alts:f,path:u}))}),o),[]);return R(s,o=>{let l=R(o.alts,u=>u+1);return{message:n.buildAlternationAmbiguityError({topLevelRule:t,alternation:e,ambiguityIndices:l,prefixPath:o.path}),type:ge.AMBIGUOUS_ALTS,ruleName:t.name,occurrence:e.idx,alternatives:o.alts}})}function fp(r,e,t,n){let i=ae(r,(a,o,l)=>{let c=R(o,u=>({idx:l,path:u}));return a.concat(c)},[]);return gt(Ne(i,a=>{if(e.definition[a.idx].ignoreAmbiguities===!0)return[];let l=a.idx,c=a.path,u=Re(i,h=>e.definition[h.idx].ignoreAmbiguities!==!0&&h.idx{let d=[h.idx+1,l+1],m=e.idx===0?"":e.idx;return{message:n.buildAlternationPrefixAmbiguityError({topLevelRule:t,alternation:e,ambiguityIndices:d,prefixPath:h.path}),type:ge.AMBIGUOUS_PREFIX_ALTS,ruleName:t.name,occurrence:m,alternatives:d}})}))}function dp(r,e,t){let n=[],i=R(e,s=>s.name);return k(r,s=>{let a=s.name;if(ie(i,a)){let o=t.buildNamespaceConflictError(s);n.push({message:o,type:ge.CONFLICT_TOKENS_RULES_NAMESPACE,ruleName:a})}}),n}function Eu(r){let e=sn(r,{errMsgProvider:iu}),t={};return k(r.rules,n=>{t[n.name]=n}),su(t,e.errMsgProvider)}function Au(r){return r=sn(r,{errMsgProvider:rt}),mu(r.rules,r.tokenTypes,r.errMsgProvider,r.grammarName)}var vu="MismatchedTokenException",ku="NoViableAltException",Iu="EarlyExitException",Nu="NotAllInputParsedException",Su=[vu,ku,Iu,Nu];Object.freeze(Su);function Mt(r){return ie(Su,r.name)}var Dr=class extends Error{constructor(e,t){super(e),this.token=t,this.resyncedTokens=[],Object.setPrototypeOf(this,new.target.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)}},lr=class extends Dr{constructor(e,t,n){super(e,t),this.previousToken=n,this.name=vu}},Ln=class extends Dr{constructor(e,t,n){super(e,t),this.previousToken=n,this.name=ku}},On=class extends Dr{constructor(e,t){super(e,t),this.name=Nu}},$n=class extends Dr{constructor(e,t,n){super(e,t),this.previousToken=n,this.name=Iu}};var Ko={},zo="InRuleRecoveryException",Ho=class extends Error{constructor(e){super(e),this.name=zo}},os=class{initRecoverable(e){this.firstAfterRepMap={},this.resyncFollows={},this.recoveryEnabled=I(e,"recoveryEnabled")?e.recoveryEnabled:De.recoveryEnabled,this.recoveryEnabled&&(this.attemptInRepetitionRecovery=hp)}getTokenToInsert(e){let t=or(e,"",NaN,NaN,NaN,NaN,NaN,NaN);return t.isInsertedInRecovery=!0,t}canTokenTypeBeInsertedInRecovery(e){return!0}canTokenTypeBeDeletedInRecovery(e){return!0}tryInRepetitionRecovery(e,t,n,i){let s=this.findReSyncTokenType(),a=this.exportLexerState(),o=[],l=!1,c=this.LA(1),u=this.LA(1),f=()=>{let h=this.LA(0),d=this.errorMessageProvider.buildMismatchTokenMessage({expected:i,actual:c,previous:h,ruleName:this.getCurrRuleFullName()}),m=new lr(d,c,this.LA(0));m.resyncedTokens=Ot(o),this.SAVE_ERROR(m)};for(;!l;)if(this.tokenMatcher(u,i)){f();return}else if(n.call(this)){f(),e.apply(this,t);return}else this.tokenMatcher(u,s)?l=!0:(u=this.SKIP_TOKEN(),this.addToResyncTokens(u,o));this.importLexerState(a)}shouldInRepetitionRecoveryBeTried(e,t,n){return!(n===!1||this.tokenMatcher(this.LA(1),e)||this.isBackTracking()||this.canPerformInRuleRecovery(e,this.getFollowsForInRuleRecovery(e,t)))}getFollowsForInRuleRecovery(e,t){let n=this.getCurrentGrammarPath(e,t);return this.getNextPossibleTokenTypes(n)}tryInRuleRecovery(e,t){if(this.canRecoverWithSingleTokenInsertion(e,t))return this.getTokenToInsert(e);if(this.canRecoverWithSingleTokenDeletion(e)){let n=this.SKIP_TOKEN();return this.consumeToken(),n}throw new Ho("sad sad panda")}canPerformInRuleRecovery(e,t){return this.canRecoverWithSingleTokenInsertion(e,t)||this.canRecoverWithSingleTokenDeletion(e)}canRecoverWithSingleTokenInsertion(e,t){if(!this.canTokenTypeBeInsertedInRecovery(e)||b(t))return!1;let n=this.LA(1);return Tt(t,s=>this.tokenMatcher(n,s))!==void 0}canRecoverWithSingleTokenDeletion(e){return this.canTokenTypeBeDeletedInRecovery(e)?this.tokenMatcher(this.LA(2),e):!1}isInCurrentRuleReSyncSet(e){let t=this.getCurrFollowKey(),n=this.getFollowSetFromFollowKey(t);return ie(n,e)}findReSyncTokenType(){let e=this.flattenFollowSet(),t=this.LA(1),n=2;for(;;){let i=Tt(e,s=>Nn(t,s));if(i!==void 0)return i;t=this.LA(n),n++}}getCurrFollowKey(){if(this.RULE_STACK.length===1)return Ko;let e=this.getLastExplicitRuleShortName(),t=this.getLastExplicitRuleOccurrenceIndex(),n=this.getPreviousExplicitRuleShortName();return{ruleName:this.shortRuleNameToFullName(e),idxInCallingRule:t,inRule:this.shortRuleNameToFullName(n)}}buildFullFollowKeyStack(){let e=this.RULE_STACK,t=this.RULE_OCCURRENCE_STACK;return R(e,(n,i)=>i===0?Ko:{ruleName:this.shortRuleNameToFullName(n),idxInCallingRule:t[i],inRule:this.shortRuleNameToFullName(e[i-1])})}flattenFollowSet(){let e=R(this.buildFullFollowKeyStack(),t=>this.getFollowSetFromFollowKey(t));return ue(e)}getFollowSetFromFollowKey(e){if(e===Ko)return[ze];let t=e.ruleName+e.idxInCallingRule+Ki+e.inRule;return this.resyncFollows[t]}addToResyncTokens(e,t){return this.tokenMatcher(e,ze)||t.push(e),t}reSyncTo(e){let t=[],n=this.LA(1);for(;this.tokenMatcher(n,e)===!1;)n=this.SKIP_TOKEN(),this.addToResyncTokens(n,t);return Ot(t)}attemptInRepetitionRecovery(e,t,n,i,s,a,o){}getCurrentGrammarPath(e,t){let n=this.getHumanReadableRuleStack(),i=ee(this.RULE_OCCURRENCE_STACK);return{ruleStack:n,occurrenceStack:i,lastTok:e,lastTokOccurrence:t}}getHumanReadableRuleStack(){return R(this.RULE_STACK,e=>this.shortRuleNameToFullName(e))}};function hp(r,e,t,n,i,s,a){let o=this.getKeyForAutomaticLookahead(n,i),l=this.firstAfterRepMap[o];if(l===void 0){let h=this.getCurrRuleFullName(),d=this.getGAstProductions()[h];l=new s(d,i).startWalking(),this.firstAfterRepMap[o]=l}let c=l.token,u=l.occurrence,f=l.isEndOfRule;this.RULE_STACK.length===1&&f&&c===void 0&&(c=ze,u=1),!(c===void 0||u===void 0)&&this.shouldInRepetitionRecoveryBeTried(c,u,a)&&this.tryInRepetitionRecovery(r,e,t,c)}function ls(r,e,t){return t|e|r}var St=class{constructor(e){var t;this.maxLookahead=(t=e?.maxLookahead)!==null&&t!==void 0?t:De.maxLookahead}validate(e){let t=this.validateNoLeftRecursion(e.rules);if(b(t)){let n=this.validateEmptyOrAlternatives(e.rules),i=this.validateAmbiguousAlternationAlternatives(e.rules,this.maxLookahead),s=this.validateSomeNonEmptyLookaheadPath(e.rules,this.maxLookahead);return[...t,...n,...i,...s]}return t}validateNoLeftRecursion(e){return Ne(e,t=>Vo(t,t,rt))}validateEmptyOrAlternatives(e){return Ne(e,t=>Tu(t,rt))}validateAmbiguousAlternationAlternatives(e,t){return Ne(e,n=>xu(n,t,rt))}validateSomeNonEmptyLookaheadPath(e,t){return Ru(e,t,rt)}buildLookaheadForAlternation(e){return ou(e.prodOccurrence,e.rule,e.maxLookahead,e.hasPredicates,e.dynamicTokensEnabled,cu)}buildLookaheadForOptional(e){return lu(e.prodOccurrence,e.rule,e.maxLookahead,e.dynamicTokensEnabled,_n(e.prodType),uu)}};var us=class{initLooksAhead(e){this.dynamicTokensEnabled=I(e,"dynamicTokensEnabled")?e.dynamicTokensEnabled:De.dynamicTokensEnabled,this.maxLookahead=I(e,"maxLookahead")?e.maxLookahead:De.maxLookahead,this.lookaheadStrategy=I(e,"lookaheadStrategy")?e.lookaheadStrategy:new St({maxLookahead:this.maxLookahead}),this.lookAheadFuncsCache=new Map}preComputeLookaheadFunctions(e){k(e,t=>{this.TRACE_INIT(`${t.name} Rule Lookahead`,()=>{let{alternation:n,repetition:i,option:s,repetitionMandatory:a,repetitionMandatoryWithSeparator:o,repetitionWithSeparator:l}=pp(t);k(n,c=>{let u=c.idx===0?"":c.idx;this.TRACE_INIT(`${Ge(c)}${u}`,()=>{let f=this.lookaheadStrategy.buildLookaheadForAlternation({prodOccurrence:c.idx,rule:t,maxLookahead:c.maxLookahead||this.maxLookahead,hasPredicates:c.hasPredicates,dynamicTokensEnabled:this.dynamicTokensEnabled}),h=ls(this.fullRuleNameToShort[t.name],256,c.idx);this.setLaFuncCache(h,f)})}),k(i,c=>{this.computeLookaheadFunc(t,c.idx,768,"Repetition",c.maxLookahead,Ge(c))}),k(s,c=>{this.computeLookaheadFunc(t,c.idx,512,"Option",c.maxLookahead,Ge(c))}),k(a,c=>{this.computeLookaheadFunc(t,c.idx,1024,"RepetitionMandatory",c.maxLookahead,Ge(c))}),k(o,c=>{this.computeLookaheadFunc(t,c.idx,1536,"RepetitionMandatoryWithSeparator",c.maxLookahead,Ge(c))}),k(l,c=>{this.computeLookaheadFunc(t,c.idx,1280,"RepetitionWithSeparator",c.maxLookahead,Ge(c))})})})}computeLookaheadFunc(e,t,n,i,s,a){this.TRACE_INIT(`${a}${t===0?"":t}`,()=>{let o=this.lookaheadStrategy.buildLookaheadForOptional({prodOccurrence:t,rule:e,maxLookahead:s||this.maxLookahead,dynamicTokensEnabled:this.dynamicTokensEnabled,prodType:i}),l=ls(this.fullRuleNameToShort[e.name],n,t);this.setLaFuncCache(l,o)})}getKeyForAutomaticLookahead(e,t){let n=this.getLastExplicitRuleShortName();return ls(n,e,t)}getLaFuncFromCache(e){return this.lookAheadFuncsCache.get(e)}setLaFuncCache(e,t){this.lookAheadFuncsCache.set(e,t)}},qo=class extends Me{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)}},cs=new qo;function pp(r){cs.reset(),r.accept(cs);let e=cs.dslMethods;return cs.reset(),e}function Jo(r,e){isNaN(r.startOffset)===!0?(r.startOffset=e.startOffset,r.endOffset=e.endOffset):r.endOffseta.msg);throw Error(`Errors Detected in CST Visitor <${this.constructor.name}>: + ${s.join(` + +`).replace(/\n/g,` + `)}`)}}};return t.prototype=n,t.prototype.constructor=t,t._RULE_NAMES=e,t}function Lu(r,e,t){let n=function(){};Zo(n,r+"BaseSemanticsWithDefaults");let i=Object.create(t.prototype);return k(e,s=>{i[s]=gp}),n.prototype=i,n.prototype.constructor=n,n}var el;(function(r){r[r.REDUNDANT_METHOD=0]="REDUNDANT_METHOD",r[r.MISSING_METHOD=1]="MISSING_METHOD"})(el||(el={}));function yp(r,e){return Tp(r,e)}function Tp(r,e){let t=Re(e,i=>it(r[i])===!1),n=R(t,i=>({msg:`Missing visitor method: <${i}> on ${r.constructor.name} CST Visitor.`,type:el.MISSING_METHOD,methodName:i}));return gt(n)}var ps=class{initTreeBuilder(e){if(this.CST_STACK=[],this.outputCst=e.outputCst,this.nodeLocationTracking=I(e,"nodeLocationTracking")?e.nodeLocationTracking:De.nodeLocationTracking,!this.outputCst)this.cstInvocationStateUpdate=ce,this.cstFinallyStateUpdate=ce,this.cstPostTerminal=ce,this.cstPostNonTerminal=ce,this.cstPostRule=ce;else if(/full/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=Qo,this.setNodeLocationFromNode=Qo,this.cstPostRule=ce,this.setInitialNodeLocation=this.setInitialNodeLocationFullRecovery):(this.setNodeLocationFromToken=ce,this.setNodeLocationFromNode=ce,this.cstPostRule=this.cstPostRuleFull,this.setInitialNodeLocation=this.setInitialNodeLocationFullRegular);else if(/onlyOffset/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=Jo,this.setNodeLocationFromNode=Jo,this.cstPostRule=ce,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRecovery):(this.setNodeLocationFromToken=ce,this.setNodeLocationFromNode=ce,this.cstPostRule=this.cstPostRuleOnlyOffset,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRegular);else if(/none/i.test(this.nodeLocationTracking))this.setNodeLocationFromToken=ce,this.setNodeLocationFromNode=ce,this.cstPostRule=ce,this.setInitialNodeLocation=ce;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 t=this.LA(1);e.location={startOffset:t.startOffset,startLine:t.startLine,startColumn:t.startColumn,endOffset:NaN,endLine:NaN,endColumn:NaN}}cstInvocationStateUpdate(e){let t={name:e,children:Object.create(null)};this.setInitialNodeLocation(t),this.CST_STACK.push(t)}cstFinallyStateUpdate(){this.CST_STACK.pop()}cstPostRuleFull(e){let t=this.LA(0),n=e.location;n.startOffset<=t.startOffset?(n.endOffset=t.endOffset,n.endLine=t.endLine,n.endColumn=t.endColumn):(n.startOffset=NaN,n.startLine=NaN,n.startColumn=NaN)}cstPostRuleOnlyOffset(e){let t=this.LA(0),n=e.location;n.startOffset<=t.startOffset?n.endOffset=t.endOffset:n.startOffset=NaN}cstPostTerminal(e,t){let n=this.CST_STACK[this.CST_STACK.length-1];Cu(n,t,e),this.setNodeLocationFromToken(n.location,t)}cstPostNonTerminal(e,t){let n=this.CST_STACK[this.CST_STACK.length-1];_u(n,t,e),this.setNodeLocationFromNode(n.location,e.location)}getBaseCstVisitorConstructor(){if($e(this.baseCstVisitorConstructor)){let e=wu(this.className,mt(this.gastProductionsCache));return this.baseCstVisitorConstructor=e,e}return this.baseCstVisitorConstructor}getBaseCstVisitorConstructorWithDefaults(){if($e(this.baseCstVisitorWithDefaultsConstructor)){let e=Lu(this.className,mt(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 ms=class{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)):Fr}LA(e){let t=this.currIdx+e;return t<0||this.tokVectorLength<=t?Fr:this.tokVector[t]}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 gs=class{ACTION(e){return e.call(this)}consume(e,t,n){return this.consumeInternal(t,e,n)}subrule(e,t,n){return this.subruleInternal(t,e,n)}option(e,t){return this.optionInternal(t,e)}or(e,t){return this.orInternal(t,e)}many(e,t){return this.manyInternal(e,t)}atLeastOne(e,t){return this.atLeastOneInternal(e,t)}CONSUME(e,t){return this.consumeInternal(e,0,t)}CONSUME1(e,t){return this.consumeInternal(e,1,t)}CONSUME2(e,t){return this.consumeInternal(e,2,t)}CONSUME3(e,t){return this.consumeInternal(e,3,t)}CONSUME4(e,t){return this.consumeInternal(e,4,t)}CONSUME5(e,t){return this.consumeInternal(e,5,t)}CONSUME6(e,t){return this.consumeInternal(e,6,t)}CONSUME7(e,t){return this.consumeInternal(e,7,t)}CONSUME8(e,t){return this.consumeInternal(e,8,t)}CONSUME9(e,t){return this.consumeInternal(e,9,t)}SUBRULE(e,t){return this.subruleInternal(e,0,t)}SUBRULE1(e,t){return this.subruleInternal(e,1,t)}SUBRULE2(e,t){return this.subruleInternal(e,2,t)}SUBRULE3(e,t){return this.subruleInternal(e,3,t)}SUBRULE4(e,t){return this.subruleInternal(e,4,t)}SUBRULE5(e,t){return this.subruleInternal(e,5,t)}SUBRULE6(e,t){return this.subruleInternal(e,6,t)}SUBRULE7(e,t){return this.subruleInternal(e,7,t)}SUBRULE8(e,t){return this.subruleInternal(e,8,t)}SUBRULE9(e,t){return this.subruleInternal(e,9,t)}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,t,n=Ur){if(ie(this.definedRulesNames,e)){let a={message:rt.buildDuplicateRuleNameError({topLevelRule:e,grammarName:this.className}),type:ge.DUPLICATE_RULE_NAME,ruleName:e};this.definitionErrors.push(a)}this.definedRulesNames.push(e);let i=this.defineRule(e,t,n);return this[e]=i,i}OVERRIDE_RULE(e,t,n=Ur){let i=yu(e,this.definedRulesNames,this.className);this.definitionErrors=this.definitionErrors.concat(i);let s=this.defineRule(e,t,n);return this[e]=s,s}BACKTRACK(e,t){return function(){this.isBackTrackingStack.push(1);let n=this.saveRecogState();try{return e.apply(this,t),!0}catch(i){if(Mt(i))return!1;throw i}finally{this.reloadRecogState(n),this.isBackTrackingStack.pop()}}}getGAstProductions(){return this.gastProductionsCache}getSerializedGastProductions(){return Vi(te(this.gastProductionsCache))}};var ys=class{initRecognizerEngine(e,t){if(this.className=this.constructor.name,this.shortRuleNameToFull={},this.fullRuleNameToShort={},this.ruleShortNameIdx=256,this.tokenMatcher=$r,this.subruleIdx=0,this.definedRulesNames=[],this.tokensMap={},this.isBackTrackingStack=[],this.RULE_STACK=[],this.RULE_OCCURRENCE_STACK=[],this.gastProductionsCache={},I(t,"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(pe(e)){if(b(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(pe(e))this.tokensMap=ae(e,(s,a)=>(s[a.name]=a,s),{});else if(I(e,"modes")&&Oe(ue(te(e.modes)),Xc)){let s=ue(te(e.modes)),a=an(s);this.tokensMap=ae(a,(o,l)=>(o[l.name]=l,o),{})}else if(nc(e))this.tokensMap=ee(e);else throw new Error(" argument must be An Array of Token constructors, A dictionary of Token constructors or an IMultiModeLexerDefinition");this.tokensMap.EOF=ze;let n=I(e,"modes")?ue(te(e.modes)):te(e),i=Oe(n,s=>b(s.categoryMatches));this.tokenMatcher=i?$r:vt,kt(te(this.tokensMap))}defineRule(e,t,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=I(n,"resyncEnabled")?n.resyncEnabled:Ur.resyncEnabled,s=I(n,"recoveryValueFunc")?n.recoveryValueFunc:Ur.recoveryValueFunc,a=this.ruleShortNameIdx<<12;this.ruleShortNameIdx++,this.shortRuleNameToFull[a]=e,this.fullRuleNameToShort[e]=a;let o;return this.outputCst===!0?o=function(...u){try{this.ruleInvocationStateUpdate(a,e,this.subruleIdx),t.apply(this,u);let f=this.CST_STACK[this.CST_STACK.length-1];return this.cstPostRule(f),f}catch(f){return this.invokeRuleCatch(f,i,s)}finally{this.ruleFinallyStateUpdate()}}:o=function(...u){try{return this.ruleInvocationStateUpdate(a,e,this.subruleIdx),t.apply(this,u)}catch(f){return this.invokeRuleCatch(f,i,s)}finally{this.ruleFinallyStateUpdate()}},Object.assign(o,{ruleName:e,originalGrammarAction:t})}invokeRuleCatch(e,t,n){let i=this.RULE_STACK.length===1,s=t&&!this.isBackTracking()&&this.recoveryEnabled;if(Mt(e)){let a=e;if(s){let o=this.findReSyncTokenType();if(this.isInCurrentRuleReSyncSet(o))if(a.resyncedTokens=this.reSyncTo(o),this.outputCst){let l=this.CST_STACK[this.CST_STACK.length-1];return l.recoveredNode=!0,l}else return n(e);else{if(this.outputCst){let l=this.CST_STACK[this.CST_STACK.length-1];l.recoveredNode=!0,a.partialCstResult=l}throw a}}else{if(i)return this.moveToTerminatedState(),n(e);throw a}}else throw e}optionInternal(e,t){let n=this.getKeyForAutomaticLookahead(512,t);return this.optionInternalLogic(e,t,n)}optionInternalLogic(e,t,n){let i=this.getLaFuncFromCache(n),s;if(typeof e!="function"){s=e.DEF;let a=e.GATE;if(a!==void 0){let o=i;i=()=>a.call(this)&&o.call(this)}}else s=e;if(i.call(this)===!0)return s.call(this)}atLeastOneInternal(e,t){let n=this.getKeyForAutomaticLookahead(1024,e);return this.atLeastOneInternalLogic(e,t,n)}atLeastOneInternalLogic(e,t,n){let i=this.getLaFuncFromCache(n),s;if(typeof t!="function"){s=t.DEF;let a=t.GATE;if(a!==void 0){let o=i;i=()=>a.call(this)&&o.call(this)}}else s=t;if(i.call(this)===!0){let a=this.doSingleRepetition(s);for(;i.call(this)===!0&&a===!0;)a=this.doSingleRepetition(s)}else throw this.raiseEarlyExitException(e,ne.REPETITION_MANDATORY,t.ERR_MSG);this.attemptInRepetitionRecovery(this.atLeastOneInternal,[e,t],i,1024,e,es)}atLeastOneSepFirstInternal(e,t){let n=this.getKeyForAutomaticLookahead(1536,e);this.atLeastOneSepFirstInternalLogic(e,t,n)}atLeastOneSepFirstInternalLogic(e,t,n){let i=t.DEF,s=t.SEP;if(this.getLaFuncFromCache(n).call(this)===!0){i.call(this);let o=()=>this.tokenMatcher(this.LA(1),s);for(;this.tokenMatcher(this.LA(1),s)===!0;)this.CONSUME(s),i.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,s,o,i,Cn],o,1536,e,Cn)}else throw this.raiseEarlyExitException(e,ne.REPETITION_MANDATORY_WITH_SEPARATOR,t.ERR_MSG)}manyInternal(e,t){let n=this.getKeyForAutomaticLookahead(768,e);return this.manyInternalLogic(e,t,n)}manyInternalLogic(e,t,n){let i=this.getLaFuncFromCache(n),s;if(typeof t!="function"){s=t.DEF;let o=t.GATE;if(o!==void 0){let l=i;i=()=>o.call(this)&&l.call(this)}}else s=t;let a=!0;for(;i.call(this)===!0&&a===!0;)a=this.doSingleRepetition(s);this.attemptInRepetitionRecovery(this.manyInternal,[e,t],i,768,e,Zi,a)}manySepFirstInternal(e,t){let n=this.getKeyForAutomaticLookahead(1280,e);this.manySepFirstInternalLogic(e,t,n)}manySepFirstInternalLogic(e,t,n){let i=t.DEF,s=t.SEP;if(this.getLaFuncFromCache(n).call(this)===!0){i.call(this);let o=()=>this.tokenMatcher(this.LA(1),s);for(;this.tokenMatcher(this.LA(1),s)===!0;)this.CONSUME(s),i.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,s,o,i,Sn],o,1280,e,Sn)}}repetitionSepSecondInternal(e,t,n,i,s){for(;n();)this.CONSUME(t),i.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,t,n,i,s],n,1536,e,s)}doSingleRepetition(e){let t=this.getLexerPosition();return e.call(this),this.getLexerPosition()>t}orInternal(e,t){let n=this.getKeyForAutomaticLookahead(256,t),i=pe(e)?e:e.DEF,a=this.getLaFuncFromCache(n).call(this,i);if(a!==void 0)return i[a].ALT.call(this);this.raiseNoAltException(t,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),t=this.errorMessageProvider.buildNotAllInputParsedMessage({firstRedundant:e,ruleName:this.getCurrRuleFullName()});this.SAVE_ERROR(new On(t,e))}}subruleInternal(e,t,n){let i;try{let s=n!==void 0?n.ARGS:void 0;return this.subruleIdx=t,i=e.apply(this,s),this.cstPostNonTerminal(i,n!==void 0&&n.LABEL!==void 0?n.LABEL:e.ruleName),i}catch(s){throw this.subruleInternalError(s,n,e.ruleName)}}subruleInternalError(e,t,n){throw Mt(e)&&e.partialCstResult!==void 0&&(this.cstPostNonTerminal(e.partialCstResult,t!==void 0&&t.LABEL!==void 0?t.LABEL:n),delete e.partialCstResult),e}consumeInternal(e,t,n){let i;try{let s=this.LA(1);this.tokenMatcher(s,e)===!0?(this.consumeToken(),i=s):this.consumeInternalError(e,s,n)}catch(s){i=this.consumeInternalRecovery(e,t,s)}return this.cstPostTerminal(n!==void 0&&n.LABEL!==void 0?n.LABEL:e.name,i),i}consumeInternalError(e,t,n){let i,s=this.LA(0);throw n!==void 0&&n.ERR_MSG?i=n.ERR_MSG:i=this.errorMessageProvider.buildMismatchTokenMessage({expected:e,actual:t,previous:s,ruleName:this.getCurrRuleFullName()}),this.SAVE_ERROR(new lr(i,t,s))}consumeInternalRecovery(e,t,n){if(this.recoveryEnabled&&n.name==="MismatchedTokenException"&&!this.isBackTracking()){let i=this.getFollowsForInRuleRecovery(e,t);try{return this.tryInRuleRecovery(e,i)}catch(s){throw s.name===zo?n:s}}else throw n}saveRecogState(){let e=this.errors,t=ee(this.RULE_STACK);return{errors:e,lexerState:this.exportLexerState(),RULE_STACK:t,CST_STACK:this.CST_STACK}}reloadRecogState(e){this.errors=e.errors,this.importLexerState(e.lexerState),this.RULE_STACK=e.RULE_STACK}ruleInvocationStateUpdate(e,t,n){this.RULE_OCCURRENCE_STACK.push(n),this.RULE_STACK.push(e),this.cstInvocationStateUpdate(t)}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),ze)}reset(){this.resetLexerState(),this.subruleIdx=0,this.isBackTrackingStack=[],this.errors=[],this.RULE_STACK=[],this.CST_STACK=[],this.RULE_OCCURRENCE_STACK=[]}};var Ts=class{initErrorHandler(e){this._errors=[],this.errorMessageProvider=I(e,"errorMessageProvider")?e.errorMessageProvider:De.errorMessageProvider}SAVE_ERROR(e){if(Mt(e))return e.context={ruleStack:this.getHumanReadableRuleStack(),ruleOccurrenceStack:ee(this.RULE_OCCURRENCE_STACK)},this._errors.push(e),e;throw Error("Trying to save an Error which is not a RecognitionException")}get errors(){return ee(this._errors)}set errors(e){this._errors=e}raiseEarlyExitException(e,t,n){let i=this.getCurrRuleFullName(),s=this.getGAstProductions()[i],o=Mr(e,s,t,this.maxLookahead)[0],l=[];for(let u=1;u<=this.maxLookahead;u++)l.push(this.LA(u));let c=this.errorMessageProvider.buildEarlyExitMessage({expectedIterationPaths:o,actual:l,previous:this.LA(0),customUserDescription:n,ruleName:i});throw this.SAVE_ERROR(new $n(c,this.LA(1),this.LA(0)))}raiseNoAltException(e,t){let n=this.getCurrRuleFullName(),i=this.getGAstProductions()[n],s=br(e,i,this.maxLookahead),a=[];for(let c=1;c<=this.maxLookahead;c++)a.push(this.LA(c));let o=this.LA(0),l=this.errorMessageProvider.buildNoViableAltMessage({expectedPathsPerAlt:s,actual:a,previous:o,customUserDescription:t,ruleName:this.getCurrRuleFullName()});throw this.SAVE_ERROR(new Ln(l,this.LA(1),o))}};var xs=class{initContentAssist(){}computeContentAssist(e,t){let n=this.gastProductionsCache[e];if($e(n))throw Error(`Rule ->${e}<- does not exist in this grammar.`);return rs([n],t,this.tokenMatcher,this.maxLookahead)}getNextPossibleTokenTypes(e){let t=Ie(e.ruleStack),i=this.getGAstProductions()[t];return new Qi(i,e).startWalking()}};var As={description:"This Object indicates the Parser is during Recording Phase"};Object.freeze(As);var Ou=!0,$u=Math.pow(2,8)-1,bu=Ji({name:"RECORDING_PHASE_TOKEN",pattern:oe.NA});kt([bu]);var Mu=or(bu,`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(Mu);var Rp={name:`This CSTNode indicates the Parser is in Recording Phase + See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`,children:{}},Rs=class{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 t=e>0?e:"";this[`CONSUME${t}`]=function(n,i){return this.consumeInternalRecord(n,e,i)},this[`SUBRULE${t}`]=function(n,i){return this.subruleInternalRecord(n,e,i)},this[`OPTION${t}`]=function(n){return this.optionInternalRecord(n,e)},this[`OR${t}`]=function(n){return this.orInternalRecord(n,e)},this[`MANY${t}`]=function(n){this.manyInternalRecord(e,n)},this[`MANY_SEP${t}`]=function(n){this.manySepFirstInternalRecord(e,n)},this[`AT_LEAST_ONE${t}`]=function(n){this.atLeastOneInternalRecord(e,n)},this[`AT_LEAST_ONE_SEP${t}`]=function(n){this.atLeastOneSepFirstInternalRecord(e,n)}}this.consume=function(e,t,n){return this.consumeInternalRecord(t,e,n)},this.subrule=function(e,t,n){return this.subruleInternalRecord(t,e,n)},this.option=function(e,t){return this.optionInternalRecord(t,e)},this.or=function(e,t){return this.orInternalRecord(t,e)},this.many=function(e,t){this.manyInternalRecord(e,t)},this.atLeastOne=function(e,t){this.atLeastOneInternalRecord(e,t)},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 t=0;t<10;t++){let n=t>0?t:"";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,t){return()=>!0}LA_RECORD(e){return Fr}topLevelRuleRecord(e,t){try{let n=new be({definition:[],name:e});return n.name=e,this.recordingProdStack.push(n),t.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,t){return bn.call(this,H,e,t)}atLeastOneInternalRecord(e,t){bn.call(this,J,t,e)}atLeastOneSepFirstInternalRecord(e,t){bn.call(this,Q,t,e,Ou)}manyInternalRecord(e,t){bn.call(this,D,t,e)}manySepFirstInternalRecord(e,t){bn.call(this,z,t,e,Ou)}orInternalRecord(e,t){return Ep.call(this,e,t)}subruleInternalRecord(e,t,n){if(Es(t),!e||I(e,"ruleName")===!1){let o=new Error(` argument is invalid expecting a Parser method reference but got: <${JSON.stringify(e)}> + inside top level rule: <${this.recordingProdStack[0].name}>`);throw o.KNOWN_RECORDER_ERROR=!0,o}let i=yt(this.recordingProdStack),s=e.ruleName,a=new K({idx:t,nonTerminalName:s,label:n?.LABEL,referencedRule:void 0});return i.definition.push(a),this.outputCst?Rp:As}consumeInternalRecord(e,t,n){if(Es(t),!bo(e)){let a=new Error(` argument is invalid expecting a TokenType reference but got: <${JSON.stringify(e)}> + inside top level rule: <${this.recordingProdStack[0].name}>`);throw a.KNOWN_RECORDER_ERROR=!0,a}let i=yt(this.recordingProdStack),s=new M({idx:t,terminalType:e,label:n?.LABEL});return i.definition.push(s),Mu}};function bn(r,e,t,n=!1){Es(t);let i=yt(this.recordingProdStack),s=it(e)?e:e.DEF,a=new r({definition:[],idx:t});return n&&(a.separator=e.SEP),I(e,"MAX_LOOKAHEAD")&&(a.maxLookahead=e.MAX_LOOKAHEAD),this.recordingProdStack.push(a),s.call(this),i.definition.push(a),this.recordingProdStack.pop(),As}function Ep(r,e){Es(e);let t=yt(this.recordingProdStack),n=pe(r)===!1,i=n===!1?r:r.DEF,s=new q({definition:[],idx:e,ignoreAmbiguities:n&&r.IGNORE_AMBIGUITIES===!0});I(r,"MAX_LOOKAHEAD")&&(s.maxLookahead=r.MAX_LOOKAHEAD);let a=vi(i,o=>it(o.GATE));return s.hasPredicates=a,t.definition.push(s),k(i,o=>{let l=new Y({definition:[]});s.definition.push(l),I(o,"IGNORE_AMBIGUITIES")?l.ignoreAmbiguities=o.IGNORE_AMBIGUITIES:I(o,"GATE")&&(l.ignoreAmbiguities=!0),this.recordingProdStack.push(l),o.ALT.call(this),this.recordingProdStack.pop()}),As}function Pu(r){return r===0?"":`${r}`}function Es(r){if(r<0||r>$u){let e=new Error(`Invalid DSL Method idx value: <${r}> + Idx value must be a none negative value smaller than ${$u+1}`);throw e.KNOWN_RECORDER_ERROR=!0,e}}var vs=class{initPerformanceTracer(e){if(I(e,"traceInitPerf")){let t=e.traceInitPerf,n=typeof t=="number";this.traceInitMaxIdent=n?t:1/0,this.traceInitPerf=n?t>0:t}else this.traceInitMaxIdent=0,this.traceInitPerf=De.traceInitPerf;this.traceInitIndent=-1}TRACE_INIT(e,t){if(this.traceInitPerf===!0){this.traceInitIndent++;let n=new Array(this.traceInitIndent+1).join(" ");this.traceInitIndent <${e}>`);let{time:i,value:s}=An(t),a=i>10?console.warn:console.log;return this.traceInitIndent time: ${i}ms`),this.traceInitIndent--,s}else return t()}};function Du(r,e){e.forEach(t=>{let n=t.prototype;Object.getOwnPropertyNames(n).forEach(i=>{if(i==="constructor")return;let s=Object.getOwnPropertyDescriptor(n,i);s&&(s.get||s.set)?Object.defineProperty(r.prototype,i,s):r.prototype[i]=t.prototype[i]})})}var Fr=or(ze,"",NaN,NaN,NaN,NaN,NaN,NaN);Object.freeze(Fr);var De=Object.freeze({recoveryEnabled:!1,maxLookahead:3,dynamicTokensEnabled:!1,outputCst:!0,errorMessageProvider:Nt,nodeLocationTracking:"none",traceInitPerf:!1,skipValidations:!1}),Ur=Object.freeze({recoveryValueFunc:()=>{},resyncEnabled:!0}),ge;(function(r){r[r.INVALID_RULE_NAME=0]="INVALID_RULE_NAME",r[r.DUPLICATE_RULE_NAME=1]="DUPLICATE_RULE_NAME",r[r.INVALID_RULE_OVERRIDE=2]="INVALID_RULE_OVERRIDE",r[r.DUPLICATE_PRODUCTIONS=3]="DUPLICATE_PRODUCTIONS",r[r.UNRESOLVED_SUBRULE_REF=4]="UNRESOLVED_SUBRULE_REF",r[r.LEFT_RECURSION=5]="LEFT_RECURSION",r[r.NONE_LAST_EMPTY_ALT=6]="NONE_LAST_EMPTY_ALT",r[r.AMBIGUOUS_ALTS=7]="AMBIGUOUS_ALTS",r[r.CONFLICT_TOKENS_RULES_NAMESPACE=8]="CONFLICT_TOKENS_RULES_NAMESPACE",r[r.INVALID_TOKEN_NAME=9]="INVALID_TOKEN_NAME",r[r.NO_NON_EMPTY_LOOKAHEAD=10]="NO_NON_EMPTY_LOOKAHEAD",r[r.AMBIGUOUS_PREFIX_ALTS=11]="AMBIGUOUS_PREFIX_ALTS",r[r.TOO_MANY_ALTS=12]="TOO_MANY_ALTS",r[r.CUSTOM_LOOKAHEAD_VALIDATION=13]="CUSTOM_LOOKAHEAD_VALIDATION"})(ge||(ge={}));function ks(r=void 0){return function(){return r}}var Mn=class r{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 t=this.className;this.TRACE_INIT("toFastProps",()=>{vn(this)}),this.TRACE_INIT("Grammar Recording",()=>{try{this.enableRecording(),k(this.definedRulesNames,i=>{let a=this[i].originalGrammarAction,o;this.TRACE_INIT(`${i} Rule`,()=>{o=this.topLevelRuleRecord(i,a)}),this.gastProductionsCache[i]=o})}finally{this.disableRecording()}});let n=[];if(this.TRACE_INIT("Grammar Resolving",()=>{n=Eu({rules:te(this.gastProductionsCache)}),this.definitionErrors=this.definitionErrors.concat(n)}),this.TRACE_INIT("Grammar Validations",()=>{if(b(n)&&this.skipValidations===!1){let i=Au({rules:te(this.gastProductionsCache),tokenTypes:te(this.tokensMap),errMsgProvider:rt,grammarName:t}),s=pu({lookaheadStrategy:this.lookaheadStrategy,rules:te(this.gastProductionsCache),tokenTypes:te(this.tokensMap),grammarName:t});this.definitionErrors=this.definitionErrors.concat(i,s)}}),b(this.definitionErrors)&&(this.recoveryEnabled&&this.TRACE_INIT("computeAllProdsFollows",()=>{let i=_c(te(this.gastProductionsCache));this.resyncFollows=i}),this.TRACE_INIT("ComputeLookaheadFunctions",()=>{var i,s;(s=(i=this.lookaheadStrategy).initialize)===null||s===void 0||s.call(i,{rules:te(this.gastProductionsCache)}),this.preComputeLookaheadFunctions(te(this.gastProductionsCache))})),!r.DEFER_DEFINITION_ERRORS_HANDLING&&!b(this.definitionErrors))throw e=R(this.definitionErrors,i=>i.message),new Error(`Parser Definition Errors detected: + ${e.join(` +------------------------------- +`)}`)})}constructor(e,t){this.definitionErrors=[],this.selfAnalysisDone=!1;let n=this;if(n.initErrorHandler(t),n.initLexerAdapter(),n.initLooksAhead(t),n.initRecognizerEngine(e,t),n.initRecoverable(t),n.initTreeBuilder(t),n.initContentAssist(),n.initGastRecorder(t),n.initPerformanceTracer(t),I(t,"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=I(t,"skipValidations")?t.skipValidations:De.skipValidations}};Mn.DEFER_DEFINITION_ERRORS_HANDLING=!1;Du(Mn,[os,us,ps,ms,ys,gs,Ts,xs,Rs,vs]);var Dn=class extends Mn{constructor(e,t=De){let n=ee(t);n.outputCst=!1,super(e,n)}};function cr(r,e,t){return`${r.name}_${e}_${t}`}var Dt=1,vp=2,Fu=4,Uu=5;var Wr=7,kp=8,Ip=9,Np=10,Sp=11,Gu=12,Fn=class{constructor(e){this.target=e}isEpsilon(){return!1}},Gr=class extends Fn{constructor(e,t){super(e),this.tokenType=t}},Un=class extends Fn{constructor(e){super(e)}isEpsilon(){return!0}},Br=class extends Fn{constructor(e,t,n){super(e),this.rule=t,this.followState=n}isEpsilon(){return!0}};function Bu(r){let e={decisionMap:{},decisionStates:[],ruleToStartState:new Map,ruleToStopState:new Map,states:[]};Cp(e,r);let t=r.length;for(let n=0;nWu(r,e,a));return jr(r,e,n,t,...i)}function Pp(r,e,t){let n=xe(r,e,t,{type:Dt});Ft(r,n);let i=jr(r,e,n,t,ur(r,e,t));return bp(r,e,t,i)}function ur(r,e,t){let n=Re(R(t.definition,i=>Wu(r,e,i)),i=>i!==void 0);return n.length===1?n[0]:n.length===0?void 0:Dp(r,n)}function ju(r,e,t,n,i){let s=n.left,a=n.right,o=xe(r,e,t,{type:Sp});Ft(r,o);let l=xe(r,e,t,{type:Gu});return s.loopback=o,l.loopback=o,r.decisionMap[cr(e,i?"RepetitionMandatoryWithSeparator":"RepetitionMandatory",t.idx)]=o,de(a,o),i===void 0?(de(o,s),de(o,l)):(de(o,l),de(o,i.left),de(i.right,s)),{left:s,right:l}}function Vu(r,e,t,n,i){let s=n.left,a=n.right,o=xe(r,e,t,{type:Np});Ft(r,o);let l=xe(r,e,t,{type:Gu}),c=xe(r,e,t,{type:Ip});return o.loopback=c,l.loopback=c,de(o,s),de(o,l),de(a,c),i!==void 0?(de(c,l),de(c,i.left),de(i.right,s)):de(c,o),r.decisionMap[cr(e,i?"RepetitionWithSeparator":"Repetition",t.idx)]=o,{left:o,right:l}}function bp(r,e,t,n){let i=n.left,s=n.right;return de(i,s),r.decisionMap[cr(e,"Option",t.idx)]=i,n}function Ft(r,e){return r.decisionStates.push(e),e.decision=r.decisionStates.length-1,e.decision}function jr(r,e,t,n,...i){let s=xe(r,e,n,{type:kp,start:t});t.end=s;for(let o of i)o!==void 0?(de(t,o.left),de(o.right,s)):de(t,s);let a={left:t,right:s};return r.decisionMap[cr(e,Mp(n),n.idx)]=t,a}function Mp(r){if(r instanceof q)return"Alternation";if(r instanceof H)return"Option";if(r instanceof D)return"Repetition";if(r instanceof z)return"RepetitionWithSeparator";if(r instanceof J)return"RepetitionMandatory";if(r instanceof Q)return"RepetitionMandatoryWithSeparator";throw new Error("Invalid production type encountered")}function Dp(r,e){let t=e.length;for(let s=0;se.alt)}get key(){let e="";for(let t in this.map)e+=t+":";return e}};function il(r,e=!0){return`${e?`a${r.alt}`:""}s${r.state.stateNumber}:${r.stack.map(t=>t.stateNumber.toString()).join("_")}`}function Bp(r,e){let t={};return n=>{let i=n.toString(),s=t[i];return s!==void 0||(s={atnStartState:r,decision:e,states:{}},t[i]=s),s}}var Is=class{constructor(){this.predicates=[]}is(e){return e>=this.predicates.length||this.predicates[e]}set(e,t){this.predicates[e]=t}toString(){let e="",t=this.predicates.length;for(let n=0;nconsole.log(n)}initialize(e){this.atn=Bu(e.rules),this.dfas=Wp(this.atn)}validateAmbiguousAlternationAlternatives(){return[]}validateEmptyOrAlternatives(){return[]}buildLookaheadForAlternation(e){let{prodOccurrence:t,rule:n,hasPredicates:i,dynamicTokensEnabled:s}=e,a=this.dfas,o=this.logging,l=cr(n,"Alternation",t),u=this.atn.decisionMap[l].decision,f=R(is({maxLookahead:1,occurrence:t,prodType:"Alternation",rule:n}),h=>R(h,d=>d[0]));if(Hu(f,!1)&&!s){let h=ae(f,(d,m,y)=>(k(m,v=>{v&&(d[v.tokenTypeIdx]=y,k(v.categoryMatches,x=>{d[x]=y}))}),d),{});return i?function(d){var m;let y=this.LA(1),v=h[y.tokenTypeIdx];if(d!==void 0&&v!==void 0){let x=(m=d[v])===null||m===void 0?void 0:m.GATE;if(x!==void 0&&x.call(this)===!1)return}return v}:function(){let d=this.LA(1);return h[d.tokenTypeIdx]}}else return i?function(h){let d=new Is,m=h===void 0?0:h.length;for(let v=0;vR(h,d=>d[0]));if(Hu(f)&&f[0][0]&&!s){let h=f[0],d=ue(h);if(d.length===1&&b(d[0].categoryMatches)){let y=d[0].tokenTypeIdx;return function(){return this.LA(1).tokenTypeIdx===y}}else{let m=ae(d,(y,v)=>(v!==void 0&&(y[v.tokenTypeIdx]=!0,k(v.categoryMatches,x=>{y[x]=!0})),y),{});return function(){let y=this.LA(1);return m[y.tokenTypeIdx]===!0}}}return function(){let h=sl.call(this,a,u,Ku,o);return typeof h=="object"?!1:h===0}}};function Hu(r,e=!0){let t=new Set;for(let n of r){let i=new Set;for(let s of n){if(s===void 0){if(e)break;return!1}let a=[s.tokenTypeIdx].concat(s.categoryMatches);for(let o of a)if(t.has(o)){if(!i.has(o))return!1}else t.add(o),i.add(o)}}return!0}function Wp(r){let e=r.decisionStates.length,t=Array(e);for(let n=0;nIt(i)).join(", "),t=r.production.idx===0?"":r.production.idx,n=`Ambiguous Alternatives Detected: <${r.ambiguityIndices.join(", ")}> in <${zp(r.production)}${t}> inside <${r.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 zp(r){if(r instanceof K)return"SUBRULE";if(r instanceof H)return"OPTION";if(r instanceof q)return"OR";if(r instanceof J)return"AT_LEAST_ONE";if(r instanceof Q)return"AT_LEAST_ONE_SEP";if(r instanceof z)return"MANY_SEP";if(r instanceof D)return"MANY";if(r instanceof M)return"CONSUME";throw Error("non exhaustive match")}function qp(r,e,t){let n=Ne(e.configs.elements,s=>s.state.transitions),i=ac(n.filter(s=>s instanceof Gr).map(s=>s.tokenType),s=>s.tokenTypeIdx);return{actualToken:t,possibleTokenTypes:i,tokenPath:r}}function Xp(r,e){return r.edges[e.tokenTypeIdx]}function Yp(r,e,t){let n=new Vr,i=[];for(let a of r.elements){if(t.is(a.alt)===!1)continue;if(a.state.type===Wr){i.push(a);continue}let o=a.state.transitions.length;for(let l=0;l0&&!tm(s))for(let a of i)s.add(a);return s}function Jp(r,e){if(r instanceof Gr&&Nn(e,r.tokenType))return r.target}function Qp(r,e){let t;for(let n of r.elements)if(e.is(n.alt)===!0){if(t===void 0)t=n.alt;else if(t!==n.alt)return}return t}function qu(r){return{configs:r,edges:{},isAcceptState:!1,prediction:-1}}function zu(r,e,t,n){return n=Xu(r,n),e.edges[t.tokenTypeIdx]=n,n}function Xu(r,e){if(e===Gn)return e;let t=e.configs.key,n=r.states[t];return n!==void 0?n:(e.configs.finalize(),r.states[t]=e,e)}function Zp(r){let e=new Vr,t=r.transitions.length;for(let n=0;n0){let i=[...r.stack],a={state:i.pop(),alt:r.alt,stack:i};Ns(a,e)}else e.add(r);return}t.epsilonOnlyTransitions||e.add(r);let n=t.transitions.length;for(let i=0;i1)return!0;return!1}function am(r){for(let e of Array.from(r.values()))if(Object.keys(e).length===1)return!0;return!1}var Yu;(function(r){function e(t){return typeof t=="string"}r.is=e})(Yu||(Yu={}));var al;(function(r){function e(t){return typeof t=="string"}r.is=e})(al||(al={}));var Ju;(function(r){r.MIN_VALUE=-2147483648,r.MAX_VALUE=2147483647;function e(t){return typeof t=="number"&&r.MIN_VALUE<=t&&t<=r.MAX_VALUE}r.is=e})(Ju||(Ju={}));var Ss;(function(r){r.MIN_VALUE=0,r.MAX_VALUE=2147483647;function e(t){return typeof t=="number"&&r.MIN_VALUE<=t&&t<=r.MAX_VALUE}r.is=e})(Ss||(Ss={}));var G;(function(r){function e(n,i){return n===Number.MAX_VALUE&&(n=Ss.MAX_VALUE),i===Number.MAX_VALUE&&(i=Ss.MAX_VALUE),{line:n,character:i}}r.create=e;function t(n){let i=n;return p.objectLiteral(i)&&p.uinteger(i.line)&&p.uinteger(i.character)}r.is=t})(G||(G={}));var F;(function(r){function e(n,i,s,a){if(p.uinteger(n)&&p.uinteger(i)&&p.uinteger(s)&&p.uinteger(a))return{start:G.create(n,i),end:G.create(s,a)};if(G.is(n)&&G.is(i))return{start:n,end:i};throw new Error(`Range#create called with invalid arguments[${n}, ${i}, ${s}, ${a}]`)}r.create=e;function t(n){let i=n;return p.objectLiteral(i)&&G.is(i.start)&&G.is(i.end)}r.is=t})(F||(F={}));var Cs;(function(r){function e(n,i){return{uri:n,range:i}}r.create=e;function t(n){let i=n;return p.objectLiteral(i)&&F.is(i.range)&&(p.string(i.uri)||p.undefined(i.uri))}r.is=t})(Cs||(Cs={}));var Qu;(function(r){function e(n,i,s,a){return{targetUri:n,targetRange:i,targetSelectionRange:s,originSelectionRange:a}}r.create=e;function t(n){let i=n;return p.objectLiteral(i)&&F.is(i.targetRange)&&p.string(i.targetUri)&&F.is(i.targetSelectionRange)&&(F.is(i.originSelectionRange)||p.undefined(i.originSelectionRange))}r.is=t})(Qu||(Qu={}));var ol;(function(r){function e(n,i,s,a){return{red:n,green:i,blue:s,alpha:a}}r.create=e;function t(n){let i=n;return p.objectLiteral(i)&&p.numberRange(i.red,0,1)&&p.numberRange(i.green,0,1)&&p.numberRange(i.blue,0,1)&&p.numberRange(i.alpha,0,1)}r.is=t})(ol||(ol={}));var Zu;(function(r){function e(n,i){return{range:n,color:i}}r.create=e;function t(n){let i=n;return p.objectLiteral(i)&&F.is(i.range)&&ol.is(i.color)}r.is=t})(Zu||(Zu={}));var ef;(function(r){function e(n,i,s){return{label:n,textEdit:i,additionalTextEdits:s}}r.create=e;function t(n){let i=n;return p.objectLiteral(i)&&p.string(i.label)&&(p.undefined(i.textEdit)||Hr.is(i))&&(p.undefined(i.additionalTextEdits)||p.typedArray(i.additionalTextEdits,Hr.is))}r.is=t})(ef||(ef={}));var tf;(function(r){r.Comment="comment",r.Imports="imports",r.Region="region"})(tf||(tf={}));var rf;(function(r){function e(n,i,s,a,o,l){let c={startLine:n,endLine:i};return p.defined(s)&&(c.startCharacter=s),p.defined(a)&&(c.endCharacter=a),p.defined(o)&&(c.kind=o),p.defined(l)&&(c.collapsedText=l),c}r.create=e;function t(n){let i=n;return p.objectLiteral(i)&&p.uinteger(i.startLine)&&p.uinteger(i.startLine)&&(p.undefined(i.startCharacter)||p.uinteger(i.startCharacter))&&(p.undefined(i.endCharacter)||p.uinteger(i.endCharacter))&&(p.undefined(i.kind)||p.string(i.kind))}r.is=t})(rf||(rf={}));var ll;(function(r){function e(n,i){return{location:n,message:i}}r.create=e;function t(n){let i=n;return p.defined(i)&&Cs.is(i.location)&&p.string(i.message)}r.is=t})(ll||(ll={}));var nf;(function(r){r.Error=1,r.Warning=2,r.Information=3,r.Hint=4})(nf||(nf={}));var sf;(function(r){r.Unnecessary=1,r.Deprecated=2})(sf||(sf={}));var af;(function(r){function e(t){let n=t;return p.objectLiteral(n)&&p.string(n.href)}r.is=e})(af||(af={}));var _s;(function(r){function e(n,i,s,a,o,l){let c={range:n,message:i};return p.defined(s)&&(c.severity=s),p.defined(a)&&(c.code=a),p.defined(o)&&(c.source=o),p.defined(l)&&(c.relatedInformation=l),c}r.create=e;function t(n){var i;let s=n;return p.defined(s)&&F.is(s.range)&&p.string(s.message)&&(p.number(s.severity)||p.undefined(s.severity))&&(p.integer(s.code)||p.string(s.code)||p.undefined(s.code))&&(p.undefined(s.codeDescription)||p.string((i=s.codeDescription)===null||i===void 0?void 0:i.href))&&(p.string(s.source)||p.undefined(s.source))&&(p.undefined(s.relatedInformation)||p.typedArray(s.relatedInformation,ll.is))}r.is=t})(_s||(_s={}));var Kr;(function(r){function e(n,i,...s){let a={title:n,command:i};return p.defined(s)&&s.length>0&&(a.arguments=s),a}r.create=e;function t(n){let i=n;return p.defined(i)&&p.string(i.title)&&p.string(i.command)}r.is=t})(Kr||(Kr={}));var Hr;(function(r){function e(s,a){return{range:s,newText:a}}r.replace=e;function t(s,a){return{range:{start:s,end:s},newText:a}}r.insert=t;function n(s){return{range:s,newText:""}}r.del=n;function i(s){let a=s;return p.objectLiteral(a)&&p.string(a.newText)&&F.is(a.range)}r.is=i})(Hr||(Hr={}));var cl;(function(r){function e(n,i,s){let a={label:n};return i!==void 0&&(a.needsConfirmation=i),s!==void 0&&(a.description=s),a}r.create=e;function t(n){let i=n;return p.objectLiteral(i)&&p.string(i.label)&&(p.boolean(i.needsConfirmation)||i.needsConfirmation===void 0)&&(p.string(i.description)||i.description===void 0)}r.is=t})(cl||(cl={}));var zr;(function(r){function e(t){let n=t;return p.string(n)}r.is=e})(zr||(zr={}));var of;(function(r){function e(s,a,o){return{range:s,newText:a,annotationId:o}}r.replace=e;function t(s,a,o){return{range:{start:s,end:s},newText:a,annotationId:o}}r.insert=t;function n(s,a){return{range:s,newText:"",annotationId:a}}r.del=n;function i(s){let a=s;return Hr.is(a)&&(cl.is(a.annotationId)||zr.is(a.annotationId))}r.is=i})(of||(of={}));var ul;(function(r){function e(n,i){return{textDocument:n,edits:i}}r.create=e;function t(n){let i=n;return p.defined(i)&&ml.is(i.textDocument)&&Array.isArray(i.edits)}r.is=t})(ul||(ul={}));var fl;(function(r){function e(n,i,s){let a={kind:"create",uri:n};return i!==void 0&&(i.overwrite!==void 0||i.ignoreIfExists!==void 0)&&(a.options=i),s!==void 0&&(a.annotationId=s),a}r.create=e;function t(n){let i=n;return i&&i.kind==="create"&&p.string(i.uri)&&(i.options===void 0||(i.options.overwrite===void 0||p.boolean(i.options.overwrite))&&(i.options.ignoreIfExists===void 0||p.boolean(i.options.ignoreIfExists)))&&(i.annotationId===void 0||zr.is(i.annotationId))}r.is=t})(fl||(fl={}));var dl;(function(r){function e(n,i,s,a){let o={kind:"rename",oldUri:n,newUri:i};return s!==void 0&&(s.overwrite!==void 0||s.ignoreIfExists!==void 0)&&(o.options=s),a!==void 0&&(o.annotationId=a),o}r.create=e;function t(n){let i=n;return i&&i.kind==="rename"&&p.string(i.oldUri)&&p.string(i.newUri)&&(i.options===void 0||(i.options.overwrite===void 0||p.boolean(i.options.overwrite))&&(i.options.ignoreIfExists===void 0||p.boolean(i.options.ignoreIfExists)))&&(i.annotationId===void 0||zr.is(i.annotationId))}r.is=t})(dl||(dl={}));var hl;(function(r){function e(n,i,s){let a={kind:"delete",uri:n};return i!==void 0&&(i.recursive!==void 0||i.ignoreIfNotExists!==void 0)&&(a.options=i),s!==void 0&&(a.annotationId=s),a}r.create=e;function t(n){let i=n;return i&&i.kind==="delete"&&p.string(i.uri)&&(i.options===void 0||(i.options.recursive===void 0||p.boolean(i.options.recursive))&&(i.options.ignoreIfNotExists===void 0||p.boolean(i.options.ignoreIfNotExists)))&&(i.annotationId===void 0||zr.is(i.annotationId))}r.is=t})(hl||(hl={}));var pl;(function(r){function e(t){let n=t;return n&&(n.changes!==void 0||n.documentChanges!==void 0)&&(n.documentChanges===void 0||n.documentChanges.every(i=>p.string(i.kind)?fl.is(i)||dl.is(i)||hl.is(i):ul.is(i)))}r.is=e})(pl||(pl={}));var lf;(function(r){function e(n){return{uri:n}}r.create=e;function t(n){let i=n;return p.defined(i)&&p.string(i.uri)}r.is=t})(lf||(lf={}));var cf;(function(r){function e(n,i){return{uri:n,version:i}}r.create=e;function t(n){let i=n;return p.defined(i)&&p.string(i.uri)&&p.integer(i.version)}r.is=t})(cf||(cf={}));var ml;(function(r){function e(n,i){return{uri:n,version:i}}r.create=e;function t(n){let i=n;return p.defined(i)&&p.string(i.uri)&&(i.version===null||p.integer(i.version))}r.is=t})(ml||(ml={}));var uf;(function(r){function e(n,i,s,a){return{uri:n,languageId:i,version:s,text:a}}r.create=e;function t(n){let i=n;return p.defined(i)&&p.string(i.uri)&&p.string(i.languageId)&&p.integer(i.version)&&p.string(i.text)}r.is=t})(uf||(uf={}));var gl;(function(r){r.PlainText="plaintext",r.Markdown="markdown";function e(t){let n=t;return n===r.PlainText||n===r.Markdown}r.is=e})(gl||(gl={}));var Wn;(function(r){function e(t){let n=t;return p.objectLiteral(t)&&gl.is(n.kind)&&p.string(n.value)}r.is=e})(Wn||(Wn={}));var ff;(function(r){r.Text=1,r.Method=2,r.Function=3,r.Constructor=4,r.Field=5,r.Variable=6,r.Class=7,r.Interface=8,r.Module=9,r.Property=10,r.Unit=11,r.Value=12,r.Enum=13,r.Keyword=14,r.Snippet=15,r.Color=16,r.File=17,r.Reference=18,r.Folder=19,r.EnumMember=20,r.Constant=21,r.Struct=22,r.Event=23,r.Operator=24,r.TypeParameter=25})(ff||(ff={}));var df;(function(r){r.PlainText=1,r.Snippet=2})(df||(df={}));var hf;(function(r){r.Deprecated=1})(hf||(hf={}));var pf;(function(r){function e(n,i,s){return{newText:n,insert:i,replace:s}}r.create=e;function t(n){let i=n;return i&&p.string(i.newText)&&F.is(i.insert)&&F.is(i.replace)}r.is=t})(pf||(pf={}));var mf;(function(r){r.asIs=1,r.adjustIndentation=2})(mf||(mf={}));var gf;(function(r){function e(t){let n=t;return n&&(p.string(n.detail)||n.detail===void 0)&&(p.string(n.description)||n.description===void 0)}r.is=e})(gf||(gf={}));var yf;(function(r){function e(t){return{label:t}}r.create=e})(yf||(yf={}));var Tf;(function(r){function e(t,n){return{items:t||[],isIncomplete:!!n}}r.create=e})(Tf||(Tf={}));var ws;(function(r){function e(n){return n.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")}r.fromPlainText=e;function t(n){let i=n;return p.string(i)||p.objectLiteral(i)&&p.string(i.language)&&p.string(i.value)}r.is=t})(ws||(ws={}));var xf;(function(r){function e(t){let n=t;return!!n&&p.objectLiteral(n)&&(Wn.is(n.contents)||ws.is(n.contents)||p.typedArray(n.contents,ws.is))&&(t.range===void 0||F.is(t.range))}r.is=e})(xf||(xf={}));var Rf;(function(r){function e(t,n){return n?{label:t,documentation:n}:{label:t}}r.create=e})(Rf||(Rf={}));var Ef;(function(r){function e(t,n,...i){let s={label:t};return p.defined(n)&&(s.documentation=n),p.defined(i)?s.parameters=i:s.parameters=[],s}r.create=e})(Ef||(Ef={}));var Af;(function(r){r.Text=1,r.Read=2,r.Write=3})(Af||(Af={}));var vf;(function(r){function e(t,n){let i={range:t};return p.number(n)&&(i.kind=n),i}r.create=e})(vf||(vf={}));var kf;(function(r){r.File=1,r.Module=2,r.Namespace=3,r.Package=4,r.Class=5,r.Method=6,r.Property=7,r.Field=8,r.Constructor=9,r.Enum=10,r.Interface=11,r.Function=12,r.Variable=13,r.Constant=14,r.String=15,r.Number=16,r.Boolean=17,r.Array=18,r.Object=19,r.Key=20,r.Null=21,r.EnumMember=22,r.Struct=23,r.Event=24,r.Operator=25,r.TypeParameter=26})(kf||(kf={}));var If;(function(r){r.Deprecated=1})(If||(If={}));var Nf;(function(r){function e(t,n,i,s,a){let o={name:t,kind:n,location:{uri:s,range:i}};return a&&(o.containerName=a),o}r.create=e})(Nf||(Nf={}));var Sf;(function(r){function e(t,n,i,s){return s!==void 0?{name:t,kind:n,location:{uri:i,range:s}}:{name:t,kind:n,location:{uri:i}}}r.create=e})(Sf||(Sf={}));var Cf;(function(r){function e(n,i,s,a,o,l){let c={name:n,detail:i,kind:s,range:a,selectionRange:o};return l!==void 0&&(c.children=l),c}r.create=e;function t(n){let i=n;return i&&p.string(i.name)&&p.number(i.kind)&&F.is(i.range)&&F.is(i.selectionRange)&&(i.detail===void 0||p.string(i.detail))&&(i.deprecated===void 0||p.boolean(i.deprecated))&&(i.children===void 0||Array.isArray(i.children))&&(i.tags===void 0||Array.isArray(i.tags))}r.is=t})(Cf||(Cf={}));var _f;(function(r){r.Empty="",r.QuickFix="quickfix",r.Refactor="refactor",r.RefactorExtract="refactor.extract",r.RefactorInline="refactor.inline",r.RefactorRewrite="refactor.rewrite",r.Source="source",r.SourceOrganizeImports="source.organizeImports",r.SourceFixAll="source.fixAll"})(_f||(_f={}));var Ls;(function(r){r.Invoked=1,r.Automatic=2})(Ls||(Ls={}));var wf;(function(r){function e(n,i,s){let a={diagnostics:n};return i!=null&&(a.only=i),s!=null&&(a.triggerKind=s),a}r.create=e;function t(n){let i=n;return p.defined(i)&&p.typedArray(i.diagnostics,_s.is)&&(i.only===void 0||p.typedArray(i.only,p.string))&&(i.triggerKind===void 0||i.triggerKind===Ls.Invoked||i.triggerKind===Ls.Automatic)}r.is=t})(wf||(wf={}));var Lf;(function(r){function e(n,i,s){let a={title:n},o=!0;return typeof i=="string"?(o=!1,a.kind=i):Kr.is(i)?a.command=i:a.edit=i,o&&s!==void 0&&(a.kind=s),a}r.create=e;function t(n){let i=n;return i&&p.string(i.title)&&(i.diagnostics===void 0||p.typedArray(i.diagnostics,_s.is))&&(i.kind===void 0||p.string(i.kind))&&(i.edit!==void 0||i.command!==void 0)&&(i.command===void 0||Kr.is(i.command))&&(i.isPreferred===void 0||p.boolean(i.isPreferred))&&(i.edit===void 0||pl.is(i.edit))}r.is=t})(Lf||(Lf={}));var Of;(function(r){function e(n,i){let s={range:n};return p.defined(i)&&(s.data=i),s}r.create=e;function t(n){let i=n;return p.defined(i)&&F.is(i.range)&&(p.undefined(i.command)||Kr.is(i.command))}r.is=t})(Of||(Of={}));var $f;(function(r){function e(n,i){return{tabSize:n,insertSpaces:i}}r.create=e;function t(n){let i=n;return p.defined(i)&&p.uinteger(i.tabSize)&&p.boolean(i.insertSpaces)}r.is=t})($f||($f={}));var Pf;(function(r){function e(n,i,s){return{range:n,target:i,data:s}}r.create=e;function t(n){let i=n;return p.defined(i)&&F.is(i.range)&&(p.undefined(i.target)||p.string(i.target))}r.is=t})(Pf||(Pf={}));var bf;(function(r){function e(n,i){return{range:n,parent:i}}r.create=e;function t(n){let i=n;return p.objectLiteral(i)&&F.is(i.range)&&(i.parent===void 0||r.is(i.parent))}r.is=t})(bf||(bf={}));var Mf;(function(r){r.namespace="namespace",r.type="type",r.class="class",r.enum="enum",r.interface="interface",r.struct="struct",r.typeParameter="typeParameter",r.parameter="parameter",r.variable="variable",r.property="property",r.enumMember="enumMember",r.event="event",r.function="function",r.method="method",r.macro="macro",r.keyword="keyword",r.modifier="modifier",r.comment="comment",r.string="string",r.number="number",r.regexp="regexp",r.operator="operator",r.decorator="decorator"})(Mf||(Mf={}));var Df;(function(r){r.declaration="declaration",r.definition="definition",r.readonly="readonly",r.static="static",r.deprecated="deprecated",r.abstract="abstract",r.async="async",r.modification="modification",r.documentation="documentation",r.defaultLibrary="defaultLibrary"})(Df||(Df={}));var Ff;(function(r){function e(t){let n=t;return p.objectLiteral(n)&&(n.resultId===void 0||typeof n.resultId=="string")&&Array.isArray(n.data)&&(n.data.length===0||typeof n.data[0]=="number")}r.is=e})(Ff||(Ff={}));var Uf;(function(r){function e(n,i){return{range:n,text:i}}r.create=e;function t(n){let i=n;return i!=null&&F.is(i.range)&&p.string(i.text)}r.is=t})(Uf||(Uf={}));var Gf;(function(r){function e(n,i,s){return{range:n,variableName:i,caseSensitiveLookup:s}}r.create=e;function t(n){let i=n;return i!=null&&F.is(i.range)&&p.boolean(i.caseSensitiveLookup)&&(p.string(i.variableName)||i.variableName===void 0)}r.is=t})(Gf||(Gf={}));var Bf;(function(r){function e(n,i){return{range:n,expression:i}}r.create=e;function t(n){let i=n;return i!=null&&F.is(i.range)&&(p.string(i.expression)||i.expression===void 0)}r.is=t})(Bf||(Bf={}));var Wf;(function(r){function e(n,i){return{frameId:n,stoppedLocation:i}}r.create=e;function t(n){let i=n;return p.defined(i)&&F.is(n.stoppedLocation)}r.is=t})(Wf||(Wf={}));var yl;(function(r){r.Type=1,r.Parameter=2;function e(t){return t===1||t===2}r.is=e})(yl||(yl={}));var Tl;(function(r){function e(n){return{value:n}}r.create=e;function t(n){let i=n;return p.objectLiteral(i)&&(i.tooltip===void 0||p.string(i.tooltip)||Wn.is(i.tooltip))&&(i.location===void 0||Cs.is(i.location))&&(i.command===void 0||Kr.is(i.command))}r.is=t})(Tl||(Tl={}));var jf;(function(r){function e(n,i,s){let a={position:n,label:i};return s!==void 0&&(a.kind=s),a}r.create=e;function t(n){let i=n;return p.objectLiteral(i)&&G.is(i.position)&&(p.string(i.label)||p.typedArray(i.label,Tl.is))&&(i.kind===void 0||yl.is(i.kind))&&i.textEdits===void 0||p.typedArray(i.textEdits,Hr.is)&&(i.tooltip===void 0||p.string(i.tooltip)||Wn.is(i.tooltip))&&(i.paddingLeft===void 0||p.boolean(i.paddingLeft))&&(i.paddingRight===void 0||p.boolean(i.paddingRight))}r.is=t})(jf||(jf={}));var Vf;(function(r){function e(t){return{kind:"snippet",value:t}}r.createSnippet=e})(Vf||(Vf={}));var Kf;(function(r){function e(t,n,i,s){return{insertText:t,filterText:n,range:i,command:s}}r.create=e})(Kf||(Kf={}));var Hf;(function(r){function e(t){return{items:t}}r.create=e})(Hf||(Hf={}));var zf;(function(r){r.Invoked=0,r.Automatic=1})(zf||(zf={}));var qf;(function(r){function e(t,n){return{range:t,text:n}}r.create=e})(qf||(qf={}));var Xf;(function(r){function e(t,n){return{triggerKind:t,selectedCompletionInfo:n}}r.create=e})(Xf||(Xf={}));var Yf;(function(r){function e(t){let n=t;return p.objectLiteral(n)&&al.is(n.uri)&&p.string(n.name)}r.is=e})(Yf||(Yf={}));var Jf;(function(r){function e(s,a,o,l){return new xl(s,a,o,l)}r.create=e;function t(s){let a=s;return!!(p.defined(a)&&p.string(a.uri)&&(p.undefined(a.languageId)||p.string(a.languageId))&&p.uinteger(a.lineCount)&&p.func(a.getText)&&p.func(a.positionAt)&&p.func(a.offsetAt))}r.is=t;function n(s,a){let o=s.getText(),l=i(a,(u,f)=>{let h=u.range.start.line-f.range.start.line;return h===0?u.range.start.character-f.range.start.character:h}),c=o.length;for(let u=l.length-1;u>=0;u--){let f=l[u],h=s.offsetAt(f.range.start),d=s.offsetAt(f.range.end);if(d<=c)o=o.substring(0,h)+f.newText+o.substring(d,o.length);else throw new Error("Overlapping edit");c=h}return o}r.applyEdits=n;function i(s,a){if(s.length<=1)return s;let o=s.length/2|0,l=s.slice(0,o),c=s.slice(o);i(l,a),i(c,a);let u=0,f=0,h=0;for(;u0&&e.push(t.length),this._lineOffsets=e}return this._lineOffsets}positionAt(e){e=Math.max(Math.min(e,this._content.length),0);let t=this.getLineOffsets(),n=0,i=t.length;if(i===0)return G.create(0,e);for(;ne?i=a:n=a+1}let s=n-1;return G.create(s,e-t[s])}offsetAt(e){let t=this.getLineOffsets();if(e.line>=t.length)return this._content.length;if(e.line<0)return 0;let n=t[e.line],i=e.line+1"u"}r.undefined=n;function i(d){return d===!0||d===!1}r.boolean=i;function s(d){return e.call(d)==="[object String]"}r.string=s;function a(d){return e.call(d)==="[object Number]"}r.number=a;function o(d,m,y){return e.call(d)==="[object Number]"&&m<=d&&d<=y}r.numberRange=o;function l(d){return e.call(d)==="[object Number]"&&-2147483648<=d&&d<=2147483647}r.integer=l;function c(d){return e.call(d)==="[object Number]"&&0<=d&&d<=2147483647}r.uinteger=c;function u(d){return e.call(d)==="[object Function]"}r.func=u;function f(d){return d!==null&&typeof d=="object"}r.objectLiteral=f;function h(d,m){return Array.isArray(d)&&d.every(m)}r.typedArray=h})(p||(p={}));var jn=class{constructor(){this.nodeStack=[]}get current(){return this.nodeStack[this.nodeStack.length-1]}buildRootNode(e){return this.rootNode=new qr(e),this.rootNode.root=this.rootNode,this.nodeStack=[this.rootNode],this.rootNode}buildCompositeNode(e){let t=new dr;return t.grammarSource=e,t.root=this.rootNode,this.current.content.push(t),this.nodeStack.push(t),t}buildLeafNode(e,t){let n=new fr(e.startOffset,e.image.length,Ar(e),e.tokenType,!1);return n.grammarSource=t,n.root=this.rootNode,this.current.content.push(n),n}removeNode(e){let t=e.container;if(t){let n=t.content.indexOf(e);n>=0&&t.content.splice(n,1)}}construct(e){let t=this.current;typeof e.$type=="string"&&(this.current.astNode=e),e.$cstNode=t;let n=this.nodeStack.pop();n?.content.length===0&&this.removeNode(n)}addHiddenTokens(e){for(let t of e){let n=new fr(t.startOffset,t.image.length,Ar(t),t.tokenType,!0);n.root=this.rootNode,this.addHiddenToken(this.rootNode,n)}}addHiddenToken(e,t){let{offset:n,end:i}=t;for(let s=0;so&&i=0;e--){let t=this.content[e];if(!t.hidden)return t}return this.content[this.content.length-1]}},Rl=class r extends Array{constructor(e){super(),this.parent=e,Object.setPrototypeOf(this,r.prototype)}push(...e){return this.addParents(e),super.push(...e)}unshift(...e){return this.addParents(e),super.unshift(...e)}splice(e,t,...n){return this.addParents(n),super.splice(e,t,...n)}addParents(e){for(let t of e)t.container=this.parent}},qr=class extends dr{get text(){return this._text.substring(this.offset,this.end)}get fullText(){return this._text}constructor(e){super(),this._text="",this._text=e??""}};var Os=Symbol("Datatype");function El(r){return r.$type===Os}var Qf="\u200B",Zf=r=>r.endsWith(Qf)?r:r+Qf,Kn=class{constructor(e){this._unorderedGroups=new Map,this.lexer=e.parser.Lexer;let t=this.lexer.definition;this.wrapper=new Al(t,Object.assign(Object.assign({},e.parser.ParserConfig),{errorMessageProvider:e.parser.ParserErrorMessageProvider}))}alternatives(e,t){this.wrapper.wrapOr(e,t)}optional(e,t){this.wrapper.wrapOption(e,t)}many(e,t){this.wrapper.wrapMany(e,t)}atLeastOne(e,t){this.wrapper.wrapAtLeastOne(e,t)}isRecording(){return this.wrapper.IS_RECORDING}get unorderedGroups(){return this._unorderedGroups}getRuleStack(){return this.wrapper.RULE_STACK}finalize(){this.wrapper.wrapSelfAnalysis()}},Hn=class extends Kn{get current(){return this.stack[this.stack.length-1]}constructor(e){super(e),this.nodeBuilder=new jn,this.stack=[],this.assignmentMap=new Map,this.linker=e.references.Linker,this.converter=e.parser.ValueConverter,this.astReflection=e.shared.AstReflection}rule(e,t){let n=e.fragment?void 0:Rn(e)?Os:nr(e),i=this.wrapper.DEFINE_RULE(Zf(e.name),this.startImplementation(n,t).bind(this));return e.entry&&(this.mainRule=i),i}parse(e){this.nodeBuilder.buildRootNode(e);let t=this.lexer.tokenize(e);this.wrapper.input=t.tokens;let n=this.mainRule.call(this.wrapper,{});return this.nodeBuilder.addHiddenTokens(t.hidden),this.unorderedGroups.clear(),{value:n,lexerErrors:t.errors,parserErrors:this.wrapper.errors}}startImplementation(e,t){return n=>{if(!this.isRecording()){let s={$type:e};this.stack.push(s),e===Os&&(s.value="")}let i;try{i=t(n)}catch{i=void 0}return!this.isRecording()&&i===void 0&&(i=this.construct()),i}}consume(e,t,n){let i=this.wrapper.wrapConsume(e,t);if(!this.isRecording()&&this.isValidToken(i)){let s=this.nodeBuilder.buildLeafNode(i,n),{assignment:a,isCrossRef:o}=this.getAssignment(n),l=this.current;if(a){let c=Ye(n)?i.image:this.converter.convert(i.image,s);this.assign(a.operator,a.feature,c,s,o)}else if(El(l)){let c=i.image;Ye(n)||(c=this.converter.convert(c,s).toString()),l.value+=c}}}isValidToken(e){return!e.isInsertedInRecovery&&!isNaN(e.startOffset)&&typeof e.endOffset=="number"&&!isNaN(e.endOffset)}subrule(e,t,n,i){let s;this.isRecording()||(s=this.nodeBuilder.buildCompositeNode(n));let a=this.wrapper.wrapSubrule(e,t,i);!this.isRecording()&&s&&s.length>0&&this.performSubruleAssignment(a,n,s)}performSubruleAssignment(e,t,n){let{assignment:i,isCrossRef:s}=this.getAssignment(t);if(i)this.assign(i.operator,i.feature,e,n,s);else if(!i){let a=this.current;if(El(a))a.value+=e.toString();else if(typeof e=="object"&&e){let o=e.$type,l=this.assignWithoutOverride(e,a);o&&(l.$type=o);let c=l;this.stack.pop(),this.stack.push(c)}}}action(e,t){if(!this.isRecording()){let n=this.current;if(!n.$cstNode&&t.feature&&t.operator){n=this.construct(!1);let s=n.$cstNode.feature;this.nodeBuilder.buildCompositeNode(s)}let i={$type:e};this.stack.pop(),this.stack.push(i),t.feature&&t.operator&&this.assign(t.operator,t.feature,n,n.$cstNode,!1)}}construct(e=!0){if(this.isRecording())return;let t=this.current;return Mi(t),this.nodeBuilder.construct(t),e&&this.stack.pop(),El(t)?this.converter.convert(t.value,t.$cstNode):(so(this.astReflection,t),t)}getAssignment(e){if(!this.assignmentMap.has(e)){let t=Qt(e,et);this.assignmentMap.set(e,{assignment:t,isCrossRef:t?Jt(t.terminal):!1})}return this.assignmentMap.get(e)}assign(e,t,n,i,s){let a=this.current,o;switch(s&&typeof n=="string"?o=this.linker.buildReference(a,t,i,n):o=n,e){case"=":{a[t]=o;break}case"?=":{a[t]=!0;break}case"+=":Array.isArray(a[t])||(a[t]=[]),a[t].push(o)}}assignWithoutOverride(e,t){for(let[n,i]of Object.entries(t)){let s=e[n];s===void 0?e[n]=i:Array.isArray(s)&&Array.isArray(i)&&(i.push(...s),e[n]=i)}return e}get definitionErrors(){return this.wrapper.definitionErrors}},$s=class{buildMismatchTokenMessage(e){return Nt.buildMismatchTokenMessage(e)}buildNotAllInputParsedMessage(e){return Nt.buildNotAllInputParsedMessage(e)}buildNoViableAltMessage(e){return Nt.buildNoViableAltMessage(e)}buildEarlyExitMessage(e){return Nt.buildEarlyExitMessage(e)}},Xr=class extends $s{buildMismatchTokenMessage({expected:e,actual:t}){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 \`${t.image}\`.`}buildNotAllInputParsedMessage({firstRedundant:e}){return`Expecting end of file but found \`${e.image}\`.`}},zn=class extends Kn{constructor(){super(...arguments),this.tokens=[],this.elementStack=[],this.lastElementStack=[],this.nextTokenIndex=0,this.stackSize=0}action(){}construct(){}parse(e){this.resetState();let t=this.lexer.tokenize(e);return this.tokens=t.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,t){let n=this.wrapper.DEFINE_RULE(Zf(e.name),this.startImplementation(t).bind(this));return e.entry&&(this.mainRule=n),n}resetState(){this.elementStack=[],this.lastElementStack=[],this.nextTokenIndex=0,this.stackSize=0}startImplementation(e){return t=>{let n=this.keepStackSize();try{e(t)}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,t,n){this.wrapper.wrapConsume(e,t),this.isRecording()||(this.lastElementStack=[...this.elementStack,n],this.nextTokenIndex=this.currIdx+1)}subrule(e,t,n,i){this.before(n),this.wrapper.wrapSubrule(e,t,i),this.after(n)}before(e){this.isRecording()||this.elementStack.push(e)}after(e){if(!this.isRecording()){let t=this.elementStack.lastIndexOf(e);t>=0&&this.elementStack.splice(t)}}get currIdx(){return this.wrapper.currIdx}},om={recoveryEnabled:!0,nodeLocationTracking:"full",skipValidations:!0,errorMessageProvider:new Xr},Al=class extends Dn{constructor(e,t){let n=t&&"maxLookahead"in t;super(e,Object.assign(Object.assign(Object.assign({},om),{lookaheadStrategy:n?new St({maxLookahead:t.maxLookahead}):new Bn}),t))}get IS_RECORDING(){return this.RECORDING_PHASE}DEFINE_RULE(e,t){return this.RULE(e,t)}wrapSelfAnalysis(){this.performSelfAnalysis()}wrapConsume(e,t){return this.consume(e,t)}wrapSubrule(e,t,n){return this.subrule(e,t,{ARGS:[n]})}wrapOr(e,t){this.or(e,t)}wrapOption(e,t){this.option(e,t)}wrapMany(e,t){this.many(e,t)}wrapAtLeastOne(e,t){this.atLeastOne(e,t)}};function bs(r,e,t){return lm({parser:e,tokens:t,rules:new Map,ruleNames:new Map},r),e}function lm(r,e){let t=Tn(e,!1),n=V(e.rules).filter(Ce).filter(i=>t.has(i));for(let i of n){let s=Object.assign(Object.assign({},r),{consume:1,optional:1,subrule:1,many:1,or:1});s.rules.set(i.name,r.parser.rule(i,hr(s,i.definition)))}}function hr(r,e,t=!1){let n;if(Ye(e))n=mm(r,e);else if(Rt(e))n=cm(r,e);else if(et(e))n=hr(r,e.terminal);else if(Jt(e))n=ed(r,e);else if(tt(e))n=um(r,e);else if($i(e))n=dm(r,e);else if(bi(e))n=hm(r,e);else if(bt(e))n=pm(r,e);else if(Ua(e)){let i=r.consume++;n=()=>r.parser.consume(i,ze,e)}else throw new Yt(e.$cstNode,`Unexpected element type: ${e.$type}`);return td(r,t?void 0:Ps(e),n,e.cardinality)}function cm(r,e){let t=nr(e);return()=>r.parser.action(t,e)}function um(r,e){let t=e.rule.ref;if(Ce(t)){let n=r.subrule++,i=e.arguments.length>0?fm(t,e.arguments):()=>({});return s=>r.parser.subrule(n,rd(r,t),e,i(s))}else if(Xe(t)){let n=r.consume++,i=vl(r,t.name);return()=>r.parser.consume(n,i,e)}else if(t)Pt(t);else throw new Yt(e.$cstNode,`Undefined rule type: ${e.$type}`)}function fm(r,e){let t=e.map(n=>Ct(n.value));return n=>{let i={};for(let s=0;se(n)||t(n)}else if(fa(r)){let e=Ct(r.left),t=Ct(r.right);return n=>e(n)&&t(n)}else if(Ta(r)){let e=Ct(r.value);return t=>!e(t)}else if(Aa(r)){let e=r.parameter.ref.name;return t=>t!==void 0&&t[e]===!0}else if(ca(r)){let e=!!r.true;return()=>e}Pt(r)}function dm(r,e){if(e.elements.length===1)return hr(r,e.elements[0]);{let t=[];for(let i of e.elements){let s={ALT:hr(r,i,!0)},a=Ps(i);a&&(s.GATE=Ct(a)),t.push(s)}let n=r.or++;return i=>r.parser.alternatives(n,t.map(s=>{let a={ALT:()=>s.ALT(i)},o=s.GATE;return o&&(a.GATE=()=>o(i)),a}))}}function hm(r,e){if(e.elements.length===1)return hr(r,e.elements[0]);let t=[];for(let o of e.elements){let l={ALT:hr(r,o,!0)},c=Ps(o);c&&(l.GATE=Ct(c)),t.push(l)}let n=r.or++,i=(o,l)=>{let c=l.getRuleStack().join("-");return`uGroup_${o}_${c}`},s=o=>r.parser.alternatives(n,t.map((l,c)=>{let u={ALT:()=>!0},f=r.parser;u.ALT=()=>{if(l.ALT(o),!f.isRecording()){let d=i(n,f);f.unorderedGroups.get(d)||f.unorderedGroups.set(d,[]);let m=f.unorderedGroups.get(d);typeof m?.[c]>"u"&&(m[c]=!0)}};let h=l.GATE;return h?u.GATE=()=>h(o):u.GATE=()=>{let d=f.unorderedGroups.get(i(n,f));return!d?.[c]},u})),a=td(r,Ps(e),s,"*");return o=>{a(o),r.parser.isRecording()||r.parser.unorderedGroups.delete(i(n,r.parser))}}function pm(r,e){let t=e.elements.map(n=>hr(r,n));return n=>t.forEach(i=>i(n))}function Ps(r){if(bt(r))return r.guardCondition}function ed(r,e,t=e.terminal){if(t)if(tt(t)&&Ce(t.rule.ref)){let n=r.subrule++;return i=>r.parser.subrule(n,rd(r,t.rule.ref),e,i)}else if(tt(t)&&Xe(t.rule.ref)){let n=r.consume++,i=vl(r,t.rule.ref.name);return()=>r.parser.consume(n,i,e)}else if(Ye(t)){let n=r.consume++,i=vl(r,t.value);return()=>r.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=Wi(e.type.ref),i=n?.terminal;if(!i)throw new Error("Could not find name assignment for type: "+nr(e.type.ref));return ed(r,e,i)}}function mm(r,e){let t=r.consume++,n=r.tokens[e.value];if(!n)throw new Error("Could not find token for keyword: "+e.value);return()=>r.parser.consume(t,n,e)}function td(r,e,t,n){let i=e&&Ct(e);if(!n)if(i){let s=r.or++;return a=>r.parser.alternatives(s,[{ALT:()=>t(a),GATE:()=>i(a)},{ALT:ks(),GATE:()=>!i(a)}])}else return t;if(n==="*"){let s=r.many++;return a=>r.parser.many(s,{DEF:()=>t(a),GATE:i?()=>i(a):void 0})}else if(n==="+"){let s=r.many++;if(i){let a=r.or++;return o=>r.parser.alternatives(a,[{ALT:()=>r.parser.atLeastOne(s,{DEF:()=>t(o)}),GATE:()=>i(o)},{ALT:ks(),GATE:()=>!i(o)}])}else return a=>r.parser.atLeastOne(s,{DEF:()=>t(a)})}else if(n==="?"){let s=r.optional++;return a=>r.parser.optional(s,{DEF:()=>t(a),GATE:i?()=>i(a):void 0})}else Pt(n)}function rd(r,e){let t=gm(r,e),n=r.rules.get(t);if(!n)throw new Error(`Rule "${t}" not found."`);return n}function gm(r,e){if(Ce(e))return e.name;if(r.ruleNames.has(e))return r.ruleNames.get(e);{let t=e,n=t.$container,i=e.$type;for(;!Ce(n);)(bt(n)||$i(n)||bi(n))&&(i=n.elements.indexOf(t).toString()+":"+i),t=n,n=n.$container;return i=n.name+":"+i,r.ruleNames.set(e,i),i}}function vl(r,e){let t=r.tokens[e];if(!t)throw new Error(`Token "${e}" not found."`);return t}function kl(r){let e=r.Grammar,t=r.parser.Lexer,n=new zn(r);return bs(e,n,t.definition),n.finalize(),n}function Il(r){let e=nd(r);return e.finalize(),e}function nd(r){let e=r.Grammar,t=r.parser.Lexer,n=new Hn(r);return bs(e,n,t.definition)}var pr=class{buildTokens(e,t){let n=V(Tn(e,!1)),i=this.buildTerminalTokens(n),s=this.buildKeywordTokens(n,i,t);return i.forEach(a=>{let o=a.PATTERN;typeof o=="object"&&o&&"test"in o&&Gi(o)?s.unshift(a):s.push(a)}),s}buildTerminalTokens(e){return e.filter(Xe).filter(t=>!t.fragment).map(t=>this.buildTerminalToken(t)).toArray()}buildTerminalToken(e){let t=Nr(e),n=this.requiresCustomPattern(t)?this.regexPatternFunction(t):t,i={name:e.name,PATTERN:n,LINE_BREAKS:!0};return e.hidden&&(i.GROUP=Gi(t)?oe.SKIPPED:"hidden"),i}requiresCustomPattern(e){return e.flags.includes("u")?!0:!!(e.source.includes("?<=")||e.source.includes("?(t.lastIndex=i,t.exec(n))}buildKeywordTokens(e,t,n){return e.filter(Ce).flatMap(i=>at(i).filter(Ye)).distinct(i=>i.value).toArray().sort((i,s)=>s.value.length-i.value.length).map(i=>this.buildKeywordToken(i,t,!!n?.caseInsensitive))}buildKeywordToken(e,t,n){return{name:e.value,PATTERN:this.buildKeywordPattern(e,n),LONGER_ALT:this.findLongerAlt(e,t)}}buildKeywordPattern(e,t){return t?new RegExp(fo(e.value)):e.value}findLongerAlt(e,t){return t.reduce((n,i)=>{let s=i?.PATTERN;return s?.source&&ho("^"+s.source+"$",e.value)&&n.push(i),n},[])}};var mr=class{convert(e,t){let n=t.grammarSource;if(Jt(n)&&(n=go(n)),tt(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,t)}return e}runConverter(e,t,n){var i;switch(e.name.toUpperCase()){case"INT":return ct.convertInt(t);case"STRING":return ct.convertString(t);case"ID":return ct.convertID(t)}switch((i=ko(e))===null||i===void 0?void 0:i.toLowerCase()){case"number":return ct.convertNumber(t);case"boolean":return ct.convertBoolean(t);case"bigint":return ct.convertBigint(t);case"date":return ct.convertDate(t);default:return t}}},ct;(function(r){function e(c){let u="";for(let f=1;f{typeof setImmediate>"u"?setTimeout(r,0):setImmediate(r)})}var Pl=0,cd=10;function ud(){return Pl=Date.now(),new _.CancellationTokenSource}function fd(r){cd=r}var ut=Symbol("OperationCancelled");function Ut(r){return r===ut}async function ye(r){if(r===_.CancellationToken.None)return;let e=Date.now();if(e-Pl>=cd&&(Pl=e,await bl()),r.isCancellationRequested)throw ut}var Fe=class{constructor(){this.promise=new Promise((e,t)=>{this.resolve=n=>(e(n),this),this.reject=n=>(t(n),this)})}};var Us=class r{constructor(e,t,n,i){this._uri=e,this._languageId=t,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 t=this.offsetAt(e.start),n=this.offsetAt(e.end);return this._content.substring(t,n)}return this._content}update(e,t){for(let n of e)if(r.isIncremental(n)){let i=pd(n.range),s=this.offsetAt(i.start),a=this.offsetAt(i.end);this._content=this._content.substring(0,s)+n.text+this._content.substring(a,this._content.length);let o=Math.max(i.start.line,0),l=Math.max(i.end.line,0),c=this._lineOffsets,u=dd(n.text,!1,s);if(l-o===u.length)for(let h=0,d=u.length;he?i=a:n=a+1}let s=n-1;return e=this.ensureBeforeEOL(e,t[s]),{line:s,character:e-t[s]}}offsetAt(e){let t=this.getLineOffsets();if(e.line>=t.length)return this._content.length;if(e.line<0)return 0;let n=t[e.line];if(e.character<=0)return n;let i=e.line+1t&&hd(this._content.charCodeAt(e-1));)e--;return e}get lineCount(){return this.getLineOffsets().length}static isIncremental(e){let t=e;return t!=null&&typeof t.text=="string"&&t.range!==void 0&&(t.rangeLength===void 0||typeof t.rangeLength=="number")}static isFull(e){let t=e;return t!=null&&typeof t.text=="string"&&t.range===void 0&&t.rangeLength===void 0}},Qr;(function(r){function e(i,s,a,o){return new Us(i,s,a,o)}r.create=e;function t(i,s,a){if(i instanceof Us)return i.update(s,a),i;throw new Error("TextDocument.update: document must be created by TextDocument.create")}r.update=t;function n(i,s){let a=i.getText(),o=Ml(s.map(Nm),(u,f)=>{let h=u.range.start.line-f.range.start.line;return h===0?u.range.start.character-f.range.start.character:h}),l=0,c=[];for(let u of o){let f=i.offsetAt(u.range.start);if(fl&&c.push(a.substring(l,f)),u.newText.length&&c.push(u.newText),l=i.offsetAt(u.range.end)}return c.push(a.substr(l)),c.join("")}r.applyEdits=n})(Qr||(Qr={}));function Ml(r,e){if(r.length<=1)return r;let t=r.length/2|0,n=r.slice(0,t),i=r.slice(t);Ml(n,e),Ml(i,e);let s=0,a=0,o=0;for(;st.line||e.line===t.line&&e.character>t.character?{start:t,end:e}:r}function Nm(r){let e=pd(r.range);return e!==r.range?{newText:r.newText,range:e}:r}var md;(()=>{"use strict";var r={470:i=>{function s(l){if(typeof l!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(l))}function a(l,c){for(var u,f="",h=0,d=-1,m=0,y=0;y<=l.length;++y){if(y2){var v=f.lastIndexOf("/");if(v!==f.length-1){v===-1?(f="",h=0):h=(f=f.slice(0,v)).length-1-f.lastIndexOf("/"),d=y,m=0;continue}}else if(f.length===2||f.length===1){f="",h=0,d=y,m=0;continue}}c&&(f.length>0?f+="/..":f="..",h=2)}else f.length>0?f+="/"+l.slice(d+1,y):f=l.slice(d+1,y),h=y-d-1;d=y,m=0}else u===46&&m!==-1?++m:m=-1}return f}var o={resolve:function(){for(var l,c="",u=!1,f=arguments.length-1;f>=-1&&!u;f--){var h;f>=0?h=arguments[f]:(l===void 0&&(l=process.cwd()),h=l),s(h),h.length!==0&&(c=h+"/"+c,u=h.charCodeAt(0)===47)}return c=a(c,!u),u?c.length>0?"/"+c:"/":c.length>0?c:"."},normalize:function(l){if(s(l),l.length===0)return".";var c=l.charCodeAt(0)===47,u=l.charCodeAt(l.length-1)===47;return(l=a(l,!c)).length!==0||c||(l="."),l.length>0&&u&&(l+="/"),c?"/"+l:l},isAbsolute:function(l){return s(l),l.length>0&&l.charCodeAt(0)===47},join:function(){if(arguments.length===0)return".";for(var l,c=0;c0&&(l===void 0?l=u:l+="/"+u)}return l===void 0?".":o.normalize(l)},relative:function(l,c){if(s(l),s(c),l===c||(l=o.resolve(l))===(c=o.resolve(c)))return"";for(var u=1;uy){if(c.charCodeAt(d+x)===47)return c.slice(d+x+1);if(x===0)return c.slice(d+x)}else h>y&&(l.charCodeAt(u+x)===47?v=x:x===0&&(v=0));break}var E=l.charCodeAt(u+x);if(E!==c.charCodeAt(d+x))break;E===47&&(v=x)}var T="";for(x=u+v+1;x<=f;++x)x!==f&&l.charCodeAt(x)!==47||(T.length===0?T+="..":T+="/..");return T.length>0?T+c.slice(d+v):(d+=v,c.charCodeAt(d)===47&&++d,c.slice(d))},_makeLong:function(l){return l},dirname:function(l){if(s(l),l.length===0)return".";for(var c=l.charCodeAt(0),u=c===47,f=-1,h=!0,d=l.length-1;d>=1;--d)if((c=l.charCodeAt(d))===47){if(!h){f=d;break}}else h=!1;return f===-1?u?"/":".":u&&f===1?"//":l.slice(0,f)},basename:function(l,c){if(c!==void 0&&typeof c!="string")throw new TypeError('"ext" argument must be a string');s(l);var u,f=0,h=-1,d=!0;if(c!==void 0&&c.length>0&&c.length<=l.length){if(c.length===l.length&&c===l)return"";var m=c.length-1,y=-1;for(u=l.length-1;u>=0;--u){var v=l.charCodeAt(u);if(v===47){if(!d){f=u+1;break}}else y===-1&&(d=!1,y=u+1),m>=0&&(v===c.charCodeAt(m)?--m==-1&&(h=u):(m=-1,h=y))}return f===h?h=y:h===-1&&(h=l.length),l.slice(f,h)}for(u=l.length-1;u>=0;--u)if(l.charCodeAt(u)===47){if(!d){f=u+1;break}}else h===-1&&(d=!1,h=u+1);return h===-1?"":l.slice(f,h)},extname:function(l){s(l);for(var c=-1,u=0,f=-1,h=!0,d=0,m=l.length-1;m>=0;--m){var y=l.charCodeAt(m);if(y!==47)f===-1&&(h=!1,f=m+1),y===46?c===-1?c=m:d!==1&&(d=1):c!==-1&&(d=-1);else if(!h){u=m+1;break}}return c===-1||f===-1||d===0||d===1&&c===f-1&&c===u+1?"":l.slice(c,f)},format:function(l){if(l===null||typeof l!="object")throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof l);return function(c,u){var f=u.dir||u.root,h=u.base||(u.name||"")+(u.ext||"");return f?f===u.root?f+h:f+"/"+h:h}(0,l)},parse:function(l){s(l);var c={root:"",dir:"",base:"",ext:"",name:""};if(l.length===0)return c;var u,f=l.charCodeAt(0),h=f===47;h?(c.root="/",u=1):u=0;for(var d=-1,m=0,y=-1,v=!0,x=l.length-1,E=0;x>=u;--x)if((f=l.charCodeAt(x))!==47)y===-1&&(v=!1,y=x+1),f===46?d===-1?d=x:E!==1&&(E=1):d!==-1&&(E=-1);else if(!v){m=x+1;break}return d===-1||y===-1||E===0||E===1&&d===y-1&&d===m+1?y!==-1&&(c.base=c.name=m===0&&h?l.slice(1,y):l.slice(m,y)):(m===0&&h?(c.name=l.slice(1,d),c.base=l.slice(1,y)):(c.name=l.slice(m,d),c.base=l.slice(m,y)),c.ext=l.slice(d,y)),m>0?c.dir=l.slice(0,m-1):h&&(c.dir="/"),c},sep:"/",delimiter:":",win32:null,posix:null};o.posix=o,i.exports=o}},e={};function t(i){var s=e[i];if(s!==void 0)return s.exports;var a=e[i]={exports:{}};return r[i](a,a.exports,t),a.exports}t.d=(i,s)=>{for(var a in s)t.o(s,a)&&!t.o(i,a)&&Object.defineProperty(i,a,{enumerable:!0,get:s[a]})},t.o=(i,s)=>Object.prototype.hasOwnProperty.call(i,s),t.r=i=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(i,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(i,"__esModule",{value:!0})};var n={};(()=>{let i;t.r(n),t.d(n,{URI:()=>h,Utils:()=>dt}),typeof process=="object"?i=process.platform==="win32":typeof navigator=="object"&&(i=navigator.userAgent.indexOf("Windows")>=0);let s=/^\w[\w\d+.-]*$/,a=/^\//,o=/^\/\//;function l(A,g){if(!A.scheme&&g)throw new Error(`[UriError]: Scheme is missing: {scheme: "", authority: "${A.authority}", path: "${A.path}", query: "${A.query}", fragment: "${A.fragment}"}`);if(A.scheme&&!s.test(A.scheme))throw new Error("[UriError]: Scheme contains illegal characters.");if(A.path){if(A.authority){if(!a.test(A.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(o.test(A.path))throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")')}}let c="",u="/",f=/^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/;class h{static isUri(g){return g instanceof h||!!g&&typeof g.authority=="string"&&typeof g.fragment=="string"&&typeof g.path=="string"&&typeof g.query=="string"&&typeof g.scheme=="string"&&typeof g.fsPath=="string"&&typeof g.with=="function"&&typeof g.toString=="function"}scheme;authority;path;query;fragment;constructor(g,S,N,j,O,L=!1){typeof g=="object"?(this.scheme=g.scheme||c,this.authority=g.authority||c,this.path=g.path||c,this.query=g.query||c,this.fragment=g.fragment||c):(this.scheme=function(we,Le){return we||Le?we:"file"}(g,L),this.authority=S||c,this.path=function(we,Le){switch(we){case"https":case"http":case"file":Le?Le[0]!==u&&(Le=u+Le):Le=u}return Le}(this.scheme,N||c),this.query=j||c,this.fragment=O||c,l(this,L))}get fsPath(){return E(this,!1)}with(g){if(!g)return this;let{scheme:S,authority:N,path:j,query:O,fragment:L}=g;return S===void 0?S=this.scheme:S===null&&(S=c),N===void 0?N=this.authority:N===null&&(N=c),j===void 0?j=this.path:j===null&&(j=c),O===void 0?O=this.query:O===null&&(O=c),L===void 0?L=this.fragment:L===null&&(L=c),S===this.scheme&&N===this.authority&&j===this.path&&O===this.query&&L===this.fragment?this:new m(S,N,j,O,L)}static parse(g,S=!1){let N=f.exec(g);return N?new m(N[2]||c,Te(N[4]||c),Te(N[5]||c),Te(N[7]||c),Te(N[9]||c),S):new m(c,c,c,c,c)}static file(g){let S=c;if(i&&(g=g.replace(/\\/g,u)),g[0]===u&&g[1]===u){let N=g.indexOf(u,2);N===-1?(S=g.substring(2),g=u):(S=g.substring(2,N),g=g.substring(N)||u)}return new m("file",S,g,c,c)}static from(g){let S=new m(g.scheme,g.authority,g.path,g.query,g.fragment);return l(S,!0),S}toString(g=!1){return T(this,g)}toJSON(){return this}static revive(g){if(g){if(g instanceof h)return g;{let S=new m(g);return S._formatted=g.external,S._fsPath=g._sep===d?g.fsPath:null,S}}return g}}let d=i?1:void 0;class m extends h{_formatted=null;_fsPath=null;get fsPath(){return this._fsPath||(this._fsPath=E(this,!1)),this._fsPath}toString(g=!1){return g?T(this,!0):(this._formatted||(this._formatted=T(this,!1)),this._formatted)}toJSON(){let g={$mid:1};return this._fsPath&&(g.fsPath=this._fsPath,g._sep=d),this._formatted&&(g.external=this._formatted),this.path&&(g.path=this.path),this.scheme&&(g.scheme=this.scheme),this.authority&&(g.authority=this.authority),this.query&&(g.query=this.query),this.fragment&&(g.fragment=this.fragment),g}}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(A,g,S){let N,j=-1;for(let O=0;O=97&&L<=122||L>=65&&L<=90||L>=48&&L<=57||L===45||L===46||L===95||L===126||g&&L===47||S&&L===91||S&&L===93||S&&L===58)j!==-1&&(N+=encodeURIComponent(A.substring(j,O)),j=-1),N!==void 0&&(N+=A.charAt(O));else{N===void 0&&(N=A.substr(0,O));let we=y[L];we!==void 0?(j!==-1&&(N+=encodeURIComponent(A.substring(j,O)),j=-1),N+=we):j===-1&&(j=O)}}return j!==-1&&(N+=encodeURIComponent(A.substring(j))),N!==void 0?N:A}function x(A){let g;for(let S=0;S1&&A.scheme==="file"?`//${A.authority}${A.path}`:A.path.charCodeAt(0)===47&&(A.path.charCodeAt(1)>=65&&A.path.charCodeAt(1)<=90||A.path.charCodeAt(1)>=97&&A.path.charCodeAt(1)<=122)&&A.path.charCodeAt(2)===58?g?A.path.substr(1):A.path[1].toLowerCase()+A.path.substr(2):A.path,i&&(S=S.replace(/\//g,"\\")),S}function T(A,g){let S=g?x:v,N="",{scheme:j,authority:O,path:L,query:we,fragment:Le}=A;if(j&&(N+=j,N+=":"),(O||j==="file")&&(N+=u,N+=u),O){let Z=O.indexOf("@");if(Z!==-1){let Bt=O.substr(0,Z);O=O.substr(Z+1),Z=Bt.lastIndexOf(":"),Z===-1?N+=S(Bt,!1,!1):(N+=S(Bt.substr(0,Z),!1,!1),N+=":",N+=S(Bt.substr(Z+1),!1,!0)),N+="@"}O=O.toLowerCase(),Z=O.lastIndexOf(":"),Z===-1?N+=S(O,!1,!0):(N+=S(O.substr(0,Z),!1,!0),N+=O.substr(Z))}if(L){if(L.length>=3&&L.charCodeAt(0)===47&&L.charCodeAt(2)===58){let Z=L.charCodeAt(1);Z>=65&&Z<=90&&(L=`/${String.fromCharCode(Z+32)}:${L.substr(3)}`)}else if(L.length>=2&&L.charCodeAt(1)===58){let Z=L.charCodeAt(0);Z>=65&&Z<=90&&(L=`${String.fromCharCode(Z+32)}:${L.substr(2)}`)}N+=S(L,!0,!1)}return we&&(N+="?",N+=S(we,!1,!1)),Le&&(N+="#",N+=g?Le:v(Le,!1,!1)),N}function $(A){try{return decodeURIComponent(A)}catch{return A.length>3?A.substr(0,3)+$(A.substr(3)):A}}let P=/(%[0-9A-Za-z][0-9A-Za-z])+/g;function Te(A){return A.match(P)?A.replace(P,g=>$(g)):A}var xr=t(470);let Ae=xr.posix||xr,wt="/";var dt;(function(A){A.joinPath=function(g,...S){return g.with({path:Ae.join(g.path,...S)})},A.resolvePath=function(g,...S){let N=g.path,j=!1;N[0]!==wt&&(N=wt+N,j=!0);let O=Ae.resolve(N,...S);return j&&O[0]===wt&&!g.authority&&(O=O.substring(1)),g.with({path:O})},A.dirname=function(g){if(g.path.length===0||g.path===wt)return g;let S=Ae.dirname(g.path);return S.length===1&&S.charCodeAt(0)===46&&(S=""),g.with({path:S})},A.basename=function(g){return Ae.basename(g.path)},A.extname=function(g){return Ae.extname(g.path)}})(dt||(dt={}))})(),md=n})();var{URI:Be,Utils:Zr}=md;var Ue;(function(r){r.basename=Zr.basename,r.dirname=Zr.dirname,r.extname=Zr.extname,r.joinPath=Zr.joinPath,r.resolvePath=Zr.resolvePath;function e(n,i){return n?.toString()===i?.toString()}r.equals=e;function t(n,i){let s=typeof n=="string"?n:n.path,a=typeof i=="string"?i:i.path,o=s.split("/").filter(h=>h.length>0),l=a.split("/").filter(h=>h.length>0),c=0;for(;ci??(i=Qr.create(e.toString(),n.getServices(e).LanguageMetaData.languageId,0,t??""))}},Xn=class{constructor(e){this.documentMap=new Map,this.langiumDocumentFactory=e.workspace.LangiumDocumentFactory}get all(){return V(this.documentMap.values())}addDocument(e){let t=e.uri.toString();if(this.documentMap.has(t))throw new Error(`A document with the URI '${t}' is already present.`);this.documentMap.set(t,e)}getDocument(e){let t=e.toString();return this.documentMap.get(t)}async getOrCreateDocument(e,t){let n=this.getDocument(e);return n||(n=await this.langiumDocumentFactory.fromUri(e,t),this.addDocument(n),n)}createDocument(e,t,n){if(n)return this.langiumDocumentFactory.fromString(t,e,n).then(i=>(this.addDocument(i),i));{let i=this.langiumDocumentFactory.fromString(t,e);return this.addDocument(i),i}}hasDocument(e){return this.documentMap.has(e.toString())}invalidateDocument(e){let t=e.toString(),n=this.documentMap.get(t);return n&&(n.state=X.Changed,n.precomputedScopes=void 0,n.references=[],n.diagnostics=void 0),n}deleteDocument(e){let t=e.toString(),n=this.documentMap.get(t);return n&&(n.state=X.Changed,this.documentMap.delete(t)),n}};var Yn=class{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,t=_.CancellationToken.None){for(let n of Je(e.parseResult.value))await ye(t),kr(n).forEach(i=>this.doLink(i,e))}doLink(e,t){let n=e.reference;if(n._ref===void 0)try{let i=this.getCandidate(e);if(zt(i))n._ref=i;else if(n._nodeDescription=i,this.langiumDocuments().hasDocument(i.documentUri)){let s=this.loadAstNode(i);n._ref=s??this.createLinkingError(e,i)}}catch(i){n._ref=Object.assign(Object.assign({},e),{message:`An error occurred while resolving reference to '${n.$refText}': ${i}`})}t.references.push(n)}unlink(e){for(let t of e.references)delete t._ref,delete t._nodeDescription;e.references=[]}getCandidate(e){let n=this.scopeProvider.getScope(e).getElement(e.reference.$refText);return n??this.createLinkingError(e)}buildReference(e,t,n,i){let s=this,a={$refNode:n,$refText:i,get ref(){var o;if(se(this._ref))return this._ref;if(Js(this._nodeDescription)){let l=s.loadAstNode(this._nodeDescription);this._ref=l??s.createLinkingError({reference:a,container:e,property:t},this._nodeDescription)}else if(this._ref===void 0){let l=s.getLinkedNode({reference:a,container:e,property:t});if(l.error&&me(e).state=e.end)return s.ref}}if(n){let i=this.nameProvider.getNameNode(n);if(i&&(i===e||Zs(e,i)))return n}}}findDeclarationNode(e){let t=this.findDeclaration(e);if(t?.$cstNode){let n=this.nameProvider.getNameNode(t);return n??t.$cstNode}}findReferences(e,t){let n=[];if(t.includeDeclaration){let s=this.getReferenceToSelf(e);s&&n.push(s)}let i=this.index.findAllReferences(e,this.nodeLocator.getAstNodePath(e));return t.documentUri&&(i=i.filter(s=>Ue.equals(s.sourceUri,t.documentUri))),n.push(...i),V(n)}getReferenceToSelf(e){let t=this.nameProvider.getNameNode(e);if(t){let n=me(e),i=this.nodeLocator.getAstNodePath(e);return{sourceUri:n.uri,sourcePath:i,targetUri:n.uri,targetPath:i,segment:Xt(t),local:!0}}}};var ft=class{constructor(e){if(this.map=new Map,e)for(let[t,n]of e)this.add(t,n)}get size(){return Er.sum(V(this.map.values()).map(e=>e.length))}clear(){this.map.clear()}delete(e,t){if(t===void 0)return this.map.delete(e);{let n=this.map.get(e);if(n){let i=n.indexOf(t);if(i>=0)return n.length===1?this.map.delete(e):n.splice(i,1),!0}return!1}}get(e){var t;return(t=this.map.get(e))!==null&&t!==void 0?t:[]}has(e,t){if(t===void 0)return this.map.has(e);{let n=this.map.get(e);return n?n.indexOf(t)>=0:!1}}add(e,t){return this.map.has(e)?this.map.get(e).push(t):this.map.set(e,[t]),this}addAll(e,t){return this.map.has(e)?this.map.get(e).push(...t):this.map.set(e,Array.from(t)),this}forEach(e){this.map.forEach((t,n)=>t.forEach(i=>e(i,n,this)))}[Symbol.iterator](){return this.entries().iterator()}entries(){return V(this.map.entries()).flatMap(([e,t])=>t.map(n=>[e,n]))}keys(){return V(this.map.keys())}values(){return V(this.map.values()).flat()}entriesGroupedByKey(){return V(this.map.entries())}},gr=class{get size(){return this.map.size}constructor(e){if(this.map=new Map,this.inverse=new Map,e)for(let[t,n]of e)this.set(t,n)}clear(){this.map.clear(),this.inverse.clear()}set(e,t){return this.map.set(e,t),this.inverse.set(t,e),this}get(e){return this.map.get(e)}getKey(e){return this.inverse.get(e)}delete(e){let t=this.map.get(e);return t!==void 0?(this.map.delete(e),this.inverse.delete(t),!0):!1}};var Zn=class{constructor(e){this.nameProvider=e.references.NameProvider,this.descriptions=e.workspace.AstNodeDescriptionProvider}async computeExports(e,t=_.CancellationToken.None){return this.computeExportsForNode(e.parseResult.value,e,void 0,t)}async computeExportsForNode(e,t,n=pn,i=_.CancellationToken.None){let s=[];this.exportNode(e,s,t);for(let a of n(e))await ye(i),this.exportNode(a,s,t);return s}exportNode(e,t,n){let i=this.nameProvider.getName(e);i&&t.push(this.descriptions.createDescription(e,i,n))}async computeLocalScopes(e,t=_.CancellationToken.None){let n=e.parseResult.value,i=new ft;for(let s of at(n))await ye(t),this.processNode(s,e,i);return i}processNode(e,t,n){let i=e.$container;if(i){let s=this.nameProvider.getName(e);s&&n.add(i,this.descriptions.createDescription(e,s,t))}}};var en=class{constructor(e,t,n){var i;this.elements=e,this.outerScope=t,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 t=this.caseInsensitive?this.elements.find(n=>n.name.toLowerCase()===e.toLowerCase()):this.elements.find(n=>n.name===e);if(t)return t;if(this.outerScope)return this.outerScope.getElement(e)}},ei=class{constructor(e,t,n){var i;this.elements=new Map,this.caseInsensitive=(i=n?.caseInsensitive)!==null&&i!==void 0?i:!1;for(let s of e){let a=this.caseInsensitive?s.name.toLowerCase():s.name;this.elements.set(a,s)}this.outerScope=t}getElement(e){let t=this.caseInsensitive?e.toLowerCase():e,n=this.elements.get(t);if(n)return n;if(this.outerScope)return this.outerScope.getElement(e)}getAllElements(){let e=V(this.elements.values());return this.outerScope&&(e=e.concat(this.outerScope.getAllElements())),e}},Sm={getElement(){},getAllElements(){return ln}};var tn=class{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")}},ti=class extends tn{constructor(){super(...arguments),this.cache=new Map}has(e){return this.throwIfDisposed(),this.cache.has(e)}set(e,t){this.throwIfDisposed(),this.cache.set(e,t)}get(e,t){if(this.throwIfDisposed(),this.cache.has(e))return this.cache.get(e);if(t){let n=t();return this.cache.set(e,n),n}else return}delete(e){return this.throwIfDisposed(),this.cache.delete(e)}clear(){this.throwIfDisposed(),this.cache.clear()}},yr=class extends tn{constructor(e){super(),this.cache=new Map,this.converter=e??(t=>t)}has(e,t){return this.throwIfDisposed(),this.cacheForContext(e).has(t)}set(e,t,n){this.throwIfDisposed(),this.cacheForContext(e).set(t,n)}get(e,t,n){this.throwIfDisposed();let i=this.cacheForContext(e);if(i.has(t))return i.get(t);if(n){let s=n();return i.set(t,s),s}else return}delete(e,t){return this.throwIfDisposed(),this.cacheForContext(e).delete(t)}clear(e){if(this.throwIfDisposed(),e){let t=this.converter(e);this.cache.delete(t)}else this.cache.clear()}cacheForContext(e){let t=this.converter(e),n=this.cache.get(t);return n||(n=new Map,this.cache.set(t,n)),n}},Gs=class extends yr{constructor(e){super(t=>t.toString()),this.onDispose(e.workspace.DocumentBuilder.onUpdate((t,n)=>{let i=t.concat(n);for(let s of i)this.clear(s)}))}},rn=class extends ti{constructor(e){super(),this.onDispose(e.workspace.DocumentBuilder.onUpdate(()=>{this.clear()}))}};var ri=class{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 rn(e.shared)}getScope(e){let t=[],n=this.reflection.getReferenceType(e),i=me(e.container).precomputedScopes;if(i){let a=e.container;do{let o=i.get(a);o.length>0&&t.push(V(o).filter(l=>this.reflection.isSubtype(l.type,n))),a=a.$container}while(a)}let s=this.getGlobalScope(n,e);for(let a=t.length-1;a>=0;a--)s=this.createScope(t[a],s);return s}createScope(e,t,n){return new en(V(e),t,n)}createScopeForNodes(e,t,n){let i=V(e).map(s=>{let a=this.nameProvider.getName(s);if(a)return this.descriptions.createDescription(s,a)}).nonNullable();return new en(i,t,n)}getGlobalScope(e,t){return this.globalScopeCache.get(e,()=>new ei(this.indexManager.allElements(e)))}};function Dl(r){return typeof r.$comment=="string"}function yd(r){return typeof r=="object"&&!!r&&("$ref"in r||"$error"in r)}var ni=class{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,t={}){let n=t?.replacer,i=(a,o)=>this.replacer(a,o,t),s=n?(a,o)=>n(a,o,i):i;try{return this.currentDocument=me(e),JSON.stringify(e,s,t?.space)}finally{this.currentDocument=void 0}}deserialize(e,t={}){let n=JSON.parse(e);return this.linkNode(n,n,t),n}replacer(e,t,{refText:n,sourceText:i,textRegions:s,comments:a,uriConverter:o}){var l,c,u,f;if(!this.ignoreProperties.has(e))if(Ee(t)){let h=t.ref,d=n?t.$refText:void 0;if(h){let m=me(h),y="";this.currentDocument&&this.currentDocument!==m&&(o?y=o(m.uri,t):y=m.uri.toString());let v=this.astNodeLocator.getAstNodePath(h);return{$ref:`${y}#${v}`,$refText:d}}else return{$error:(c=(l=t.error)===null||l===void 0?void 0:l.message)!==null&&c!==void 0?c:"Could not resolve reference",$refText:d}}else if(se(t)){let h;if(s&&(h=this.addAstNodeRegionWithAssignmentsTo(Object.assign({},t)),(!e||t.$document)&&h?.$textRegion&&(h.$textRegion.documentURI=(u=this.currentDocument)===null||u===void 0?void 0:u.uri.toString())),i&&!e&&(h??(h=Object.assign({},t)),h.$sourceText=(f=t.$cstNode)===null||f===void 0?void 0:f.text),a){h??(h=Object.assign({},t));let d=this.commentProvider.getComment(t);d&&(h.$comment=d.replace(/\r/g,""))}return h??t}else return t}addAstNodeRegionWithAssignmentsTo(e){let t=n=>({offset:n.offset,end:n.end,length:n.length,range:n.range});if(e.$cstNode){let n=e.$textRegion=t(e.$cstNode),i=n.assignments={};return Object.keys(e).filter(s=>!s.startsWith("$")).forEach(s=>{let a=To(e.$cstNode,s).map(t);a.length!==0&&(i[s]=a)}),e}}linkNode(e,t,n,i,s,a){for(let[l,c]of Object.entries(e))if(Array.isArray(c))for(let u=0;u{try{await e.call(t,n,i,s)}catch(a){if(Ut(a))throw a;console.error("An error occurred during validation:",a);let o=a instanceof Error?a.message:String(a);a instanceof Error&&a.stack&&console.error(a.stack),i("error","An error occurred during validation: "+o,{node:n})}}}addEntry(e,t){if(e==="AstNode"){this.entries.add("AstNode",t);return}for(let n of this.reflection.getAllSubTypes(e))this.entries.add(n,t)}getChecks(e,t){let n=V(this.entries.get(e)).concat(this.entries.get("AstNode"));return t&&(n=n.filter(i=>t.includes(i.category))),n.map(i=>i.check)}};var ai=class{constructor(e){this.validationRegistry=e.validation.ValidationRegistry,this.metadata=e.LanguageMetaData}async validateDocument(e,t={},n=_.CancellationToken.None){let i=e.parseResult,s=[];if(await ye(n),(!t.categories||t.categories.includes("built-in"))&&(this.processLexingErrors(i,s,t),t.stopAfterLexingErrors&&s.some(a=>{var o;return((o=a.data)===null||o===void 0?void 0:o.code)===_t.LexingError})||(this.processParsingErrors(i,s,t),t.stopAfterParsingErrors&&s.some(a=>{var o;return((o=a.data)===null||o===void 0?void 0:o.code)===_t.ParsingError}))||(this.processLinkingErrors(e,s,t),t.stopAfterLinkingErrors&&s.some(a=>{var o;return((o=a.data)===null||o===void 0?void 0:o.code)===_t.LinkingError}))))return s;try{s.push(...await this.validateAst(i.value,t,n))}catch(a){if(Ut(a))throw a;console.error("An error occurred during validation:",a)}return await ye(n),s}processLexingErrors(e,t,n){for(let i of e.lexerErrors){let s={severity:Ws("error"),range:{start:{line:i.line-1,character:i.column-1},end:{line:i.line-1,character:i.column+i.length-1}},message:i.message,data:Bs(_t.LexingError),source:this.getSource()};t.push(s)}}processParsingErrors(e,t,n){for(let i of e.parserErrors){let s;if(isNaN(i.token.startOffset)){if("previousToken"in i){let a=i.previousToken;if(isNaN(a.startOffset)){let o={line:0,character:0};s={start:o,end:o}}else{let o={line:a.endLine-1,character:a.endColumn};s={start:o,end:o}}}}else s=Ar(i.token);if(s){let a={severity:Ws("error"),range:s,message:i.message,data:Bs(_t.ParsingError),source:this.getSource()};t.push(a)}}}processLinkingErrors(e,t,n){for(let i of e.references){let s=i.error;if(s){let a={node:s.container,property:s.property,index:s.index,data:{code:_t.LinkingError,containerType:s.container.$type,property:s.property,refText:s.reference.$refText}};t.push(this.toDiagnostic("error",s.message,a))}}}async validateAst(e,t,n=_.CancellationToken.None){let i=[],s=(a,o,l)=>{i.push(this.toDiagnostic(a,o,l))};return await Promise.all(Je(e).map(async a=>{await ye(n);let o=this.validationRegistry.getChecks(a.$type,t.categories);for(let l of o)await l(a,s,n)})),i}toDiagnostic(e,t,n){return{message:t,range:Td(n),severity:Ws(e),code:n.code,codeDescription:n.codeDescription,tags:n.tags,relatedInformation:n.relatedInformation,data:n.data,source:this.getSource()}}getSource(){return this.metadata.languageId}};function Td(r){if(r.range)return r.range;let e;return typeof r.property=="string"?e=xn(r.node.$cstNode,r.property,r.index):typeof r.keyword=="string"&&(e=Ro(r.node.$cstNode,r.keyword,r.index)),e??(e=r.node.$cstNode),e?e.range:{start:{line:0,character:0},end:{line:0,character:0}}}function Ws(r){switch(r){case"error":return 1;case"warning":return 2;case"info":return 3;case"hint":return 4;default:throw new Error("Invalid diagnostic severity: "+r)}}var _t;(function(r){r.LexingError="lexing-error",r.ParsingError="parsing-error",r.LinkingError="linking-error"})(_t||(_t={}));var oi=class{constructor(e){this.astNodeLocator=e.workspace.AstNodeLocator,this.nameProvider=e.references.NameProvider}createDescription(e,t,n=me(e)){t??(t=this.nameProvider.getName(e));let i=this.astNodeLocator.getAstNodePath(e);if(!t)throw new Error(`Node at path ${i} has no name.`);let s,a=()=>{var o;return s??(s=Xt((o=this.nameProvider.getNameNode(e))!==null&&o!==void 0?o:e.$cstNode))};return{node:e,name:t,get nameSegment(){return a()},selectionSegment:Xt(e.$cstNode),type:e.$type,documentUri:n.uri,path:i}}},li=class{constructor(e){this.nodeLocator=e.workspace.AstNodeLocator}async createDescriptions(e,t=_.CancellationToken.None){let n=[],i=e.parseResult.value;for(let s of Je(i))await ye(t),kr(s).filter(a=>!zt(a)).forEach(a=>{let o=this.createDescription(a);o&&n.push(o)});return n}createDescription(e){let t=e.reference.$nodeDescription,n=e.reference.$refNode;if(!t||!n)return;let i=me(e.container).uri;return{sourceUri:i,sourcePath:this.nodeLocator.getAstNodePath(e.container),targetUri:t.documentUri,targetPath:t.path,segment:Xt(n),local:Ue.equals(t.documentUri,i)}}};var ci=class{constructor(){this.segmentSeparator="/",this.indexSeparator="@"}getAstNodePath(e){if(e.$container){let t=this.getAstNodePath(e.$container),n=this.getPathSegment(e);return t+this.segmentSeparator+n}return""}getPathSegment({$containerProperty:e,$containerIndex:t}){if(!e)throw new Error("Missing '$containerProperty' in AST node.");return t!==void 0?e+this.indexSeparator+t:e}getAstNode(e,t){return t.split(this.segmentSeparator).reduce((i,s)=>{if(!i||s.length===0)return i;let a=s.indexOf(this.indexSeparator);if(a>0){let o=s.substring(0,a),l=parseInt(s.substring(a+1)),c=i[o];return c?.[l]}return i[s]},e)}};var ui=class{constructor(e){this._ready=new Fe,this.settings={},this.workspaceConfig=!1,this.serviceRegistry=e.ServiceRegistry}get ready(){return this._ready.promise}initialize(e){var t,n;this.workspaceConfig=(n=(t=e.capabilities.workspace)===null||t===void 0?void 0:t.configuration)!==null&&n!==void 0?n:!1}async initialized(e){if(this.workspaceConfig){if(e.register){let t=this.serviceRegistry.all;e.register({section:t.map(n=>this.toSectionName(n.LanguageMetaData.languageId))})}if(e.fetchConfiguration){let t=this.serviceRegistry.all.map(i=>({section:this.toSectionName(i.LanguageMetaData.languageId)})),n=await e.fetchConfiguration(t);t.forEach((i,s)=>{this.updateSectionConfiguration(i.section,n[s])})}}this._ready.resolve()}updateConfiguration(e){e.settings&&Object.keys(e.settings).forEach(t=>{this.updateSectionConfiguration(t,e.settings[t])})}updateSectionConfiguration(e,t){this.settings[e]=t}async getConfiguration(e,t){await this.ready;let n=this.toSectionName(e);if(this.settings[n])return this.settings[n][t]}toSectionName(e){return`${e}`}};var Tr;(function(r){function e(t){return{dispose:async()=>await t()}}r.create=e})(Tr||(Tr={}));var fi=class{constructor(e){this.updateBuildOptions={validation:{categories:["built-in","fast"]}},this.updateListeners=[],this.buildPhaseListeners=new ft,this.buildState=new Map,this.documentBuildWaiters=new Map,this.currentState=X.Changed,this.langiumDocuments=e.workspace.LangiumDocuments,this.langiumDocumentFactory=e.workspace.LangiumDocumentFactory,this.indexManager=e.workspace.IndexManager,this.serviceRegistry=e.ServiceRegistry}async build(e,t={},n=_.CancellationToken.None){var i,s;for(let a of e){let o=a.uri.toString();if(a.state===X.Validated){if(typeof t.validation=="boolean"&&t.validation)a.state=X.IndexedReferences,a.diagnostics=void 0,this.buildState.delete(o);else if(typeof t.validation=="object"){let l=this.buildState.get(o),c=(i=l?.result)===null||i===void 0?void 0:i.validationChecks;if(c){let f=((s=t.validation.categories)!==null&&s!==void 0?s:nn.all).filter(h=>!c.includes(h));f.length>0&&(this.buildState.set(o,{completed:!1,options:{validation:Object.assign(Object.assign({},t.validation),{categories:f})},result:l.result}),a.state=X.IndexedReferences)}}}else this.buildState.delete(o)}this.currentState=X.Changed,await this.emitUpdate(e.map(a=>a.uri),[]),await this.buildDocuments(e,t,n)}async update(e,t,n=_.CancellationToken.None){this.currentState=X.Changed;for(let a of t)this.langiumDocuments.deleteDocument(a),this.buildState.delete(a.toString()),this.indexManager.remove(a);for(let a of e){if(!this.langiumDocuments.invalidateDocument(a)){let l=this.langiumDocumentFactory.fromModel({$type:"INVALID"},a);l.state=X.Changed,this.langiumDocuments.addDocument(l)}this.buildState.delete(a.toString())}let i=V(e).concat(t).map(a=>a.toString()).toSet();this.langiumDocuments.all.filter(a=>!i.has(a.uri.toString())&&this.shouldRelink(a,i)).forEach(a=>{this.serviceRegistry.getServices(a.uri).references.Linker.unlink(a),a.state=Math.min(a.state,X.ComputedScopes),a.diagnostics=void 0}),await this.emitUpdate(e,t),await ye(n);let s=this.langiumDocuments.all.filter(a=>{var o;return a.staten(e,t)))}shouldRelink(e,t){return e.references.some(n=>n.error!==void 0)?!0:this.indexManager.isAffected(e,t)}onUpdate(e){return this.updateListeners.push(e),Tr.create(()=>{let t=this.updateListeners.indexOf(e);t>=0&&this.updateListeners.splice(t,1)})}async buildDocuments(e,t,n){this.prepareBuild(e,t),await this.runCancelable(e,X.Parsed,n,s=>this.langiumDocumentFactory.update(s,n)),await this.runCancelable(e,X.IndexedContent,n,s=>this.indexManager.updateContent(s,n)),await this.runCancelable(e,X.ComputedScopes,n,async s=>{let a=this.serviceRegistry.getServices(s.uri).references.ScopeComputation;s.precomputedScopes=await a.computeLocalScopes(s,n)}),await this.runCancelable(e,X.Linked,n,s=>this.serviceRegistry.getServices(s.uri).references.Linker.link(s,n)),await this.runCancelable(e,X.IndexedReferences,n,s=>this.indexManager.updateReferences(s,n));let i=e.filter(s=>this.shouldValidate(s));await this.runCancelable(i,X.Validated,n,s=>this.validate(s,n));for(let s of e){let a=this.buildState.get(s.uri.toString());a&&(a.completed=!0)}}prepareBuild(e,t){for(let n of e){let i=n.uri.toString(),s=this.buildState.get(i);(!s||s.completed)&&this.buildState.set(i,{completed:!1,options:t,result:s?.result})}}async runCancelable(e,t,n,i){let s=e.filter(a=>a.state{this.buildPhaseListeners.delete(e,t)})}waitUntil(e,t,n){let i;if(t&&"path"in t?i=t:n=t,n??(n=_.CancellationToken.None),i){let s=this.langiumDocuments.getDocument(i);if(s&&s.state>e)return Promise.resolve(i)}return this.currentState>=e?Promise.resolve(void 0):n.isCancellationRequested?Promise.reject(ut):new Promise((s,a)=>{let o=this.onBuildPhase(e,()=>{if(o.dispose(),l.dispose(),i){let c=this.langiumDocuments.getDocument(i);s(c?.uri)}else s(void 0)}),l=n.onCancellationRequested(()=>{o.dispose(),l.dispose(),a(ut)})})}async notifyBuildPhase(e,t,n){if(e.length===0)return;let i=this.buildPhaseListeners.get(t);for(let s of i)await ye(n),await s(e,n)}shouldValidate(e){return!!this.getBuildOptions(e).validation}async validate(e,t){var n,i;let s=this.serviceRegistry.getServices(e.uri).validation.DocumentValidator,a=this.getBuildOptions(e).validation,o=typeof a=="object"?a:void 0,l=await s.validateDocument(e,o,t);e.diagnostics?e.diagnostics.push(...l):e.diagnostics=l;let c=this.buildState.get(e.uri.toString());if(c){(n=c.result)!==null&&n!==void 0||(c.result={});let u=(i=o?.categories)!==null&&i!==void 0?i:nn.all;c.result.validationChecks?c.result.validationChecks.push(...u):c.result.validationChecks=[...u]}}getBuildOptions(e){var t,n;return(n=(t=this.buildState.get(e.uri.toString()))===null||t===void 0?void 0:t.options)!==null&&n!==void 0?n:{}}};var di=class{constructor(e){this.symbolIndex=new Map,this.symbolByTypeIndex=new yr,this.referenceIndex=new Map,this.documents=e.workspace.LangiumDocuments,this.serviceRegistry=e.ServiceRegistry,this.astReflection=e.AstReflection}findAllReferences(e,t){let n=me(e).uri,i=[];return this.referenceIndex.forEach(s=>{s.forEach(a=>{Ue.equals(a.targetUri,n)&&a.targetPath===t&&i.push(a)})}),V(i)}allElements(e,t){let n=V(this.symbolIndex.keys());return t&&(n=n.filter(i=>!t||t.has(i))),n.map(i=>this.getFileDescriptions(i,e)).flat()}getFileDescriptions(e,t){var n;return t?this.symbolByTypeIndex.get(e,t,()=>{var s;return((s=this.symbolIndex.get(e))!==null&&s!==void 0?s:[]).filter(o=>this.astReflection.isSubtype(o.type,t))}):(n=this.symbolIndex.get(e))!==null&&n!==void 0?n:[]}remove(e){let t=e.toString();this.symbolIndex.delete(t),this.symbolByTypeIndex.clear(t),this.referenceIndex.delete(t)}async updateContent(e,t=_.CancellationToken.None){let i=await this.serviceRegistry.getServices(e.uri).references.ScopeComputation.computeExports(e,t),s=e.uri.toString();this.symbolIndex.set(s,i),this.symbolByTypeIndex.clear(s)}async updateReferences(e,t=_.CancellationToken.None){let i=await this.serviceRegistry.getServices(e.uri).workspace.ReferenceDescriptionProvider.createDescriptions(e,t);this.referenceIndex.set(e.uri.toString(),i)}isAffected(e,t){let n=this.referenceIndex.get(e.uri.toString());return n?n.some(i=>!i.local&&t.has(i.targetUri.toString())):!1}};var hi=class{constructor(e){this.initialBuildOptions={},this._ready=new Fe,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}initialize(e){var t;this.folders=(t=e.workspaceFolders)!==null&&t!==void 0?t:void 0}initialized(e){return this.mutex.write(t=>{var n;return this.initializeWorkspace((n=this.folders)!==null&&n!==void 0?n:[],t)})}async initializeWorkspace(e,t=_.CancellationToken.None){let n=await this.performStartup(e);await ye(t),await this.documentBuilder.build(n,this.initialBuildOptions,t)}async performStartup(e){let t=this.serviceRegistry.all.flatMap(s=>s.LanguageMetaData.fileExtensions),n=[],i=s=>{n.push(s),this.langiumDocuments.hasDocument(s.uri)||this.langiumDocuments.addDocument(s)};return await this.loadAdditionalDocuments(e,i),await Promise.all(e.map(s=>[s,this.getRootFolder(s)]).map(async s=>this.traverseFolder(...s,t,i))),this._ready.resolve(),n}loadAdditionalDocuments(e,t){return Promise.resolve()}getRootFolder(e){return Be.parse(e.uri)}async traverseFolder(e,t,n,i){let s=await this.fileSystemProvider.readDirectory(t);await Promise.all(s.map(async a=>{if(this.includeEntry(e,a,n)){if(a.isDirectory)await this.traverseFolder(e,a.uri,n,i);else if(a.isFile){let o=await this.langiumDocuments.getOrCreateDocument(a.uri);i(o)}}}))}includeEntry(e,t,n){let i=Ue.basename(t.uri);if(i.startsWith("."))return!1;if(t.isDirectory)return i!=="node_modules"&&i!=="out";if(t.isFile){let s=Ue.extname(t.uri);return n.includes(s)}return!1}};var pi=class{constructor(e){let t=e.parser.TokenBuilder.buildTokens(e.Grammar,{caseInsensitive:e.LanguageMetaData.caseInsensitive});this.tokenTypes=this.toTokenTypeDictionary(t);let n=Fl(t)?Object.values(t):t;this.chevrotainLexer=new oe(n,{positionTracking:"full"})}get definition(){return this.tokenTypes}tokenize(e){var t;let n=this.chevrotainLexer.tokenize(e);return{tokens:n.tokens,errors:n.errors,hidden:(t=n.groups.hidden)!==null&&t!==void 0?t:[]}}toTokenTypeDictionary(e){if(Fl(e))return e;let t=Ul(e)?Object.values(e.modes).flat():e,n={};return t.forEach(i=>n[i.name]=i),n}};function xd(r){return Array.isArray(r)&&(r.length===0||"name"in r[0])}function Ul(r){return r&&"modes"in r&&"defaultMode"in r}function Fl(r){return!xd(r)&&!Ul(r)}function Wl(r,e,t){let n,i;typeof r=="string"?(i=e,n=t):(i=r.range.start,n=e),i||(i=G.create(0,0));let s=Ad(r),a=Vl(n),o=_m({lines:s,position:i,options:a});return Pm({index:0,tokens:o,position:i})}function jl(r,e){let t=Vl(e),n=Ad(r);if(n.length===0)return!1;let i=n[0],s=n[n.length-1],a=t.start,o=t.end;return!!a?.exec(i)&&!!o?.exec(s)}function Ad(r){let e="";return typeof r=="string"?e=r:e=r.text,e.split(co)}var Rd=/\s*(@([\p{L}][\p{L}\p{N}]*)?)/uy,Cm=/\{(@[\p{L}][\p{L}\p{N}]*)(\s*)([^\r\n}]+)?\}/gu;function _m(r){var e,t,n;let i=[],s=r.position.line,a=r.position.character;for(let o=0;o=u.length){if(i.length>0){let d=G.create(s,a);i.push({type:"break",content:"",range:F.create(d,d)})}}else{Rd.lastIndex=f;let d=Rd.exec(u);if(d){let m=d[0],y=d[1],v=G.create(s,a+f),x=G.create(s,a+f+m.length);i.push({type:"tag",content:y,range:F.create(v,x)}),f+=m.length,f=Bl(u,f)}if(f0&&i[i.length-1].type==="break"?i.slice(0,-1):i}function wm(r,e,t,n){let i=[];if(r.length===0){let s=G.create(t,n),a=G.create(t,n+e.length);i.push({type:"text",content:e,range:F.create(s,a)})}else{let s=0;for(let o of r){let l=o.index,c=e.substring(s,l);c.length>0&&i.push({type:"text",content:e.substring(s,l),range:F.create(G.create(t,s+n),G.create(t,l+n))});let u=c.length+1,f=o[1];if(i.push({type:"inline-tag",content:f,range:F.create(G.create(t,s+u+n),G.create(t,s+u+f.length+n))}),u+=f.length,o.length===4){u+=o[2].length;let h=o[3];i.push({type:"text",content:h,range:F.create(G.create(t,s+u+n),G.create(t,s+u+h.length+n))})}else i.push({type:"text",content:"",range:F.create(G.create(t,s+u+n),G.create(t,s+u+n))});s=l+o[0].length}let a=e.substring(s);a.length>0&&i.push({type:"text",content:a,range:F.create(G.create(t,s+n),G.create(t,s+n+a.length))})}return i}var Lm=/\S/,Om=/\s*$/;function Bl(r,e){let t=r.substring(e).match(Lm);return t?e+t.index:r.length}function $m(r){let e=r.match(Om);if(e&&typeof e.index=="number")return e.index}function Pm(r){var e,t,n,i;let s=G.create(r.position.line,r.position.character);if(r.tokens.length===0)return new js([],F.create(s,s));let a=[];for(;r.indext.name===e)}getTags(e){return this.getAllTags().filter(t=>t.name===e)}getAllTags(){return this.elements.filter(e=>"name"in e)}toString(){let e="";for(let t of this.elements)if(e.length===0)e=t.toString();else{let n=t.toString();e+=Ed(e)+n}return e.trim()}toMarkdown(e){let t="";for(let n of this.elements)if(t.length===0)t=n.toMarkdown(e);else{let i=n.toMarkdown(e);t+=Ed(t)+i}return t.trim()}},mi=class{constructor(e,t,n,i){this.name=e,this.content=t,this.inline=n,this.range=i}toString(){let e=`@${this.name}`,t=this.content.toString();return this.content.inlines.length===1?e=`${e} ${t}`:this.content.inlines.length>1&&(e=`${e} +${t}`),this.inline?`{${e}}`:e}toMarkdown(e){var t,n;return(n=(t=e?.renderTag)===null||t===void 0?void 0:t.call(e,this))!==null&&n!==void 0?n:this.toMarkdownDefault(e)}toMarkdownDefault(e){let t=this.content.toMarkdown(e);if(this.inline){let s=Fm(this.name,t,e??{});if(typeof s=="string")return s}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 ${t}`:this.content.inlines.length>1&&(i=`${i} +${t}`),this.inline?`{${i}}`:i}};function Fm(r,e,t){var n,i;if(r==="linkplain"||r==="linkcode"||r==="link"){let s=e.indexOf(" "),a=e;if(s>0){let l=Bl(e,s);a=e.substring(l),e=e.substring(0,s)}return(r==="linkcode"||r==="link"&&t.link==="code")&&(a=`\`${a}\``),(i=(n=t.renderLink)===null||n===void 0?void 0:n.call(t,e,a))!==null&&i!==void 0?i:Um(e,a)}}function Um(r,e){try{return Be.parse(r,!0),`[${e}](${r})`}catch{return r}}var gi=class{constructor(e,t){this.inlines=e,this.range=t}toString(){let e="";for(let t=0;tn.range.start.line&&(e+=` +`)}return e}toMarkdown(e){let t="";for(let n=0;ni.range.start.line&&(t+=` +`)}return t}},Vs=class{constructor(e,t){this.text=e,this.range=t}toString(){return this.text}toMarkdown(){return this.text}};function Ed(r){return r.endsWith(` +`)?` +`:` + +`}var yi=class{constructor(e){this.indexManager=e.shared.workspace.IndexManager,this.commentProvider=e.documentation.CommentProvider}getDocumentation(e){let t=this.commentProvider.getComment(e);if(t&&jl(t))return Wl(t).toMarkdown({renderLink:(i,s)=>this.documentationLinkRenderer(e,i,s),renderTag:i=>this.documentationTagRenderer(e,i)})}documentationLinkRenderer(e,t,n){var i;let s=(i=this.findNameInPrecomputedScopes(e,t))!==null&&i!==void 0?i:this.findNameInGlobalScope(e,t);if(s&&s.nameSegment){let a=s.nameSegment.range.start.line+1,o=s.nameSegment.range.start.character+1,l=s.documentUri.with({fragment:`L${a},${o}`});return`[${n}](${l.toString()})`}else return}documentationTagRenderer(e,t){}findNameInPrecomputedScopes(e,t){let i=me(e).precomputedScopes;if(!i)return;let s=e;do{let o=i.get(s).find(l=>l.name===t);if(o)return o;s=s.$container}while(s)}findNameInGlobalScope(e,t){return this.indexManager.allElements().find(i=>i.name===t)}};var Ti=class{constructor(e){this.grammarConfig=()=>e.parser.GrammarConfig}getComment(e){var t;return Dl(e)?e.$comment:(t=ta(e.$cstNode,this.grammarConfig().multilineCommentRules))===null||t===void 0?void 0:t.text}};var le={};U(le,rc(Ll(),1));var xi=class{constructor(e){this.syncParser=e.parser.LangiumParser}parse(e){return Promise.resolve(this.syncParser.parse(e))}},Kl=class{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 t=this.queue.shift();t&&(e.lock(),t.resolve(e))}}),this.workerPool.push(e)}}async parse(e,t){let n=await this.acquireParserWorker(t),i=new Fe,s,a=t.onCancellationRequested(()=>{s=setTimeout(()=>{this.terminateWorker(n)},this.terminationDelay)});return n.parse(e).then(o=>{let l=this.hydrator.hydrate(o);i.resolve(l)}).catch(o=>{i.reject(o)}).finally(()=>{a.dispose(),clearTimeout(s)}),i.promise}terminateWorker(e){e.terminate();let t=this.workerPool.indexOf(e);t>=0&&this.workerPool.splice(t,1)}async acquireParserWorker(e){this.initializeWorkers();for(let n of this.workerPool)if(n.ready)return n.lock(),n;let t=new Fe;return e.onCancellationRequested(()=>{let n=this.queue.indexOf(t);n>=0&&this.queue.splice(n,1),t.reject(ut)}),this.queue.push(t),t.promise}},Hl=class{get ready(){return this._ready}get onReady(){return this.onReadyEmitter.event}constructor(e,t,n,i){this.onReadyEmitter=new le.Emitter,this.deferred=new Fe,this._ready=!0,this._parsing=!1,this.sendMessage=e,this._terminate=i,t(s=>{let a=s;this.deferred.resolve(a),this.unlock()}),n(s=>{this.deferred.reject(s),this.unlock()})}terminate(){this.deferred.reject(ut),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 Fe,this.sendMessage(e),this.deferred.promise}};var Ri=class{constructor(){this.previousTokenSource=new _.CancellationTokenSource,this.writeQueue=[],this.readQueue=[],this.done=!0}write(e){this.cancelWrite();let t=new _.CancellationTokenSource;return this.previousTokenSource=t,this.enqueue(this.writeQueue,e,t.token)}read(e){return this.enqueue(this.readQueue,e)}enqueue(e,t,n){let i=new Fe,s={action:t,deferred:i,cancellationToken:n??_.CancellationToken.None};return e.push(s),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:t,deferred:n,cancellationToken:i})=>{try{let s=await Promise.resolve().then(()=>t(i));n.resolve(s)}catch(s){Ut(s)?n.resolve(void 0):n.reject(s)}})),this.done=!0,this.performNextOperation()}cancelWrite(){this.previousTokenSource.cancel()}};var Ei=class{constructor(e){this.grammarElementIdMap=new gr,this.tokenTypeIdMap=new gr,this.grammar=e.Grammar,this.lexer=e.parser.Lexer,this.linker=e.references.Linker}dehydrate(e){return{lexerErrors:e.lexerErrors.map(t=>Object.assign({},t)),parserErrors:e.parserErrors.map(t=>Object.assign({},t)),value:this.dehydrateAstNode(e.value,this.createDehyrationContext(e.value))}}createDehyrationContext(e){let t=new Map,n=new Map;for(let i of Je(e))t.set(i,{});if(e.$cstNode)for(let i of qt(e.$cstNode))n.set(i,{});return{astNodes:t,cstNodes:n}}dehydrateAstNode(e,t){let n=t.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,t));for(let[i,s]of Object.entries(e))if(!i.startsWith("$"))if(Array.isArray(s)){let a=[];n[i]=a;for(let o of s)se(o)?a.push(this.dehydrateAstNode(o,t)):Ee(o)?a.push(this.dehydrateReference(o,t)):a.push(o)}else se(s)?n[i]=this.dehydrateAstNode(s,t):Ee(s)?n[i]=this.dehydrateReference(s,t):s!==void 0&&(n[i]=s);return n}dehydrateReference(e,t){let n={};return n.$refText=e.$refText,e.$refNode&&(n.$refNode=t.cstNodes.get(e.$refNode)),n}dehydrateCstNode(e,t){let n=t.cstNodes.get(e);return on(e)?n.fullText=e.fullText:n.grammarSource=this.getGrammarElementId(e.grammarSource),n.hidden=e.hidden,n.astNode=t.astNodes.get(e.astNode),Ve(e)?n.content=e.content.map(i=>this.dehydrateCstNode(i,t)):$t(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 t=e.value,n=this.createHydrationContext(t);return"$cstNode"in t&&this.hydrateCstNode(t.$cstNode,n),{lexerErrors:e.lexerErrors,parserErrors:e.parserErrors,value:this.hydrateAstNode(t,n)}}createHydrationContext(e){let t=new Map,n=new Map;for(let s of Je(e))t.set(s,{});let i;if(e.$cstNode)for(let s of qt(e.$cstNode)){let a;"fullText"in s?(a=new qr(s.fullText),i=a):"content"in s?a=new dr:"tokenType"in s&&(a=this.hydrateCstLeafNode(s)),a&&(n.set(s,a),a.root=i)}return{astNodes:t,cstNodes:n}}hydrateAstNode(e,t){let n=t.astNodes.get(e);n.$type=e.$type,n.$containerIndex=e.$containerIndex,n.$containerProperty=e.$containerProperty,e.$cstNode&&(n.$cstNode=t.cstNodes.get(e.$cstNode));for(let[i,s]of Object.entries(e))if(!i.startsWith("$"))if(Array.isArray(s)){let a=[];n[i]=a;for(let o of s)se(o)?a.push(this.setParent(this.hydrateAstNode(o,t),n)):Ee(o)?a.push(this.hydrateReference(o,n,i,t)):a.push(o)}else se(s)?n[i]=this.setParent(this.hydrateAstNode(s,t),n):Ee(s)?n[i]=this.hydrateReference(s,n,i,t):s!==void 0&&(n[i]=s);return n}setParent(e,t){return e.$container=t,e}hydrateReference(e,t,n,i){return this.linker.buildReference(t,n,i.cstNodes.get(e.$refNode),e.$refText)}hydrateCstNode(e,t,n=0){let i=t.cstNodes.get(e);if(typeof e.grammarSource=="number"&&(i.grammarSource=this.getGrammarElement(e.grammarSource)),i.astNode=t.astNodes.get(e.astNode),Ve(i))for(let s of e.content){let a=this.hydrateCstNode(s,t,n++);i.content.push(a)}return i}hydrateCstLeafNode(e){let t=this.getTokenType(e.tokenType),n=e.offset,i=e.length,s=e.startLine,a=e.startColumn,o=e.endLine,l=e.endColumn,c=e.hidden;return new fr(n,i,{start:{line:s,character:a},end:{line:o,character:l}},t,c)}getTokenType(e){return this.lexer.definition[e]}getGrammarElementId(e){return this.grammarElementIdMap.size===0&&this.createGrammarElementIdMap(),this.grammarElementIdMap.get(e)}getGrammarElement(e){this.grammarElementIdMap.size===0&&this.createGrammarElementIdMap();let t=this.grammarElementIdMap.getKey(e);if(t)return t;throw new Error("Invalid grammar element id: "+e)}createGrammarElementIdMap(){let e=0;for(let t of Je(this.grammar))fn(t)&&this.grammarElementIdMap.set(t,e++)}};function zl(r){return{documentation:{CommentProvider:e=>new Ti(e),DocumentationProvider:e=>new yi(e)},parser:{AsyncParser:e=>new xi(e),GrammarConfig:e=>No(e),LangiumParser:e=>Il(e),CompletionParser:e=>kl(e),ValueConverter:()=>new mr,TokenBuilder:()=>new pr,Lexer:e=>new pi(e),ParserErrorMessageProvider:()=>new Xr},workspace:{AstNodeLocator:()=>new ci,AstNodeDescriptionProvider:e=>new oi(e),ReferenceDescriptionProvider:e=>new li(e)},references:{Linker:e=>new Yn(e),NameProvider:()=>new Jn,ScopeProvider:e=>new ri(e),ScopeComputation:e=>new Zn(e),References:e=>new Qn(e)},serializer:{Hydrator:e=>new Ei(e),JsonSerializer:e=>new ni(e)},validation:{DocumentValidator:e=>new ai(e),ValidationRegistry:e=>new si(e)},shared:()=>r.shared}}function ql(r){return{ServiceRegistry:()=>new ii,workspace:{LangiumDocuments:e=>new Xn(e),LangiumDocumentFactory:e=>new qn(e),DocumentBuilder:e=>new fi(e),IndexManager:e=>new di(e),WorkspaceManager:e=>new hi(e),FileSystemProvider:e=>r.fileSystemProvider(e),WorkspaceLock:()=>new Ri,ConfigurationProvider:e=>new ui(e)}}}var Xl;(function(r){r.merge=(e,t)=>Ks(Ks({},e),t)})(Xl||(Xl={}));function Hs(r,e,t,n,i,s,a,o,l){let c=[r,e,t,n,i,s,a,o,l].reduce(Ks,{});return _d(c)}var Yl=Symbol("isProxy");function Cd(r){if(r&&r[Yl])for(let e of Object.values(r))Cd(e);return r}function _d(r,e){let t=new Proxy({},{deleteProperty:()=>!1,get:(n,i)=>Sd(n,i,r,e||t),getOwnPropertyDescriptor:(n,i)=>(Sd(n,i,r,e||t),Object.getOwnPropertyDescriptor(n,i)),has:(n,i)=>i in r,ownKeys:()=>[...Reflect.ownKeys(r),Yl]});return t[Yl]=!0,t}var Nd=Symbol();function Sd(r,e,t,n){if(e in r){if(r[e]instanceof Error)throw new Error("Construction failure. Please make sure that your dependencies are constructable.",{cause:r[e]});if(r[e]===Nd)throw new Error('Cycle detected. Please make "'+String(e)+'" lazy. See https://langium.org/docs/configuration-services/#resolving-cyclic-dependencies');return r[e]}else if(e in t){let i=t[e];r[e]=Nd;try{r[e]=typeof i=="function"?i(n):_d(i,n)}catch(s){throw r[e]=s instanceof Error?s:void 0,s}return r[e]}else return}function Ks(r,e){if(e){for(let[t,n]of Object.entries(e))if(n!==void 0){let i=r[t];i!==null&&n!==null&&typeof i=="object"&&typeof n=="object"?r[t]=Ks(i,n):r[t]=n}}return r}var B={};jt(B,{AstUtils:()=>Di,BiMap:()=>gr,Cancellation:()=>_,ContextCache:()=>yr,CstUtils:()=>Ni,DONE_RESULT:()=>Pe,Deferred:()=>Fe,Disposable:()=>Tr,DisposableCache:()=>tn,DocumentCache:()=>Gs,EMPTY_STREAM:()=>ln,ErrorWithLocation:()=>Yt,GrammarUtils:()=>ji,MultiMap:()=>ft,OperationCancelled:()=>ut,Reduction:()=>Er,RegExpUtils:()=>Bi,SimpleCache:()=>ti,StreamImpl:()=>Ke,TreeStreamImpl:()=>st,URI:()=>Be,UriUtils:()=>Ue,WorkspaceCache:()=>rn,assertUnreachable:()=>Pt,delayNextTick:()=>bl,interruptAndCheck:()=>ye,isOperationCancelled:()=>Ut,loadGrammarFromJson:()=>Gt,setInterruptionPeriod:()=>fd,startCancelableOperation:()=>ud,stream:()=>V});U(B,le);var zs=class{readFile(){throw new Error("No file system is available.")}async readDirectory(){return[]}},Jl={fileSystemProvider:()=>new zs};var Gm={Grammar:()=>{},LanguageMetaData:()=>({caseInsensitive:!1,fileExtensions:[".langium"],languageId:"langium"})},Bm={AstReflection:()=>new vr};function Wm(){let r=Hs(ql(Jl),Bm),e=Hs(zl({shared:r}),Gm);return r.ServiceRegistry.register(e),e}function Gt(r){var e;let t=Wm(),n=t.serializer.JsonSerializer.deserialize(r);return t.shared.workspace.LangiumDocumentFactory.fromModel(n,Be.parse(`memory://${(e=n.name)!==null&&e!==void 0?e:"grammar"}.langium`)),n}U(he,B);var jm=Object.defineProperty,W=(r,e)=>jm(r,"name",{value:e,configurable:!0}),Vm="Statement",Km="Architecture";function Hm(r){return nt.isInstance(r,Km)}W(Hm,"isArchitecture");var bd="Branch";function zm(r){return nt.isInstance(r,bd)}W(zm,"isBranch");var qm="Checkout",Xm="CherryPicking",Md="Commit";function Ym(r){return nt.isInstance(r,Md)}W(Ym,"isCommit");var Jm="Common";function Qm(r){return nt.isInstance(r,Jm)}W(Qm,"isCommon");var Dd="GitGraph";function Zm(r){return nt.isInstance(r,Dd)}W(Zm,"isGitGraph");var eg="Info";function tg(r){return nt.isInstance(r,eg)}W(tg,"isInfo");var Fd="Merge";function rg(r){return nt.isInstance(r,Fd)}W(rg,"isMerge");var ng="Packet";function ig(r){return nt.isInstance(r,ng)}W(ig,"isPacket");var sg="PacketBlock";function ag(r){return nt.isInstance(r,sg)}W(ag,"isPacketBlock");var og="Pie";function lg(r){return nt.isInstance(r,og)}W(lg,"isPie");var cg="PieSection";function ug(r){return nt.isInstance(r,cg)}W(ug,"isPieSection");var fg="Direction",Ud=class extends Ht{static{W(this,"MermaidAstReflection")}getAllTypes(){return["Architecture","Branch","Checkout","CherryPicking","Commit","Common","Direction","Edge","GitGraph","Group","Info","Junction","Merge","Packet","PacketBlock","Pie","PieSection","Service","Statement"]}computeIsSubtype(r,e){switch(r){case bd:case qm:case Xm:case Md:case Fd:return this.isSubtype(Vm,e);case fg:return this.isSubtype(Dd,e);default:return!1}}getReferenceType(r){let e=`${r.container.$type}:${r.property}`;throw new Error(`${e} is not a valid reference id.`)}getTypeMetaData(r){switch(r){case"Architecture":return{name:"Architecture",properties:[{name:"accDescr"},{name:"accTitle"},{name:"edges",defaultValue:[]},{name:"groups",defaultValue:[]},{name:"junctions",defaultValue:[]},{name:"services",defaultValue:[]},{name:"title"}]};case"Branch":return{name:"Branch",properties:[{name:"name"},{name:"order"}]};case"Checkout":return{name:"Checkout",properties:[{name:"branch"}]};case"CherryPicking":return{name:"CherryPicking",properties:[{name:"id"},{name:"parent"},{name:"tags",defaultValue:[]}]};case"Commit":return{name:"Commit",properties:[{name:"id"},{name:"message"},{name:"tags",defaultValue:[]},{name:"type"}]};case"Common":return{name:"Common",properties:[{name:"accDescr"},{name:"accTitle"},{name:"title"}]};case"Edge":return{name:"Edge",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"GitGraph":return{name:"GitGraph",properties:[{name:"accDescr"},{name:"accTitle"},{name:"statements",defaultValue:[]},{name:"title"}]};case"Group":return{name:"Group",properties:[{name:"icon"},{name:"id"},{name:"in"},{name:"title"}]};case"Info":return{name:"Info",properties:[{name:"accDescr"},{name:"accTitle"},{name:"title"}]};case"Junction":return{name:"Junction",properties:[{name:"id"},{name:"in"}]};case"Merge":return{name:"Merge",properties:[{name:"branch"},{name:"id"},{name:"tags",defaultValue:[]},{name:"type"}]};case"Packet":return{name:"Packet",properties:[{name:"accDescr"},{name:"accTitle"},{name:"blocks",defaultValue:[]},{name:"title"}]};case"PacketBlock":return{name:"PacketBlock",properties:[{name:"end"},{name:"label"},{name:"start"}]};case"Pie":return{name:"Pie",properties:[{name:"accDescr"},{name:"accTitle"},{name:"sections",defaultValue:[]},{name:"showData",defaultValue:!1},{name:"title"}]};case"PieSection":return{name:"PieSection",properties:[{name:"label"},{name:"value"}]};case"Service":return{name:"Service",properties:[{name:"icon"},{name:"iconText"},{name:"id"},{name:"in"},{name:"title"}]};case"Direction":return{name:"Direction",properties:[{name:"accDescr"},{name:"accTitle"},{name:"dir"},{name:"statements",defaultValue:[]},{name:"title"}]};default:return{name:r,properties:[]}}}},nt=new Ud,wd,dg=W(()=>wd??(wd=Gt('{"$type":"Grammar","isDeclared":true,"name":"Info","imports":[],"rules":[{"$type":"ParserRule","name":"Info","entry":true,"definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[],"cardinality":"*"},{"$type":"Keyword","value":"info"},{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[],"cardinality":"*"},{"$type":"Group","elements":[{"$type":"Keyword","value":"showInfo"},{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[],"cardinality":"*"}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[],"cardinality":"?"}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"TitleAndAccessibilities","fragment":true,"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@2"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"EOL","fragment":true,"dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"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","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":[{"$type":"Interface","name":"Common","attributes":[{"$type":"TypeAttribute","name":"accDescr","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accTitle","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"title","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}}],"superTypes":[]}],"types":[],"usedGrammars":[]}')),"InfoGrammar"),Ld,hg=W(()=>Ld??(Ld=Gt(`{"$type":"Grammar","isDeclared":true,"name":"Packet","imports":[],"rules":[{"$type":"ParserRule","name":"Packet","entry":true,"definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"*"},{"$type":"Keyword","value":"packet-beta"},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]},{"$type":"Assignment","feature":"blocks","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]},"cardinality":"*"}]},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"+"},{"$type":"Assignment","feature":"blocks","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]},"cardinality":"+"}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"*"}]}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"PacketBlock","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"start","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":"-"},{"$type":"Assignment","feature":"end","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}}],"cardinality":"?"},{"$type":"Keyword","value":":"},{"$type":"Assignment","feature":"label","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":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":"STRING","definition":{"$type":"RegexToken","regex":"/\\"[^\\"]*\\"|'[^']*'/"},"fragment":false,"hidden":false},{"$type":"ParserRule","name":"TitleAndAccessibilities","fragment":true,"definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"EOL","fragment":true,"dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"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","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":[{"$type":"Interface","name":"Common","attributes":[{"$type":"TypeAttribute","name":"accDescr","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accTitle","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"title","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}}],"superTypes":[]}],"types":[],"usedGrammars":[]}`)),"PacketGrammar"),Od,pg=W(()=>Od??(Od=Gt('{"$type":"Grammar","isDeclared":true,"name":"Pie","imports":[],"rules":[{"$type":"ParserRule","name":"Pie","entry":true,"definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"*"},{"$type":"Keyword","value":"pie"},{"$type":"Assignment","feature":"showData","operator":"?=","terminal":{"$type":"Keyword","value":"showData"},"cardinality":"?"},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]},{"$type":"Assignment","feature":"sections","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]},"cardinality":"*"}]},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"+"},{"$type":"Assignment","feature":"sections","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]},"cardinality":"+"}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"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@2"},"arguments":[]}},{"$type":"Keyword","value":":"},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"PIE_SECTION_LABEL","definition":{"$type":"RegexToken","regex":"/\\"[^\\"]+\\"/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"PIE_SECTION_VALUE","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/(0|[1-9][0-9]*)(\\\\.[0-9]+)?/"},"fragment":false,"hidden":false},{"$type":"ParserRule","name":"TitleAndAccessibilities","fragment":true,"definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"EOL","fragment":true,"dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"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","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":[{"$type":"Interface","name":"Common","attributes":[{"$type":"TypeAttribute","name":"accDescr","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accTitle","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"title","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}}],"superTypes":[]}],"types":[],"usedGrammars":[]}')),"PieGrammar"),$d,mg=W(()=>$d??($d=Gt('{"$type":"Grammar","isDeclared":true,"name":"Architecture","imports":[],"rules":[{"$type":"ParserRule","name":"Architecture","entry":true,"definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[],"cardinality":"*"},{"$type":"Keyword","value":"architecture-beta"},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[]}]},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[],"cardinality":"*"}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[],"cardinality":"*"}]}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Statement","fragment":true,"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","name":"LeftPort","fragment":true,"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","name":"RightPort","fragment":true,"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","name":"Arrow","fragment":true,"definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]},{"$type":"Assignment","feature":"lhsInto","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"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@13"},"arguments":[]}},{"$type":"Keyword","value":"-"}]}]},{"$type":"Assignment","feature":"rhsInto","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"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@10"},"arguments":[]}},{"$type":"Assignment","feature":"icon","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]},"cardinality":"?"},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]},"cardinality":"?"},{"$type":"Group","elements":[{"$type":"Keyword","value":"in"},{"$type":"Assignment","feature":"in","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"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@10"},"arguments":[]}},{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"iconText","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]}},{"$type":"Assignment","feature":"icon","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}}],"cardinality":"?"},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]},"cardinality":"?"},{"$type":"Group","elements":[{"$type":"Keyword","value":"in"},{"$type":"Assignment","feature":"in","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"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@10"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":"in"},{"$type":"Assignment","feature":"in","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"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@10"},"arguments":[]}},{"$type":"Assignment","feature":"lhsGroup","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]},"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]},{"$type":"Assignment","feature":"rhsId","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}},{"$type":"Assignment","feature":"rhsGroup","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]},"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"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":"ARCH_ID","definition":{"$type":"RegexToken","regex":"/[\\\\w]+/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARCH_TEXT_ICON","definition":{"$type":"RegexToken","regex":"/\\\\(\\"[^\\"]+\\"\\\\)/"},"fragment":false,"hidden":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},{"$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","name":"TitleAndAccessibilities","fragment":true,"definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@21"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"EOL","fragment":true,"dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"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","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":[{"$type":"Interface","name":"Common","attributes":[{"$type":"TypeAttribute","name":"accDescr","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accTitle","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"title","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}}],"superTypes":[]}],"types":[],"usedGrammars":[]}')),"ArchitectureGrammar"),Pd,gg=W(()=>Pd??(Pd=Gt(`{"$type":"Grammar","isDeclared":true,"name":"GitGraph","interfaces":[{"$type":"Interface","name":"Common","attributes":[{"$type":"TypeAttribute","name":"accDescr","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accTitle","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"title","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}}],"superTypes":[]}],"rules":[{"$type":"ParserRule","name":"TitleAndAccessibilities","fragment":true,"definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"EOL","fragment":true,"dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"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","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":"ParserRule","name":"GitGraph","entry":true,"definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"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@12"},"arguments":[]},{"$type":"Keyword","value":":"}]}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[],"cardinality":"*"},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[],"cardinality":"*"},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@0"},"arguments":[]},{"$type":"Assignment","feature":"statements","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}],"cardinality":"*"}]}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Statement","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"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@20"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"msg:","cardinality":"?"},{"$type":"Assignment","feature":"message","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"tag:"},{"$type":"Assignment","feature":"tags","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"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@1"},"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@19"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}]}},{"$type":"Group","elements":[{"$type":"Keyword","value":"order:"},{"$type":"Assignment","feature":"order","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[]}}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"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@19"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}]}},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Keyword","value":"id:"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"tag:"},{"$type":"Assignment","feature":"tags","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"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@1"},"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@19"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"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@20"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"tag:"},{"$type":"Assignment","feature":"tags","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"parent:"},{"$type":"Assignment","feature":"parent","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}]}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"INT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/[0-9]+(?=\\\\s)/"},"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":"STRING","definition":{"$type":"RegexToken","regex":"/\\"[^\\"]*\\"|'[^']*'/"},"fragment":false,"hidden":false}],"definesHiddenTokens":false,"hiddenTokens":[],"imports":[],"types":[],"usedGrammars":[]}`)),"GitGraphGrammar"),yg={languageId:"info",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1},Tg={languageId:"packet",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1},xg={languageId:"pie",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1},Rg={languageId:"architecture",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1},Eg={languageId:"gitGraph",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1},rN={AstReflection:W(()=>new Ud,"AstReflection")},nN={Grammar:W(()=>dg(),"Grammar"),LanguageMetaData:W(()=>yg,"LanguageMetaData"),parser:{}},iN={Grammar:W(()=>hg(),"Grammar"),LanguageMetaData:W(()=>Tg,"LanguageMetaData"),parser:{}},sN={Grammar:W(()=>pg(),"Grammar"),LanguageMetaData:W(()=>xg,"LanguageMetaData"),parser:{}},aN={Grammar:W(()=>mg(),"Grammar"),LanguageMetaData:W(()=>Rg,"LanguageMetaData"),parser:{}},oN={Grammar:W(()=>gg(),"Grammar"),LanguageMetaData:W(()=>Eg,"LanguageMetaData"),parser:{}},Ag=/accDescr(?:[\t ]*:([^\n\r]*)|\s*{([^}]*)})/,vg=/accTitle[\t ]*:([^\n\r]*)/,kg=/title([\t ][^\n\r]*|)/,Ig={ACC_DESCR:Ag,ACC_TITLE:vg,TITLE:kg},Ng=class extends mr{static{W(this,"AbstractMermaidValueConverter")}runConverter(r,e,t){let n=this.runCommonConverter(r,e,t);return n===void 0&&(n=this.runCustomConverter(r,e,t)),n===void 0?super.runConverter(r,e,t):n}runCommonConverter(r,e,t){let n=Ig[r.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,` +`)}}},cN=class extends Ng{static{W(this,"CommonValueConverter")}runCustomConverter(r,e,t){}},Sg=class extends pr{static{W(this,"AbstractMermaidTokenBuilder")}constructor(r){super(),this.keywords=new Set(r)}buildKeywordTokens(r,e,t){let n=super.buildKeywordTokens(r,e,t);return n.forEach(i=>{this.keywords.has(i.name)&&i.PATTERN!==void 0&&(i.PATTERN=new RegExp(i.PATTERN.toString()+"(?:(?=%%)|(?!\\S))"))}),n}},fN=class extends Sg{static{W(this,"CommonTokenBuilder")}};export{zl as a,ql as b,Hs as c,Jl as d,he as e,W as f,rN as g,nN as h,iN as i,sN as j,aN as k,oN as l,Ng as m,cN as n,Sg as o}; +//# sourceMappingURL=chunk-BIJFJY5F.min.js.map diff --git a/docs/_site/public/chunk-BIJFJY5F.min.js.map b/docs/_site/public/chunk-BIJFJY5F.min.js.map new file mode 100644 index 0000000..9dab7c6 --- /dev/null +++ b/docs/_site/public/chunk-BIJFJY5F.min.js.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": ["../../node_modules/vscode-jsonrpc/lib/common/ral.js", "../../node_modules/vscode-jsonrpc/lib/common/is.js", "../../node_modules/vscode-jsonrpc/lib/common/events.js", "../../node_modules/vscode-jsonrpc/lib/common/cancellation.js", "../../node_modules/langium/src/index.ts", "../../node_modules/langium/src/utils/cst-utils.ts", "../../node_modules/langium/src/syntax-tree.ts", "../../node_modules/langium/src/utils/stream.ts", "../../node_modules/langium/src/utils/grammar-utils.ts", "../../node_modules/langium/src/utils/errors.ts", "../../node_modules/langium/src/languages/generated/ast.ts", "../../node_modules/langium/src/utils/ast-utils.ts", "../../node_modules/langium/src/utils/regexp-utils.ts", "../../node_modules/@chevrotain/regexp-to-ast/src/utils.ts", "../../node_modules/@chevrotain/regexp-to-ast/src/character-classes.ts", "../../node_modules/@chevrotain/regexp-to-ast/src/regexp-parser.ts", "../../node_modules/@chevrotain/regexp-to-ast/src/base-regexp-visitor.ts", "../../node_modules/langium/src/languages/grammar-config.ts", "../../node_modules/@chevrotain/utils/src/print.ts", "../../node_modules/@chevrotain/utils/src/timer.ts", "../../node_modules/@chevrotain/utils/src/to-fast-properties.ts", "../../node_modules/@chevrotain/gast/src/model.ts", "../../node_modules/@chevrotain/gast/src/visitor.ts", "../../node_modules/@chevrotain/gast/src/helpers.ts", "../../node_modules/chevrotain/src/parse/grammar/rest.ts", "../../node_modules/chevrotain/src/parse/grammar/first.ts", "../../node_modules/chevrotain/src/parse/constants.ts", "../../node_modules/chevrotain/src/parse/grammar/follow.ts", "../../node_modules/chevrotain/src/scan/reg_exp_parser.ts", "../../node_modules/chevrotain/src/scan/reg_exp.ts", "../../node_modules/chevrotain/src/scan/lexer.ts", "../../node_modules/chevrotain/src/scan/tokens.ts", "../../node_modules/chevrotain/src/scan/lexer_errors_public.ts", "../../node_modules/chevrotain/src/scan/lexer_public.ts", "../../node_modules/chevrotain/src/scan/tokens_public.ts", "../../node_modules/chevrotain/src/parse/errors_public.ts", "../../node_modules/chevrotain/src/parse/grammar/resolver.ts", "../../node_modules/chevrotain/src/parse/grammar/interpreter.ts", "../../node_modules/chevrotain/src/parse/grammar/lookahead.ts", "../../node_modules/chevrotain/src/parse/grammar/checks.ts", "../../node_modules/chevrotain/src/parse/grammar/gast/gast_resolver_public.ts", "../../node_modules/chevrotain/src/parse/exceptions_public.ts", "../../node_modules/chevrotain/src/parse/parser/traits/recoverable.ts", "../../node_modules/chevrotain/src/parse/grammar/keys.ts", "../../node_modules/chevrotain/src/parse/grammar/llk_lookahead.ts", "../../node_modules/chevrotain/src/parse/parser/traits/looksahead.ts", "../../node_modules/chevrotain/src/parse/cst/cst.ts", "../../node_modules/chevrotain/src/lang/lang_extensions.ts", "../../node_modules/chevrotain/src/parse/cst/cst_visitor.ts", "../../node_modules/chevrotain/src/parse/parser/traits/tree_builder.ts", "../../node_modules/chevrotain/src/parse/parser/traits/lexer_adapter.ts", "../../node_modules/chevrotain/src/parse/parser/traits/recognizer_api.ts", "../../node_modules/chevrotain/src/parse/parser/traits/recognizer_engine.ts", "../../node_modules/chevrotain/src/parse/parser/traits/error_handler.ts", "../../node_modules/chevrotain/src/parse/parser/traits/context_assist.ts", "../../node_modules/chevrotain/src/parse/parser/traits/gast_recorder.ts", "../../node_modules/chevrotain/src/parse/parser/traits/perf_tracer.ts", "../../node_modules/chevrotain/src/parse/parser/utils/apply_mixins.ts", "../../node_modules/chevrotain/src/parse/parser/parser.ts", "../../node_modules/chevrotain-allstar/src/atn.ts", "../../node_modules/chevrotain-allstar/src/dfa.ts", "../../node_modules/chevrotain-allstar/src/all-star-lookahead.ts", "../../node_modules/vscode-languageserver-types/lib/esm/main.js", "../../node_modules/langium/src/parser/cst-node-builder.ts", "../../node_modules/langium/src/parser/langium-parser.ts", "../../node_modules/langium/src/parser/parser-builder-base.ts", "../../node_modules/langium/src/parser/completion-parser-builder.ts", "../../node_modules/langium/src/parser/langium-parser-builder.ts", "../../node_modules/langium/src/parser/token-builder.ts", "../../node_modules/langium/src/parser/value-converter.ts", "../../node_modules/langium/src/utils/cancellation.ts", "../../node_modules/langium/src/utils/promise-utils.ts", "../../node_modules/vscode-languageserver-textdocument/lib/esm/main.js", "webpack://LIB/node_modules/path-browserify/index.js", "webpack://LIB/webpack/bootstrap", "webpack://LIB/webpack/runtime/define%20property%20getters", "webpack://LIB/webpack/runtime/hasOwnProperty%20shorthand", "webpack://LIB/webpack/runtime/make%20namespace%20object", "webpack://LIB/src/platform.ts", "webpack://LIB/src/uri.ts", "webpack://LIB/src/utils.ts", "../../node_modules/langium/src/utils/uri-utils.ts", "../../node_modules/langium/src/workspace/documents.ts", "../../node_modules/langium/src/references/linker.ts", "../../node_modules/langium/src/references/name-provider.ts", "../../node_modules/langium/src/references/references.ts", "../../node_modules/langium/src/utils/collections.ts", "../../node_modules/langium/src/references/scope-computation.ts", "../../node_modules/langium/src/references/scope.ts", "../../node_modules/langium/src/utils/caching.ts", "../../node_modules/langium/src/references/scope-provider.ts", "../../node_modules/langium/src/serializer/json-serializer.ts", "../../node_modules/langium/src/service-registry.ts", "../../node_modules/langium/src/validation/validation-registry.ts", "../../node_modules/langium/src/validation/document-validator.ts", "../../node_modules/langium/src/workspace/ast-descriptions.ts", "../../node_modules/langium/src/workspace/ast-node-locator.ts", "../../node_modules/langium/src/workspace/configuration.ts", "../../node_modules/langium/src/utils/disposable.ts", "../../node_modules/langium/src/workspace/document-builder.ts", "../../node_modules/langium/src/workspace/index-manager.ts", "../../node_modules/langium/src/workspace/workspace-manager.ts", "../../node_modules/langium/src/parser/lexer.ts", "../../node_modules/langium/src/documentation/jsdoc.ts", "../../node_modules/langium/src/documentation/documentation-provider.ts", "../../node_modules/langium/src/documentation/comment-provider.ts", "../../node_modules/langium/src/utils/event.ts", "../../node_modules/langium/src/parser/async-parser.ts", "../../node_modules/langium/src/workspace/workspace-lock.ts", "../../node_modules/langium/src/serializer/hydrator.ts", "../../node_modules/langium/src/default-module.ts", "../../node_modules/langium/src/dependency-injection.ts", "../../node_modules/langium/src/utils/index.ts", "../../node_modules/langium/src/workspace/file-system-provider.ts", "../../node_modules/langium/src/utils/grammar-loader.ts", "../../node_modules/@mermaid-js/parser/dist/chunks/mermaid-parser.core/chunk-Y27MQZ3U.mjs"], + "sourcesContent": ["\"use strict\";\n/* --------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n * ------------------------------------------------------------------------------------------ */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nlet _ral;\nfunction RAL() {\n if (_ral === undefined) {\n throw new Error(`No runtime abstraction layer installed`);\n }\n return _ral;\n}\n(function (RAL) {\n function install(ral) {\n if (ral === undefined) {\n throw new Error(`No runtime abstraction layer provided`);\n }\n _ral = ral;\n }\n RAL.install = install;\n})(RAL || (RAL = {}));\nexports.default = RAL;\n", "\"use strict\";\n/* --------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n * ------------------------------------------------------------------------------------------ */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.stringArray = exports.array = exports.func = exports.error = exports.number = exports.string = exports.boolean = void 0;\nfunction boolean(value) {\n return value === true || value === false;\n}\nexports.boolean = boolean;\nfunction string(value) {\n return typeof value === 'string' || value instanceof String;\n}\nexports.string = string;\nfunction number(value) {\n return typeof value === 'number' || value instanceof Number;\n}\nexports.number = number;\nfunction error(value) {\n return value instanceof Error;\n}\nexports.error = error;\nfunction func(value) {\n return typeof value === 'function';\n}\nexports.func = func;\nfunction array(value) {\n return Array.isArray(value);\n}\nexports.array = array;\nfunction stringArray(value) {\n return array(value) && value.every(elem => string(elem));\n}\nexports.stringArray = stringArray;\n", "\"use strict\";\n/* --------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n * ------------------------------------------------------------------------------------------ */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Emitter = exports.Event = void 0;\nconst ral_1 = require(\"./ral\");\nvar Event;\n(function (Event) {\n const _disposable = { dispose() { } };\n Event.None = function () { return _disposable; };\n})(Event || (exports.Event = Event = {}));\nclass CallbackList {\n add(callback, context = null, bucket) {\n if (!this._callbacks) {\n this._callbacks = [];\n this._contexts = [];\n }\n this._callbacks.push(callback);\n this._contexts.push(context);\n if (Array.isArray(bucket)) {\n bucket.push({ dispose: () => this.remove(callback, context) });\n }\n }\n remove(callback, context = null) {\n if (!this._callbacks) {\n return;\n }\n let foundCallbackWithDifferentContext = false;\n for (let i = 0, len = this._callbacks.length; i < len; i++) {\n if (this._callbacks[i] === callback) {\n if (this._contexts[i] === context) {\n // callback & context match => remove it\n this._callbacks.splice(i, 1);\n this._contexts.splice(i, 1);\n return;\n }\n else {\n foundCallbackWithDifferentContext = true;\n }\n }\n }\n if (foundCallbackWithDifferentContext) {\n throw new Error('When adding a listener with a context, you should remove it with the same context');\n }\n }\n invoke(...args) {\n if (!this._callbacks) {\n return [];\n }\n const ret = [], callbacks = this._callbacks.slice(0), contexts = this._contexts.slice(0);\n for (let i = 0, len = callbacks.length; i < len; i++) {\n try {\n ret.push(callbacks[i].apply(contexts[i], args));\n }\n catch (e) {\n // eslint-disable-next-line no-console\n (0, ral_1.default)().console.error(e);\n }\n }\n return ret;\n }\n isEmpty() {\n return !this._callbacks || this._callbacks.length === 0;\n }\n dispose() {\n this._callbacks = undefined;\n this._contexts = undefined;\n }\n}\nclass Emitter {\n constructor(_options) {\n this._options = _options;\n }\n /**\n * For the public to allow to subscribe\n * to events from this Emitter\n */\n get event() {\n if (!this._event) {\n this._event = (listener, thisArgs, disposables) => {\n if (!this._callbacks) {\n this._callbacks = new CallbackList();\n }\n if (this._options && this._options.onFirstListenerAdd && this._callbacks.isEmpty()) {\n this._options.onFirstListenerAdd(this);\n }\n this._callbacks.add(listener, thisArgs);\n const result = {\n dispose: () => {\n if (!this._callbacks) {\n // disposable is disposed after emitter is disposed.\n return;\n }\n this._callbacks.remove(listener, thisArgs);\n result.dispose = Emitter._noop;\n if (this._options && this._options.onLastListenerRemove && this._callbacks.isEmpty()) {\n this._options.onLastListenerRemove(this);\n }\n }\n };\n if (Array.isArray(disposables)) {\n disposables.push(result);\n }\n return result;\n };\n }\n return this._event;\n }\n /**\n * To be kept private to fire an event to\n * subscribers\n */\n fire(event) {\n if (this._callbacks) {\n this._callbacks.invoke.call(this._callbacks, event);\n }\n }\n dispose() {\n if (this._callbacks) {\n this._callbacks.dispose();\n this._callbacks = undefined;\n }\n }\n}\nexports.Emitter = Emitter;\nEmitter._noop = function () { };\n", "\"use strict\";\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CancellationTokenSource = exports.CancellationToken = void 0;\nconst ral_1 = require(\"./ral\");\nconst Is = require(\"./is\");\nconst events_1 = require(\"./events\");\nvar CancellationToken;\n(function (CancellationToken) {\n CancellationToken.None = Object.freeze({\n isCancellationRequested: false,\n onCancellationRequested: events_1.Event.None\n });\n CancellationToken.Cancelled = Object.freeze({\n isCancellationRequested: true,\n onCancellationRequested: events_1.Event.None\n });\n function is(value) {\n const candidate = value;\n return candidate && (candidate === CancellationToken.None\n || candidate === CancellationToken.Cancelled\n || (Is.boolean(candidate.isCancellationRequested) && !!candidate.onCancellationRequested));\n }\n CancellationToken.is = is;\n})(CancellationToken || (exports.CancellationToken = CancellationToken = {}));\nconst shortcutEvent = Object.freeze(function (callback, context) {\n const handle = (0, ral_1.default)().timer.setTimeout(callback.bind(context), 0);\n return { dispose() { handle.dispose(); } };\n});\nclass MutableToken {\n constructor() {\n this._isCancelled = false;\n }\n cancel() {\n if (!this._isCancelled) {\n this._isCancelled = true;\n if (this._emitter) {\n this._emitter.fire(undefined);\n this.dispose();\n }\n }\n }\n get isCancellationRequested() {\n return this._isCancelled;\n }\n get onCancellationRequested() {\n if (this._isCancelled) {\n return shortcutEvent;\n }\n if (!this._emitter) {\n this._emitter = new events_1.Emitter();\n }\n return this._emitter.event;\n }\n dispose() {\n if (this._emitter) {\n this._emitter.dispose();\n this._emitter = undefined;\n }\n }\n}\nclass CancellationTokenSource {\n get token() {\n if (!this._token) {\n // be lazy and create the token only when\n // actually needed\n this._token = new MutableToken();\n }\n return this._token;\n }\n cancel() {\n if (!this._token) {\n // save an object by returning the default\n // cancelled token when cancellation happens\n // before someone asks for the token\n this._token = CancellationToken.Cancelled;\n }\n else {\n this._token.cancel();\n }\n }\n dispose() {\n if (!this._token) {\n // ensure to initialize with an empty token if we had none\n this._token = CancellationToken.None;\n }\n else if (this._token instanceof MutableToken) {\n // actually dispose\n this._token.dispose();\n }\n }\n}\nexports.CancellationTokenSource = CancellationTokenSource;\n", "/******************************************************************************\n * Copyright 2021 TypeFox GmbH\n * This program and the accompanying materials are made available under the\n * terms of the MIT License, which is available in the project root.\n ******************************************************************************/\n\nexport * from './default-module.js';\nexport * from './dependency-injection.js';\nexport * from './service-registry.js';\nexport * from './services.js';\nexport * from './syntax-tree.js';\nexport * from './documentation/index.js';\nexport * from './languages/index.js';\nexport * from './parser/index.js';\nexport * from './references/index.js';\nexport * from './serializer/index.js';\nexport * from './utils/index.js';\nexport * from './validation/index.js';\nexport * from './workspace/index.js';\n\n// Export the Langium Grammar AST definitions in the `GrammarAST` namespace\nimport * as GrammarAST from './languages/generated/ast.js';\nimport type { Grammar } from './languages/generated/ast.js';\nexport { Grammar, GrammarAST };\n", "/******************************************************************************\n * Copyright 2021 TypeFox GmbH\n * This program and the accompanying materials are made available under the\n * terms of the MIT License, which is available in the project root.\n ******************************************************************************/\n\nimport type { IToken } from '@chevrotain/types';\nimport type { Range } from 'vscode-languageserver-types';\nimport type { CstNode, CompositeCstNode, LeafCstNode } from '../syntax-tree.js';\nimport type { DocumentSegment } from '../workspace/documents.js';\nimport type { Stream, TreeStream } from './stream.js';\nimport { isCompositeCstNode, isLeafCstNode, isRootCstNode } from '../syntax-tree.js';\nimport { TreeStreamImpl } from './stream.js';\n\n/**\n * Create a stream of all CST nodes that are directly and indirectly contained in the given root node,\n * including the root node itself.\n */\nexport function streamCst(node: CstNode): TreeStream {\n return new TreeStreamImpl(node, element => {\n if (isCompositeCstNode(element)) {\n return element.content;\n } else {\n return [];\n }\n }, { includeRoot: true });\n}\n\n/**\n * Create a stream of all leaf nodes that are directly and indirectly contained in the given root node.\n */\nexport function flattenCst(node: CstNode): Stream {\n return streamCst(node).filter(isLeafCstNode);\n}\n\n/**\n * Determines whether the specified cst node is a child of the specified parent node.\n */\nexport function isChildNode(child: CstNode, parent: CstNode): boolean {\n while (child.container) {\n child = child.container;\n if (child === parent) {\n return true;\n }\n }\n return false;\n}\n\nexport function tokenToRange(token: IToken): Range {\n // Chevrotain uses 1-based indices everywhere\n // So we subtract 1 from every value to align with the LSP\n return {\n start: {\n character: token.startColumn! - 1,\n line: token.startLine! - 1\n },\n end: {\n character: token.endColumn!, // endColumn uses the correct index\n line: token.endLine! - 1\n }\n };\n}\n\nexport function toDocumentSegment(node: CstNode): DocumentSegment;\nexport function toDocumentSegment(node?: CstNode): DocumentSegment | undefined;\nexport function toDocumentSegment(node?: CstNode): DocumentSegment | undefined {\n if (!node) {\n return undefined;\n }\n const { offset, end, range } = node;\n return {\n range,\n offset,\n end,\n length: end - offset\n };\n}\n\nexport enum RangeComparison {\n Before = 0,\n After = 1,\n OverlapFront = 2,\n OverlapBack = 3,\n Inside = 4\n}\n\nexport function compareRange(range: Range, to: Range): RangeComparison {\n if (range.end.line < to.start.line || (range.end.line === to.start.line && range.end.character < range.start.character)) {\n return RangeComparison.Before;\n } else if (range.start.line > to.end.line || (range.start.line === to.end.line && range.start.character > to.end.character)) {\n return RangeComparison.After;\n }\n const startInside = range.start.line > to.start.line || (range.start.line === to.start.line && range.start.character >= to.start.character);\n const endInside = range.end.line < to.end.line || (range.end.line === to.end.line && range.end.character <= to.end.character);\n if (startInside && endInside) {\n return RangeComparison.Inside;\n } else if (startInside) {\n return RangeComparison.OverlapBack;\n } else {\n return RangeComparison.OverlapFront;\n }\n}\n\nexport function inRange(range: Range, to: Range): boolean {\n const comparison = compareRange(range, to);\n return comparison > RangeComparison.After;\n}\n\n// The \\p{L} regex matches any unicode letter character, i.e. characters from non-english alphabets\n// Together with \\w it matches any kind of character which can commonly appear in IDs\nexport const DefaultNameRegexp = /^[\\w\\p{L}]$/u;\n\n/**\n * Performs `findLeafNodeAtOffset` with a minor difference: When encountering a character that matches the `nameRegexp` argument,\n * it will instead return the leaf node at the `offset - 1` position.\n *\n * For LSP services, users expect that the declaration of an element is available if the cursor is directly after the element.\n */\nexport function findDeclarationNodeAtOffset(cstNode: CstNode | undefined, offset: number, nameRegexp = DefaultNameRegexp): LeafCstNode | undefined {\n if (cstNode) {\n if (offset > 0) {\n const localOffset = offset - cstNode.offset;\n const textAtOffset = cstNode.text.charAt(localOffset);\n if (!nameRegexp.test(textAtOffset)) {\n offset--;\n }\n }\n return findLeafNodeAtOffset(cstNode, offset);\n }\n return undefined;\n}\n\nexport function findCommentNode(cstNode: CstNode | undefined, commentNames: string[]): CstNode | undefined {\n if (cstNode) {\n const previous = getPreviousNode(cstNode, true);\n if (previous && isCommentNode(previous, commentNames)) {\n return previous;\n }\n if (isRootCstNode(cstNode)) {\n // Go from the first non-hidden node through all nodes in reverse order\n // We do this to find the comment node which directly precedes the root node\n const endIndex = cstNode.content.findIndex(e => !e.hidden);\n for (let i = endIndex - 1; i >= 0; i--) {\n const child = cstNode.content[i];\n if (isCommentNode(child, commentNames)) {\n return child;\n }\n }\n }\n }\n return undefined;\n}\n\nexport function isCommentNode(cstNode: CstNode, commentNames: string[]): boolean {\n return isLeafCstNode(cstNode) && commentNames.includes(cstNode.tokenType.name);\n}\n\n/**\n * Finds the leaf CST node at the specified 0-based string offset.\n * Note that the given offset will be within the range of the returned leaf node.\n *\n * If the offset does not point to a CST node (but just white space), this method will return `undefined`.\n *\n * @param node The CST node to search through.\n * @param offset The specified offset.\n * @returns The CST node at the specified offset.\n */\nexport function findLeafNodeAtOffset(node: CstNode, offset: number): LeafCstNode | undefined {\n if (isLeafCstNode(node)) {\n return node;\n } else if (isCompositeCstNode(node)) {\n const searchResult = binarySearch(node, offset, false);\n if (searchResult) {\n return findLeafNodeAtOffset(searchResult, offset);\n }\n }\n return undefined;\n}\n\n/**\n * Finds the leaf CST node at the specified 0-based string offset.\n * If no CST node exists at the specified position, it will return the leaf node before it.\n *\n * If there is no leaf node before the specified offset, this method will return `undefined`.\n *\n * @param node The CST node to search through.\n * @param offset The specified offset.\n * @returns The CST node closest to the specified offset.\n */\nexport function findLeafNodeBeforeOffset(node: CstNode, offset: number): LeafCstNode | undefined {\n if (isLeafCstNode(node)) {\n return node;\n } else if (isCompositeCstNode(node)) {\n const searchResult = binarySearch(node, offset, true);\n if (searchResult) {\n return findLeafNodeBeforeOffset(searchResult, offset);\n }\n }\n return undefined;\n}\n\nfunction binarySearch(node: CompositeCstNode, offset: number, closest: boolean): CstNode | undefined {\n let left = 0;\n let right = node.content.length - 1;\n let closestNode: CstNode | undefined = undefined;\n\n while (left <= right) {\n const middle = Math.floor((left + right) / 2);\n const middleNode = node.content[middle];\n\n if (middleNode.offset <= offset && middleNode.end > offset) {\n // Found an exact match\n return middleNode;\n }\n\n if (middleNode.end <= offset) {\n // Update the closest node (less than offset) and move to the right half\n closestNode = closest ? middleNode : undefined;\n left = middle + 1;\n } else {\n // Move to the left half\n right = middle - 1;\n }\n }\n\n return closestNode;\n}\n\nexport function getPreviousNode(node: CstNode, hidden = true): CstNode | undefined {\n while (node.container) {\n const parent = node.container;\n let index = parent.content.indexOf(node);\n while (index > 0) {\n index--;\n const previous = parent.content[index];\n if (hidden || !previous.hidden) {\n return previous;\n }\n }\n node = parent;\n }\n return undefined;\n}\n\nexport function getNextNode(node: CstNode, hidden = true): CstNode | undefined {\n while (node.container) {\n const parent = node.container;\n let index = parent.content.indexOf(node);\n const last = parent.content.length - 1;\n while (index < last) {\n index++;\n const next = parent.content[index];\n if (hidden || !next.hidden) {\n return next;\n }\n }\n node = parent;\n }\n return undefined;\n}\n\nexport function getStartlineNode(node: CstNode): CstNode {\n if (node.range.start.character === 0) {\n return node;\n }\n const line = node.range.start.line;\n let last = node;\n let index: number | undefined;\n while (node.container) {\n const parent = node.container;\n const selfIndex = index ?? parent.content.indexOf(node);\n if (selfIndex === 0) {\n node = parent;\n index = undefined;\n } else {\n index = selfIndex - 1;\n node = parent.content[index];\n }\n if (node.range.start.line !== line) {\n break;\n }\n last = node;\n }\n return last;\n}\n\nexport function getInteriorNodes(start: CstNode, end: CstNode): CstNode[] {\n const commonParent = getCommonParent(start, end);\n if (!commonParent) {\n return [];\n }\n return commonParent.parent.content.slice(commonParent.a + 1, commonParent.b);\n}\n\nfunction getCommonParent(a: CstNode, b: CstNode): CommonParent | undefined {\n const aParents = getParentChain(a);\n const bParents = getParentChain(b);\n let current: CommonParent | undefined;\n for (let i = 0; i < aParents.length && i < bParents.length; i++) {\n const aParent = aParents[i];\n const bParent = bParents[i];\n if (aParent.parent === bParent.parent) {\n current = {\n parent: aParent.parent,\n a: aParent.index,\n b: bParent.index\n };\n } else {\n break;\n }\n }\n return current;\n}\n\ninterface CommonParent {\n parent: CompositeCstNode\n a: number\n b: number\n}\n\nfunction getParentChain(node: CstNode): ParentLink[] {\n const chain: ParentLink[] = [];\n while (node.container) {\n const parent = node.container;\n const index = parent.content.indexOf(node);\n chain.push({\n parent,\n index\n });\n node = parent;\n }\n return chain.reverse();\n}\n\ninterface ParentLink {\n parent: CompositeCstNode\n index: number\n}\n", "/******************************************************************************\n * Copyright 2021 TypeFox GmbH\n * This program and the accompanying materials are made available under the\n * terms of the MIT License, which is available in the project root.\n ******************************************************************************/\n\nimport type { TokenType } from 'chevrotain';\nimport type { URI } from './utils/uri-utils.js';\nimport type { AbstractElement } from './languages/generated/ast.js';\nimport type { DocumentSegment, LangiumDocument } from './workspace/documents.js';\n\n/**\n * A node in the Abstract Syntax Tree (AST).\n */\nexport interface AstNode {\n /** Every AST node has a type corresponding to what was specified in the grammar declaration. */\n readonly $type: string;\n /** The container node in the AST; every node except the root node has a container. */\n readonly $container?: AstNode;\n /** The property of the `$container` node that contains this node. This is either a direct reference or an array. */\n readonly $containerProperty?: string;\n /** In case `$containerProperty` is an array, the array index is stored here. */\n readonly $containerIndex?: number;\n /** The Concrete Syntax Tree (CST) node of the text range from which this node was parsed. */\n readonly $cstNode?: CstNode;\n /** The document containing the AST; only the root node has a direct reference to the document. */\n readonly $document?: LangiumDocument;\n}\n\nexport function isAstNode(obj: unknown): obj is AstNode {\n return typeof obj === 'object' && obj !== null && typeof (obj as AstNode).$type === 'string';\n}\n\nexport interface GenericAstNode extends AstNode {\n [key: string]: unknown\n}\n\ntype SpecificNodeProperties = keyof Omit;\n\n/**\n * The property names of a given AST node type.\n */\nexport type Properties = SpecificNodeProperties extends never ? string : SpecificNodeProperties\n\n/**\n * A cross-reference in the AST. Cross-references may or may not be successfully resolved.\n */\nexport interface Reference {\n /**\n * The target AST node of this reference. Accessing this property may trigger cross-reference\n * resolution by the `Linker` in case it has not been done yet. If the reference cannot be resolved,\n * the value is `undefined`.\n */\n readonly ref?: T;\n\n /** If any problem occurred while resolving the reference, it is described by this property. */\n readonly error?: LinkingError;\n /** The CST node from which the reference was parsed */\n readonly $refNode?: CstNode;\n /** The actual text used to look up in the surrounding scope */\n readonly $refText: string;\n /** The node description for the AstNode returned by `ref` */\n readonly $nodeDescription?: AstNodeDescription;\n}\n\nexport function isReference(obj: unknown): obj is Reference {\n return typeof obj === 'object' && obj !== null && typeof (obj as Reference).$refText === 'string';\n}\n\nexport type ResolvedReference = Reference & {\n readonly ref: T;\n}\n\n/**\n * A description of an AST node is used when constructing scopes and looking up cross-reference targets.\n */\nexport interface AstNodeDescription {\n /** The target node; should be present only for local references (linking to the same document). */\n node?: AstNode;\n /**\n * The document segment that represents the range of the name of the AST node.\n */\n nameSegment?: DocumentSegment;\n /**\n * The document segment that represents the full range of the AST node.\n */\n selectionSegment?: DocumentSegment;\n /** `$type` property value of the AST node */\n type: string;\n /** Name of the AST node; this is usually determined by the `NameProvider` service. */\n name: string;\n /** URI to the document containing the AST node */\n documentUri: URI;\n /** Navigation path inside the document */\n path: string;\n}\n\nexport function isAstNodeDescription(obj: unknown): obj is AstNodeDescription {\n return typeof obj === 'object' && obj !== null\n && typeof (obj as AstNodeDescription).name === 'string'\n && typeof (obj as AstNodeDescription).type === 'string'\n && typeof (obj as AstNodeDescription).path === 'string';\n}\n\n/**\n * Information about a cross-reference. This is used when traversing references in an AST or to describe\n * unresolved references.\n */\nexport interface ReferenceInfo {\n reference: Reference\n container: AstNode\n property: string\n index?: number\n}\n\n/**\n * Used to collect information when the `Linker` service fails to resolve a cross-reference.\n */\nexport interface LinkingError extends ReferenceInfo {\n message: string;\n targetDescription?: AstNodeDescription;\n}\n\nexport function isLinkingError(obj: unknown): obj is LinkingError {\n return typeof obj === 'object' && obj !== null\n && isAstNode((obj as LinkingError).container)\n && isReference((obj as LinkingError).reference)\n && typeof (obj as LinkingError).message === 'string';\n}\n\n/**\n * Service used for generic access to the structure of the AST. This service is shared between\n * all involved languages, so it operates on the superset of types of these languages.\n */\nexport interface AstReflection {\n getAllTypes(): string[]\n getAllSubTypes(type: string): string[]\n getReferenceType(refInfo: ReferenceInfo): string\n getTypeMetaData(type: string): TypeMetaData\n isInstance(node: unknown, type: string): boolean\n isSubtype(subtype: string, supertype: string): boolean\n}\n\n/**\n * An abstract implementation of the {@link AstReflection} interface.\n * Serves to cache subtype computation results to improve performance throughout different parts of Langium.\n */\nexport abstract class AbstractAstReflection implements AstReflection {\n\n protected subtypes: Record> = {};\n protected allSubtypes: Record = {};\n\n abstract getAllTypes(): string[];\n abstract getReferenceType(refInfo: ReferenceInfo): string;\n abstract getTypeMetaData(type: string): TypeMetaData;\n protected abstract computeIsSubtype(subtype: string, supertype: string): boolean;\n\n isInstance(node: unknown, type: string): boolean {\n return isAstNode(node) && this.isSubtype(node.$type, type);\n }\n\n isSubtype(subtype: string, supertype: string): boolean {\n if (subtype === supertype) {\n return true;\n }\n let nested = this.subtypes[subtype];\n if (!nested) {\n nested = this.subtypes[subtype] = {};\n }\n const existing = nested[supertype];\n if (existing !== undefined) {\n return existing;\n } else {\n const result = this.computeIsSubtype(subtype, supertype);\n nested[supertype] = result;\n return result;\n }\n }\n\n getAllSubTypes(type: string): string[] {\n const existing = this.allSubtypes[type];\n if (existing) {\n return existing;\n } else {\n const allTypes = this.getAllTypes();\n const types: string[] = [];\n for (const possibleSubType of allTypes) {\n if (this.isSubtype(possibleSubType, type)) {\n types.push(possibleSubType);\n }\n }\n this.allSubtypes[type] = types;\n return types;\n }\n }\n}\n\n/**\n * Represents runtime meta data about a meta model type.\n */\nexport interface TypeMetaData {\n /** The name of this meta model type. Corresponds to the `AstNode.$type` value. */\n name: string\n /** A list of properties. They can contain default values for their respective property in the AST. */\n properties: TypeProperty[]\n}\n\n/**\n * Describes the meta data of a property of an AST node.\n *\n * The optional `defaultValue` indicates that the property is mandatory in the AST node.\n * For example, if an AST node contains an array, but no elements of this array have been parsed, we still expect an empty array instead of `undefined`.\n */\nexport interface TypeProperty {\n name: string\n defaultValue?: PropertyType\n}\n\n/**\n * Represents a default value for an AST property.\n */\nexport type PropertyType = number | string | boolean | PropertyType[];\n\n/**\n * A node in the Concrete Syntax Tree (CST).\n */\nexport interface CstNode extends DocumentSegment {\n /** The container node in the CST */\n readonly container?: CompositeCstNode;\n /** @deprecated use `container` instead. */\n readonly parent?: CompositeCstNode;\n /** The actual text */\n readonly text: string;\n /** The root CST node */\n readonly root: RootCstNode;\n /** The grammar element from which this node was parsed */\n readonly grammarSource: AbstractElement;\n /** @deprecated use `grammarSource` instead. */\n readonly feature: AbstractElement;\n /** The AST node created from this CST node */\n readonly astNode: AstNode;\n /** @deprecated use `astNode` instead. */\n readonly element: AstNode;\n /** Whether the token is hidden, i.e. not explicitly part of the containing grammar rule */\n readonly hidden: boolean;\n}\n\n/**\n * A composite CST node contains other nodes, but no directly associated token.\n */\nexport interface CompositeCstNode extends CstNode {\n readonly content: CstNode[];\n /** @deprecated use `content` instead. */\n readonly children: CstNode[];\n}\n\nexport function isCompositeCstNode(node: unknown): node is CompositeCstNode {\n return typeof node === 'object' && node !== null && Array.isArray((node as CompositeCstNode).content);\n}\n\n/**\n * A leaf CST node corresponds to a token in the input token stream.\n */\nexport interface LeafCstNode extends CstNode {\n readonly tokenType: TokenType;\n}\n\nexport function isLeafCstNode(node: unknown): node is LeafCstNode {\n return typeof node === 'object' && node !== null && typeof (node as LeafCstNode).tokenType === 'object';\n}\n\nexport interface RootCstNode extends CompositeCstNode {\n readonly fullText: string\n}\n\nexport function isRootCstNode(node: unknown): node is RootCstNode {\n return isCompositeCstNode(node) && typeof (node as RootCstNode).fullText === 'string';\n}\n\n/**\n * Returns a type to have only properties names (!) of a type T whose property value is of a certain type K.\n */\ntype ExtractKeysOfValueType = { [I in keyof T]: T[I] extends K ? I : never }[keyof T];\n\n/**\n * Returns the property names (!) of an AstNode that are cross-references.\n * Meant to be used during cross-reference resolution in combination with `assertUnreachable(context.property)`.\n */\nexport type CrossReferencesOfAstNodeType = (\n ExtractKeysOfValueType\n | ExtractKeysOfValueType|undefined>\n// eslint-disable-next-line @typescript-eslint/ban-types\n) & {};\n\n/**\n * Represents the enumeration-like type, that lists all AstNode types of your grammar.\n */\nexport type AstTypeList = Record;\n\n/**\n * Returns all types that contain cross-references, A is meant to be the interface `XXXAstType` fromm your generated `ast.ts` file.\n * Meant to be used during cross-reference resolution in combination with `assertUnreachable(context.container)`.\n */\nexport type AstNodeTypesWithCrossReferences
    > = {\n [T in keyof A]: CrossReferencesOfAstNodeType extends never ? never : A[T]\n}[keyof A];\n\nexport type Mutable = {\n -readonly [P in keyof T]: T[P]\n};\n", "/******************************************************************************\n * Copyright 2021 TypeFox GmbH\n * This program and the accompanying materials are made available under the\n * terms of the MIT License, which is available in the project root.\n ******************************************************************************/\n\n/**\n * A stream is a read-only sequence of values. While the contents of an array can be accessed\n * both sequentially and randomly (via index), a stream allows only sequential access.\n *\n * The advantage of this is that a stream can be evaluated lazily, so it does not require\n * to store intermediate values. This can boost performance when a large sequence is\n * processed via filtering, mapping etc. and accessed at most once. However, lazy\n * evaluation means that all processing is repeated when you access the sequence multiple\n * times; in such a case, it may be better to store the resulting sequence into an array.\n */\nexport interface Stream extends Iterable {\n\n /**\n * Returns an iterator for this stream. This is the same as calling the `Symbol.iterator` function property.\n */\n iterator(): IterableIterator;\n\n /**\n * Determines whether this stream contains no elements.\n */\n isEmpty(): boolean;\n\n /**\n * Determines the number of elements in this stream.\n */\n count(): number;\n\n /**\n * Collects all elements of this stream into an array.\n */\n toArray(): T[];\n\n /**\n * Collects all elements of this stream into a Set.\n */\n toSet(): Set;\n\n /**\n * Collects all elements of this stream into a Map, applying the provided functions to determine keys and values.\n *\n * @param keyFn The function to derive map keys. If omitted, the stream elements are used as keys.\n * @param valueFn The function to derive map values. If omitted, the stream elements are used as values.\n */\n toMap(keyFn?: (e: T) => K, valueFn?: (e: T) => V): Map;\n\n /**\n * Returns a string representation of a stream.\n */\n toString(): string;\n\n /**\n * Combines two streams by returning a new stream that yields all elements of this stream and the other stream.\n *\n * @param other Stream to be concatenated with this one.\n */\n concat(other: Iterable): Stream;\n\n /**\n * Adds all elements of the stream into a string, separated by the specified separator string.\n *\n * @param separator A string used to separate one element of the stream from the next in the resulting string.\n * If omitted, the steam elements are separated with a comma.\n */\n join(separator?: string): string\n\n /**\n * Returns the index of the first occurrence of a value in the stream, or -1 if it is not present.\n *\n * @param searchElement The value to locate in the array.\n * @param fromIndex The stream index at which to begin the search. If fromIndex is omitted, the search\n * starts at index 0.\n */\n indexOf(searchElement: T, fromIndex?: number): number;\n\n /**\n * Determines whether all members of the stream satisfy the specified test.\n *\n * @param predicate This method calls the predicate function for each element in the stream until the\n * predicate returns a value which is coercible to the Boolean value `false`, or until the end\n * of the stream.\n */\n every(predicate: (value: T) => value is S): this is Stream;\n every(predicate: (value: T) => unknown): boolean;\n\n /**\n * Determines whether any member of the stream satisfies the specified test.\n *\n * @param predicate This method calls the predicate function for each element in the stream until the\n * predicate returns a value which is coercible to the Boolean value `true`, or until the end\n * of the stream.\n */\n some(predicate: (value: T) => unknown): boolean;\n\n /**\n * Performs the specified action for each element in the stream.\n *\n * @param callbackfn Function called once for each element in the stream.\n */\n forEach(callbackfn: (value: T, index: number) => void): void;\n\n /**\n * Returns a stream that yields the results of calling the specified callback function on each element\n * of the stream. The function is called when the resulting stream elements are actually accessed, so\n * accessing the resulting stream multiple times means the function is also called multiple times for\n * each element of the stream.\n *\n * @param callbackfn Lazily evaluated function mapping stream elements.\n */\n map(callbackfn: (value: T) => U): Stream;\n\n /**\n * Returns the elements of the stream that meet the condition specified in a callback function.\n * The function is called when the resulting stream elements are actually accessed, so accessing the\n * resulting stream multiple times means the function is also called multiple times for each element\n * of the stream.\n *\n * @param predicate Lazily evaluated function checking a condition on stream elements.\n */\n filter(predicate: (value: T) => value is S): Stream;\n filter(predicate: (value: T) => unknown): Stream;\n\n /**\n * Returns the elements of the stream that are _non-nullable_, which means they are neither `undefined`\n * nor `null`.\n */\n nonNullable(): Stream>;\n\n /**\n * Calls the specified callback function for all elements in the stream. The return value of the\n * callback function is the accumulated result, and is provided as an argument in the next call to\n * the callback function.\n *\n * @param callbackfn This method calls the function once for each element in the stream, providing\n * the previous and current values of the reduction.\n * @param initialValue If specified, `initialValue` is used as the initial value to start the\n * accumulation. The first call to the function provides this value as an argument instead\n * of a stream value.\n */\n reduce(callbackfn: (previousValue: T, currentValue: T) => T): T | undefined;\n reduce(callbackfn: (previousValue: U, currentValue: T) => U, initialValue: U): U;\n\n /**\n * Calls the specified callback function for all elements in the stream, in descending order.\n * The return value of the callback function is the accumulated result, and is provided as an\n * argument in the next call to the callback function.\n *\n * @param callbackfn This method calls the function once for each element in the stream, providing\n * the previous and current values of the reduction.\n * @param initialValue If specified, `initialValue` is used as the initial value to start the\n * accumulation. The first call to the function provides this value as an argument instead\n * of an array value.\n */\n reduceRight(callbackfn: (previousValue: T, currentValue: T) => T): T | undefined;\n reduceRight(callbackfn: (previousValue: U, currentValue: T) => U, initialValue: U): U;\n\n /**\n * Returns the value of the first element in the stream that meets the condition, or `undefined`\n * if there is no such element.\n *\n * @param predicate This method calls `predicate` once for each element of the stream, in ascending\n * order, until it finds one where `predicate` returns a value which is coercible to the\n * Boolean value `true`.\n */\n find(predicate: (value: T) => value is S): S | undefined;\n find(predicate: (value: T) => unknown): T | undefined;\n\n /**\n * Returns the index of the first element in the stream that meets the condition, or `-1`\n * if there is no such element.\n *\n * @param predicate This method calls `predicate` once for each element of the stream, in ascending\n * order, until it finds one where `predicate` returns a value which is coercible to the\n * Boolean value `true`.\n */\n findIndex(predicate: (value: T) => unknown): number;\n\n /**\n * Determines whether the stream includes a certain element, returning `true` or `false` as appropriate.\n *\n * @param searchElement The element to search for.\n */\n includes(searchElement: T): boolean;\n\n /**\n * Calls a defined callback function on each element of the stream and then flattens the result into\n * a new stream. This is identical to a `map` followed by `flat` with depth 1.\n *\n * @param callbackfn Lazily evaluated function mapping stream elements.\n */\n flatMap(callbackfn: (value: T) => U | Iterable): Stream;\n\n /**\n * Returns a new stream with all sub-stream or sub-array elements concatenated into it recursively up\n * to the specified depth.\n *\n * @param depth The maximum recursion depth. Defaults to 1.\n */\n flat(depth?: D): FlatStream;\n\n /**\n * Returns the first element in the stream, or `undefined` if the stream is empty.\n */\n head(): T | undefined;\n\n /**\n * Returns a stream that skips the first `skipCount` elements from this stream.\n *\n * @param skipCount The number of elements to skip. If this is larger than the number of elements in\n * the stream, an empty stream is returned. Defaults to 1.\n */\n tail(skipCount?: number): Stream;\n\n /**\n * Returns a stream consisting of the elements of this stream, truncated to be no longer than `maxSize`\n * in length.\n *\n * @param maxSize The number of elements the stream should be limited to\n */\n limit(maxSize: number): Stream;\n\n /**\n * Returns a stream containing only the distinct elements from this stream.\n * Equality is determined with the same rules as a standard `Set`.\n *\n * @param by A function returning the key used to check equality with a previous stream element.\n * If omitted, the stream elements themselves are used for comparison.\n */\n distinct(by?: (element: T) => Key): Stream;\n\n /**\n * Returns a stream that contains all elements that don't exist in the {@link other} iterable.\n * Equality is determined with the same rules as a standard `Set`.\n * @param other The elements that should be exluded from this stream.\n * @param key A function returning the key used to check quality.\n * If omitted, the stream elements themselves are used for comparison.\n */\n exclude(other: Iterable, key?: (element: T) => Key): Stream;\n\n}\n\nexport type FlatStream = {\n 'done': Stream,\n 'recur': T extends Iterable\n ? FlatStream>\n : Stream\n}[Depth extends 0 ? 'done' : 'recur'];\n\nexport type MinusOne = [-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][N];\n\n/**\n * The default implementation of `Stream` works with two input functions:\n * - The first function creates the initial state of an iteration.\n * - The second function gets the current state as argument and returns an `IteratorResult`.\n */\nexport class StreamImpl implements Stream {\n protected readonly startFn: () => S;\n protected readonly nextFn: (state: S) => IteratorResult;\n\n constructor(startFn: () => S, nextFn: (state: S) => IteratorResult) {\n this.startFn = startFn;\n this.nextFn = nextFn;\n }\n\n iterator(): IterableIterator {\n const iterator = {\n state: this.startFn(),\n next: () => this.nextFn(iterator.state),\n [Symbol.iterator]: () => iterator\n };\n return iterator;\n }\n\n [Symbol.iterator](): Iterator {\n return this.iterator();\n }\n\n isEmpty(): boolean {\n const iterator = this.iterator();\n return Boolean(iterator.next().done);\n }\n\n count(): number {\n const iterator = this.iterator();\n let count = 0;\n let next = iterator.next();\n while (!next.done) {\n count++;\n next = iterator.next();\n }\n return count;\n }\n\n toArray(): T[] {\n const result: T[] = [];\n const iterator = this.iterator();\n let next: IteratorResult;\n do {\n next = iterator.next();\n if (next.value !== undefined) {\n result.push(next.value);\n }\n } while (!next.done);\n return result;\n }\n\n toSet(): Set {\n return new Set(this);\n }\n\n toMap(keyFn?: (e: T) => K, valueFn?: (e: T) => V): Map {\n const entryStream = this.map(element => <[K, V]>[\n keyFn ? keyFn(element) : element,\n valueFn ? valueFn(element) : element\n ]);\n return new Map(entryStream);\n }\n\n toString(): string {\n return this.join();\n }\n\n concat(other: Iterable): Stream {\n const iterator = other[Symbol.iterator]();\n return new StreamImpl<{ first: S, firstDone: boolean }, T | T2>(\n () => ({ first: this.startFn(), firstDone: false }),\n state => {\n let result: IteratorResult;\n if (!state.firstDone) {\n do {\n result = this.nextFn(state.first);\n if (!result.done) {\n return result;\n }\n } while (!result.done);\n state.firstDone = true;\n }\n do {\n result = iterator.next();\n if (!result.done) {\n return result;\n }\n } while (!result.done);\n return DONE_RESULT;\n }\n );\n }\n\n join(separator = ','): string {\n const iterator = this.iterator();\n let value = '';\n let result: IteratorResult;\n let addSeparator = false;\n do {\n result = iterator.next();\n if (!result.done) {\n if (addSeparator) {\n value += separator;\n }\n value += toString(result.value);\n }\n addSeparator = true;\n } while (!result.done);\n return value;\n }\n\n indexOf(searchElement: T, fromIndex = 0): number {\n const iterator = this.iterator();\n let index = 0;\n let next = iterator.next();\n while (!next.done) {\n if (index >= fromIndex && next.value === searchElement) {\n return index;\n }\n next = iterator.next();\n index++;\n }\n return -1;\n }\n\n // In the following definition the '& this' part in the return type is important\n // _and_ the order within 'Stream & this' is crucial!\n // Otherwise Typescript would infer the type of 'this' as 'StreamImpl & Stream'\n // (or ' & Stream') and usages like\n // ```\n // const stream = new StreamImpl(...);\n // ... stream.every() & stream....\n // ```\n // cannot benefit from '', as Typescript would priorize the signatures\n // of 'StreamImpl' (i.e. those of 'Stream') over those of 'Stream'.\n // With the order of 'Stream & this' the signatures of 'Stream' get precedence.\n every(predicate: (value: T) => value is U): this is Stream & this;\n every(predicate: (value: T) => unknown): boolean;\n every(predicate: (value: T) => unknown): boolean {\n const iterator = this.iterator();\n let next = iterator.next();\n while (!next.done) {\n if (!predicate(next.value)) {\n return false;\n }\n next = iterator.next();\n }\n return true;\n }\n\n some(predicate: (value: T) => unknown): boolean {\n const iterator = this.iterator();\n let next = iterator.next();\n while (!next.done) {\n if (predicate(next.value)) {\n return true;\n }\n next = iterator.next();\n }\n return false;\n }\n\n forEach(callbackfn: (value: T, index: number) => void): void {\n const iterator = this.iterator();\n let index = 0;\n let next = iterator.next();\n while (!next.done) {\n callbackfn(next.value, index);\n next = iterator.next();\n index++;\n }\n }\n\n map(callbackfn: (value: T) => U): Stream {\n return new StreamImpl(\n this.startFn,\n (state) => {\n const { done, value } = this.nextFn(state);\n if (done) {\n return DONE_RESULT;\n } else {\n return { done: false, value: callbackfn(value) };\n }\n }\n );\n }\n\n // for remarks on the return type definition refer to 'every(...)'\n filter(predicate: (value: T) => value is U): Stream & this;\n filter(predicate: (value: T) => unknown): Stream & this;\n filter(predicate: (value: T) => unknown): Stream {\n return new StreamImpl(\n this.startFn,\n state => {\n let result: IteratorResult;\n do {\n result = this.nextFn(state);\n if (!result.done && predicate(result.value)) {\n return result;\n }\n } while (!result.done);\n return DONE_RESULT;\n }\n );\n }\n\n nonNullable(): Stream> {\n return this.filter(e => e !== undefined && e !== null) as Stream>;\n }\n\n reduce(callbackfn: (previousValue: T, currentValue: T) => T): T | undefined;\n reduce(callbackfn: (previousValue: U, currentValue: T) => U, initialValue: U): U;\n reduce(callbackfn: (previousValue: U | T, currentValue: T) => U, initialValue?: U): U | T | undefined {\n const iterator = this.iterator();\n let previousValue: U | T | undefined = initialValue;\n let next = iterator.next();\n while (!next.done) {\n if (previousValue === undefined) {\n previousValue = next.value;\n } else {\n previousValue = callbackfn(previousValue, next.value);\n }\n next = iterator.next();\n }\n return previousValue;\n }\n\n reduceRight(callbackfn: (previousValue: T, currentValue: T) => T): T | undefined;\n reduceRight(callbackfn: (previousValue: U, currentValue: T) => U, initialValue: U): U;\n reduceRight(callbackfn: (previousValue: U | T, currentValue: T) => U, initialValue?: U): U | T | undefined {\n return this.recursiveReduce(this.iterator(), callbackfn, initialValue);\n }\n\n protected recursiveReduce(iterator: Iterator, callbackfn: (previousValue: U | T, currentValue: T) => U, initialValue?: U): U | T | undefined {\n const next = iterator.next();\n if (next.done) {\n return initialValue;\n }\n const previousValue = this.recursiveReduce(iterator, callbackfn, initialValue);\n if (previousValue === undefined) {\n return next.value;\n }\n return callbackfn(previousValue, next.value);\n }\n\n find(predicate: (value: T) => value is S): S | undefined;\n find(predicate: (value: T) => unknown): T | undefined;\n find(predicate: (value: T) => unknown): T | undefined {\n const iterator = this.iterator();\n let next = iterator.next();\n while (!next.done) {\n if (predicate(next.value)) {\n return next.value;\n }\n next = iterator.next();\n }\n return undefined;\n }\n\n findIndex(predicate: (value: T) => unknown): number {\n const iterator = this.iterator();\n let index = 0;\n let next = iterator.next();\n while (!next.done) {\n if (predicate(next.value)) {\n return index;\n }\n next = iterator.next();\n index++;\n }\n return -1;\n }\n\n includes(searchElement: T): boolean {\n const iterator = this.iterator();\n let next = iterator.next();\n while (!next.done) {\n if (next.value === searchElement) {\n return true;\n }\n next = iterator.next();\n }\n return false;\n }\n\n flatMap(callbackfn: (value: T) => U | Iterable): Stream {\n type FlatMapState = { this: S, iterator?: Iterator }\n return new StreamImpl(\n () => ({ this: this.startFn() }),\n (state) => {\n do {\n if (state.iterator) {\n const next = state.iterator.next();\n if (next.done) {\n state.iterator = undefined;\n } else {\n return next;\n }\n }\n const { done, value } = this.nextFn(state.this);\n if (!done) {\n const mapped = callbackfn(value);\n if (isIterable(mapped)) {\n state.iterator = mapped[Symbol.iterator]();\n } else {\n return { done: false, value: mapped };\n }\n }\n } while (state.iterator);\n return DONE_RESULT;\n }\n );\n }\n\n flat(depth?: D): FlatStream {\n if (depth === undefined) {\n depth = 1 as D;\n }\n if (depth <= 0) {\n return this as unknown as FlatStream;\n }\n const stream = depth > 1 ? this.flat(depth - 1) as unknown as StreamImpl : this;\n type FlatMapState = { this: S, iterator?: Iterator }\n return new StreamImpl(\n () => ({ this: stream.startFn() }),\n (state) => {\n do {\n if (state.iterator) {\n const next = state.iterator.next();\n if (next.done) {\n state.iterator = undefined;\n } else {\n return next;\n }\n }\n const { done, value } = stream.nextFn(state.this);\n if (!done) {\n if (isIterable(value)) {\n state.iterator = value[Symbol.iterator]() as Iterator;\n } else {\n return { done: false, value: value };\n }\n }\n } while (state.iterator);\n return DONE_RESULT;\n }\n ) as unknown as FlatStream;\n }\n\n head(): T | undefined {\n const iterator = this.iterator();\n const result = iterator.next();\n if (result.done) {\n return undefined;\n }\n return result.value;\n }\n\n tail(skipCount = 1): Stream {\n return new StreamImpl(\n () => {\n const state = this.startFn();\n for (let i = 0; i < skipCount; i++) {\n const next = this.nextFn(state);\n if (next.done) {\n return state;\n }\n }\n return state;\n },\n this.nextFn\n );\n }\n\n limit(maxSize: number): Stream {\n return new StreamImpl<{ size: number, state: S }, T>(\n () => ({ size: 0, state: this.startFn() }),\n state => {\n state.size++;\n if (state.size > maxSize) {\n return DONE_RESULT;\n }\n return this.nextFn(state.state);\n }\n );\n }\n\n distinct(by?: (element: T) => Key): Stream {\n const set = new Set();\n return this.filter(e => {\n const value = by ? by(e) : e;\n if (set.has(value)) {\n return false;\n } else {\n set.add(value);\n return true;\n }\n });\n }\n\n exclude(other: Iterable, key?: (element: T) => Key): Stream {\n const otherKeySet = new Set();\n for (const item of other) {\n const value = key ? key(item) : item;\n otherKeySet.add(value);\n }\n return this.filter(e => {\n const ownKey = key ? key(e) : e;\n return !otherKeySet.has(ownKey);\n });\n }\n}\n\nfunction toString(item: unknown): string {\n if (typeof item === 'string') {\n return item as string;\n }\n if (typeof item === 'undefined') {\n return 'undefined';\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (typeof (item as any).toString === 'function') {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return (item as any).toString();\n }\n return Object.prototype.toString.call(item);\n}\n\nfunction isIterable(obj: unknown): obj is Iterable {\n return !!obj && typeof (obj as Iterable)[Symbol.iterator] === 'function';\n}\n\n/**\n * An empty stream of any type.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const EMPTY_STREAM: Stream = new StreamImpl(() => undefined, () => DONE_RESULT);\n\n/**\n * Use this `IteratorResult` when implementing a `StreamImpl` to indicate that there are no more elements in the stream.\n */\nexport const DONE_RESULT: IteratorReturnResult = Object.freeze({ done: true, value: undefined });\n\n/**\n * Create a stream from one or more iterables or array-likes.\n */\nexport function stream(...collections: Array | ArrayLike>): Stream {\n if (collections.length === 1) {\n const collection = collections[0];\n if (collection instanceof StreamImpl) {\n return collection as Stream;\n }\n if (isIterable(collection)) {\n return new StreamImpl, T>(\n () => collection[Symbol.iterator](),\n (iterator) => iterator.next()\n );\n }\n if (typeof collection.length === 'number') {\n return new StreamImpl<{ index: number }, T>(\n () => ({ index: 0 }),\n (state) => {\n if (state.index < collection.length) {\n return { done: false, value: collection[state.index++] };\n } else {\n return DONE_RESULT;\n }\n }\n );\n }\n }\n if (collections.length > 1) {\n type State = { collIndex: number, iterator?: Iterator, array?: ArrayLike, arrIndex: number };\n return new StreamImpl(\n () => ({ collIndex: 0, arrIndex: 0 }),\n (state) => {\n do {\n if (state.iterator) {\n const next = state.iterator.next();\n if (!next.done) {\n return next;\n }\n state.iterator = undefined;\n }\n if (state.array) {\n if (state.arrIndex < state.array.length) {\n return { done: false, value: state.array[state.arrIndex++] };\n }\n state.array = undefined;\n state.arrIndex = 0;\n }\n if (state.collIndex < collections.length) {\n const collection = collections[state.collIndex++];\n if (isIterable(collection)) {\n state.iterator = collection[Symbol.iterator]();\n } else if (collection && typeof collection.length === 'number') {\n state.array = collection;\n }\n }\n } while (state.iterator || state.array || state.collIndex < collections.length);\n return DONE_RESULT;\n }\n );\n }\n return EMPTY_STREAM;\n}\n\n/**\n * A tree iterator adds the ability to prune the current iteration.\n */\nexport interface TreeIterator extends IterableIterator {\n /**\n * Skip the whole subtree below the last returned element. The iteration continues as if that\n * element had no children.\n */\n prune(): void\n}\n\n/**\n * A tree stream is used to stream the elements of a tree, for example an AST or CST.\n */\nexport interface TreeStream extends Stream {\n iterator(): TreeIterator\n}\n\n/**\n * The default implementation of `TreeStream` takes a root element and a function that computes the\n * children of its argument. Whether the root node included in the stream is controlled with the\n * `includeRoot` option, which defaults to `false`.\n */\nexport class TreeStreamImpl\n extends StreamImpl<{ iterators: Array>, pruned: boolean }, T>\n implements TreeStream {\n\n constructor(root: T, children: (node: T) => Iterable, options?: { includeRoot?: boolean }) {\n super(\n () => ({\n iterators: options?.includeRoot ? [[root][Symbol.iterator]()] : [children(root)[Symbol.iterator]()],\n pruned: false\n }),\n state => {\n if (state.pruned) {\n state.iterators.pop();\n state.pruned = false;\n }\n while (state.iterators.length > 0) {\n const iterator = state.iterators[state.iterators.length - 1];\n const next = iterator.next();\n if (next.done) {\n state.iterators.pop();\n } else {\n state.iterators.push(children(next.value)[Symbol.iterator]());\n return next;\n }\n }\n return DONE_RESULT;\n }\n );\n }\n\n override iterator(): TreeIterator {\n const iterator = {\n state: this.startFn(),\n next: () => this.nextFn(iterator.state),\n prune: () => {\n iterator.state.pruned = true;\n },\n [Symbol.iterator]: () => iterator\n };\n return iterator;\n }\n}\n\n/**\n * A set of utility functions that reduce a stream to a single value.\n */\nexport namespace Reduction {\n\n /**\n * Compute the sum of a number stream.\n */\n export function sum(stream: Stream): number {\n return stream.reduce((a, b) => a + b, 0);\n }\n\n /**\n * Compute the product of a number stream.\n */\n export function product(stream: Stream): number {\n return stream.reduce((a, b) => a * b, 0);\n }\n\n /**\n * Compute the minimum of a number stream. Returns `undefined` if the stream is empty.\n */\n export function min(stream: Stream): number | undefined {\n return stream.reduce((a, b) => Math.min(a, b));\n }\n\n /**\n * Compute the maximum of a number stream. Returns `undefined` if the stream is empty.\n */\n export function max(stream: Stream): number | undefined {\n return stream.reduce((a, b) => Math.max(a, b));\n }\n\n}\n", "/******************************************************************************\n * Copyright 2021-2022 TypeFox GmbH\n * This program and the accompanying materials are made available under the\n * terms of the MIT License, which is available in the project root.\n ******************************************************************************/\n\nimport { assertUnreachable } from '../utils/errors.js';\nimport * as ast from '../languages/generated/ast.js';\nimport type { AstNode, CstNode } from '../syntax-tree.js';\nimport { isCompositeCstNode } from '../syntax-tree.js';\nimport { getContainerOfType, streamAllContents } from './ast-utils.js';\nimport { streamCst } from './cst-utils.js';\nimport { escapeRegExp } from './regexp-utils.js';\n\n/**\n * Returns the entry rule of the given grammar, if any. If the grammar file does not contain an entry rule,\n * the result is `undefined`.\n */\nexport function getEntryRule(grammar: ast.Grammar): ast.ParserRule | undefined {\n return grammar.rules.find(e => ast.isParserRule(e) && e.entry) as ast.ParserRule;\n}\n\n/**\n * Returns all hidden terminal rules of the given grammar, if any.\n */\nexport function getHiddenRules(grammar: ast.Grammar) {\n return grammar.rules.filter((e): e is ast.TerminalRule => ast.isTerminalRule(e) && e.hidden);\n}\n\n/**\n * Returns all rules that can be reached from the topmost rules of the specified grammar (entry and hidden terminal rules).\n *\n * @param grammar The grammar that contains all rules\n * @param allTerminals Whether or not to include terminals that are referenced only by other terminals\n * @returns A list of referenced parser and terminal rules. If the grammar contains no entry rule,\n * this function returns all rules of the specified grammar.\n */\nexport function getAllReachableRules(grammar: ast.Grammar, allTerminals: boolean): Set {\n const ruleNames = new Set();\n const entryRule = getEntryRule(grammar);\n if (!entryRule) {\n return new Set(grammar.rules);\n }\n\n const topMostRules = [entryRule as ast.AbstractRule].concat(getHiddenRules(grammar));\n for (const rule of topMostRules) {\n ruleDfs(rule, ruleNames, allTerminals);\n }\n\n const rules = new Set();\n for (const rule of grammar.rules) {\n if (ruleNames.has(rule.name) || (ast.isTerminalRule(rule) && rule.hidden)) {\n rules.add(rule);\n }\n }\n return rules;\n}\n\nfunction ruleDfs(rule: ast.AbstractRule, visitedSet: Set, allTerminals: boolean): void {\n visitedSet.add(rule.name);\n streamAllContents(rule).forEach(node => {\n if (ast.isRuleCall(node) || (allTerminals && ast.isTerminalRuleCall(node))) {\n const refRule = node.rule.ref;\n if (refRule && !visitedSet.has(refRule.name)) {\n ruleDfs(refRule, visitedSet, allTerminals);\n }\n }\n });\n}\n\n/**\n * Determines the grammar expression used to parse a cross-reference (usually a reference to a terminal rule).\n * A cross-reference can declare this expression explicitly in the form `[Type : Terminal]`, but if `Terminal`\n * is omitted, this function attempts to infer it from the name of the referenced `Type` (using `findNameAssignment`).\n *\n * Returns the grammar expression used to parse the given cross-reference, or `undefined` if it is not declared\n * and cannot be inferred.\n */\nexport function getCrossReferenceTerminal(crossRef: ast.CrossReference): ast.AbstractElement | undefined {\n if (crossRef.terminal) {\n return crossRef.terminal;\n } else if (crossRef.type.ref) {\n const nameAssigment = findNameAssignment(crossRef.type.ref);\n return nameAssigment?.terminal;\n }\n return undefined;\n}\n\n/**\n * Determines whether the given terminal rule represents a comment. This is true if the rule is marked\n * as `hidden` and it does not match white space. This means every hidden token (i.e. excluded from the AST)\n * that contains visible characters is considered a comment.\n */\nexport function isCommentTerminal(terminalRule: ast.TerminalRule): boolean {\n return terminalRule.hidden && !terminalRegex(terminalRule).test(' ');\n}\n\n/**\n * Find all CST nodes within the given node that contribute to the specified property.\n *\n * @param node A CST node in which to look for property assignments. If this is undefined, the result is an empty array.\n * @param property A property name of the constructed AST node. If this is undefined, the result is an empty array.\n */\nexport function findNodesForProperty(node: CstNode | undefined, property: string | undefined): CstNode[] {\n if (!node || !property) {\n return [];\n }\n return findNodesForPropertyInternal(node, property, node.astNode, true);\n}\n\n/**\n * Find a single CST node within the given node that contributes to the specified property.\n *\n * @param node A CST node in which to look for property assignments. If this is undefined, the result is `undefined`.\n * @param property A property name of the constructed AST node. If this is undefined, the result is `undefined`.\n * @param index If no index is specified or the index is less than zero, the first found node is returned. If the\n * specified index exceeds the number of assignments to the property, the last found node is returned. Otherwise,\n * the node with the specified index is returned.\n */\nexport function findNodeForProperty(node: CstNode | undefined, property: string | undefined, index?: number): CstNode | undefined {\n if (!node || !property) {\n return undefined;\n }\n const nodes = findNodesForPropertyInternal(node, property, node.astNode, true);\n if (nodes.length === 0) {\n return undefined;\n }\n if (index !== undefined) {\n index = Math.max(0, Math.min(index, nodes.length - 1));\n } else {\n index = 0;\n }\n return nodes[index];\n}\n\nfunction findNodesForPropertyInternal(node: CstNode, property: string, element: AstNode | undefined, first: boolean): CstNode[] {\n if (!first) {\n const nodeFeature = getContainerOfType(node.grammarSource, ast.isAssignment);\n if (nodeFeature && nodeFeature.feature === property) {\n return [node];\n }\n }\n if (isCompositeCstNode(node) && node.astNode === element) {\n return node.content.flatMap(e => findNodesForPropertyInternal(e, property, element, false));\n }\n return [];\n}\n\n/**\n * Find all CST nodes within the given node that correspond to the specified keyword.\n *\n * @param node A CST node in which to look for keywords. If this is undefined, the result is an empty array.\n * @param keyword A keyword as specified in the grammar.\n */\nexport function findNodesForKeyword(node: CstNode | undefined, keyword: string): CstNode[] {\n if (!node) {\n return [];\n }\n return findNodesForKeywordInternal(node, keyword, node?.astNode);\n}\n\n/**\n * Find a single CST node within the given node that corresponds to the specified keyword.\n *\n * @param node A CST node in which to look for keywords. If this is undefined, the result is `undefined`.\n * @param keyword A keyword as specified in the grammar.\n * @param index If no index is specified or the index is less than zero, the first found node is returned. If the\n * specified index exceeds the number of keyword occurrences, the last found node is returned. Otherwise,\n * the node with the specified index is returned.\n */\nexport function findNodeForKeyword(node: CstNode | undefined, keyword: string, index?: number): CstNode | undefined {\n if (!node) {\n return undefined;\n }\n const nodes = findNodesForKeywordInternal(node, keyword, node?.astNode);\n if (nodes.length === 0) {\n return undefined;\n }\n if (index !== undefined) {\n index = Math.max(0, Math.min(index, nodes.length - 1));\n } else {\n index = 0;\n }\n return nodes[index];\n}\n\nexport function findNodesForKeywordInternal(node: CstNode, keyword: string, element: AstNode | undefined): CstNode[] {\n if (node.astNode !== element) {\n return [];\n }\n if (ast.isKeyword(node.grammarSource) && node.grammarSource.value === keyword) {\n return [node];\n }\n const treeIterator = streamCst(node).iterator();\n let result: IteratorResult;\n const keywordNodes: CstNode[] = [];\n do {\n result = treeIterator.next();\n if (!result.done) {\n const childNode = result.value;\n if (childNode.astNode === element) {\n if (ast.isKeyword(childNode.grammarSource) && childNode.grammarSource.value === keyword) {\n keywordNodes.push(childNode);\n }\n } else {\n treeIterator.prune();\n }\n }\n } while (!result.done);\n return keywordNodes;\n}\n\n/**\n * If the given CST node was parsed in the context of a property assignment, the respective `Assignment` grammar\n * node is returned. If no assignment is found, the result is `undefined`.\n *\n * @param cstNode A CST node for which to find a property assignment.\n */\nexport function findAssignment(cstNode: CstNode): ast.Assignment | undefined {\n const astNode = cstNode.astNode;\n // Only search until the ast node of the parent cst node is no longer the original ast node\n // This would make us jump to a preceding rule call, which contains only unrelated assignments\n while (astNode === cstNode.container?.astNode) {\n const assignment = getContainerOfType(cstNode.grammarSource, ast.isAssignment);\n if (assignment) {\n return assignment;\n }\n cstNode = cstNode.container;\n }\n return undefined;\n}\n\n/**\n * Find an assignment to the `name` property for the given grammar type. This requires the `type` to be inferred\n * from a parser rule, and that rule must contain an assignment to the `name` property. In all other cases,\n * this function returns `undefined`.\n */\nexport function findNameAssignment(type: ast.AbstractType): ast.Assignment | undefined {\n let startNode: AstNode = type;\n if (ast.isInferredType(startNode)) {\n // for inferred types, the location to start searching for the name-assignment is different\n if (ast.isAction(startNode.$container)) {\n // a type which is explicitly inferred by an action: investigate the sibbling of the Action node, i.e. start searching at the Action's parent\n startNode = startNode.$container.$container!;\n } else if (ast.isParserRule(startNode.$container)) {\n // investigate the parser rule with the explicitly inferred type\n startNode = startNode.$container;\n } else {\n assertUnreachable(startNode.$container);\n }\n }\n return findNameAssignmentInternal(type, startNode, new Map());\n}\n\nfunction findNameAssignmentInternal(type: ast.AbstractType, startNode: AstNode, cache: Map): ast.Assignment | undefined {\n // the cache is only required to prevent infinite loops\n function go(node: AstNode, refType: ast.AbstractType): ast.Assignment | undefined {\n let childAssignment: ast.Assignment | undefined = undefined;\n const parentAssignment = getContainerOfType(node, ast.isAssignment);\n // No parent assignment implies unassigned rule call\n if (!parentAssignment) {\n childAssignment = findNameAssignmentInternal(refType, refType, cache);\n }\n cache.set(type, childAssignment);\n return childAssignment;\n }\n\n if (cache.has(type)) {\n return cache.get(type);\n }\n cache.set(type, undefined);\n for (const node of streamAllContents(startNode)) {\n if (ast.isAssignment(node) && node.feature.toLowerCase() === 'name') {\n cache.set(type, node);\n return node;\n } else if (ast.isRuleCall(node) && ast.isParserRule(node.rule.ref)) {\n return go(node, node.rule.ref);\n } else if (ast.isSimpleType(node) && node.typeRef?.ref) {\n return go(node, node.typeRef.ref);\n }\n }\n return undefined;\n}\n\nexport function getActionAtElement(element: ast.AbstractElement): ast.Action | undefined {\n const parent = element.$container;\n if (ast.isGroup(parent)) {\n const elements = parent.elements;\n const index = elements.indexOf(element);\n for (let i = index - 1; i >= 0; i--) {\n const item = elements[i];\n if (ast.isAction(item)) {\n return item;\n } else {\n const action = streamAllContents(elements[i]).find(ast.isAction);\n if (action) {\n return action;\n }\n }\n }\n }\n if (ast.isAbstractElement(parent)) {\n return getActionAtElement(parent);\n } else {\n return undefined;\n }\n}\n\nexport type Cardinality = '?' | '*' | '+' | undefined;\nexport type Operator = '=' | '+=' | '?=' | undefined;\n\nexport function isOptionalCardinality(cardinality?: Cardinality, element?: ast.AbstractElement): boolean {\n return cardinality === '?' || cardinality === '*' || (ast.isGroup(element) && Boolean(element.guardCondition));\n}\n\nexport function isArrayCardinality(cardinality?: Cardinality): boolean {\n return cardinality === '*' || cardinality === '+';\n}\n\nexport function isArrayOperator(operator?: Operator): boolean {\n return operator === '+=';\n}\n\n/**\n * Determines whether the given parser rule is a _data type rule_, meaning that it has a\n * primitive return type like `number`, `boolean`, etc.\n */\nexport function isDataTypeRule(rule: ast.ParserRule): boolean {\n return isDataTypeRuleInternal(rule, new Set());\n}\n\nfunction isDataTypeRuleInternal(rule: ast.ParserRule, visited: Set): boolean {\n if (visited.has(rule)) {\n return true;\n } else {\n visited.add(rule);\n }\n for (const node of streamAllContents(rule)) {\n if (ast.isRuleCall(node)) {\n if (!node.rule.ref) {\n // RuleCall to unresolved rule. Don't assume `rule` is a DataType rule.\n return false;\n }\n if (ast.isParserRule(node.rule.ref) && !isDataTypeRuleInternal(node.rule.ref, visited)) {\n return false;\n }\n } else if (ast.isAssignment(node)) {\n return false;\n } else if (ast.isAction(node)) {\n return false;\n }\n }\n return Boolean(rule.definition);\n}\n\nexport function isDataType(type: ast.Type): boolean {\n return isDataTypeInternal(type.type, new Set());\n}\n\nfunction isDataTypeInternal(type: ast.TypeDefinition, visited: Set): boolean {\n if (visited.has(type)) {\n return true;\n } else {\n visited.add(type);\n }\n if (ast.isArrayType(type)) {\n return false;\n } else if (ast.isReferenceType(type)) {\n return false;\n } else if (ast.isUnionType(type)) {\n return type.types.every(e => isDataTypeInternal(e, visited));\n } else if (ast.isSimpleType(type)) {\n if (type.primitiveType !== undefined) {\n return true;\n } else if (type.stringType !== undefined) {\n return true;\n } else if (type.typeRef !== undefined) {\n const ref = type.typeRef.ref;\n if (ast.isType(ref)) {\n return isDataTypeInternal(ref.type, visited);\n } else {\n return false;\n }\n } else {\n return false;\n }\n } else {\n return false;\n }\n}\n\nexport function getExplicitRuleType(rule: ast.ParserRule): string | undefined {\n if (rule.inferredType) {\n return rule.inferredType.name;\n } else if (rule.dataType) {\n return rule.dataType;\n } else if (rule.returnType) {\n const refType = rule.returnType.ref;\n if(refType) {\n // check if we need to check Action as return type\n if (ast.isParserRule(refType)) {\n return refType.name;\n } else if(ast.isInterface(refType) || ast.isType(refType)) {\n return refType.name;\n }\n }\n }\n return undefined;\n}\n\nexport function getTypeName(type: ast.AbstractType | ast.Action): string {\n if (ast.isParserRule(type)) {\n return isDataTypeRule(type) ? type.name : getExplicitRuleType(type) ?? type.name;\n } else if (ast.isInterface(type) || ast.isType(type) || ast.isReturnType(type)) {\n return type.name;\n } else if (ast.isAction(type)) {\n const actionType = getActionType(type);\n if (actionType) {\n return actionType;\n }\n } else if (ast.isInferredType(type)) {\n return type.name;\n }\n throw new Error('Cannot get name of Unknown Type');\n}\n\nexport function getActionType(action: ast.Action): string | undefined {\n if (action.inferredType) {\n return action.inferredType.name;\n } else if (action.type?.ref) {\n return getTypeName(action.type.ref);\n }\n return undefined; // not inferring and not referencing a valid type\n}\n\nexport function getRuleType(rule: ast.AbstractRule): string {\n if (ast.isTerminalRule(rule)) {\n return rule.type?.name ?? 'string';\n } else {\n return isDataTypeRule(rule) ? rule.name : getExplicitRuleType(rule) ?? rule.name;\n }\n}\n\nexport function terminalRegex(terminalRule: ast.TerminalRule): RegExp {\n const flags: Flags = {\n s: false,\n i: false,\n u: false\n };\n const source = abstractElementToRegex(terminalRule.definition, flags);\n const flagText = Object.entries(flags).filter(([, value]) => value).map(([name]) => name).join('');\n return new RegExp(source, flagText);\n}\n\n// Using [\\s\\S]* allows to match everything, compared to . which doesn't match line terminators\nconst WILDCARD = /[\\s\\S]/.source;\n\ntype Flags = {\n s: boolean;\n i: boolean;\n u: boolean;\n}\n\nfunction abstractElementToRegex(element: ast.AbstractElement, flags?: Flags): string {\n if (ast.isTerminalAlternatives(element)) {\n return terminalAlternativesToRegex(element);\n } else if (ast.isTerminalGroup(element)) {\n return terminalGroupToRegex(element);\n } else if (ast.isCharacterRange(element)) {\n return characterRangeToRegex(element);\n } else if (ast.isTerminalRuleCall(element)) {\n const rule = element.rule.ref;\n if (!rule) {\n throw new Error('Missing rule reference.');\n }\n return withCardinality(abstractElementToRegex(rule.definition), {\n cardinality: element.cardinality,\n lookahead: element.lookahead\n });\n } else if (ast.isNegatedToken(element)) {\n return negateTokenToRegex(element);\n } else if (ast.isUntilToken(element)) {\n return untilTokenToRegex(element);\n } else if (ast.isRegexToken(element)) {\n const lastSlash = element.regex.lastIndexOf('/');\n const source = element.regex.substring(1, lastSlash);\n const regexFlags = element.regex.substring(lastSlash + 1);\n if (flags) {\n flags.i = regexFlags.includes('i');\n flags.s = regexFlags.includes('s');\n flags.u = regexFlags.includes('u');\n }\n return withCardinality(source, {\n cardinality: element.cardinality,\n lookahead: element.lookahead,\n wrap: false\n });\n } else if (ast.isWildcard(element)) {\n return withCardinality(WILDCARD, {\n cardinality: element.cardinality,\n lookahead: element.lookahead\n });\n } else {\n throw new Error(`Invalid terminal element: ${element?.$type}`);\n }\n}\n\nfunction terminalAlternativesToRegex(alternatives: ast.TerminalAlternatives): string {\n return withCardinality(alternatives.elements.map(e => abstractElementToRegex(e)).join('|'), {\n cardinality: alternatives.cardinality,\n lookahead: alternatives.lookahead\n });\n}\n\nfunction terminalGroupToRegex(group: ast.TerminalGroup): string {\n return withCardinality(group.elements.map(e => abstractElementToRegex(e)).join(''), {\n cardinality: group.cardinality,\n lookahead: group.lookahead\n });\n}\n\nfunction untilTokenToRegex(until: ast.UntilToken): string {\n return withCardinality(`${WILDCARD}*?${abstractElementToRegex(until.terminal)}`, {\n cardinality: until.cardinality,\n lookahead: until.lookahead\n });\n}\n\nfunction negateTokenToRegex(negate: ast.NegatedToken): string {\n return withCardinality(`(?!${abstractElementToRegex(negate.terminal)})${WILDCARD}*?`, {\n cardinality: negate.cardinality,\n lookahead: negate.lookahead\n });\n}\n\nfunction characterRangeToRegex(range: ast.CharacterRange): string {\n if (range.right) {\n return withCardinality(`[${keywordToRegex(range.left)}-${keywordToRegex(range.right)}]`, {\n cardinality: range.cardinality,\n lookahead: range.lookahead,\n wrap: false\n });\n }\n return withCardinality(keywordToRegex(range.left), {\n cardinality: range.cardinality,\n lookahead: range.lookahead,\n wrap: false\n });\n}\n\nfunction keywordToRegex(keyword: ast.Keyword): string {\n return escapeRegExp(keyword.value);\n}\n\nfunction withCardinality(regex: string, options: {\n cardinality?: string\n wrap?: boolean\n lookahead?: string\n}): string {\n if (options.wrap !== false || options.lookahead) {\n regex = `(${options.lookahead ?? ''}${regex})`;\n }\n if (options.cardinality) {\n return `${regex}${options.cardinality}`;\n }\n return regex;\n}\n", "/******************************************************************************\n * Copyright 2021 TypeFox GmbH\n * This program and the accompanying materials are made available under the\n * terms of the MIT License, which is available in the project root.\n ******************************************************************************/\n\nimport type { CstNode } from '../syntax-tree.js';\n\nexport class ErrorWithLocation extends Error {\n constructor(node: CstNode | undefined, message: string) {\n super(node ? `${message} at ${node.range.start.line}:${node.range.start.character}` : message);\n }\n}\n\nexport function assertUnreachable(_: never): never {\n throw new Error('Error! The input value was not handled.');\n}\n", "/******************************************************************************\n * This file was generated by langium-cli 3.0.0.\n * DO NOT EDIT MANUALLY!\n ******************************************************************************/\n\n/* eslint-disable */\nimport type { AstNode, Reference, ReferenceInfo, TypeMetaData } from '../../syntax-tree.js';\nimport { AbstractAstReflection } from '../../syntax-tree.js';\n\nexport const LangiumGrammarTerminals = {\n ID: /\\^?[_a-zA-Z][\\w_]*/,\n STRING: /\"(\\\\.|[^\"\\\\])*\"|'(\\\\.|[^'\\\\])*'/,\n NUMBER: /NaN|-?((\\d*\\.\\d+|\\d+)([Ee][+-]?\\d+)?|Infinity)/,\n RegexLiteral: /\\/(?![*+?])(?:[^\\r\\n\\[/\\\\]|\\\\.|\\[(?:[^\\r\\n\\]\\\\]|\\\\.)*\\])+\\/[a-z]*/,\n WS: /\\s+/,\n ML_COMMENT: /\\/\\*[\\s\\S]*?\\*\\//,\n SL_COMMENT: /\\/\\/[^\\n\\r]*/,\n};\n\nexport type AbstractRule = ParserRule | TerminalRule;\n\nexport const AbstractRule = 'AbstractRule';\n\nexport function isAbstractRule(item: unknown): item is AbstractRule {\n return reflection.isInstance(item, AbstractRule);\n}\n\nexport type AbstractType = InferredType | Interface | ParserRule | Type;\n\nexport const AbstractType = 'AbstractType';\n\nexport function isAbstractType(item: unknown): item is AbstractType {\n return reflection.isInstance(item, AbstractType);\n}\n\nexport type Condition = BooleanLiteral | Conjunction | Disjunction | Negation | ParameterReference;\n\nexport const Condition = 'Condition';\n\nexport function isCondition(item: unknown): item is Condition {\n return reflection.isInstance(item, Condition);\n}\n\nexport type FeatureName = 'current' | 'entry' | 'extends' | 'false' | 'fragment' | 'grammar' | 'hidden' | 'import' | 'infer' | 'infers' | 'interface' | 'returns' | 'terminal' | 'true' | 'type' | 'with' | PrimitiveType | string;\n\nexport function isFeatureName(item: unknown): item is FeatureName {\n return isPrimitiveType(item) || item === 'current' || item === 'entry' || item === 'extends' || item === 'false' || item === 'fragment' || item === 'grammar' || item === 'hidden' || item === 'import' || item === 'interface' || item === 'returns' || item === 'terminal' || item === 'true' || item === 'type' || item === 'infer' || item === 'infers' || item === 'with' || (typeof item === 'string' && (/\\^?[_a-zA-Z][\\w_]*/.test(item)));\n}\n\nexport type PrimitiveType = 'Date' | 'bigint' | 'boolean' | 'number' | 'string';\n\nexport function isPrimitiveType(item: unknown): item is PrimitiveType {\n return item === 'string' || item === 'number' || item === 'boolean' || item === 'Date' || item === 'bigint';\n}\n\nexport type TypeDefinition = ArrayType | ReferenceType | SimpleType | UnionType;\n\nexport const TypeDefinition = 'TypeDefinition';\n\nexport function isTypeDefinition(item: unknown): item is TypeDefinition {\n return reflection.isInstance(item, TypeDefinition);\n}\n\nexport type ValueLiteral = ArrayLiteral | BooleanLiteral | NumberLiteral | StringLiteral;\n\nexport const ValueLiteral = 'ValueLiteral';\n\nexport function isValueLiteral(item: unknown): item is ValueLiteral {\n return reflection.isInstance(item, ValueLiteral);\n}\n\nexport interface AbstractElement extends AstNode {\n readonly $type: 'AbstractElement' | 'Action' | 'Alternatives' | 'Assignment' | 'CharacterRange' | 'CrossReference' | 'EndOfFile' | 'Group' | 'Keyword' | 'NegatedToken' | 'RegexToken' | 'RuleCall' | 'TerminalAlternatives' | 'TerminalGroup' | 'TerminalRuleCall' | 'UnorderedGroup' | 'UntilToken' | 'Wildcard';\n cardinality?: '*' | '+' | '?';\n lookahead?: '?!' | '?;\n}\n\nexport const ArrayLiteral = 'ArrayLiteral';\n\nexport function isArrayLiteral(item: unknown): item is ArrayLiteral {\n return reflection.isInstance(item, ArrayLiteral);\n}\n\nexport interface ArrayType extends AstNode {\n readonly $container: ArrayType | ReferenceType | Type | TypeAttribute | UnionType;\n readonly $type: 'ArrayType';\n elementType: TypeDefinition;\n}\n\nexport const ArrayType = 'ArrayType';\n\nexport function isArrayType(item: unknown): item is ArrayType {\n return reflection.isInstance(item, ArrayType);\n}\n\nexport interface BooleanLiteral extends AstNode {\n readonly $container: ArrayLiteral | Conjunction | Disjunction | Group | NamedArgument | Negation | TypeAttribute;\n readonly $type: 'BooleanLiteral';\n true: boolean;\n}\n\nexport const BooleanLiteral = 'BooleanLiteral';\n\nexport function isBooleanLiteral(item: unknown): item is BooleanLiteral {\n return reflection.isInstance(item, BooleanLiteral);\n}\n\nexport interface Conjunction extends AstNode {\n readonly $container: Conjunction | Disjunction | Group | NamedArgument | Negation;\n readonly $type: 'Conjunction';\n left: Condition;\n right: Condition;\n}\n\nexport const Conjunction = 'Conjunction';\n\nexport function isConjunction(item: unknown): item is Conjunction {\n return reflection.isInstance(item, Conjunction);\n}\n\nexport interface Disjunction extends AstNode {\n readonly $container: Conjunction | Disjunction | Group | NamedArgument | Negation;\n readonly $type: 'Disjunction';\n left: Condition;\n right: Condition;\n}\n\nexport const Disjunction = 'Disjunction';\n\nexport function isDisjunction(item: unknown): item is Disjunction {\n return reflection.isInstance(item, Disjunction);\n}\n\nexport interface Grammar extends AstNode {\n readonly $type: 'Grammar';\n definesHiddenTokens: boolean;\n hiddenTokens: Array>;\n imports: Array;\n interfaces: Array;\n isDeclared: boolean;\n name?: string;\n rules: Array;\n types: Array;\n usedGrammars: Array>;\n}\n\nexport const Grammar = 'Grammar';\n\nexport function isGrammar(item: unknown): item is Grammar {\n return reflection.isInstance(item, Grammar);\n}\n\nexport interface GrammarImport extends AstNode {\n readonly $container: Grammar;\n readonly $type: 'GrammarImport';\n path: string;\n}\n\nexport const GrammarImport = 'GrammarImport';\n\nexport function isGrammarImport(item: unknown): item is GrammarImport {\n return reflection.isInstance(item, GrammarImport);\n}\n\nexport interface InferredType extends AstNode {\n readonly $container: Action | ParserRule;\n readonly $type: 'InferredType';\n name: string;\n}\n\nexport const InferredType = 'InferredType';\n\nexport function isInferredType(item: unknown): item is InferredType {\n return reflection.isInstance(item, InferredType);\n}\n\nexport interface Interface extends AstNode {\n readonly $container: Grammar;\n readonly $type: 'Interface';\n attributes: Array;\n name: string;\n superTypes: Array>;\n}\n\nexport const Interface = 'Interface';\n\nexport function isInterface(item: unknown): item is Interface {\n return reflection.isInstance(item, Interface);\n}\n\nexport interface NamedArgument extends AstNode {\n readonly $container: RuleCall;\n readonly $type: 'NamedArgument';\n calledByName: boolean;\n parameter?: Reference;\n value: Condition;\n}\n\nexport const NamedArgument = 'NamedArgument';\n\nexport function isNamedArgument(item: unknown): item is NamedArgument {\n return reflection.isInstance(item, NamedArgument);\n}\n\nexport interface Negation extends AstNode {\n readonly $container: Conjunction | Disjunction | Group | NamedArgument | Negation;\n readonly $type: 'Negation';\n value: Condition;\n}\n\nexport const Negation = 'Negation';\n\nexport function isNegation(item: unknown): item is Negation {\n return reflection.isInstance(item, Negation);\n}\n\nexport interface NumberLiteral extends AstNode {\n readonly $container: ArrayLiteral | TypeAttribute;\n readonly $type: 'NumberLiteral';\n value: number;\n}\n\nexport const NumberLiteral = 'NumberLiteral';\n\nexport function isNumberLiteral(item: unknown): item is NumberLiteral {\n return reflection.isInstance(item, NumberLiteral);\n}\n\nexport interface Parameter extends AstNode {\n readonly $container: ParserRule;\n readonly $type: 'Parameter';\n name: string;\n}\n\nexport const Parameter = 'Parameter';\n\nexport function isParameter(item: unknown): item is Parameter {\n return reflection.isInstance(item, Parameter);\n}\n\nexport interface ParameterReference extends AstNode {\n readonly $container: Conjunction | Disjunction | Group | NamedArgument | Negation;\n readonly $type: 'ParameterReference';\n parameter: Reference;\n}\n\nexport const ParameterReference = 'ParameterReference';\n\nexport function isParameterReference(item: unknown): item is ParameterReference {\n return reflection.isInstance(item, ParameterReference);\n}\n\nexport interface ParserRule extends AstNode {\n readonly $container: Grammar;\n readonly $type: 'ParserRule';\n dataType?: PrimitiveType;\n definesHiddenTokens: boolean;\n definition: AbstractElement;\n entry: boolean;\n fragment: boolean;\n hiddenTokens: Array>;\n inferredType?: InferredType;\n name: string;\n parameters: Array;\n returnType?: Reference;\n wildcard: boolean;\n}\n\nexport const ParserRule = 'ParserRule';\n\nexport function isParserRule(item: unknown): item is ParserRule {\n return reflection.isInstance(item, ParserRule);\n}\n\nexport interface ReferenceType extends AstNode {\n readonly $container: ArrayType | ReferenceType | Type | TypeAttribute | UnionType;\n readonly $type: 'ReferenceType';\n referenceType: TypeDefinition;\n}\n\nexport const ReferenceType = 'ReferenceType';\n\nexport function isReferenceType(item: unknown): item is ReferenceType {\n return reflection.isInstance(item, ReferenceType);\n}\n\nexport interface ReturnType extends AstNode {\n readonly $container: TerminalRule;\n readonly $type: 'ReturnType';\n name: PrimitiveType | string;\n}\n\nexport const ReturnType = 'ReturnType';\n\nexport function isReturnType(item: unknown): item is ReturnType {\n return reflection.isInstance(item, ReturnType);\n}\n\nexport interface SimpleType extends AstNode {\n readonly $container: ArrayType | ReferenceType | Type | TypeAttribute | UnionType;\n readonly $type: 'SimpleType';\n primitiveType?: PrimitiveType;\n stringType?: string;\n typeRef?: Reference;\n}\n\nexport const SimpleType = 'SimpleType';\n\nexport function isSimpleType(item: unknown): item is SimpleType {\n return reflection.isInstance(item, SimpleType);\n}\n\nexport interface StringLiteral extends AstNode {\n readonly $container: ArrayLiteral | TypeAttribute;\n readonly $type: 'StringLiteral';\n value: string;\n}\n\nexport const StringLiteral = 'StringLiteral';\n\nexport function isStringLiteral(item: unknown): item is StringLiteral {\n return reflection.isInstance(item, StringLiteral);\n}\n\nexport interface TerminalRule extends AstNode {\n readonly $container: Grammar;\n readonly $type: 'TerminalRule';\n definition: AbstractElement;\n fragment: boolean;\n hidden: boolean;\n name: string;\n type?: ReturnType;\n}\n\nexport const TerminalRule = 'TerminalRule';\n\nexport function isTerminalRule(item: unknown): item is TerminalRule {\n return reflection.isInstance(item, TerminalRule);\n}\n\nexport interface Type extends AstNode {\n readonly $container: Grammar;\n readonly $type: 'Type';\n name: string;\n type: TypeDefinition;\n}\n\nexport const Type = 'Type';\n\nexport function isType(item: unknown): item is Type {\n return reflection.isInstance(item, Type);\n}\n\nexport interface TypeAttribute extends AstNode {\n readonly $container: Interface;\n readonly $type: 'TypeAttribute';\n defaultValue?: ValueLiteral;\n isOptional: boolean;\n name: FeatureName;\n type: TypeDefinition;\n}\n\nexport const TypeAttribute = 'TypeAttribute';\n\nexport function isTypeAttribute(item: unknown): item is TypeAttribute {\n return reflection.isInstance(item, TypeAttribute);\n}\n\nexport interface UnionType extends AstNode {\n readonly $container: ArrayType | ReferenceType | Type | TypeAttribute | UnionType;\n readonly $type: 'UnionType';\n types: Array;\n}\n\nexport const UnionType = 'UnionType';\n\nexport function isUnionType(item: unknown): item is UnionType {\n return reflection.isInstance(item, UnionType);\n}\n\nexport interface Action extends AbstractElement {\n readonly $type: 'Action';\n feature?: FeatureName;\n inferredType?: InferredType;\n operator?: '+=' | '=';\n type?: Reference;\n}\n\nexport const Action = 'Action';\n\nexport function isAction(item: unknown): item is Action {\n return reflection.isInstance(item, Action);\n}\n\nexport interface Alternatives extends AbstractElement {\n readonly $type: 'Alternatives';\n elements: Array;\n}\n\nexport const Alternatives = 'Alternatives';\n\nexport function isAlternatives(item: unknown): item is Alternatives {\n return reflection.isInstance(item, Alternatives);\n}\n\nexport interface Assignment extends AbstractElement {\n readonly $type: 'Assignment';\n feature: FeatureName;\n operator: '+=' | '=' | '?=';\n terminal: AbstractElement;\n}\n\nexport const Assignment = 'Assignment';\n\nexport function isAssignment(item: unknown): item is Assignment {\n return reflection.isInstance(item, Assignment);\n}\n\nexport interface CharacterRange extends AbstractElement {\n readonly $type: 'CharacterRange';\n left: Keyword;\n right?: Keyword;\n}\n\nexport const CharacterRange = 'CharacterRange';\n\nexport function isCharacterRange(item: unknown): item is CharacterRange {\n return reflection.isInstance(item, CharacterRange);\n}\n\nexport interface CrossReference extends AbstractElement {\n readonly $type: 'CrossReference';\n deprecatedSyntax: boolean;\n terminal?: AbstractElement;\n type: Reference;\n}\n\nexport const CrossReference = 'CrossReference';\n\nexport function isCrossReference(item: unknown): item is CrossReference {\n return reflection.isInstance(item, CrossReference);\n}\n\nexport interface EndOfFile extends AbstractElement {\n readonly $type: 'EndOfFile';\n}\n\nexport const EndOfFile = 'EndOfFile';\n\nexport function isEndOfFile(item: unknown): item is EndOfFile {\n return reflection.isInstance(item, EndOfFile);\n}\n\nexport interface Group extends AbstractElement {\n readonly $type: 'Group';\n elements: Array;\n guardCondition?: Condition;\n}\n\nexport const Group = 'Group';\n\nexport function isGroup(item: unknown): item is Group {\n return reflection.isInstance(item, Group);\n}\n\nexport interface Keyword extends AbstractElement {\n readonly $container: CharacterRange;\n readonly $type: 'Keyword';\n value: string;\n}\n\nexport const Keyword = 'Keyword';\n\nexport function isKeyword(item: unknown): item is Keyword {\n return reflection.isInstance(item, Keyword);\n}\n\nexport interface NegatedToken extends AbstractElement {\n readonly $type: 'NegatedToken';\n terminal: AbstractElement;\n}\n\nexport const NegatedToken = 'NegatedToken';\n\nexport function isNegatedToken(item: unknown): item is NegatedToken {\n return reflection.isInstance(item, NegatedToken);\n}\n\nexport interface RegexToken extends AbstractElement {\n readonly $type: 'RegexToken';\n regex: string;\n}\n\nexport const RegexToken = 'RegexToken';\n\nexport function isRegexToken(item: unknown): item is RegexToken {\n return reflection.isInstance(item, RegexToken);\n}\n\nexport interface RuleCall extends AbstractElement {\n readonly $type: 'RuleCall';\n arguments: Array;\n rule: Reference;\n}\n\nexport const RuleCall = 'RuleCall';\n\nexport function isRuleCall(item: unknown): item is RuleCall {\n return reflection.isInstance(item, RuleCall);\n}\n\nexport interface TerminalAlternatives extends AbstractElement {\n readonly $type: 'TerminalAlternatives';\n elements: Array;\n}\n\nexport const TerminalAlternatives = 'TerminalAlternatives';\n\nexport function isTerminalAlternatives(item: unknown): item is TerminalAlternatives {\n return reflection.isInstance(item, TerminalAlternatives);\n}\n\nexport interface TerminalGroup extends AbstractElement {\n readonly $type: 'TerminalGroup';\n elements: Array;\n}\n\nexport const TerminalGroup = 'TerminalGroup';\n\nexport function isTerminalGroup(item: unknown): item is TerminalGroup {\n return reflection.isInstance(item, TerminalGroup);\n}\n\nexport interface TerminalRuleCall extends AbstractElement {\n readonly $type: 'TerminalRuleCall';\n rule: Reference;\n}\n\nexport const TerminalRuleCall = 'TerminalRuleCall';\n\nexport function isTerminalRuleCall(item: unknown): item is TerminalRuleCall {\n return reflection.isInstance(item, TerminalRuleCall);\n}\n\nexport interface UnorderedGroup extends AbstractElement {\n readonly $type: 'UnorderedGroup';\n elements: Array;\n}\n\nexport const UnorderedGroup = 'UnorderedGroup';\n\nexport function isUnorderedGroup(item: unknown): item is UnorderedGroup {\n return reflection.isInstance(item, UnorderedGroup);\n}\n\nexport interface UntilToken extends AbstractElement {\n readonly $type: 'UntilToken';\n terminal: AbstractElement;\n}\n\nexport const UntilToken = 'UntilToken';\n\nexport function isUntilToken(item: unknown): item is UntilToken {\n return reflection.isInstance(item, UntilToken);\n}\n\nexport interface Wildcard extends AbstractElement {\n readonly $type: 'Wildcard';\n}\n\nexport const Wildcard = 'Wildcard';\n\nexport function isWildcard(item: unknown): item is Wildcard {\n return reflection.isInstance(item, Wildcard);\n}\n\nexport type LangiumGrammarAstType = {\n AbstractElement: AbstractElement\n AbstractRule: AbstractRule\n AbstractType: AbstractType\n Action: Action\n Alternatives: Alternatives\n ArrayLiteral: ArrayLiteral\n ArrayType: ArrayType\n Assignment: Assignment\n BooleanLiteral: BooleanLiteral\n CharacterRange: CharacterRange\n Condition: Condition\n Conjunction: Conjunction\n CrossReference: CrossReference\n Disjunction: Disjunction\n EndOfFile: EndOfFile\n Grammar: Grammar\n GrammarImport: GrammarImport\n Group: Group\n InferredType: InferredType\n Interface: Interface\n Keyword: Keyword\n NamedArgument: NamedArgument\n NegatedToken: NegatedToken\n Negation: Negation\n NumberLiteral: NumberLiteral\n Parameter: Parameter\n ParameterReference: ParameterReference\n ParserRule: ParserRule\n ReferenceType: ReferenceType\n RegexToken: RegexToken\n ReturnType: ReturnType\n RuleCall: RuleCall\n SimpleType: SimpleType\n StringLiteral: StringLiteral\n TerminalAlternatives: TerminalAlternatives\n TerminalGroup: TerminalGroup\n TerminalRule: TerminalRule\n TerminalRuleCall: TerminalRuleCall\n Type: Type\n TypeAttribute: TypeAttribute\n TypeDefinition: TypeDefinition\n UnionType: UnionType\n UnorderedGroup: UnorderedGroup\n UntilToken: UntilToken\n ValueLiteral: ValueLiteral\n Wildcard: Wildcard\n}\n\nexport class LangiumGrammarAstReflection extends AbstractAstReflection {\n\n getAllTypes(): string[] {\n return ['AbstractElement', 'AbstractRule', 'AbstractType', 'Action', 'Alternatives', 'ArrayLiteral', 'ArrayType', 'Assignment', 'BooleanLiteral', 'CharacterRange', 'Condition', 'Conjunction', 'CrossReference', 'Disjunction', 'EndOfFile', 'Grammar', 'GrammarImport', 'Group', 'InferredType', 'Interface', 'Keyword', 'NamedArgument', 'NegatedToken', 'Negation', 'NumberLiteral', 'Parameter', 'ParameterReference', 'ParserRule', 'ReferenceType', 'RegexToken', 'ReturnType', 'RuleCall', 'SimpleType', 'StringLiteral', 'TerminalAlternatives', 'TerminalGroup', 'TerminalRule', 'TerminalRuleCall', 'Type', 'TypeAttribute', 'TypeDefinition', 'UnionType', 'UnorderedGroup', 'UntilToken', 'ValueLiteral', 'Wildcard'];\n }\n\n protected override computeIsSubtype(subtype: string, supertype: string): boolean {\n switch (subtype) {\n case Action:\n case Alternatives:\n case Assignment:\n case CharacterRange:\n case CrossReference:\n case EndOfFile:\n case Group:\n case Keyword:\n case NegatedToken:\n case RegexToken:\n case RuleCall:\n case TerminalAlternatives:\n case TerminalGroup:\n case TerminalRuleCall:\n case UnorderedGroup:\n case UntilToken:\n case Wildcard: {\n return this.isSubtype(AbstractElement, supertype);\n }\n case ArrayLiteral:\n case NumberLiteral:\n case StringLiteral: {\n return this.isSubtype(ValueLiteral, supertype);\n }\n case ArrayType:\n case ReferenceType:\n case SimpleType:\n case UnionType: {\n return this.isSubtype(TypeDefinition, supertype);\n }\n case BooleanLiteral: {\n return this.isSubtype(Condition, supertype) || this.isSubtype(ValueLiteral, supertype);\n }\n case Conjunction:\n case Disjunction:\n case Negation:\n case ParameterReference: {\n return this.isSubtype(Condition, supertype);\n }\n case InferredType:\n case Interface:\n case Type: {\n return this.isSubtype(AbstractType, supertype);\n }\n case ParserRule: {\n return this.isSubtype(AbstractRule, supertype) || this.isSubtype(AbstractType, supertype);\n }\n case TerminalRule: {\n return this.isSubtype(AbstractRule, supertype);\n }\n default: {\n return false;\n }\n }\n }\n\n getReferenceType(refInfo: ReferenceInfo): string {\n const referenceId = `${refInfo.container.$type}:${refInfo.property}`;\n switch (referenceId) {\n case 'Action:type':\n case 'CrossReference:type':\n case 'Interface:superTypes':\n case 'ParserRule:returnType':\n case 'SimpleType:typeRef': {\n return AbstractType;\n }\n case 'Grammar:hiddenTokens':\n case 'ParserRule:hiddenTokens':\n case 'RuleCall:rule': {\n return AbstractRule;\n }\n case 'Grammar:usedGrammars': {\n return Grammar;\n }\n case 'NamedArgument:parameter':\n case 'ParameterReference:parameter': {\n return Parameter;\n }\n case 'TerminalRuleCall:rule': {\n return TerminalRule;\n }\n default: {\n throw new Error(`${referenceId} is not a valid reference id.`);\n }\n }\n }\n\n getTypeMetaData(type: string): TypeMetaData {\n switch (type) {\n case 'AbstractElement': {\n return {\n name: 'AbstractElement',\n properties: [\n { name: 'cardinality' },\n { name: 'lookahead' }\n ]\n };\n }\n case 'ArrayLiteral': {\n return {\n name: 'ArrayLiteral',\n properties: [\n { name: 'elements', defaultValue: [] }\n ]\n };\n }\n case 'ArrayType': {\n return {\n name: 'ArrayType',\n properties: [\n { name: 'elementType' }\n ]\n };\n }\n case 'BooleanLiteral': {\n return {\n name: 'BooleanLiteral',\n properties: [\n { name: 'true', defaultValue: false }\n ]\n };\n }\n case 'Conjunction': {\n return {\n name: 'Conjunction',\n properties: [\n { name: 'left' },\n { name: 'right' }\n ]\n };\n }\n case 'Disjunction': {\n return {\n name: 'Disjunction',\n properties: [\n { name: 'left' },\n { name: 'right' }\n ]\n };\n }\n case 'Grammar': {\n return {\n name: 'Grammar',\n properties: [\n { name: 'definesHiddenTokens', defaultValue: false },\n { name: 'hiddenTokens', defaultValue: [] },\n { name: 'imports', defaultValue: [] },\n { name: 'interfaces', defaultValue: [] },\n { name: 'isDeclared', defaultValue: false },\n { name: 'name' },\n { name: 'rules', defaultValue: [] },\n { name: 'types', defaultValue: [] },\n { name: 'usedGrammars', defaultValue: [] }\n ]\n };\n }\n case 'GrammarImport': {\n return {\n name: 'GrammarImport',\n properties: [\n { name: 'path' }\n ]\n };\n }\n case 'InferredType': {\n return {\n name: 'InferredType',\n properties: [\n { name: 'name' }\n ]\n };\n }\n case 'Interface': {\n return {\n name: 'Interface',\n properties: [\n { name: 'attributes', defaultValue: [] },\n { name: 'name' },\n { name: 'superTypes', defaultValue: [] }\n ]\n };\n }\n case 'NamedArgument': {\n return {\n name: 'NamedArgument',\n properties: [\n { name: 'calledByName', defaultValue: false },\n { name: 'parameter' },\n { name: 'value' }\n ]\n };\n }\n case 'Negation': {\n return {\n name: 'Negation',\n properties: [\n { name: 'value' }\n ]\n };\n }\n case 'NumberLiteral': {\n return {\n name: 'NumberLiteral',\n properties: [\n { name: 'value' }\n ]\n };\n }\n case 'Parameter': {\n return {\n name: 'Parameter',\n properties: [\n { name: 'name' }\n ]\n };\n }\n case 'ParameterReference': {\n return {\n name: 'ParameterReference',\n properties: [\n { name: 'parameter' }\n ]\n };\n }\n case 'ParserRule': {\n return {\n name: 'ParserRule',\n properties: [\n { name: 'dataType' },\n { name: 'definesHiddenTokens', defaultValue: false },\n { name: 'definition' },\n { name: 'entry', defaultValue: false },\n { name: 'fragment', defaultValue: false },\n { name: 'hiddenTokens', defaultValue: [] },\n { name: 'inferredType' },\n { name: 'name' },\n { name: 'parameters', defaultValue: [] },\n { name: 'returnType' },\n { name: 'wildcard', defaultValue: false }\n ]\n };\n }\n case 'ReferenceType': {\n return {\n name: 'ReferenceType',\n properties: [\n { name: 'referenceType' }\n ]\n };\n }\n case 'ReturnType': {\n return {\n name: 'ReturnType',\n properties: [\n { name: 'name' }\n ]\n };\n }\n case 'SimpleType': {\n return {\n name: 'SimpleType',\n properties: [\n { name: 'primitiveType' },\n { name: 'stringType' },\n { name: 'typeRef' }\n ]\n };\n }\n case 'StringLiteral': {\n return {\n name: 'StringLiteral',\n properties: [\n { name: 'value' }\n ]\n };\n }\n case 'TerminalRule': {\n return {\n name: 'TerminalRule',\n properties: [\n { name: 'definition' },\n { name: 'fragment', defaultValue: false },\n { name: 'hidden', defaultValue: false },\n { name: 'name' },\n { name: 'type' }\n ]\n };\n }\n case 'Type': {\n return {\n name: 'Type',\n properties: [\n { name: 'name' },\n { name: 'type' }\n ]\n };\n }\n case 'TypeAttribute': {\n return {\n name: 'TypeAttribute',\n properties: [\n { name: 'defaultValue' },\n { name: 'isOptional', defaultValue: false },\n { name: 'name' },\n { name: 'type' }\n ]\n };\n }\n case 'UnionType': {\n return {\n name: 'UnionType',\n properties: [\n { name: 'types', defaultValue: [] }\n ]\n };\n }\n case 'Action': {\n return {\n name: 'Action',\n properties: [\n { name: 'cardinality' },\n { name: 'feature' },\n { name: 'inferredType' },\n { name: 'lookahead' },\n { name: 'operator' },\n { name: 'type' }\n ]\n };\n }\n case 'Alternatives': {\n return {\n name: 'Alternatives',\n properties: [\n { name: 'cardinality' },\n { name: 'elements', defaultValue: [] },\n { name: 'lookahead' }\n ]\n };\n }\n case 'Assignment': {\n return {\n name: 'Assignment',\n properties: [\n { name: 'cardinality' },\n { name: 'feature' },\n { name: 'lookahead' },\n { name: 'operator' },\n { name: 'terminal' }\n ]\n };\n }\n case 'CharacterRange': {\n return {\n name: 'CharacterRange',\n properties: [\n { name: 'cardinality' },\n { name: 'left' },\n { name: 'lookahead' },\n { name: 'right' }\n ]\n };\n }\n case 'CrossReference': {\n return {\n name: 'CrossReference',\n properties: [\n { name: 'cardinality' },\n { name: 'deprecatedSyntax', defaultValue: false },\n { name: 'lookahead' },\n { name: 'terminal' },\n { name: 'type' }\n ]\n };\n }\n case 'EndOfFile': {\n return {\n name: 'EndOfFile',\n properties: [\n { name: 'cardinality' },\n { name: 'lookahead' }\n ]\n };\n }\n case 'Group': {\n return {\n name: 'Group',\n properties: [\n { name: 'cardinality' },\n { name: 'elements', defaultValue: [] },\n { name: 'guardCondition' },\n { name: 'lookahead' }\n ]\n };\n }\n case 'Keyword': {\n return {\n name: 'Keyword',\n properties: [\n { name: 'cardinality' },\n { name: 'lookahead' },\n { name: 'value' }\n ]\n };\n }\n case 'NegatedToken': {\n return {\n name: 'NegatedToken',\n properties: [\n { name: 'cardinality' },\n { name: 'lookahead' },\n { name: 'terminal' }\n ]\n };\n }\n case 'RegexToken': {\n return {\n name: 'RegexToken',\n properties: [\n { name: 'cardinality' },\n { name: 'lookahead' },\n { name: 'regex' }\n ]\n };\n }\n case 'RuleCall': {\n return {\n name: 'RuleCall',\n properties: [\n { name: 'arguments', defaultValue: [] },\n { name: 'cardinality' },\n { name: 'lookahead' },\n { name: 'rule' }\n ]\n };\n }\n case 'TerminalAlternatives': {\n return {\n name: 'TerminalAlternatives',\n properties: [\n { name: 'cardinality' },\n { name: 'elements', defaultValue: [] },\n { name: 'lookahead' }\n ]\n };\n }\n case 'TerminalGroup': {\n return {\n name: 'TerminalGroup',\n properties: [\n { name: 'cardinality' },\n { name: 'elements', defaultValue: [] },\n { name: 'lookahead' }\n ]\n };\n }\n case 'TerminalRuleCall': {\n return {\n name: 'TerminalRuleCall',\n properties: [\n { name: 'cardinality' },\n { name: 'lookahead' },\n { name: 'rule' }\n ]\n };\n }\n case 'UnorderedGroup': {\n return {\n name: 'UnorderedGroup',\n properties: [\n { name: 'cardinality' },\n { name: 'elements', defaultValue: [] },\n { name: 'lookahead' }\n ]\n };\n }\n case 'UntilToken': {\n return {\n name: 'UntilToken',\n properties: [\n { name: 'cardinality' },\n { name: 'lookahead' },\n { name: 'terminal' }\n ]\n };\n }\n case 'Wildcard': {\n return {\n name: 'Wildcard',\n properties: [\n { name: 'cardinality' },\n { name: 'lookahead' }\n ]\n };\n }\n default: {\n return {\n name: type,\n properties: []\n };\n }\n }\n }\n}\n\nexport const reflection = new LangiumGrammarAstReflection();\n", "/******************************************************************************\n * Copyright 2021 TypeFox GmbH\n * This program and the accompanying materials are made available under the\n * terms of the MIT License, which is available in the project root.\n ******************************************************************************/\n\nimport type { Range } from 'vscode-languageserver-types';\nimport type { AstNode, AstReflection, CstNode, GenericAstNode, Mutable, PropertyType, Reference, ReferenceInfo } from '../syntax-tree.js';\nimport type { Stream, TreeStream } from './stream.js';\nimport type { LangiumDocument } from '../workspace/documents.js';\nimport { isAstNode, isReference } from '../syntax-tree.js';\nimport { DONE_RESULT, stream, StreamImpl, TreeStreamImpl } from './stream.js';\nimport { inRange } from './cst-utils.js';\n\n/**\n * Link the `$container` and other related properties of every AST node that is directly contained\n * in the given `node`.\n */\nexport function linkContentToContainer(node: AstNode): void {\n for (const [name, value] of Object.entries(node)) {\n if (!name.startsWith('$')) {\n if (Array.isArray(value)) {\n value.forEach((item, index) => {\n if (isAstNode(item)) {\n (item as Mutable).$container = node;\n (item as Mutable).$containerProperty = name;\n (item as Mutable).$containerIndex = index;\n }\n });\n } else if (isAstNode(value)) {\n (value as Mutable).$container = node;\n (value as Mutable).$containerProperty = name;\n }\n }\n }\n}\n\n/**\n * Walk along the hierarchy of containers from the given AST node to the root and return the first\n * node that matches the type predicate. If the start node itself matches, it is returned.\n * If no container matches, `undefined` is returned.\n */\nexport function getContainerOfType(node: AstNode | undefined, typePredicate: (n: AstNode) => n is T): T | undefined {\n let item = node;\n while (item) {\n if (typePredicate(item)) {\n return item;\n }\n item = item.$container;\n }\n return undefined;\n}\n\n/**\n * Walk along the hierarchy of containers from the given AST node to the root and check for existence\n * of a container that matches the given predicate. The start node is included in the checks.\n */\nexport function hasContainerOfType(node: AstNode | undefined, predicate: (n: AstNode) => boolean): boolean {\n let item = node;\n while (item) {\n if (predicate(item)) {\n return true;\n }\n item = item.$container;\n }\n return false;\n}\n\n/**\n * Retrieve the document in which the given AST node is contained. A reference to the document is\n * usually held by the root node of the AST.\n *\n * @throws an error if the node is not contained in a document.\n */\nexport function getDocument(node: AstNode): LangiumDocument {\n const rootNode = findRootNode(node);\n const result = rootNode.$document;\n if (!result) {\n throw new Error('AST node has no document.');\n }\n return result as LangiumDocument;\n}\n\n/**\n * Returns the root node of the given AST node by following the `$container` references.\n */\nexport function findRootNode(node: AstNode): AstNode {\n while (node.$container) {\n node = node.$container;\n }\n return node;\n}\n\nexport interface AstStreamOptions {\n /**\n * Optional target range that the nodes in the stream need to intersect\n */\n range?: Range\n}\n\n/**\n * Create a stream of all AST nodes that are directly contained in the given node. This includes\n * single-valued as well as multi-valued (array) properties.\n */\nexport function streamContents(node: AstNode, options?: AstStreamOptions): Stream {\n if (!node) {\n throw new Error('Node must be an AstNode.');\n }\n const range = options?.range;\n type State = { keys: string[], keyIndex: number, arrayIndex: number };\n return new StreamImpl(() => ({\n keys: Object.keys(node),\n keyIndex: 0,\n arrayIndex: 0\n }), state => {\n while (state.keyIndex < state.keys.length) {\n const property = state.keys[state.keyIndex];\n if (!property.startsWith('$')) {\n const value = (node as GenericAstNode)[property];\n if (isAstNode(value)) {\n state.keyIndex++;\n if (isAstNodeInRange(value, range)) {\n return { done: false, value };\n }\n } else if (Array.isArray(value)) {\n while (state.arrayIndex < value.length) {\n const index = state.arrayIndex++;\n const element = value[index];\n if (isAstNode(element) && isAstNodeInRange(element, range)) {\n return { done: false, value: element };\n }\n }\n state.arrayIndex = 0;\n }\n }\n state.keyIndex++;\n }\n return DONE_RESULT;\n });\n}\n\n/**\n * Create a stream of all AST nodes that are directly and indirectly contained in the given root node.\n * This does not include the root node itself.\n */\nexport function streamAllContents(root: AstNode, options?: AstStreamOptions): TreeStream {\n if (!root) {\n throw new Error('Root node must be an AstNode.');\n }\n return new TreeStreamImpl(root, node => streamContents(node, options));\n}\n\n/**\n * Create a stream of all AST nodes that are directly and indirectly contained in the given root node,\n * including the root node itself.\n */\nexport function streamAst(root: AstNode, options?: AstStreamOptions): TreeStream {\n if (!root) {\n throw new Error('Root node must be an AstNode.');\n } else if (options?.range && !isAstNodeInRange(root, options.range)) {\n // Return an empty stream if the root node isn't in range\n return new TreeStreamImpl(root, () => []);\n }\n return new TreeStreamImpl(root, node => streamContents(node, options), { includeRoot: true });\n}\n\nfunction isAstNodeInRange(astNode: AstNode, range?: Range): boolean {\n if (!range) {\n return true;\n }\n const nodeRange = astNode.$cstNode?.range;\n if (!nodeRange) {\n return false;\n }\n return inRange(nodeRange, range);\n}\n\n/**\n * Create a stream of all cross-references that are held by the given AST node. This includes\n * single-valued as well as multi-valued (array) properties.\n */\nexport function streamReferences(node: AstNode): Stream {\n type State = { keys: string[], keyIndex: number, arrayIndex: number };\n return new StreamImpl(() => ({\n keys: Object.keys(node),\n keyIndex: 0,\n arrayIndex: 0\n }), state => {\n while (state.keyIndex < state.keys.length) {\n const property = state.keys[state.keyIndex];\n if (!property.startsWith('$')) {\n const value = (node as GenericAstNode)[property];\n if (isReference(value)) {\n state.keyIndex++;\n return { done: false, value: { reference: value, container: node, property } };\n } else if (Array.isArray(value)) {\n while (state.arrayIndex < value.length) {\n const index = state.arrayIndex++;\n const element = value[index];\n if (isReference(element)) {\n return { done: false, value: { reference: element, container: node, property, index } };\n }\n }\n state.arrayIndex = 0;\n }\n }\n state.keyIndex++;\n }\n return DONE_RESULT;\n });\n}\n\n/**\n * Returns a Stream of references to the target node from the AstNode tree\n *\n * @param targetNode AstNode we are looking for\n * @param lookup AstNode where we search for references. If not provided, the root node of the document is used as the default value\n */\nexport function findLocalReferences(targetNode: AstNode, lookup = getDocument(targetNode).parseResult.value): Stream {\n const refs: Reference[] = [];\n streamAst(lookup).forEach(node => {\n streamReferences(node).forEach(refInfo => {\n if (refInfo.reference.ref === targetNode) {\n refs.push(refInfo.reference);\n }\n });\n });\n return stream(refs);\n}\n\n/**\n * Assigns all mandatory AST properties to the specified node.\n *\n * @param reflection Reflection object used to gather mandatory properties for the node.\n * @param node Specified node is modified in place and properties are directly assigned.\n */\nexport function assignMandatoryProperties(reflection: AstReflection, node: AstNode): void {\n const typeMetaData = reflection.getTypeMetaData(node.$type);\n const genericNode = node as GenericAstNode;\n for (const property of typeMetaData.properties) {\n // Only set the value if the property is not already set and if it has a default value\n if (property.defaultValue !== undefined && genericNode[property.name] === undefined) {\n genericNode[property.name] = copyDefaultValue(property.defaultValue);\n }\n }\n}\n\nfunction copyDefaultValue(propertyType: PropertyType): PropertyType {\n if (Array.isArray(propertyType)) {\n return [...propertyType.map(copyDefaultValue)];\n } else {\n return propertyType;\n }\n}\n\n/**\n * Creates a deep copy of the specified AST node.\n * The resulting copy will only contain semantically relevant information, such as the `$type` property and AST properties.\n *\n * References are copied without resolved cross reference. The specified function is used to rebuild them.\n */\nexport function copyAstNode(node: T, buildReference: (node: AstNode, property: string, refNode: CstNode | undefined, refText: string) => Reference): T {\n const copy: GenericAstNode = { $type: node.$type };\n\n for (const [name, value] of Object.entries(node)) {\n if (!name.startsWith('$')) {\n if (isAstNode(value)) {\n copy[name] = copyAstNode(value, buildReference);\n } else if (isReference(value)) {\n copy[name] = buildReference(\n copy,\n name,\n value.$refNode,\n value.$refText\n );\n } else if (Array.isArray(value)) {\n const copiedArray: unknown[] = [];\n for (const element of value) {\n if (isAstNode(element)) {\n copiedArray.push(copyAstNode(element, buildReference));\n } else if (isReference(element)) {\n copiedArray.push(\n buildReference(\n copy,\n name,\n element.$refNode,\n element.$refText\n )\n );\n } else {\n copiedArray.push(element);\n }\n }\n copy[name] = copiedArray;\n } else {\n copy[name] = value;\n }\n }\n }\n\n linkContentToContainer(copy);\n return copy as unknown as T;\n}\n", "/******************************************************************************\n * Copyright 2021 TypeFox GmbH\n * This program and the accompanying materials are made available under the\n * terms of the MIT License, which is available in the project root.\n ******************************************************************************/\n\nimport type { Set, Group, Character, IRegExpAST } from '@chevrotain/regexp-to-ast';\nimport { RegExpParser, BaseRegExpVisitor } from '@chevrotain/regexp-to-ast';\n\nexport const NEWLINE_REGEXP = /\\r?\\n/gm;\n\nconst regexpParser = new RegExpParser();\n\n/**\n * This class is in charge of heuristically identifying start/end tokens of terminals.\n *\n * The way this works is by doing the following:\n * 1. Traverse the regular expression in the \"start state\"\n * 2. Add any encountered sets/single characters to the \"start regexp\"\n * 3. Once we encounter any variable-length content (i.e. with quantifiers such as +/?/*), we enter the \"end state\"\n * 4. In the end state, any sets/single characters are added to an \"end stack\".\n * 5. If we re-encounter any variable-length content we reset the end stack\n * 6. We continue visiting the regex until the end, reseting the end stack and rebuilding it as necessary\n *\n * After traversing a regular expression the `startRegexp/endRegexp` properties allow access to the stored start/end of the terminal\n */\nclass TerminalRegExpVisitor extends BaseRegExpVisitor {\n\n private isStarting = true;\n startRegexp: string;\n private endRegexpStack: string[] = [];\n multiline = false;\n regex: string;\n\n get endRegex(): string {\n return this.endRegexpStack.join('');\n }\n\n reset(regex: string): void {\n this.multiline = false;\n this.regex = regex;\n this.startRegexp = '';\n this.isStarting = true;\n this.endRegexpStack = [];\n }\n\n override visitGroup(node: Group) {\n if (node.quantifier) {\n this.isStarting = false;\n this.endRegexpStack = [];\n }\n }\n\n override visitCharacter(node: Character): void {\n const char = String.fromCharCode(node.value);\n if (!this.multiline && char === '\\n') {\n this.multiline = true;\n }\n if (node.quantifier) {\n this.isStarting = false;\n this.endRegexpStack = [];\n } else {\n const escapedChar = escapeRegExp(char);\n this.endRegexpStack.push(escapedChar);\n if (this.isStarting) {\n this.startRegexp += escapedChar;\n }\n }\n }\n\n override visitSet(node: Set): void {\n if (!this.multiline) {\n const set = this.regex.substring(node.loc.begin, node.loc.end);\n const regex = new RegExp(set);\n this.multiline = Boolean('\\n'.match(regex));\n }\n if (node.quantifier) {\n this.isStarting = false;\n this.endRegexpStack = [];\n } else {\n const set = this.regex.substring(node.loc.begin, node.loc.end);\n this.endRegexpStack.push(set);\n if (this.isStarting) {\n this.startRegexp += set;\n }\n }\n }\n\n override visitChildren(node: IRegExpAST): void {\n if (node.type === 'Group') {\n // Ignore children of groups with quantifier (+/*/?)\n // These groups are unrelated to start/end tokens of terminals\n const group = node as Group;\n if (group.quantifier) {\n return;\n }\n }\n super.visitChildren(node);\n }\n}\n\nconst visitor = new TerminalRegExpVisitor();\n\nexport function getTerminalParts(regexp: RegExp | string): Array<{ start: string, end: string }> {\n try {\n if (typeof regexp !== 'string') {\n regexp = regexp.source;\n }\n regexp = `/${regexp}/`;\n const pattern = regexpParser.pattern(regexp);\n const parts: Array<{ start: string, end: string }> = [];\n for (const alternative of pattern.value.value) {\n visitor.reset(regexp);\n visitor.visit(alternative);\n parts.push({\n start: visitor.startRegexp,\n end: visitor.endRegex\n });\n }\n return parts;\n } catch {\n return [];\n }\n}\n\nexport function isMultilineComment(regexp: RegExp | string): boolean {\n try {\n if (typeof regexp === 'string') {\n regexp = new RegExp(regexp);\n }\n regexp = regexp.toString();\n visitor.reset(regexp);\n // Parsing the pattern might fail (since it's user code)\n visitor.visit(regexpParser.pattern(regexp));\n return visitor.multiline;\n } catch {\n return false;\n }\n}\n\nexport function isWhitespace(value: RegExp | string): boolean {\n const regexp = typeof value === 'string' ? new RegExp(value) : value;\n return regexp.test(' ');\n}\n\nexport function escapeRegExp(value: string): string {\n return value.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n}\n\nexport function getCaseInsensitivePattern(keyword: string): string {\n return Array.prototype.map.call(keyword, letter =>\n /\\w/.test(letter) ? `[${letter.toLowerCase()}${letter.toUpperCase()}]` : escapeRegExp(letter)\n ).join('');\n}\n\n/**\n * Determines whether the given input has a partial match with the specified regex.\n * @param regex The regex to partially match against\n * @param input The input string\n * @returns Whether any match exists.\n */\nexport function partialMatches(regex: RegExp | string, input: string): boolean {\n const partial = partialRegExp(regex);\n const match = input.match(partial);\n return !!match && match[0].length > 0;\n}\n\n/**\n * Builds a partial regex from the input regex. A partial regex is able to match incomplete input strings. E.g.\n * a partial regex constructed from `/ab/` is able to match the string `a` without needing a following `b` character. However it won't match `b` alone.\n * @param regex The input regex to be converted.\n * @returns A partial regex constructed from the input regex.\n */\nexport function partialRegExp(regex: RegExp | string): RegExp {\n if (typeof regex === 'string') {\n regex = new RegExp(regex);\n }\n const re = regex, source = regex.source;\n let i = 0;\n\n function process() {\n let result = '',\n tmp;\n\n function appendRaw(nbChars: number) {\n result += source.substr(i, nbChars);\n i += nbChars;\n }\n\n function appendOptional(nbChars: number) {\n result += '(?:' + source.substr(i, nbChars) + '|$)';\n i += nbChars;\n }\n\n while (i < source.length) {\n switch (source[i]) {\n case '\\\\':\n switch (source[i + 1]) {\n case 'c':\n appendOptional(3);\n break;\n case 'x':\n appendOptional(4);\n break;\n case 'u':\n if (re.unicode) {\n if (source[i + 2] === '{') {\n appendOptional(source.indexOf('}', i) - i + 1);\n } else {\n appendOptional(6);\n }\n } else {\n appendOptional(2);\n }\n break;\n case 'p':\n case 'P':\n if (re.unicode) {\n appendOptional(source.indexOf('}', i) - i + 1);\n } else {\n appendOptional(2);\n }\n break;\n case 'k':\n appendOptional(source.indexOf('>', i) - i + 1);\n break;\n default:\n appendOptional(2);\n break;\n }\n break;\n\n case '[':\n tmp = /\\[(?:\\\\.|.)*?\\]/g;\n tmp.lastIndex = i;\n tmp = tmp.exec(source) || [];\n appendOptional(tmp[0].length);\n break;\n\n case '|':\n case '^':\n case '$':\n case '*':\n case '+':\n case '?':\n appendRaw(1);\n break;\n case '{':\n tmp = /\\{\\d+,?\\d*\\}/g;\n tmp.lastIndex = i;\n tmp = tmp.exec(source);\n if (tmp) {\n appendRaw(tmp[0].length);\n } else {\n appendOptional(1);\n }\n break;\n case '(':\n if (source[i + 1] === '?') {\n switch (source[i + 2]) {\n case ':':\n result += '(?:';\n i += 3;\n result += process() + '|$)';\n break;\n case '=':\n result += '(?=';\n i += 3;\n result += process() + ')';\n break;\n case '!':\n tmp = i;\n i += 3;\n process();\n result += source.substr(tmp, i - tmp);\n break;\n case '<':\n switch (source[i + 3]) {\n case '=':\n case '!':\n tmp = i;\n i += 4;\n process();\n result += source.substr(tmp, i - tmp);\n break;\n default:\n appendRaw(source.indexOf('>', i) - i + 1);\n result += process() + '|$)';\n break;\n }\n break;\n }\n } else {\n appendRaw(1);\n result += process() + '|$)';\n }\n break;\n case ')':\n ++i;\n return result;\n default:\n appendOptional(1);\n break;\n }\n }\n\n return result;\n }\n\n return new RegExp(process(), regex.flags);\n}\n", "import type { Character, IRegExpAST, RegExpFlags } from \"../types\";\n\nexport function cc(char: string): number {\n return char.charCodeAt(0);\n}\n\nexport function insertToSet(item: T | T[], set: T[]) {\n if (Array.isArray(item)) {\n item.forEach(function (subItem) {\n set.push(subItem);\n });\n } else {\n set.push(item);\n }\n}\n\nexport function addFlag(\n flagObj: RegExpFlags,\n flagKey: keyof Omit,\n) {\n if (flagObj[flagKey] === true) {\n throw \"duplicate flag \" + flagKey;\n }\n\n const x: boolean = flagObj[flagKey];\n flagObj[flagKey] = true;\n}\n\nexport function ASSERT_EXISTS(obj: any): obj is T {\n // istanbul ignore next\n if (obj === undefined) {\n throw Error(\"Internal Error - Should never get here!\");\n }\n return true;\n}\n\n// istanbul ignore next\nexport function ASSERT_NEVER_REACH_HERE(): any {\n throw Error(\"Internal Error - Should never get here!\");\n}\n\nexport function isCharacter(obj: { type: string }): obj is Character {\n return obj[\"type\"] === \"Character\";\n}\n", "import { cc } from \"./utils.js\";\n\nexport const digitsCharCodes: number[] = [];\nfor (let i = cc(\"0\"); i <= cc(\"9\"); i++) {\n digitsCharCodes.push(i);\n}\n\nexport const wordCharCodes: number[] = [cc(\"_\")].concat(digitsCharCodes);\nfor (let i = cc(\"a\"); i <= cc(\"z\"); i++) {\n wordCharCodes.push(i);\n}\n\nfor (let i = cc(\"A\"); i <= cc(\"Z\"); i++) {\n wordCharCodes.push(i);\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp#character-classes\nexport const whitespaceCodes: number[] = [\n cc(\" \"),\n cc(\"\\f\"),\n cc(\"\\n\"),\n cc(\"\\r\"),\n cc(\"\\t\"),\n cc(\"\\v\"),\n cc(\"\\t\"),\n cc(\"\\u00a0\"),\n cc(\"\\u1680\"),\n cc(\"\\u2000\"),\n cc(\"\\u2001\"),\n cc(\"\\u2002\"),\n cc(\"\\u2003\"),\n cc(\"\\u2004\"),\n cc(\"\\u2005\"),\n cc(\"\\u2006\"),\n cc(\"\\u2007\"),\n cc(\"\\u2008\"),\n cc(\"\\u2009\"),\n cc(\"\\u200a\"),\n cc(\"\\u2028\"),\n cc(\"\\u2029\"),\n cc(\"\\u202f\"),\n cc(\"\\u205f\"),\n cc(\"\\u3000\"),\n cc(\"\\ufeff\"),\n];\n", "import type {\n Alternative,\n Assertion,\n Atom,\n Character,\n Disjunction,\n Group,\n GroupBackReference,\n Location,\n Quantifier,\n Range,\n RegExpFlags,\n RegExpPattern,\n Set,\n Term,\n} from \"../types\";\nimport {\n addFlag,\n ASSERT_EXISTS,\n ASSERT_NEVER_REACH_HERE,\n cc,\n insertToSet,\n isCharacter,\n} from \"./utils.js\";\nimport {\n digitsCharCodes,\n whitespaceCodes,\n wordCharCodes,\n} from \"./character-classes.js\";\n\n// consts and utilities\nconst hexDigitPattern = /[0-9a-fA-F]/;\nconst decimalPattern = /[0-9]/;\nconst decimalPatternNoZero = /[1-9]/;\n\n// https://hackernoon.com/the-madness-of-parsing-real-world-javascript-regexps-d9ee336df983\n// https://www.ecma-international.org/ecma-262/8.0/index.html#prod-Pattern\nexport class RegExpParser {\n protected idx: number = 0;\n protected input: string = \"\";\n protected groupIdx: number = 0;\n\n protected saveState() {\n return {\n idx: this.idx,\n input: this.input,\n groupIdx: this.groupIdx,\n };\n }\n\n protected restoreState(newState: {\n idx: number;\n input: string;\n groupIdx: number;\n }) {\n this.idx = newState.idx;\n this.input = newState.input;\n this.groupIdx = newState.groupIdx;\n }\n\n public pattern(input: string): RegExpPattern {\n // parser state\n this.idx = 0;\n this.input = input;\n this.groupIdx = 0;\n\n this.consumeChar(\"/\");\n const value = this.disjunction();\n this.consumeChar(\"/\");\n\n const flags: RegExpFlags = {\n type: \"Flags\",\n loc: { begin: this.idx, end: input.length },\n global: false,\n ignoreCase: false,\n multiLine: false,\n unicode: false,\n sticky: false,\n };\n\n while (this.isRegExpFlag()) {\n switch (this.popChar()) {\n case \"g\":\n addFlag(flags, \"global\");\n break;\n case \"i\":\n addFlag(flags, \"ignoreCase\");\n break;\n case \"m\":\n addFlag(flags, \"multiLine\");\n break;\n case \"u\":\n addFlag(flags, \"unicode\");\n break;\n case \"y\":\n addFlag(flags, \"sticky\");\n break;\n }\n }\n\n if (this.idx !== this.input.length) {\n throw Error(\"Redundant input: \" + this.input.substring(this.idx));\n }\n return {\n type: \"Pattern\",\n flags: flags,\n value: value,\n loc: this.loc(0),\n };\n }\n\n protected disjunction(): Disjunction {\n const alts = [];\n const begin = this.idx;\n\n alts.push(this.alternative());\n\n while (this.peekChar() === \"|\") {\n this.consumeChar(\"|\");\n alts.push(this.alternative());\n }\n\n return { type: \"Disjunction\", value: alts, loc: this.loc(begin) };\n }\n\n protected alternative(): Alternative {\n const terms = [];\n const begin = this.idx;\n\n while (this.isTerm()) {\n terms.push(this.term());\n }\n\n return { type: \"Alternative\", value: terms, loc: this.loc(begin) };\n }\n\n protected term(): Term {\n if (this.isAssertion()) {\n return this.assertion();\n } else {\n return this.atom();\n }\n }\n\n protected assertion(): Assertion {\n const begin = this.idx;\n switch (this.popChar()) {\n case \"^\":\n return {\n type: \"StartAnchor\",\n loc: this.loc(begin),\n };\n case \"$\":\n return { type: \"EndAnchor\", loc: this.loc(begin) };\n // '\\b' or '\\B'\n case \"\\\\\":\n switch (this.popChar()) {\n case \"b\":\n return {\n type: \"WordBoundary\",\n loc: this.loc(begin),\n };\n case \"B\":\n return {\n type: \"NonWordBoundary\",\n loc: this.loc(begin),\n };\n }\n // istanbul ignore next\n throw Error(\"Invalid Assertion Escape\");\n // '(?=' or '(?!'\n case \"(\":\n this.consumeChar(\"?\");\n\n let type: \"Lookahead\" | \"NegativeLookahead\" | undefined;\n switch (this.popChar()) {\n case \"=\":\n type = \"Lookahead\";\n break;\n case \"!\":\n type = \"NegativeLookahead\";\n break;\n }\n ASSERT_EXISTS(type);\n\n const disjunction = this.disjunction();\n\n this.consumeChar(\")\");\n\n return {\n type: type!,\n value: disjunction,\n loc: this.loc(begin),\n };\n }\n // istanbul ignore next\n return ASSERT_NEVER_REACH_HERE();\n }\n\n protected quantifier(\n isBacktracking: boolean = false,\n ): Quantifier | undefined {\n let range: Partial | undefined = undefined;\n const begin = this.idx;\n switch (this.popChar()) {\n case \"*\":\n range = {\n atLeast: 0,\n atMost: Infinity,\n };\n break;\n case \"+\":\n range = {\n atLeast: 1,\n atMost: Infinity,\n };\n break;\n case \"?\":\n range = {\n atLeast: 0,\n atMost: 1,\n };\n break;\n case \"{\":\n const atLeast = this.integerIncludingZero();\n switch (this.popChar()) {\n case \"}\":\n range = {\n atLeast: atLeast,\n atMost: atLeast,\n };\n break;\n case \",\":\n let atMost;\n if (this.isDigit()) {\n atMost = this.integerIncludingZero();\n range = {\n atLeast: atLeast,\n atMost: atMost,\n };\n } else {\n range = {\n atLeast: atLeast,\n atMost: Infinity,\n };\n }\n this.consumeChar(\"}\");\n break;\n }\n // throwing exceptions from \"ASSERT_EXISTS\" during backtracking\n // causes severe performance degradations\n if (isBacktracking === true && range === undefined) {\n return undefined;\n }\n ASSERT_EXISTS(range);\n break;\n }\n\n // throwing exceptions from \"ASSERT_EXISTS\" during backtracking\n // causes severe performance degradations\n if (isBacktracking === true && range === undefined) {\n return undefined;\n }\n\n // istanbul ignore else\n if (ASSERT_EXISTS(range)) {\n if (this.peekChar(0) === \"?\") {\n this.consumeChar(\"?\");\n range.greedy = false;\n } else {\n range.greedy = true;\n }\n\n range.type = \"Quantifier\";\n range.loc = this.loc(begin);\n return range as Quantifier;\n }\n }\n\n protected atom(): Atom {\n let atom: Omit | undefined;\n const begin = this.idx;\n switch (this.peekChar()) {\n case \".\":\n atom = this.dotAll();\n break;\n case \"\\\\\":\n atom = this.atomEscape();\n break;\n case \"[\":\n atom = this.characterClass();\n break;\n case \"(\":\n atom = this.group();\n break;\n }\n\n if (atom === undefined && this.isPatternCharacter()) {\n atom = this.patternCharacter();\n }\n\n // istanbul ignore else\n if (ASSERT_EXISTS(atom)) {\n atom.loc = this.loc(begin);\n\n if (this.isQuantifier()) {\n atom.quantifier = this.quantifier();\n }\n\n return atom;\n }\n\n // istanbul ignore next\n return ASSERT_NEVER_REACH_HERE();\n }\n\n protected dotAll(): Omit {\n this.consumeChar(\".\");\n return {\n type: \"Set\",\n complement: true,\n value: [cc(\"\\n\"), cc(\"\\r\"), cc(\"\\u2028\"), cc(\"\\u2029\")],\n };\n }\n\n protected atomEscape(): Omit {\n this.consumeChar(\"\\\\\");\n\n switch (this.peekChar()) {\n case \"1\":\n case \"2\":\n case \"3\":\n case \"4\":\n case \"5\":\n case \"6\":\n case \"7\":\n case \"8\":\n case \"9\":\n return this.decimalEscapeAtom();\n case \"d\":\n case \"D\":\n case \"s\":\n case \"S\":\n case \"w\":\n case \"W\":\n return this.characterClassEscape();\n case \"f\":\n case \"n\":\n case \"r\":\n case \"t\":\n case \"v\":\n return this.controlEscapeAtom();\n case \"c\":\n return this.controlLetterEscapeAtom();\n case \"0\":\n return this.nulCharacterAtom();\n case \"x\":\n return this.hexEscapeSequenceAtom();\n case \"u\":\n return this.regExpUnicodeEscapeSequenceAtom();\n default:\n return this.identityEscapeAtom();\n }\n }\n\n protected decimalEscapeAtom(): Omit {\n const value = this.positiveInteger();\n\n return { type: \"GroupBackReference\", value: value };\n }\n\n protected characterClassEscape(): Omit {\n let set: (number | Range)[] | undefined;\n let complement = false;\n switch (this.popChar()) {\n case \"d\":\n set = digitsCharCodes;\n break;\n case \"D\":\n set = digitsCharCodes;\n complement = true;\n break;\n case \"s\":\n set = whitespaceCodes;\n break;\n case \"S\":\n set = whitespaceCodes;\n complement = true;\n break;\n case \"w\":\n set = wordCharCodes;\n break;\n case \"W\":\n set = wordCharCodes;\n complement = true;\n break;\n }\n\n // istanbul ignore else\n if (ASSERT_EXISTS(set)) {\n return { type: \"Set\", value: set, complement: complement };\n }\n // istanbul ignore next\n return ASSERT_NEVER_REACH_HERE();\n }\n\n protected controlEscapeAtom(): Omit {\n let escapeCode;\n switch (this.popChar()) {\n case \"f\":\n escapeCode = cc(\"\\f\");\n break;\n case \"n\":\n escapeCode = cc(\"\\n\");\n break;\n case \"r\":\n escapeCode = cc(\"\\r\");\n break;\n case \"t\":\n escapeCode = cc(\"\\t\");\n break;\n case \"v\":\n escapeCode = cc(\"\\v\");\n break;\n }\n\n // istanbul ignore else\n if (ASSERT_EXISTS(escapeCode)) {\n return { type: \"Character\", value: escapeCode };\n }\n // istanbul ignore next\n return ASSERT_NEVER_REACH_HERE();\n }\n\n protected controlLetterEscapeAtom(): Omit {\n this.consumeChar(\"c\");\n const letter = this.popChar();\n if (/[a-zA-Z]/.test(letter) === false) {\n throw Error(\"Invalid \");\n }\n\n const letterCode = letter.toUpperCase().charCodeAt(0) - 64;\n return { type: \"Character\", value: letterCode };\n }\n\n protected nulCharacterAtom(): Omit {\n // TODO implement '[lookahead \u2209 DecimalDigit]'\n // TODO: for the deprecated octal escape sequence\n this.consumeChar(\"0\");\n return { type: \"Character\", value: cc(\"\\0\") };\n }\n\n protected hexEscapeSequenceAtom(): Omit {\n this.consumeChar(\"x\");\n return this.parseHexDigits(2);\n }\n\n protected regExpUnicodeEscapeSequenceAtom(): Omit {\n this.consumeChar(\"u\");\n return this.parseHexDigits(4);\n }\n\n protected identityEscapeAtom(): Omit {\n // TODO: implement \"SourceCharacter but not UnicodeIDContinue\"\n // // http://unicode.org/reports/tr31/#Specific_Character_Adjustments\n const escapedChar = this.popChar();\n return { type: \"Character\", value: cc(escapedChar) };\n }\n\n protected classPatternCharacterAtom(): Omit {\n switch (this.peekChar()) {\n // istanbul ignore next\n case \"\\n\":\n // istanbul ignore next\n case \"\\r\":\n // istanbul ignore next\n case \"\\u2028\":\n // istanbul ignore next\n case \"\\u2029\":\n // istanbul ignore next\n case \"\\\\\":\n // istanbul ignore next\n case \"]\":\n throw Error(\"TBD\");\n default:\n const nextChar = this.popChar();\n return { type: \"Character\", value: cc(nextChar) };\n }\n }\n\n protected characterClass(): Omit {\n const set: (number | Range)[] = [];\n let complement = false;\n this.consumeChar(\"[\");\n if (this.peekChar(0) === \"^\") {\n this.consumeChar(\"^\");\n complement = true;\n }\n\n while (this.isClassAtom()) {\n const from = this.classAtom();\n const isFromSingleChar = from.type === \"Character\";\n if (isCharacter(from) && this.isRangeDash()) {\n this.consumeChar(\"-\");\n const to = this.classAtom();\n const isToSingleChar = to.type === \"Character\";\n\n // a range can only be used when both sides are single characters\n if (isCharacter(to)) {\n if (to.value < from.value) {\n throw Error(\"Range out of order in character class\");\n }\n set.push({ from: from.value, to: to.value });\n } else {\n // literal dash\n insertToSet(from.value, set);\n set.push(cc(\"-\"));\n insertToSet(to.value, set);\n }\n } else {\n insertToSet(from.value, set);\n }\n }\n\n this.consumeChar(\"]\");\n\n return { type: \"Set\", complement: complement, value: set };\n }\n\n protected classAtom(): Omit {\n switch (this.peekChar()) {\n // istanbul ignore next\n case \"]\":\n // istanbul ignore next\n case \"\\n\":\n // istanbul ignore next\n case \"\\r\":\n // istanbul ignore next\n case \"\\u2028\":\n // istanbul ignore next\n case \"\\u2029\":\n throw Error(\"TBD\");\n case \"\\\\\":\n return this.classEscape();\n default:\n return this.classPatternCharacterAtom();\n }\n }\n\n protected classEscape(): Omit {\n this.consumeChar(\"\\\\\");\n switch (this.peekChar()) {\n // Matches a backspace.\n // (Not to be confused with \\b word boundary outside characterClass)\n case \"b\":\n this.consumeChar(\"b\");\n return { type: \"Character\", value: cc(\"\\u0008\") };\n case \"d\":\n case \"D\":\n case \"s\":\n case \"S\":\n case \"w\":\n case \"W\":\n return this.characterClassEscape();\n case \"f\":\n case \"n\":\n case \"r\":\n case \"t\":\n case \"v\":\n return this.controlEscapeAtom();\n case \"c\":\n return this.controlLetterEscapeAtom();\n case \"0\":\n return this.nulCharacterAtom();\n case \"x\":\n return this.hexEscapeSequenceAtom();\n case \"u\":\n return this.regExpUnicodeEscapeSequenceAtom();\n default:\n return this.identityEscapeAtom();\n }\n }\n\n protected group(): Omit {\n let capturing = true;\n this.consumeChar(\"(\");\n switch (this.peekChar(0)) {\n case \"?\":\n this.consumeChar(\"?\");\n this.consumeChar(\":\");\n capturing = false;\n break;\n default:\n this.groupIdx++;\n break;\n }\n const value = this.disjunction();\n this.consumeChar(\")\");\n\n const groupAst: Omit = {\n type: \"Group\",\n capturing: capturing,\n value: value,\n };\n\n if (capturing) {\n groupAst[\"idx\"] = this.groupIdx;\n }\n\n return groupAst;\n }\n\n protected positiveInteger(): number {\n let number = this.popChar();\n\n // istanbul ignore next - can't ever get here due to previous lookahead checks\n // still implementing this error checking in case this ever changes.\n if (decimalPatternNoZero.test(number) === false) {\n throw Error(\"Expecting a positive integer\");\n }\n\n while (decimalPattern.test(this.peekChar(0))) {\n number += this.popChar();\n }\n\n return parseInt(number, 10);\n }\n\n protected integerIncludingZero(): number {\n let number = this.popChar();\n if (decimalPattern.test(number) === false) {\n throw Error(\"Expecting an integer\");\n }\n\n while (decimalPattern.test(this.peekChar(0))) {\n number += this.popChar();\n }\n\n return parseInt(number, 10);\n }\n\n protected patternCharacter(): Omit {\n const nextChar = this.popChar();\n switch (nextChar) {\n // istanbul ignore next\n case \"\\n\":\n // istanbul ignore next\n case \"\\r\":\n // istanbul ignore next\n case \"\\u2028\":\n // istanbul ignore next\n case \"\\u2029\":\n // istanbul ignore next\n case \"^\":\n // istanbul ignore next\n case \"$\":\n // istanbul ignore next\n case \"\\\\\":\n // istanbul ignore next\n case \".\":\n // istanbul ignore next\n case \"*\":\n // istanbul ignore next\n case \"+\":\n // istanbul ignore next\n case \"?\":\n // istanbul ignore next\n case \"(\":\n // istanbul ignore next\n case \")\":\n // istanbul ignore next\n case \"[\":\n // istanbul ignore next\n case \"|\":\n // istanbul ignore next\n throw Error(\"TBD\");\n default:\n return { type: \"Character\", value: cc(nextChar) };\n }\n }\n protected isRegExpFlag(): boolean {\n switch (this.peekChar(0)) {\n case \"g\":\n case \"i\":\n case \"m\":\n case \"u\":\n case \"y\":\n return true;\n default:\n return false;\n }\n }\n\n protected isRangeDash(): boolean {\n return this.peekChar() === \"-\" && this.isClassAtom(1);\n }\n\n protected isDigit(): boolean {\n return decimalPattern.test(this.peekChar(0));\n }\n\n protected isClassAtom(howMuch = 0): boolean {\n switch (this.peekChar(howMuch)) {\n case \"]\":\n case \"\\n\":\n case \"\\r\":\n case \"\\u2028\":\n case \"\\u2029\":\n return false;\n default:\n return true;\n }\n }\n\n protected isTerm() {\n return this.isAtom() || this.isAssertion();\n }\n\n protected isAtom(): boolean {\n if (this.isPatternCharacter()) {\n return true;\n }\n\n switch (this.peekChar(0)) {\n case \".\":\n case \"\\\\\": // atomEscape\n case \"[\": // characterClass\n // TODO: isAtom must be called before isAssertion - disambiguate\n case \"(\": // group\n return true;\n default:\n return false;\n }\n }\n\n protected isAssertion(): boolean {\n switch (this.peekChar(0)) {\n case \"^\":\n case \"$\":\n return true;\n // '\\b' or '\\B'\n case \"\\\\\":\n switch (this.peekChar(1)) {\n case \"b\":\n case \"B\":\n return true;\n default:\n return false;\n }\n // '(?=' or '(?!'\n case \"(\":\n return (\n this.peekChar(1) === \"?\" &&\n (this.peekChar(2) === \"=\" || this.peekChar(2) === \"!\")\n );\n default:\n return false;\n }\n }\n\n protected isQuantifier(): boolean {\n const prevState = this.saveState();\n try {\n return this.quantifier(true) !== undefined;\n } catch (e) {\n return false;\n } finally {\n this.restoreState(prevState);\n }\n }\n\n protected isPatternCharacter(): boolean {\n switch (this.peekChar()) {\n case \"^\":\n case \"$\":\n case \"\\\\\":\n case \".\":\n case \"*\":\n case \"+\":\n case \"?\":\n case \"(\":\n case \")\":\n case \"[\":\n case \"|\":\n case \"/\":\n case \"\\n\":\n case \"\\r\":\n case \"\\u2028\":\n case \"\\u2029\":\n return false;\n default:\n return true;\n }\n }\n\n protected parseHexDigits(howMany: number): Omit {\n let hexString = \"\";\n for (let i = 0; i < howMany; i++) {\n const hexChar = this.popChar();\n if (hexDigitPattern.test(hexChar) === false) {\n throw Error(\"Expecting a HexDecimal digits\");\n }\n hexString += hexChar;\n }\n const charCode = parseInt(hexString, 16);\n return { type: \"Character\", value: charCode };\n }\n\n protected peekChar(howMuch = 0): string {\n return this.input[this.idx + howMuch];\n }\n\n protected popChar(): string {\n const nextChar = this.peekChar(0);\n this.consumeChar(undefined);\n return nextChar;\n }\n\n protected consumeChar(char: string | undefined): void {\n if (char !== undefined && this.input[this.idx] !== char) {\n throw Error(\n \"Expected: '\" +\n char +\n \"' but found: '\" +\n this.input[this.idx] +\n \"' at offset: \" +\n this.idx,\n );\n }\n\n if (this.idx >= this.input.length) {\n throw Error(\"Unexpected end of input\");\n }\n this.idx++;\n }\n\n protected loc(begin: number): Location {\n return { begin: begin, end: this.idx };\n }\n}\n", "import type {\n Alternative,\n Assertion,\n Character,\n Disjunction,\n Group,\n GroupBackReference,\n IRegExpAST,\n Quantifier,\n RegExpAstPart,\n RegExpFlags,\n RegExpPattern,\n Set,\n} from \"../types\";\n\nexport class BaseRegExpVisitor {\n public visitChildren(node: IRegExpAST) {\n for (const key in node) {\n const child = (node as any)[key];\n /* istanbul ignore else */\n if (node.hasOwnProperty(key)) {\n if (child.type !== undefined) {\n this.visit(child);\n } else if (Array.isArray(child)) {\n child.forEach((subChild) => {\n this.visit(subChild);\n }, this);\n }\n }\n }\n }\n\n public visit(node: RegExpAstPart): void {\n switch (node.type) {\n case \"Pattern\":\n this.visitPattern(node);\n break;\n case \"Flags\":\n this.visitFlags(node);\n break;\n case \"Disjunction\":\n this.visitDisjunction(node);\n break;\n case \"Alternative\":\n this.visitAlternative(node);\n break;\n case \"StartAnchor\":\n this.visitStartAnchor(node);\n break;\n case \"EndAnchor\":\n this.visitEndAnchor(node);\n break;\n case \"WordBoundary\":\n this.visitWordBoundary(node);\n break;\n case \"NonWordBoundary\":\n this.visitNonWordBoundary(node);\n break;\n case \"Lookahead\":\n this.visitLookahead(node);\n break;\n case \"NegativeLookahead\":\n this.visitNegativeLookahead(node);\n break;\n case \"Character\":\n this.visitCharacter(node);\n break;\n case \"Set\":\n this.visitSet(node);\n break;\n case \"Group\":\n this.visitGroup(node);\n break;\n case \"GroupBackReference\":\n this.visitGroupBackReference(node);\n break;\n case \"Quantifier\":\n this.visitQuantifier(node);\n break;\n }\n\n this.visitChildren(node);\n }\n\n public visitPattern(node: RegExpPattern): void {}\n\n public visitFlags(node: RegExpFlags): void {}\n\n public visitDisjunction(node: Disjunction): void {}\n\n public visitAlternative(node: Alternative): void {}\n\n // Assertion\n public visitStartAnchor(node: Assertion): void {}\n\n public visitEndAnchor(node: Assertion): void {}\n\n public visitWordBoundary(node: Assertion): void {}\n\n public visitNonWordBoundary(node: Assertion): void {}\n\n public visitLookahead(node: Assertion): void {}\n\n public visitNegativeLookahead(node: Assertion): void {}\n\n // atoms\n public visitCharacter(node: Character): void {}\n\n public visitSet(node: Set): void {}\n\n public visitGroup(node: Group): void {}\n\n public visitGroupBackReference(node: GroupBackReference): void {}\n\n public visitQuantifier(node: Quantifier): void {}\n}\n", "/******************************************************************************\n * Copyright 2021 TypeFox GmbH\n * This program and the accompanying materials are made available under the\n * terms of the MIT License, which is available in the project root.\n ******************************************************************************/\n\nimport type { LangiumCoreServices } from '../services.js';\nimport { DefaultNameRegexp } from '../utils/cst-utils.js';\nimport { isCommentTerminal, terminalRegex } from '../utils/grammar-utils.js';\nimport { isMultilineComment } from '../utils/regexp-utils.js';\nimport { isTerminalRule } from './generated/ast.js';\n\nexport interface GrammarConfig {\n /**\n * Lists all rule names which are classified as multiline comment rules\n */\n multilineCommentRules: string[]\n /**\n * A regular expression which matches characters of names\n */\n nameRegexp: RegExp\n}\n\n/**\n * Create the default grammar configuration (used by `createDefaultModule`). This can be overridden in a\n * language-specific module.\n */\nexport function createGrammarConfig(services: LangiumCoreServices): GrammarConfig {\n const rules: string[] = [];\n const grammar = services.Grammar;\n for (const rule of grammar.rules) {\n if (isTerminalRule(rule) && isCommentTerminal(rule) && isMultilineComment(terminalRegex(rule))) {\n rules.push(rule.name);\n }\n }\n return {\n multilineCommentRules: rules,\n nameRegexp: DefaultNameRegexp\n };\n}\n", "export function PRINT_ERROR(msg: string) {\n /* istanbul ignore else - can't override global.console in node.js */\n if (console && console.error) {\n console.error(`Error: ${msg}`);\n }\n}\n\nexport function PRINT_WARNING(msg: string) {\n /* istanbul ignore else - can't override global.console in node.js*/\n if (console && console.warn) {\n // TODO: modify docs accordingly\n console.warn(`Warning: ${msg}`);\n }\n}\n", "export function timer(func: () => T): { time: number; value: T } {\n const start = new Date().getTime();\n const val = func();\n const end = new Date().getTime();\n const total = end - start;\n return { time: total, value: val };\n}\n", "// based on: https://github.com/petkaantonov/bluebird/blob/b97c0d2d487e8c5076e8bd897e0dcd4622d31846/src/util.js#L201-L216\nexport function toFastProperties(toBecomeFast: any) {\n function FakeConstructor() {}\n\n // If our object is used as a constructor, it would receive\n FakeConstructor.prototype = toBecomeFast;\n const fakeInstance = new (FakeConstructor as any)();\n\n function fakeAccess() {\n return typeof fakeInstance.bar;\n }\n\n // help V8 understand this is a \"real\" prototype by actually using\n // the fake instance.\n fakeAccess();\n fakeAccess();\n\n // Always true condition to suppress the Firefox warning of unreachable\n // code after a return statement.\n if (1) return toBecomeFast;\n\n // Eval prevents optimization of this method (even though this is dead code)\n // - https://esbuild.github.io/content-types/#direct-eval\n /* istanbul ignore next */\n // tslint:disable-next-line\n (0, eval)(toBecomeFast);\n}\n", "import { assign, forEach, isRegExp, isString, map, pickBy } from \"lodash-es\";\nimport type {\n IGASTVisitor,\n IProduction,\n IProductionWithOccurrence,\n ISerializedGast,\n TokenType,\n} from \"@chevrotain/types\";\n\n// TODO: duplicated code to avoid extracting another sub-package -- how to avoid?\nfunction tokenLabel(tokType: TokenType): string {\n if (hasTokenLabel(tokType)) {\n return tokType.LABEL;\n } else {\n return tokType.name;\n }\n}\n\n// TODO: duplicated code to avoid extracting another sub-package -- how to avoid?\nfunction hasTokenLabel(\n obj: TokenType,\n): obj is TokenType & Pick, \"LABEL\"> {\n return isString(obj.LABEL) && obj.LABEL !== \"\";\n}\n\nexport abstract class AbstractProduction\n implements IProduction\n{\n public get definition(): T[] {\n return this._definition;\n }\n public set definition(value: T[]) {\n this._definition = value;\n }\n\n constructor(protected _definition: T[]) {}\n\n accept(visitor: IGASTVisitor): void {\n visitor.visit(this);\n forEach(this.definition, (prod) => {\n prod.accept(visitor);\n });\n }\n}\n\nexport class NonTerminal\n extends AbstractProduction\n implements IProductionWithOccurrence\n{\n public nonTerminalName!: string;\n public label?: string;\n public referencedRule!: Rule;\n public idx: number = 1;\n\n constructor(options: {\n nonTerminalName: string;\n label?: string;\n referencedRule?: Rule;\n idx?: number;\n }) {\n super([]);\n assign(\n this,\n pickBy(options, (v) => v !== undefined),\n );\n }\n\n set definition(definition: IProduction[]) {\n // immutable\n }\n\n get definition(): IProduction[] {\n if (this.referencedRule !== undefined) {\n return this.referencedRule.definition;\n }\n return [];\n }\n\n accept(visitor: IGASTVisitor): void {\n visitor.visit(this);\n // don't visit children of a reference, we will get cyclic infinite loops if we do so\n }\n}\n\nexport class Rule extends AbstractProduction {\n public name!: string;\n public orgText: string = \"\";\n\n constructor(options: {\n name: string;\n definition: IProduction[];\n orgText?: string;\n }) {\n super(options.definition);\n assign(\n this,\n pickBy(options, (v) => v !== undefined),\n );\n }\n}\n\nexport class Alternative extends AbstractProduction {\n public ignoreAmbiguities: boolean = false;\n\n constructor(options: {\n definition: IProduction[];\n ignoreAmbiguities?: boolean;\n }) {\n super(options.definition);\n assign(\n this,\n pickBy(options, (v) => v !== undefined),\n );\n }\n}\n\nexport class Option\n extends AbstractProduction\n implements IProductionWithOccurrence\n{\n public idx: number = 1;\n public maxLookahead?: number;\n\n constructor(options: {\n definition: IProduction[];\n idx?: number;\n maxLookahead?: number;\n }) {\n super(options.definition);\n assign(\n this,\n pickBy(options, (v) => v !== undefined),\n );\n }\n}\n\nexport class RepetitionMandatory\n extends AbstractProduction\n implements IProductionWithOccurrence\n{\n public idx: number = 1;\n public maxLookahead?: number;\n\n constructor(options: {\n definition: IProduction[];\n idx?: number;\n maxLookahead?: number;\n }) {\n super(options.definition);\n assign(\n this,\n pickBy(options, (v) => v !== undefined),\n );\n }\n}\n\nexport class RepetitionMandatoryWithSeparator\n extends AbstractProduction\n implements IProductionWithOccurrence\n{\n public separator!: TokenType;\n public idx: number = 1;\n public maxLookahead?: number;\n\n constructor(options: {\n definition: IProduction[];\n separator: TokenType;\n idx?: number;\n }) {\n super(options.definition);\n assign(\n this,\n pickBy(options, (v) => v !== undefined),\n );\n }\n}\n\nexport class Repetition\n extends AbstractProduction\n implements IProductionWithOccurrence\n{\n public separator!: TokenType;\n public idx: number = 1;\n public maxLookahead?: number;\n\n constructor(options: {\n definition: IProduction[];\n idx?: number;\n maxLookahead?: number;\n }) {\n super(options.definition);\n assign(\n this,\n pickBy(options, (v) => v !== undefined),\n );\n }\n}\n\nexport class RepetitionWithSeparator\n extends AbstractProduction\n implements IProductionWithOccurrence\n{\n public separator!: TokenType;\n public idx: number = 1;\n public maxLookahead?: number;\n\n constructor(options: {\n definition: IProduction[];\n separator: TokenType;\n idx?: number;\n }) {\n super(options.definition);\n assign(\n this,\n pickBy(options, (v) => v !== undefined),\n );\n }\n}\n\nexport class Alternation\n extends AbstractProduction\n implements IProductionWithOccurrence\n{\n public idx: number = 1;\n public ignoreAmbiguities: boolean = false;\n public hasPredicates: boolean = false;\n public maxLookahead?: number;\n\n public get definition(): Alternative[] {\n return this._definition;\n }\n public set definition(value: Alternative[]) {\n this._definition = value;\n }\n\n constructor(options: {\n definition: Alternative[];\n idx?: number;\n ignoreAmbiguities?: boolean;\n hasPredicates?: boolean;\n maxLookahead?: number;\n }) {\n super(options.definition);\n assign(\n this,\n pickBy(options, (v) => v !== undefined),\n );\n }\n}\n\nexport class Terminal implements IProductionWithOccurrence {\n public terminalType!: TokenType;\n public label?: string;\n public idx: number = 1;\n\n constructor(options: {\n terminalType: TokenType;\n label?: string;\n idx?: number;\n }) {\n assign(\n this,\n pickBy(options, (v) => v !== undefined),\n );\n }\n\n accept(visitor: IGASTVisitor): void {\n visitor.visit(this);\n }\n}\n\nexport interface ISerializedBasic extends ISerializedGast {\n type:\n | \"Alternative\"\n | \"Option\"\n | \"RepetitionMandatory\"\n | \"Repetition\"\n | \"Alternation\";\n idx?: number;\n}\n\nexport interface ISerializedGastRule extends ISerializedGast {\n type: \"Rule\";\n name: string;\n orgText: string;\n}\n\nexport interface ISerializedNonTerminal extends ISerializedGast {\n type: \"NonTerminal\";\n name: string;\n label?: string;\n idx: number;\n}\n\nexport interface ISerializedTerminal extends ISerializedGast {\n type: \"Terminal\";\n name: string;\n terminalLabel?: string;\n label?: string;\n pattern?: string;\n idx: number;\n}\n\nexport interface ISerializedTerminalWithSeparator extends ISerializedGast {\n type: \"RepetitionMandatoryWithSeparator\" | \"RepetitionWithSeparator\";\n idx: number;\n separator: ISerializedTerminal;\n}\n\nexport type ISerializedGastAny =\n | ISerializedBasic\n | ISerializedGastRule\n | ISerializedNonTerminal\n | ISerializedTerminal\n | ISerializedTerminalWithSeparator;\n\nexport function serializeGrammar(topRules: Rule[]): ISerializedGast[] {\n return map(topRules, serializeProduction);\n}\n\nexport function serializeProduction(node: IProduction): ISerializedGast {\n function convertDefinition(definition: IProduction[]): ISerializedGast[] {\n return map(definition, serializeProduction);\n }\n /* istanbul ignore else */\n if (node instanceof NonTerminal) {\n const serializedNonTerminal: ISerializedNonTerminal = {\n type: \"NonTerminal\",\n name: node.nonTerminalName,\n idx: node.idx,\n };\n\n if (isString(node.label)) {\n serializedNonTerminal.label = node.label;\n }\n\n return serializedNonTerminal;\n } else if (node instanceof Alternative) {\n return {\n type: \"Alternative\",\n definition: convertDefinition(node.definition),\n };\n } else if (node instanceof Option) {\n return {\n type: \"Option\",\n idx: node.idx,\n definition: convertDefinition(node.definition),\n };\n } else if (node instanceof RepetitionMandatory) {\n return {\n type: \"RepetitionMandatory\",\n idx: node.idx,\n definition: convertDefinition(node.definition),\n };\n } else if (node instanceof RepetitionMandatoryWithSeparator) {\n return {\n type: \"RepetitionMandatoryWithSeparator\",\n idx: node.idx,\n separator: (\n serializeProduction(new Terminal({ terminalType: node.separator }))\n ),\n definition: convertDefinition(node.definition),\n };\n } else if (node instanceof RepetitionWithSeparator) {\n return {\n type: \"RepetitionWithSeparator\",\n idx: node.idx,\n separator: (\n serializeProduction(new Terminal({ terminalType: node.separator }))\n ),\n definition: convertDefinition(node.definition),\n };\n } else if (node instanceof Repetition) {\n return {\n type: \"Repetition\",\n idx: node.idx,\n definition: convertDefinition(node.definition),\n };\n } else if (node instanceof Alternation) {\n return {\n type: \"Alternation\",\n idx: node.idx,\n definition: convertDefinition(node.definition),\n };\n } else if (node instanceof Terminal) {\n const serializedTerminal = {\n type: \"Terminal\",\n name: node.terminalType.name,\n label: tokenLabel(node.terminalType),\n idx: node.idx,\n };\n\n if (isString(node.label)) {\n serializedTerminal.terminalLabel = node.label;\n }\n\n const pattern = node.terminalType.PATTERN;\n if (node.terminalType.PATTERN) {\n serializedTerminal.pattern = isRegExp(pattern)\n ? (pattern).source\n : pattern;\n }\n\n return serializedTerminal;\n } else if (node instanceof Rule) {\n return {\n type: \"Rule\",\n name: node.name,\n orgText: node.orgText,\n definition: convertDefinition(node.definition),\n };\n /* c8 ignore next 3 */\n } else {\n throw Error(\"non exhaustive match\");\n }\n}\n", "import {\n Alternation,\n Alternative,\n NonTerminal,\n Option,\n Repetition,\n RepetitionMandatory,\n RepetitionMandatoryWithSeparator,\n RepetitionWithSeparator,\n Rule,\n Terminal,\n} from \"./model.js\";\nimport type { IProduction } from \"@chevrotain/types\";\n\nexport abstract class GAstVisitor {\n public visit(node: IProduction): any {\n const nodeAny: any = node;\n switch (nodeAny.constructor) {\n case NonTerminal:\n return this.visitNonTerminal(nodeAny);\n case Alternative:\n return this.visitAlternative(nodeAny);\n case Option:\n return this.visitOption(nodeAny);\n case RepetitionMandatory:\n return this.visitRepetitionMandatory(nodeAny);\n case RepetitionMandatoryWithSeparator:\n return this.visitRepetitionMandatoryWithSeparator(nodeAny);\n case RepetitionWithSeparator:\n return this.visitRepetitionWithSeparator(nodeAny);\n case Repetition:\n return this.visitRepetition(nodeAny);\n case Alternation:\n return this.visitAlternation(nodeAny);\n case Terminal:\n return this.visitTerminal(nodeAny);\n case Rule:\n return this.visitRule(nodeAny);\n /* c8 ignore next 2 */\n default:\n throw Error(\"non exhaustive match\");\n }\n }\n\n /* c8 ignore next */\n public visitNonTerminal(node: NonTerminal): any {}\n\n /* c8 ignore next */\n public visitAlternative(node: Alternative): any {}\n\n /* c8 ignore next */\n public visitOption(node: Option): any {}\n\n /* c8 ignore next */\n public visitRepetition(node: Repetition): any {}\n\n /* c8 ignore next */\n public visitRepetitionMandatory(node: RepetitionMandatory): any {}\n\n /* c8 ignore next 3 */\n public visitRepetitionMandatoryWithSeparator(\n node: RepetitionMandatoryWithSeparator,\n ): any {}\n\n /* c8 ignore next */\n public visitRepetitionWithSeparator(node: RepetitionWithSeparator): any {}\n\n /* c8 ignore next */\n public visitAlternation(node: Alternation): any {}\n\n /* c8 ignore next */\n public visitTerminal(node: Terminal): any {}\n\n /* c8 ignore next */\n public visitRule(node: Rule): any {}\n}\n", "import { every, includes, some } from \"lodash-es\";\nimport {\n AbstractProduction,\n Alternation,\n Alternative,\n NonTerminal,\n Option,\n Repetition,\n RepetitionMandatory,\n RepetitionMandatoryWithSeparator,\n RepetitionWithSeparator,\n Rule,\n Terminal,\n} from \"./model.js\";\nimport type { IProduction, IProductionWithOccurrence } from \"@chevrotain/types\";\n\nexport function isSequenceProd(\n prod: IProduction,\n): prod is { definition: IProduction[] } & IProduction {\n return (\n prod instanceof Alternative ||\n prod instanceof Option ||\n prod instanceof Repetition ||\n prod instanceof RepetitionMandatory ||\n prod instanceof RepetitionMandatoryWithSeparator ||\n prod instanceof RepetitionWithSeparator ||\n prod instanceof Terminal ||\n prod instanceof Rule\n );\n}\n\nexport function isOptionalProd(\n prod: IProduction,\n alreadyVisited: NonTerminal[] = [],\n): boolean {\n const isDirectlyOptional =\n prod instanceof Option ||\n prod instanceof Repetition ||\n prod instanceof RepetitionWithSeparator;\n if (isDirectlyOptional) {\n return true;\n }\n\n // note that this can cause infinite loop if one optional empty TOP production has a cyclic dependency with another\n // empty optional top rule\n // may be indirectly optional ((A?B?C?) | (D?E?F?))\n if (prod instanceof Alternation) {\n // for OR its enough for just one of the alternatives to be optional\n return some((prod).definition, (subProd: IProduction) => {\n return isOptionalProd(subProd, alreadyVisited);\n });\n } else if (prod instanceof NonTerminal && includes(alreadyVisited, prod)) {\n // avoiding stack overflow due to infinite recursion\n return false;\n } else if (prod instanceof AbstractProduction) {\n if (prod instanceof NonTerminal) {\n alreadyVisited.push(prod);\n }\n return every(\n (prod).definition,\n (subProd: IProduction) => {\n return isOptionalProd(subProd, alreadyVisited);\n },\n );\n } else {\n return false;\n }\n}\n\nexport function isBranchingProd(\n prod: IProduction,\n): prod is { definition: IProduction[] } & IProduction {\n return prod instanceof Alternation;\n}\n\nexport function getProductionDslName(prod: IProductionWithOccurrence): string {\n /* istanbul ignore else */\n if (prod instanceof NonTerminal) {\n return \"SUBRULE\";\n } else if (prod instanceof Option) {\n return \"OPTION\";\n } else if (prod instanceof Alternation) {\n return \"OR\";\n } else if (prod instanceof RepetitionMandatory) {\n return \"AT_LEAST_ONE\";\n } else if (prod instanceof RepetitionMandatoryWithSeparator) {\n return \"AT_LEAST_ONE_SEP\";\n } else if (prod instanceof RepetitionWithSeparator) {\n return \"MANY_SEP\";\n } else if (prod instanceof Repetition) {\n return \"MANY\";\n } else if (prod instanceof Terminal) {\n return \"CONSUME\";\n /* c8 ignore next 3 */\n } else {\n throw Error(\"non exhaustive match\");\n }\n}\n", "import { drop, forEach } from \"lodash-es\";\nimport {\n Alternation,\n Alternative,\n NonTerminal,\n Option,\n Repetition,\n RepetitionMandatory,\n RepetitionMandatoryWithSeparator,\n RepetitionWithSeparator,\n Terminal,\n} from \"@chevrotain/gast\";\nimport { IProduction } from \"@chevrotain/types\";\n\n/**\n * A Grammar Walker that computes the \"remaining\" grammar \"after\" a productions in the grammar.\n */\nexport abstract class RestWalker {\n walk(prod: { definition: IProduction[] }, prevRest: any[] = []): void {\n forEach(prod.definition, (subProd: IProduction, index) => {\n const currRest = drop(prod.definition, index + 1);\n /* istanbul ignore else */\n if (subProd instanceof NonTerminal) {\n this.walkProdRef(subProd, currRest, prevRest);\n } else if (subProd instanceof Terminal) {\n this.walkTerminal(subProd, currRest, prevRest);\n } else if (subProd instanceof Alternative) {\n this.walkFlat(subProd, currRest, prevRest);\n } else if (subProd instanceof Option) {\n this.walkOption(subProd, currRest, prevRest);\n } else if (subProd instanceof RepetitionMandatory) {\n this.walkAtLeastOne(subProd, currRest, prevRest);\n } else if (subProd instanceof RepetitionMandatoryWithSeparator) {\n this.walkAtLeastOneSep(subProd, currRest, prevRest);\n } else if (subProd instanceof RepetitionWithSeparator) {\n this.walkManySep(subProd, currRest, prevRest);\n } else if (subProd instanceof Repetition) {\n this.walkMany(subProd, currRest, prevRest);\n } else if (subProd instanceof Alternation) {\n this.walkOr(subProd, currRest, prevRest);\n } else {\n throw Error(\"non exhaustive match\");\n }\n });\n }\n\n walkTerminal(\n terminal: Terminal,\n currRest: IProduction[],\n prevRest: IProduction[],\n ): void {}\n\n walkProdRef(\n refProd: NonTerminal,\n currRest: IProduction[],\n prevRest: IProduction[],\n ): void {}\n\n walkFlat(\n flatProd: Alternative,\n currRest: IProduction[],\n prevRest: IProduction[],\n ): void {\n // ABCDEF => after the D the rest is EF\n const fullOrRest = currRest.concat(prevRest);\n this.walk(flatProd, fullOrRest);\n }\n\n walkOption(\n optionProd: Option,\n currRest: IProduction[],\n prevRest: IProduction[],\n ): void {\n // ABC(DE)?F => after the (DE)? the rest is F\n const fullOrRest = currRest.concat(prevRest);\n this.walk(optionProd, fullOrRest);\n }\n\n walkAtLeastOne(\n atLeastOneProd: RepetitionMandatory,\n currRest: IProduction[],\n prevRest: IProduction[],\n ): void {\n // ABC(DE)+F => after the (DE)+ the rest is (DE)?F\n const fullAtLeastOneRest: IProduction[] = [\n new Option({ definition: atLeastOneProd.definition }),\n ].concat(currRest, prevRest);\n this.walk(atLeastOneProd, fullAtLeastOneRest);\n }\n\n walkAtLeastOneSep(\n atLeastOneSepProd: RepetitionMandatoryWithSeparator,\n currRest: IProduction[],\n prevRest: IProduction[],\n ): void {\n // ABC DE(,DE)* F => after the (,DE)+ the rest is (,DE)?F\n const fullAtLeastOneSepRest = restForRepetitionWithSeparator(\n atLeastOneSepProd,\n currRest,\n prevRest,\n );\n this.walk(atLeastOneSepProd, fullAtLeastOneSepRest);\n }\n\n walkMany(\n manyProd: Repetition,\n currRest: IProduction[],\n prevRest: IProduction[],\n ): void {\n // ABC(DE)*F => after the (DE)* the rest is (DE)?F\n const fullManyRest: IProduction[] = [\n new Option({ definition: manyProd.definition }),\n ].concat(currRest, prevRest);\n this.walk(manyProd, fullManyRest);\n }\n\n walkManySep(\n manySepProd: RepetitionWithSeparator,\n currRest: IProduction[],\n prevRest: IProduction[],\n ): void {\n // ABC (DE(,DE)*)? F => after the (,DE)* the rest is (,DE)?F\n const fullManySepRest = restForRepetitionWithSeparator(\n manySepProd,\n currRest,\n prevRest,\n );\n this.walk(manySepProd, fullManySepRest);\n }\n\n walkOr(\n orProd: Alternation,\n currRest: IProduction[],\n prevRest: IProduction[],\n ): void {\n // ABC(D|E|F)G => when finding the (D|E|F) the rest is G\n const fullOrRest = currRest.concat(prevRest);\n // walk all different alternatives\n forEach(orProd.definition, (alt) => {\n // wrapping each alternative in a single definition wrapper\n // to avoid errors in computing the rest of that alternative in the invocation to computeInProdFollows\n // (otherwise for OR([alt1,alt2]) alt2 will be considered in 'rest' of alt1\n const prodWrapper = new Alternative({ definition: [alt] });\n this.walk(prodWrapper, fullOrRest);\n });\n }\n}\n\nfunction restForRepetitionWithSeparator(\n repSepProd: RepetitionWithSeparator,\n currRest: IProduction[],\n prevRest: IProduction[],\n) {\n const repSepRest = [\n new Option({\n definition: [\n new Terminal({ terminalType: repSepProd.separator }) as IProduction,\n ].concat(repSepProd.definition),\n }) as IProduction,\n ];\n const fullRepSepRest: IProduction[] = repSepRest.concat(currRest, prevRest);\n return fullRepSepRest;\n}\n", "import { flatten, map, uniq } from \"lodash-es\";\nimport {\n isBranchingProd,\n isOptionalProd,\n isSequenceProd,\n NonTerminal,\n Terminal,\n} from \"@chevrotain/gast\";\nimport { IProduction, TokenType } from \"@chevrotain/types\";\n\nexport function first(prod: IProduction): TokenType[] {\n /* istanbul ignore else */\n if (prod instanceof NonTerminal) {\n // this could in theory cause infinite loops if\n // (1) prod A refs prod B.\n // (2) prod B refs prod A\n // (3) AB can match the empty set\n // in other words a cycle where everything is optional so the first will keep\n // looking ahead for the next optional part and will never exit\n // currently there is no safeguard for this unique edge case because\n // (1) not sure a grammar in which this can happen is useful for anything (productive)\n return first((prod).referencedRule);\n } else if (prod instanceof Terminal) {\n return firstForTerminal(prod);\n } else if (isSequenceProd(prod)) {\n return firstForSequence(prod);\n } else if (isBranchingProd(prod)) {\n return firstForBranching(prod);\n } else {\n throw Error(\"non exhaustive match\");\n }\n}\n\nexport function firstForSequence(prod: {\n definition: IProduction[];\n}): TokenType[] {\n let firstSet: TokenType[] = [];\n const seq = prod.definition;\n let nextSubProdIdx = 0;\n let hasInnerProdsRemaining = seq.length > nextSubProdIdx;\n let currSubProd;\n // so we enter the loop at least once (if the definition is not empty\n let isLastInnerProdOptional = true;\n // scan a sequence until it's end or until we have found a NONE optional production in it\n while (hasInnerProdsRemaining && isLastInnerProdOptional) {\n currSubProd = seq[nextSubProdIdx];\n isLastInnerProdOptional = isOptionalProd(currSubProd);\n firstSet = firstSet.concat(first(currSubProd));\n nextSubProdIdx = nextSubProdIdx + 1;\n hasInnerProdsRemaining = seq.length > nextSubProdIdx;\n }\n\n return uniq(firstSet);\n}\n\nexport function firstForBranching(prod: {\n definition: IProduction[];\n}): TokenType[] {\n const allAlternativesFirsts: TokenType[][] = map(\n prod.definition,\n (innerProd) => {\n return first(innerProd);\n },\n );\n return uniq(flatten(allAlternativesFirsts));\n}\n\nexport function firstForTerminal(terminal: Terminal): TokenType[] {\n return [terminal.terminalType];\n}\n", "// TODO: can this be removed? where is it used?\nexport const IN = \"_~IN~_\";\n", "import { RestWalker } from \"./rest.js\";\nimport { first } from \"./first.js\";\nimport { assign, forEach } from \"lodash-es\";\nimport { IN } from \"../constants.js\";\nimport { Alternative, NonTerminal, Rule, Terminal } from \"@chevrotain/gast\";\nimport { IProduction, TokenType } from \"@chevrotain/types\";\n\n// This ResyncFollowsWalker computes all of the follows required for RESYNC\n// (skipping reference production).\nexport class ResyncFollowsWalker extends RestWalker {\n public follows: Record = {};\n\n constructor(private topProd: Rule) {\n super();\n }\n\n startWalking(): Record {\n this.walk(this.topProd);\n return this.follows;\n }\n\n walkTerminal(\n terminal: Terminal,\n currRest: IProduction[],\n prevRest: IProduction[],\n ): void {\n // do nothing! just like in the public sector after 13:00\n }\n\n walkProdRef(\n refProd: NonTerminal,\n currRest: IProduction[],\n prevRest: IProduction[],\n ): void {\n const followName =\n buildBetweenProdsFollowPrefix(refProd.referencedRule, refProd.idx) +\n this.topProd.name;\n const fullRest: IProduction[] = currRest.concat(prevRest);\n const restProd = new Alternative({ definition: fullRest });\n const t_in_topProd_follows = first(restProd);\n this.follows[followName] = t_in_topProd_follows;\n }\n}\n\nexport function computeAllProdsFollows(\n topProductions: Rule[],\n): Record {\n const reSyncFollows = {};\n\n forEach(topProductions, (topProd) => {\n const currRefsFollow = new ResyncFollowsWalker(topProd).startWalking();\n assign(reSyncFollows, currRefsFollow);\n });\n return reSyncFollows;\n}\n\nexport function buildBetweenProdsFollowPrefix(\n inner: Rule,\n occurenceInParent: number,\n): string {\n return inner.name + occurenceInParent + IN;\n}\n\nexport function buildInProdFollowPrefix(terminal: Terminal): string {\n const terminalName = terminal.terminalType.name;\n return terminalName + terminal.idx + IN;\n}\n", "import {\n Alternative,\n Assertion,\n Atom,\n Disjunction,\n RegExpParser,\n RegExpPattern,\n} from \"@chevrotain/regexp-to-ast\";\n\nlet regExpAstCache: { [regex: string]: RegExpPattern } = {};\nconst regExpParser = new RegExpParser();\n\n// this should be moved to regexp-to-ast\nexport type ASTNode =\n | RegExpPattern\n | Disjunction\n | Alternative\n | Assertion\n | Atom;\n\nexport function getRegExpAst(regExp: RegExp): RegExpPattern {\n const regExpStr = regExp.toString();\n if (regExpAstCache.hasOwnProperty(regExpStr)) {\n return regExpAstCache[regExpStr];\n } else {\n const regExpAst = regExpParser.pattern(regExpStr);\n regExpAstCache[regExpStr] = regExpAst;\n return regExpAst;\n }\n}\n\nexport function clearRegExpParserCache() {\n regExpAstCache = {};\n}\n", "import {\n Alternative,\n Atom,\n BaseRegExpVisitor,\n Character,\n Disjunction,\n Group,\n Set,\n} from \"@chevrotain/regexp-to-ast\";\nimport { every, find, forEach, includes, isArray, values } from \"lodash-es\";\nimport { PRINT_ERROR, PRINT_WARNING } from \"@chevrotain/utils\";\nimport { ASTNode, getRegExpAst } from \"./reg_exp_parser.js\";\nimport { charCodeToOptimizedIndex, minOptimizationVal } from \"./lexer.js\";\n\nconst complementErrorMessage =\n \"Complement Sets are not supported for first char optimization\";\nexport const failedOptimizationPrefixMsg =\n 'Unable to use \"first char\" lexer optimizations:\\n';\n\nexport function getOptimizedStartCodesIndices(\n regExp: RegExp,\n ensureOptimizations = false,\n): number[] {\n try {\n const ast = getRegExpAst(regExp);\n const firstChars = firstCharOptimizedIndices(\n ast.value,\n {},\n ast.flags.ignoreCase,\n );\n return firstChars;\n } catch (e) {\n /* istanbul ignore next */\n // Testing this relies on the regexp-to-ast library having a bug... */\n // TODO: only the else branch needs to be ignored, try to fix with newer prettier / tsc\n if (e.message === complementErrorMessage) {\n if (ensureOptimizations) {\n PRINT_WARNING(\n `${failedOptimizationPrefixMsg}` +\n `\\tUnable to optimize: < ${regExp.toString()} >\\n` +\n \"\\tComplement Sets cannot be automatically optimized.\\n\" +\n \"\\tThis will disable the lexer's first char optimizations.\\n\" +\n \"\\tSee: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#COMPLEMENT for details.\",\n );\n }\n } else {\n let msgSuffix = \"\";\n if (ensureOptimizations) {\n msgSuffix =\n \"\\n\\tThis will disable the lexer's first char optimizations.\\n\" +\n \"\\tSee: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#REGEXP_PARSING for details.\";\n }\n PRINT_ERROR(\n `${failedOptimizationPrefixMsg}\\n` +\n `\\tFailed parsing: < ${regExp.toString()} >\\n` +\n `\\tUsing the @chevrotain/regexp-to-ast library\\n` +\n \"\\tPlease open an issue at: https://github.com/chevrotain/chevrotain/issues\" +\n msgSuffix,\n );\n }\n }\n\n return [];\n}\n\nexport function firstCharOptimizedIndices(\n ast: ASTNode,\n result: { [charCode: number]: number },\n ignoreCase: boolean,\n): number[] {\n switch (ast.type) {\n case \"Disjunction\":\n for (let i = 0; i < ast.value.length; i++) {\n firstCharOptimizedIndices(ast.value[i], result, ignoreCase);\n }\n break;\n case \"Alternative\":\n const terms = ast.value;\n for (let i = 0; i < terms.length; i++) {\n const term = terms[i];\n\n // skip terms that cannot effect the first char results\n switch (term.type) {\n case \"EndAnchor\":\n // A group back reference cannot affect potential starting char.\n // because if a back reference is the first production than automatically\n // the group being referenced has had to come BEFORE so its codes have already been added\n case \"GroupBackReference\":\n // assertions do not affect potential starting codes\n case \"Lookahead\":\n case \"NegativeLookahead\":\n case \"StartAnchor\":\n case \"WordBoundary\":\n case \"NonWordBoundary\":\n continue;\n }\n\n const atom = term;\n switch (atom.type) {\n case \"Character\":\n addOptimizedIdxToResult(atom.value, result, ignoreCase);\n break;\n case \"Set\":\n if (atom.complement === true) {\n throw Error(complementErrorMessage);\n }\n forEach(atom.value, (code) => {\n if (typeof code === \"number\") {\n addOptimizedIdxToResult(code, result, ignoreCase);\n } else {\n // range\n const range = code as any;\n // cannot optimize when ignoreCase is\n if (ignoreCase === true) {\n for (\n let rangeCode = range.from;\n rangeCode <= range.to;\n rangeCode++\n ) {\n addOptimizedIdxToResult(rangeCode, result, ignoreCase);\n }\n }\n // Optimization (2 orders of magnitude less work for very large ranges)\n else {\n // handle unoptimized values\n for (\n let rangeCode = range.from;\n rangeCode <= range.to && rangeCode < minOptimizationVal;\n rangeCode++\n ) {\n addOptimizedIdxToResult(rangeCode, result, ignoreCase);\n }\n\n // Less common charCode where we optimize for faster init time, by using larger \"buckets\"\n if (range.to >= minOptimizationVal) {\n const minUnOptVal =\n range.from >= minOptimizationVal\n ? range.from\n : minOptimizationVal;\n const maxUnOptVal = range.to;\n const minOptIdx = charCodeToOptimizedIndex(minUnOptVal);\n const maxOptIdx = charCodeToOptimizedIndex(maxUnOptVal);\n\n for (\n let currOptIdx = minOptIdx;\n currOptIdx <= maxOptIdx;\n currOptIdx++\n ) {\n result[currOptIdx] = currOptIdx;\n }\n }\n }\n }\n });\n break;\n case \"Group\":\n firstCharOptimizedIndices(atom.value, result, ignoreCase);\n break;\n /* istanbul ignore next */\n default:\n throw Error(\"Non Exhaustive Match\");\n }\n\n // reached a mandatory production, no more **start** codes can be found on this alternative\n const isOptionalQuantifier =\n atom.quantifier !== undefined && atom.quantifier.atLeast === 0;\n if (\n // A group may be optional due to empty contents /(?:)/\n // or if everything inside it is optional /((a)?)/\n (atom.type === \"Group\" && isWholeOptional(atom) === false) ||\n // If this term is not a group it may only be optional if it has an optional quantifier\n (atom.type !== \"Group\" && isOptionalQuantifier === false)\n ) {\n break;\n }\n }\n break;\n /* istanbul ignore next */\n default:\n throw Error(\"non exhaustive match!\");\n }\n\n // console.log(Object.keys(result).length)\n return values(result);\n}\n\nfunction addOptimizedIdxToResult(\n code: number,\n result: { [charCode: number]: number },\n ignoreCase: boolean,\n) {\n const optimizedCharIdx = charCodeToOptimizedIndex(code);\n result[optimizedCharIdx] = optimizedCharIdx;\n\n if (ignoreCase === true) {\n handleIgnoreCase(code, result);\n }\n}\n\nfunction handleIgnoreCase(\n code: number,\n result: { [charCode: number]: number },\n) {\n const char = String.fromCharCode(code);\n const upperChar = char.toUpperCase();\n /* istanbul ignore else */\n if (upperChar !== char) {\n const optimizedCharIdx = charCodeToOptimizedIndex(upperChar.charCodeAt(0));\n result[optimizedCharIdx] = optimizedCharIdx;\n } else {\n const lowerChar = char.toLowerCase();\n if (lowerChar !== char) {\n const optimizedCharIdx = charCodeToOptimizedIndex(\n lowerChar.charCodeAt(0),\n );\n result[optimizedCharIdx] = optimizedCharIdx;\n }\n }\n}\n\nfunction findCode(setNode: Set, targetCharCodes: number[]) {\n return find(setNode.value, (codeOrRange) => {\n if (typeof codeOrRange === \"number\") {\n return includes(targetCharCodes, codeOrRange);\n } else {\n // range\n const range = codeOrRange;\n return (\n find(\n targetCharCodes,\n (targetCode) => range.from <= targetCode && targetCode <= range.to,\n ) !== undefined\n );\n }\n });\n}\n\nfunction isWholeOptional(ast: any): boolean {\n const quantifier = (ast as Atom).quantifier;\n if (quantifier && quantifier.atLeast === 0) {\n return true;\n }\n\n if (!ast.value) {\n return false;\n }\n\n return isArray(ast.value)\n ? every(ast.value, isWholeOptional)\n : isWholeOptional(ast.value);\n}\n\nclass CharCodeFinder extends BaseRegExpVisitor {\n found: boolean = false;\n\n constructor(private targetCharCodes: number[]) {\n super();\n }\n\n visitChildren(node: ASTNode) {\n // No need to keep looking...\n if (this.found === true) {\n return;\n }\n\n // switch lookaheads as they do not actually consume any characters thus\n // finding a charCode at lookahead context does not mean that regexp can actually contain it in a match.\n switch (node.type) {\n case \"Lookahead\":\n this.visitLookahead(node);\n return;\n case \"NegativeLookahead\":\n this.visitNegativeLookahead(node);\n return;\n }\n\n super.visitChildren(node);\n }\n\n visitCharacter(node: Character) {\n if (includes(this.targetCharCodes, node.value)) {\n this.found = true;\n }\n }\n\n visitSet(node: Set) {\n if (node.complement) {\n if (findCode(node, this.targetCharCodes) === undefined) {\n this.found = true;\n }\n } else {\n if (findCode(node, this.targetCharCodes) !== undefined) {\n this.found = true;\n }\n }\n }\n}\n\nexport function canMatchCharCode(\n charCodes: number[],\n pattern: RegExp | string,\n) {\n if (pattern instanceof RegExp) {\n const ast = getRegExpAst(pattern);\n const charCodeFinder = new CharCodeFinder(charCodes);\n charCodeFinder.visit(ast);\n return charCodeFinder.found;\n } else {\n return (\n find(pattern, (char) => {\n return includes(charCodes, (char).charCodeAt(0));\n }) !== undefined\n );\n }\n}\n", "import { BaseRegExpVisitor } from \"@chevrotain/regexp-to-ast\";\nimport {\n IRegExpExec,\n Lexer,\n LexerDefinitionErrorType,\n} from \"./lexer_public.js\";\nimport {\n compact,\n defaults,\n difference,\n filter,\n find,\n first,\n flatten,\n forEach,\n has,\n includes,\n indexOf,\n isArray,\n isEmpty,\n isFunction,\n isRegExp,\n isString,\n isUndefined,\n keys,\n map,\n reduce,\n reject,\n values,\n} from \"lodash-es\";\nimport { PRINT_ERROR } from \"@chevrotain/utils\";\nimport {\n canMatchCharCode,\n failedOptimizationPrefixMsg,\n getOptimizedStartCodesIndices,\n} from \"./reg_exp.js\";\nimport {\n ILexerDefinitionError,\n ILineTerminatorsTester,\n IMultiModeLexerDefinition,\n IToken,\n TokenType,\n} from \"@chevrotain/types\";\nimport { getRegExpAst } from \"./reg_exp_parser.js\";\n\nconst PATTERN = \"PATTERN\";\nexport const DEFAULT_MODE = \"defaultMode\";\nexport const MODES = \"modes\";\n\nexport interface IPatternConfig {\n pattern: IRegExpExec | string;\n longerAlt: number[] | undefined;\n canLineTerminator: boolean;\n isCustom: boolean;\n short: number | false;\n group: string | undefined | false;\n push: string | undefined;\n pop: boolean;\n tokenType: TokenType;\n tokenTypeIdx: number;\n}\n\nexport interface IAnalyzeResult {\n patternIdxToConfig: IPatternConfig[];\n charCodeToPatternIdxToConfig: { [charCode: number]: IPatternConfig[] };\n emptyGroups: { [groupName: string]: IToken[] };\n hasCustom: boolean;\n canBeOptimized: boolean;\n}\n\nexport let SUPPORT_STICKY =\n typeof (new RegExp(\"(?:)\")).sticky === \"boolean\";\n\nexport function disableSticky() {\n SUPPORT_STICKY = false;\n}\n\nexport function enableSticky() {\n SUPPORT_STICKY = true;\n}\n\nexport function analyzeTokenTypes(\n tokenTypes: TokenType[],\n options: {\n positionTracking?: \"full\" | \"onlyStart\" | \"onlyOffset\";\n ensureOptimizations?: boolean;\n lineTerminatorCharacters?: (number | string)[];\n // TODO: should `useSticky` be an argument here?\n useSticky?: boolean;\n safeMode?: boolean;\n tracer?: (msg: string, action: () => void) => void;\n },\n): IAnalyzeResult {\n options = defaults(options, {\n useSticky: SUPPORT_STICKY,\n debug: false as boolean,\n safeMode: false as boolean,\n positionTracking: \"full\",\n lineTerminatorCharacters: [\"\\r\", \"\\n\"],\n tracer: (msg: string, action: Function) => action(),\n });\n\n const tracer = options.tracer!;\n\n tracer(\"initCharCodeToOptimizedIndexMap\", () => {\n initCharCodeToOptimizedIndexMap();\n });\n\n let onlyRelevantTypes: TokenType[];\n tracer(\"Reject Lexer.NA\", () => {\n onlyRelevantTypes = reject(tokenTypes, (currType) => {\n return currType[PATTERN] === Lexer.NA;\n });\n });\n\n let hasCustom = false;\n let allTransformedPatterns: (IRegExpExec | string)[];\n tracer(\"Transform Patterns\", () => {\n hasCustom = false;\n allTransformedPatterns = map(\n onlyRelevantTypes,\n (currType): IRegExpExec | string => {\n const currPattern = currType[PATTERN];\n\n /* istanbul ignore else */\n if (isRegExp(currPattern)) {\n const regExpSource = currPattern.source;\n if (\n regExpSource.length === 1 &&\n // only these regExp meta characters which can appear in a length one regExp\n regExpSource !== \"^\" &&\n regExpSource !== \"$\" &&\n regExpSource !== \".\" &&\n !currPattern.ignoreCase\n ) {\n return regExpSource;\n } else if (\n regExpSource.length === 2 &&\n regExpSource[0] === \"\\\\\" &&\n // not a meta character\n !includes(\n [\n \"d\",\n \"D\",\n \"s\",\n \"S\",\n \"t\",\n \"r\",\n \"n\",\n \"t\",\n \"0\",\n \"c\",\n \"b\",\n \"B\",\n \"f\",\n \"v\",\n \"w\",\n \"W\",\n ],\n regExpSource[1],\n )\n ) {\n // escaped meta Characters: /\\+/ /\\[/\n // or redundant escaping: /\\a/\n // without the escaping \"\\\"\n return regExpSource[1];\n } else {\n return options.useSticky\n ? addStickyFlag(currPattern)\n : addStartOfInput(currPattern);\n }\n } else if (isFunction(currPattern)) {\n hasCustom = true;\n // CustomPatternMatcherFunc - custom patterns do not require any transformations, only wrapping in a RegExp Like object\n return { exec: currPattern };\n } else if (typeof currPattern === \"object\") {\n hasCustom = true;\n // ICustomPattern\n return currPattern;\n } else if (typeof currPattern === \"string\") {\n if (currPattern.length === 1) {\n return currPattern;\n } else {\n const escapedRegExpString = currPattern.replace(\n /[\\\\^$.*+?()[\\]{}|]/g,\n \"\\\\$&\",\n );\n const wrappedRegExp = new RegExp(escapedRegExpString);\n return options.useSticky\n ? addStickyFlag(wrappedRegExp)\n : addStartOfInput(wrappedRegExp);\n }\n } else {\n throw Error(\"non exhaustive match\");\n }\n },\n );\n });\n\n let patternIdxToType: number[];\n let patternIdxToGroup: (string | undefined | false)[];\n let patternIdxToLongerAltIdxArr: (number[] | undefined)[];\n let patternIdxToPushMode: (string | undefined)[];\n let patternIdxToPopMode: boolean[];\n tracer(\"misc mapping\", () => {\n patternIdxToType = map(\n onlyRelevantTypes,\n (currType) => currType.tokenTypeIdx!,\n );\n\n patternIdxToGroup = map(onlyRelevantTypes, (clazz: any) => {\n const groupName = clazz.GROUP;\n /* istanbul ignore next */\n if (groupName === Lexer.SKIPPED) {\n return undefined;\n } else if (isString(groupName)) {\n return groupName;\n } else if (isUndefined(groupName)) {\n return false;\n } else {\n throw Error(\"non exhaustive match\");\n }\n });\n\n patternIdxToLongerAltIdxArr = map(onlyRelevantTypes, (clazz: any) => {\n const longerAltType = clazz.LONGER_ALT;\n\n if (longerAltType) {\n const longerAltIdxArr = isArray(longerAltType)\n ? map(longerAltType, (type: any) => indexOf(onlyRelevantTypes, type))\n : [indexOf(onlyRelevantTypes, longerAltType)];\n return longerAltIdxArr;\n }\n });\n\n patternIdxToPushMode = map(\n onlyRelevantTypes,\n (clazz: any) => clazz.PUSH_MODE,\n );\n\n patternIdxToPopMode = map(onlyRelevantTypes, (clazz: any) =>\n has(clazz, \"POP_MODE\"),\n );\n });\n\n let patternIdxToCanLineTerminator: boolean[];\n tracer(\"Line Terminator Handling\", () => {\n const lineTerminatorCharCodes = getCharCodes(\n options.lineTerminatorCharacters!,\n );\n patternIdxToCanLineTerminator = map(onlyRelevantTypes, (tokType) => false);\n if (options.positionTracking !== \"onlyOffset\") {\n patternIdxToCanLineTerminator = map(onlyRelevantTypes, (tokType) => {\n if (has(tokType, \"LINE_BREAKS\")) {\n return !!tokType.LINE_BREAKS;\n } else {\n return (\n checkLineBreaksIssues(tokType, lineTerminatorCharCodes) === false &&\n canMatchCharCode(\n lineTerminatorCharCodes,\n tokType.PATTERN as RegExp | string,\n )\n );\n }\n });\n }\n });\n\n let patternIdxToIsCustom: boolean[];\n let patternIdxToShort: (number | false)[];\n let emptyGroups!: { [groupName: string]: IToken[] };\n let patternIdxToConfig!: IPatternConfig[];\n tracer(\"Misc Mapping #2\", () => {\n patternIdxToIsCustom = map(onlyRelevantTypes, isCustomPattern);\n patternIdxToShort = map(allTransformedPatterns, isShortPattern);\n\n emptyGroups = reduce(\n onlyRelevantTypes,\n (acc, clazz: any) => {\n const groupName = clazz.GROUP;\n if (isString(groupName) && !(groupName === Lexer.SKIPPED)) {\n acc[groupName] = [];\n }\n return acc;\n },\n {} as { [groupName: string]: IToken[] },\n );\n\n patternIdxToConfig = map(\n allTransformedPatterns,\n (x, idx): IPatternConfig => {\n return {\n pattern: allTransformedPatterns[idx],\n longerAlt: patternIdxToLongerAltIdxArr[idx],\n canLineTerminator: patternIdxToCanLineTerminator[idx],\n isCustom: patternIdxToIsCustom[idx],\n short: patternIdxToShort[idx],\n group: patternIdxToGroup[idx],\n push: patternIdxToPushMode[idx],\n pop: patternIdxToPopMode[idx],\n tokenTypeIdx: patternIdxToType[idx],\n tokenType: onlyRelevantTypes[idx],\n };\n },\n );\n });\n\n let canBeOptimized = true;\n let charCodeToPatternIdxToConfig: { [charCode: number]: IPatternConfig[] } =\n [];\n\n if (!options.safeMode) {\n tracer(\"First Char Optimization\", () => {\n charCodeToPatternIdxToConfig = reduce(\n onlyRelevantTypes,\n (result, currTokType, idx) => {\n if (typeof currTokType.PATTERN === \"string\") {\n const charCode = currTokType.PATTERN.charCodeAt(0);\n const optimizedIdx = charCodeToOptimizedIndex(charCode);\n addToMapOfArrays(result, optimizedIdx, patternIdxToConfig[idx]);\n } else if (isArray(currTokType.START_CHARS_HINT)) {\n let lastOptimizedIdx: number;\n forEach(currTokType.START_CHARS_HINT, (charOrInt) => {\n const charCode =\n typeof charOrInt === \"string\"\n ? charOrInt.charCodeAt(0)\n : charOrInt;\n const currOptimizedIdx = charCodeToOptimizedIndex(charCode);\n // Avoid adding the config multiple times\n /* istanbul ignore else */\n // - Difficult to check this scenario effects as it is only a performance\n // optimization that does not change correctness\n if (lastOptimizedIdx !== currOptimizedIdx) {\n lastOptimizedIdx = currOptimizedIdx;\n addToMapOfArrays(\n result,\n currOptimizedIdx,\n patternIdxToConfig[idx],\n );\n }\n });\n } else if (isRegExp(currTokType.PATTERN)) {\n if (currTokType.PATTERN.unicode) {\n canBeOptimized = false;\n if (options.ensureOptimizations) {\n PRINT_ERROR(\n `${failedOptimizationPrefixMsg}` +\n `\\tUnable to analyze < ${currTokType.PATTERN.toString()} > pattern.\\n` +\n \"\\tThe regexp unicode flag is not currently supported by the regexp-to-ast library.\\n\" +\n \"\\tThis will disable the lexer's first char optimizations.\\n\" +\n \"\\tFor details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNICODE_OPTIMIZE\",\n );\n }\n } else {\n const optimizedCodes = getOptimizedStartCodesIndices(\n currTokType.PATTERN,\n options.ensureOptimizations,\n );\n /* istanbul ignore if */\n // start code will only be empty given an empty regExp or failure of regexp-to-ast library\n // the first should be a different validation and the second cannot be tested.\n if (isEmpty(optimizedCodes)) {\n // we cannot understand what codes may start possible matches\n // The optimization correctness requires knowing start codes for ALL patterns.\n // Not actually sure this is an error, no debug message\n canBeOptimized = false;\n }\n forEach(optimizedCodes, (code) => {\n addToMapOfArrays(result, code, patternIdxToConfig[idx]);\n });\n }\n } else {\n if (options.ensureOptimizations) {\n PRINT_ERROR(\n `${failedOptimizationPrefixMsg}` +\n `\\tTokenType: <${currTokType.name}> is using a custom token pattern without providing parameter.\\n` +\n \"\\tThis will disable the lexer's first char optimizations.\\n\" +\n \"\\tFor details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_OPTIMIZE\",\n );\n }\n canBeOptimized = false;\n }\n\n return result;\n },\n [] as { [charCode: number]: IPatternConfig[] },\n );\n });\n }\n\n return {\n emptyGroups: emptyGroups,\n patternIdxToConfig: patternIdxToConfig,\n charCodeToPatternIdxToConfig: charCodeToPatternIdxToConfig,\n hasCustom: hasCustom,\n canBeOptimized: canBeOptimized,\n };\n}\n\nexport function validatePatterns(\n tokenTypes: TokenType[],\n validModesNames: string[],\n): ILexerDefinitionError[] {\n let errors: ILexerDefinitionError[] = [];\n\n const missingResult = findMissingPatterns(tokenTypes);\n errors = errors.concat(missingResult.errors);\n\n const invalidResult = findInvalidPatterns(missingResult.valid);\n const validTokenTypes = invalidResult.valid;\n errors = errors.concat(invalidResult.errors);\n\n errors = errors.concat(validateRegExpPattern(validTokenTypes));\n\n errors = errors.concat(findInvalidGroupType(validTokenTypes));\n\n errors = errors.concat(\n findModesThatDoNotExist(validTokenTypes, validModesNames),\n );\n\n errors = errors.concat(findUnreachablePatterns(validTokenTypes));\n\n return errors;\n}\n\nfunction validateRegExpPattern(\n tokenTypes: TokenType[],\n): ILexerDefinitionError[] {\n let errors: ILexerDefinitionError[] = [];\n const withRegExpPatterns = filter(tokenTypes, (currTokType) =>\n isRegExp(currTokType[PATTERN]),\n );\n\n errors = errors.concat(findEndOfInputAnchor(withRegExpPatterns));\n\n errors = errors.concat(findStartOfInputAnchor(withRegExpPatterns));\n\n errors = errors.concat(findUnsupportedFlags(withRegExpPatterns));\n\n errors = errors.concat(findDuplicatePatterns(withRegExpPatterns));\n\n errors = errors.concat(findEmptyMatchRegExps(withRegExpPatterns));\n\n return errors;\n}\n\nexport interface ILexerFilterResult {\n errors: ILexerDefinitionError[];\n valid: TokenType[];\n}\n\nexport function findMissingPatterns(\n tokenTypes: TokenType[],\n): ILexerFilterResult {\n const tokenTypesWithMissingPattern = filter(tokenTypes, (currType) => {\n return !has(currType, PATTERN);\n });\n\n const errors = map(tokenTypesWithMissingPattern, (currType) => {\n return {\n message:\n \"Token Type: ->\" +\n currType.name +\n \"<- missing static 'PATTERN' property\",\n type: LexerDefinitionErrorType.MISSING_PATTERN,\n tokenTypes: [currType],\n };\n });\n\n const valid = difference(tokenTypes, tokenTypesWithMissingPattern);\n return { errors, valid };\n}\n\nexport function findInvalidPatterns(\n tokenTypes: TokenType[],\n): ILexerFilterResult {\n const tokenTypesWithInvalidPattern = filter(tokenTypes, (currType) => {\n const pattern = currType[PATTERN];\n return (\n !isRegExp(pattern) &&\n !isFunction(pattern) &&\n !has(pattern, \"exec\") &&\n !isString(pattern)\n );\n });\n\n const errors = map(tokenTypesWithInvalidPattern, (currType) => {\n return {\n message:\n \"Token Type: ->\" +\n currType.name +\n \"<- static 'PATTERN' can only be a RegExp, a\" +\n \" Function matching the {CustomPatternMatcherFunc} type or an Object matching the {ICustomPattern} interface.\",\n type: LexerDefinitionErrorType.INVALID_PATTERN,\n tokenTypes: [currType],\n };\n });\n\n const valid = difference(tokenTypes, tokenTypesWithInvalidPattern);\n return { errors, valid };\n}\n\nconst end_of_input = /[^\\\\][$]/;\n\nexport function findEndOfInputAnchor(\n tokenTypes: TokenType[],\n): ILexerDefinitionError[] {\n class EndAnchorFinder extends BaseRegExpVisitor {\n found = false;\n\n visitEndAnchor(node: unknown) {\n this.found = true;\n }\n }\n\n const invalidRegex = filter(tokenTypes, (currType) => {\n const pattern = currType.PATTERN;\n\n try {\n const regexpAst = getRegExpAst(pattern as RegExp);\n const endAnchorVisitor = new EndAnchorFinder();\n endAnchorVisitor.visit(regexpAst);\n\n return endAnchorVisitor.found;\n } catch (e) {\n // old behavior in case of runtime exceptions with regexp-to-ast.\n /* istanbul ignore next - cannot ensure an error in regexp-to-ast*/\n return end_of_input.test((pattern as RegExp).source);\n }\n });\n\n const errors = map(invalidRegex, (currType) => {\n return {\n message:\n \"Unexpected RegExp Anchor Error:\\n\" +\n \"\\tToken Type: ->\" +\n currType.name +\n \"<- static 'PATTERN' cannot contain end of input anchor '$'\\n\" +\n \"\\tSee chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS\" +\n \"\\tfor details.\",\n type: LexerDefinitionErrorType.EOI_ANCHOR_FOUND,\n tokenTypes: [currType],\n };\n });\n\n return errors;\n}\n\nexport function findEmptyMatchRegExps(\n tokenTypes: TokenType[],\n): ILexerDefinitionError[] {\n const matchesEmptyString = filter(tokenTypes, (currType) => {\n const pattern = currType.PATTERN as RegExp;\n return pattern.test(\"\");\n });\n\n const errors = map(matchesEmptyString, (currType) => {\n return {\n message:\n \"Token Type: ->\" +\n currType.name +\n \"<- static 'PATTERN' must not match an empty string\",\n type: LexerDefinitionErrorType.EMPTY_MATCH_PATTERN,\n tokenTypes: [currType],\n };\n });\n\n return errors;\n}\n\nconst start_of_input = /[^\\\\[][\\^]|^\\^/;\n\nexport function findStartOfInputAnchor(\n tokenTypes: TokenType[],\n): ILexerDefinitionError[] {\n class StartAnchorFinder extends BaseRegExpVisitor {\n found = false;\n\n visitStartAnchor(node: unknown) {\n this.found = true;\n }\n }\n\n const invalidRegex = filter(tokenTypes, (currType) => {\n const pattern = currType.PATTERN as RegExp;\n try {\n const regexpAst = getRegExpAst(pattern);\n const startAnchorVisitor = new StartAnchorFinder();\n startAnchorVisitor.visit(regexpAst);\n\n return startAnchorVisitor.found;\n } catch (e) {\n // old behavior in case of runtime exceptions with regexp-to-ast.\n /* istanbul ignore next - cannot ensure an error in regexp-to-ast*/\n return start_of_input.test(pattern.source);\n }\n });\n\n const errors = map(invalidRegex, (currType) => {\n return {\n message:\n \"Unexpected RegExp Anchor Error:\\n\" +\n \"\\tToken Type: ->\" +\n currType.name +\n \"<- static 'PATTERN' cannot contain start of input anchor '^'\\n\" +\n \"\\tSee https://chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS\" +\n \"\\tfor details.\",\n type: LexerDefinitionErrorType.SOI_ANCHOR_FOUND,\n tokenTypes: [currType],\n };\n });\n\n return errors;\n}\n\nexport function findUnsupportedFlags(\n tokenTypes: TokenType[],\n): ILexerDefinitionError[] {\n const invalidFlags = filter(tokenTypes, (currType) => {\n const pattern = currType[PATTERN];\n return pattern instanceof RegExp && (pattern.multiline || pattern.global);\n });\n\n const errors = map(invalidFlags, (currType) => {\n return {\n message:\n \"Token Type: ->\" +\n currType.name +\n \"<- static 'PATTERN' may NOT contain global('g') or multiline('m')\",\n type: LexerDefinitionErrorType.UNSUPPORTED_FLAGS_FOUND,\n tokenTypes: [currType],\n };\n });\n\n return errors;\n}\n\n// This can only test for identical duplicate RegExps, not semantically equivalent ones.\nexport function findDuplicatePatterns(\n tokenTypes: TokenType[],\n): ILexerDefinitionError[] {\n const found: TokenType[] = [];\n let identicalPatterns = map(tokenTypes, (outerType: any) => {\n return reduce(\n tokenTypes,\n (result, innerType) => {\n if (\n outerType.PATTERN.source === (innerType.PATTERN as RegExp).source &&\n !includes(found, innerType) &&\n innerType.PATTERN !== Lexer.NA\n ) {\n // this avoids duplicates in the result, each Token Type may only appear in one \"set\"\n // in essence we are creating Equivalence classes on equality relation.\n found.push(innerType);\n result.push(innerType);\n return result;\n }\n return result;\n },\n [] as TokenType[],\n );\n });\n\n identicalPatterns = compact(identicalPatterns);\n\n const duplicatePatterns = filter(identicalPatterns, (currIdenticalSet) => {\n return currIdenticalSet.length > 1;\n });\n\n const errors = map(duplicatePatterns, (setOfIdentical: any) => {\n const tokenTypeNames = map(setOfIdentical, (currType: any) => {\n return currType.name;\n });\n\n const dupPatternSrc = (first(setOfIdentical)).PATTERN;\n return {\n message:\n `The same RegExp pattern ->${dupPatternSrc}<-` +\n `has been used in all of the following Token Types: ${tokenTypeNames.join(\n \", \",\n )} <-`,\n type: LexerDefinitionErrorType.DUPLICATE_PATTERNS_FOUND,\n tokenTypes: setOfIdentical,\n };\n });\n\n return errors;\n}\n\nexport function findInvalidGroupType(\n tokenTypes: TokenType[],\n): ILexerDefinitionError[] {\n const invalidTypes = filter(tokenTypes, (clazz: any) => {\n if (!has(clazz, \"GROUP\")) {\n return false;\n }\n const group = clazz.GROUP;\n\n return group !== Lexer.SKIPPED && group !== Lexer.NA && !isString(group);\n });\n\n const errors = map(invalidTypes, (currType) => {\n return {\n message:\n \"Token Type: ->\" +\n currType.name +\n \"<- static 'GROUP' can only be Lexer.SKIPPED/Lexer.NA/A String\",\n type: LexerDefinitionErrorType.INVALID_GROUP_TYPE_FOUND,\n tokenTypes: [currType],\n };\n });\n\n return errors;\n}\n\nexport function findModesThatDoNotExist(\n tokenTypes: TokenType[],\n validModes: string[],\n): ILexerDefinitionError[] {\n const invalidModes = filter(tokenTypes, (clazz: any) => {\n return (\n clazz.PUSH_MODE !== undefined && !includes(validModes, clazz.PUSH_MODE)\n );\n });\n\n const errors = map(invalidModes, (tokType) => {\n const msg =\n `Token Type: ->${tokType.name}<- static 'PUSH_MODE' value cannot refer to a Lexer Mode ->${tokType.PUSH_MODE}<-` +\n `which does not exist`;\n return {\n message: msg,\n type: LexerDefinitionErrorType.PUSH_MODE_DOES_NOT_EXIST,\n tokenTypes: [tokType],\n };\n });\n\n return errors;\n}\n\nexport function findUnreachablePatterns(\n tokenTypes: TokenType[],\n): ILexerDefinitionError[] {\n const errors: ILexerDefinitionError[] = [];\n\n const canBeTested = reduce(\n tokenTypes,\n (result, tokType, idx) => {\n const pattern = tokType.PATTERN;\n\n if (pattern === Lexer.NA) {\n return result;\n }\n\n // a more comprehensive validation for all forms of regExps would require\n // deeper regExp analysis capabilities\n if (isString(pattern)) {\n result.push({ str: pattern, idx, tokenType: tokType });\n } else if (isRegExp(pattern) && noMetaChar(pattern)) {\n result.push({ str: pattern.source, idx, tokenType: tokType });\n }\n return result;\n },\n [] as { str: string; idx: number; tokenType: TokenType }[],\n );\n\n forEach(tokenTypes, (tokType, testIdx) => {\n forEach(canBeTested, ({ str, idx, tokenType }) => {\n if (testIdx < idx && testTokenType(str, tokType.PATTERN)) {\n const msg =\n `Token: ->${tokenType.name}<- can never be matched.\\n` +\n `Because it appears AFTER the Token Type ->${tokType.name}<-` +\n `in the lexer's definition.\\n` +\n `See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNREACHABLE`;\n errors.push({\n message: msg,\n type: LexerDefinitionErrorType.UNREACHABLE_PATTERN,\n tokenTypes: [tokType, tokenType],\n });\n }\n });\n });\n\n return errors;\n}\n\nfunction testTokenType(str: string, pattern: any): boolean {\n /* istanbul ignore else */\n if (isRegExp(pattern)) {\n const regExpArray = pattern.exec(str);\n return regExpArray !== null && regExpArray.index === 0;\n } else if (isFunction(pattern)) {\n // maintain the API of custom patterns\n return pattern(str, 0, [], {});\n } else if (has(pattern, \"exec\")) {\n // maintain the API of custom patterns\n return pattern.exec(str, 0, [], {});\n } else if (typeof pattern === \"string\") {\n return pattern === str;\n } else {\n throw Error(\"non exhaustive match\");\n }\n}\n\nfunction noMetaChar(regExp: RegExp): boolean {\n //https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp\n const metaChars = [\n \".\",\n \"\\\\\",\n \"[\",\n \"]\",\n \"|\",\n \"^\",\n \"$\",\n \"(\",\n \")\",\n \"?\",\n \"*\",\n \"+\",\n \"{\",\n ];\n return (\n find(metaChars, (char) => regExp.source.indexOf(char) !== -1) === undefined\n );\n}\n\nexport function addStartOfInput(pattern: RegExp): RegExp {\n const flags = pattern.ignoreCase ? \"i\" : \"\";\n // always wrapping in a none capturing group preceded by '^' to make sure matching can only work on start of input.\n // duplicate/redundant start of input markers have no meaning (/^^^^A/ === /^A/)\n return new RegExp(`^(?:${pattern.source})`, flags);\n}\n\nexport function addStickyFlag(pattern: RegExp): RegExp {\n const flags = pattern.ignoreCase ? \"iy\" : \"y\";\n // always wrapping in a none capturing group preceded by '^' to make sure matching can only work on start of input.\n // duplicate/redundant start of input markers have no meaning (/^^^^A/ === /^A/)\n return new RegExp(`${pattern.source}`, flags);\n}\n\nexport function performRuntimeChecks(\n lexerDefinition: IMultiModeLexerDefinition,\n trackLines: boolean,\n lineTerminatorCharacters: (number | string)[],\n): ILexerDefinitionError[] {\n const errors: ILexerDefinitionError[] = [];\n\n // some run time checks to help the end users.\n if (!has(lexerDefinition, DEFAULT_MODE)) {\n errors.push({\n message:\n \"A MultiMode Lexer cannot be initialized without a <\" +\n DEFAULT_MODE +\n \"> property in its definition\\n\",\n type: LexerDefinitionErrorType.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE,\n });\n }\n if (!has(lexerDefinition, MODES)) {\n errors.push({\n message:\n \"A MultiMode Lexer cannot be initialized without a <\" +\n MODES +\n \"> property in its definition\\n\",\n type: LexerDefinitionErrorType.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY,\n });\n }\n\n if (\n has(lexerDefinition, MODES) &&\n has(lexerDefinition, DEFAULT_MODE) &&\n !has(lexerDefinition.modes, lexerDefinition.defaultMode)\n ) {\n errors.push({\n message:\n `A MultiMode Lexer cannot be initialized with a ${DEFAULT_MODE}: <${lexerDefinition.defaultMode}>` +\n `which does not exist\\n`,\n type: LexerDefinitionErrorType.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST,\n });\n }\n\n if (has(lexerDefinition, MODES)) {\n forEach(lexerDefinition.modes, (currModeValue, currModeName) => {\n forEach(currModeValue, (currTokType, currIdx) => {\n if (isUndefined(currTokType)) {\n errors.push({\n message:\n `A Lexer cannot be initialized using an undefined Token Type. Mode:` +\n `<${currModeName}> at index: <${currIdx}>\\n`,\n type: LexerDefinitionErrorType.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED,\n });\n } else if (has(currTokType, \"LONGER_ALT\")) {\n const longerAlt = isArray(currTokType.LONGER_ALT)\n ? currTokType.LONGER_ALT\n : [currTokType.LONGER_ALT];\n forEach(longerAlt, (currLongerAlt) => {\n if (\n !isUndefined(currLongerAlt) &&\n !includes(currModeValue, currLongerAlt)\n ) {\n errors.push({\n message: `A MultiMode Lexer cannot be initialized with a longer_alt <${currLongerAlt.name}> on token <${currTokType.name}> outside of mode <${currModeName}>\\n`,\n type: LexerDefinitionErrorType.MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE,\n });\n }\n });\n }\n });\n });\n }\n\n return errors;\n}\n\nexport function performWarningRuntimeChecks(\n lexerDefinition: IMultiModeLexerDefinition,\n trackLines: boolean,\n lineTerminatorCharacters: (number | string)[],\n): ILexerDefinitionError[] {\n const warnings = [];\n let hasAnyLineBreak = false;\n const allTokenTypes = compact(flatten(values(lexerDefinition.modes)));\n\n const concreteTokenTypes = reject(\n allTokenTypes,\n (currType) => currType[PATTERN] === Lexer.NA,\n );\n const terminatorCharCodes = getCharCodes(lineTerminatorCharacters);\n if (trackLines) {\n forEach(concreteTokenTypes, (tokType) => {\n const currIssue = checkLineBreaksIssues(tokType, terminatorCharCodes);\n if (currIssue !== false) {\n const message = buildLineBreakIssueMessage(tokType, currIssue);\n const warningDescriptor = {\n message,\n type: currIssue.issue,\n tokenType: tokType,\n };\n warnings.push(warningDescriptor);\n } else {\n // we don't want to attempt to scan if the user explicitly specified the line_breaks option.\n if (has(tokType, \"LINE_BREAKS\")) {\n if (tokType.LINE_BREAKS === true) {\n hasAnyLineBreak = true;\n }\n } else {\n if (\n canMatchCharCode(terminatorCharCodes, tokType.PATTERN as RegExp)\n ) {\n hasAnyLineBreak = true;\n }\n }\n }\n });\n }\n\n if (trackLines && !hasAnyLineBreak) {\n warnings.push({\n message:\n \"Warning: No LINE_BREAKS Found.\\n\" +\n \"\\tThis Lexer has been defined to track line and column information,\\n\" +\n \"\\tBut none of the Token Types can be identified as matching a line terminator.\\n\" +\n \"\\tSee https://chevrotain.io/docs/guide/resolving_lexer_errors.html#LINE_BREAKS \\n\" +\n \"\\tfor details.\",\n type: LexerDefinitionErrorType.NO_LINE_BREAKS_FLAGS,\n });\n }\n return warnings;\n}\n\nexport function cloneEmptyGroups(emptyGroups: {\n [groupName: string]: IToken;\n}): { [groupName: string]: IToken } {\n const clonedResult: any = {};\n const groupKeys = keys(emptyGroups);\n\n forEach(groupKeys, (currKey) => {\n const currGroupValue = emptyGroups[currKey];\n\n /* istanbul ignore else */\n if (isArray(currGroupValue)) {\n clonedResult[currKey] = [];\n } else {\n throw Error(\"non exhaustive match\");\n }\n });\n\n return clonedResult;\n}\n\n// TODO: refactor to avoid duplication\nexport function isCustomPattern(tokenType: TokenType): boolean {\n const pattern = tokenType.PATTERN;\n /* istanbul ignore else */\n if (isRegExp(pattern)) {\n return false;\n } else if (isFunction(pattern)) {\n // CustomPatternMatcherFunc - custom patterns do not require any transformations, only wrapping in a RegExp Like object\n return true;\n } else if (has(pattern, \"exec\")) {\n // ICustomPattern\n return true;\n } else if (isString(pattern)) {\n return false;\n } else {\n throw Error(\"non exhaustive match\");\n }\n}\n\nexport function isShortPattern(pattern: any): number | false {\n if (isString(pattern) && pattern.length === 1) {\n return pattern.charCodeAt(0);\n } else {\n return false;\n }\n}\n\n/**\n * Faster than using a RegExp for default newline detection during lexing.\n */\nexport const LineTerminatorOptimizedTester: ILineTerminatorsTester = {\n // implements /\\n|\\r\\n?/g.test\n test: function (text) {\n const len = text.length;\n for (let i = this.lastIndex; i < len; i++) {\n const c = text.charCodeAt(i);\n if (c === 10) {\n this.lastIndex = i + 1;\n return true;\n } else if (c === 13) {\n if (text.charCodeAt(i + 1) === 10) {\n this.lastIndex = i + 2;\n } else {\n this.lastIndex = i + 1;\n }\n return true;\n }\n }\n return false;\n },\n\n lastIndex: 0,\n};\n\nfunction checkLineBreaksIssues(\n tokType: TokenType,\n lineTerminatorCharCodes: number[],\n):\n | {\n issue:\n | LexerDefinitionErrorType.IDENTIFY_TERMINATOR\n | LexerDefinitionErrorType.CUSTOM_LINE_BREAK;\n errMsg?: string;\n }\n | false {\n if (has(tokType, \"LINE_BREAKS\")) {\n // if the user explicitly declared the line_breaks option we will respect their choice\n // and assume it is correct.\n return false;\n } else {\n /* istanbul ignore else */\n if (isRegExp(tokType.PATTERN)) {\n try {\n // TODO: why is the casting suddenly needed?\n canMatchCharCode(lineTerminatorCharCodes, tokType.PATTERN as RegExp);\n } catch (e) {\n /* istanbul ignore next - to test this we would have to mock to throw an error */\n return {\n issue: LexerDefinitionErrorType.IDENTIFY_TERMINATOR,\n errMsg: (e as Error).message,\n };\n }\n return false;\n } else if (isString(tokType.PATTERN)) {\n // string literal patterns can always be analyzed to detect line terminator usage\n return false;\n } else if (isCustomPattern(tokType)) {\n // custom token types\n return { issue: LexerDefinitionErrorType.CUSTOM_LINE_BREAK };\n } else {\n throw Error(\"non exhaustive match\");\n }\n }\n}\n\nexport function buildLineBreakIssueMessage(\n tokType: TokenType,\n details: {\n issue:\n | LexerDefinitionErrorType.IDENTIFY_TERMINATOR\n | LexerDefinitionErrorType.CUSTOM_LINE_BREAK;\n errMsg?: string;\n },\n): string {\n /* istanbul ignore else */\n if (details.issue === LexerDefinitionErrorType.IDENTIFY_TERMINATOR) {\n return (\n \"Warning: unable to identify line terminator usage in pattern.\\n\" +\n `\\tThe problem is in the <${tokType.name}> Token Type\\n` +\n `\\t Root cause: ${details.errMsg}.\\n` +\n \"\\tFor details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#IDENTIFY_TERMINATOR\"\n );\n } else if (details.issue === LexerDefinitionErrorType.CUSTOM_LINE_BREAK) {\n return (\n \"Warning: A Custom Token Pattern should specify the option.\\n\" +\n `\\tThe problem is in the <${tokType.name}> Token Type\\n` +\n \"\\tFor details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_LINE_BREAK\"\n );\n } else {\n throw Error(\"non exhaustive match\");\n }\n}\n\nfunction getCharCodes(charsOrCodes: (number | string)[]): number[] {\n const charCodes = map(charsOrCodes, (numOrString) => {\n if (isString(numOrString)) {\n return numOrString.charCodeAt(0);\n } else {\n return numOrString;\n }\n });\n\n return charCodes;\n}\n\nfunction addToMapOfArrays(\n map: Record,\n key: number,\n value: T,\n): void {\n if (map[key] === undefined) {\n map[key] = [value];\n } else {\n map[key].push(value);\n }\n}\n\nexport const minOptimizationVal = 256;\n\n/**\n * We are mapping charCode above ASCI (256) into buckets each in the size of 256.\n * This is because ASCI are the most common start chars so each one of those will get its own\n * possible token configs vector.\n *\n * Tokens starting with charCodes \"above\" ASCI are uncommon, so we can \"afford\"\n * to place these into buckets of possible token configs, What we gain from\n * this is avoiding the case of creating an optimization 'charCodeToPatternIdxToConfig'\n * which would contain 10,000+ arrays of small size (e.g unicode Identifiers scenario).\n * Our 'charCodeToPatternIdxToConfig' max size will now be:\n * 256 + (2^16 / 2^8) - 1 === 511\n *\n * note the hack for fast division integer part extraction\n * See: https://stackoverflow.com/a/4228528\n */\nlet charCodeToOptimizedIdxMap: number[] = [];\nexport function charCodeToOptimizedIndex(charCode: number): number {\n return charCode < minOptimizationVal\n ? charCode\n : charCodeToOptimizedIdxMap[charCode];\n}\n\n/**\n * This is a compromise between cold start / hot running performance\n * Creating this array takes ~3ms on a modern machine,\n * But if we perform the computation at runtime as needed the CSS Lexer benchmark\n * performance degrades by ~10%\n *\n * TODO: Perhaps it should be lazy initialized only if a charCode > 255 is used.\n */\nfunction initCharCodeToOptimizedIndexMap() {\n if (isEmpty(charCodeToOptimizedIdxMap)) {\n charCodeToOptimizedIdxMap = new Array(65536);\n for (let i = 0; i < 65536; i++) {\n charCodeToOptimizedIdxMap[i] = i > 255 ? 255 + ~~(i / 255) : i;\n }\n }\n}\n", "import {\n clone,\n compact,\n difference,\n flatten,\n forEach,\n has,\n includes,\n isArray,\n isEmpty,\n map,\n} from \"lodash-es\";\nimport { IToken, TokenType } from \"@chevrotain/types\";\n\nexport function tokenStructuredMatcher(\n tokInstance: IToken,\n tokConstructor: TokenType,\n) {\n const instanceType = tokInstance.tokenTypeIdx;\n if (instanceType === tokConstructor.tokenTypeIdx) {\n return true;\n } else {\n return (\n tokConstructor.isParent === true &&\n tokConstructor.categoryMatchesMap![instanceType] === true\n );\n }\n}\n\n// Optimized tokenMatcher in case our grammar does not use token categories\n// Being so tiny it is much more likely to be in-lined and this avoid the function call overhead\nexport function tokenStructuredMatcherNoCategories(\n token: IToken,\n tokType: TokenType,\n) {\n return token.tokenTypeIdx === tokType.tokenTypeIdx;\n}\n\nexport let tokenShortNameIdx = 1;\nexport const tokenIdxToClass: { [tokenIdx: number]: TokenType } = {};\n\nexport function augmentTokenTypes(tokenTypes: TokenType[]): void {\n // collect the parent Token Types as well.\n const tokenTypesAndParents = expandCategories(tokenTypes);\n\n // add required tokenType and categoryMatches properties\n assignTokenDefaultProps(tokenTypesAndParents);\n\n // fill up the categoryMatches\n assignCategoriesMapProp(tokenTypesAndParents);\n assignCategoriesTokensProp(tokenTypesAndParents);\n\n forEach(tokenTypesAndParents, (tokType) => {\n tokType.isParent = tokType.categoryMatches!.length > 0;\n });\n}\n\nexport function expandCategories(tokenTypes: TokenType[]): TokenType[] {\n let result = clone(tokenTypes);\n\n let categories = tokenTypes;\n let searching = true;\n while (searching) {\n categories = compact(\n flatten(map(categories, (currTokType) => currTokType.CATEGORIES)),\n );\n\n const newCategories = difference(categories, result);\n\n result = result.concat(newCategories);\n\n if (isEmpty(newCategories)) {\n searching = false;\n } else {\n categories = newCategories;\n }\n }\n return result;\n}\n\nexport function assignTokenDefaultProps(tokenTypes: TokenType[]): void {\n forEach(tokenTypes, (currTokType) => {\n if (!hasShortKeyProperty(currTokType)) {\n tokenIdxToClass[tokenShortNameIdx] = currTokType;\n (currTokType).tokenTypeIdx = tokenShortNameIdx++;\n }\n\n // CATEGORIES? : TokenType | TokenType[]\n if (\n hasCategoriesProperty(currTokType) &&\n !isArray(currTokType.CATEGORIES)\n // &&\n // !isUndefined(currTokType.CATEGORIES.PATTERN)\n ) {\n currTokType.CATEGORIES = [currTokType.CATEGORIES as unknown as TokenType];\n }\n\n if (!hasCategoriesProperty(currTokType)) {\n currTokType.CATEGORIES = [];\n }\n\n if (!hasExtendingTokensTypesProperty(currTokType)) {\n currTokType.categoryMatches = [];\n }\n\n if (!hasExtendingTokensTypesMapProperty(currTokType)) {\n currTokType.categoryMatchesMap = {};\n }\n });\n}\n\nexport function assignCategoriesTokensProp(tokenTypes: TokenType[]): void {\n forEach(tokenTypes, (currTokType) => {\n // avoid duplications\n currTokType.categoryMatches = [];\n forEach(currTokType.categoryMatchesMap!, (val, key) => {\n currTokType.categoryMatches!.push(\n tokenIdxToClass[key as unknown as number].tokenTypeIdx!,\n );\n });\n });\n}\n\nexport function assignCategoriesMapProp(tokenTypes: TokenType[]): void {\n forEach(tokenTypes, (currTokType) => {\n singleAssignCategoriesToksMap([], currTokType);\n });\n}\n\nexport function singleAssignCategoriesToksMap(\n path: TokenType[],\n nextNode: TokenType,\n): void {\n forEach(path, (pathNode) => {\n nextNode.categoryMatchesMap![pathNode.tokenTypeIdx!] = true;\n });\n\n forEach(nextNode.CATEGORIES, (nextCategory) => {\n const newPath = path.concat(nextNode);\n // avoids infinite loops due to cyclic categories.\n if (!includes(newPath, nextCategory)) {\n singleAssignCategoriesToksMap(newPath, nextCategory);\n }\n });\n}\n\nexport function hasShortKeyProperty(tokType: TokenType): boolean {\n return has(tokType, \"tokenTypeIdx\");\n}\n\nexport function hasCategoriesProperty(tokType: TokenType): boolean {\n return has(tokType, \"CATEGORIES\");\n}\n\nexport function hasExtendingTokensTypesProperty(tokType: TokenType): boolean {\n return has(tokType, \"categoryMatches\");\n}\n\nexport function hasExtendingTokensTypesMapProperty(\n tokType: TokenType,\n): boolean {\n return has(tokType, \"categoryMatchesMap\");\n}\n\nexport function isTokenType(tokType: TokenType): boolean {\n return has(tokType, \"tokenTypeIdx\");\n}\n", "import { ILexerErrorMessageProvider, IToken } from \"@chevrotain/types\";\n\nexport const defaultLexerErrorProvider: ILexerErrorMessageProvider = {\n buildUnableToPopLexerModeMessage(token: IToken): string {\n return `Unable to pop Lexer Mode after encountering Token ->${token.image}<- The Mode Stack is empty`;\n },\n\n buildUnexpectedCharactersMessage(\n fullText: string,\n startOffset: number,\n length: number,\n line?: number,\n column?: number,\n ): string {\n return (\n `unexpected character: ->${fullText.charAt(\n startOffset,\n )}<- at offset: ${startOffset},` + ` skipped ${length} characters.`\n );\n },\n};\n", "import {\n analyzeTokenTypes,\n charCodeToOptimizedIndex,\n cloneEmptyGroups,\n DEFAULT_MODE,\n IAnalyzeResult,\n IPatternConfig,\n LineTerminatorOptimizedTester,\n performRuntimeChecks,\n performWarningRuntimeChecks,\n SUPPORT_STICKY,\n validatePatterns,\n} from \"./lexer.js\";\nimport {\n assign,\n clone,\n forEach,\n identity,\n isArray,\n isEmpty,\n isUndefined,\n keys,\n last,\n map,\n noop,\n reduce,\n reject,\n} from \"lodash-es\";\nimport { PRINT_WARNING, timer, toFastProperties } from \"@chevrotain/utils\";\nimport { augmentTokenTypes } from \"./tokens.js\";\nimport {\n CustomPatternMatcherFunc,\n CustomPatternMatcherReturn,\n ILexerConfig,\n ILexerDefinitionError,\n ILexingError,\n IMultiModeLexerDefinition,\n IToken,\n TokenType,\n} from \"@chevrotain/types\";\nimport { defaultLexerErrorProvider } from \"./lexer_errors_public.js\";\nimport { clearRegExpParserCache } from \"./reg_exp_parser.js\";\n\nexport interface ILexingResult {\n tokens: IToken[];\n groups: { [groupName: string]: IToken[] };\n errors: ILexingError[];\n}\n\nexport enum LexerDefinitionErrorType {\n MISSING_PATTERN,\n INVALID_PATTERN,\n EOI_ANCHOR_FOUND,\n UNSUPPORTED_FLAGS_FOUND,\n DUPLICATE_PATTERNS_FOUND,\n INVALID_GROUP_TYPE_FOUND,\n PUSH_MODE_DOES_NOT_EXIST,\n MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE,\n MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY,\n MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST,\n LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED,\n SOI_ANCHOR_FOUND,\n EMPTY_MATCH_PATTERN,\n NO_LINE_BREAKS_FLAGS,\n UNREACHABLE_PATTERN,\n IDENTIFY_TERMINATOR,\n CUSTOM_LINE_BREAK,\n MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE,\n}\n\nexport interface IRegExpExec {\n exec: CustomPatternMatcherFunc;\n}\n\nconst DEFAULT_LEXER_CONFIG: Required = {\n deferDefinitionErrorsHandling: false,\n positionTracking: \"full\",\n lineTerminatorsPattern: /\\n|\\r\\n?/g,\n lineTerminatorCharacters: [\"\\n\", \"\\r\"],\n ensureOptimizations: false,\n safeMode: false,\n errorMessageProvider: defaultLexerErrorProvider,\n traceInitPerf: false,\n skipValidations: false,\n recoveryEnabled: true,\n};\n\nObject.freeze(DEFAULT_LEXER_CONFIG);\n\nexport class Lexer {\n public static SKIPPED =\n \"This marks a skipped Token pattern, this means each token identified by it will\" +\n \"be consumed and then thrown into oblivion, this can be used to for example to completely ignore whitespace.\";\n\n public static NA = /NOT_APPLICABLE/;\n public lexerDefinitionErrors: ILexerDefinitionError[] = [];\n public lexerDefinitionWarning: ILexerDefinitionError[] = [];\n\n protected patternIdxToConfig: Record = {};\n protected charCodeToPatternIdxToConfig: {\n [modeName: string]: { [charCode: number]: IPatternConfig[] };\n } = {};\n\n protected modes: string[] = [];\n protected defaultMode!: string;\n protected emptyGroups: { [groupName: string]: IToken } = {};\n\n private config: Required;\n private trackStartLines: boolean = true;\n private trackEndLines: boolean = true;\n private hasCustom: boolean = false;\n private canModeBeOptimized: Record = {};\n\n private traceInitPerf!: boolean | number;\n private traceInitMaxIdent!: number;\n private traceInitIndent: number;\n\n constructor(\n protected lexerDefinition: TokenType[] | IMultiModeLexerDefinition,\n config: ILexerConfig = DEFAULT_LEXER_CONFIG,\n ) {\n if (typeof config === \"boolean\") {\n throw Error(\n \"The second argument to the Lexer constructor is now an ILexerConfig Object.\\n\" +\n \"a boolean 2nd argument is no longer supported\",\n );\n }\n\n // todo: defaults func?\n this.config = assign({}, DEFAULT_LEXER_CONFIG, config) as any;\n\n const traceInitVal = this.config.traceInitPerf;\n if (traceInitVal === true) {\n this.traceInitMaxIdent = Infinity;\n this.traceInitPerf = true;\n } else if (typeof traceInitVal === \"number\") {\n this.traceInitMaxIdent = traceInitVal;\n this.traceInitPerf = true;\n }\n this.traceInitIndent = -1;\n\n this.TRACE_INIT(\"Lexer Constructor\", () => {\n let actualDefinition!: IMultiModeLexerDefinition;\n let hasOnlySingleMode = true;\n this.TRACE_INIT(\"Lexer Config handling\", () => {\n if (\n this.config.lineTerminatorsPattern ===\n DEFAULT_LEXER_CONFIG.lineTerminatorsPattern\n ) {\n // optimized built-in implementation for the defaults definition of lineTerminators\n this.config.lineTerminatorsPattern = LineTerminatorOptimizedTester;\n } else {\n if (\n this.config.lineTerminatorCharacters ===\n DEFAULT_LEXER_CONFIG.lineTerminatorCharacters\n ) {\n throw Error(\n \"Error: Missing property on the Lexer config.\\n\" +\n \"\\tFor details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#MISSING_LINE_TERM_CHARS\",\n );\n }\n }\n\n if (config.safeMode && config.ensureOptimizations) {\n throw Error(\n '\"safeMode\" and \"ensureOptimizations\" flags are mutually exclusive.',\n );\n }\n\n this.trackStartLines = /full|onlyStart/i.test(\n this.config.positionTracking,\n );\n this.trackEndLines = /full/i.test(this.config.positionTracking);\n\n // Convert SingleModeLexerDefinition into a IMultiModeLexerDefinition.\n if (isArray(lexerDefinition)) {\n actualDefinition = {\n modes: { defaultMode: clone(lexerDefinition) },\n defaultMode: DEFAULT_MODE,\n };\n } else {\n // no conversion needed, input should already be a IMultiModeLexerDefinition\n hasOnlySingleMode = false;\n actualDefinition = clone(lexerDefinition);\n }\n });\n\n if (this.config.skipValidations === false) {\n this.TRACE_INIT(\"performRuntimeChecks\", () => {\n this.lexerDefinitionErrors = this.lexerDefinitionErrors.concat(\n performRuntimeChecks(\n actualDefinition,\n this.trackStartLines,\n this.config.lineTerminatorCharacters,\n ),\n );\n });\n\n this.TRACE_INIT(\"performWarningRuntimeChecks\", () => {\n this.lexerDefinitionWarning = this.lexerDefinitionWarning.concat(\n performWarningRuntimeChecks(\n actualDefinition,\n this.trackStartLines,\n this.config.lineTerminatorCharacters,\n ),\n );\n });\n }\n\n // for extra robustness to avoid throwing an none informative error message\n actualDefinition.modes = actualDefinition.modes\n ? actualDefinition.modes\n : {};\n\n // an error of undefined TokenTypes will be detected in \"performRuntimeChecks\" above.\n // this transformation is to increase robustness in the case of partially invalid lexer definition.\n forEach(actualDefinition.modes, (currModeValue, currModeName) => {\n actualDefinition.modes[currModeName] = reject(\n currModeValue,\n (currTokType) => isUndefined(currTokType),\n );\n });\n\n const allModeNames = keys(actualDefinition.modes);\n\n forEach(\n actualDefinition.modes,\n (currModDef: TokenType[], currModName) => {\n this.TRACE_INIT(`Mode: <${currModName}> processing`, () => {\n this.modes.push(currModName);\n\n if (this.config.skipValidations === false) {\n this.TRACE_INIT(`validatePatterns`, () => {\n this.lexerDefinitionErrors = this.lexerDefinitionErrors.concat(\n validatePatterns(currModDef, allModeNames),\n );\n });\n }\n\n // If definition errors were encountered, the analysis phase may fail unexpectedly/\n // Considering a lexer with definition errors may never be used, there is no point\n // to performing the analysis anyhow...\n if (isEmpty(this.lexerDefinitionErrors)) {\n augmentTokenTypes(currModDef);\n\n let currAnalyzeResult!: IAnalyzeResult;\n this.TRACE_INIT(`analyzeTokenTypes`, () => {\n currAnalyzeResult = analyzeTokenTypes(currModDef, {\n lineTerminatorCharacters:\n this.config.lineTerminatorCharacters,\n positionTracking: config.positionTracking,\n ensureOptimizations: config.ensureOptimizations,\n safeMode: config.safeMode,\n tracer: this.TRACE_INIT,\n });\n });\n\n this.patternIdxToConfig[currModName] =\n currAnalyzeResult.patternIdxToConfig;\n\n this.charCodeToPatternIdxToConfig[currModName] =\n currAnalyzeResult.charCodeToPatternIdxToConfig;\n\n this.emptyGroups = assign(\n {},\n this.emptyGroups,\n currAnalyzeResult.emptyGroups,\n ) as any;\n\n this.hasCustom = currAnalyzeResult.hasCustom || this.hasCustom;\n\n this.canModeBeOptimized[currModName] =\n currAnalyzeResult.canBeOptimized;\n }\n });\n },\n );\n\n this.defaultMode = actualDefinition.defaultMode;\n\n if (\n !isEmpty(this.lexerDefinitionErrors) &&\n !this.config.deferDefinitionErrorsHandling\n ) {\n const allErrMessages = map(this.lexerDefinitionErrors, (error) => {\n return error.message;\n });\n const allErrMessagesString = allErrMessages.join(\n \"-----------------------\\n\",\n );\n throw new Error(\n \"Errors detected in definition of Lexer:\\n\" + allErrMessagesString,\n );\n }\n\n // Only print warning if there are no errors, This will avoid pl\n forEach(this.lexerDefinitionWarning, (warningDescriptor) => {\n PRINT_WARNING(warningDescriptor.message);\n });\n\n this.TRACE_INIT(\"Choosing sub-methods implementations\", () => {\n // Choose the relevant internal implementations for this specific parser.\n // These implementations should be in-lined by the JavaScript engine\n // to provide optimal performance in each scenario.\n if (SUPPORT_STICKY) {\n this.chopInput = identity;\n this.match = this.matchWithTest;\n } else {\n this.updateLastIndex = noop;\n this.match = this.matchWithExec;\n }\n\n if (hasOnlySingleMode) {\n this.handleModes = noop;\n }\n\n if (this.trackStartLines === false) {\n this.computeNewColumn = identity;\n }\n\n if (this.trackEndLines === false) {\n this.updateTokenEndLineColumnLocation = noop;\n }\n\n if (/full/i.test(this.config.positionTracking)) {\n this.createTokenInstance = this.createFullToken;\n } else if (/onlyStart/i.test(this.config.positionTracking)) {\n this.createTokenInstance = this.createStartOnlyToken;\n } else if (/onlyOffset/i.test(this.config.positionTracking)) {\n this.createTokenInstance = this.createOffsetOnlyToken;\n } else {\n throw Error(\n `Invalid config option: \"${this.config.positionTracking}\"`,\n );\n }\n\n if (this.hasCustom) {\n this.addToken = this.addTokenUsingPush;\n this.handlePayload = this.handlePayloadWithCustom;\n } else {\n this.addToken = this.addTokenUsingMemberAccess;\n this.handlePayload = this.handlePayloadNoCustom;\n }\n });\n\n this.TRACE_INIT(\"Failed Optimization Warnings\", () => {\n const unOptimizedModes = reduce(\n this.canModeBeOptimized,\n (cannotBeOptimized, canBeOptimized, modeName) => {\n if (canBeOptimized === false) {\n cannotBeOptimized.push(modeName);\n }\n return cannotBeOptimized;\n },\n [] as string[],\n );\n\n if (config.ensureOptimizations && !isEmpty(unOptimizedModes)) {\n throw Error(\n `Lexer Modes: < ${unOptimizedModes.join(\n \", \",\n )} > cannot be optimized.\\n` +\n '\\t Disable the \"ensureOptimizations\" lexer config flag to silently ignore this and run the lexer in an un-optimized mode.\\n' +\n \"\\t Or inspect the console log for details on how to resolve these issues.\",\n );\n }\n });\n\n this.TRACE_INIT(\"clearRegExpParserCache\", () => {\n clearRegExpParserCache();\n });\n\n this.TRACE_INIT(\"toFastProperties\", () => {\n toFastProperties(this);\n });\n });\n }\n\n public tokenize(\n text: string,\n initialMode: string = this.defaultMode,\n ): ILexingResult {\n if (!isEmpty(this.lexerDefinitionErrors)) {\n const allErrMessages = map(this.lexerDefinitionErrors, (error) => {\n return error.message;\n });\n const allErrMessagesString = allErrMessages.join(\n \"-----------------------\\n\",\n );\n throw new Error(\n \"Unable to Tokenize because Errors detected in definition of Lexer:\\n\" +\n allErrMessagesString,\n );\n }\n\n return this.tokenizeInternal(text, initialMode);\n }\n\n // There is quite a bit of duplication between this and \"tokenizeInternalLazy\"\n // This is intentional due to performance considerations.\n // this method also used quite a bit of `!` none null assertions because it is too optimized\n // for `tsc` to always understand it is \"safe\"\n private tokenizeInternal(text: string, initialMode: string): ILexingResult {\n let i,\n j,\n k,\n matchAltImage,\n longerAlt,\n matchedImage: string | null,\n payload,\n altPayload,\n imageLength,\n group,\n tokType,\n newToken: IToken,\n errLength,\n droppedChar,\n msg,\n match;\n const orgText = text;\n const orgLength = orgText.length;\n let offset = 0;\n let matchedTokensIndex = 0;\n // initializing the tokensArray to the \"guessed\" size.\n // guessing too little will still reduce the number of array re-sizes on pushes.\n // guessing too large (Tested by guessing x4 too large) may cost a bit more of memory\n // but would still have a faster runtime by avoiding (All but one) array resizing.\n const guessedNumberOfTokens = this.hasCustom\n ? 0 // will break custom token pattern APIs the matchedTokens array will contain undefined elements.\n : Math.floor(text.length / 10);\n const matchedTokens = new Array(guessedNumberOfTokens);\n const errors: ILexingError[] = [];\n let line = this.trackStartLines ? 1 : undefined;\n let column = this.trackStartLines ? 1 : undefined;\n const groups: any = cloneEmptyGroups(this.emptyGroups);\n const trackLines = this.trackStartLines;\n const lineTerminatorPattern = this.config.lineTerminatorsPattern;\n\n let currModePatternsLength = 0;\n let patternIdxToConfig: IPatternConfig[] = [];\n let currCharCodeToPatternIdxToConfig: {\n [charCode: number]: IPatternConfig[];\n } = [];\n\n const modeStack: string[] = [];\n\n const emptyArray: IPatternConfig[] = [];\n Object.freeze(emptyArray);\n let getPossiblePatterns!: (charCode: number) => IPatternConfig[];\n\n function getPossiblePatternsSlow() {\n return patternIdxToConfig;\n }\n\n function getPossiblePatternsOptimized(charCode: number): IPatternConfig[] {\n const optimizedCharIdx = charCodeToOptimizedIndex(charCode);\n const possiblePatterns =\n currCharCodeToPatternIdxToConfig[optimizedCharIdx];\n if (possiblePatterns === undefined) {\n return emptyArray;\n } else {\n return possiblePatterns;\n }\n }\n\n const pop_mode = (popToken: IToken) => {\n // TODO: perhaps avoid this error in the edge case there is no more input?\n if (\n modeStack.length === 1 &&\n // if we have both a POP_MODE and a PUSH_MODE this is in-fact a \"transition\"\n // So no error should occur.\n popToken.tokenType.PUSH_MODE === undefined\n ) {\n // if we try to pop the last mode there lexer will no longer have ANY mode.\n // thus the pop is ignored, an error will be created and the lexer will continue parsing in the previous mode.\n const msg =\n this.config.errorMessageProvider.buildUnableToPopLexerModeMessage(\n popToken,\n );\n\n errors.push({\n offset: popToken.startOffset,\n line: popToken.startLine,\n column: popToken.startColumn,\n length: popToken.image.length,\n message: msg,\n });\n } else {\n modeStack.pop();\n const newMode = last(modeStack)!;\n patternIdxToConfig = this.patternIdxToConfig[newMode];\n currCharCodeToPatternIdxToConfig =\n this.charCodeToPatternIdxToConfig[newMode];\n currModePatternsLength = patternIdxToConfig.length;\n const modeCanBeOptimized =\n this.canModeBeOptimized[newMode] && this.config.safeMode === false;\n\n if (currCharCodeToPatternIdxToConfig && modeCanBeOptimized) {\n getPossiblePatterns = getPossiblePatternsOptimized;\n } else {\n getPossiblePatterns = getPossiblePatternsSlow;\n }\n }\n };\n\n function push_mode(this: Lexer, newMode: string) {\n modeStack.push(newMode);\n currCharCodeToPatternIdxToConfig =\n this.charCodeToPatternIdxToConfig[newMode];\n\n patternIdxToConfig = this.patternIdxToConfig[newMode];\n currModePatternsLength = patternIdxToConfig.length;\n\n currModePatternsLength = patternIdxToConfig.length;\n const modeCanBeOptimized =\n this.canModeBeOptimized[newMode] && this.config.safeMode === false;\n\n if (currCharCodeToPatternIdxToConfig && modeCanBeOptimized) {\n getPossiblePatterns = getPossiblePatternsOptimized;\n } else {\n getPossiblePatterns = getPossiblePatternsSlow;\n }\n }\n\n // this pattern seems to avoid a V8 de-optimization, although that de-optimization does not\n // seem to matter performance wise.\n push_mode.call(this, initialMode);\n\n let currConfig!: IPatternConfig;\n\n const recoveryEnabled = this.config.recoveryEnabled;\n\n while (offset < orgLength) {\n matchedImage = null;\n\n const nextCharCode = orgText.charCodeAt(offset);\n const chosenPatternIdxToConfig = getPossiblePatterns(nextCharCode);\n const chosenPatternsLength = chosenPatternIdxToConfig.length;\n\n for (i = 0; i < chosenPatternsLength; i++) {\n currConfig = chosenPatternIdxToConfig[i];\n const currPattern = currConfig.pattern;\n payload = null;\n\n // manually in-lined because > 600 chars won't be in-lined in V8\n const singleCharCode = currConfig.short;\n if (singleCharCode !== false) {\n if (nextCharCode === singleCharCode) {\n // single character string\n matchedImage = currPattern as string;\n }\n } else if (currConfig.isCustom === true) {\n match = (currPattern as IRegExpExec).exec(\n orgText,\n offset,\n matchedTokens,\n groups,\n );\n if (match !== null) {\n matchedImage = match[0];\n if ((match as CustomPatternMatcherReturn).payload !== undefined) {\n payload = (match as CustomPatternMatcherReturn).payload;\n }\n } else {\n matchedImage = null;\n }\n } else {\n this.updateLastIndex(currPattern as RegExp, offset);\n matchedImage = this.match(currPattern as RegExp, text, offset);\n }\n\n if (matchedImage !== null) {\n // even though this pattern matched we must try a another longer alternative.\n // this can be used to prioritize keywords over identifiers\n longerAlt = currConfig.longerAlt;\n if (longerAlt !== undefined) {\n // TODO: micro optimize, avoid extra prop access\n // by saving/linking longerAlt on the original config?\n const longerAltLength = longerAlt.length;\n for (k = 0; k < longerAltLength; k++) {\n const longerAltConfig = patternIdxToConfig[longerAlt[k]];\n const longerAltPattern = longerAltConfig.pattern;\n altPayload = null;\n\n // single Char can never be a longer alt so no need to test it.\n // manually in-lined because > 600 chars won't be in-lined in V8\n if (longerAltConfig.isCustom === true) {\n match = (longerAltPattern as IRegExpExec).exec(\n orgText,\n offset,\n matchedTokens,\n groups,\n );\n if (match !== null) {\n matchAltImage = match[0];\n if (\n (match as CustomPatternMatcherReturn).payload !== undefined\n ) {\n altPayload = (match as CustomPatternMatcherReturn).payload;\n }\n } else {\n matchAltImage = null;\n }\n } else {\n this.updateLastIndex(longerAltPattern as RegExp, offset);\n matchAltImage = this.match(\n longerAltPattern as RegExp,\n text,\n offset,\n );\n }\n\n if (matchAltImage && matchAltImage.length > matchedImage.length) {\n matchedImage = matchAltImage;\n payload = altPayload;\n currConfig = longerAltConfig;\n // Exit the loop early after matching one of the longer alternatives\n // The first matched alternative takes precedence\n break;\n }\n }\n }\n break;\n }\n }\n\n // successful match\n if (matchedImage !== null) {\n imageLength = matchedImage.length;\n group = currConfig.group;\n if (group !== undefined) {\n tokType = currConfig.tokenTypeIdx;\n // TODO: \"offset + imageLength\" and the new column may be computed twice in case of \"full\" location information inside\n // createFullToken method\n newToken = this.createTokenInstance(\n matchedImage,\n offset,\n tokType,\n currConfig.tokenType,\n line,\n column,\n imageLength,\n );\n\n this.handlePayload(newToken, payload);\n\n // TODO: optimize NOOP in case there are no special groups?\n if (group === false) {\n matchedTokensIndex = this.addToken(\n matchedTokens,\n matchedTokensIndex,\n newToken,\n );\n } else {\n groups[group].push(newToken);\n }\n }\n text = this.chopInput(text, imageLength);\n offset = offset + imageLength;\n\n // TODO: with newlines the column may be assigned twice\n column = this.computeNewColumn(column!, imageLength);\n\n if (trackLines === true && currConfig.canLineTerminator === true) {\n let numOfLTsInMatch = 0;\n let foundTerminator;\n let lastLTEndOffset: number;\n lineTerminatorPattern.lastIndex = 0;\n do {\n foundTerminator = lineTerminatorPattern.test(matchedImage);\n if (foundTerminator === true) {\n lastLTEndOffset = lineTerminatorPattern.lastIndex - 1;\n numOfLTsInMatch++;\n }\n } while (foundTerminator === true);\n\n if (numOfLTsInMatch !== 0) {\n line = line! + numOfLTsInMatch;\n column = imageLength - lastLTEndOffset!;\n this.updateTokenEndLineColumnLocation(\n newToken!,\n group!,\n lastLTEndOffset!,\n numOfLTsInMatch,\n line,\n column,\n imageLength,\n );\n }\n }\n // will be NOOP if no modes present\n this.handleModes(currConfig, pop_mode, push_mode, newToken!);\n } else {\n // error recovery, drop characters until we identify a valid token's start point\n const errorStartOffset = offset;\n const errorLine = line;\n const errorColumn = column;\n let foundResyncPoint = recoveryEnabled === false;\n\n while (foundResyncPoint === false && offset < orgLength) {\n // Identity Func (when sticky flag is enabled)\n text = this.chopInput(text, 1);\n offset++;\n for (j = 0; j < currModePatternsLength; j++) {\n const currConfig = patternIdxToConfig[j];\n const currPattern = currConfig.pattern;\n\n // manually in-lined because > 600 chars won't be in-lined in V8\n const singleCharCode = currConfig.short;\n if (singleCharCode !== false) {\n if (orgText.charCodeAt(offset) === singleCharCode) {\n // single character string\n foundResyncPoint = true;\n }\n } else if (currConfig.isCustom === true) {\n foundResyncPoint =\n (currPattern as IRegExpExec).exec(\n orgText,\n offset,\n matchedTokens,\n groups,\n ) !== null;\n } else {\n this.updateLastIndex(currPattern as RegExp, offset);\n foundResyncPoint = (currPattern as RegExp).exec(text) !== null;\n }\n\n if (foundResyncPoint === true) {\n break;\n }\n }\n }\n\n errLength = offset - errorStartOffset;\n column = this.computeNewColumn(column!, errLength);\n // at this point we either re-synced or reached the end of the input text\n msg = this.config.errorMessageProvider.buildUnexpectedCharactersMessage(\n orgText,\n errorStartOffset,\n errLength,\n errorLine,\n errorColumn,\n );\n errors.push({\n offset: errorStartOffset,\n line: errorLine,\n column: errorColumn,\n length: errLength,\n message: msg,\n });\n\n if (recoveryEnabled === false) {\n break;\n }\n }\n }\n\n // if we do have custom patterns which push directly into the\n // TODO: custom tokens should not push directly??\n if (!this.hasCustom) {\n // if we guessed a too large size for the tokens array this will shrink it to the right size.\n matchedTokens.length = matchedTokensIndex;\n }\n\n return {\n tokens: matchedTokens,\n groups: groups,\n errors: errors,\n };\n }\n\n private handleModes(\n config: IPatternConfig,\n pop_mode: (tok: IToken) => void,\n push_mode: (this: Lexer, pushMode: string) => void,\n newToken: IToken,\n ) {\n if (config.pop === true) {\n // need to save the PUSH_MODE property as if the mode is popped\n // patternIdxToPopMode is updated to reflect the new mode after popping the stack\n const pushMode = config.push;\n pop_mode(newToken);\n if (pushMode !== undefined) {\n push_mode.call(this, pushMode);\n }\n } else if (config.push !== undefined) {\n push_mode.call(this, config.push);\n }\n }\n\n private chopInput(text: string, length: number): string {\n return text.substring(length);\n }\n\n private updateLastIndex(regExp: RegExp, newLastIndex: number): void {\n regExp.lastIndex = newLastIndex;\n }\n\n // TODO: decrease this under 600 characters? inspect stripping comments option in TSC compiler\n private updateTokenEndLineColumnLocation(\n newToken: IToken,\n group: string | false,\n lastLTIdx: number,\n numOfLTsInMatch: number,\n line: number,\n column: number,\n imageLength: number,\n ): void {\n let lastCharIsLT, fixForEndingInLT;\n if (group !== undefined) {\n // a none skipped multi line Token, need to update endLine/endColumn\n lastCharIsLT = lastLTIdx === imageLength - 1;\n fixForEndingInLT = lastCharIsLT ? -1 : 0;\n if (!(numOfLTsInMatch === 1 && lastCharIsLT === true)) {\n // if a token ends in a LT that last LT only affects the line numbering of following Tokens\n newToken.endLine = line + fixForEndingInLT;\n // the last LT in a token does not affect the endColumn either as the [columnStart ... columnEnd)\n // inclusive to exclusive range.\n newToken.endColumn = column - 1 + -fixForEndingInLT;\n }\n // else single LT in the last character of a token, no need to modify the endLine/EndColumn\n }\n }\n\n private computeNewColumn(oldColumn: number, imageLength: number) {\n return oldColumn + imageLength;\n }\n\n // Place holder, will be replaced by the correct variant according to the locationTracking option at runtime.\n /* istanbul ignore next - place holder */\n private createTokenInstance!: (...args: any[]) => IToken;\n\n private createOffsetOnlyToken(\n image: string,\n startOffset: number,\n tokenTypeIdx: number,\n tokenType: TokenType,\n ) {\n return {\n image,\n startOffset,\n tokenTypeIdx,\n tokenType,\n };\n }\n\n private createStartOnlyToken(\n image: string,\n startOffset: number,\n tokenTypeIdx: number,\n tokenType: TokenType,\n startLine: number,\n startColumn: number,\n ) {\n return {\n image,\n startOffset,\n startLine,\n startColumn,\n tokenTypeIdx,\n tokenType,\n };\n }\n\n private createFullToken(\n image: string,\n startOffset: number,\n tokenTypeIdx: number,\n tokenType: TokenType,\n startLine: number,\n startColumn: number,\n imageLength: number,\n ): IToken {\n return {\n image,\n startOffset,\n endOffset: startOffset + imageLength - 1,\n startLine,\n endLine: startLine,\n startColumn,\n endColumn: startColumn + imageLength - 1,\n tokenTypeIdx,\n tokenType,\n };\n }\n\n // Place holder, will be replaced by the correct variant according to the locationTracking option at runtime.\n /* istanbul ignore next - place holder */\n private addToken!: (\n tokenVector: IToken[],\n index: number,\n tokenToAdd: IToken,\n ) => number;\n\n private addTokenUsingPush(\n tokenVector: IToken[],\n index: number,\n tokenToAdd: IToken,\n ): number {\n tokenVector.push(tokenToAdd);\n return index;\n }\n\n private addTokenUsingMemberAccess(\n tokenVector: IToken[],\n index: number,\n tokenToAdd: IToken,\n ): number {\n tokenVector[index] = tokenToAdd;\n index++;\n return index;\n }\n\n // Place holder, will be replaced by the correct variant according to the hasCustom flag option at runtime.\n private handlePayload: (token: IToken, payload: any) => void;\n\n private handlePayloadNoCustom(token: IToken, payload: any): void {}\n\n private handlePayloadWithCustom(token: IToken, payload: any): void {\n if (payload !== null) {\n token.payload = payload;\n }\n }\n\n // place holder to be replaced with chosen alternative at runtime\n private match!: (\n pattern: RegExp,\n text: string,\n offset: number,\n ) => string | null;\n\n private matchWithTest(\n pattern: RegExp,\n text: string,\n offset: number,\n ): string | null {\n const found = pattern.test(text);\n if (found === true) {\n return text.substring(offset, pattern.lastIndex);\n }\n return null;\n }\n\n private matchWithExec(pattern: RegExp, text: string): string | null {\n const regExpArray = pattern.exec(text);\n return regExpArray !== null ? regExpArray[0] : null;\n }\n\n // Duplicated from the parser's perf trace trait to allow future extraction\n // of the lexer to a separate package.\n TRACE_INIT = (phaseDesc: string, phaseImpl: () => T): T => {\n // No need to optimize this using NOOP pattern because\n // It is not called in a hot spot...\n if (this.traceInitPerf === true) {\n this.traceInitIndent++;\n const indent = new Array(this.traceInitIndent + 1).join(\"\\t\");\n if (this.traceInitIndent < this.traceInitMaxIdent) {\n console.log(`${indent}--> <${phaseDesc}>`);\n }\n const { time, value } = timer(phaseImpl);\n /* istanbul ignore next - Difficult to reproduce specific performance behavior (>10ms) in tests */\n const traceMethod = time > 10 ? console.warn : console.log;\n if (this.traceInitIndent < this.traceInitMaxIdent) {\n traceMethod(`${indent}<-- <${phaseDesc}> time: ${time}ms`);\n }\n this.traceInitIndent--;\n return value;\n } else {\n return phaseImpl();\n }\n };\n}\n", "import { has, isString, isUndefined } from \"lodash-es\";\nimport { Lexer } from \"./lexer_public.js\";\nimport { augmentTokenTypes, tokenStructuredMatcher } from \"./tokens.js\";\nimport { IToken, ITokenConfig, TokenType } from \"@chevrotain/types\";\n\nexport function tokenLabel(tokType: TokenType): string {\n if (hasTokenLabel(tokType)) {\n return tokType.LABEL;\n } else {\n return tokType.name;\n }\n}\n\nexport function tokenName(tokType: TokenType): string {\n return tokType.name;\n}\n\nexport function hasTokenLabel(\n obj: TokenType,\n): obj is TokenType & Pick, \"LABEL\"> {\n return isString(obj.LABEL) && obj.LABEL !== \"\";\n}\n\nconst PARENT = \"parent\";\nconst CATEGORIES = \"categories\";\nconst LABEL = \"label\";\nconst GROUP = \"group\";\nconst PUSH_MODE = \"push_mode\";\nconst POP_MODE = \"pop_mode\";\nconst LONGER_ALT = \"longer_alt\";\nconst LINE_BREAKS = \"line_breaks\";\nconst START_CHARS_HINT = \"start_chars_hint\";\n\nexport function createToken(config: ITokenConfig): TokenType {\n return createTokenInternal(config);\n}\n\nfunction createTokenInternal(config: ITokenConfig): TokenType {\n const pattern = config.pattern;\n\n const tokenType: TokenType = {};\n tokenType.name = config.name;\n\n if (!isUndefined(pattern)) {\n tokenType.PATTERN = pattern;\n }\n\n if (has(config, PARENT)) {\n throw (\n \"The parent property is no longer supported.\\n\" +\n \"See: https://github.com/chevrotain/chevrotain/issues/564#issuecomment-349062346 for details.\"\n );\n }\n\n if (has(config, CATEGORIES)) {\n // casting to ANY as this will be fixed inside `augmentTokenTypes``\n tokenType.CATEGORIES = config[CATEGORIES];\n }\n\n augmentTokenTypes([tokenType]);\n\n if (has(config, LABEL)) {\n tokenType.LABEL = config[LABEL];\n }\n\n if (has(config, GROUP)) {\n tokenType.GROUP = config[GROUP];\n }\n\n if (has(config, POP_MODE)) {\n tokenType.POP_MODE = config[POP_MODE];\n }\n\n if (has(config, PUSH_MODE)) {\n tokenType.PUSH_MODE = config[PUSH_MODE];\n }\n\n if (has(config, LONGER_ALT)) {\n tokenType.LONGER_ALT = config[LONGER_ALT];\n }\n\n if (has(config, LINE_BREAKS)) {\n tokenType.LINE_BREAKS = config[LINE_BREAKS];\n }\n\n if (has(config, START_CHARS_HINT)) {\n tokenType.START_CHARS_HINT = config[START_CHARS_HINT];\n }\n\n return tokenType;\n}\n\nexport const EOF = createToken({ name: \"EOF\", pattern: Lexer.NA });\naugmentTokenTypes([EOF]);\n\nexport function createTokenInstance(\n tokType: TokenType,\n image: string,\n startOffset: number,\n endOffset: number,\n startLine: number,\n endLine: number,\n startColumn: number,\n endColumn: number,\n): IToken {\n return {\n image,\n startOffset,\n endOffset,\n startLine,\n endLine,\n startColumn,\n endColumn,\n tokenTypeIdx: (tokType).tokenTypeIdx,\n tokenType: tokType,\n };\n}\n\nexport function tokenMatcher(token: IToken, tokType: TokenType): boolean {\n return tokenStructuredMatcher(token, tokType);\n}\n", "import { hasTokenLabel, tokenLabel } from \"../scan/tokens_public.js\";\nimport { first, map, reduce } from \"lodash-es\";\nimport {\n Alternation,\n getProductionDslName,\n NonTerminal,\n Rule,\n Terminal,\n} from \"@chevrotain/gast\";\nimport {\n IParserErrorMessageProvider,\n IProductionWithOccurrence,\n TokenType,\n} from \"@chevrotain/types\";\nimport {\n IGrammarResolverErrorMessageProvider,\n IGrammarValidatorErrorMessageProvider,\n} from \"./grammar/types.js\";\n\nexport const defaultParserErrorProvider: IParserErrorMessageProvider = {\n buildMismatchTokenMessage({ expected, actual, previous, ruleName }): string {\n const hasLabel = hasTokenLabel(expected);\n const expectedMsg = hasLabel\n ? `--> ${tokenLabel(expected)} <--`\n : `token of type --> ${expected.name} <--`;\n\n const msg = `Expecting ${expectedMsg} but found --> '${actual.image}' <--`;\n\n return msg;\n },\n\n buildNotAllInputParsedMessage({ firstRedundant, ruleName }): string {\n return \"Redundant input, expecting EOF but found: \" + firstRedundant.image;\n },\n\n buildNoViableAltMessage({\n expectedPathsPerAlt,\n actual,\n previous,\n customUserDescription,\n ruleName,\n }): string {\n const errPrefix = \"Expecting: \";\n // TODO: issue: No Viable Alternative Error may have incomplete details. #502\n const actualText = first(actual)!.image;\n const errSuffix = \"\\nbut found: '\" + actualText + \"'\";\n\n if (customUserDescription) {\n return errPrefix + customUserDescription + errSuffix;\n } else {\n const allLookAheadPaths = reduce(\n expectedPathsPerAlt,\n (result, currAltPaths) => result.concat(currAltPaths),\n [] as TokenType[][],\n );\n const nextValidTokenSequences = map(\n allLookAheadPaths,\n (currPath) =>\n `[${map(currPath, (currTokenType) => tokenLabel(currTokenType)).join(\n \", \",\n )}]`,\n );\n const nextValidSequenceItems = map(\n nextValidTokenSequences,\n (itemMsg, idx) => ` ${idx + 1}. ${itemMsg}`,\n );\n const calculatedDescription = `one of these possible Token sequences:\\n${nextValidSequenceItems.join(\n \"\\n\",\n )}`;\n\n return errPrefix + calculatedDescription + errSuffix;\n }\n },\n\n buildEarlyExitMessage({\n expectedIterationPaths,\n actual,\n customUserDescription,\n ruleName,\n }): string {\n const errPrefix = \"Expecting: \";\n // TODO: issue: No Viable Alternative Error may have incomplete details. #502\n const actualText = first(actual)!.image;\n const errSuffix = \"\\nbut found: '\" + actualText + \"'\";\n\n if (customUserDescription) {\n return errPrefix + customUserDescription + errSuffix;\n } else {\n const nextValidTokenSequences = map(\n expectedIterationPaths,\n (currPath) =>\n `[${map(currPath, (currTokenType) => tokenLabel(currTokenType)).join(\n \",\",\n )}]`,\n );\n const calculatedDescription =\n `expecting at least one iteration which starts with one of these possible Token sequences::\\n ` +\n `<${nextValidTokenSequences.join(\" ,\")}>`;\n\n return errPrefix + calculatedDescription + errSuffix;\n }\n },\n};\n\nObject.freeze(defaultParserErrorProvider);\n\nexport const defaultGrammarResolverErrorProvider: IGrammarResolverErrorMessageProvider =\n {\n buildRuleNotFoundError(\n topLevelRule: Rule,\n undefinedRule: NonTerminal,\n ): string {\n const msg =\n \"Invalid grammar, reference to a rule which is not defined: ->\" +\n undefinedRule.nonTerminalName +\n \"<-\\n\" +\n \"inside top level rule: ->\" +\n topLevelRule.name +\n \"<-\";\n return msg;\n },\n };\n\nexport const defaultGrammarValidatorErrorProvider: IGrammarValidatorErrorMessageProvider =\n {\n buildDuplicateFoundError(\n topLevelRule: Rule,\n duplicateProds: IProductionWithOccurrence[],\n ): string {\n function getExtraProductionArgument(\n prod: IProductionWithOccurrence,\n ): string {\n if (prod instanceof Terminal) {\n return prod.terminalType.name;\n } else if (prod instanceof NonTerminal) {\n return prod.nonTerminalName;\n } else {\n return \"\";\n }\n }\n\n const topLevelName = topLevelRule.name;\n const duplicateProd = first(duplicateProds)!;\n const index = duplicateProd.idx;\n const dslName = getProductionDslName(duplicateProd);\n const extraArgument = getExtraProductionArgument(duplicateProd);\n\n const hasExplicitIndex = index > 0;\n let msg = `->${dslName}${hasExplicitIndex ? index : \"\"}<- ${\n extraArgument ? `with argument: ->${extraArgument}<-` : \"\"\n }\n appears more than once (${\n duplicateProds.length\n } times) in the top level rule: ->${topLevelName}<-. \n For further details see: https://chevrotain.io/docs/FAQ.html#NUMERICAL_SUFFIXES \n `;\n\n // white space trimming time! better to trim afterwards as it allows to use WELL formatted multi line template strings...\n msg = msg.replace(/[ \\t]+/g, \" \");\n msg = msg.replace(/\\s\\s+/g, \"\\n\");\n\n return msg;\n },\n\n buildNamespaceConflictError(rule: Rule): string {\n const errMsg =\n `Namespace conflict found in grammar.\\n` +\n `The grammar has both a Terminal(Token) and a Non-Terminal(Rule) named: <${rule.name}>.\\n` +\n `To resolve this make sure each Terminal and Non-Terminal names are unique\\n` +\n `This is easy to accomplish by using the convention that Terminal names start with an uppercase letter\\n` +\n `and Non-Terminal names start with a lower case letter.`;\n\n return errMsg;\n },\n\n buildAlternationPrefixAmbiguityError(options: {\n topLevelRule: Rule;\n prefixPath: TokenType[];\n ambiguityIndices: number[];\n alternation: Alternation;\n }): string {\n const pathMsg = map(options.prefixPath, (currTok) =>\n tokenLabel(currTok),\n ).join(\", \");\n const occurrence =\n options.alternation.idx === 0 ? \"\" : options.alternation.idx;\n const errMsg =\n `Ambiguous alternatives: <${options.ambiguityIndices.join(\n \" ,\",\n )}> due to common lookahead prefix\\n` +\n `in inside <${options.topLevelRule.name}> Rule,\\n` +\n `<${pathMsg}> may appears as a prefix path in all these alternatives.\\n` +\n `See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#COMMON_PREFIX\\n` +\n `For Further details.`;\n\n return errMsg;\n },\n\n buildAlternationAmbiguityError(options: {\n topLevelRule: Rule;\n prefixPath: TokenType[];\n ambiguityIndices: number[];\n alternation: Alternation;\n }): string {\n const pathMsg = map(options.prefixPath, (currtok) =>\n tokenLabel(currtok),\n ).join(\", \");\n const occurrence =\n options.alternation.idx === 0 ? \"\" : options.alternation.idx;\n let currMessage =\n `Ambiguous Alternatives Detected: <${options.ambiguityIndices.join(\n \" ,\",\n )}> in ` +\n ` inside <${options.topLevelRule.name}> Rule,\\n` +\n `<${pathMsg}> may appears as a prefix path in all these alternatives.\\n`;\n\n currMessage =\n currMessage +\n `See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#AMBIGUOUS_ALTERNATIVES\\n` +\n `For Further details.`;\n return currMessage;\n },\n\n buildEmptyRepetitionError(options: {\n topLevelRule: Rule;\n repetition: IProductionWithOccurrence;\n }): string {\n let dslName = getProductionDslName(options.repetition);\n if (options.repetition.idx !== 0) {\n dslName += options.repetition.idx;\n }\n\n const errMsg =\n `The repetition <${dslName}> within Rule <${options.topLevelRule.name}> can never consume any tokens.\\n` +\n `This could lead to an infinite loop.`;\n\n return errMsg;\n },\n\n // TODO: remove - `errors_public` from nyc.config.js exclude\n // once this method is fully removed from this file\n buildTokenNameError(options: {\n tokenType: TokenType;\n expectedPattern: RegExp;\n }): string {\n /* istanbul ignore next */\n return \"deprecated\";\n },\n\n buildEmptyAlternationError(options: {\n topLevelRule: Rule;\n alternation: Alternation;\n emptyChoiceIdx: number;\n }): string {\n const errMsg =\n `Ambiguous empty alternative: <${options.emptyChoiceIdx + 1}>` +\n ` in inside <${options.topLevelRule.name}> Rule.\\n` +\n `Only the last alternative may be an empty alternative.`;\n\n return errMsg;\n },\n\n buildTooManyAlternativesError(options: {\n topLevelRule: Rule;\n alternation: Alternation;\n }): string {\n const errMsg =\n `An Alternation cannot have more than 256 alternatives:\\n` +\n ` inside <${\n options.topLevelRule.name\n }> Rule.\\n has ${\n options.alternation.definition.length + 1\n } alternatives.`;\n\n return errMsg;\n },\n\n buildLeftRecursionError(options: {\n topLevelRule: Rule;\n leftRecursionPath: Rule[];\n }): string {\n const ruleName = options.topLevelRule.name;\n const pathNames = map(\n options.leftRecursionPath,\n (currRule) => currRule.name,\n );\n const leftRecursivePath = `${ruleName} --> ${pathNames\n .concat([ruleName])\n .join(\" --> \")}`;\n const errMsg =\n `Left Recursion found in grammar.\\n` +\n `rule: <${ruleName}> can be invoked from itself (directly or indirectly)\\n` +\n `without consuming any Tokens. The grammar path that causes this is: \\n ${leftRecursivePath}\\n` +\n ` To fix this refactor your grammar to remove the left recursion.\\n` +\n `see: https://en.wikipedia.org/wiki/LL_parser#Left_factoring.`;\n\n return errMsg;\n },\n\n // TODO: remove - `errors_public` from nyc.config.js exclude\n // once this method is fully removed from this file\n buildInvalidRuleNameError(options: {\n topLevelRule: Rule;\n expectedPattern: RegExp;\n }): string {\n /* istanbul ignore next */\n return \"deprecated\";\n },\n\n buildDuplicateRuleNameError(options: {\n topLevelRule: Rule | string;\n grammarName: string;\n }): string {\n let ruleName;\n if (options.topLevelRule instanceof Rule) {\n ruleName = options.topLevelRule.name;\n } else {\n ruleName = options.topLevelRule;\n }\n\n const errMsg = `Duplicate definition, rule: ->${ruleName}<- is already defined in the grammar: ->${options.grammarName}<-`;\n\n return errMsg;\n },\n };\n", "import {\n IParserUnresolvedRefDefinitionError,\n ParserDefinitionErrorType,\n} from \"../parser/parser.js\";\nimport { forEach, values } from \"lodash-es\";\nimport { GAstVisitor, NonTerminal, Rule } from \"@chevrotain/gast\";\nimport {\n IGrammarResolverErrorMessageProvider,\n IParserDefinitionError,\n} from \"./types.js\";\n\nexport function resolveGrammar(\n topLevels: Record,\n errMsgProvider: IGrammarResolverErrorMessageProvider,\n): IParserDefinitionError[] {\n const refResolver = new GastRefResolverVisitor(topLevels, errMsgProvider);\n refResolver.resolveRefs();\n return refResolver.errors;\n}\n\nexport class GastRefResolverVisitor extends GAstVisitor {\n public errors: IParserUnresolvedRefDefinitionError[] = [];\n private currTopLevel: Rule;\n\n constructor(\n private nameToTopRule: Record,\n private errMsgProvider: IGrammarResolverErrorMessageProvider,\n ) {\n super();\n }\n\n public resolveRefs(): void {\n forEach(values(this.nameToTopRule), (prod) => {\n this.currTopLevel = prod;\n prod.accept(this);\n });\n }\n\n public visitNonTerminal(node: NonTerminal): void {\n const ref = this.nameToTopRule[node.nonTerminalName];\n\n if (!ref) {\n const msg = this.errMsgProvider.buildRuleNotFoundError(\n this.currTopLevel,\n node,\n );\n this.errors.push({\n message: msg,\n type: ParserDefinitionErrorType.UNRESOLVED_SUBRULE_REF,\n ruleName: this.currTopLevel.name,\n unresolvedRefName: node.nonTerminalName,\n });\n } else {\n node.referencedRule = ref;\n }\n }\n}\n", "import {\n clone,\n drop,\n dropRight,\n first as _first,\n forEach,\n isEmpty,\n last,\n} from \"lodash-es\";\nimport { first } from \"./first.js\";\nimport { RestWalker } from \"./rest.js\";\nimport { TokenMatcher } from \"../parser/parser.js\";\nimport {\n Alternation,\n Alternative,\n NonTerminal,\n Option,\n Repetition,\n RepetitionMandatory,\n RepetitionMandatoryWithSeparator,\n RepetitionWithSeparator,\n Rule,\n Terminal,\n} from \"@chevrotain/gast\";\nimport {\n IGrammarPath,\n IProduction,\n ISyntacticContentAssistPath,\n IToken,\n ITokenGrammarPath,\n TokenType,\n} from \"@chevrotain/types\";\n\nexport abstract class AbstractNextPossibleTokensWalker extends RestWalker {\n protected possibleTokTypes: TokenType[] = [];\n protected ruleStack: string[];\n protected occurrenceStack: number[];\n\n protected nextProductionName = \"\";\n protected nextProductionOccurrence = 0;\n protected found = false;\n protected isAtEndOfPath = false;\n\n constructor(\n protected topProd: Rule,\n protected path: IGrammarPath,\n ) {\n super();\n }\n\n startWalking(): TokenType[] {\n this.found = false;\n\n if (this.path.ruleStack[0] !== this.topProd.name) {\n throw Error(\"The path does not start with the walker's top Rule!\");\n }\n\n // immutable for the win\n this.ruleStack = clone(this.path.ruleStack).reverse(); // intelij bug requires assertion\n this.occurrenceStack = clone(this.path.occurrenceStack).reverse(); // intelij bug requires assertion\n\n // already verified that the first production is valid, we now seek the 2nd production\n this.ruleStack.pop();\n this.occurrenceStack.pop();\n\n this.updateExpectedNext();\n this.walk(this.topProd);\n\n return this.possibleTokTypes;\n }\n\n walk(\n prod: { definition: IProduction[] },\n prevRest: IProduction[] = [],\n ): void {\n // stop scanning once we found the path\n if (!this.found) {\n super.walk(prod, prevRest);\n }\n }\n\n walkProdRef(\n refProd: NonTerminal,\n currRest: IProduction[],\n prevRest: IProduction[],\n ): void {\n // found the next production, need to keep walking in it\n if (\n refProd.referencedRule.name === this.nextProductionName &&\n refProd.idx === this.nextProductionOccurrence\n ) {\n const fullRest = currRest.concat(prevRest);\n this.updateExpectedNext();\n this.walk(refProd.referencedRule, fullRest);\n }\n }\n\n updateExpectedNext(): void {\n // need to consume the Terminal\n if (isEmpty(this.ruleStack)) {\n // must reset nextProductionXXX to avoid walking down another Top Level production while what we are\n // really seeking is the last Terminal...\n this.nextProductionName = \"\";\n this.nextProductionOccurrence = 0;\n this.isAtEndOfPath = true;\n } else {\n this.nextProductionName = this.ruleStack.pop()!;\n this.nextProductionOccurrence = this.occurrenceStack.pop()!;\n }\n }\n}\n\nexport class NextAfterTokenWalker extends AbstractNextPossibleTokensWalker {\n private nextTerminalName = \"\";\n private nextTerminalOccurrence = 0;\n\n constructor(\n topProd: Rule,\n protected path: ITokenGrammarPath,\n ) {\n super(topProd, path);\n this.nextTerminalName = this.path.lastTok.name;\n this.nextTerminalOccurrence = this.path.lastTokOccurrence;\n }\n\n walkTerminal(\n terminal: Terminal,\n currRest: IProduction[],\n prevRest: IProduction[],\n ): void {\n if (\n this.isAtEndOfPath &&\n terminal.terminalType.name === this.nextTerminalName &&\n terminal.idx === this.nextTerminalOccurrence &&\n !this.found\n ) {\n const fullRest = currRest.concat(prevRest);\n const restProd = new Alternative({ definition: fullRest });\n this.possibleTokTypes = first(restProd);\n this.found = true;\n }\n }\n}\n\nexport type AlternativesFirstTokens = TokenType[][];\n\nexport interface IFirstAfterRepetition {\n token: TokenType | undefined;\n occurrence: number | undefined;\n isEndOfRule: boolean | undefined;\n}\n\n/**\n * This walker only \"walks\" a single \"TOP\" level in the Grammar Ast, this means\n * it never \"follows\" production refs\n */\nexport class AbstractNextTerminalAfterProductionWalker extends RestWalker {\n protected result: IFirstAfterRepetition = {\n token: undefined,\n occurrence: undefined,\n isEndOfRule: undefined,\n };\n\n constructor(\n protected topRule: Rule,\n protected occurrence: number,\n ) {\n super();\n }\n\n startWalking(): IFirstAfterRepetition {\n this.walk(this.topRule);\n return this.result;\n }\n}\n\nexport class NextTerminalAfterManyWalker extends AbstractNextTerminalAfterProductionWalker {\n walkMany(\n manyProd: Repetition,\n currRest: IProduction[],\n prevRest: IProduction[],\n ): void {\n if (manyProd.idx === this.occurrence) {\n const firstAfterMany = _first(currRest.concat(prevRest));\n this.result.isEndOfRule = firstAfterMany === undefined;\n if (firstAfterMany instanceof Terminal) {\n this.result.token = firstAfterMany.terminalType;\n this.result.occurrence = firstAfterMany.idx;\n }\n } else {\n super.walkMany(manyProd, currRest, prevRest);\n }\n }\n}\n\nexport class NextTerminalAfterManySepWalker extends AbstractNextTerminalAfterProductionWalker {\n walkManySep(\n manySepProd: RepetitionWithSeparator,\n currRest: IProduction[],\n prevRest: IProduction[],\n ): void {\n if (manySepProd.idx === this.occurrence) {\n const firstAfterManySep = _first(currRest.concat(prevRest));\n this.result.isEndOfRule = firstAfterManySep === undefined;\n if (firstAfterManySep instanceof Terminal) {\n this.result.token = firstAfterManySep.terminalType;\n this.result.occurrence = firstAfterManySep.idx;\n }\n } else {\n super.walkManySep(manySepProd, currRest, prevRest);\n }\n }\n}\n\nexport class NextTerminalAfterAtLeastOneWalker extends AbstractNextTerminalAfterProductionWalker {\n walkAtLeastOne(\n atLeastOneProd: RepetitionMandatory,\n currRest: IProduction[],\n prevRest: IProduction[],\n ): void {\n if (atLeastOneProd.idx === this.occurrence) {\n const firstAfterAtLeastOne = _first(currRest.concat(prevRest));\n this.result.isEndOfRule = firstAfterAtLeastOne === undefined;\n if (firstAfterAtLeastOne instanceof Terminal) {\n this.result.token = firstAfterAtLeastOne.terminalType;\n this.result.occurrence = firstAfterAtLeastOne.idx;\n }\n } else {\n super.walkAtLeastOne(atLeastOneProd, currRest, prevRest);\n }\n }\n}\n\n// TODO: reduce code duplication in the AfterWalkers\nexport class NextTerminalAfterAtLeastOneSepWalker extends AbstractNextTerminalAfterProductionWalker {\n walkAtLeastOneSep(\n atleastOneSepProd: RepetitionMandatoryWithSeparator,\n currRest: IProduction[],\n prevRest: IProduction[],\n ): void {\n if (atleastOneSepProd.idx === this.occurrence) {\n const firstAfterfirstAfterAtLeastOneSep = _first(\n currRest.concat(prevRest),\n );\n this.result.isEndOfRule = firstAfterfirstAfterAtLeastOneSep === undefined;\n if (firstAfterfirstAfterAtLeastOneSep instanceof Terminal) {\n this.result.token = firstAfterfirstAfterAtLeastOneSep.terminalType;\n this.result.occurrence = firstAfterfirstAfterAtLeastOneSep.idx;\n }\n } else {\n super.walkAtLeastOneSep(atleastOneSepProd, currRest, prevRest);\n }\n }\n}\n\nexport interface PartialPathAndSuffixes {\n partialPath: TokenType[];\n suffixDef: IProduction[];\n}\n\nexport function possiblePathsFrom(\n targetDef: IProduction[],\n maxLength: number,\n currPath: TokenType[] = [],\n): PartialPathAndSuffixes[] {\n // avoid side effects\n currPath = clone(currPath);\n let result: PartialPathAndSuffixes[] = [];\n let i = 0;\n\n // TODO: avoid inner funcs\n function remainingPathWith(nextDef: IProduction[]) {\n return nextDef.concat(drop(targetDef, i + 1));\n }\n\n // TODO: avoid inner funcs\n function getAlternativesForProd(definition: IProduction[]) {\n const alternatives = possiblePathsFrom(\n remainingPathWith(definition),\n maxLength,\n currPath,\n );\n return result.concat(alternatives);\n }\n\n /**\n * Mandatory productions will halt the loop as the paths computed from their recursive calls will already contain the\n * following (rest) of the targetDef.\n *\n * For optional productions (Option/Repetition/...) the loop will continue to represent the paths that do not include the\n * the optional production.\n */\n while (currPath.length < maxLength && i < targetDef.length) {\n const prod = targetDef[i];\n\n /* istanbul ignore else */\n if (prod instanceof Alternative) {\n return getAlternativesForProd(prod.definition);\n } else if (prod instanceof NonTerminal) {\n return getAlternativesForProd(prod.definition);\n } else if (prod instanceof Option) {\n result = getAlternativesForProd(prod.definition);\n } else if (prod instanceof RepetitionMandatory) {\n const newDef = prod.definition.concat([\n new Repetition({\n definition: prod.definition,\n }),\n ]);\n return getAlternativesForProd(newDef);\n } else if (prod instanceof RepetitionMandatoryWithSeparator) {\n const newDef = [\n new Alternative({ definition: prod.definition }),\n new Repetition({\n definition: [new Terminal({ terminalType: prod.separator })].concat(\n prod.definition,\n ),\n }),\n ];\n return getAlternativesForProd(newDef);\n } else if (prod instanceof RepetitionWithSeparator) {\n const newDef = prod.definition.concat([\n new Repetition({\n definition: [new Terminal({ terminalType: prod.separator })].concat(\n prod.definition,\n ),\n }),\n ]);\n result = getAlternativesForProd(newDef);\n } else if (prod instanceof Repetition) {\n const newDef = prod.definition.concat([\n new Repetition({\n definition: prod.definition,\n }),\n ]);\n result = getAlternativesForProd(newDef);\n } else if (prod instanceof Alternation) {\n forEach(prod.definition, (currAlt) => {\n // TODO: this is a limited check for empty alternatives\n // It would prevent a common case of infinite loops during parser initialization.\n // However **in-directly** empty alternatives may still cause issues.\n if (isEmpty(currAlt.definition) === false) {\n result = getAlternativesForProd(currAlt.definition);\n }\n });\n return result;\n } else if (prod instanceof Terminal) {\n currPath.push(prod.terminalType);\n } else {\n throw Error(\"non exhaustive match\");\n }\n\n i++;\n }\n result.push({\n partialPath: currPath,\n suffixDef: drop(targetDef, i),\n });\n\n return result;\n}\n\ninterface IPathToExamine {\n idx: number;\n def: IProduction[];\n ruleStack: string[];\n occurrenceStack: number[];\n}\n\nexport function nextPossibleTokensAfter(\n initialDef: IProduction[],\n tokenVector: IToken[],\n tokMatcher: TokenMatcher,\n maxLookAhead: number,\n): ISyntacticContentAssistPath[] {\n const EXIT_NON_TERMINAL: any = \"EXIT_NONE_TERMINAL\";\n // to avoid creating a new Array each time.\n const EXIT_NON_TERMINAL_ARR = [EXIT_NON_TERMINAL];\n const EXIT_ALTERNATIVE: any = \"EXIT_ALTERNATIVE\";\n let foundCompletePath = false;\n\n const tokenVectorLength = tokenVector.length;\n const minimalAlternativesIndex = tokenVectorLength - maxLookAhead - 1;\n\n const result: ISyntacticContentAssistPath[] = [];\n\n const possiblePaths: IPathToExamine[] = [];\n possiblePaths.push({\n idx: -1,\n def: initialDef,\n ruleStack: [],\n occurrenceStack: [],\n });\n\n while (!isEmpty(possiblePaths)) {\n const currPath = possiblePaths.pop()!;\n\n // skip alternatives if no more results can be found (assuming deterministic grammar with fixed lookahead)\n if (currPath === EXIT_ALTERNATIVE) {\n if (\n foundCompletePath &&\n last(possiblePaths)!.idx <= minimalAlternativesIndex\n ) {\n // remove irrelevant alternative\n possiblePaths.pop();\n }\n continue;\n }\n\n const currDef = currPath.def;\n const currIdx = currPath.idx;\n const currRuleStack = currPath.ruleStack;\n const currOccurrenceStack = currPath.occurrenceStack;\n\n // For Example: an empty path could exist in a valid grammar in the case of an EMPTY_ALT\n if (isEmpty(currDef)) {\n continue;\n }\n\n const prod = currDef[0];\n /* istanbul ignore else */\n if (prod === EXIT_NON_TERMINAL) {\n const nextPath = {\n idx: currIdx,\n def: drop(currDef),\n ruleStack: dropRight(currRuleStack),\n occurrenceStack: dropRight(currOccurrenceStack),\n };\n possiblePaths.push(nextPath);\n } else if (prod instanceof Terminal) {\n /* istanbul ignore else */\n if (currIdx < tokenVectorLength - 1) {\n const nextIdx = currIdx + 1;\n const actualToken = tokenVector[nextIdx];\n if (tokMatcher!(actualToken, prod.terminalType)) {\n const nextPath = {\n idx: nextIdx,\n def: drop(currDef),\n ruleStack: currRuleStack,\n occurrenceStack: currOccurrenceStack,\n };\n possiblePaths.push(nextPath);\n }\n // end of the line\n } else if (currIdx === tokenVectorLength - 1) {\n // IGNORE ABOVE ELSE\n result.push({\n nextTokenType: prod.terminalType,\n nextTokenOccurrence: prod.idx,\n ruleStack: currRuleStack,\n occurrenceStack: currOccurrenceStack,\n });\n foundCompletePath = true;\n } else {\n throw Error(\"non exhaustive match\");\n }\n } else if (prod instanceof NonTerminal) {\n const newRuleStack = clone(currRuleStack);\n newRuleStack.push(prod.nonTerminalName);\n\n const newOccurrenceStack = clone(currOccurrenceStack);\n newOccurrenceStack.push(prod.idx);\n\n const nextPath = {\n idx: currIdx,\n def: prod.definition.concat(EXIT_NON_TERMINAL_ARR, drop(currDef)),\n ruleStack: newRuleStack,\n occurrenceStack: newOccurrenceStack,\n };\n possiblePaths.push(nextPath);\n } else if (prod instanceof Option) {\n // the order of alternatives is meaningful, FILO (Last path will be traversed first).\n const nextPathWithout = {\n idx: currIdx,\n def: drop(currDef),\n ruleStack: currRuleStack,\n occurrenceStack: currOccurrenceStack,\n };\n possiblePaths.push(nextPathWithout);\n // required marker to avoid backtracking paths whose higher priority alternatives already matched\n possiblePaths.push(EXIT_ALTERNATIVE);\n\n const nextPathWith = {\n idx: currIdx,\n def: prod.definition.concat(drop(currDef)),\n ruleStack: currRuleStack,\n occurrenceStack: currOccurrenceStack,\n };\n possiblePaths.push(nextPathWith);\n } else if (prod instanceof RepetitionMandatory) {\n // TODO:(THE NEW operators here take a while...) (convert once?)\n const secondIteration = new Repetition({\n definition: prod.definition,\n idx: prod.idx,\n });\n const nextDef = prod.definition.concat([secondIteration], drop(currDef));\n const nextPath = {\n idx: currIdx,\n def: nextDef,\n ruleStack: currRuleStack,\n occurrenceStack: currOccurrenceStack,\n };\n possiblePaths.push(nextPath);\n } else if (prod instanceof RepetitionMandatoryWithSeparator) {\n // TODO:(THE NEW operators here take a while...) (convert once?)\n const separatorGast = new Terminal({\n terminalType: prod.separator,\n });\n const secondIteration = new Repetition({\n definition: [separatorGast].concat(prod.definition),\n idx: prod.idx,\n });\n const nextDef = prod.definition.concat([secondIteration], drop(currDef));\n const nextPath = {\n idx: currIdx,\n def: nextDef,\n ruleStack: currRuleStack,\n occurrenceStack: currOccurrenceStack,\n };\n possiblePaths.push(nextPath);\n } else if (prod instanceof RepetitionWithSeparator) {\n // the order of alternatives is meaningful, FILO (Last path will be traversed first).\n const nextPathWithout = {\n idx: currIdx,\n def: drop(currDef),\n ruleStack: currRuleStack,\n occurrenceStack: currOccurrenceStack,\n };\n possiblePaths.push(nextPathWithout);\n // required marker to avoid backtracking paths whose higher priority alternatives already matched\n possiblePaths.push(EXIT_ALTERNATIVE);\n\n const separatorGast = new Terminal({\n terminalType: prod.separator,\n });\n const nthRepetition = new Repetition({\n definition: [separatorGast].concat(prod.definition),\n idx: prod.idx,\n });\n const nextDef = prod.definition.concat([nthRepetition], drop(currDef));\n const nextPathWith = {\n idx: currIdx,\n def: nextDef,\n ruleStack: currRuleStack,\n occurrenceStack: currOccurrenceStack,\n };\n possiblePaths.push(nextPathWith);\n } else if (prod instanceof Repetition) {\n // the order of alternatives is meaningful, FILO (Last path will be traversed first).\n const nextPathWithout = {\n idx: currIdx,\n def: drop(currDef),\n ruleStack: currRuleStack,\n occurrenceStack: currOccurrenceStack,\n };\n possiblePaths.push(nextPathWithout);\n // required marker to avoid backtracking paths whose higher priority alternatives already matched\n possiblePaths.push(EXIT_ALTERNATIVE);\n\n // TODO: an empty repetition will cause infinite loops here, will the parser detect this in selfAnalysis?\n const nthRepetition = new Repetition({\n definition: prod.definition,\n idx: prod.idx,\n });\n const nextDef = prod.definition.concat([nthRepetition], drop(currDef));\n const nextPathWith = {\n idx: currIdx,\n def: nextDef,\n ruleStack: currRuleStack,\n occurrenceStack: currOccurrenceStack,\n };\n possiblePaths.push(nextPathWith);\n } else if (prod instanceof Alternation) {\n // the order of alternatives is meaningful, FILO (Last path will be traversed first).\n for (let i = prod.definition.length - 1; i >= 0; i--) {\n const currAlt: any = prod.definition[i];\n const currAltPath = {\n idx: currIdx,\n def: currAlt.definition.concat(drop(currDef)),\n ruleStack: currRuleStack,\n occurrenceStack: currOccurrenceStack,\n };\n possiblePaths.push(currAltPath);\n possiblePaths.push(EXIT_ALTERNATIVE);\n }\n } else if (prod instanceof Alternative) {\n possiblePaths.push({\n idx: currIdx,\n def: prod.definition.concat(drop(currDef)),\n ruleStack: currRuleStack,\n occurrenceStack: currOccurrenceStack,\n });\n } else if (prod instanceof Rule) {\n // last because we should only encounter at most a single one of these per invocation.\n possiblePaths.push(\n expandTopLevelRule(prod, currIdx, currRuleStack, currOccurrenceStack),\n );\n } else {\n throw Error(\"non exhaustive match\");\n }\n }\n return result;\n}\n\nfunction expandTopLevelRule(\n topRule: Rule,\n currIdx: number,\n currRuleStack: string[],\n currOccurrenceStack: number[],\n): IPathToExamine {\n const newRuleStack = clone(currRuleStack);\n newRuleStack.push(topRule.name);\n\n const newCurrOccurrenceStack = clone(currOccurrenceStack);\n // top rule is always assumed to have been called with occurrence index 1\n newCurrOccurrenceStack.push(1);\n\n return {\n idx: currIdx,\n def: topRule.definition,\n ruleStack: newRuleStack,\n occurrenceStack: newCurrOccurrenceStack,\n };\n}\n", "import { every, flatten, forEach, has, isEmpty, map, reduce } from \"lodash-es\";\nimport { possiblePathsFrom } from \"./interpreter.js\";\nimport { RestWalker } from \"./rest.js\";\nimport { Predicate, TokenMatcher } from \"../parser/parser.js\";\nimport {\n tokenStructuredMatcher,\n tokenStructuredMatcherNoCategories,\n} from \"../../scan/tokens.js\";\nimport {\n Alternation,\n Alternative as AlternativeGAST,\n GAstVisitor,\n Option,\n Repetition,\n RepetitionMandatory,\n RepetitionMandatoryWithSeparator,\n RepetitionWithSeparator,\n} from \"@chevrotain/gast\";\nimport {\n BaseParser,\n IOrAlt,\n IProduction,\n IProductionWithOccurrence,\n LookaheadProductionType,\n LookaheadSequence,\n Rule,\n TokenType,\n} from \"@chevrotain/types\";\n\nexport enum PROD_TYPE {\n OPTION,\n REPETITION,\n REPETITION_MANDATORY,\n REPETITION_MANDATORY_WITH_SEPARATOR,\n REPETITION_WITH_SEPARATOR,\n ALTERNATION,\n}\n\nexport function getProdType(\n prod: IProduction | LookaheadProductionType,\n): PROD_TYPE {\n /* istanbul ignore else */\n if (prod instanceof Option || prod === \"Option\") {\n return PROD_TYPE.OPTION;\n } else if (prod instanceof Repetition || prod === \"Repetition\") {\n return PROD_TYPE.REPETITION;\n } else if (\n prod instanceof RepetitionMandatory ||\n prod === \"RepetitionMandatory\"\n ) {\n return PROD_TYPE.REPETITION_MANDATORY;\n } else if (\n prod instanceof RepetitionMandatoryWithSeparator ||\n prod === \"RepetitionMandatoryWithSeparator\"\n ) {\n return PROD_TYPE.REPETITION_MANDATORY_WITH_SEPARATOR;\n } else if (\n prod instanceof RepetitionWithSeparator ||\n prod === \"RepetitionWithSeparator\"\n ) {\n return PROD_TYPE.REPETITION_WITH_SEPARATOR;\n } else if (prod instanceof Alternation || prod === \"Alternation\") {\n return PROD_TYPE.ALTERNATION;\n } else {\n throw Error(\"non exhaustive match\");\n }\n}\n\nexport function getLookaheadPaths(options: {\n occurrence: number;\n rule: Rule;\n prodType: LookaheadProductionType;\n maxLookahead: number;\n}): LookaheadSequence[] {\n const { occurrence, rule, prodType, maxLookahead } = options;\n const type = getProdType(prodType);\n if (type === PROD_TYPE.ALTERNATION) {\n return getLookaheadPathsForOr(occurrence, rule, maxLookahead);\n } else {\n return getLookaheadPathsForOptionalProd(\n occurrence,\n rule,\n type,\n maxLookahead,\n );\n }\n}\n\nexport function buildLookaheadFuncForOr(\n occurrence: number,\n ruleGrammar: Rule,\n maxLookahead: number,\n hasPredicates: boolean,\n dynamicTokensEnabled: boolean,\n laFuncBuilder: Function,\n): (orAlts?: IOrAlt[]) => number | undefined {\n const lookAheadPaths = getLookaheadPathsForOr(\n occurrence,\n ruleGrammar,\n maxLookahead,\n );\n\n const tokenMatcher = areTokenCategoriesNotUsed(lookAheadPaths)\n ? tokenStructuredMatcherNoCategories\n : tokenStructuredMatcher;\n\n return laFuncBuilder(\n lookAheadPaths,\n hasPredicates,\n tokenMatcher,\n dynamicTokensEnabled,\n );\n}\n\n/**\n * When dealing with an Optional production (OPTION/MANY/2nd iteration of AT_LEAST_ONE/...) we need to compare\n * the lookahead \"inside\" the production and the lookahead immediately \"after\" it in the same top level rule (context free).\n *\n * Example: given a production:\n * ABC(DE)?DF\n *\n * The optional '(DE)?' should only be entered if we see 'DE'. a single Token 'D' is not sufficient to distinguish between the two\n * alternatives.\n *\n * @returns A Lookahead function which will return true IFF the parser should parse the Optional production.\n */\nexport function buildLookaheadFuncForOptionalProd(\n occurrence: number,\n ruleGrammar: Rule,\n k: number,\n dynamicTokensEnabled: boolean,\n prodType: PROD_TYPE,\n lookaheadBuilder: (\n lookAheadSequence: LookaheadSequence,\n tokenMatcher: TokenMatcher,\n dynamicTokensEnabled: boolean,\n ) => () => boolean,\n): () => boolean {\n const lookAheadPaths = getLookaheadPathsForOptionalProd(\n occurrence,\n ruleGrammar,\n prodType,\n k,\n );\n\n const tokenMatcher = areTokenCategoriesNotUsed(lookAheadPaths)\n ? tokenStructuredMatcherNoCategories\n : tokenStructuredMatcher;\n\n return lookaheadBuilder(\n lookAheadPaths[0],\n tokenMatcher,\n dynamicTokensEnabled,\n );\n}\n\nexport type Alternative = TokenType[][];\n\nexport function buildAlternativesLookAheadFunc(\n alts: LookaheadSequence[],\n hasPredicates: boolean,\n tokenMatcher: TokenMatcher,\n dynamicTokensEnabled: boolean,\n): (orAlts: IOrAlt[]) => number | undefined {\n const numOfAlts = alts.length;\n const areAllOneTokenLookahead = every(alts, (currAlt) => {\n return every(currAlt, (currPath) => {\n return currPath.length === 1;\n });\n });\n\n // This version takes into account the predicates as well.\n if (hasPredicates) {\n /**\n * @returns {number} - The chosen alternative index\n */\n return function (\n this: BaseParser,\n orAlts: IOrAlt[],\n ): number | undefined {\n // unfortunately the predicates must be extracted every single time\n // as they cannot be cached due to references to parameters(vars) which are no longer valid.\n // note that in the common case of no predicates, no cpu time will be wasted on this (see else block)\n const predicates: (Predicate | undefined)[] = map(\n orAlts,\n (currAlt) => currAlt.GATE,\n );\n\n for (let t = 0; t < numOfAlts; t++) {\n const currAlt = alts[t];\n const currNumOfPaths = currAlt.length;\n\n const currPredicate = predicates[t];\n if (currPredicate !== undefined && currPredicate.call(this) === false) {\n // if the predicate does not match there is no point in checking the paths\n continue;\n }\n nextPath: for (let j = 0; j < currNumOfPaths; j++) {\n const currPath = currAlt[j];\n const currPathLength = currPath.length;\n for (let i = 0; i < currPathLength; i++) {\n const nextToken = this.LA(i + 1);\n if (tokenMatcher(nextToken, currPath[i]) === false) {\n // mismatch in current path\n // try the next pth\n continue nextPath;\n }\n }\n // found a full path that matches.\n // this will also work for an empty ALT as the loop will be skipped\n return t;\n }\n // none of the paths for the current alternative matched\n // try the next alternative\n }\n // none of the alternatives could be matched\n return undefined;\n };\n } else if (areAllOneTokenLookahead && !dynamicTokensEnabled) {\n // optimized (common) case of all the lookaheads paths requiring only\n // a single token lookahead. These Optimizations cannot work if dynamically defined Tokens are used.\n const singleTokenAlts = map(alts, (currAlt) => {\n return flatten(currAlt);\n });\n\n const choiceToAlt = reduce(\n singleTokenAlts,\n (result, currAlt, idx) => {\n forEach(currAlt, (currTokType) => {\n if (!has(result, currTokType.tokenTypeIdx!)) {\n result[currTokType.tokenTypeIdx!] = idx;\n }\n forEach(currTokType.categoryMatches!, (currExtendingType) => {\n if (!has(result, currExtendingType)) {\n result[currExtendingType] = idx;\n }\n });\n });\n return result;\n },\n {} as Record,\n );\n\n /**\n * @returns {number} - The chosen alternative index\n */\n return function (this: BaseParser): number {\n const nextToken = this.LA(1);\n return choiceToAlt[nextToken.tokenTypeIdx];\n };\n } else {\n // optimized lookahead without needing to check the predicates at all.\n // this causes code duplication which is intentional to improve performance.\n /**\n * @returns {number} - The chosen alternative index\n */\n return function (this: BaseParser): number | undefined {\n for (let t = 0; t < numOfAlts; t++) {\n const currAlt = alts[t];\n const currNumOfPaths = currAlt.length;\n nextPath: for (let j = 0; j < currNumOfPaths; j++) {\n const currPath = currAlt[j];\n const currPathLength = currPath.length;\n for (let i = 0; i < currPathLength; i++) {\n const nextToken = this.LA(i + 1);\n if (tokenMatcher(nextToken, currPath[i]) === false) {\n // mismatch in current path\n // try the next pth\n continue nextPath;\n }\n }\n // found a full path that matches.\n // this will also work for an empty ALT as the loop will be skipped\n return t;\n }\n // none of the paths for the current alternative matched\n // try the next alternative\n }\n // none of the alternatives could be matched\n return undefined;\n };\n }\n}\n\nexport function buildSingleAlternativeLookaheadFunction(\n alt: LookaheadSequence,\n tokenMatcher: TokenMatcher,\n dynamicTokensEnabled: boolean,\n): () => boolean {\n const areAllOneTokenLookahead = every(alt, (currPath) => {\n return currPath.length === 1;\n });\n\n const numOfPaths = alt.length;\n\n // optimized (common) case of all the lookaheads paths requiring only\n // a single token lookahead.\n if (areAllOneTokenLookahead && !dynamicTokensEnabled) {\n const singleTokensTypes = flatten(alt);\n\n if (\n singleTokensTypes.length === 1 &&\n isEmpty((singleTokensTypes[0]).categoryMatches)\n ) {\n const expectedTokenType = singleTokensTypes[0];\n const expectedTokenUniqueKey = (expectedTokenType).tokenTypeIdx;\n\n return function (this: BaseParser): boolean {\n return this.LA(1).tokenTypeIdx === expectedTokenUniqueKey;\n };\n } else {\n const choiceToAlt = reduce(\n singleTokensTypes,\n (result, currTokType, idx) => {\n result[currTokType.tokenTypeIdx!] = true;\n forEach(currTokType.categoryMatches!, (currExtendingType) => {\n result[currExtendingType] = true;\n });\n return result;\n },\n [] as boolean[],\n );\n\n return function (this: BaseParser): boolean {\n const nextToken = this.LA(1);\n return choiceToAlt[nextToken.tokenTypeIdx] === true;\n };\n }\n } else {\n return function (this: BaseParser): boolean {\n nextPath: for (let j = 0; j < numOfPaths; j++) {\n const currPath = alt[j];\n const currPathLength = currPath.length;\n for (let i = 0; i < currPathLength; i++) {\n const nextToken = this.LA(i + 1);\n if (tokenMatcher(nextToken, currPath[i]) === false) {\n // mismatch in current path\n // try the next pth\n continue nextPath;\n }\n }\n // found a full path that matches.\n return true;\n }\n\n // none of the paths matched\n return false;\n };\n }\n}\n\nclass RestDefinitionFinderWalker extends RestWalker {\n private restDef: IProduction[];\n\n constructor(\n private topProd: Rule,\n private targetOccurrence: number,\n private targetProdType: PROD_TYPE,\n ) {\n super();\n }\n\n startWalking(): IProduction[] {\n this.walk(this.topProd);\n return this.restDef;\n }\n\n private checkIsTarget(\n node: IProductionWithOccurrence,\n expectedProdType: PROD_TYPE,\n currRest: IProduction[],\n prevRest: IProduction[],\n ): boolean {\n if (\n node.idx === this.targetOccurrence &&\n this.targetProdType === expectedProdType\n ) {\n this.restDef = currRest.concat(prevRest);\n return true;\n }\n // performance optimization, do not iterate over the entire Grammar ast after we have found the target\n return false;\n }\n\n walkOption(\n optionProd: Option,\n currRest: IProduction[],\n prevRest: IProduction[],\n ): void {\n if (!this.checkIsTarget(optionProd, PROD_TYPE.OPTION, currRest, prevRest)) {\n super.walkOption(optionProd, currRest, prevRest);\n }\n }\n\n walkAtLeastOne(\n atLeastOneProd: RepetitionMandatory,\n currRest: IProduction[],\n prevRest: IProduction[],\n ): void {\n if (\n !this.checkIsTarget(\n atLeastOneProd,\n PROD_TYPE.REPETITION_MANDATORY,\n currRest,\n prevRest,\n )\n ) {\n super.walkOption(atLeastOneProd, currRest, prevRest);\n }\n }\n\n walkAtLeastOneSep(\n atLeastOneSepProd: RepetitionMandatoryWithSeparator,\n currRest: IProduction[],\n prevRest: IProduction[],\n ): void {\n if (\n !this.checkIsTarget(\n atLeastOneSepProd,\n PROD_TYPE.REPETITION_MANDATORY_WITH_SEPARATOR,\n currRest,\n prevRest,\n )\n ) {\n super.walkOption(atLeastOneSepProd, currRest, prevRest);\n }\n }\n\n walkMany(\n manyProd: Repetition,\n currRest: IProduction[],\n prevRest: IProduction[],\n ): void {\n if (\n !this.checkIsTarget(manyProd, PROD_TYPE.REPETITION, currRest, prevRest)\n ) {\n super.walkOption(manyProd, currRest, prevRest);\n }\n }\n\n walkManySep(\n manySepProd: RepetitionWithSeparator,\n currRest: IProduction[],\n prevRest: IProduction[],\n ): void {\n if (\n !this.checkIsTarget(\n manySepProd,\n PROD_TYPE.REPETITION_WITH_SEPARATOR,\n currRest,\n prevRest,\n )\n ) {\n super.walkOption(manySepProd, currRest, prevRest);\n }\n }\n}\n\n/**\n * Returns the definition of a target production in a top level level rule.\n */\nclass InsideDefinitionFinderVisitor extends GAstVisitor {\n public result: IProduction[] = [];\n\n constructor(\n private targetOccurrence: number,\n private targetProdType: PROD_TYPE,\n private targetRef?: any,\n ) {\n super();\n }\n\n private checkIsTarget(\n node: { definition: IProduction[] } & IProductionWithOccurrence,\n expectedProdName: PROD_TYPE,\n ): void {\n if (\n node.idx === this.targetOccurrence &&\n this.targetProdType === expectedProdName &&\n (this.targetRef === undefined || node === this.targetRef)\n ) {\n this.result = node.definition;\n }\n }\n\n public visitOption(node: Option): void {\n this.checkIsTarget(node, PROD_TYPE.OPTION);\n }\n\n public visitRepetition(node: Repetition): void {\n this.checkIsTarget(node, PROD_TYPE.REPETITION);\n }\n\n public visitRepetitionMandatory(node: RepetitionMandatory): void {\n this.checkIsTarget(node, PROD_TYPE.REPETITION_MANDATORY);\n }\n\n public visitRepetitionMandatoryWithSeparator(\n node: RepetitionMandatoryWithSeparator,\n ): void {\n this.checkIsTarget(node, PROD_TYPE.REPETITION_MANDATORY_WITH_SEPARATOR);\n }\n\n public visitRepetitionWithSeparator(node: RepetitionWithSeparator): void {\n this.checkIsTarget(node, PROD_TYPE.REPETITION_WITH_SEPARATOR);\n }\n\n public visitAlternation(node: Alternation): void {\n this.checkIsTarget(node, PROD_TYPE.ALTERNATION);\n }\n}\n\nfunction initializeArrayOfArrays(size: number): any[][] {\n const result = new Array(size);\n for (let i = 0; i < size; i++) {\n result[i] = [];\n }\n return result;\n}\n\n/**\n * A sort of hash function between a Path in the grammar and a string.\n * Note that this returns multiple \"hashes\" to support the scenario of token categories.\n * - A single path with categories may match multiple **actual** paths.\n */\nfunction pathToHashKeys(path: TokenType[]): string[] {\n let keys = [\"\"];\n for (let i = 0; i < path.length; i++) {\n const tokType = path[i];\n const longerKeys = [];\n for (let j = 0; j < keys.length; j++) {\n const currShorterKey = keys[j];\n longerKeys.push(currShorterKey + \"_\" + tokType.tokenTypeIdx);\n for (let t = 0; t < tokType.categoryMatches!.length; t++) {\n const categoriesKeySuffix = \"_\" + tokType.categoryMatches![t];\n longerKeys.push(currShorterKey + categoriesKeySuffix);\n }\n }\n keys = longerKeys;\n }\n return keys;\n}\n\n/**\n * Imperative style due to being called from a hot spot\n */\nfunction isUniquePrefixHash(\n altKnownPathsKeys: Record[],\n searchPathKeys: string[],\n idx: number,\n): boolean {\n for (\n let currAltIdx = 0;\n currAltIdx < altKnownPathsKeys.length;\n currAltIdx++\n ) {\n // We only want to test vs the other alternatives\n if (currAltIdx === idx) {\n continue;\n }\n const otherAltKnownPathsKeys = altKnownPathsKeys[currAltIdx];\n for (let searchIdx = 0; searchIdx < searchPathKeys.length; searchIdx++) {\n const searchKey = searchPathKeys[searchIdx];\n if (otherAltKnownPathsKeys[searchKey] === true) {\n return false;\n }\n }\n }\n // None of the SearchPathKeys were found in any of the other alternatives\n return true;\n}\n\nexport function lookAheadSequenceFromAlternatives(\n altsDefs: IProduction[],\n k: number,\n): LookaheadSequence[] {\n const partialAlts = map(altsDefs, (currAlt) =>\n possiblePathsFrom([currAlt], 1),\n );\n const finalResult = initializeArrayOfArrays(partialAlts.length);\n const altsHashes = map(partialAlts, (currAltPaths) => {\n const dict: { [key: string]: boolean } = {};\n forEach(currAltPaths, (item) => {\n const keys = pathToHashKeys(item.partialPath);\n forEach(keys, (currKey) => {\n dict[currKey] = true;\n });\n });\n return dict;\n });\n let newData = partialAlts;\n\n // maxLookahead loop\n for (let pathLength = 1; pathLength <= k; pathLength++) {\n const currDataset = newData;\n newData = initializeArrayOfArrays(currDataset.length);\n\n // alternatives loop\n for (let altIdx = 0; altIdx < currDataset.length; altIdx++) {\n const currAltPathsAndSuffixes = currDataset[altIdx];\n // paths in current alternative loop\n for (\n let currPathIdx = 0;\n currPathIdx < currAltPathsAndSuffixes.length;\n currPathIdx++\n ) {\n const currPathPrefix = currAltPathsAndSuffixes[currPathIdx].partialPath;\n const suffixDef = currAltPathsAndSuffixes[currPathIdx].suffixDef;\n const prefixKeys = pathToHashKeys(currPathPrefix);\n const isUnique = isUniquePrefixHash(altsHashes, prefixKeys, altIdx);\n // End of the line for this path.\n if (isUnique || isEmpty(suffixDef) || currPathPrefix.length === k) {\n const currAltResult = finalResult[altIdx];\n // TODO: Can we implement a containsPath using Maps/Dictionaries?\n if (containsPath(currAltResult, currPathPrefix) === false) {\n currAltResult.push(currPathPrefix);\n // Update all new keys for the current path.\n for (let j = 0; j < prefixKeys.length; j++) {\n const currKey = prefixKeys[j];\n altsHashes[altIdx][currKey] = true;\n }\n }\n }\n // Expand longer paths\n else {\n const newPartialPathsAndSuffixes = possiblePathsFrom(\n suffixDef,\n pathLength + 1,\n currPathPrefix,\n );\n newData[altIdx] = newData[altIdx].concat(newPartialPathsAndSuffixes);\n\n // Update keys for new known paths\n forEach(newPartialPathsAndSuffixes, (item) => {\n const prefixKeys = pathToHashKeys(item.partialPath);\n forEach(prefixKeys, (key) => {\n altsHashes[altIdx][key] = true;\n });\n });\n }\n }\n }\n }\n\n return finalResult;\n}\n\nexport function getLookaheadPathsForOr(\n occurrence: number,\n ruleGrammar: Rule,\n k: number,\n orProd?: Alternation,\n): LookaheadSequence[] {\n const visitor = new InsideDefinitionFinderVisitor(\n occurrence,\n PROD_TYPE.ALTERNATION,\n orProd,\n );\n ruleGrammar.accept(visitor);\n return lookAheadSequenceFromAlternatives(visitor.result, k);\n}\n\nexport function getLookaheadPathsForOptionalProd(\n occurrence: number,\n ruleGrammar: Rule,\n prodType: PROD_TYPE,\n k: number,\n): LookaheadSequence[] {\n const insideDefVisitor = new InsideDefinitionFinderVisitor(\n occurrence,\n prodType,\n );\n ruleGrammar.accept(insideDefVisitor);\n const insideDef = insideDefVisitor.result;\n\n const afterDefWalker = new RestDefinitionFinderWalker(\n ruleGrammar,\n occurrence,\n prodType,\n );\n const afterDef = afterDefWalker.startWalking();\n\n const insideFlat = new AlternativeGAST({ definition: insideDef });\n const afterFlat = new AlternativeGAST({ definition: afterDef });\n\n return lookAheadSequenceFromAlternatives([insideFlat, afterFlat], k);\n}\n\nexport function containsPath(\n alternative: Alternative,\n searchPath: TokenType[],\n): boolean {\n compareOtherPath: for (let i = 0; i < alternative.length; i++) {\n const otherPath = alternative[i];\n if (otherPath.length !== searchPath.length) {\n continue;\n }\n for (let j = 0; j < otherPath.length; j++) {\n const searchTok = searchPath[j];\n const otherTok = otherPath[j];\n\n const matchingTokens =\n searchTok === otherTok ||\n otherTok.categoryMatchesMap![searchTok.tokenTypeIdx!] !== undefined;\n if (matchingTokens === false) {\n continue compareOtherPath;\n }\n }\n return true;\n }\n\n return false;\n}\n\nexport function isStrictPrefixOfPath(\n prefix: TokenType[],\n other: TokenType[],\n): boolean {\n return (\n prefix.length < other.length &&\n every(prefix, (tokType, idx) => {\n const otherTokType = other[idx];\n return (\n tokType === otherTokType ||\n otherTokType.categoryMatchesMap![tokType.tokenTypeIdx!]\n );\n })\n );\n}\n\nexport function areTokenCategoriesNotUsed(\n lookAheadPaths: LookaheadSequence[],\n): boolean {\n return every(lookAheadPaths, (singleAltPaths) =>\n every(singleAltPaths, (singlePath) =>\n every(singlePath, (token) => isEmpty(token.categoryMatches!)),\n ),\n );\n}\n", "import {\n clone,\n compact,\n difference,\n drop,\n dropRight,\n filter,\n first,\n flatMap,\n flatten,\n forEach,\n groupBy,\n includes,\n isEmpty,\n map,\n pickBy,\n reduce,\n reject,\n values,\n} from \"lodash-es\";\nimport {\n IParserAmbiguousAlternativesDefinitionError,\n IParserDuplicatesDefinitionError,\n IParserEmptyAlternativeDefinitionError,\n ParserDefinitionErrorType,\n} from \"../parser/parser.js\";\nimport {\n Alternation,\n Alternative as AlternativeGAST,\n GAstVisitor,\n getProductionDslName,\n isOptionalProd,\n NonTerminal,\n Option,\n Repetition,\n RepetitionMandatory,\n RepetitionMandatoryWithSeparator,\n RepetitionWithSeparator,\n Terminal,\n} from \"@chevrotain/gast\";\nimport {\n Alternative,\n containsPath,\n getLookaheadPathsForOptionalProd,\n getLookaheadPathsForOr,\n getProdType,\n isStrictPrefixOfPath,\n} from \"./lookahead.js\";\nimport { nextPossibleTokensAfter } from \"./interpreter.js\";\nimport {\n ILookaheadStrategy,\n IProduction,\n IProductionWithOccurrence,\n Rule,\n TokenType,\n} from \"@chevrotain/types\";\nimport {\n IGrammarValidatorErrorMessageProvider,\n IParserDefinitionError,\n} from \"./types.js\";\nimport { tokenStructuredMatcher } from \"../../scan/tokens.js\";\n\nexport function validateLookahead(options: {\n lookaheadStrategy: ILookaheadStrategy;\n rules: Rule[];\n tokenTypes: TokenType[];\n grammarName: string;\n}): IParserDefinitionError[] {\n const lookaheadValidationErrorMessages = options.lookaheadStrategy.validate({\n rules: options.rules,\n tokenTypes: options.tokenTypes,\n grammarName: options.grammarName,\n });\n return map(lookaheadValidationErrorMessages, (errorMessage) => ({\n type: ParserDefinitionErrorType.CUSTOM_LOOKAHEAD_VALIDATION,\n ...errorMessage,\n }));\n}\n\nexport function validateGrammar(\n topLevels: Rule[],\n tokenTypes: TokenType[],\n errMsgProvider: IGrammarValidatorErrorMessageProvider,\n grammarName: string,\n): IParserDefinitionError[] {\n const duplicateErrors: IParserDefinitionError[] = flatMap(\n topLevels,\n (currTopLevel) =>\n validateDuplicateProductions(currTopLevel, errMsgProvider),\n );\n\n const termsNamespaceConflictErrors = checkTerminalAndNoneTerminalsNameSpace(\n topLevels,\n tokenTypes,\n errMsgProvider,\n );\n\n const tooManyAltsErrors = flatMap(topLevels, (curRule) =>\n validateTooManyAlts(curRule, errMsgProvider),\n );\n\n const duplicateRulesError = flatMap(topLevels, (curRule) =>\n validateRuleDoesNotAlreadyExist(\n curRule,\n topLevels,\n grammarName,\n errMsgProvider,\n ),\n );\n\n return duplicateErrors.concat(\n termsNamespaceConflictErrors,\n tooManyAltsErrors,\n duplicateRulesError,\n );\n}\n\nfunction validateDuplicateProductions(\n topLevelRule: Rule,\n errMsgProvider: IGrammarValidatorErrorMessageProvider,\n): IParserDuplicatesDefinitionError[] {\n const collectorVisitor = new OccurrenceValidationCollector();\n topLevelRule.accept(collectorVisitor);\n const allRuleProductions = collectorVisitor.allProductions;\n\n const productionGroups = groupBy(\n allRuleProductions,\n identifyProductionForDuplicates,\n );\n\n const duplicates: any = pickBy(productionGroups, (currGroup) => {\n return currGroup.length > 1;\n });\n\n const errors = map(values(duplicates), (currDuplicates: any) => {\n const firstProd: any = first(currDuplicates);\n const msg = errMsgProvider.buildDuplicateFoundError(\n topLevelRule,\n currDuplicates,\n );\n const dslName = getProductionDslName(firstProd);\n const defError: IParserDuplicatesDefinitionError = {\n message: msg,\n type: ParserDefinitionErrorType.DUPLICATE_PRODUCTIONS,\n ruleName: topLevelRule.name,\n dslName: dslName,\n occurrence: firstProd.idx,\n };\n\n const param = getExtraProductionArgument(firstProd);\n if (param) {\n defError.parameter = param;\n }\n\n return defError;\n });\n return errors;\n}\n\nexport function identifyProductionForDuplicates(\n prod: IProductionWithOccurrence,\n): string {\n return `${getProductionDslName(prod)}_#_${\n prod.idx\n }_#_${getExtraProductionArgument(prod)}`;\n}\n\nfunction getExtraProductionArgument(prod: IProductionWithOccurrence): string {\n if (prod instanceof Terminal) {\n return prod.terminalType.name;\n } else if (prod instanceof NonTerminal) {\n return prod.nonTerminalName;\n } else {\n return \"\";\n }\n}\n\nexport class OccurrenceValidationCollector extends GAstVisitor {\n public allProductions: IProductionWithOccurrence[] = [];\n\n public visitNonTerminal(subrule: NonTerminal): void {\n this.allProductions.push(subrule);\n }\n\n public visitOption(option: Option): void {\n this.allProductions.push(option);\n }\n\n public visitRepetitionWithSeparator(manySep: RepetitionWithSeparator): void {\n this.allProductions.push(manySep);\n }\n\n public visitRepetitionMandatory(atLeastOne: RepetitionMandatory): void {\n this.allProductions.push(atLeastOne);\n }\n\n public visitRepetitionMandatoryWithSeparator(\n atLeastOneSep: RepetitionMandatoryWithSeparator,\n ): void {\n this.allProductions.push(atLeastOneSep);\n }\n\n public visitRepetition(many: Repetition): void {\n this.allProductions.push(many);\n }\n\n public visitAlternation(or: Alternation): void {\n this.allProductions.push(or);\n }\n\n public visitTerminal(terminal: Terminal): void {\n this.allProductions.push(terminal);\n }\n}\n\nexport function validateRuleDoesNotAlreadyExist(\n rule: Rule,\n allRules: Rule[],\n className: string,\n errMsgProvider: IGrammarValidatorErrorMessageProvider,\n): IParserDefinitionError[] {\n const errors = [];\n const occurrences = reduce(\n allRules,\n (result, curRule) => {\n if (curRule.name === rule.name) {\n return result + 1;\n }\n return result;\n },\n 0,\n );\n if (occurrences > 1) {\n const errMsg = errMsgProvider.buildDuplicateRuleNameError({\n topLevelRule: rule,\n grammarName: className,\n });\n errors.push({\n message: errMsg,\n type: ParserDefinitionErrorType.DUPLICATE_RULE_NAME,\n ruleName: rule.name,\n });\n }\n\n return errors;\n}\n\n// TODO: is there anyway to get only the rule names of rules inherited from the super grammars?\n// This is not part of the IGrammarErrorProvider because the validation cannot be performed on\n// The grammar structure, only at runtime.\nexport function validateRuleIsOverridden(\n ruleName: string,\n definedRulesNames: string[],\n className: string,\n): IParserDefinitionError[] {\n const errors = [];\n let errMsg;\n\n if (!includes(definedRulesNames, ruleName)) {\n errMsg =\n `Invalid rule override, rule: ->${ruleName}<- cannot be overridden in the grammar: ->${className}<-` +\n `as it is not defined in any of the super grammars `;\n errors.push({\n message: errMsg,\n type: ParserDefinitionErrorType.INVALID_RULE_OVERRIDE,\n ruleName: ruleName,\n });\n }\n\n return errors;\n}\n\nexport function validateNoLeftRecursion(\n topRule: Rule,\n currRule: Rule,\n errMsgProvider: IGrammarValidatorErrorMessageProvider,\n path: Rule[] = [],\n): IParserDefinitionError[] {\n const errors: IParserDefinitionError[] = [];\n const nextNonTerminals = getFirstNoneTerminal(currRule.definition);\n if (isEmpty(nextNonTerminals)) {\n return [];\n } else {\n const ruleName = topRule.name;\n const foundLeftRecursion = includes(nextNonTerminals, topRule);\n if (foundLeftRecursion) {\n errors.push({\n message: errMsgProvider.buildLeftRecursionError({\n topLevelRule: topRule,\n leftRecursionPath: path,\n }),\n type: ParserDefinitionErrorType.LEFT_RECURSION,\n ruleName: ruleName,\n });\n }\n\n // we are only looking for cyclic paths leading back to the specific topRule\n // other cyclic paths are ignored, we still need this difference to avoid infinite loops...\n const validNextSteps = difference(nextNonTerminals, path.concat([topRule]));\n const errorsFromNextSteps = flatMap(validNextSteps, (currRefRule) => {\n const newPath = clone(path);\n newPath.push(currRefRule);\n return validateNoLeftRecursion(\n topRule,\n currRefRule,\n errMsgProvider,\n newPath,\n );\n });\n\n return errors.concat(errorsFromNextSteps);\n }\n}\n\nexport function getFirstNoneTerminal(definition: IProduction[]): Rule[] {\n let result: Rule[] = [];\n if (isEmpty(definition)) {\n return result;\n }\n const firstProd = first(definition);\n\n /* istanbul ignore else */\n if (firstProd instanceof NonTerminal) {\n result.push(firstProd.referencedRule);\n } else if (\n firstProd instanceof AlternativeGAST ||\n firstProd instanceof Option ||\n firstProd instanceof RepetitionMandatory ||\n firstProd instanceof RepetitionMandatoryWithSeparator ||\n firstProd instanceof RepetitionWithSeparator ||\n firstProd instanceof Repetition\n ) {\n result = result.concat(\n getFirstNoneTerminal(firstProd.definition),\n );\n } else if (firstProd instanceof Alternation) {\n // each sub definition in alternation is a FLAT\n result = flatten(\n map(firstProd.definition, (currSubDef) =>\n getFirstNoneTerminal((currSubDef).definition),\n ),\n );\n } else if (firstProd instanceof Terminal) {\n // nothing to see, move along\n } else {\n throw Error(\"non exhaustive match\");\n }\n\n const isFirstOptional = isOptionalProd(firstProd);\n const hasMore = definition.length > 1;\n if (isFirstOptional && hasMore) {\n const rest = drop(definition);\n return result.concat(getFirstNoneTerminal(rest));\n } else {\n return result;\n }\n}\n\nclass OrCollector extends GAstVisitor {\n public alternations: Alternation[] = [];\n\n public visitAlternation(node: Alternation): void {\n this.alternations.push(node);\n }\n}\n\nexport function validateEmptyOrAlternative(\n topLevelRule: Rule,\n errMsgProvider: IGrammarValidatorErrorMessageProvider,\n): IParserEmptyAlternativeDefinitionError[] {\n const orCollector = new OrCollector();\n topLevelRule.accept(orCollector);\n const ors = orCollector.alternations;\n\n const errors = flatMap(\n ors,\n (currOr) => {\n const exceptLast = dropRight(currOr.definition);\n return flatMap(exceptLast, (currAlternative, currAltIdx) => {\n const possibleFirstInAlt = nextPossibleTokensAfter(\n [currAlternative],\n [],\n tokenStructuredMatcher,\n 1,\n );\n if (isEmpty(possibleFirstInAlt)) {\n return [\n {\n message: errMsgProvider.buildEmptyAlternationError({\n topLevelRule: topLevelRule,\n alternation: currOr,\n emptyChoiceIdx: currAltIdx,\n }),\n type: ParserDefinitionErrorType.NONE_LAST_EMPTY_ALT,\n ruleName: topLevelRule.name,\n occurrence: currOr.idx,\n alternative: currAltIdx + 1,\n },\n ];\n } else {\n return [];\n }\n });\n },\n );\n\n return errors;\n}\n\nexport function validateAmbiguousAlternationAlternatives(\n topLevelRule: Rule,\n globalMaxLookahead: number,\n errMsgProvider: IGrammarValidatorErrorMessageProvider,\n): IParserAmbiguousAlternativesDefinitionError[] {\n const orCollector = new OrCollector();\n topLevelRule.accept(orCollector);\n let ors = orCollector.alternations;\n\n // New Handling of ignoring ambiguities\n // - https://github.com/chevrotain/chevrotain/issues/869\n ors = reject(ors, (currOr) => currOr.ignoreAmbiguities === true);\n\n const errors = flatMap(ors, (currOr: Alternation) => {\n const currOccurrence = currOr.idx;\n const actualMaxLookahead = currOr.maxLookahead || globalMaxLookahead;\n const alternatives = getLookaheadPathsForOr(\n currOccurrence,\n topLevelRule,\n actualMaxLookahead,\n currOr,\n );\n const altsAmbiguityErrors = checkAlternativesAmbiguities(\n alternatives,\n currOr,\n topLevelRule,\n errMsgProvider,\n );\n const altsPrefixAmbiguityErrors = checkPrefixAlternativesAmbiguities(\n alternatives,\n currOr,\n topLevelRule,\n errMsgProvider,\n );\n\n return altsAmbiguityErrors.concat(altsPrefixAmbiguityErrors);\n });\n\n return errors;\n}\n\nexport class RepetitionCollector extends GAstVisitor {\n public allProductions: (IProductionWithOccurrence & {\n maxLookahead?: number;\n })[] = [];\n\n public visitRepetitionWithSeparator(manySep: RepetitionWithSeparator): void {\n this.allProductions.push(manySep);\n }\n\n public visitRepetitionMandatory(atLeastOne: RepetitionMandatory): void {\n this.allProductions.push(atLeastOne);\n }\n\n public visitRepetitionMandatoryWithSeparator(\n atLeastOneSep: RepetitionMandatoryWithSeparator,\n ): void {\n this.allProductions.push(atLeastOneSep);\n }\n\n public visitRepetition(many: Repetition): void {\n this.allProductions.push(many);\n }\n}\n\nexport function validateTooManyAlts(\n topLevelRule: Rule,\n errMsgProvider: IGrammarValidatorErrorMessageProvider,\n): IParserDefinitionError[] {\n const orCollector = new OrCollector();\n topLevelRule.accept(orCollector);\n const ors = orCollector.alternations;\n\n const errors = flatMap(ors, (currOr) => {\n if (currOr.definition.length > 255) {\n return [\n {\n message: errMsgProvider.buildTooManyAlternativesError({\n topLevelRule: topLevelRule,\n alternation: currOr,\n }),\n type: ParserDefinitionErrorType.TOO_MANY_ALTS,\n ruleName: topLevelRule.name,\n occurrence: currOr.idx,\n },\n ];\n } else {\n return [];\n }\n });\n\n return errors;\n}\n\nexport function validateSomeNonEmptyLookaheadPath(\n topLevelRules: Rule[],\n maxLookahead: number,\n errMsgProvider: IGrammarValidatorErrorMessageProvider,\n): IParserDefinitionError[] {\n const errors: IParserDefinitionError[] = [];\n forEach(topLevelRules, (currTopRule) => {\n const collectorVisitor = new RepetitionCollector();\n currTopRule.accept(collectorVisitor);\n const allRuleProductions = collectorVisitor.allProductions;\n forEach(allRuleProductions, (currProd) => {\n const prodType = getProdType(currProd);\n const actualMaxLookahead = currProd.maxLookahead || maxLookahead;\n const currOccurrence = currProd.idx;\n const paths = getLookaheadPathsForOptionalProd(\n currOccurrence,\n currTopRule,\n prodType,\n actualMaxLookahead,\n );\n const pathsInsideProduction = paths[0];\n if (isEmpty(flatten(pathsInsideProduction))) {\n const errMsg = errMsgProvider.buildEmptyRepetitionError({\n topLevelRule: currTopRule,\n repetition: currProd,\n });\n errors.push({\n message: errMsg,\n type: ParserDefinitionErrorType.NO_NON_EMPTY_LOOKAHEAD,\n ruleName: currTopRule.name,\n });\n }\n });\n });\n\n return errors;\n}\n\nexport interface IAmbiguityDescriptor {\n alts: number[];\n path: TokenType[];\n}\n\nfunction checkAlternativesAmbiguities(\n alternatives: Alternative[],\n alternation: Alternation,\n rule: Rule,\n errMsgProvider: IGrammarValidatorErrorMessageProvider,\n): IParserAmbiguousAlternativesDefinitionError[] {\n const foundAmbiguousPaths: Alternative = [];\n const identicalAmbiguities = reduce(\n alternatives,\n (result, currAlt, currAltIdx) => {\n // ignore (skip) ambiguities with this alternative\n if (alternation.definition[currAltIdx].ignoreAmbiguities === true) {\n return result;\n }\n\n forEach(currAlt, (currPath) => {\n const altsCurrPathAppearsIn = [currAltIdx];\n forEach(alternatives, (currOtherAlt, currOtherAltIdx) => {\n if (\n currAltIdx !== currOtherAltIdx &&\n containsPath(currOtherAlt, currPath) &&\n // ignore (skip) ambiguities with this \"other\" alternative\n alternation.definition[currOtherAltIdx].ignoreAmbiguities !== true\n ) {\n altsCurrPathAppearsIn.push(currOtherAltIdx);\n }\n });\n\n if (\n altsCurrPathAppearsIn.length > 1 &&\n !containsPath(foundAmbiguousPaths, currPath)\n ) {\n foundAmbiguousPaths.push(currPath);\n result.push({\n alts: altsCurrPathAppearsIn,\n path: currPath,\n });\n }\n });\n return result;\n },\n [] as { alts: number[]; path: TokenType[] }[],\n );\n\n const currErrors = map(identicalAmbiguities, (currAmbDescriptor) => {\n const ambgIndices = map(\n currAmbDescriptor.alts,\n (currAltIdx) => currAltIdx + 1,\n );\n\n const currMessage = errMsgProvider.buildAlternationAmbiguityError({\n topLevelRule: rule,\n alternation: alternation,\n ambiguityIndices: ambgIndices,\n prefixPath: currAmbDescriptor.path,\n });\n\n return {\n message: currMessage,\n type: ParserDefinitionErrorType.AMBIGUOUS_ALTS,\n ruleName: rule.name,\n occurrence: alternation.idx,\n alternatives: currAmbDescriptor.alts,\n };\n });\n\n return currErrors;\n}\n\nexport function checkPrefixAlternativesAmbiguities(\n alternatives: Alternative[],\n alternation: Alternation,\n rule: Rule,\n errMsgProvider: IGrammarValidatorErrorMessageProvider,\n): IParserAmbiguousAlternativesDefinitionError[] {\n // flatten\n const pathsAndIndices = reduce(\n alternatives,\n (result, currAlt, idx) => {\n const currPathsAndIdx = map(currAlt, (currPath) => {\n return { idx: idx, path: currPath };\n });\n return result.concat(currPathsAndIdx);\n },\n [] as { idx: number; path: TokenType[] }[],\n );\n\n const errors = compact(\n flatMap(pathsAndIndices, (currPathAndIdx) => {\n const alternativeGast = alternation.definition[currPathAndIdx.idx];\n // ignore (skip) ambiguities with this alternative\n if (alternativeGast.ignoreAmbiguities === true) {\n return [];\n }\n const targetIdx = currPathAndIdx.idx;\n const targetPath = currPathAndIdx.path;\n\n const prefixAmbiguitiesPathsAndIndices = filter(\n pathsAndIndices,\n (searchPathAndIdx) => {\n // prefix ambiguity can only be created from lower idx (higher priority) path\n return (\n // ignore (skip) ambiguities with this \"other\" alternative\n alternation.definition[searchPathAndIdx.idx].ignoreAmbiguities !==\n true &&\n searchPathAndIdx.idx < targetIdx &&\n // checking for strict prefix because identical lookaheads\n // will be be detected using a different validation.\n isStrictPrefixOfPath(searchPathAndIdx.path, targetPath)\n );\n },\n );\n\n const currPathPrefixErrors = map(\n prefixAmbiguitiesPathsAndIndices,\n (currAmbPathAndIdx): IParserAmbiguousAlternativesDefinitionError => {\n const ambgIndices = [currAmbPathAndIdx.idx + 1, targetIdx + 1];\n const occurrence = alternation.idx === 0 ? \"\" : alternation.idx;\n\n const message = errMsgProvider.buildAlternationPrefixAmbiguityError({\n topLevelRule: rule,\n alternation: alternation,\n ambiguityIndices: ambgIndices,\n prefixPath: currAmbPathAndIdx.path,\n });\n return {\n message: message,\n type: ParserDefinitionErrorType.AMBIGUOUS_PREFIX_ALTS,\n ruleName: rule.name,\n occurrence: occurrence,\n alternatives: ambgIndices,\n };\n },\n );\n\n return currPathPrefixErrors;\n }),\n );\n\n return errors;\n}\n\nfunction checkTerminalAndNoneTerminalsNameSpace(\n topLevels: Rule[],\n tokenTypes: TokenType[],\n errMsgProvider: IGrammarValidatorErrorMessageProvider,\n): IParserDefinitionError[] {\n const errors: IParserDefinitionError[] = [];\n\n const tokenNames = map(tokenTypes, (currToken) => currToken.name);\n\n forEach(topLevels, (currRule) => {\n const currRuleName = currRule.name;\n if (includes(tokenNames, currRuleName)) {\n const errMsg = errMsgProvider.buildNamespaceConflictError(currRule);\n\n errors.push({\n message: errMsg,\n type: ParserDefinitionErrorType.CONFLICT_TOKENS_RULES_NAMESPACE,\n ruleName: currRuleName,\n });\n }\n });\n\n return errors;\n}\n", "import { Rule } from \"@chevrotain/gast\";\nimport { defaults, forEach } from \"lodash-es\";\nimport { resolveGrammar as orgResolveGrammar } from \"../resolver.js\";\nimport { validateGrammar as orgValidateGrammar } from \"../checks.js\";\nimport {\n defaultGrammarResolverErrorProvider,\n defaultGrammarValidatorErrorProvider,\n} from \"../../errors_public.js\";\nimport { TokenType } from \"@chevrotain/types\";\nimport {\n IGrammarResolverErrorMessageProvider,\n IGrammarValidatorErrorMessageProvider,\n IParserDefinitionError,\n} from \"../types.js\";\n\ntype ResolveGrammarOpts = {\n rules: Rule[];\n errMsgProvider?: IGrammarResolverErrorMessageProvider;\n};\nexport function resolveGrammar(\n options: ResolveGrammarOpts,\n): IParserDefinitionError[] {\n const actualOptions: Required = defaults(options, {\n errMsgProvider: defaultGrammarResolverErrorProvider,\n });\n\n const topRulesTable: { [ruleName: string]: Rule } = {};\n forEach(options.rules, (rule) => {\n topRulesTable[rule.name] = rule;\n });\n return orgResolveGrammar(topRulesTable, actualOptions.errMsgProvider);\n}\n\nexport function validateGrammar(options: {\n rules: Rule[];\n tokenTypes: TokenType[];\n grammarName: string;\n errMsgProvider: IGrammarValidatorErrorMessageProvider;\n}): IParserDefinitionError[] {\n options = defaults(options, {\n errMsgProvider: defaultGrammarValidatorErrorProvider,\n });\n\n return orgValidateGrammar(\n options.rules,\n options.tokenTypes,\n options.errMsgProvider,\n options.grammarName,\n );\n}\n", "import { includes } from \"lodash-es\";\nimport {\n IRecognitionException,\n IRecognizerContext,\n IToken,\n} from \"@chevrotain/types\";\n\nconst MISMATCHED_TOKEN_EXCEPTION = \"MismatchedTokenException\";\nconst NO_VIABLE_ALT_EXCEPTION = \"NoViableAltException\";\nconst EARLY_EXIT_EXCEPTION = \"EarlyExitException\";\nconst NOT_ALL_INPUT_PARSED_EXCEPTION = \"NotAllInputParsedException\";\n\nconst RECOGNITION_EXCEPTION_NAMES = [\n MISMATCHED_TOKEN_EXCEPTION,\n NO_VIABLE_ALT_EXCEPTION,\n EARLY_EXIT_EXCEPTION,\n NOT_ALL_INPUT_PARSED_EXCEPTION,\n];\n\nObject.freeze(RECOGNITION_EXCEPTION_NAMES);\n\n// hacks to bypass no support for custom Errors in javascript/typescript\nexport function isRecognitionException(error: Error) {\n // can't do instanceof on hacked custom js exceptions\n return includes(RECOGNITION_EXCEPTION_NAMES, error.name);\n}\n\nabstract class RecognitionException\n extends Error\n implements IRecognitionException\n{\n context: IRecognizerContext;\n resyncedTokens: IToken[] = [];\n\n protected constructor(\n message: string,\n public token: IToken,\n ) {\n super(message);\n\n // fix prototype chain when typescript target is ES5\n Object.setPrototypeOf(this, new.target.prototype);\n\n /* istanbul ignore next - V8 workaround to remove constructor from stacktrace when typescript target is ES5 */\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n }\n}\n\nexport class MismatchedTokenException extends RecognitionException {\n constructor(\n message: string,\n token: IToken,\n public previousToken: IToken,\n ) {\n super(message, token);\n this.name = MISMATCHED_TOKEN_EXCEPTION;\n }\n}\n\nexport class NoViableAltException extends RecognitionException {\n constructor(\n message: string,\n token: IToken,\n public previousToken: IToken,\n ) {\n super(message, token);\n this.name = NO_VIABLE_ALT_EXCEPTION;\n }\n}\n\nexport class NotAllInputParsedException extends RecognitionException {\n constructor(message: string, token: IToken) {\n super(message, token);\n this.name = NOT_ALL_INPUT_PARSED_EXCEPTION;\n }\n}\n\nexport class EarlyExitException extends RecognitionException {\n constructor(\n message: string,\n token: IToken,\n public previousToken: IToken,\n ) {\n super(message, token);\n this.name = EARLY_EXIT_EXCEPTION;\n }\n}\n", "import {\n createTokenInstance,\n EOF,\n tokenMatcher,\n} from \"../../../scan/tokens_public.js\";\nimport {\n AbstractNextTerminalAfterProductionWalker,\n IFirstAfterRepetition,\n} from \"../../grammar/interpreter.js\";\nimport {\n clone,\n dropRight,\n find,\n flatten,\n has,\n includes,\n isEmpty,\n map,\n} from \"lodash-es\";\nimport {\n IParserConfig,\n IToken,\n ITokenGrammarPath,\n TokenType,\n} from \"@chevrotain/types\";\nimport { MismatchedTokenException } from \"../../exceptions_public.js\";\nimport { IN } from \"../../constants.js\";\nimport { MixedInParser } from \"./parser_traits.js\";\nimport { DEFAULT_PARSER_CONFIG } from \"../parser.js\";\n\nexport const EOF_FOLLOW_KEY: any = {};\n\nexport interface IFollowKey {\n ruleName: string;\n idxInCallingRule: number;\n inRule: string;\n}\n\nexport const IN_RULE_RECOVERY_EXCEPTION = \"InRuleRecoveryException\";\n\nexport class InRuleRecoveryException extends Error {\n constructor(message: string) {\n super(message);\n this.name = IN_RULE_RECOVERY_EXCEPTION;\n }\n}\n\n/**\n * This trait is responsible for the error recovery and fault tolerant logic\n */\nexport class Recoverable {\n recoveryEnabled: boolean;\n firstAfterRepMap: Record;\n resyncFollows: Record;\n\n initRecoverable(config: IParserConfig) {\n this.firstAfterRepMap = {};\n this.resyncFollows = {};\n\n this.recoveryEnabled = has(config, \"recoveryEnabled\")\n ? (config.recoveryEnabled as boolean) // assumes end user provides the correct config value/type\n : DEFAULT_PARSER_CONFIG.recoveryEnabled;\n\n // performance optimization, NOOP will be inlined which\n // effectively means that this optional feature does not exist\n // when not used.\n if (this.recoveryEnabled) {\n this.attemptInRepetitionRecovery = attemptInRepetitionRecovery;\n }\n }\n\n public getTokenToInsert(tokType: TokenType): IToken {\n const tokToInsert = createTokenInstance(\n tokType,\n \"\",\n NaN,\n NaN,\n NaN,\n NaN,\n NaN,\n NaN,\n );\n tokToInsert.isInsertedInRecovery = true;\n return tokToInsert;\n }\n\n public canTokenTypeBeInsertedInRecovery(tokType: TokenType): boolean {\n return true;\n }\n\n public canTokenTypeBeDeletedInRecovery(tokType: TokenType): boolean {\n return true;\n }\n\n tryInRepetitionRecovery(\n this: MixedInParser,\n grammarRule: Function,\n grammarRuleArgs: any[],\n lookAheadFunc: () => boolean,\n expectedTokType: TokenType,\n ): void {\n // TODO: can the resyncTokenType be cached?\n const reSyncTokType = this.findReSyncTokenType();\n const savedLexerState = this.exportLexerState();\n const resyncedTokens: IToken[] = [];\n let passedResyncPoint = false;\n\n const nextTokenWithoutResync = this.LA(1);\n let currToken = this.LA(1);\n\n const generateErrorMessage = () => {\n const previousToken = this.LA(0);\n // we are preemptively re-syncing before an error has been detected, therefor we must reproduce\n // the error that would have been thrown\n const msg = this.errorMessageProvider.buildMismatchTokenMessage({\n expected: expectedTokType,\n actual: nextTokenWithoutResync,\n previous: previousToken,\n ruleName: this.getCurrRuleFullName(),\n });\n const error = new MismatchedTokenException(\n msg,\n nextTokenWithoutResync,\n this.LA(0),\n );\n // the first token here will be the original cause of the error, this is not part of the resyncedTokens property.\n error.resyncedTokens = dropRight(resyncedTokens);\n this.SAVE_ERROR(error);\n };\n\n while (!passedResyncPoint) {\n // re-synced to a point where we can safely exit the repetition/\n if (this.tokenMatcher(currToken, expectedTokType)) {\n generateErrorMessage();\n return; // must return here to avoid reverting the inputIdx\n } else if (lookAheadFunc.call(this)) {\n // we skipped enough tokens so we can resync right back into another iteration of the repetition grammar rule\n generateErrorMessage();\n // recursive invocation in other to support multiple re-syncs in the same top level repetition grammar rule\n grammarRule.apply(this, grammarRuleArgs);\n return; // must return here to avoid reverting the inputIdx\n } else if (this.tokenMatcher(currToken, reSyncTokType)) {\n passedResyncPoint = true;\n } else {\n currToken = this.SKIP_TOKEN();\n this.addToResyncTokens(currToken, resyncedTokens);\n }\n }\n\n // we were unable to find a CLOSER point to resync inside the Repetition, reset the state.\n // The parsing exception we were trying to prevent will happen in the NEXT parsing step. it may be handled by\n // \"between rules\" resync recovery later in the flow.\n this.importLexerState(savedLexerState);\n }\n\n shouldInRepetitionRecoveryBeTried(\n this: MixedInParser,\n expectTokAfterLastMatch: TokenType,\n nextTokIdx: number,\n notStuck: boolean | undefined,\n ): boolean {\n // Edge case of arriving from a MANY repetition which is stuck\n // Attempting recovery in this case could cause an infinite loop\n if (notStuck === false) {\n return false;\n }\n\n // no need to recover, next token is what we expect...\n if (this.tokenMatcher(this.LA(1), expectTokAfterLastMatch)) {\n return false;\n }\n\n // error recovery is disabled during backtracking as it can make the parser ignore a valid grammar path\n // and prefer some backtracking path that includes recovered errors.\n if (this.isBackTracking()) {\n return false;\n }\n\n // if we can perform inRule recovery (single token insertion or deletion) we always prefer that recovery algorithm\n // because if it works, it makes the least amount of changes to the input stream (greedy algorithm)\n //noinspection RedundantIfStatementJS\n if (\n this.canPerformInRuleRecovery(\n expectTokAfterLastMatch,\n this.getFollowsForInRuleRecovery(expectTokAfterLastMatch, nextTokIdx),\n )\n ) {\n return false;\n }\n\n return true;\n }\n\n // Error Recovery functionality\n getFollowsForInRuleRecovery(\n this: MixedInParser,\n tokType: TokenType,\n tokIdxInRule: number,\n ): TokenType[] {\n const grammarPath = this.getCurrentGrammarPath(tokType, tokIdxInRule);\n const follows = this.getNextPossibleTokenTypes(grammarPath);\n return follows;\n }\n\n tryInRuleRecovery(\n this: MixedInParser,\n expectedTokType: TokenType,\n follows: TokenType[],\n ): IToken {\n if (this.canRecoverWithSingleTokenInsertion(expectedTokType, follows)) {\n const tokToInsert = this.getTokenToInsert(expectedTokType);\n return tokToInsert;\n }\n\n if (this.canRecoverWithSingleTokenDeletion(expectedTokType)) {\n const nextTok = this.SKIP_TOKEN();\n this.consumeToken();\n return nextTok;\n }\n\n throw new InRuleRecoveryException(\"sad sad panda\");\n }\n\n canPerformInRuleRecovery(\n this: MixedInParser,\n expectedToken: TokenType,\n follows: TokenType[],\n ): boolean {\n return (\n this.canRecoverWithSingleTokenInsertion(expectedToken, follows) ||\n this.canRecoverWithSingleTokenDeletion(expectedToken)\n );\n }\n\n canRecoverWithSingleTokenInsertion(\n this: MixedInParser,\n expectedTokType: TokenType,\n follows: TokenType[],\n ): boolean {\n if (!this.canTokenTypeBeInsertedInRecovery(expectedTokType)) {\n return false;\n }\n\n // must know the possible following tokens to perform single token insertion\n if (isEmpty(follows)) {\n return false;\n }\n\n const mismatchedTok = this.LA(1);\n const isMisMatchedTokInFollows =\n find(follows, (possibleFollowsTokType: TokenType) => {\n return this.tokenMatcher(mismatchedTok, possibleFollowsTokType);\n }) !== undefined;\n\n return isMisMatchedTokInFollows;\n }\n\n canRecoverWithSingleTokenDeletion(\n this: MixedInParser,\n expectedTokType: TokenType,\n ): boolean {\n if (!this.canTokenTypeBeDeletedInRecovery(expectedTokType)) {\n return false;\n }\n\n const isNextTokenWhatIsExpected = this.tokenMatcher(\n this.LA(2),\n expectedTokType,\n );\n return isNextTokenWhatIsExpected;\n }\n\n isInCurrentRuleReSyncSet(\n this: MixedInParser,\n tokenTypeIdx: TokenType,\n ): boolean {\n const followKey = this.getCurrFollowKey();\n const currentRuleReSyncSet = this.getFollowSetFromFollowKey(followKey);\n return includes(currentRuleReSyncSet, tokenTypeIdx);\n }\n\n findReSyncTokenType(this: MixedInParser): TokenType {\n const allPossibleReSyncTokTypes = this.flattenFollowSet();\n // this loop will always terminate as EOF is always in the follow stack and also always (virtually) in the input\n let nextToken = this.LA(1);\n let k = 2;\n while (true) {\n const foundMatch = find(allPossibleReSyncTokTypes, (resyncTokType) => {\n const canMatch = tokenMatcher(nextToken, resyncTokType);\n return canMatch;\n });\n if (foundMatch !== undefined) {\n return foundMatch;\n }\n nextToken = this.LA(k);\n k++;\n }\n }\n\n getCurrFollowKey(this: MixedInParser): IFollowKey {\n // the length is at least one as we always add the ruleName to the stack before invoking the rule.\n if (this.RULE_STACK.length === 1) {\n return EOF_FOLLOW_KEY;\n }\n const currRuleShortName = this.getLastExplicitRuleShortName();\n const currRuleIdx = this.getLastExplicitRuleOccurrenceIndex();\n const prevRuleShortName = this.getPreviousExplicitRuleShortName();\n\n return {\n ruleName: this.shortRuleNameToFullName(currRuleShortName),\n idxInCallingRule: currRuleIdx,\n inRule: this.shortRuleNameToFullName(prevRuleShortName),\n };\n }\n\n buildFullFollowKeyStack(this: MixedInParser): IFollowKey[] {\n const explicitRuleStack = this.RULE_STACK;\n const explicitOccurrenceStack = this.RULE_OCCURRENCE_STACK;\n\n return map(explicitRuleStack, (ruleName, idx) => {\n if (idx === 0) {\n return EOF_FOLLOW_KEY;\n }\n return {\n ruleName: this.shortRuleNameToFullName(ruleName),\n idxInCallingRule: explicitOccurrenceStack[idx],\n inRule: this.shortRuleNameToFullName(explicitRuleStack[idx - 1]),\n };\n });\n }\n\n flattenFollowSet(this: MixedInParser): TokenType[] {\n const followStack = map(this.buildFullFollowKeyStack(), (currKey) => {\n return this.getFollowSetFromFollowKey(currKey);\n });\n return flatten(followStack);\n }\n\n getFollowSetFromFollowKey(\n this: MixedInParser,\n followKey: IFollowKey,\n ): TokenType[] {\n if (followKey === EOF_FOLLOW_KEY) {\n return [EOF];\n }\n\n const followName =\n followKey.ruleName + followKey.idxInCallingRule + IN + followKey.inRule;\n\n return this.resyncFollows[followName];\n }\n\n // It does not make any sense to include a virtual EOF token in the list of resynced tokens\n // as EOF does not really exist and thus does not contain any useful information (line/column numbers)\n addToResyncTokens(\n this: MixedInParser,\n token: IToken,\n resyncTokens: IToken[],\n ): IToken[] {\n if (!this.tokenMatcher(token, EOF)) {\n resyncTokens.push(token);\n }\n return resyncTokens;\n }\n\n reSyncTo(this: MixedInParser, tokType: TokenType): IToken[] {\n const resyncedTokens: IToken[] = [];\n let nextTok = this.LA(1);\n while (this.tokenMatcher(nextTok, tokType) === false) {\n nextTok = this.SKIP_TOKEN();\n this.addToResyncTokens(nextTok, resyncedTokens);\n }\n // the last token is not part of the error.\n return dropRight(resyncedTokens);\n }\n\n attemptInRepetitionRecovery(\n this: MixedInParser,\n prodFunc: Function,\n args: any[],\n lookaheadFunc: () => boolean,\n dslMethodIdx: number,\n prodOccurrence: number,\n nextToksWalker: typeof AbstractNextTerminalAfterProductionWalker,\n notStuck?: boolean,\n ): void {\n // by default this is a NO-OP\n // The actual implementation is with the function(not method) below\n }\n\n getCurrentGrammarPath(\n this: MixedInParser,\n tokType: TokenType,\n tokIdxInRule: number,\n ): ITokenGrammarPath {\n const pathRuleStack: string[] = this.getHumanReadableRuleStack();\n const pathOccurrenceStack: number[] = clone(this.RULE_OCCURRENCE_STACK);\n const grammarPath: any = {\n ruleStack: pathRuleStack,\n occurrenceStack: pathOccurrenceStack,\n lastTok: tokType,\n lastTokOccurrence: tokIdxInRule,\n };\n\n return grammarPath;\n }\n getHumanReadableRuleStack(this: MixedInParser): string[] {\n return map(this.RULE_STACK, (currShortName) =>\n this.shortRuleNameToFullName(currShortName),\n );\n }\n}\n\nexport function attemptInRepetitionRecovery(\n this: MixedInParser,\n prodFunc: Function,\n args: any[],\n lookaheadFunc: () => boolean,\n dslMethodIdx: number,\n prodOccurrence: number,\n nextToksWalker: typeof AbstractNextTerminalAfterProductionWalker,\n notStuck?: boolean,\n): void {\n const key = this.getKeyForAutomaticLookahead(dslMethodIdx, prodOccurrence);\n let firstAfterRepInfo = this.firstAfterRepMap[key];\n if (firstAfterRepInfo === undefined) {\n const currRuleName = this.getCurrRuleFullName();\n const ruleGrammar = this.getGAstProductions()[currRuleName];\n const walker: AbstractNextTerminalAfterProductionWalker =\n new nextToksWalker(ruleGrammar, prodOccurrence);\n firstAfterRepInfo = walker.startWalking();\n this.firstAfterRepMap[key] = firstAfterRepInfo;\n }\n\n let expectTokAfterLastMatch = firstAfterRepInfo.token;\n let nextTokIdx = firstAfterRepInfo.occurrence;\n const isEndOfRule = firstAfterRepInfo.isEndOfRule;\n\n // special edge case of a TOP most repetition after which the input should END.\n // this will force an attempt for inRule recovery in that scenario.\n if (\n this.RULE_STACK.length === 1 &&\n isEndOfRule &&\n expectTokAfterLastMatch === undefined\n ) {\n expectTokAfterLastMatch = EOF;\n nextTokIdx = 1;\n }\n\n // We don't have anything to re-sync to...\n // this condition was extracted from `shouldInRepetitionRecoveryBeTried` to act as a type-guard\n if (expectTokAfterLastMatch === undefined || nextTokIdx === undefined) {\n return;\n }\n\n if (\n this.shouldInRepetitionRecoveryBeTried(\n expectTokAfterLastMatch,\n nextTokIdx,\n notStuck,\n )\n ) {\n // TODO: performance optimization: instead of passing the original args here, we modify\n // the args param (or create a new one) and make sure the lookahead func is explicitly provided\n // to avoid searching the cache for it once more.\n this.tryInRepetitionRecovery(\n prodFunc,\n args,\n lookaheadFunc,\n expectTokAfterLastMatch,\n );\n }\n}\n", "// Lookahead keys are 32Bit integers in the form\n// TTTTTTTT-ZZZZZZZZZZZZ-YYYY-XXXXXXXX\n// XXXX -> Occurrence Index bitmap.\n// YYYY -> DSL Method Type bitmap.\n// ZZZZZZZZZZZZZZZ -> Rule short Index bitmap.\n// TTTTTTTTT -> alternation alternative index bitmap\n\nexport const BITS_FOR_METHOD_TYPE = 4;\nexport const BITS_FOR_OCCURRENCE_IDX = 8;\nexport const BITS_FOR_RULE_IDX = 12;\n// TODO: validation, this means that there may at most 2^8 --> 256 alternatives for an alternation.\nexport const BITS_FOR_ALT_IDX = 8;\n\n// short string used as part of mapping keys.\n// being short improves the performance when composing KEYS for maps out of these\n// The 5 - 8 bits (16 possible values, are reserved for the DSL method indices)\nexport const OR_IDX = 1 << BITS_FOR_OCCURRENCE_IDX;\nexport const OPTION_IDX = 2 << BITS_FOR_OCCURRENCE_IDX;\nexport const MANY_IDX = 3 << BITS_FOR_OCCURRENCE_IDX;\nexport const AT_LEAST_ONE_IDX = 4 << BITS_FOR_OCCURRENCE_IDX;\nexport const MANY_SEP_IDX = 5 << BITS_FOR_OCCURRENCE_IDX;\nexport const AT_LEAST_ONE_SEP_IDX = 6 << BITS_FOR_OCCURRENCE_IDX;\n\n// this actually returns a number, but it is always used as a string (object prop key)\nexport function getKeyForAutomaticLookahead(\n ruleIdx: number,\n dslMethodIdx: number,\n occurrence: number,\n): number {\n return occurrence | dslMethodIdx | ruleIdx;\n}\n\nconst BITS_START_FOR_ALT_IDX = 32 - BITS_FOR_ALT_IDX;\n", "import {\n ILookaheadStrategy,\n ILookaheadValidationError,\n IOrAlt,\n OptionalProductionType,\n Rule,\n TokenType,\n} from \"@chevrotain/types\";\nimport { flatMap, isEmpty } from \"lodash-es\";\nimport { defaultGrammarValidatorErrorProvider } from \"../errors_public.js\";\nimport { DEFAULT_PARSER_CONFIG } from \"../parser/parser.js\";\nimport {\n validateAmbiguousAlternationAlternatives,\n validateEmptyOrAlternative,\n validateNoLeftRecursion,\n validateSomeNonEmptyLookaheadPath,\n} from \"./checks.js\";\nimport {\n buildAlternativesLookAheadFunc,\n buildLookaheadFuncForOptionalProd,\n buildLookaheadFuncForOr,\n buildSingleAlternativeLookaheadFunction,\n getProdType,\n} from \"./lookahead.js\";\nimport { IParserDefinitionError } from \"./types.js\";\n\nexport class LLkLookaheadStrategy implements ILookaheadStrategy {\n readonly maxLookahead: number;\n\n constructor(options?: { maxLookahead?: number }) {\n this.maxLookahead =\n options?.maxLookahead ?? DEFAULT_PARSER_CONFIG.maxLookahead;\n }\n\n validate(options: {\n rules: Rule[];\n tokenTypes: TokenType[];\n grammarName: string;\n }): ILookaheadValidationError[] {\n const leftRecursionErrors = this.validateNoLeftRecursion(options.rules);\n\n if (isEmpty(leftRecursionErrors)) {\n const emptyAltErrors = this.validateEmptyOrAlternatives(options.rules);\n const ambiguousAltsErrors = this.validateAmbiguousAlternationAlternatives(\n options.rules,\n this.maxLookahead,\n );\n const emptyRepetitionErrors = this.validateSomeNonEmptyLookaheadPath(\n options.rules,\n this.maxLookahead,\n );\n const allErrors = [\n ...leftRecursionErrors,\n ...emptyAltErrors,\n ...ambiguousAltsErrors,\n ...emptyRepetitionErrors,\n ];\n return allErrors;\n }\n return leftRecursionErrors;\n }\n\n validateNoLeftRecursion(rules: Rule[]): IParserDefinitionError[] {\n return flatMap(rules, (currTopRule) =>\n validateNoLeftRecursion(\n currTopRule,\n currTopRule,\n defaultGrammarValidatorErrorProvider,\n ),\n );\n }\n\n validateEmptyOrAlternatives(rules: Rule[]): IParserDefinitionError[] {\n return flatMap(rules, (currTopRule) =>\n validateEmptyOrAlternative(\n currTopRule,\n defaultGrammarValidatorErrorProvider,\n ),\n );\n }\n\n validateAmbiguousAlternationAlternatives(\n rules: Rule[],\n maxLookahead: number,\n ): IParserDefinitionError[] {\n return flatMap(rules, (currTopRule) =>\n validateAmbiguousAlternationAlternatives(\n currTopRule,\n maxLookahead,\n defaultGrammarValidatorErrorProvider,\n ),\n );\n }\n\n validateSomeNonEmptyLookaheadPath(\n rules: Rule[],\n maxLookahead: number,\n ): IParserDefinitionError[] {\n return validateSomeNonEmptyLookaheadPath(\n rules,\n maxLookahead,\n defaultGrammarValidatorErrorProvider,\n );\n }\n\n buildLookaheadForAlternation(options: {\n prodOccurrence: number;\n rule: Rule;\n maxLookahead: number;\n hasPredicates: boolean;\n dynamicTokensEnabled: boolean;\n }): (orAlts?: IOrAlt[] | undefined) => number | undefined {\n return buildLookaheadFuncForOr(\n options.prodOccurrence,\n options.rule,\n options.maxLookahead,\n options.hasPredicates,\n options.dynamicTokensEnabled,\n buildAlternativesLookAheadFunc,\n );\n }\n\n buildLookaheadForOptional(options: {\n prodOccurrence: number;\n prodType: OptionalProductionType;\n rule: Rule;\n maxLookahead: number;\n dynamicTokensEnabled: boolean;\n }): () => boolean {\n return buildLookaheadFuncForOptionalProd(\n options.prodOccurrence,\n options.rule,\n options.maxLookahead,\n options.dynamicTokensEnabled,\n getProdType(options.prodType),\n buildSingleAlternativeLookaheadFunction,\n );\n }\n}\n", "import { forEach, has } from \"lodash-es\";\nimport { DEFAULT_PARSER_CONFIG } from \"../parser.js\";\nimport {\n ILookaheadStrategy,\n IParserConfig,\n OptionalProductionType,\n} from \"@chevrotain/types\";\nimport {\n AT_LEAST_ONE_IDX,\n AT_LEAST_ONE_SEP_IDX,\n getKeyForAutomaticLookahead,\n MANY_IDX,\n MANY_SEP_IDX,\n OPTION_IDX,\n OR_IDX,\n} from \"../../grammar/keys.js\";\nimport { MixedInParser } from \"./parser_traits.js\";\nimport {\n Alternation,\n GAstVisitor,\n getProductionDslName,\n Option,\n Repetition,\n RepetitionMandatory,\n RepetitionMandatoryWithSeparator,\n RepetitionWithSeparator,\n Rule,\n} from \"@chevrotain/gast\";\nimport { LLkLookaheadStrategy } from \"../../grammar/llk_lookahead.js\";\n\n/**\n * Trait responsible for the lookahead related utilities and optimizations.\n */\nexport class LooksAhead {\n maxLookahead: number;\n lookAheadFuncsCache: any;\n dynamicTokensEnabled: boolean;\n lookaheadStrategy: ILookaheadStrategy;\n\n initLooksAhead(config: IParserConfig) {\n this.dynamicTokensEnabled = has(config, \"dynamicTokensEnabled\")\n ? (config.dynamicTokensEnabled as boolean) // assumes end user provides the correct config value/type\n : DEFAULT_PARSER_CONFIG.dynamicTokensEnabled;\n\n this.maxLookahead = has(config, \"maxLookahead\")\n ? (config.maxLookahead as number) // assumes end user provides the correct config value/type\n : DEFAULT_PARSER_CONFIG.maxLookahead;\n\n this.lookaheadStrategy = has(config, \"lookaheadStrategy\")\n ? (config.lookaheadStrategy as ILookaheadStrategy) // assumes end user provides the correct config value/type\n : new LLkLookaheadStrategy({ maxLookahead: this.maxLookahead });\n\n this.lookAheadFuncsCache = new Map();\n }\n\n preComputeLookaheadFunctions(this: MixedInParser, rules: Rule[]): void {\n forEach(rules, (currRule) => {\n this.TRACE_INIT(`${currRule.name} Rule Lookahead`, () => {\n const {\n alternation,\n repetition,\n option,\n repetitionMandatory,\n repetitionMandatoryWithSeparator,\n repetitionWithSeparator,\n } = collectMethods(currRule);\n\n forEach(alternation, (currProd) => {\n const prodIdx = currProd.idx === 0 ? \"\" : currProd.idx;\n this.TRACE_INIT(`${getProductionDslName(currProd)}${prodIdx}`, () => {\n const laFunc = this.lookaheadStrategy.buildLookaheadForAlternation({\n prodOccurrence: currProd.idx,\n rule: currRule,\n maxLookahead: currProd.maxLookahead || this.maxLookahead,\n hasPredicates: currProd.hasPredicates,\n dynamicTokensEnabled: this.dynamicTokensEnabled,\n });\n\n const key = getKeyForAutomaticLookahead(\n this.fullRuleNameToShort[currRule.name],\n OR_IDX,\n currProd.idx,\n );\n this.setLaFuncCache(key, laFunc);\n });\n });\n\n forEach(repetition, (currProd) => {\n this.computeLookaheadFunc(\n currRule,\n currProd.idx,\n MANY_IDX,\n \"Repetition\",\n currProd.maxLookahead,\n getProductionDslName(currProd),\n );\n });\n\n forEach(option, (currProd) => {\n this.computeLookaheadFunc(\n currRule,\n currProd.idx,\n OPTION_IDX,\n \"Option\",\n currProd.maxLookahead,\n getProductionDslName(currProd),\n );\n });\n\n forEach(repetitionMandatory, (currProd) => {\n this.computeLookaheadFunc(\n currRule,\n currProd.idx,\n AT_LEAST_ONE_IDX,\n \"RepetitionMandatory\",\n currProd.maxLookahead,\n getProductionDslName(currProd),\n );\n });\n\n forEach(repetitionMandatoryWithSeparator, (currProd) => {\n this.computeLookaheadFunc(\n currRule,\n currProd.idx,\n AT_LEAST_ONE_SEP_IDX,\n \"RepetitionMandatoryWithSeparator\",\n currProd.maxLookahead,\n getProductionDslName(currProd),\n );\n });\n\n forEach(repetitionWithSeparator, (currProd) => {\n this.computeLookaheadFunc(\n currRule,\n currProd.idx,\n MANY_SEP_IDX,\n \"RepetitionWithSeparator\",\n currProd.maxLookahead,\n getProductionDslName(currProd),\n );\n });\n });\n });\n }\n\n computeLookaheadFunc(\n this: MixedInParser,\n rule: Rule,\n prodOccurrence: number,\n prodKey: number,\n prodType: OptionalProductionType,\n prodMaxLookahead: number | undefined,\n dslMethodName: string,\n ): void {\n this.TRACE_INIT(\n `${dslMethodName}${prodOccurrence === 0 ? \"\" : prodOccurrence}`,\n () => {\n const laFunc = this.lookaheadStrategy.buildLookaheadForOptional({\n prodOccurrence,\n rule,\n maxLookahead: prodMaxLookahead || this.maxLookahead,\n dynamicTokensEnabled: this.dynamicTokensEnabled,\n prodType,\n });\n const key = getKeyForAutomaticLookahead(\n this.fullRuleNameToShort[rule.name],\n prodKey,\n prodOccurrence,\n );\n this.setLaFuncCache(key, laFunc);\n },\n );\n }\n\n // this actually returns a number, but it is always used as a string (object prop key)\n getKeyForAutomaticLookahead(\n this: MixedInParser,\n dslMethodIdx: number,\n occurrence: number,\n ): number {\n const currRuleShortName: any = this.getLastExplicitRuleShortName();\n return getKeyForAutomaticLookahead(\n currRuleShortName,\n dslMethodIdx,\n occurrence,\n );\n }\n\n getLaFuncFromCache(this: MixedInParser, key: number): Function {\n return this.lookAheadFuncsCache.get(key);\n }\n\n /* istanbul ignore next */\n setLaFuncCache(this: MixedInParser, key: number, value: Function): void {\n this.lookAheadFuncsCache.set(key, value);\n }\n}\n\nclass DslMethodsCollectorVisitor extends GAstVisitor {\n public dslMethods: {\n option: Option[];\n alternation: Alternation[];\n repetition: Repetition[];\n repetitionWithSeparator: RepetitionWithSeparator[];\n repetitionMandatory: RepetitionMandatory[];\n repetitionMandatoryWithSeparator: RepetitionMandatoryWithSeparator[];\n } = {\n option: [],\n alternation: [],\n repetition: [],\n repetitionWithSeparator: [],\n repetitionMandatory: [],\n repetitionMandatoryWithSeparator: [],\n };\n\n reset() {\n this.dslMethods = {\n option: [],\n alternation: [],\n repetition: [],\n repetitionWithSeparator: [],\n repetitionMandatory: [],\n repetitionMandatoryWithSeparator: [],\n };\n }\n\n public visitOption(option: Option): void {\n this.dslMethods.option.push(option);\n }\n\n public visitRepetitionWithSeparator(manySep: RepetitionWithSeparator): void {\n this.dslMethods.repetitionWithSeparator.push(manySep);\n }\n\n public visitRepetitionMandatory(atLeastOne: RepetitionMandatory): void {\n this.dslMethods.repetitionMandatory.push(atLeastOne);\n }\n\n public visitRepetitionMandatoryWithSeparator(\n atLeastOneSep: RepetitionMandatoryWithSeparator,\n ): void {\n this.dslMethods.repetitionMandatoryWithSeparator.push(atLeastOneSep);\n }\n\n public visitRepetition(many: Repetition): void {\n this.dslMethods.repetition.push(many);\n }\n\n public visitAlternation(or: Alternation): void {\n this.dslMethods.alternation.push(or);\n }\n}\n\nconst collectorVisitor = new DslMethodsCollectorVisitor();\nexport function collectMethods(rule: Rule): {\n option: Option[];\n alternation: Alternation[];\n repetition: Repetition[];\n repetitionWithSeparator: RepetitionWithSeparator[];\n repetitionMandatory: RepetitionMandatory[];\n repetitionMandatoryWithSeparator: RepetitionMandatoryWithSeparator[];\n} {\n collectorVisitor.reset();\n rule.accept(collectorVisitor);\n const dslMethods = collectorVisitor.dslMethods;\n // avoid uncleaned references\n collectorVisitor.reset();\n return dslMethods;\n}\n", "import { CstNode, CstNodeLocation, IToken } from \"@chevrotain/types\";\n\n/**\n * This nodeLocation tracking is not efficient and should only be used\n * when error recovery is enabled or the Token Vector contains virtual Tokens\n * (e.g, Python Indent/Outdent)\n * As it executes the calculation for every single terminal/nonTerminal\n * and does not rely on the fact the token vector is **sorted**\n */\nexport function setNodeLocationOnlyOffset(\n currNodeLocation: CstNodeLocation,\n newLocationInfo: Required>,\n): void {\n // First (valid) update for this cst node\n if (isNaN(currNodeLocation.startOffset) === true) {\n // assumption1: Token location information is either NaN or a valid number\n // assumption2: Token location information is fully valid if it exist\n // (both start/end offsets exist and are numbers).\n currNodeLocation.startOffset = newLocationInfo.startOffset;\n currNodeLocation.endOffset = newLocationInfo.endOffset;\n }\n // Once the startOffset has been updated with a valid number it should never receive\n // any farther updates as the Token vector is sorted.\n // We still have to check this this condition for every new possible location info\n // because with error recovery enabled we may encounter invalid tokens (NaN location props)\n else if (currNodeLocation.endOffset! < newLocationInfo.endOffset === true) {\n currNodeLocation.endOffset = newLocationInfo.endOffset;\n }\n}\n\n/**\n * This nodeLocation tracking is not efficient and should only be used\n * when error recovery is enabled or the Token Vector contains virtual Tokens\n * (e.g, Python Indent/Outdent)\n * As it executes the calculation for every single terminal/nonTerminal\n * and does not rely on the fact the token vector is **sorted**\n */\nexport function setNodeLocationFull(\n currNodeLocation: CstNodeLocation,\n newLocationInfo: CstNodeLocation,\n): void {\n // First (valid) update for this cst node\n if (isNaN(currNodeLocation.startOffset) === true) {\n // assumption1: Token location information is either NaN or a valid number\n // assumption2: Token location information is fully valid if it exist\n // (all start/end props exist and are numbers).\n currNodeLocation.startOffset = newLocationInfo.startOffset;\n currNodeLocation.startColumn = newLocationInfo.startColumn;\n currNodeLocation.startLine = newLocationInfo.startLine;\n currNodeLocation.endOffset = newLocationInfo.endOffset;\n currNodeLocation.endColumn = newLocationInfo.endColumn;\n currNodeLocation.endLine = newLocationInfo.endLine;\n }\n // Once the start props has been updated with a valid number it should never receive\n // any farther updates as the Token vector is sorted.\n // We still have to check this this condition for every new possible location info\n // because with error recovery enabled we may encounter invalid tokens (NaN location props)\n else if (currNodeLocation.endOffset! < newLocationInfo.endOffset! === true) {\n currNodeLocation.endOffset = newLocationInfo.endOffset;\n currNodeLocation.endColumn = newLocationInfo.endColumn;\n currNodeLocation.endLine = newLocationInfo.endLine;\n }\n}\n\nexport function addTerminalToCst(\n node: CstNode,\n token: IToken,\n tokenTypeName: string,\n): void {\n if (node.children[tokenTypeName] === undefined) {\n node.children[tokenTypeName] = [token];\n } else {\n node.children[tokenTypeName].push(token);\n }\n}\n\nexport function addNoneTerminalToCst(\n node: CstNode,\n ruleName: string,\n ruleResult: any,\n): void {\n if (node.children[ruleName] === undefined) {\n node.children[ruleName] = [ruleResult];\n } else {\n node.children[ruleName].push(ruleResult);\n }\n}\n", "const NAME = \"name\";\n\nexport function defineNameProp(obj: {}, nameValue: string): void {\n Object.defineProperty(obj, NAME, {\n enumerable: false,\n configurable: true,\n writable: false,\n value: nameValue,\n });\n}\n", "import {\n compact,\n filter,\n forEach,\n isArray,\n isEmpty,\n isFunction,\n isUndefined,\n keys,\n map,\n} from \"lodash-es\";\nimport { defineNameProp } from \"../../lang/lang_extensions.js\";\nimport { CstNode, ICstVisitor } from \"@chevrotain/types\";\n\nexport function defaultVisit(ctx: any, param: IN): void {\n const childrenNames = keys(ctx);\n const childrenNamesLength = childrenNames.length;\n for (let i = 0; i < childrenNamesLength; i++) {\n const currChildName = childrenNames[i];\n const currChildArray = ctx[currChildName];\n const currChildArrayLength = currChildArray.length;\n for (let j = 0; j < currChildArrayLength; j++) {\n const currChild: any = currChildArray[j];\n // distinction between Tokens Children and CstNode children\n if (currChild.tokenTypeIdx === undefined) {\n this[currChild.name](currChild.children, param);\n }\n }\n }\n // defaultVisit does not support generic out param\n}\n\nexport function createBaseSemanticVisitorConstructor(\n grammarName: string,\n ruleNames: string[],\n): {\n new (...args: any[]): ICstVisitor;\n} {\n const derivedConstructor: any = function () {};\n\n // can be overwritten according to:\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/\n // name?redirectlocale=en-US&redirectslug=JavaScript%2FReference%2FGlobal_Objects%2FFunction%2Fname\n defineNameProp(derivedConstructor, grammarName + \"BaseSemantics\");\n\n const semanticProto = {\n visit: function (cstNode: CstNode | CstNode[], param: any) {\n // enables writing more concise visitor methods when CstNode has only a single child\n if (isArray(cstNode)) {\n // A CST Node's children dictionary can never have empty arrays as values\n // If a key is defined there will be at least one element in the corresponding value array.\n cstNode = cstNode[0];\n }\n\n // enables passing optional CstNodes concisely.\n if (isUndefined(cstNode)) {\n return undefined;\n }\n\n return this[cstNode.name](cstNode.children, param);\n },\n\n validateVisitor: function () {\n const semanticDefinitionErrors = validateVisitor(this, ruleNames);\n if (!isEmpty(semanticDefinitionErrors)) {\n const errorMessages = map(\n semanticDefinitionErrors,\n (currDefError) => currDefError.msg,\n );\n throw Error(\n `Errors Detected in CST Visitor <${this.constructor.name}>:\\n\\t` +\n `${errorMessages.join(\"\\n\\n\").replace(/\\n/g, \"\\n\\t\")}`,\n );\n }\n },\n };\n\n derivedConstructor.prototype = semanticProto;\n derivedConstructor.prototype.constructor = derivedConstructor;\n\n derivedConstructor._RULE_NAMES = ruleNames;\n\n return derivedConstructor;\n}\n\nexport function createBaseVisitorConstructorWithDefaults(\n grammarName: string,\n ruleNames: string[],\n baseConstructor: Function,\n): {\n new (...args: any[]): ICstVisitor;\n} {\n const derivedConstructor: any = function () {};\n\n // can be overwritten according to:\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/\n // name?redirectlocale=en-US&redirectslug=JavaScript%2FReference%2FGlobal_Objects%2FFunction%2Fname\n defineNameProp(derivedConstructor, grammarName + \"BaseSemanticsWithDefaults\");\n\n const withDefaultsProto = Object.create(baseConstructor.prototype);\n forEach(ruleNames, (ruleName) => {\n withDefaultsProto[ruleName] = defaultVisit;\n });\n\n derivedConstructor.prototype = withDefaultsProto;\n derivedConstructor.prototype.constructor = derivedConstructor;\n\n return derivedConstructor;\n}\n\nexport enum CstVisitorDefinitionError {\n REDUNDANT_METHOD,\n MISSING_METHOD,\n}\n\nexport interface IVisitorDefinitionError {\n msg: string;\n type: CstVisitorDefinitionError;\n methodName: string;\n}\n\nexport function validateVisitor(\n visitorInstance: ICstVisitor,\n ruleNames: string[],\n): IVisitorDefinitionError[] {\n const missingErrors = validateMissingCstMethods(visitorInstance, ruleNames);\n\n return missingErrors;\n}\n\nexport function validateMissingCstMethods(\n visitorInstance: ICstVisitor,\n ruleNames: string[],\n): IVisitorDefinitionError[] {\n const missingRuleNames = filter(ruleNames, (currRuleName) => {\n return isFunction((visitorInstance as any)[currRuleName]) === false;\n });\n\n const errors: IVisitorDefinitionError[] = map(\n missingRuleNames,\n (currRuleName) => {\n return {\n msg: `Missing visitor method: <${currRuleName}> on ${(\n visitorInstance.constructor.name\n )} CST Visitor.`,\n type: CstVisitorDefinitionError.MISSING_METHOD,\n methodName: currRuleName,\n };\n },\n );\n\n return compact(errors);\n}\n", "import {\n addNoneTerminalToCst,\n addTerminalToCst,\n setNodeLocationFull,\n setNodeLocationOnlyOffset,\n} from \"../../cst/cst.js\";\nimport { has, isUndefined, keys, noop } from \"lodash-es\";\nimport {\n createBaseSemanticVisitorConstructor,\n createBaseVisitorConstructorWithDefaults,\n} from \"../../cst/cst_visitor.js\";\nimport {\n CstNode,\n CstNodeLocation,\n ICstVisitor,\n IParserConfig,\n IToken,\n nodeLocationTrackingOptions,\n} from \"@chevrotain/types\";\nimport { MixedInParser } from \"./parser_traits.js\";\nimport { DEFAULT_PARSER_CONFIG } from \"../parser.js\";\n\n/**\n * This trait is responsible for the CST building logic.\n */\nexport class TreeBuilder {\n outputCst: boolean;\n CST_STACK: CstNode[];\n baseCstVisitorConstructor: Function;\n baseCstVisitorWithDefaultsConstructor: Function;\n\n // dynamically assigned Methods\n setNodeLocationFromNode: (\n nodeLocation: CstNodeLocation,\n locationInformation: CstNodeLocation,\n ) => void;\n setNodeLocationFromToken: (\n nodeLocation: CstNodeLocation,\n locationInformation: CstNodeLocation,\n ) => void;\n cstPostRule: (this: MixedInParser, ruleCstNode: CstNode) => void;\n\n setInitialNodeLocation: (cstNode: CstNode) => void;\n nodeLocationTracking: nodeLocationTrackingOptions;\n\n initTreeBuilder(this: MixedInParser, config: IParserConfig) {\n this.CST_STACK = [];\n\n // outputCst is no longer exposed/defined in the pubic API\n this.outputCst = (config as any).outputCst;\n\n this.nodeLocationTracking = has(config, \"nodeLocationTracking\")\n ? (config.nodeLocationTracking as nodeLocationTrackingOptions) // assumes end user provides the correct config value/type\n : DEFAULT_PARSER_CONFIG.nodeLocationTracking;\n\n if (!this.outputCst) {\n this.cstInvocationStateUpdate = noop;\n this.cstFinallyStateUpdate = noop;\n this.cstPostTerminal = noop;\n this.cstPostNonTerminal = noop;\n this.cstPostRule = noop;\n } else {\n if (/full/i.test(this.nodeLocationTracking)) {\n if (this.recoveryEnabled) {\n this.setNodeLocationFromToken = setNodeLocationFull;\n this.setNodeLocationFromNode = setNodeLocationFull;\n this.cstPostRule = noop;\n this.setInitialNodeLocation = this.setInitialNodeLocationFullRecovery;\n } else {\n this.setNodeLocationFromToken = noop;\n this.setNodeLocationFromNode = noop;\n this.cstPostRule = this.cstPostRuleFull;\n this.setInitialNodeLocation = this.setInitialNodeLocationFullRegular;\n }\n } else if (/onlyOffset/i.test(this.nodeLocationTracking)) {\n if (this.recoveryEnabled) {\n this.setNodeLocationFromToken = setNodeLocationOnlyOffset;\n this.setNodeLocationFromNode = setNodeLocationOnlyOffset;\n this.cstPostRule = noop;\n this.setInitialNodeLocation =\n this.setInitialNodeLocationOnlyOffsetRecovery;\n } else {\n this.setNodeLocationFromToken = noop;\n this.setNodeLocationFromNode = noop;\n this.cstPostRule = this.cstPostRuleOnlyOffset;\n this.setInitialNodeLocation =\n this.setInitialNodeLocationOnlyOffsetRegular;\n }\n } else if (/none/i.test(this.nodeLocationTracking)) {\n this.setNodeLocationFromToken = noop;\n this.setNodeLocationFromNode = noop;\n this.cstPostRule = noop;\n this.setInitialNodeLocation = noop;\n } else {\n throw Error(\n `Invalid config option: \"${config.nodeLocationTracking}\"`,\n );\n }\n }\n }\n\n setInitialNodeLocationOnlyOffsetRecovery(\n this: MixedInParser,\n cstNode: any,\n ): void {\n cstNode.location = {\n startOffset: NaN,\n endOffset: NaN,\n };\n }\n\n setInitialNodeLocationOnlyOffsetRegular(\n this: MixedInParser,\n cstNode: any,\n ): void {\n cstNode.location = {\n // without error recovery the starting Location of a new CstNode is guaranteed\n // To be the next Token's startOffset (for valid inputs).\n // For invalid inputs there won't be any CSTOutput so this potential\n // inaccuracy does not matter\n startOffset: this.LA(1).startOffset,\n endOffset: NaN,\n };\n }\n\n setInitialNodeLocationFullRecovery(this: MixedInParser, cstNode: any): void {\n cstNode.location = {\n startOffset: NaN,\n startLine: NaN,\n startColumn: NaN,\n endOffset: NaN,\n endLine: NaN,\n endColumn: NaN,\n };\n }\n\n /**\n * @see setInitialNodeLocationOnlyOffsetRegular for explanation why this work\n\n * @param cstNode\n */\n setInitialNodeLocationFullRegular(this: MixedInParser, cstNode: any): void {\n const nextToken = this.LA(1);\n cstNode.location = {\n startOffset: nextToken.startOffset,\n startLine: nextToken.startLine,\n startColumn: nextToken.startColumn,\n endOffset: NaN,\n endLine: NaN,\n endColumn: NaN,\n };\n }\n\n cstInvocationStateUpdate(this: MixedInParser, fullRuleName: string): void {\n const cstNode: CstNode = {\n name: fullRuleName,\n children: Object.create(null),\n };\n\n this.setInitialNodeLocation(cstNode);\n this.CST_STACK.push(cstNode);\n }\n\n cstFinallyStateUpdate(this: MixedInParser): void {\n this.CST_STACK.pop();\n }\n\n cstPostRuleFull(this: MixedInParser, ruleCstNode: CstNode): void {\n // casts to `required` are safe because `cstPostRuleFull` should only be invoked when full location is enabled\n const prevToken = this.LA(0) as Required;\n const loc = ruleCstNode.location as Required;\n\n // If this condition is true it means we consumed at least one Token\n // In this CstNode.\n if (loc.startOffset <= prevToken.startOffset === true) {\n loc.endOffset = prevToken.endOffset;\n loc.endLine = prevToken.endLine;\n loc.endColumn = prevToken.endColumn;\n }\n // \"empty\" CstNode edge case\n else {\n loc.startOffset = NaN;\n loc.startLine = NaN;\n loc.startColumn = NaN;\n }\n }\n\n cstPostRuleOnlyOffset(this: MixedInParser, ruleCstNode: CstNode): void {\n const prevToken = this.LA(0);\n // `location' is not null because `cstPostRuleOnlyOffset` will only be invoked when location tracking is enabled.\n const loc = ruleCstNode.location!;\n\n // If this condition is true it means we consumed at least one Token\n // In this CstNode.\n if (loc.startOffset <= prevToken.startOffset === true) {\n loc.endOffset = prevToken.endOffset;\n }\n // \"empty\" CstNode edge case\n else {\n loc.startOffset = NaN;\n }\n }\n\n cstPostTerminal(\n this: MixedInParser,\n key: string,\n consumedToken: IToken,\n ): void {\n const rootCst = this.CST_STACK[this.CST_STACK.length - 1];\n addTerminalToCst(rootCst, consumedToken, key);\n // This is only used when **both** error recovery and CST Output are enabled.\n this.setNodeLocationFromToken(rootCst.location!, consumedToken);\n }\n\n cstPostNonTerminal(\n this: MixedInParser,\n ruleCstResult: CstNode,\n ruleName: string,\n ): void {\n const preCstNode = this.CST_STACK[this.CST_STACK.length - 1];\n addNoneTerminalToCst(preCstNode, ruleName, ruleCstResult);\n // This is only used when **both** error recovery and CST Output are enabled.\n this.setNodeLocationFromNode(preCstNode.location!, ruleCstResult.location!);\n }\n\n getBaseCstVisitorConstructor(\n this: MixedInParser,\n ): {\n new (...args: any[]): ICstVisitor;\n } {\n if (isUndefined(this.baseCstVisitorConstructor)) {\n const newBaseCstVisitorConstructor = createBaseSemanticVisitorConstructor(\n this.className,\n keys(this.gastProductionsCache),\n );\n this.baseCstVisitorConstructor = newBaseCstVisitorConstructor;\n return newBaseCstVisitorConstructor;\n }\n\n return this.baseCstVisitorConstructor;\n }\n\n getBaseCstVisitorConstructorWithDefaults(\n this: MixedInParser,\n ): {\n new (...args: any[]): ICstVisitor;\n } {\n if (isUndefined(this.baseCstVisitorWithDefaultsConstructor)) {\n const newConstructor = createBaseVisitorConstructorWithDefaults(\n this.className,\n keys(this.gastProductionsCache),\n this.getBaseCstVisitorConstructor(),\n );\n this.baseCstVisitorWithDefaultsConstructor = newConstructor;\n return newConstructor;\n }\n\n return this.baseCstVisitorWithDefaultsConstructor;\n }\n\n getLastExplicitRuleShortName(this: MixedInParser): number {\n const ruleStack = this.RULE_STACK;\n return ruleStack[ruleStack.length - 1];\n }\n\n getPreviousExplicitRuleShortName(this: MixedInParser): number {\n const ruleStack = this.RULE_STACK;\n return ruleStack[ruleStack.length - 2];\n }\n\n getLastExplicitRuleOccurrenceIndex(this: MixedInParser): number {\n const occurrenceStack = this.RULE_OCCURRENCE_STACK;\n return occurrenceStack[occurrenceStack.length - 1];\n }\n}\n", "import { END_OF_FILE } from \"../parser.js\";\nimport { IToken } from \"@chevrotain/types\";\nimport { MixedInParser } from \"./parser_traits.js\";\n\n/**\n * Trait responsible abstracting over the interaction with Lexer output (Token vector).\n *\n * This could be generalized to support other kinds of lexers, e.g.\n * - Just in Time Lexing / Lexer-Less parsing.\n * - Streaming Lexer.\n */\nexport class LexerAdapter {\n tokVector: IToken[];\n tokVectorLength: number;\n currIdx: number;\n\n initLexerAdapter() {\n this.tokVector = [];\n this.tokVectorLength = 0;\n this.currIdx = -1;\n }\n\n set input(newInput: IToken[]) {\n // @ts-ignore - `this parameter` not supported in setters/getters\n // - https://www.typescriptlang.org/docs/handbook/functions.html#this-parameters\n if (this.selfAnalysisDone !== true) {\n throw Error(\n `Missing invocation at the end of the Parser's constructor.`,\n );\n }\n // @ts-ignore - `this parameter` not supported in setters/getters\n // - https://www.typescriptlang.org/docs/handbook/functions.html#this-parameters\n this.reset();\n this.tokVector = newInput;\n this.tokVectorLength = newInput.length;\n }\n\n get input(): IToken[] {\n return this.tokVector;\n }\n\n // skips a token and returns the next token\n SKIP_TOKEN(this: MixedInParser): IToken {\n if (this.currIdx <= this.tokVector.length - 2) {\n this.consumeToken();\n return this.LA(1);\n } else {\n return END_OF_FILE;\n }\n }\n\n // Lexer (accessing Token vector) related methods which can be overridden to implement lazy lexers\n // or lexers dependent on parser context.\n LA(this: MixedInParser, howMuch: number): IToken {\n const soughtIdx = this.currIdx + howMuch;\n if (soughtIdx < 0 || this.tokVectorLength <= soughtIdx) {\n return END_OF_FILE;\n } else {\n return this.tokVector[soughtIdx];\n }\n }\n\n consumeToken(this: MixedInParser) {\n this.currIdx++;\n }\n\n exportLexerState(this: MixedInParser): number {\n return this.currIdx;\n }\n\n importLexerState(this: MixedInParser, newState: number) {\n this.currIdx = newState;\n }\n\n resetLexerState(this: MixedInParser): void {\n this.currIdx = -1;\n }\n\n moveToTerminatedState(this: MixedInParser): void {\n this.currIdx = this.tokVector.length - 1;\n }\n\n getLexerPosition(this: MixedInParser): number {\n return this.exportLexerState();\n }\n}\n", "import {\n AtLeastOneSepMethodOpts,\n ConsumeMethodOpts,\n DSLMethodOpts,\n DSLMethodOptsWithErr,\n GrammarAction,\n IOrAlt,\n IRuleConfig,\n ISerializedGast,\n IToken,\n ManySepMethodOpts,\n OrMethodOpts,\n SubruleMethodOpts,\n TokenType,\n} from \"@chevrotain/types\";\nimport { includes, values } from \"lodash-es\";\nimport { isRecognitionException } from \"../../exceptions_public.js\";\nimport { DEFAULT_RULE_CONFIG, ParserDefinitionErrorType } from \"../parser.js\";\nimport { defaultGrammarValidatorErrorProvider } from \"../../errors_public.js\";\nimport { validateRuleIsOverridden } from \"../../grammar/checks.js\";\nimport { MixedInParser } from \"./parser_traits.js\";\nimport { Rule, serializeGrammar } from \"@chevrotain/gast\";\nimport { IParserDefinitionError } from \"../../grammar/types.js\";\nimport { ParserMethodInternal } from \"../types.js\";\n\n/**\n * This trait is responsible for implementing the public API\n * for defining Chevrotain parsers, i.e:\n * - CONSUME\n * - RULE\n * - OPTION\n * - ...\n */\nexport class RecognizerApi {\n ACTION(this: MixedInParser, impl: () => T): T {\n return impl.call(this);\n }\n\n consume(\n this: MixedInParser,\n idx: number,\n tokType: TokenType,\n options?: ConsumeMethodOpts,\n ): IToken {\n return this.consumeInternal(tokType, idx, options);\n }\n\n subrule(\n this: MixedInParser,\n idx: number,\n ruleToCall: ParserMethodInternal,\n options?: SubruleMethodOpts,\n ): R {\n return this.subruleInternal(ruleToCall, idx, options);\n }\n\n option(\n this: MixedInParser,\n idx: number,\n actionORMethodDef: GrammarAction | DSLMethodOpts,\n ): OUT | undefined {\n return this.optionInternal(actionORMethodDef, idx);\n }\n\n or(\n this: MixedInParser,\n idx: number,\n altsOrOpts: IOrAlt[] | OrMethodOpts,\n ): any {\n return this.orInternal(altsOrOpts, idx);\n }\n\n many(\n this: MixedInParser,\n idx: number,\n actionORMethodDef: GrammarAction | DSLMethodOpts,\n ): void {\n return this.manyInternal(idx, actionORMethodDef);\n }\n\n atLeastOne(\n this: MixedInParser,\n idx: number,\n actionORMethodDef: GrammarAction | DSLMethodOptsWithErr,\n ): void {\n return this.atLeastOneInternal(idx, actionORMethodDef);\n }\n\n CONSUME(\n this: MixedInParser,\n tokType: TokenType,\n options?: ConsumeMethodOpts,\n ): IToken {\n return this.consumeInternal(tokType, 0, options);\n }\n\n CONSUME1(\n this: MixedInParser,\n tokType: TokenType,\n options?: ConsumeMethodOpts,\n ): IToken {\n return this.consumeInternal(tokType, 1, options);\n }\n\n CONSUME2(\n this: MixedInParser,\n tokType: TokenType,\n options?: ConsumeMethodOpts,\n ): IToken {\n return this.consumeInternal(tokType, 2, options);\n }\n\n CONSUME3(\n this: MixedInParser,\n tokType: TokenType,\n options?: ConsumeMethodOpts,\n ): IToken {\n return this.consumeInternal(tokType, 3, options);\n }\n\n CONSUME4(\n this: MixedInParser,\n tokType: TokenType,\n options?: ConsumeMethodOpts,\n ): IToken {\n return this.consumeInternal(tokType, 4, options);\n }\n\n CONSUME5(\n this: MixedInParser,\n tokType: TokenType,\n options?: ConsumeMethodOpts,\n ): IToken {\n return this.consumeInternal(tokType, 5, options);\n }\n\n CONSUME6(\n this: MixedInParser,\n tokType: TokenType,\n options?: ConsumeMethodOpts,\n ): IToken {\n return this.consumeInternal(tokType, 6, options);\n }\n\n CONSUME7(\n this: MixedInParser,\n tokType: TokenType,\n options?: ConsumeMethodOpts,\n ): IToken {\n return this.consumeInternal(tokType, 7, options);\n }\n\n CONSUME8(\n this: MixedInParser,\n tokType: TokenType,\n options?: ConsumeMethodOpts,\n ): IToken {\n return this.consumeInternal(tokType, 8, options);\n }\n\n CONSUME9(\n this: MixedInParser,\n tokType: TokenType,\n options?: ConsumeMethodOpts,\n ): IToken {\n return this.consumeInternal(tokType, 9, options);\n }\n\n SUBRULE(\n this: MixedInParser,\n ruleToCall: ParserMethodInternal,\n options?: SubruleMethodOpts,\n ): R {\n return this.subruleInternal(ruleToCall, 0, options);\n }\n\n SUBRULE1(\n this: MixedInParser,\n ruleToCall: ParserMethodInternal,\n options?: SubruleMethodOpts,\n ): R {\n return this.subruleInternal(ruleToCall, 1, options);\n }\n\n SUBRULE2(\n this: MixedInParser,\n ruleToCall: ParserMethodInternal,\n options?: SubruleMethodOpts,\n ): R {\n return this.subruleInternal(ruleToCall, 2, options);\n }\n\n SUBRULE3(\n this: MixedInParser,\n ruleToCall: ParserMethodInternal,\n options?: SubruleMethodOpts,\n ): R {\n return this.subruleInternal(ruleToCall, 3, options);\n }\n\n SUBRULE4(\n this: MixedInParser,\n ruleToCall: ParserMethodInternal,\n options?: SubruleMethodOpts,\n ): R {\n return this.subruleInternal(ruleToCall, 4, options);\n }\n\n SUBRULE5(\n this: MixedInParser,\n ruleToCall: ParserMethodInternal,\n options?: SubruleMethodOpts,\n ): R {\n return this.subruleInternal(ruleToCall, 5, options);\n }\n\n SUBRULE6(\n this: MixedInParser,\n ruleToCall: ParserMethodInternal,\n options?: SubruleMethodOpts,\n ): R {\n return this.subruleInternal(ruleToCall, 6, options);\n }\n\n SUBRULE7(\n this: MixedInParser,\n ruleToCall: ParserMethodInternal,\n options?: SubruleMethodOpts,\n ): R {\n return this.subruleInternal(ruleToCall, 7, options);\n }\n\n SUBRULE8(\n this: MixedInParser,\n ruleToCall: ParserMethodInternal,\n options?: SubruleMethodOpts,\n ): R {\n return this.subruleInternal(ruleToCall, 8, options);\n }\n\n SUBRULE9(\n this: MixedInParser,\n ruleToCall: ParserMethodInternal,\n options?: SubruleMethodOpts,\n ): R {\n return this.subruleInternal(ruleToCall, 9, options);\n }\n\n OPTION(\n this: MixedInParser,\n actionORMethodDef: GrammarAction | DSLMethodOpts,\n ): OUT | undefined {\n return this.optionInternal(actionORMethodDef, 0);\n }\n\n OPTION1(\n this: MixedInParser,\n actionORMethodDef: GrammarAction | DSLMethodOpts,\n ): OUT | undefined {\n return this.optionInternal(actionORMethodDef, 1);\n }\n\n OPTION2(\n this: MixedInParser,\n actionORMethodDef: GrammarAction | DSLMethodOpts,\n ): OUT | undefined {\n return this.optionInternal(actionORMethodDef, 2);\n }\n\n OPTION3(\n this: MixedInParser,\n actionORMethodDef: GrammarAction | DSLMethodOpts,\n ): OUT | undefined {\n return this.optionInternal(actionORMethodDef, 3);\n }\n\n OPTION4(\n this: MixedInParser,\n actionORMethodDef: GrammarAction | DSLMethodOpts,\n ): OUT | undefined {\n return this.optionInternal(actionORMethodDef, 4);\n }\n\n OPTION5(\n this: MixedInParser,\n actionORMethodDef: GrammarAction | DSLMethodOpts,\n ): OUT | undefined {\n return this.optionInternal(actionORMethodDef, 5);\n }\n\n OPTION6(\n this: MixedInParser,\n actionORMethodDef: GrammarAction | DSLMethodOpts,\n ): OUT | undefined {\n return this.optionInternal(actionORMethodDef, 6);\n }\n\n OPTION7(\n this: MixedInParser,\n actionORMethodDef: GrammarAction | DSLMethodOpts,\n ): OUT | undefined {\n return this.optionInternal(actionORMethodDef, 7);\n }\n\n OPTION8(\n this: MixedInParser,\n actionORMethodDef: GrammarAction | DSLMethodOpts,\n ): OUT | undefined {\n return this.optionInternal(actionORMethodDef, 8);\n }\n\n OPTION9(\n this: MixedInParser,\n actionORMethodDef: GrammarAction | DSLMethodOpts,\n ): OUT | undefined {\n return this.optionInternal(actionORMethodDef, 9);\n }\n\n OR(\n this: MixedInParser,\n altsOrOpts: IOrAlt[] | OrMethodOpts,\n ): T {\n return this.orInternal(altsOrOpts, 0);\n }\n\n OR1(\n this: MixedInParser,\n altsOrOpts: IOrAlt[] | OrMethodOpts,\n ): T {\n return this.orInternal(altsOrOpts, 1);\n }\n\n OR2(\n this: MixedInParser,\n altsOrOpts: IOrAlt[] | OrMethodOpts,\n ): T {\n return this.orInternal(altsOrOpts, 2);\n }\n\n OR3(\n this: MixedInParser,\n altsOrOpts: IOrAlt[] | OrMethodOpts,\n ): T {\n return this.orInternal(altsOrOpts, 3);\n }\n\n OR4(\n this: MixedInParser,\n altsOrOpts: IOrAlt[] | OrMethodOpts,\n ): T {\n return this.orInternal(altsOrOpts, 4);\n }\n\n OR5(\n this: MixedInParser,\n altsOrOpts: IOrAlt[] | OrMethodOpts,\n ): T {\n return this.orInternal(altsOrOpts, 5);\n }\n\n OR6(\n this: MixedInParser,\n altsOrOpts: IOrAlt[] | OrMethodOpts,\n ): T {\n return this.orInternal(altsOrOpts, 6);\n }\n\n OR7(\n this: MixedInParser,\n altsOrOpts: IOrAlt[] | OrMethodOpts,\n ): T {\n return this.orInternal(altsOrOpts, 7);\n }\n\n OR8(\n this: MixedInParser,\n altsOrOpts: IOrAlt[] | OrMethodOpts,\n ): T {\n return this.orInternal(altsOrOpts, 8);\n }\n\n OR9(\n this: MixedInParser,\n altsOrOpts: IOrAlt[] | OrMethodOpts,\n ): T {\n return this.orInternal(altsOrOpts, 9);\n }\n\n MANY(\n this: MixedInParser,\n actionORMethodDef: GrammarAction | DSLMethodOpts,\n ): void {\n this.manyInternal(0, actionORMethodDef);\n }\n\n MANY1(\n this: MixedInParser,\n actionORMethodDef: GrammarAction | DSLMethodOpts,\n ): void {\n this.manyInternal(1, actionORMethodDef);\n }\n\n MANY2(\n this: MixedInParser,\n actionORMethodDef: GrammarAction | DSLMethodOpts,\n ): void {\n this.manyInternal(2, actionORMethodDef);\n }\n\n MANY3(\n this: MixedInParser,\n actionORMethodDef: GrammarAction | DSLMethodOpts,\n ): void {\n this.manyInternal(3, actionORMethodDef);\n }\n\n MANY4(\n this: MixedInParser,\n actionORMethodDef: GrammarAction | DSLMethodOpts,\n ): void {\n this.manyInternal(4, actionORMethodDef);\n }\n\n MANY5(\n this: MixedInParser,\n actionORMethodDef: GrammarAction | DSLMethodOpts,\n ): void {\n this.manyInternal(5, actionORMethodDef);\n }\n\n MANY6(\n this: MixedInParser,\n actionORMethodDef: GrammarAction | DSLMethodOpts,\n ): void {\n this.manyInternal(6, actionORMethodDef);\n }\n\n MANY7(\n this: MixedInParser,\n actionORMethodDef: GrammarAction | DSLMethodOpts,\n ): void {\n this.manyInternal(7, actionORMethodDef);\n }\n\n MANY8(\n this: MixedInParser,\n actionORMethodDef: GrammarAction | DSLMethodOpts,\n ): void {\n this.manyInternal(8, actionORMethodDef);\n }\n\n MANY9(\n this: MixedInParser,\n actionORMethodDef: GrammarAction | DSLMethodOpts,\n ): void {\n this.manyInternal(9, actionORMethodDef);\n }\n\n MANY_SEP(this: MixedInParser, options: ManySepMethodOpts): void {\n this.manySepFirstInternal(0, options);\n }\n\n MANY_SEP1(this: MixedInParser, options: ManySepMethodOpts): void {\n this.manySepFirstInternal(1, options);\n }\n\n MANY_SEP2(this: MixedInParser, options: ManySepMethodOpts): void {\n this.manySepFirstInternal(2, options);\n }\n\n MANY_SEP3(this: MixedInParser, options: ManySepMethodOpts): void {\n this.manySepFirstInternal(3, options);\n }\n\n MANY_SEP4(this: MixedInParser, options: ManySepMethodOpts): void {\n this.manySepFirstInternal(4, options);\n }\n\n MANY_SEP5(this: MixedInParser, options: ManySepMethodOpts): void {\n this.manySepFirstInternal(5, options);\n }\n\n MANY_SEP6(this: MixedInParser, options: ManySepMethodOpts): void {\n this.manySepFirstInternal(6, options);\n }\n\n MANY_SEP7(this: MixedInParser, options: ManySepMethodOpts): void {\n this.manySepFirstInternal(7, options);\n }\n\n MANY_SEP8(this: MixedInParser, options: ManySepMethodOpts): void {\n this.manySepFirstInternal(8, options);\n }\n\n MANY_SEP9(this: MixedInParser, options: ManySepMethodOpts): void {\n this.manySepFirstInternal(9, options);\n }\n\n AT_LEAST_ONE(\n this: MixedInParser,\n actionORMethodDef: GrammarAction | DSLMethodOptsWithErr,\n ): void {\n this.atLeastOneInternal(0, actionORMethodDef);\n }\n\n AT_LEAST_ONE1(\n this: MixedInParser,\n actionORMethodDef: GrammarAction | DSLMethodOptsWithErr,\n ): void {\n return this.atLeastOneInternal(1, actionORMethodDef);\n }\n\n AT_LEAST_ONE2(\n this: MixedInParser,\n actionORMethodDef: GrammarAction | DSLMethodOptsWithErr,\n ): void {\n this.atLeastOneInternal(2, actionORMethodDef);\n }\n\n AT_LEAST_ONE3(\n this: MixedInParser,\n actionORMethodDef: GrammarAction | DSLMethodOptsWithErr,\n ): void {\n this.atLeastOneInternal(3, actionORMethodDef);\n }\n\n AT_LEAST_ONE4(\n this: MixedInParser,\n actionORMethodDef: GrammarAction | DSLMethodOptsWithErr,\n ): void {\n this.atLeastOneInternal(4, actionORMethodDef);\n }\n\n AT_LEAST_ONE5(\n this: MixedInParser,\n actionORMethodDef: GrammarAction | DSLMethodOptsWithErr,\n ): void {\n this.atLeastOneInternal(5, actionORMethodDef);\n }\n\n AT_LEAST_ONE6(\n this: MixedInParser,\n actionORMethodDef: GrammarAction | DSLMethodOptsWithErr,\n ): void {\n this.atLeastOneInternal(6, actionORMethodDef);\n }\n\n AT_LEAST_ONE7(\n this: MixedInParser,\n actionORMethodDef: GrammarAction | DSLMethodOptsWithErr,\n ): void {\n this.atLeastOneInternal(7, actionORMethodDef);\n }\n\n AT_LEAST_ONE8(\n this: MixedInParser,\n actionORMethodDef: GrammarAction | DSLMethodOptsWithErr,\n ): void {\n this.atLeastOneInternal(8, actionORMethodDef);\n }\n\n AT_LEAST_ONE9(\n this: MixedInParser,\n actionORMethodDef: GrammarAction | DSLMethodOptsWithErr,\n ): void {\n this.atLeastOneInternal(9, actionORMethodDef);\n }\n\n AT_LEAST_ONE_SEP(\n this: MixedInParser,\n options: AtLeastOneSepMethodOpts,\n ): void {\n this.atLeastOneSepFirstInternal(0, options);\n }\n\n AT_LEAST_ONE_SEP1(\n this: MixedInParser,\n options: AtLeastOneSepMethodOpts,\n ): void {\n this.atLeastOneSepFirstInternal(1, options);\n }\n\n AT_LEAST_ONE_SEP2(\n this: MixedInParser,\n options: AtLeastOneSepMethodOpts,\n ): void {\n this.atLeastOneSepFirstInternal(2, options);\n }\n\n AT_LEAST_ONE_SEP3(\n this: MixedInParser,\n options: AtLeastOneSepMethodOpts,\n ): void {\n this.atLeastOneSepFirstInternal(3, options);\n }\n\n AT_LEAST_ONE_SEP4(\n this: MixedInParser,\n options: AtLeastOneSepMethodOpts,\n ): void {\n this.atLeastOneSepFirstInternal(4, options);\n }\n\n AT_LEAST_ONE_SEP5(\n this: MixedInParser,\n options: AtLeastOneSepMethodOpts,\n ): void {\n this.atLeastOneSepFirstInternal(5, options);\n }\n\n AT_LEAST_ONE_SEP6(\n this: MixedInParser,\n options: AtLeastOneSepMethodOpts,\n ): void {\n this.atLeastOneSepFirstInternal(6, options);\n }\n\n AT_LEAST_ONE_SEP7(\n this: MixedInParser,\n options: AtLeastOneSepMethodOpts,\n ): void {\n this.atLeastOneSepFirstInternal(7, options);\n }\n\n AT_LEAST_ONE_SEP8(\n this: MixedInParser,\n options: AtLeastOneSepMethodOpts,\n ): void {\n this.atLeastOneSepFirstInternal(8, options);\n }\n\n AT_LEAST_ONE_SEP9(\n this: MixedInParser,\n options: AtLeastOneSepMethodOpts,\n ): void {\n this.atLeastOneSepFirstInternal(9, options);\n }\n\n RULE(\n this: MixedInParser,\n name: string,\n implementation: (...implArgs: any[]) => T,\n config: IRuleConfig = DEFAULT_RULE_CONFIG,\n ): (idxInCallingRule?: number, ...args: any[]) => T | any {\n if (includes(this.definedRulesNames, name)) {\n const errMsg =\n defaultGrammarValidatorErrorProvider.buildDuplicateRuleNameError({\n topLevelRule: name,\n grammarName: this.className,\n });\n\n const error = {\n message: errMsg,\n type: ParserDefinitionErrorType.DUPLICATE_RULE_NAME,\n ruleName: name,\n };\n this.definitionErrors.push(error);\n }\n\n this.definedRulesNames.push(name);\n\n const ruleImplementation = this.defineRule(name, implementation, config);\n (this as any)[name] = ruleImplementation;\n return ruleImplementation;\n }\n\n OVERRIDE_RULE(\n this: MixedInParser,\n name: string,\n impl: (...implArgs: any[]) => T,\n config: IRuleConfig = DEFAULT_RULE_CONFIG,\n ): (idxInCallingRule?: number, ...args: any[]) => T {\n const ruleErrors: IParserDefinitionError[] = validateRuleIsOverridden(\n name,\n this.definedRulesNames,\n this.className,\n );\n this.definitionErrors = this.definitionErrors.concat(ruleErrors);\n\n const ruleImplementation = this.defineRule(name, impl, config);\n (this as any)[name] = ruleImplementation;\n return ruleImplementation;\n }\n\n BACKTRACK(\n this: MixedInParser,\n grammarRule: (...args: any[]) => T,\n args?: any[],\n ): () => boolean {\n return function () {\n // save org state\n this.isBackTrackingStack.push(1);\n const orgState = this.saveRecogState();\n try {\n grammarRule.apply(this, args);\n // if no exception was thrown we have succeed parsing the rule.\n return true;\n } catch (e) {\n if (isRecognitionException(e)) {\n return false;\n } else {\n throw e;\n }\n } finally {\n this.reloadRecogState(orgState);\n this.isBackTrackingStack.pop();\n }\n };\n }\n\n // GAST export APIs\n public getGAstProductions(this: MixedInParser): Record {\n return this.gastProductionsCache;\n }\n\n public getSerializedGastProductions(this: MixedInParser): ISerializedGast[] {\n return serializeGrammar(values(this.gastProductionsCache));\n }\n}\n", "import {\n AtLeastOneSepMethodOpts,\n ConsumeMethodOpts,\n DSLMethodOpts,\n DSLMethodOptsWithErr,\n GrammarAction,\n IOrAlt,\n IParserConfig,\n IRuleConfig,\n IToken,\n ManySepMethodOpts,\n OrMethodOpts,\n ParserMethod,\n SubruleMethodOpts,\n TokenType,\n TokenTypeDictionary,\n TokenVocabulary,\n} from \"@chevrotain/types\";\nimport {\n clone,\n every,\n flatten,\n has,\n isArray,\n isEmpty,\n isObject,\n reduce,\n uniq,\n values,\n} from \"lodash-es\";\nimport {\n AT_LEAST_ONE_IDX,\n AT_LEAST_ONE_SEP_IDX,\n BITS_FOR_METHOD_TYPE,\n BITS_FOR_OCCURRENCE_IDX,\n MANY_IDX,\n MANY_SEP_IDX,\n OPTION_IDX,\n OR_IDX,\n} from \"../../grammar/keys.js\";\nimport {\n isRecognitionException,\n MismatchedTokenException,\n NotAllInputParsedException,\n} from \"../../exceptions_public.js\";\nimport { PROD_TYPE } from \"../../grammar/lookahead.js\";\nimport {\n AbstractNextTerminalAfterProductionWalker,\n NextTerminalAfterAtLeastOneSepWalker,\n NextTerminalAfterAtLeastOneWalker,\n NextTerminalAfterManySepWalker,\n NextTerminalAfterManyWalker,\n} from \"../../grammar/interpreter.js\";\nimport { DEFAULT_RULE_CONFIG, IParserState, TokenMatcher } from \"../parser.js\";\nimport { IN_RULE_RECOVERY_EXCEPTION } from \"./recoverable.js\";\nimport { EOF } from \"../../../scan/tokens_public.js\";\nimport { MixedInParser } from \"./parser_traits.js\";\nimport {\n augmentTokenTypes,\n isTokenType,\n tokenStructuredMatcher,\n tokenStructuredMatcherNoCategories,\n} from \"../../../scan/tokens.js\";\nimport { Rule } from \"@chevrotain/gast\";\nimport { ParserMethodInternal } from \"../types.js\";\n\n/**\n * This trait is responsible for the runtime parsing engine\n * Used by the official API (recognizer_api.ts)\n */\nexport class RecognizerEngine {\n isBackTrackingStack: boolean[];\n className: string;\n RULE_STACK: number[];\n RULE_OCCURRENCE_STACK: number[];\n definedRulesNames: string[];\n tokensMap: { [fqn: string]: TokenType };\n gastProductionsCache: Record;\n shortRuleNameToFull: Record;\n fullRuleNameToShort: Record;\n // The shortName Index must be coded \"after\" the first 8bits to enable building unique lookahead keys\n ruleShortNameIdx: number;\n tokenMatcher: TokenMatcher;\n subruleIdx: number;\n\n initRecognizerEngine(\n tokenVocabulary: TokenVocabulary,\n config: IParserConfig,\n ) {\n this.className = this.constructor.name;\n // TODO: would using an ES6 Map or plain object be faster (CST building scenario)\n this.shortRuleNameToFull = {};\n this.fullRuleNameToShort = {};\n this.ruleShortNameIdx = 256;\n this.tokenMatcher = tokenStructuredMatcherNoCategories;\n this.subruleIdx = 0;\n\n this.definedRulesNames = [];\n this.tokensMap = {};\n this.isBackTrackingStack = [];\n this.RULE_STACK = [];\n this.RULE_OCCURRENCE_STACK = [];\n this.gastProductionsCache = {};\n\n if (has(config, \"serializedGrammar\")) {\n throw Error(\n \"The Parser's configuration can no longer contain a property.\\n\" +\n \"\\tSee: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_6-0-0\\n\" +\n \"\\tFor Further details.\",\n );\n }\n\n if (isArray(tokenVocabulary)) {\n // This only checks for Token vocabularies provided as arrays.\n // That is good enough because the main objective is to detect users of pre-V4.0 APIs\n // rather than all edge cases of empty Token vocabularies.\n if (isEmpty(tokenVocabulary as any[])) {\n throw Error(\n \"A Token Vocabulary cannot be empty.\\n\" +\n \"\\tNote that the first argument for the parser constructor\\n\" +\n \"\\tis no longer a Token vector (since v4.0).\",\n );\n }\n\n if (typeof (tokenVocabulary as any[])[0].startOffset === \"number\") {\n throw Error(\n \"The Parser constructor no longer accepts a token vector as the first argument.\\n\" +\n \"\\tSee: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_4-0-0\\n\" +\n \"\\tFor Further details.\",\n );\n }\n }\n\n if (isArray(tokenVocabulary)) {\n this.tokensMap = reduce(\n tokenVocabulary,\n (acc, tokType: TokenType) => {\n acc[tokType.name] = tokType;\n return acc;\n },\n {} as { [tokenName: string]: TokenType },\n );\n } else if (\n has(tokenVocabulary, \"modes\") &&\n every(flatten(values((tokenVocabulary).modes)), isTokenType)\n ) {\n const allTokenTypes = flatten(values((tokenVocabulary).modes));\n const uniqueTokens = uniq(allTokenTypes);\n this.tokensMap = reduce(\n uniqueTokens,\n (acc, tokType: TokenType) => {\n acc[tokType.name] = tokType;\n return acc;\n },\n {} as { [tokenName: string]: TokenType },\n );\n } else if (isObject(tokenVocabulary)) {\n this.tokensMap = clone(tokenVocabulary as TokenTypeDictionary);\n } else {\n throw new Error(\n \" argument must be An Array of Token constructors,\" +\n \" A dictionary of Token constructors or an IMultiModeLexerDefinition\",\n );\n }\n\n // always add EOF to the tokenNames -> constructors map. it is useful to assure all the input has been\n // parsed with a clear error message (\"expecting EOF but found ...\")\n this.tokensMap[\"EOF\"] = EOF;\n\n const allTokenTypes = has(tokenVocabulary, \"modes\")\n ? flatten(values((tokenVocabulary).modes))\n : values(tokenVocabulary);\n const noTokenCategoriesUsed = every(allTokenTypes, (tokenConstructor) =>\n isEmpty(tokenConstructor.categoryMatches),\n );\n\n this.tokenMatcher = noTokenCategoriesUsed\n ? tokenStructuredMatcherNoCategories\n : tokenStructuredMatcher;\n\n // Because ES2015+ syntax should be supported for creating Token classes\n // We cannot assume that the Token classes were created using the \"extendToken\" utilities\n // Therefore we must augment the Token classes both on Lexer initialization and on Parser initialization\n augmentTokenTypes(values(this.tokensMap));\n }\n\n defineRule(\n this: MixedInParser,\n ruleName: string,\n impl: (...args: ARGS) => R,\n config: IRuleConfig,\n ): ParserMethodInternal {\n if (this.selfAnalysisDone) {\n throw Error(\n `Grammar rule <${ruleName}> may not be defined after the 'performSelfAnalysis' method has been called'\\n` +\n `Make sure that all grammar rule definitions are done before 'performSelfAnalysis' is called.`,\n );\n }\n const resyncEnabled: boolean = has(config, \"resyncEnabled\")\n ? (config.resyncEnabled as boolean) // assumes end user provides the correct config value/type\n : DEFAULT_RULE_CONFIG.resyncEnabled;\n const recoveryValueFunc = has(config, \"recoveryValueFunc\")\n ? (config.recoveryValueFunc as () => R) // assumes end user provides the correct config value/type\n : DEFAULT_RULE_CONFIG.recoveryValueFunc;\n\n // performance optimization: Use small integers as keys for the longer human readable \"full\" rule names.\n // this greatly improves Map access time (as much as 8% for some performance benchmarks).\n const shortName =\n this.ruleShortNameIdx << (BITS_FOR_METHOD_TYPE + BITS_FOR_OCCURRENCE_IDX);\n\n this.ruleShortNameIdx++;\n this.shortRuleNameToFull[shortName] = ruleName;\n this.fullRuleNameToShort[ruleName] = shortName;\n\n let invokeRuleWithTry: ParserMethod;\n\n // Micro optimization, only check the condition **once** on rule definition\n // instead of **every single** rule invocation.\n if (this.outputCst === true) {\n invokeRuleWithTry = function invokeRuleWithTry(\n this: MixedInParser,\n ...args: ARGS\n ): R {\n try {\n this.ruleInvocationStateUpdate(shortName, ruleName, this.subruleIdx);\n impl.apply(this, args);\n const cst = this.CST_STACK[this.CST_STACK.length - 1];\n this.cstPostRule(cst);\n return cst as unknown as R;\n } catch (e) {\n return this.invokeRuleCatch(e, resyncEnabled, recoveryValueFunc) as R;\n } finally {\n this.ruleFinallyStateUpdate();\n }\n };\n } else {\n invokeRuleWithTry = function invokeRuleWithTryCst(\n this: MixedInParser,\n ...args: ARGS\n ): R {\n try {\n this.ruleInvocationStateUpdate(shortName, ruleName, this.subruleIdx);\n return impl.apply(this, args);\n } catch (e) {\n return this.invokeRuleCatch(e, resyncEnabled, recoveryValueFunc) as R;\n } finally {\n this.ruleFinallyStateUpdate();\n }\n };\n }\n\n const wrappedGrammarRule: ParserMethodInternal = Object.assign(\n invokeRuleWithTry as any,\n { ruleName, originalGrammarAction: impl },\n );\n\n return wrappedGrammarRule;\n }\n\n invokeRuleCatch(\n this: MixedInParser,\n e: Error,\n resyncEnabledConfig: boolean,\n recoveryValueFunc: Function,\n ): unknown {\n const isFirstInvokedRule = this.RULE_STACK.length === 1;\n // note the reSync is always enabled for the first rule invocation, because we must always be able to\n // reSync with EOF and just output some INVALID ParseTree\n // during backtracking reSync recovery is disabled, otherwise we can't be certain the backtracking\n // path is really the most valid one\n const reSyncEnabled =\n resyncEnabledConfig && !this.isBackTracking() && this.recoveryEnabled;\n\n if (isRecognitionException(e)) {\n const recogError: any = e;\n if (reSyncEnabled) {\n const reSyncTokType = this.findReSyncTokenType();\n if (this.isInCurrentRuleReSyncSet(reSyncTokType)) {\n recogError.resyncedTokens = this.reSyncTo(reSyncTokType);\n if (this.outputCst) {\n const partialCstResult: any =\n this.CST_STACK[this.CST_STACK.length - 1];\n partialCstResult.recoveredNode = true;\n return partialCstResult;\n } else {\n return recoveryValueFunc(e);\n }\n } else {\n if (this.outputCst) {\n const partialCstResult: any =\n this.CST_STACK[this.CST_STACK.length - 1];\n partialCstResult.recoveredNode = true;\n recogError.partialCstResult = partialCstResult;\n }\n // to be handled Further up the call stack\n throw recogError;\n }\n } else if (isFirstInvokedRule) {\n // otherwise a Redundant input error will be created as well and we cannot guarantee that this is indeed the case\n this.moveToTerminatedState();\n // the parser should never throw one of its own errors outside its flow.\n // even if error recovery is disabled\n return recoveryValueFunc(e);\n } else {\n // to be recovered Further up the call stack\n throw recogError;\n }\n } else {\n // some other Error type which we don't know how to handle (for example a built in JavaScript Error)\n throw e;\n }\n }\n\n // Implementation of parsing DSL\n optionInternal(\n this: MixedInParser,\n actionORMethodDef: GrammarAction | DSLMethodOpts,\n occurrence: number,\n ): OUT | undefined {\n const key = this.getKeyForAutomaticLookahead(OPTION_IDX, occurrence);\n return this.optionInternalLogic(actionORMethodDef, occurrence, key);\n }\n\n optionInternalLogic(\n this: MixedInParser,\n actionORMethodDef: GrammarAction | DSLMethodOpts,\n occurrence: number,\n key: number,\n ): OUT | undefined {\n let lookAheadFunc = this.getLaFuncFromCache(key);\n let action: GrammarAction;\n if (typeof actionORMethodDef !== \"function\") {\n action = actionORMethodDef.DEF;\n const predicate = actionORMethodDef.GATE;\n // predicate present\n if (predicate !== undefined) {\n const orgLookaheadFunction = lookAheadFunc;\n lookAheadFunc = () => {\n return predicate.call(this) && orgLookaheadFunction.call(this);\n };\n }\n } else {\n action = actionORMethodDef;\n }\n\n if (lookAheadFunc.call(this) === true) {\n return action.call(this);\n }\n return undefined;\n }\n\n atLeastOneInternal(\n this: MixedInParser,\n prodOccurrence: number,\n actionORMethodDef: GrammarAction | DSLMethodOptsWithErr,\n ): void {\n const laKey = this.getKeyForAutomaticLookahead(\n AT_LEAST_ONE_IDX,\n prodOccurrence,\n );\n return this.atLeastOneInternalLogic(\n prodOccurrence,\n actionORMethodDef,\n laKey,\n );\n }\n\n atLeastOneInternalLogic(\n this: MixedInParser,\n prodOccurrence: number,\n actionORMethodDef: GrammarAction | DSLMethodOptsWithErr,\n key: number,\n ): void {\n let lookAheadFunc = this.getLaFuncFromCache(key);\n let action;\n if (typeof actionORMethodDef !== \"function\") {\n action = actionORMethodDef.DEF;\n const predicate = actionORMethodDef.GATE;\n // predicate present\n if (predicate !== undefined) {\n const orgLookaheadFunction = lookAheadFunc;\n lookAheadFunc = () => {\n return predicate.call(this) && orgLookaheadFunction.call(this);\n };\n }\n } else {\n action = actionORMethodDef;\n }\n\n if ((lookAheadFunc).call(this) === true) {\n let notStuck = this.doSingleRepetition(action);\n while (\n (lookAheadFunc).call(this) === true &&\n notStuck === true\n ) {\n notStuck = this.doSingleRepetition(action);\n }\n } else {\n throw this.raiseEarlyExitException(\n prodOccurrence,\n PROD_TYPE.REPETITION_MANDATORY,\n (>actionORMethodDef).ERR_MSG,\n );\n }\n\n // note that while it may seem that this can cause an error because by using a recursive call to\n // AT_LEAST_ONE we change the grammar to AT_LEAST_TWO, AT_LEAST_THREE ... , the possible recursive call\n // from the tryInRepetitionRecovery(...) will only happen IFF there really are TWO/THREE/.... items.\n\n // Performance optimization: \"attemptInRepetitionRecovery\" will be defined as NOOP unless recovery is enabled\n this.attemptInRepetitionRecovery(\n this.atLeastOneInternal,\n [prodOccurrence, actionORMethodDef],\n lookAheadFunc,\n AT_LEAST_ONE_IDX,\n prodOccurrence,\n NextTerminalAfterAtLeastOneWalker,\n );\n }\n\n atLeastOneSepFirstInternal(\n this: MixedInParser,\n prodOccurrence: number,\n options: AtLeastOneSepMethodOpts,\n ): void {\n const laKey = this.getKeyForAutomaticLookahead(\n AT_LEAST_ONE_SEP_IDX,\n prodOccurrence,\n );\n this.atLeastOneSepFirstInternalLogic(prodOccurrence, options, laKey);\n }\n\n atLeastOneSepFirstInternalLogic(\n this: MixedInParser,\n prodOccurrence: number,\n options: AtLeastOneSepMethodOpts,\n key: number,\n ): void {\n const action = options.DEF;\n const separator = options.SEP;\n\n const firstIterationLookaheadFunc = this.getLaFuncFromCache(key);\n\n // 1st iteration\n if (firstIterationLookaheadFunc.call(this) === true) {\n (>action).call(this);\n\n // TODO: Optimization can move this function construction into \"attemptInRepetitionRecovery\"\n // because it is only needed in error recovery scenarios.\n const separatorLookAheadFunc = () => {\n return this.tokenMatcher(this.LA(1), separator);\n };\n\n // 2nd..nth iterations\n while (this.tokenMatcher(this.LA(1), separator) === true) {\n // note that this CONSUME will never enter recovery because\n // the separatorLookAheadFunc checks that the separator really does exist.\n this.CONSUME(separator);\n // No need for checking infinite loop here due to consuming the separator.\n (>action).call(this);\n }\n\n // Performance optimization: \"attemptInRepetitionRecovery\" will be defined as NOOP unless recovery is enabled\n this.attemptInRepetitionRecovery(\n this.repetitionSepSecondInternal,\n [\n prodOccurrence,\n separator,\n separatorLookAheadFunc,\n action,\n NextTerminalAfterAtLeastOneSepWalker,\n ],\n separatorLookAheadFunc,\n AT_LEAST_ONE_SEP_IDX,\n prodOccurrence,\n NextTerminalAfterAtLeastOneSepWalker,\n );\n } else {\n throw this.raiseEarlyExitException(\n prodOccurrence,\n PROD_TYPE.REPETITION_MANDATORY_WITH_SEPARATOR,\n options.ERR_MSG,\n );\n }\n }\n\n manyInternal(\n this: MixedInParser,\n prodOccurrence: number,\n actionORMethodDef: GrammarAction | DSLMethodOpts,\n ): void {\n const laKey = this.getKeyForAutomaticLookahead(MANY_IDX, prodOccurrence);\n return this.manyInternalLogic(prodOccurrence, actionORMethodDef, laKey);\n }\n\n manyInternalLogic(\n this: MixedInParser,\n prodOccurrence: number,\n actionORMethodDef: GrammarAction | DSLMethodOpts,\n key: number,\n ) {\n let lookaheadFunction = this.getLaFuncFromCache(key);\n let action;\n if (typeof actionORMethodDef !== \"function\") {\n action = actionORMethodDef.DEF;\n const predicate = actionORMethodDef.GATE;\n // predicate present\n if (predicate !== undefined) {\n const orgLookaheadFunction = lookaheadFunction;\n lookaheadFunction = () => {\n return predicate.call(this) && orgLookaheadFunction.call(this);\n };\n }\n } else {\n action = actionORMethodDef;\n }\n\n let notStuck = true;\n while (lookaheadFunction.call(this) === true && notStuck === true) {\n notStuck = this.doSingleRepetition(action);\n }\n\n // Performance optimization: \"attemptInRepetitionRecovery\" will be defined as NOOP unless recovery is enabled\n this.attemptInRepetitionRecovery(\n this.manyInternal,\n [prodOccurrence, actionORMethodDef],\n lookaheadFunction,\n MANY_IDX,\n prodOccurrence,\n NextTerminalAfterManyWalker,\n // The notStuck parameter is only relevant when \"attemptInRepetitionRecovery\"\n // is invoked from manyInternal, in the MANY_SEP case and AT_LEAST_ONE[_SEP]\n // An infinite loop cannot occur as:\n // - Either the lookahead is guaranteed to consume something (Single Token Separator)\n // - AT_LEAST_ONE by definition is guaranteed to consume something (or error out).\n notStuck,\n );\n }\n\n manySepFirstInternal(\n this: MixedInParser,\n prodOccurrence: number,\n options: ManySepMethodOpts,\n ): void {\n const laKey = this.getKeyForAutomaticLookahead(\n MANY_SEP_IDX,\n prodOccurrence,\n );\n this.manySepFirstInternalLogic(prodOccurrence, options, laKey);\n }\n\n manySepFirstInternalLogic(\n this: MixedInParser,\n prodOccurrence: number,\n options: ManySepMethodOpts,\n key: number,\n ): void {\n const action = options.DEF;\n const separator = options.SEP;\n const firstIterationLaFunc = this.getLaFuncFromCache(key);\n\n // 1st iteration\n if (firstIterationLaFunc.call(this) === true) {\n action.call(this);\n\n const separatorLookAheadFunc = () => {\n return this.tokenMatcher(this.LA(1), separator);\n };\n // 2nd..nth iterations\n while (this.tokenMatcher(this.LA(1), separator) === true) {\n // note that this CONSUME will never enter recovery because\n // the separatorLookAheadFunc checks that the separator really does exist.\n this.CONSUME(separator);\n // No need for checking infinite loop here due to consuming the separator.\n action.call(this);\n }\n\n // Performance optimization: \"attemptInRepetitionRecovery\" will be defined as NOOP unless recovery is enabled\n this.attemptInRepetitionRecovery(\n this.repetitionSepSecondInternal,\n [\n prodOccurrence,\n separator,\n separatorLookAheadFunc,\n action,\n NextTerminalAfterManySepWalker,\n ],\n separatorLookAheadFunc,\n MANY_SEP_IDX,\n prodOccurrence,\n NextTerminalAfterManySepWalker,\n );\n }\n }\n\n repetitionSepSecondInternal(\n this: MixedInParser,\n prodOccurrence: number,\n separator: TokenType,\n separatorLookAheadFunc: () => boolean,\n action: GrammarAction,\n nextTerminalAfterWalker: typeof AbstractNextTerminalAfterProductionWalker,\n ): void {\n while (separatorLookAheadFunc()) {\n // note that this CONSUME will never enter recovery because\n // the separatorLookAheadFunc checks that the separator really does exist.\n this.CONSUME(separator);\n action.call(this);\n }\n\n // we can only arrive to this function after an error\n // has occurred (hence the name 'second') so the following\n // IF will always be entered, its possible to remove it...\n // however it is kept to avoid confusion and be consistent.\n // Performance optimization: \"attemptInRepetitionRecovery\" will be defined as NOOP unless recovery is enabled\n /* istanbul ignore else */\n this.attemptInRepetitionRecovery(\n this.repetitionSepSecondInternal,\n [\n prodOccurrence,\n separator,\n separatorLookAheadFunc,\n action,\n nextTerminalAfterWalker,\n ],\n separatorLookAheadFunc,\n AT_LEAST_ONE_SEP_IDX,\n prodOccurrence,\n nextTerminalAfterWalker,\n );\n }\n\n doSingleRepetition(this: MixedInParser, action: Function): any {\n const beforeIteration = this.getLexerPosition();\n action.call(this);\n const afterIteration = this.getLexerPosition();\n\n // This boolean will indicate if this repetition progressed\n // or if we are \"stuck\" (potential infinite loop in the repetition).\n return afterIteration > beforeIteration;\n }\n\n orInternal(\n this: MixedInParser,\n altsOrOpts: IOrAlt[] | OrMethodOpts,\n occurrence: number,\n ): T {\n const laKey = this.getKeyForAutomaticLookahead(OR_IDX, occurrence);\n const alts = isArray(altsOrOpts) ? altsOrOpts : altsOrOpts.DEF;\n\n const laFunc = this.getLaFuncFromCache(laKey);\n const altIdxToTake = laFunc.call(this, alts);\n if (altIdxToTake !== undefined) {\n const chosenAlternative: any = alts[altIdxToTake];\n return chosenAlternative.ALT.call(this);\n }\n this.raiseNoAltException(\n occurrence,\n (altsOrOpts as OrMethodOpts).ERR_MSG,\n );\n }\n\n ruleFinallyStateUpdate(this: MixedInParser): void {\n this.RULE_STACK.pop();\n this.RULE_OCCURRENCE_STACK.pop();\n\n // NOOP when cst is disabled\n this.cstFinallyStateUpdate();\n\n if (this.RULE_STACK.length === 0 && this.isAtEndOfInput() === false) {\n const firstRedundantTok = this.LA(1);\n const errMsg = this.errorMessageProvider.buildNotAllInputParsedMessage({\n firstRedundant: firstRedundantTok,\n ruleName: this.getCurrRuleFullName(),\n });\n this.SAVE_ERROR(\n new NotAllInputParsedException(errMsg, firstRedundantTok),\n );\n }\n }\n\n subruleInternal(\n this: MixedInParser,\n ruleToCall: ParserMethodInternal,\n idx: number,\n options?: SubruleMethodOpts,\n ): R {\n let ruleResult;\n try {\n const args = options !== undefined ? options.ARGS : undefined;\n this.subruleIdx = idx;\n ruleResult = ruleToCall.apply(this, args);\n this.cstPostNonTerminal(\n ruleResult,\n options !== undefined && options.LABEL !== undefined\n ? options.LABEL\n : ruleToCall.ruleName,\n );\n return ruleResult;\n } catch (e) {\n throw this.subruleInternalError(e, options, ruleToCall.ruleName);\n }\n }\n\n subruleInternalError(\n this: MixedInParser,\n e: any,\n options: SubruleMethodOpts | undefined,\n ruleName: string,\n ): void {\n if (isRecognitionException(e) && e.partialCstResult !== undefined) {\n this.cstPostNonTerminal(\n e.partialCstResult,\n options !== undefined && options.LABEL !== undefined\n ? options.LABEL\n : ruleName,\n );\n\n delete e.partialCstResult;\n }\n throw e;\n }\n\n consumeInternal(\n this: MixedInParser,\n tokType: TokenType,\n idx: number,\n options: ConsumeMethodOpts | undefined,\n ): IToken {\n let consumedToken!: IToken;\n try {\n const nextToken = this.LA(1);\n if (this.tokenMatcher(nextToken, tokType) === true) {\n this.consumeToken();\n consumedToken = nextToken;\n } else {\n this.consumeInternalError(tokType, nextToken, options);\n }\n } catch (eFromConsumption) {\n consumedToken = this.consumeInternalRecovery(\n tokType,\n idx,\n eFromConsumption,\n );\n }\n\n this.cstPostTerminal(\n options !== undefined && options.LABEL !== undefined\n ? options.LABEL\n : tokType.name,\n consumedToken,\n );\n return consumedToken;\n }\n\n consumeInternalError(\n this: MixedInParser,\n tokType: TokenType,\n nextToken: IToken,\n options: ConsumeMethodOpts | undefined,\n ): void {\n let msg;\n const previousToken = this.LA(0);\n if (options !== undefined && options.ERR_MSG) {\n msg = options.ERR_MSG;\n } else {\n msg = this.errorMessageProvider.buildMismatchTokenMessage({\n expected: tokType,\n actual: nextToken,\n previous: previousToken,\n ruleName: this.getCurrRuleFullName(),\n });\n }\n throw this.SAVE_ERROR(\n new MismatchedTokenException(msg, nextToken, previousToken),\n );\n }\n\n consumeInternalRecovery(\n this: MixedInParser,\n tokType: TokenType,\n idx: number,\n eFromConsumption: Error,\n ): IToken {\n // no recovery allowed during backtracking, otherwise backtracking may recover invalid syntax and accept it\n // but the original syntax could have been parsed successfully without any backtracking + recovery\n if (\n this.recoveryEnabled &&\n // TODO: more robust checking of the exception type. Perhaps Typescript extending expressions?\n eFromConsumption.name === \"MismatchedTokenException\" &&\n !this.isBackTracking()\n ) {\n const follows = this.getFollowsForInRuleRecovery(tokType, idx);\n try {\n return this.tryInRuleRecovery(tokType, follows);\n } catch (eFromInRuleRecovery) {\n if (eFromInRuleRecovery.name === IN_RULE_RECOVERY_EXCEPTION) {\n // failed in RuleRecovery.\n // throw the original error in order to trigger reSync error recovery\n throw eFromConsumption;\n } else {\n throw eFromInRuleRecovery;\n }\n }\n } else {\n throw eFromConsumption;\n }\n }\n\n saveRecogState(this: MixedInParser): IParserState {\n // errors is a getter which will clone the errors array\n const savedErrors = this.errors;\n const savedRuleStack = clone(this.RULE_STACK);\n return {\n errors: savedErrors,\n lexerState: this.exportLexerState(),\n RULE_STACK: savedRuleStack,\n CST_STACK: this.CST_STACK,\n };\n }\n\n reloadRecogState(this: MixedInParser, newState: IParserState) {\n this.errors = newState.errors;\n this.importLexerState(newState.lexerState);\n this.RULE_STACK = newState.RULE_STACK;\n }\n\n ruleInvocationStateUpdate(\n this: MixedInParser,\n shortName: number,\n fullName: string,\n idxInCallingRule: number,\n ): void {\n this.RULE_OCCURRENCE_STACK.push(idxInCallingRule);\n this.RULE_STACK.push(shortName);\n // NOOP when cst is disabled\n this.cstInvocationStateUpdate(fullName);\n }\n\n isBackTracking(this: MixedInParser): boolean {\n return this.isBackTrackingStack.length !== 0;\n }\n\n getCurrRuleFullName(this: MixedInParser): string {\n const shortName = this.getLastExplicitRuleShortName();\n return this.shortRuleNameToFull[shortName];\n }\n\n shortRuleNameToFullName(this: MixedInParser, shortName: number) {\n return this.shortRuleNameToFull[shortName];\n }\n\n public isAtEndOfInput(this: MixedInParser): boolean {\n return this.tokenMatcher(this.LA(1), EOF);\n }\n\n public reset(this: MixedInParser): void {\n this.resetLexerState();\n this.subruleIdx = 0;\n this.isBackTrackingStack = [];\n this.errors = [];\n this.RULE_STACK = [];\n // TODO: extract a specific reset for TreeBuilder trait\n this.CST_STACK = [];\n this.RULE_OCCURRENCE_STACK = [];\n }\n}\n", "import {\n IParserConfig,\n IParserErrorMessageProvider,\n IRecognitionException,\n} from \"@chevrotain/types\";\nimport {\n EarlyExitException,\n isRecognitionException,\n NoViableAltException,\n} from \"../../exceptions_public.js\";\nimport { clone, has } from \"lodash-es\";\nimport {\n getLookaheadPathsForOptionalProd,\n getLookaheadPathsForOr,\n PROD_TYPE,\n} from \"../../grammar/lookahead.js\";\nimport { MixedInParser } from \"./parser_traits.js\";\nimport { DEFAULT_PARSER_CONFIG } from \"../parser.js\";\n\n/**\n * Trait responsible for runtime parsing errors.\n */\nexport class ErrorHandler {\n _errors: IRecognitionException[];\n errorMessageProvider: IParserErrorMessageProvider;\n\n initErrorHandler(config: IParserConfig) {\n this._errors = [];\n this.errorMessageProvider = has(config, \"errorMessageProvider\")\n ? (config.errorMessageProvider as IParserErrorMessageProvider) // assumes end user provides the correct config value/type\n : DEFAULT_PARSER_CONFIG.errorMessageProvider;\n }\n\n SAVE_ERROR(\n this: MixedInParser,\n error: IRecognitionException,\n ): IRecognitionException {\n if (isRecognitionException(error)) {\n error.context = {\n ruleStack: this.getHumanReadableRuleStack(),\n ruleOccurrenceStack: clone(this.RULE_OCCURRENCE_STACK),\n };\n this._errors.push(error);\n return error;\n } else {\n throw Error(\n \"Trying to save an Error which is not a RecognitionException\",\n );\n }\n }\n\n get errors(): IRecognitionException[] {\n return clone(this._errors);\n }\n\n set errors(newErrors: IRecognitionException[]) {\n this._errors = newErrors;\n }\n\n // TODO: consider caching the error message computed information\n raiseEarlyExitException(\n this: MixedInParser,\n occurrence: number,\n prodType: PROD_TYPE,\n userDefinedErrMsg: string | undefined,\n ): never {\n const ruleName = this.getCurrRuleFullName();\n const ruleGrammar = this.getGAstProductions()[ruleName];\n const lookAheadPathsPerAlternative = getLookaheadPathsForOptionalProd(\n occurrence,\n ruleGrammar,\n prodType,\n this.maxLookahead,\n );\n const insideProdPaths = lookAheadPathsPerAlternative[0];\n const actualTokens = [];\n for (let i = 1; i <= this.maxLookahead; i++) {\n actualTokens.push(this.LA(i));\n }\n const msg = this.errorMessageProvider.buildEarlyExitMessage({\n expectedIterationPaths: insideProdPaths,\n actual: actualTokens,\n previous: this.LA(0),\n customUserDescription: userDefinedErrMsg,\n ruleName: ruleName,\n });\n\n throw this.SAVE_ERROR(new EarlyExitException(msg, this.LA(1), this.LA(0)));\n }\n\n // TODO: consider caching the error message computed information\n raiseNoAltException(\n this: MixedInParser,\n occurrence: number,\n errMsgTypes: string | undefined,\n ): never {\n const ruleName = this.getCurrRuleFullName();\n const ruleGrammar = this.getGAstProductions()[ruleName];\n // TODO: getLookaheadPathsForOr can be slow for large enough maxLookahead and certain grammars, consider caching ?\n const lookAheadPathsPerAlternative = getLookaheadPathsForOr(\n occurrence,\n ruleGrammar,\n this.maxLookahead,\n );\n\n const actualTokens = [];\n for (let i = 1; i <= this.maxLookahead; i++) {\n actualTokens.push(this.LA(i));\n }\n const previousToken = this.LA(0);\n\n const errMsg = this.errorMessageProvider.buildNoViableAltMessage({\n expectedPathsPerAlt: lookAheadPathsPerAlternative,\n actual: actualTokens,\n previous: previousToken,\n customUserDescription: errMsgTypes,\n ruleName: this.getCurrRuleFullName(),\n });\n\n throw this.SAVE_ERROR(\n new NoViableAltException(errMsg, this.LA(1), previousToken),\n );\n }\n}\n", "import {\n ISyntacticContentAssistPath,\n IToken,\n ITokenGrammarPath,\n TokenType,\n} from \"@chevrotain/types\";\nimport {\n NextAfterTokenWalker,\n nextPossibleTokensAfter,\n} from \"../../grammar/interpreter.js\";\nimport { first, isUndefined } from \"lodash-es\";\nimport { MixedInParser } from \"./parser_traits.js\";\n\nexport class ContentAssist {\n initContentAssist() {}\n\n public computeContentAssist(\n this: MixedInParser,\n startRuleName: string,\n precedingInput: IToken[],\n ): ISyntacticContentAssistPath[] {\n const startRuleGast = this.gastProductionsCache[startRuleName];\n\n if (isUndefined(startRuleGast)) {\n throw Error(`Rule ->${startRuleName}<- does not exist in this grammar.`);\n }\n\n return nextPossibleTokensAfter(\n [startRuleGast],\n precedingInput,\n this.tokenMatcher,\n this.maxLookahead,\n );\n }\n\n // TODO: should this be a member method or a utility? it does not have any state or usage of 'this'...\n // TODO: should this be more explicitly part of the public API?\n public getNextPossibleTokenTypes(\n this: MixedInParser,\n grammarPath: ITokenGrammarPath,\n ): TokenType[] {\n const topRuleName = first(grammarPath.ruleStack)!;\n const gastProductions = this.getGAstProductions();\n const topProduction = gastProductions[topRuleName];\n const nextPossibleTokenTypes = new NextAfterTokenWalker(\n topProduction,\n grammarPath,\n ).startWalking();\n return nextPossibleTokenTypes;\n }\n}\n", "import {\n AtLeastOneSepMethodOpts,\n ConsumeMethodOpts,\n CstNode,\n DSLMethodOpts,\n DSLMethodOptsWithErr,\n GrammarAction,\n IOrAlt,\n IParserConfig,\n IProduction,\n IToken,\n ManySepMethodOpts,\n OrMethodOpts,\n SubruleMethodOpts,\n TokenType,\n} from \"@chevrotain/types\";\nimport {\n forEach,\n has,\n isArray,\n isFunction,\n last as peek,\n some,\n} from \"lodash-es\";\nimport { MixedInParser } from \"./parser_traits.js\";\nimport {\n Alternation,\n Alternative,\n NonTerminal,\n Option,\n Repetition,\n RepetitionMandatory,\n RepetitionMandatoryWithSeparator,\n RepetitionWithSeparator,\n Rule,\n Terminal,\n} from \"@chevrotain/gast\";\nimport { Lexer } from \"../../../scan/lexer_public.js\";\nimport {\n augmentTokenTypes,\n hasShortKeyProperty,\n} from \"../../../scan/tokens.js\";\nimport {\n createToken,\n createTokenInstance,\n} from \"../../../scan/tokens_public.js\";\nimport { END_OF_FILE } from \"../parser.js\";\nimport { BITS_FOR_OCCURRENCE_IDX } from \"../../grammar/keys.js\";\nimport { ParserMethodInternal } from \"../types.js\";\n\ntype ProdWithDef = IProduction & { definition?: IProduction[] };\nconst RECORDING_NULL_OBJECT = {\n description: \"This Object indicates the Parser is during Recording Phase\",\n};\nObject.freeze(RECORDING_NULL_OBJECT);\n\nconst HANDLE_SEPARATOR = true;\nconst MAX_METHOD_IDX = Math.pow(2, BITS_FOR_OCCURRENCE_IDX) - 1;\n\nconst RFT = createToken({ name: \"RECORDING_PHASE_TOKEN\", pattern: Lexer.NA });\naugmentTokenTypes([RFT]);\nconst RECORDING_PHASE_TOKEN = createTokenInstance(\n RFT,\n \"This IToken indicates the Parser is in Recording Phase\\n\\t\" +\n \"\" +\n \"See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details\",\n // Using \"-1\" instead of NaN (as in EOF) because an actual number is less likely to\n // cause errors if the output of LA or CONSUME would be (incorrectly) used during the recording phase.\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n);\nObject.freeze(RECORDING_PHASE_TOKEN);\n\nconst RECORDING_PHASE_CSTNODE: CstNode = {\n name:\n \"This CSTNode indicates the Parser is in Recording Phase\\n\\t\" +\n \"See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details\",\n children: {},\n};\n\n/**\n * This trait handles the creation of the GAST structure for Chevrotain Grammars\n */\nexport class GastRecorder {\n recordingProdStack: ProdWithDef[];\n RECORDING_PHASE: boolean;\n\n initGastRecorder(this: MixedInParser, config: IParserConfig): void {\n this.recordingProdStack = [];\n this.RECORDING_PHASE = false;\n }\n\n enableRecording(this: MixedInParser): void {\n this.RECORDING_PHASE = true;\n\n this.TRACE_INIT(\"Enable Recording\", () => {\n /**\n * Warning Dark Voodoo Magic upcoming!\n * We are \"replacing\" the public parsing DSL methods API\n * With **new** alternative implementations on the Parser **instance**\n *\n * So far this is the only way I've found to avoid performance regressions during parsing time.\n * - Approx 30% performance regression was measured on Chrome 75 Canary when attempting to replace the \"internal\"\n * implementations directly instead.\n */\n for (let i = 0; i < 10; i++) {\n const idx = i > 0 ? i : \"\";\n this[`CONSUME${idx}` as \"CONSUME\"] = function (arg1, arg2) {\n return this.consumeInternalRecord(arg1, i, arg2);\n };\n this[`SUBRULE${idx}` as \"SUBRULE\"] = function (arg1, arg2) {\n return this.subruleInternalRecord(arg1, i, arg2) as any;\n };\n this[`OPTION${idx}` as \"OPTION\"] = function (arg1) {\n return this.optionInternalRecord(arg1, i);\n };\n this[`OR${idx}` as \"OR\"] = function (arg1) {\n return this.orInternalRecord(arg1, i);\n };\n this[`MANY${idx}` as \"MANY\"] = function (arg1) {\n this.manyInternalRecord(i, arg1);\n };\n this[`MANY_SEP${idx}` as \"MANY_SEP\"] = function (arg1) {\n this.manySepFirstInternalRecord(i, arg1);\n };\n this[`AT_LEAST_ONE${idx}` as \"AT_LEAST_ONE\"] = function (arg1) {\n this.atLeastOneInternalRecord(i, arg1);\n };\n this[`AT_LEAST_ONE_SEP${idx}` as \"AT_LEAST_ONE_SEP\"] = function (arg1) {\n this.atLeastOneSepFirstInternalRecord(i, arg1);\n };\n }\n\n // DSL methods with the idx(suffix) as an argument\n this[`consume`] = function (idx, arg1, arg2) {\n return this.consumeInternalRecord(arg1, idx, arg2);\n };\n this[`subrule`] = function (idx, arg1, arg2) {\n return this.subruleInternalRecord(arg1, idx, arg2) as any;\n };\n this[`option`] = function (idx, arg1) {\n return this.optionInternalRecord(arg1, idx);\n };\n this[`or`] = function (idx, arg1) {\n return this.orInternalRecord(arg1, idx);\n };\n this[`many`] = function (idx, arg1) {\n this.manyInternalRecord(idx, arg1);\n };\n this[`atLeastOne`] = function (idx, arg1) {\n this.atLeastOneInternalRecord(idx, arg1);\n };\n\n this.ACTION = this.ACTION_RECORD;\n this.BACKTRACK = this.BACKTRACK_RECORD;\n this.LA = this.LA_RECORD;\n });\n }\n\n disableRecording(this: MixedInParser) {\n this.RECORDING_PHASE = false;\n // By deleting these **instance** properties, any future invocation\n // will be deferred to the original methods on the **prototype** object\n // This seems to get rid of any incorrect optimizations that V8 may\n // do during the recording phase.\n this.TRACE_INIT(\"Deleting Recording methods\", () => {\n const that: any = this;\n\n for (let i = 0; i < 10; i++) {\n const idx = i > 0 ? i : \"\";\n delete that[`CONSUME${idx}`];\n delete that[`SUBRULE${idx}`];\n delete that[`OPTION${idx}`];\n delete that[`OR${idx}`];\n delete that[`MANY${idx}`];\n delete that[`MANY_SEP${idx}`];\n delete that[`AT_LEAST_ONE${idx}`];\n delete that[`AT_LEAST_ONE_SEP${idx}`];\n }\n\n delete that[`consume`];\n delete that[`subrule`];\n delete that[`option`];\n delete that[`or`];\n delete that[`many`];\n delete that[`atLeastOne`];\n\n delete that.ACTION;\n delete that.BACKTRACK;\n delete that.LA;\n });\n }\n\n // Parser methods are called inside an ACTION?\n // Maybe try/catch/finally on ACTIONS while disabling the recorders state changes?\n // @ts-expect-error -- noop place holder\n ACTION_RECORD(this: MixedInParser, impl: () => T): T {\n // NO-OP during recording\n }\n\n // Executing backtracking logic will break our recording logic assumptions\n BACKTRACK_RECORD(\n grammarRule: (...args: any[]) => T,\n args?: any[],\n ): () => boolean {\n return () => true;\n }\n\n // LA is part of the official API and may be used for custom lookahead logic\n // by end users who may forget to wrap it in ACTION or inside a GATE\n LA_RECORD(howMuch: number): IToken {\n // We cannot use the RECORD_PHASE_TOKEN here because someone may depend\n // On LA return EOF at the end of the input so an infinite loop may occur.\n return END_OF_FILE;\n }\n\n topLevelRuleRecord(name: string, def: Function): Rule {\n try {\n const newTopLevelRule = new Rule({ definition: [], name: name });\n newTopLevelRule.name = name;\n this.recordingProdStack.push(newTopLevelRule);\n def.call(this);\n this.recordingProdStack.pop();\n return newTopLevelRule;\n } catch (originalError) {\n if (originalError.KNOWN_RECORDER_ERROR !== true) {\n try {\n originalError.message =\n originalError.message +\n '\\n\\t This error was thrown during the \"grammar recording phase\" For more info see:\\n\\t' +\n \"https://chevrotain.io/docs/guide/internals.html#grammar-recording\";\n } catch (mutabilityError) {\n // We may not be able to modify the original error object\n throw originalError;\n }\n }\n throw originalError;\n }\n }\n\n // Implementation of parsing DSL\n optionInternalRecord(\n this: MixedInParser,\n actionORMethodDef: GrammarAction | DSLMethodOpts,\n occurrence: number,\n ): OUT {\n return recordProd.call(this, Option, actionORMethodDef, occurrence);\n }\n\n atLeastOneInternalRecord(\n this: MixedInParser,\n occurrence: number,\n actionORMethodDef: GrammarAction | DSLMethodOptsWithErr,\n ): void {\n recordProd.call(this, RepetitionMandatory, actionORMethodDef, occurrence);\n }\n\n atLeastOneSepFirstInternalRecord(\n this: MixedInParser,\n occurrence: number,\n options: AtLeastOneSepMethodOpts,\n ): void {\n recordProd.call(\n this,\n RepetitionMandatoryWithSeparator,\n options,\n occurrence,\n HANDLE_SEPARATOR,\n );\n }\n\n manyInternalRecord(\n this: MixedInParser,\n occurrence: number,\n actionORMethodDef: GrammarAction | DSLMethodOpts,\n ): void {\n recordProd.call(this, Repetition, actionORMethodDef, occurrence);\n }\n\n manySepFirstInternalRecord(\n this: MixedInParser,\n occurrence: number,\n options: ManySepMethodOpts,\n ): void {\n recordProd.call(\n this,\n RepetitionWithSeparator,\n options,\n occurrence,\n HANDLE_SEPARATOR,\n );\n }\n\n orInternalRecord(\n this: MixedInParser,\n altsOrOpts: IOrAlt[] | OrMethodOpts,\n occurrence: number,\n ): T {\n return recordOrProd.call(this, altsOrOpts, occurrence);\n }\n\n subruleInternalRecord(\n this: MixedInParser,\n ruleToCall: ParserMethodInternal,\n occurrence: number,\n options?: SubruleMethodOpts,\n ): R | CstNode {\n assertMethodIdxIsValid(occurrence);\n if (!ruleToCall || has(ruleToCall, \"ruleName\") === false) {\n const error: any = new Error(\n ` argument is invalid` +\n ` expecting a Parser method reference but got: <${JSON.stringify(\n ruleToCall,\n )}>` +\n `\\n inside top level rule: <${\n (this.recordingProdStack[0]).name\n }>`,\n );\n error.KNOWN_RECORDER_ERROR = true;\n throw error;\n }\n\n const prevProd: any = peek(this.recordingProdStack);\n const ruleName = ruleToCall.ruleName;\n const newNoneTerminal = new NonTerminal({\n idx: occurrence,\n nonTerminalName: ruleName,\n label: options?.LABEL,\n // The resolving of the `referencedRule` property will be done once all the Rule's GASTs have been created\n referencedRule: undefined,\n });\n prevProd.definition.push(newNoneTerminal);\n\n return this.outputCst\n ? RECORDING_PHASE_CSTNODE\n : RECORDING_NULL_OBJECT;\n }\n\n consumeInternalRecord(\n this: MixedInParser,\n tokType: TokenType,\n occurrence: number,\n options?: ConsumeMethodOpts,\n ): IToken {\n assertMethodIdxIsValid(occurrence);\n if (!hasShortKeyProperty(tokType)) {\n const error: any = new Error(\n ` argument is invalid` +\n ` expecting a TokenType reference but got: <${JSON.stringify(\n tokType,\n )}>` +\n `\\n inside top level rule: <${\n (this.recordingProdStack[0]).name\n }>`,\n );\n error.KNOWN_RECORDER_ERROR = true;\n throw error;\n }\n const prevProd: any = peek(this.recordingProdStack);\n const newNoneTerminal = new Terminal({\n idx: occurrence,\n terminalType: tokType,\n label: options?.LABEL,\n });\n prevProd.definition.push(newNoneTerminal);\n\n return RECORDING_PHASE_TOKEN;\n }\n}\n\nfunction recordProd(\n prodConstructor: any,\n mainProdArg: any,\n occurrence: number,\n handleSep: boolean = false,\n): any {\n assertMethodIdxIsValid(occurrence);\n const prevProd: any = peek(this.recordingProdStack);\n const grammarAction = isFunction(mainProdArg) ? mainProdArg : mainProdArg.DEF;\n\n const newProd = new prodConstructor({ definition: [], idx: occurrence });\n if (handleSep) {\n newProd.separator = mainProdArg.SEP;\n }\n if (has(mainProdArg, \"MAX_LOOKAHEAD\")) {\n newProd.maxLookahead = mainProdArg.MAX_LOOKAHEAD;\n }\n\n this.recordingProdStack.push(newProd);\n grammarAction.call(this);\n prevProd.definition.push(newProd);\n this.recordingProdStack.pop();\n\n return RECORDING_NULL_OBJECT;\n}\n\nfunction recordOrProd(mainProdArg: any, occurrence: number): any {\n assertMethodIdxIsValid(occurrence);\n const prevProd: any = peek(this.recordingProdStack);\n // Only an array of alternatives\n const hasOptions = isArray(mainProdArg) === false;\n const alts: IOrAlt[] =\n hasOptions === false ? mainProdArg : mainProdArg.DEF;\n\n const newOrProd = new Alternation({\n definition: [],\n idx: occurrence,\n ignoreAmbiguities: hasOptions && mainProdArg.IGNORE_AMBIGUITIES === true,\n });\n if (has(mainProdArg, \"MAX_LOOKAHEAD\")) {\n newOrProd.maxLookahead = mainProdArg.MAX_LOOKAHEAD;\n }\n\n const hasPredicates = some(alts, (currAlt: any) => isFunction(currAlt.GATE));\n newOrProd.hasPredicates = hasPredicates;\n\n prevProd.definition.push(newOrProd);\n\n forEach(alts, (currAlt) => {\n const currAltFlat = new Alternative({ definition: [] });\n newOrProd.definition.push(currAltFlat);\n if (has(currAlt, \"IGNORE_AMBIGUITIES\")) {\n currAltFlat.ignoreAmbiguities = currAlt.IGNORE_AMBIGUITIES as boolean; // assumes end user provides the correct config value/type\n }\n // **implicit** ignoreAmbiguities due to usage of gate\n else if (has(currAlt, \"GATE\")) {\n currAltFlat.ignoreAmbiguities = true;\n }\n this.recordingProdStack.push(currAltFlat);\n currAlt.ALT.call(this);\n this.recordingProdStack.pop();\n });\n return RECORDING_NULL_OBJECT;\n}\n\nfunction getIdxSuffix(idx: number): string {\n return idx === 0 ? \"\" : `${idx}`;\n}\n\nfunction assertMethodIdxIsValid(idx: number): void {\n if (idx < 0 || idx > MAX_METHOD_IDX) {\n const error: any = new Error(\n // The stack trace will contain all the needed details\n `Invalid DSL Method idx value: <${idx}>\\n\\t` +\n `Idx value must be a none negative value smaller than ${\n MAX_METHOD_IDX + 1\n }`,\n );\n error.KNOWN_RECORDER_ERROR = true;\n throw error;\n }\n}\n", "import { IParserConfig } from \"@chevrotain/types\";\nimport { has } from \"lodash-es\";\nimport { timer } from \"@chevrotain/utils\";\nimport { MixedInParser } from \"./parser_traits.js\";\nimport { DEFAULT_PARSER_CONFIG } from \"../parser.js\";\n\n/**\n * Trait responsible for runtime parsing errors.\n */\nexport class PerformanceTracer {\n traceInitPerf: boolean | number;\n traceInitMaxIdent: number;\n traceInitIndent: number;\n\n initPerformanceTracer(config: IParserConfig) {\n if (has(config, \"traceInitPerf\")) {\n const userTraceInitPerf = config.traceInitPerf;\n const traceIsNumber = typeof userTraceInitPerf === \"number\";\n this.traceInitMaxIdent = traceIsNumber\n ? userTraceInitPerf\n : Infinity;\n this.traceInitPerf = traceIsNumber\n ? userTraceInitPerf > 0\n : (userTraceInitPerf as boolean); // assumes end user provides the correct config value/type\n } else {\n this.traceInitMaxIdent = 0;\n this.traceInitPerf = DEFAULT_PARSER_CONFIG.traceInitPerf;\n }\n\n this.traceInitIndent = -1;\n }\n\n TRACE_INIT(this: MixedInParser, phaseDesc: string, phaseImpl: () => T): T {\n // No need to optimize this using NOOP pattern because\n // It is not called in a hot spot...\n if (this.traceInitPerf === true) {\n this.traceInitIndent++;\n const indent = new Array(this.traceInitIndent + 1).join(\"\\t\");\n if (this.traceInitIndent < this.traceInitMaxIdent) {\n console.log(`${indent}--> <${phaseDesc}>`);\n }\n const { time, value } = timer(phaseImpl);\n /* istanbul ignore next - Difficult to reproduce specific performance behavior (>10ms) in tests */\n const traceMethod = time > 10 ? console.warn : console.log;\n if (this.traceInitIndent < this.traceInitMaxIdent) {\n traceMethod(`${indent}<-- <${phaseDesc}> time: ${time}ms`);\n }\n this.traceInitIndent--;\n return value;\n } else {\n return phaseImpl();\n }\n }\n}\n", "export function applyMixins(derivedCtor: any, baseCtors: any[]) {\n baseCtors.forEach((baseCtor) => {\n const baseProto = baseCtor.prototype;\n Object.getOwnPropertyNames(baseProto).forEach((propName) => {\n if (propName === \"constructor\") {\n return;\n }\n\n const basePropDescriptor = Object.getOwnPropertyDescriptor(\n baseProto,\n propName,\n );\n // Handle Accessors\n if (\n basePropDescriptor &&\n (basePropDescriptor.get || basePropDescriptor.set)\n ) {\n Object.defineProperty(\n derivedCtor.prototype,\n propName,\n basePropDescriptor,\n );\n } else {\n derivedCtor.prototype[propName] = baseCtor.prototype[propName];\n }\n });\n });\n}\n", "import { clone, forEach, has, isEmpty, map, values } from \"lodash-es\";\nimport { toFastProperties } from \"@chevrotain/utils\";\nimport { computeAllProdsFollows } from \"../grammar/follow.js\";\nimport { createTokenInstance, EOF } from \"../../scan/tokens_public.js\";\nimport {\n defaultGrammarValidatorErrorProvider,\n defaultParserErrorProvider,\n} from \"../errors_public.js\";\nimport {\n resolveGrammar,\n validateGrammar,\n} from \"../grammar/gast/gast_resolver_public.js\";\nimport {\n CstNode,\n IParserConfig,\n IRecognitionException,\n IRuleConfig,\n IToken,\n TokenType,\n TokenVocabulary,\n} from \"@chevrotain/types\";\nimport { Recoverable } from \"./traits/recoverable.js\";\nimport { LooksAhead } from \"./traits/looksahead.js\";\nimport { TreeBuilder } from \"./traits/tree_builder.js\";\nimport { LexerAdapter } from \"./traits/lexer_adapter.js\";\nimport { RecognizerApi } from \"./traits/recognizer_api.js\";\nimport { RecognizerEngine } from \"./traits/recognizer_engine.js\";\n\nimport { ErrorHandler } from \"./traits/error_handler.js\";\nimport { MixedInParser } from \"./traits/parser_traits.js\";\nimport { ContentAssist } from \"./traits/context_assist.js\";\nimport { GastRecorder } from \"./traits/gast_recorder.js\";\nimport { PerformanceTracer } from \"./traits/perf_tracer.js\";\nimport { applyMixins } from \"./utils/apply_mixins.js\";\nimport { IParserDefinitionError } from \"../grammar/types.js\";\nimport { Rule } from \"@chevrotain/gast\";\nimport { IParserConfigInternal, ParserMethodInternal } from \"./types.js\";\nimport { validateLookahead } from \"../grammar/checks.js\";\n\nexport const END_OF_FILE = createTokenInstance(\n EOF,\n \"\",\n NaN,\n NaN,\n NaN,\n NaN,\n NaN,\n NaN,\n);\nObject.freeze(END_OF_FILE);\n\nexport type TokenMatcher = (token: IToken, tokType: TokenType) => boolean;\n\nexport const DEFAULT_PARSER_CONFIG: Required<\n Omit\n> = Object.freeze({\n recoveryEnabled: false,\n maxLookahead: 3,\n dynamicTokensEnabled: false,\n outputCst: true,\n errorMessageProvider: defaultParserErrorProvider,\n nodeLocationTracking: \"none\",\n traceInitPerf: false,\n skipValidations: false,\n});\n\nexport const DEFAULT_RULE_CONFIG: Required> = Object.freeze({\n recoveryValueFunc: () => undefined,\n resyncEnabled: true,\n});\n\nexport enum ParserDefinitionErrorType {\n INVALID_RULE_NAME = 0,\n DUPLICATE_RULE_NAME = 1,\n INVALID_RULE_OVERRIDE = 2,\n DUPLICATE_PRODUCTIONS = 3,\n UNRESOLVED_SUBRULE_REF = 4,\n LEFT_RECURSION = 5,\n NONE_LAST_EMPTY_ALT = 6,\n AMBIGUOUS_ALTS = 7,\n CONFLICT_TOKENS_RULES_NAMESPACE = 8,\n INVALID_TOKEN_NAME = 9,\n NO_NON_EMPTY_LOOKAHEAD = 10,\n AMBIGUOUS_PREFIX_ALTS = 11,\n TOO_MANY_ALTS = 12,\n CUSTOM_LOOKAHEAD_VALIDATION = 13,\n}\n\nexport interface IParserDuplicatesDefinitionError\n extends IParserDefinitionError {\n dslName: string;\n occurrence: number;\n parameter?: string;\n}\n\nexport interface IParserEmptyAlternativeDefinitionError\n extends IParserDefinitionError {\n occurrence: number;\n alternative: number;\n}\n\nexport interface IParserAmbiguousAlternativesDefinitionError\n extends IParserDefinitionError {\n occurrence: number | string;\n alternatives: number[];\n}\n\nexport interface IParserUnresolvedRefDefinitionError\n extends IParserDefinitionError {\n unresolvedRefName: string;\n}\n\nexport interface IParserState {\n errors: IRecognitionException[];\n lexerState: any;\n RULE_STACK: number[];\n CST_STACK: CstNode[];\n}\n\nexport type Predicate = () => boolean;\n\nexport function EMPTY_ALT(): () => undefined;\nexport function EMPTY_ALT(value: T): () => T;\nexport function EMPTY_ALT(value: any = undefined) {\n return function () {\n return value;\n };\n}\n\nexport class Parser {\n // Set this flag to true if you don't want the Parser to throw error when problems in it's definition are detected.\n // (normally during the parser's constructor).\n // This is a design time flag, it will not affect the runtime error handling of the parser, just design time errors,\n // for example: duplicate rule names, referencing an unresolved subrule, ect...\n // This flag should not be enabled during normal usage, it is used in special situations, for example when\n // needing to display the parser definition errors in some GUI(online playground).\n static DEFER_DEFINITION_ERRORS_HANDLING: boolean = false;\n\n /**\n * @deprecated use the **instance** method with the same name instead\n */\n static performSelfAnalysis(parserInstance: Parser): void {\n throw Error(\n \"The **static** `performSelfAnalysis` method has been deprecated.\" +\n \"\\t\\nUse the **instance** method with the same name instead.\",\n );\n }\n\n public performSelfAnalysis(this: MixedInParser): void {\n this.TRACE_INIT(\"performSelfAnalysis\", () => {\n let defErrorsMsgs;\n\n this.selfAnalysisDone = true;\n const className = this.className;\n\n this.TRACE_INIT(\"toFastProps\", () => {\n // Without this voodoo magic the parser would be x3-x4 slower\n // It seems it is better to invoke `toFastProperties` **before**\n // Any manipulations of the `this` object done during the recording phase.\n toFastProperties(this);\n });\n\n this.TRACE_INIT(\"Grammar Recording\", () => {\n try {\n this.enableRecording();\n // Building the GAST\n forEach(this.definedRulesNames, (currRuleName) => {\n const wrappedRule = (this as any)[\n currRuleName\n ] as ParserMethodInternal;\n const originalGrammarAction = wrappedRule[\"originalGrammarAction\"];\n let recordedRuleGast!: Rule;\n this.TRACE_INIT(`${currRuleName} Rule`, () => {\n recordedRuleGast = this.topLevelRuleRecord(\n currRuleName,\n originalGrammarAction,\n );\n });\n this.gastProductionsCache[currRuleName] = recordedRuleGast;\n });\n } finally {\n this.disableRecording();\n }\n });\n\n let resolverErrors: IParserDefinitionError[] = [];\n this.TRACE_INIT(\"Grammar Resolving\", () => {\n resolverErrors = resolveGrammar({\n rules: values(this.gastProductionsCache),\n });\n this.definitionErrors = this.definitionErrors.concat(resolverErrors);\n });\n\n this.TRACE_INIT(\"Grammar Validations\", () => {\n // only perform additional grammar validations IFF no resolving errors have occurred.\n // as unresolved grammar may lead to unhandled runtime exceptions in the follow up validations.\n if (isEmpty(resolverErrors) && this.skipValidations === false) {\n const validationErrors = validateGrammar({\n rules: values(this.gastProductionsCache),\n tokenTypes: values(this.tokensMap),\n errMsgProvider: defaultGrammarValidatorErrorProvider,\n grammarName: className,\n });\n const lookaheadValidationErrors = validateLookahead({\n lookaheadStrategy: this.lookaheadStrategy,\n rules: values(this.gastProductionsCache),\n tokenTypes: values(this.tokensMap),\n grammarName: className,\n });\n this.definitionErrors = this.definitionErrors.concat(\n validationErrors,\n lookaheadValidationErrors,\n );\n }\n });\n\n // this analysis may fail if the grammar is not perfectly valid\n if (isEmpty(this.definitionErrors)) {\n // The results of these computations are not needed unless error recovery is enabled.\n if (this.recoveryEnabled) {\n this.TRACE_INIT(\"computeAllProdsFollows\", () => {\n const allFollows = computeAllProdsFollows(\n values(this.gastProductionsCache),\n );\n this.resyncFollows = allFollows;\n });\n }\n\n this.TRACE_INIT(\"ComputeLookaheadFunctions\", () => {\n this.lookaheadStrategy.initialize?.({\n rules: values(this.gastProductionsCache),\n });\n this.preComputeLookaheadFunctions(values(this.gastProductionsCache));\n });\n }\n\n if (\n !Parser.DEFER_DEFINITION_ERRORS_HANDLING &&\n !isEmpty(this.definitionErrors)\n ) {\n defErrorsMsgs = map(\n this.definitionErrors,\n (defError) => defError.message,\n );\n throw new Error(\n `Parser Definition Errors detected:\\n ${defErrorsMsgs.join(\n \"\\n-------------------------------\\n\",\n )}`,\n );\n }\n });\n }\n\n definitionErrors: IParserDefinitionError[] = [];\n selfAnalysisDone = false;\n protected skipValidations: boolean;\n\n constructor(tokenVocabulary: TokenVocabulary, config: IParserConfig) {\n const that: MixedInParser = this as any;\n that.initErrorHandler(config);\n that.initLexerAdapter();\n that.initLooksAhead(config);\n that.initRecognizerEngine(tokenVocabulary, config);\n that.initRecoverable(config);\n that.initTreeBuilder(config);\n that.initContentAssist();\n that.initGastRecorder(config);\n that.initPerformanceTracer(config);\n\n if (has(config, \"ignoredIssues\")) {\n throw new Error(\n \"The IParserConfig property has been deprecated.\\n\\t\" +\n \"Please use the flag on the relevant DSL method instead.\\n\\t\" +\n \"See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#IGNORING_AMBIGUITIES\\n\\t\" +\n \"For further details.\",\n );\n }\n\n this.skipValidations = has(config, \"skipValidations\")\n ? (config.skipValidations as boolean) // casting assumes the end user passing the correct type\n : DEFAULT_PARSER_CONFIG.skipValidations;\n }\n}\n\napplyMixins(Parser, [\n Recoverable,\n LooksAhead,\n TreeBuilder,\n LexerAdapter,\n RecognizerEngine,\n RecognizerApi,\n ErrorHandler,\n ContentAssist,\n GastRecorder,\n PerformanceTracer,\n]);\n\nexport class CstParser extends Parser {\n constructor(\n tokenVocabulary: TokenVocabulary,\n config: IParserConfigInternal = DEFAULT_PARSER_CONFIG,\n ) {\n const configClone = clone(config);\n configClone.outputCst = true;\n super(tokenVocabulary, configClone);\n }\n}\n\nexport class EmbeddedActionsParser extends Parser {\n constructor(\n tokenVocabulary: TokenVocabulary,\n config: IParserConfigInternal = DEFAULT_PARSER_CONFIG,\n ) {\n const configClone = clone(config);\n configClone.outputCst = false;\n super(tokenVocabulary, configClone);\n }\n}\n", "/******************************************************************************\r\n * Copyright 2022 TypeFox GmbH\r\n * This program and the accompanying materials are made available under the\r\n * terms of the MIT License, which is available in the project root.\r\n ******************************************************************************/\r\n\r\nimport map from \"lodash-es/map.js\"\r\nimport filter from \"lodash-es/filter.js\"\r\nimport {\r\n IProduction,\r\n IProductionWithOccurrence,\r\n TokenType,\r\n Alternation,\r\n NonTerminal,\r\n Rule,\r\n Option,\r\n RepetitionMandatory,\r\n Repetition,\r\n Terminal,\r\n Alternative,\r\n RepetitionWithSeparator,\r\n RepetitionMandatoryWithSeparator,\r\n LookaheadProductionType\r\n} from \"chevrotain\"\r\n\r\nexport function buildATNKey(rule: Rule, type: LookaheadProductionType, occurrence: number): string {\r\n return `${rule.name}_${type}_${occurrence}`;\r\n}\r\n\r\nexport interface ATN {\r\n decisionMap: Record\r\n states: ATNState[]\r\n decisionStates: DecisionState[]\r\n ruleToStartState: Map\r\n ruleToStopState: Map\r\n}\r\n\r\nexport const ATN_INVALID_TYPE = 0\r\nexport const ATN_BASIC = 1\r\nexport const ATN_RULE_START = 2\r\nexport const ATN_PLUS_BLOCK_START = 4\r\nexport const ATN_STAR_BLOCK_START = 5\r\n// Currently unused as the ATN is not used for lexing\r\nexport const ATN_TOKEN_START = 6\r\nexport const ATN_RULE_STOP = 7\r\nexport const ATN_BLOCK_END = 8\r\nexport const ATN_STAR_LOOP_BACK = 9\r\nexport const ATN_STAR_LOOP_ENTRY = 10\r\nexport const ATN_PLUS_LOOP_BACK = 11\r\nexport const ATN_LOOP_END = 12\r\n\r\nexport type ATNState =\r\n | BasicState\r\n | BasicBlockStartState\r\n | PlusBlockStartState\r\n | PlusLoopbackState\r\n | StarBlockStartState\r\n | StarLoopbackState\r\n | StarLoopEntryState\r\n | BlockEndState\r\n | RuleStartState\r\n | RuleStopState\r\n | LoopEndState\r\n\r\nexport interface ATNBaseState {\r\n atn: ATN\r\n production: IProductionWithOccurrence\r\n stateNumber: number\r\n rule: Rule\r\n epsilonOnlyTransitions: boolean\r\n transitions: Transition[]\r\n nextTokenWithinRule: number[]\r\n}\r\n\r\nexport interface BasicState extends ATNBaseState {\r\n type: typeof ATN_BASIC\r\n}\r\n\r\nexport interface BlockStartState extends DecisionState {\r\n end: BlockEndState\r\n}\r\n\r\nexport interface BasicBlockStartState extends BlockStartState {\r\n type: typeof ATN_BASIC\r\n}\r\n\r\nexport interface PlusBlockStartState extends BlockStartState {\r\n loopback: PlusLoopbackState\r\n type: typeof ATN_PLUS_BLOCK_START\r\n}\r\n\r\nexport interface PlusLoopbackState extends DecisionState {\r\n type: typeof ATN_PLUS_LOOP_BACK\r\n}\r\n\r\nexport interface StarBlockStartState extends BlockStartState {\r\n type: typeof ATN_STAR_BLOCK_START\r\n}\r\n\r\nexport interface StarLoopbackState extends ATNBaseState {\r\n type: typeof ATN_STAR_LOOP_BACK\r\n}\r\n\r\nexport interface StarLoopEntryState extends DecisionState {\r\n loopback: StarLoopbackState\r\n type: typeof ATN_STAR_LOOP_ENTRY\r\n}\r\n\r\nexport interface BlockEndState extends ATNBaseState {\r\n start: BlockStartState\r\n type: typeof ATN_BLOCK_END\r\n}\r\n\r\nexport interface DecisionState extends ATNBaseState {\r\n decision: number\r\n}\r\n\r\nexport interface LoopEndState extends ATNBaseState {\r\n loopback: ATNState\r\n type: typeof ATN_LOOP_END\r\n}\r\n\r\nexport interface RuleStartState extends ATNBaseState {\r\n stop: RuleStopState\r\n type: typeof ATN_RULE_START\r\n}\r\n\r\nexport interface RuleStopState extends ATNBaseState {\r\n type: typeof ATN_RULE_STOP\r\n}\r\n\r\nexport interface Transition {\r\n target: ATNState\r\n isEpsilon(): boolean\r\n}\r\n\r\nexport abstract class AbstractTransition implements Transition {\r\n target: ATNState\r\n\r\n constructor(target: ATNState) {\r\n this.target = target\r\n }\r\n\r\n isEpsilon() {\r\n return false\r\n }\r\n}\r\n\r\nexport class AtomTransition extends AbstractTransition {\r\n tokenType: TokenType\r\n\r\n constructor(target: ATNState, tokenType: TokenType) {\r\n super(target)\r\n this.tokenType = tokenType\r\n }\r\n}\r\n\r\nexport class EpsilonTransition extends AbstractTransition {\r\n constructor(target: ATNState) {\r\n super(target)\r\n }\r\n\r\n isEpsilon() {\r\n return true\r\n }\r\n}\r\n\r\nexport class RuleTransition extends AbstractTransition {\r\n rule: Rule\r\n followState: ATNState\r\n\r\n constructor(ruleStart: RuleStartState, rule: Rule, followState: ATNState) {\r\n super(ruleStart)\r\n this.rule = rule\r\n this.followState = followState\r\n }\r\n\r\n isEpsilon() {\r\n return true\r\n }\r\n}\r\n\r\ninterface ATNHandle {\r\n left: ATNState\r\n right: ATNState\r\n}\r\n\r\nexport function createATN(rules: Rule[]): ATN {\r\n const atn: ATN = {\r\n decisionMap: {},\r\n decisionStates: [],\r\n ruleToStartState: new Map(),\r\n ruleToStopState: new Map(),\r\n states: []\r\n }\r\n createRuleStartAndStopATNStates(atn, rules)\r\n const ruleLength = rules.length\r\n for (let i = 0; i < ruleLength; i++) {\r\n const rule = rules[i]\r\n const ruleBlock = block(atn, rule, rule)\r\n if (ruleBlock === undefined) {\r\n continue\r\n }\r\n buildRuleHandle(atn, rule, ruleBlock)\r\n }\r\n return atn\r\n}\r\n\r\nfunction createRuleStartAndStopATNStates(atn: ATN, rules: Rule[]): void {\r\n const ruleLength = rules.length\r\n for (let i = 0; i < ruleLength; i++) {\r\n const rule = rules[i]\r\n const start = newState(atn, rule, undefined, {\r\n type: ATN_RULE_START\r\n })\r\n const stop = newState(atn, rule, undefined, {\r\n type: ATN_RULE_STOP\r\n })\r\n start.stop = stop\r\n atn.ruleToStartState.set(rule, start)\r\n atn.ruleToStopState.set(rule, stop)\r\n }\r\n}\r\n\r\nfunction atom(\r\n atn: ATN,\r\n rule: Rule,\r\n production: IProduction\r\n): ATNHandle | undefined {\r\n if (production instanceof Terminal) {\r\n return tokenRef(atn, rule, production.terminalType, production)\r\n } else if (production instanceof NonTerminal) {\r\n return ruleRef(atn, rule, production)\r\n } else if (production instanceof Alternation) {\r\n return alternation(atn, rule, production)\r\n } else if (production instanceof Option) {\r\n return option(atn, rule, production)\r\n } else if (production instanceof Repetition) {\r\n return repetition(atn, rule, production)\r\n } else if (production instanceof RepetitionWithSeparator) {\r\n return repetitionSep(atn, rule, production)\r\n } else if (production instanceof RepetitionMandatory) {\r\n return repetitionMandatory(atn, rule, production)\r\n } else if (production instanceof RepetitionMandatoryWithSeparator) {\r\n return repetitionMandatorySep(atn, rule, production)\r\n } else {\r\n return block(atn, rule, production as Alternative)\r\n }\r\n}\r\n\r\nfunction repetition(atn: ATN, rule: Rule, repetition: Repetition): ATNHandle {\r\n const starState = newState(atn, rule, repetition, {\r\n type: ATN_STAR_BLOCK_START\r\n })\r\n defineDecisionState(atn, starState)\r\n const handle = makeAlts(\r\n atn,\r\n rule,\r\n starState,\r\n repetition,\r\n block(atn, rule, repetition)\r\n )\r\n return star(atn, rule, repetition, handle)\r\n}\r\n\r\nfunction repetitionSep(\r\n atn: ATN,\r\n rule: Rule,\r\n repetition: RepetitionWithSeparator\r\n): ATNHandle {\r\n const starState = newState(atn, rule, repetition, {\r\n type: ATN_STAR_BLOCK_START\r\n })\r\n defineDecisionState(atn, starState)\r\n const handle = makeAlts(\r\n atn,\r\n rule,\r\n starState,\r\n repetition,\r\n block(atn, rule, repetition)\r\n )\r\n const sep = tokenRef(atn, rule, repetition.separator, repetition)\r\n return star(atn, rule, repetition, handle, sep)\r\n}\r\n\r\nfunction repetitionMandatory(\r\n atn: ATN,\r\n rule: Rule,\r\n repetition: RepetitionMandatory\r\n): ATNHandle {\r\n const plusState = newState(atn, rule, repetition, {\r\n type: ATN_PLUS_BLOCK_START\r\n })\r\n defineDecisionState(atn, plusState)\r\n const handle = makeAlts(\r\n atn,\r\n rule,\r\n plusState,\r\n repetition,\r\n block(atn, rule, repetition)\r\n )\r\n return plus(atn, rule, repetition, handle)\r\n}\r\n\r\nfunction repetitionMandatorySep(\r\n atn: ATN,\r\n rule: Rule,\r\n repetition: RepetitionMandatoryWithSeparator\r\n): ATNHandle {\r\n const plusState = newState(atn, rule, repetition, {\r\n type: ATN_PLUS_BLOCK_START\r\n })\r\n defineDecisionState(atn, plusState)\r\n const handle = makeAlts(\r\n atn,\r\n rule,\r\n plusState,\r\n repetition,\r\n block(atn, rule, repetition)\r\n )\r\n const sep = tokenRef(atn, rule, repetition.separator, repetition)\r\n return plus(atn, rule, repetition, handle, sep)\r\n}\r\n\r\nfunction alternation(\r\n atn: ATN,\r\n rule: Rule,\r\n alternation: Alternation\r\n): ATNHandle {\r\n const start = newState(atn, rule, alternation, {\r\n type: ATN_BASIC\r\n })\r\n defineDecisionState(atn, start)\r\n const alts = map(alternation.definition, (e) => atom(atn, rule, e))\r\n const handle = makeAlts(atn, rule, start, alternation, ...alts)\r\n return handle\r\n}\r\n\r\nfunction option(atn: ATN, rule: Rule, option: Option): ATNHandle {\r\n const start = newState(atn, rule, option, {\r\n type: ATN_BASIC\r\n })\r\n defineDecisionState(atn, start)\r\n const handle = makeAlts(atn, rule, start, option, block(atn, rule, option))\r\n return optional(atn, rule, option, handle)\r\n}\r\n\r\nfunction block(\r\n atn: ATN,\r\n rule: Rule,\r\n block: { definition: IProduction[] }\r\n): ATNHandle | undefined {\r\n const handles = filter(\r\n map(block.definition, (e) => atom(atn, rule, e)),\r\n (e) => e !== undefined\r\n ) as ATNHandle[]\r\n if (handles.length === 1) {\r\n return handles[0]\r\n } else if (handles.length === 0) {\r\n return undefined\r\n } else {\r\n return makeBlock(atn, handles)\r\n }\r\n}\r\n\r\nfunction plus(\r\n atn: ATN,\r\n rule: Rule,\r\n plus: IProductionWithOccurrence,\r\n handle: ATNHandle,\r\n sep?: ATNHandle\r\n): ATNHandle {\r\n const blkStart = handle.left as PlusBlockStartState\r\n const blkEnd = handle.right\r\n\r\n const loop = newState(atn, rule, plus, {\r\n type: ATN_PLUS_LOOP_BACK\r\n })\r\n defineDecisionState(atn, loop)\r\n const end = newState(atn, rule, plus, {\r\n type: ATN_LOOP_END\r\n })\r\n blkStart.loopback = loop\r\n end.loopback = loop\r\n atn.decisionMap[buildATNKey(rule, sep ? 'RepetitionMandatoryWithSeparator' : 'RepetitionMandatory', plus.idx)] = loop;\r\n epsilon(blkEnd, loop) // block can see loop back\r\n\r\n // Depending on whether we have a separator we put the exit transition at index 1 or 0\r\n // This influences the chosen option in the lookahead DFA\r\n if (sep === undefined) {\r\n epsilon(loop, blkStart) // loop back to start\r\n epsilon(loop, end) // exit\r\n } else {\r\n epsilon(loop, end) // exit\r\n // loop back to start with separator\r\n epsilon(loop, sep.left)\r\n epsilon(sep.right, blkStart)\r\n }\r\n\r\n return {\r\n left: blkStart,\r\n right: end\r\n }\r\n}\r\n\r\nfunction star(\r\n atn: ATN,\r\n rule: Rule,\r\n star: IProductionWithOccurrence,\r\n handle: ATNHandle,\r\n sep?: ATNHandle\r\n): ATNHandle {\r\n const start = handle.left\r\n const end = handle.right\r\n\r\n const entry = newState(atn, rule, star, {\r\n type: ATN_STAR_LOOP_ENTRY\r\n })\r\n defineDecisionState(atn, entry)\r\n const loopEnd = newState(atn, rule, star, {\r\n type: ATN_LOOP_END\r\n })\r\n const loop = newState(atn, rule, star, {\r\n type: ATN_STAR_LOOP_BACK\r\n })\r\n entry.loopback = loop\r\n loopEnd.loopback = loop\r\n\r\n epsilon(entry, start) // loop enter edge (alt 2)\r\n epsilon(entry, loopEnd) // bypass loop edge (alt 1)\r\n epsilon(end, loop) // block end hits loop back\r\n\r\n if (sep !== undefined) {\r\n epsilon(loop, loopEnd) // end loop\r\n // loop back to start of handle using separator\r\n epsilon(loop, sep.left)\r\n epsilon(sep.right, start)\r\n } else {\r\n epsilon(loop, entry) // loop back to entry/exit decision\r\n }\r\n\r\n atn.decisionMap[buildATNKey(rule, sep ? 'RepetitionWithSeparator' : 'Repetition', star.idx)] = entry;\r\n return {\r\n left: entry,\r\n right: loopEnd\r\n }\r\n}\r\n\r\nfunction optional(atn: ATN, rule: Rule, optional: Option, handle: ATNHandle): ATNHandle {\r\n const start = handle.left as DecisionState\r\n const end = handle.right\r\n\r\n epsilon(start, end)\r\n\r\n atn.decisionMap[buildATNKey(rule, 'Option', optional.idx)] = start;\r\n return handle\r\n}\r\n\r\nfunction defineDecisionState(atn: ATN, state: DecisionState): number {\r\n atn.decisionStates.push(state)\r\n state.decision = atn.decisionStates.length - 1\r\n return state.decision\r\n}\r\n\r\nfunction makeAlts(\r\n atn: ATN,\r\n rule: Rule,\r\n start: BlockStartState,\r\n production: IProductionWithOccurrence,\r\n ...alts: (ATNHandle | undefined)[]\r\n): ATNHandle {\r\n const end = newState(atn, rule, production, {\r\n type: ATN_BLOCK_END,\r\n start\r\n })\r\n start.end = end\r\n for (const alt of alts) {\r\n if (alt !== undefined) {\r\n // hook alts up to decision block\r\n epsilon(start, alt.left)\r\n epsilon(alt.right, end)\r\n } else {\r\n epsilon(start, end)\r\n }\r\n }\r\n\r\n const handle: ATNHandle = {\r\n left: start as ATNState,\r\n right: end\r\n }\r\n atn.decisionMap[buildATNKey(rule, getProdType(production), production.idx)] = start\r\n return handle\r\n}\r\n\r\nfunction getProdType(production: IProduction): LookaheadProductionType {\r\n if (production instanceof Alternation) {\r\n return 'Alternation';\r\n } else if (production instanceof Option) {\r\n return 'Option';\r\n } else if (production instanceof Repetition) {\r\n return 'Repetition';\r\n } else if (production instanceof RepetitionWithSeparator) {\r\n return 'RepetitionWithSeparator';\r\n } else if (production instanceof RepetitionMandatory) {\r\n return 'RepetitionMandatory';\r\n } else if (production instanceof RepetitionMandatoryWithSeparator) {\r\n return 'RepetitionMandatoryWithSeparator';\r\n } else {\r\n throw new Error('Invalid production type encountered');\r\n }\r\n}\r\n\r\nfunction makeBlock(atn: ATN, alts: ATNHandle[]): ATNHandle {\r\n const altsLength = alts.length\r\n for (let i = 0; i < altsLength - 1; i++) {\r\n const handle = alts[i]\r\n let transition: Transition | undefined\r\n if (handle.left.transitions.length === 1) {\r\n transition = handle.left.transitions[0]\r\n }\r\n const isRuleTransition = transition instanceof RuleTransition\r\n const ruleTransition = transition as RuleTransition\r\n const next = alts[i + 1].left\r\n if (\r\n handle.left.type === ATN_BASIC &&\r\n handle.right.type === ATN_BASIC &&\r\n transition !== undefined &&\r\n ((isRuleTransition && ruleTransition.followState === handle.right) ||\r\n transition.target === handle.right)\r\n ) {\r\n // we can avoid epsilon edge to next element\r\n if (isRuleTransition) {\r\n ruleTransition.followState = next\r\n } else {\r\n transition.target = next\r\n }\r\n removeState(atn, handle.right) // we skipped over this state\r\n } else {\r\n // need epsilon if previous block's right end node is complex\r\n epsilon(handle.right, next)\r\n }\r\n }\r\n\r\n const first = alts[0]\r\n const last = alts[altsLength - 1]\r\n return {\r\n left: first.left,\r\n right: last.right\r\n }\r\n}\r\n\r\nfunction tokenRef(\r\n atn: ATN,\r\n rule: Rule,\r\n tokenType: TokenType,\r\n production: IProductionWithOccurrence\r\n): ATNHandle {\r\n const left = newState(atn, rule, production, {\r\n type: ATN_BASIC\r\n })\r\n const right = newState(atn, rule, production, {\r\n type: ATN_BASIC\r\n })\r\n addTransition(left, new AtomTransition(right, tokenType))\r\n return {\r\n left,\r\n right\r\n }\r\n}\r\n\r\nfunction ruleRef(\r\n atn: ATN,\r\n currentRule: Rule,\r\n nonTerminal: NonTerminal\r\n): ATNHandle {\r\n const rule = nonTerminal.referencedRule\r\n const start = atn.ruleToStartState.get(rule)!\r\n const left = newState(atn, currentRule, nonTerminal, {\r\n type: ATN_BASIC\r\n })\r\n const right = newState(atn, currentRule, nonTerminal, {\r\n type: ATN_BASIC\r\n })\r\n\r\n const call = new RuleTransition(start, rule, right)\r\n addTransition(left, call)\r\n\r\n return {\r\n left,\r\n right\r\n }\r\n}\r\n\r\nfunction buildRuleHandle(atn: ATN, rule: Rule, block: ATNHandle): ATNHandle {\r\n const start = atn.ruleToStartState.get(rule)!\r\n epsilon(start, block.left)\r\n const stop = atn.ruleToStopState.get(rule)!\r\n epsilon(block.right, stop)\r\n const handle: ATNHandle = {\r\n left: start,\r\n right: stop\r\n }\r\n return handle\r\n}\r\n\r\nfunction epsilon(a: ATNBaseState, b: ATNBaseState): void {\r\n const transition = new EpsilonTransition(b as ATNState)\r\n addTransition(a, transition)\r\n}\r\n\r\nfunction newState(\r\n atn: ATN,\r\n rule: Rule,\r\n production: IProductionWithOccurrence | undefined,\r\n partial: Partial\r\n): T {\r\n const t: T = {\r\n atn,\r\n production,\r\n epsilonOnlyTransitions: false,\r\n rule,\r\n transitions: [],\r\n nextTokenWithinRule: [],\r\n stateNumber: atn.states.length,\r\n ...partial\r\n } as unknown as T\r\n atn.states.push(t)\r\n return t\r\n}\r\n\r\nfunction addTransition(state: ATNBaseState, transition: Transition) {\r\n // A single ATN state can only contain epsilon transitions or non-epsilon transitions\r\n // Because they are never mixed, only setting the property for the first transition is fine\r\n if (state.transitions.length === 0) {\r\n state.epsilonOnlyTransitions = transition.isEpsilon()\r\n }\r\n state.transitions.push(transition)\r\n}\r\n\r\nfunction removeState(atn: ATN, state: ATNState): void {\r\n atn.states.splice(atn.states.indexOf(state), 1)\r\n}\r\n", "/******************************************************************************\r\n * Copyright 2022 TypeFox GmbH\r\n * This program and the accompanying materials are made available under the\r\n * terms of the MIT License, which is available in the project root.\r\n ******************************************************************************/\r\n\r\nimport map from \"lodash-es/map.js\"\r\nimport { ATNState, DecisionState } from \"./atn.js\"\r\n\r\nexport interface DFA {\r\n start?: DFAState\r\n states: Record\r\n decision: number\r\n atnStartState: DecisionState\r\n}\r\n\r\nexport interface DFAState {\r\n configs: ATNConfigSet\r\n edges: Record\r\n isAcceptState: boolean\r\n prediction: number\r\n}\r\n\r\nexport const DFA_ERROR = {} as DFAState\r\n\r\nexport interface ATNConfig {\r\n state: ATNState\r\n alt: number\r\n stack: ATNState[]\r\n}\r\n\r\nexport class ATNConfigSet {\r\n private map: Record = {}\r\n private configs: ATNConfig[] = []\r\n\r\n uniqueAlt: number | undefined\r\n\r\n get size(): number {\r\n return this.configs.length\r\n }\r\n\r\n finalize(): void {\r\n // Empties the map to free up memory\r\n this.map = {}\r\n }\r\n\r\n add(config: ATNConfig): void {\r\n const key = getATNConfigKey(config)\r\n // Only add configs which don't exist in our map already\r\n // While this does not influence the actual algorithm, adding them anyway would massively increase memory consumption\r\n if (!(key in this.map)) {\r\n this.map[key] = this.configs.length\r\n this.configs.push(config)\r\n }\r\n }\r\n\r\n get elements(): readonly ATNConfig[] {\r\n return this.configs\r\n }\r\n\r\n get alts(): number[] {\r\n return map(this.configs, (e) => e.alt)\r\n }\r\n\r\n get key(): string {\r\n let value = \"\"\r\n for (const k in this.map) {\r\n value += k + \":\"\r\n }\r\n return value\r\n }\r\n}\r\n\r\nexport function getATNConfigKey(config: ATNConfig, alt = true) {\r\n return `${alt ? `a${config.alt}` : \"\"}s${\r\n config.state.stateNumber\r\n }:${config.stack.map((e) => e.stateNumber.toString()).join(\"_\")}`\r\n}\r\n", "/******************************************************************************\r\n * Copyright 2022 TypeFox GmbH\r\n * This program and the accompanying materials are made available under the\r\n * terms of the MIT License, which is available in the project root.\r\n ******************************************************************************/\r\n\r\nimport {\r\n IToken,\r\n TokenType,\r\n tokenMatcher,\r\n tokenLabel,\r\n Rule,\r\n IProductionWithOccurrence,\r\n NonTerminal,\r\n Alternation,\r\n Option,\r\n RepetitionMandatory,\r\n RepetitionMandatoryWithSeparator,\r\n RepetitionWithSeparator,\r\n Repetition,\r\n Terminal,\r\n BaseParser,\r\n LLkLookaheadStrategy,\r\n ILookaheadValidationError,\r\n IOrAlt,\r\n getLookaheadPaths,\r\n OptionalProductionType\r\n} from \"chevrotain\";\r\nimport {\r\n ATN,\r\n ATNState,\r\n ATN_RULE_STOP,\r\n AtomTransition,\r\n buildATNKey,\r\n createATN,\r\n DecisionState,\r\n EpsilonTransition,\r\n RuleTransition,\r\n Transition\r\n} from \"./atn.js\";\r\nimport {\r\n ATNConfig,\r\n ATNConfigSet,\r\n DFA,\r\n DFAState,\r\n DFA_ERROR,\r\n getATNConfigKey\r\n} from \"./dfa.js\";\r\nimport min from \"lodash-es/min.js\";\r\nimport flatMap from \"lodash-es/flatMap.js\";\r\nimport uniqBy from \"lodash-es/uniqBy.js\";\r\nimport map from \"lodash-es/map.js\";\r\nimport flatten from \"lodash-es/flatten.js\";\r\nimport forEach from \"lodash-es/forEach.js\";\r\nimport isEmpty from \"lodash-es/isEmpty.js\";\r\nimport reduce from \"lodash-es/reduce.js\";\r\n\r\ntype DFACache = (predicateSet: PredicateSet) => DFA\r\n\r\nexport type AmbiguityReport = (message: string) => void;\r\n\r\nfunction createDFACache(startState: DecisionState, decision: number): DFACache {\r\n const map: Record = {}\r\n return (predicateSet) => {\r\n const key = predicateSet.toString()\r\n let existing = map[key]\r\n if (existing !== undefined) {\r\n return existing\r\n } else {\r\n existing = {\r\n atnStartState: startState,\r\n decision,\r\n states: {}\r\n }\r\n map[key] = existing\r\n return existing\r\n }\r\n }\r\n}\r\n\r\nclass PredicateSet {\r\n private predicates: boolean[] = []\r\n\r\n is(index: number): boolean {\r\n return index >= this.predicates.length || this.predicates[index]\r\n }\r\n\r\n set(index: number, value: boolean) {\r\n this.predicates[index] = value\r\n }\r\n\r\n toString(): string {\r\n let value = \"\"\r\n const size = this.predicates.length\r\n for (let i = 0; i < size; i++) {\r\n value += this.predicates[i] === true ? \"1\" : \"0\"\r\n }\r\n return value\r\n }\r\n}\r\n\r\ninterface AdaptivePredictError {\r\n tokenPath: IToken[]\r\n possibleTokenTypes: TokenType[]\r\n actualToken: IToken\r\n}\r\n\r\nconst EMPTY_PREDICATES = new PredicateSet()\r\n\r\nexport interface LLStarLookaheadOptions {\r\n logging?: AmbiguityReport\r\n}\r\n\r\nexport class LLStarLookaheadStrategy extends LLkLookaheadStrategy {\r\n\r\n private atn: ATN;\r\n private dfas: DFACache[];\r\n private logging: AmbiguityReport;\r\n\r\n constructor(options?: LLStarLookaheadOptions) {\r\n super();\r\n this.logging = options?.logging ?? ((message) => console.log(message));\r\n }\r\n\r\n override initialize(options: { rules: Rule[] }): void {\r\n this.atn = createATN(options.rules);\r\n this.dfas = initATNSimulator(this.atn);\r\n }\r\n\r\n override validateAmbiguousAlternationAlternatives(): ILookaheadValidationError[] {\r\n return [];\r\n }\r\n\r\n override validateEmptyOrAlternatives(): ILookaheadValidationError[] {\r\n return [];\r\n }\r\n\r\n override buildLookaheadForAlternation(options: {\r\n prodOccurrence: number;\r\n rule: Rule;\r\n maxLookahead: number;\r\n hasPredicates: boolean;\r\n dynamicTokensEnabled: boolean\r\n }): (this: BaseParser, orAlts?: IOrAlt[] | undefined) => number | undefined {\r\n const { prodOccurrence, rule, hasPredicates, dynamicTokensEnabled } = options;\r\n const dfas = this.dfas;\r\n const logging = this.logging;\r\n const key = buildATNKey(rule, 'Alternation', prodOccurrence);\r\n const decisionState = this.atn.decisionMap[key];\r\n const decisionIndex = decisionState.decision;\r\n const partialAlts: (TokenType | undefined)[][] = map(\r\n getLookaheadPaths({\r\n maxLookahead: 1,\r\n occurrence: prodOccurrence,\r\n prodType: \"Alternation\",\r\n rule: rule\r\n }),\r\n (currAlt) => map(currAlt, (path) => path[0])\r\n )\r\n\r\n if (isLL1Sequence(partialAlts, false) && !dynamicTokensEnabled) {\r\n const choiceToAlt = reduce(\r\n partialAlts,\r\n (result, currAlt, idx) => {\r\n forEach(currAlt, (currTokType) => {\r\n if (currTokType) {\r\n result[currTokType.tokenTypeIdx!] = idx\r\n forEach(currTokType.categoryMatches!, (currExtendingType) => {\r\n result[currExtendingType] = idx\r\n })\r\n }\r\n })\r\n return result\r\n },\r\n {} as Record\r\n )\r\n\r\n if (hasPredicates) {\r\n return function (this: BaseParser, orAlts) {\r\n const nextToken = this.LA(1)\r\n const prediction: number | undefined = choiceToAlt[nextToken.tokenTypeIdx]\r\n if (orAlts !== undefined && prediction !== undefined) {\r\n const gate = orAlts[prediction]?.GATE\r\n if (gate !== undefined && gate.call(this) === false) {\r\n return undefined;\r\n }\r\n }\r\n return prediction\r\n }\r\n } else {\r\n return function (this: BaseParser): number | undefined {\r\n const nextToken = this.LA(1)\r\n return choiceToAlt[nextToken.tokenTypeIdx];\r\n }\r\n }\r\n } else if (hasPredicates) {\r\n return function (this: BaseParser, orAlts) {\r\n const predicates = new PredicateSet()\r\n const length = orAlts === undefined ? 0 : orAlts.length\r\n for (let i = 0; i < length; i++) {\r\n const gate = orAlts?.[i].GATE\r\n predicates.set(i, gate === undefined || gate.call(this))\r\n }\r\n const result = adaptivePredict.call(this, dfas, decisionIndex, predicates, logging);\r\n return typeof result === 'number' ? result : undefined;\r\n }\r\n } else {\r\n return function (this: BaseParser) {\r\n const result = adaptivePredict.call(this, dfas, decisionIndex, EMPTY_PREDICATES, logging);\r\n return typeof result === 'number' ? result : undefined;\r\n }\r\n }\r\n }\r\n\r\n override buildLookaheadForOptional(options: {\r\n prodOccurrence: number;\r\n prodType: OptionalProductionType;\r\n rule: Rule;\r\n maxLookahead: number;\r\n dynamicTokensEnabled: boolean\r\n }): (this: BaseParser) => boolean {\r\n const { prodOccurrence, rule, prodType, dynamicTokensEnabled } = options;\r\n const dfas = this.dfas;\r\n const logging = this.logging;\r\n const key = buildATNKey(rule, prodType, prodOccurrence);\r\n const decisionState = this.atn.decisionMap[key];\r\n const decisionIndex = decisionState.decision;\r\n const alts = map(\r\n getLookaheadPaths({\r\n maxLookahead: 1,\r\n occurrence: prodOccurrence,\r\n prodType,\r\n rule\r\n }),\r\n (e) => {\r\n return map(e, (g) => g[0])\r\n }\r\n )\r\n \r\n if (isLL1Sequence(alts) && alts[0][0] && !dynamicTokensEnabled) {\r\n const alt = alts[0]\r\n const singleTokensTypes = flatten(alt)\r\n \r\n if (\r\n singleTokensTypes.length === 1 &&\r\n isEmpty(singleTokensTypes[0].categoryMatches)\r\n ) {\r\n const expectedTokenType = singleTokensTypes[0]\r\n const expectedTokenUniqueKey = expectedTokenType.tokenTypeIdx\r\n \r\n return function (this: BaseParser): boolean {\r\n return this.LA(1).tokenTypeIdx === expectedTokenUniqueKey\r\n }\r\n } else {\r\n const choiceToAlt = reduce(\r\n singleTokensTypes,\r\n (result, currTokType) => {\r\n if (currTokType !== undefined) {\r\n result[currTokType.tokenTypeIdx!] = true\r\n forEach(currTokType.categoryMatches, (currExtendingType) => {\r\n result[currExtendingType] = true\r\n })\r\n }\r\n return result\r\n },\r\n {} as Record\r\n )\r\n \r\n return function (this: BaseParser): boolean {\r\n const nextToken = this.LA(1)\r\n return choiceToAlt[nextToken.tokenTypeIdx] === true\r\n }\r\n }\r\n }\r\n return function (this: BaseParser) {\r\n const result = adaptivePredict.call(this, dfas, decisionIndex, EMPTY_PREDICATES, logging)\r\n return typeof result === \"object\" ? false : result === 0;\r\n }\r\n }\r\n\r\n}\r\n\r\nfunction isLL1Sequence(sequences: (TokenType | undefined)[][], allowEmpty = true): boolean {\r\n const fullSet = new Set()\r\n\r\n for (const alt of sequences) {\r\n const altSet = new Set()\r\n for (const tokType of alt) {\r\n if (tokType === undefined) {\r\n if (allowEmpty) {\r\n // Epsilon production encountered\r\n break\r\n } else {\r\n return false;\r\n }\r\n }\r\n const indices = [tokType.tokenTypeIdx!].concat(tokType.categoryMatches!)\r\n for (const index of indices) {\r\n if (fullSet.has(index)) {\r\n if (!altSet.has(index)) {\r\n return false\r\n }\r\n } else {\r\n fullSet.add(index)\r\n altSet.add(index)\r\n }\r\n }\r\n }\r\n }\r\n return true\r\n}\r\n\r\nfunction initATNSimulator(atn: ATN): DFACache[] {\r\n const decisionLength = atn.decisionStates.length\r\n const decisionToDFA: DFACache[] = Array(decisionLength)\r\n for (let i = 0; i < decisionLength; i++) {\r\n decisionToDFA[i] = createDFACache(atn.decisionStates[i], i)\r\n }\r\n return decisionToDFA;\r\n}\r\n\r\nfunction adaptivePredict(\r\n this: BaseParser,\r\n dfaCaches: DFACache[],\r\n decision: number,\r\n predicateSet: PredicateSet,\r\n logging: AmbiguityReport\r\n): number | AdaptivePredictError {\r\n const dfa = dfaCaches[decision](predicateSet)\r\n let start = dfa.start\r\n if (start === undefined) {\r\n const closure = computeStartState(dfa.atnStartState as ATNState)\r\n start = addDFAState(dfa, newDFAState(closure))\r\n dfa.start = start\r\n }\r\n\r\n const alt = performLookahead.apply(this, [dfa, start, predicateSet, logging])\r\n return alt\r\n}\r\n\r\nfunction performLookahead(\r\n this: BaseParser,\r\n dfa: DFA,\r\n s0: DFAState,\r\n predicateSet: PredicateSet,\r\n logging: AmbiguityReport\r\n): number | AdaptivePredictError {\r\n let previousD = s0\r\n\r\n let i = 1\r\n const path: IToken[] = []\r\n let t = this.LA(i++)\r\n\r\n while (true) {\r\n let d = getExistingTargetState(previousD, t)\r\n if (d === undefined) {\r\n d = computeLookaheadTarget.apply(this, [dfa, previousD, t, i, predicateSet, logging])\r\n }\r\n\r\n if (d === DFA_ERROR) {\r\n return buildAdaptivePredictError(path, previousD, t)\r\n }\r\n\r\n if (d.isAcceptState === true) {\r\n return d.prediction\r\n }\r\n\r\n previousD = d\r\n path.push(t)\r\n t = this.LA(i++)\r\n }\r\n}\r\n\r\nfunction computeLookaheadTarget(\r\n this: BaseParser,\r\n dfa: DFA,\r\n previousD: DFAState,\r\n token: IToken,\r\n lookahead: number,\r\n predicateSet: PredicateSet,\r\n logging: AmbiguityReport\r\n): DFAState {\r\n const reach = computeReachSet(previousD.configs, token, predicateSet)\r\n if (reach.size === 0) {\r\n addDFAEdge(dfa, previousD, token, DFA_ERROR)\r\n return DFA_ERROR\r\n }\r\n\r\n let newState = newDFAState(reach)\r\n const predictedAlt = getUniqueAlt(reach, predicateSet)\r\n\r\n if (predictedAlt !== undefined) {\r\n newState.isAcceptState = true\r\n newState.prediction = predictedAlt\r\n newState.configs.uniqueAlt = predictedAlt\r\n } else if (hasConflictTerminatingPrediction(reach)) {\r\n const prediction = min(reach.alts)!\r\n newState.isAcceptState = true\r\n newState.prediction = prediction\r\n newState.configs.uniqueAlt = prediction\r\n reportLookaheadAmbiguity.apply(this, [dfa, lookahead, reach.alts, logging])\r\n }\r\n\r\n newState = addDFAEdge(dfa, previousD, token, newState)\r\n return newState\r\n}\r\n\r\nfunction reportLookaheadAmbiguity(\r\n this: BaseParser,\r\n dfa: DFA,\r\n lookahead: number,\r\n ambiguityIndices: number[],\r\n logging: AmbiguityReport\r\n) {\r\n const prefixPath: TokenType[] = []\r\n for (let i = 1; i <= lookahead; i++) {\r\n prefixPath.push(this.LA(i).tokenType)\r\n }\r\n const atnState = dfa.atnStartState\r\n const topLevelRule = atnState.rule\r\n const production = atnState.production\r\n const message = buildAmbiguityError({\r\n topLevelRule,\r\n ambiguityIndices,\r\n production,\r\n prefixPath\r\n })\r\n logging(message)\r\n}\r\n\r\nfunction buildAmbiguityError(options: {\r\n topLevelRule: Rule\r\n prefixPath: TokenType[]\r\n ambiguityIndices: number[]\r\n production: IProductionWithOccurrence\r\n}): string {\r\n const pathMsg = map(options.prefixPath, (currtok) =>\r\n tokenLabel(currtok)\r\n ).join(\", \")\r\n const occurrence =\r\n options.production.idx === 0 ? \"\" : options.production.idx\r\n let currMessage =\r\n `Ambiguous Alternatives Detected: <${options.ambiguityIndices.join(\r\n \", \"\r\n )}> in <${getProductionDslName(options.production)}${occurrence}>` +\r\n ` inside <${options.topLevelRule.name}> Rule,\\n` +\r\n `<${pathMsg}> may appears as a prefix path in all these alternatives.\\n`\r\n\r\n currMessage =\r\n currMessage +\r\n `See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#AMBIGUOUS_ALTERNATIVES\\n` +\r\n `For Further details.`\r\n return currMessage\r\n}\r\n\r\nfunction getProductionDslName(prod: IProductionWithOccurrence): string {\r\n if (prod instanceof NonTerminal) {\r\n return \"SUBRULE\"\r\n } else if (prod instanceof Option) {\r\n return \"OPTION\"\r\n } else if (prod instanceof Alternation) {\r\n return \"OR\"\r\n } else if (prod instanceof RepetitionMandatory) {\r\n return \"AT_LEAST_ONE\"\r\n } else if (prod instanceof RepetitionMandatoryWithSeparator) {\r\n return \"AT_LEAST_ONE_SEP\"\r\n } else if (prod instanceof RepetitionWithSeparator) {\r\n return \"MANY_SEP\"\r\n } else if (prod instanceof Repetition) {\r\n return \"MANY\"\r\n } else if (prod instanceof Terminal) {\r\n return \"CONSUME\"\r\n } else {\r\n throw Error(\"non exhaustive match\")\r\n }\r\n}\r\n\r\nfunction buildAdaptivePredictError(\r\n path: IToken[],\r\n previous: DFAState,\r\n current: IToken\r\n): AdaptivePredictError {\r\n const nextTransitions = flatMap(\r\n previous.configs.elements,\r\n (e) => e.state.transitions\r\n )\r\n const nextTokenTypes = uniqBy(\r\n nextTransitions\r\n .filter((e): e is AtomTransition => e instanceof AtomTransition)\r\n .map((e) => e.tokenType),\r\n (e) => e.tokenTypeIdx\r\n )\r\n return {\r\n actualToken: current,\r\n possibleTokenTypes: nextTokenTypes,\r\n tokenPath: path\r\n }\r\n}\r\n\r\nfunction getExistingTargetState(\r\n state: DFAState,\r\n token: IToken\r\n): DFAState | undefined {\r\n return state.edges[token.tokenTypeIdx]\r\n}\r\n\r\nfunction computeReachSet(\r\n configs: ATNConfigSet,\r\n token: IToken,\r\n predicateSet: PredicateSet\r\n): ATNConfigSet {\r\n const intermediate = new ATNConfigSet()\r\n const skippedStopStates: ATNConfig[] = []\r\n\r\n for (const c of configs.elements) {\r\n if (predicateSet.is(c.alt) === false) {\r\n continue\r\n }\r\n if (c.state.type === ATN_RULE_STOP) {\r\n skippedStopStates.push(c)\r\n continue\r\n }\r\n const transitionLength = c.state.transitions.length\r\n for (let i = 0; i < transitionLength; i++) {\r\n const transition = c.state.transitions[i]\r\n const target = getReachableTarget(transition, token)\r\n if (target !== undefined) {\r\n intermediate.add({\r\n state: target,\r\n alt: c.alt,\r\n stack: c.stack\r\n })\r\n }\r\n }\r\n }\r\n\r\n let reach: ATNConfigSet | undefined\r\n\r\n if (skippedStopStates.length === 0 && intermediate.size === 1) {\r\n reach = intermediate\r\n }\r\n\r\n if (reach === undefined) {\r\n reach = new ATNConfigSet()\r\n for (const c of intermediate.elements) {\r\n closure(c, reach)\r\n }\r\n }\r\n\r\n if (skippedStopStates.length > 0 && !hasConfigInRuleStopState(reach)) {\r\n for (const c of skippedStopStates) {\r\n reach.add(c)\r\n }\r\n }\r\n\r\n return reach\r\n}\r\n\r\nfunction getReachableTarget(\r\n transition: Transition,\r\n token: IToken\r\n): ATNState | undefined {\r\n if (\r\n transition instanceof AtomTransition &&\r\n tokenMatcher(token, transition.tokenType)\r\n ) {\r\n return transition.target\r\n }\r\n return undefined\r\n}\r\n\r\nfunction getUniqueAlt(\r\n configs: ATNConfigSet,\r\n predicateSet: PredicateSet\r\n): number | undefined {\r\n let alt: number | undefined\r\n for (const c of configs.elements) {\r\n if (predicateSet.is(c.alt) === true) {\r\n if (alt === undefined) {\r\n alt = c.alt\r\n } else if (alt !== c.alt) {\r\n return undefined\r\n }\r\n }\r\n }\r\n return alt\r\n}\r\n\r\nfunction newDFAState(closure: ATNConfigSet): DFAState {\r\n return {\r\n configs: closure,\r\n edges: {},\r\n isAcceptState: false,\r\n prediction: -1\r\n }\r\n}\r\n\r\nfunction addDFAEdge(\r\n dfa: DFA,\r\n from: DFAState,\r\n token: IToken,\r\n to: DFAState\r\n): DFAState {\r\n to = addDFAState(dfa, to)\r\n from.edges[token.tokenTypeIdx] = to\r\n return to\r\n}\r\n\r\nfunction addDFAState(dfa: DFA, state: DFAState): DFAState {\r\n if (state === DFA_ERROR) {\r\n return state\r\n }\r\n // Repetitions have the same config set\r\n // Therefore, storing the key of the config in a map allows us to create a loop in our DFA\r\n const mapKey = state.configs.key\r\n const existing = dfa.states[mapKey]\r\n if (existing !== undefined) {\r\n return existing\r\n }\r\n state.configs.finalize()\r\n dfa.states[mapKey] = state\r\n return state\r\n}\r\n\r\nfunction computeStartState(atnState: ATNState): ATNConfigSet {\r\n const configs = new ATNConfigSet()\r\n\r\n const numberOfTransitions = atnState.transitions.length\r\n for (let i = 0; i < numberOfTransitions; i++) {\r\n const target = atnState.transitions[i].target\r\n const config: ATNConfig = {\r\n state: target,\r\n alt: i,\r\n stack: []\r\n }\r\n closure(config, configs)\r\n }\r\n\r\n return configs\r\n}\r\n\r\nfunction closure(config: ATNConfig, configs: ATNConfigSet): void {\r\n const p = config.state\r\n\r\n if (p.type === ATN_RULE_STOP) {\r\n if (config.stack.length > 0) {\r\n const atnStack = [...config.stack]\r\n const followState = atnStack.pop()!\r\n const followConfig: ATNConfig = {\r\n state: followState,\r\n alt: config.alt,\r\n stack: atnStack\r\n }\r\n closure(followConfig, configs)\r\n } else {\r\n // Dipping into outer context, simply add the config\r\n // This will stop computation once every config is at the rule stop state\r\n configs.add(config)\r\n }\r\n return\r\n }\r\n\r\n if (!p.epsilonOnlyTransitions) {\r\n configs.add(config)\r\n }\r\n\r\n const transitionLength = p.transitions.length\r\n for (let i = 0; i < transitionLength; i++) {\r\n const transition = p.transitions[i]\r\n const c = getEpsilonTarget(config, transition)\r\n\r\n if (c !== undefined) {\r\n closure(c, configs)\r\n }\r\n }\r\n}\r\n\r\nfunction getEpsilonTarget(\r\n config: ATNConfig,\r\n transition: Transition\r\n): ATNConfig | undefined {\r\n if (transition instanceof EpsilonTransition) {\r\n return {\r\n state: transition.target,\r\n alt: config.alt,\r\n stack: config.stack\r\n }\r\n } else if (transition instanceof RuleTransition) {\r\n const stack = [...config.stack, transition.followState]\r\n return {\r\n state: transition.target,\r\n alt: config.alt,\r\n stack\r\n }\r\n }\r\n return undefined\r\n}\r\n\r\nfunction hasConfigInRuleStopState(configs: ATNConfigSet): boolean {\r\n for (const c of configs.elements) {\r\n if (c.state.type === ATN_RULE_STOP) {\r\n return true\r\n }\r\n }\r\n return false\r\n}\r\n\r\nfunction allConfigsInRuleStopStates(configs: ATNConfigSet): boolean {\r\n for (const c of configs.elements) {\r\n if (c.state.type !== ATN_RULE_STOP) {\r\n return false\r\n }\r\n }\r\n return true\r\n}\r\n\r\nfunction hasConflictTerminatingPrediction(configs: ATNConfigSet): boolean {\r\n if (allConfigsInRuleStopStates(configs)) {\r\n return true\r\n }\r\n const altSets = getConflictingAltSets(configs.elements)\r\n const heuristic =\r\n hasConflictingAltSet(altSets) && !hasStateAssociatedWithOneAlt(altSets)\r\n return heuristic\r\n}\r\n\r\nfunction getConflictingAltSets(\r\n configs: readonly ATNConfig[]\r\n): Map> {\r\n const configToAlts = new Map>()\r\n for (const c of configs) {\r\n const key = getATNConfigKey(c, false)\r\n let alts = configToAlts.get(key)\r\n if (alts === undefined) {\r\n alts = {}\r\n configToAlts.set(key, alts)\r\n }\r\n alts[c.alt] = true\r\n }\r\n return configToAlts\r\n}\r\n\r\nfunction hasConflictingAltSet(\r\n altSets: Map>\r\n): boolean {\r\n for (const value of Array.from(altSets.values())) {\r\n if (Object.keys(value).length > 1) {\r\n return true\r\n }\r\n }\r\n return false\r\n}\r\n\r\nfunction hasStateAssociatedWithOneAlt(\r\n altSets: Map>\r\n): boolean {\r\n for (const value of Array.from(altSets.values())) {\r\n if (Object.keys(value).length === 1) {\r\n return true\r\n }\r\n }\r\n return false\r\n}\r\n", "/* --------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n * ------------------------------------------------------------------------------------------ */\n'use strict';\nexport var DocumentUri;\n(function (DocumentUri) {\n function is(value) {\n return typeof value === 'string';\n }\n DocumentUri.is = is;\n})(DocumentUri || (DocumentUri = {}));\nexport var URI;\n(function (URI) {\n function is(value) {\n return typeof value === 'string';\n }\n URI.is = is;\n})(URI || (URI = {}));\nexport var integer;\n(function (integer) {\n integer.MIN_VALUE = -2147483648;\n integer.MAX_VALUE = 2147483647;\n function is(value) {\n return typeof value === 'number' && integer.MIN_VALUE <= value && value <= integer.MAX_VALUE;\n }\n integer.is = is;\n})(integer || (integer = {}));\nexport var uinteger;\n(function (uinteger) {\n uinteger.MIN_VALUE = 0;\n uinteger.MAX_VALUE = 2147483647;\n function is(value) {\n return typeof value === 'number' && uinteger.MIN_VALUE <= value && value <= uinteger.MAX_VALUE;\n }\n uinteger.is = is;\n})(uinteger || (uinteger = {}));\n/**\n * The Position namespace provides helper functions to work with\n * {@link Position} literals.\n */\nexport var Position;\n(function (Position) {\n /**\n * Creates a new Position literal from the given line and character.\n * @param line The position's line.\n * @param character The position's character.\n */\n function create(line, character) {\n if (line === Number.MAX_VALUE) {\n line = uinteger.MAX_VALUE;\n }\n if (character === Number.MAX_VALUE) {\n character = uinteger.MAX_VALUE;\n }\n return { line, character };\n }\n Position.create = create;\n /**\n * Checks whether the given literal conforms to the {@link Position} interface.\n */\n function is(value) {\n let candidate = value;\n return Is.objectLiteral(candidate) && Is.uinteger(candidate.line) && Is.uinteger(candidate.character);\n }\n Position.is = is;\n})(Position || (Position = {}));\n/**\n * The Range namespace provides helper functions to work with\n * {@link Range} literals.\n */\nexport var Range;\n(function (Range) {\n function create(one, two, three, four) {\n if (Is.uinteger(one) && Is.uinteger(two) && Is.uinteger(three) && Is.uinteger(four)) {\n return { start: Position.create(one, two), end: Position.create(three, four) };\n }\n else if (Position.is(one) && Position.is(two)) {\n return { start: one, end: two };\n }\n else {\n throw new Error(`Range#create called with invalid arguments[${one}, ${two}, ${three}, ${four}]`);\n }\n }\n Range.create = create;\n /**\n * Checks whether the given literal conforms to the {@link Range} interface.\n */\n function is(value) {\n let candidate = value;\n return Is.objectLiteral(candidate) && Position.is(candidate.start) && Position.is(candidate.end);\n }\n Range.is = is;\n})(Range || (Range = {}));\n/**\n * The Location namespace provides helper functions to work with\n * {@link Location} literals.\n */\nexport var Location;\n(function (Location) {\n /**\n * Creates a Location literal.\n * @param uri The location's uri.\n * @param range The location's range.\n */\n function create(uri, range) {\n return { uri, range };\n }\n Location.create = create;\n /**\n * Checks whether the given literal conforms to the {@link Location} interface.\n */\n function is(value) {\n let candidate = value;\n return Is.objectLiteral(candidate) && Range.is(candidate.range) && (Is.string(candidate.uri) || Is.undefined(candidate.uri));\n }\n Location.is = is;\n})(Location || (Location = {}));\n/**\n * The LocationLink namespace provides helper functions to work with\n * {@link LocationLink} literals.\n */\nexport var LocationLink;\n(function (LocationLink) {\n /**\n * Creates a LocationLink literal.\n * @param targetUri The definition's uri.\n * @param targetRange The full range of the definition.\n * @param targetSelectionRange The span of the symbol definition at the target.\n * @param originSelectionRange The span of the symbol being defined in the originating source file.\n */\n function create(targetUri, targetRange, targetSelectionRange, originSelectionRange) {\n return { targetUri, targetRange, targetSelectionRange, originSelectionRange };\n }\n LocationLink.create = create;\n /**\n * Checks whether the given literal conforms to the {@link LocationLink} interface.\n */\n function is(value) {\n let candidate = value;\n return Is.objectLiteral(candidate) && Range.is(candidate.targetRange) && Is.string(candidate.targetUri)\n && Range.is(candidate.targetSelectionRange)\n && (Range.is(candidate.originSelectionRange) || Is.undefined(candidate.originSelectionRange));\n }\n LocationLink.is = is;\n})(LocationLink || (LocationLink = {}));\n/**\n * The Color namespace provides helper functions to work with\n * {@link Color} literals.\n */\nexport var Color;\n(function (Color) {\n /**\n * Creates a new Color literal.\n */\n function create(red, green, blue, alpha) {\n return {\n red,\n green,\n blue,\n alpha,\n };\n }\n Color.create = create;\n /**\n * Checks whether the given literal conforms to the {@link Color} interface.\n */\n function is(value) {\n const candidate = value;\n return Is.objectLiteral(candidate) && Is.numberRange(candidate.red, 0, 1)\n && Is.numberRange(candidate.green, 0, 1)\n && Is.numberRange(candidate.blue, 0, 1)\n && Is.numberRange(candidate.alpha, 0, 1);\n }\n Color.is = is;\n})(Color || (Color = {}));\n/**\n * The ColorInformation namespace provides helper functions to work with\n * {@link ColorInformation} literals.\n */\nexport var ColorInformation;\n(function (ColorInformation) {\n /**\n * Creates a new ColorInformation literal.\n */\n function create(range, color) {\n return {\n range,\n color,\n };\n }\n ColorInformation.create = create;\n /**\n * Checks whether the given literal conforms to the {@link ColorInformation} interface.\n */\n function is(value) {\n const candidate = value;\n return Is.objectLiteral(candidate) && Range.is(candidate.range) && Color.is(candidate.color);\n }\n ColorInformation.is = is;\n})(ColorInformation || (ColorInformation = {}));\n/**\n * The Color namespace provides helper functions to work with\n * {@link ColorPresentation} literals.\n */\nexport var ColorPresentation;\n(function (ColorPresentation) {\n /**\n * Creates a new ColorInformation literal.\n */\n function create(label, textEdit, additionalTextEdits) {\n return {\n label,\n textEdit,\n additionalTextEdits,\n };\n }\n ColorPresentation.create = create;\n /**\n * Checks whether the given literal conforms to the {@link ColorInformation} interface.\n */\n function is(value) {\n const candidate = value;\n return Is.objectLiteral(candidate) && Is.string(candidate.label)\n && (Is.undefined(candidate.textEdit) || TextEdit.is(candidate))\n && (Is.undefined(candidate.additionalTextEdits) || Is.typedArray(candidate.additionalTextEdits, TextEdit.is));\n }\n ColorPresentation.is = is;\n})(ColorPresentation || (ColorPresentation = {}));\n/**\n * A set of predefined range kinds.\n */\nexport var FoldingRangeKind;\n(function (FoldingRangeKind) {\n /**\n * Folding range for a comment\n */\n FoldingRangeKind.Comment = 'comment';\n /**\n * Folding range for an import or include\n */\n FoldingRangeKind.Imports = 'imports';\n /**\n * Folding range for a region (e.g. `#region`)\n */\n FoldingRangeKind.Region = 'region';\n})(FoldingRangeKind || (FoldingRangeKind = {}));\n/**\n * The folding range namespace provides helper functions to work with\n * {@link FoldingRange} literals.\n */\nexport var FoldingRange;\n(function (FoldingRange) {\n /**\n * Creates a new FoldingRange literal.\n */\n function create(startLine, endLine, startCharacter, endCharacter, kind, collapsedText) {\n const result = {\n startLine,\n endLine\n };\n if (Is.defined(startCharacter)) {\n result.startCharacter = startCharacter;\n }\n if (Is.defined(endCharacter)) {\n result.endCharacter = endCharacter;\n }\n if (Is.defined(kind)) {\n result.kind = kind;\n }\n if (Is.defined(collapsedText)) {\n result.collapsedText = collapsedText;\n }\n return result;\n }\n FoldingRange.create = create;\n /**\n * Checks whether the given literal conforms to the {@link FoldingRange} interface.\n */\n function is(value) {\n const candidate = value;\n return Is.objectLiteral(candidate) && Is.uinteger(candidate.startLine) && Is.uinteger(candidate.startLine)\n && (Is.undefined(candidate.startCharacter) || Is.uinteger(candidate.startCharacter))\n && (Is.undefined(candidate.endCharacter) || Is.uinteger(candidate.endCharacter))\n && (Is.undefined(candidate.kind) || Is.string(candidate.kind));\n }\n FoldingRange.is = is;\n})(FoldingRange || (FoldingRange = {}));\n/**\n * The DiagnosticRelatedInformation namespace provides helper functions to work with\n * {@link DiagnosticRelatedInformation} literals.\n */\nexport var DiagnosticRelatedInformation;\n(function (DiagnosticRelatedInformation) {\n /**\n * Creates a new DiagnosticRelatedInformation literal.\n */\n function create(location, message) {\n return {\n location,\n message\n };\n }\n DiagnosticRelatedInformation.create = create;\n /**\n * Checks whether the given literal conforms to the {@link DiagnosticRelatedInformation} interface.\n */\n function is(value) {\n let candidate = value;\n return Is.defined(candidate) && Location.is(candidate.location) && Is.string(candidate.message);\n }\n DiagnosticRelatedInformation.is = is;\n})(DiagnosticRelatedInformation || (DiagnosticRelatedInformation = {}));\n/**\n * The diagnostic's severity.\n */\nexport var DiagnosticSeverity;\n(function (DiagnosticSeverity) {\n /**\n * Reports an error.\n */\n DiagnosticSeverity.Error = 1;\n /**\n * Reports a warning.\n */\n DiagnosticSeverity.Warning = 2;\n /**\n * Reports an information.\n */\n DiagnosticSeverity.Information = 3;\n /**\n * Reports a hint.\n */\n DiagnosticSeverity.Hint = 4;\n})(DiagnosticSeverity || (DiagnosticSeverity = {}));\n/**\n * The diagnostic tags.\n *\n * @since 3.15.0\n */\nexport var DiagnosticTag;\n(function (DiagnosticTag) {\n /**\n * Unused or unnecessary code.\n *\n * Clients are allowed to render diagnostics with this tag faded out instead of having\n * an error squiggle.\n */\n DiagnosticTag.Unnecessary = 1;\n /**\n * Deprecated or obsolete code.\n *\n * Clients are allowed to rendered diagnostics with this tag strike through.\n */\n DiagnosticTag.Deprecated = 2;\n})(DiagnosticTag || (DiagnosticTag = {}));\n/**\n * The CodeDescription namespace provides functions to deal with descriptions for diagnostic codes.\n *\n * @since 3.16.0\n */\nexport var CodeDescription;\n(function (CodeDescription) {\n function is(value) {\n const candidate = value;\n return Is.objectLiteral(candidate) && Is.string(candidate.href);\n }\n CodeDescription.is = is;\n})(CodeDescription || (CodeDescription = {}));\n/**\n * The Diagnostic namespace provides helper functions to work with\n * {@link Diagnostic} literals.\n */\nexport var Diagnostic;\n(function (Diagnostic) {\n /**\n * Creates a new Diagnostic literal.\n */\n function create(range, message, severity, code, source, relatedInformation) {\n let result = { range, message };\n if (Is.defined(severity)) {\n result.severity = severity;\n }\n if (Is.defined(code)) {\n result.code = code;\n }\n if (Is.defined(source)) {\n result.source = source;\n }\n if (Is.defined(relatedInformation)) {\n result.relatedInformation = relatedInformation;\n }\n return result;\n }\n Diagnostic.create = create;\n /**\n * Checks whether the given literal conforms to the {@link Diagnostic} interface.\n */\n function is(value) {\n var _a;\n let candidate = value;\n return Is.defined(candidate)\n && Range.is(candidate.range)\n && Is.string(candidate.message)\n && (Is.number(candidate.severity) || Is.undefined(candidate.severity))\n && (Is.integer(candidate.code) || Is.string(candidate.code) || Is.undefined(candidate.code))\n && (Is.undefined(candidate.codeDescription) || (Is.string((_a = candidate.codeDescription) === null || _a === void 0 ? void 0 : _a.href)))\n && (Is.string(candidate.source) || Is.undefined(candidate.source))\n && (Is.undefined(candidate.relatedInformation) || Is.typedArray(candidate.relatedInformation, DiagnosticRelatedInformation.is));\n }\n Diagnostic.is = is;\n})(Diagnostic || (Diagnostic = {}));\n/**\n * The Command namespace provides helper functions to work with\n * {@link Command} literals.\n */\nexport var Command;\n(function (Command) {\n /**\n * Creates a new Command literal.\n */\n function create(title, command, ...args) {\n let result = { title, command };\n if (Is.defined(args) && args.length > 0) {\n result.arguments = args;\n }\n return result;\n }\n Command.create = create;\n /**\n * Checks whether the given literal conforms to the {@link Command} interface.\n */\n function is(value) {\n let candidate = value;\n return Is.defined(candidate) && Is.string(candidate.title) && Is.string(candidate.command);\n }\n Command.is = is;\n})(Command || (Command = {}));\n/**\n * The TextEdit namespace provides helper function to create replace,\n * insert and delete edits more easily.\n */\nexport var TextEdit;\n(function (TextEdit) {\n /**\n * Creates a replace text edit.\n * @param range The range of text to be replaced.\n * @param newText The new text.\n */\n function replace(range, newText) {\n return { range, newText };\n }\n TextEdit.replace = replace;\n /**\n * Creates an insert text edit.\n * @param position The position to insert the text at.\n * @param newText The text to be inserted.\n */\n function insert(position, newText) {\n return { range: { start: position, end: position }, newText };\n }\n TextEdit.insert = insert;\n /**\n * Creates a delete text edit.\n * @param range The range of text to be deleted.\n */\n function del(range) {\n return { range, newText: '' };\n }\n TextEdit.del = del;\n function is(value) {\n const candidate = value;\n return Is.objectLiteral(candidate)\n && Is.string(candidate.newText)\n && Range.is(candidate.range);\n }\n TextEdit.is = is;\n})(TextEdit || (TextEdit = {}));\nexport var ChangeAnnotation;\n(function (ChangeAnnotation) {\n function create(label, needsConfirmation, description) {\n const result = { label };\n if (needsConfirmation !== undefined) {\n result.needsConfirmation = needsConfirmation;\n }\n if (description !== undefined) {\n result.description = description;\n }\n return result;\n }\n ChangeAnnotation.create = create;\n function is(value) {\n const candidate = value;\n return Is.objectLiteral(candidate) && Is.string(candidate.label) &&\n (Is.boolean(candidate.needsConfirmation) || candidate.needsConfirmation === undefined) &&\n (Is.string(candidate.description) || candidate.description === undefined);\n }\n ChangeAnnotation.is = is;\n})(ChangeAnnotation || (ChangeAnnotation = {}));\nexport var ChangeAnnotationIdentifier;\n(function (ChangeAnnotationIdentifier) {\n function is(value) {\n const candidate = value;\n return Is.string(candidate);\n }\n ChangeAnnotationIdentifier.is = is;\n})(ChangeAnnotationIdentifier || (ChangeAnnotationIdentifier = {}));\nexport var AnnotatedTextEdit;\n(function (AnnotatedTextEdit) {\n /**\n * Creates an annotated replace text edit.\n *\n * @param range The range of text to be replaced.\n * @param newText The new text.\n * @param annotation The annotation.\n */\n function replace(range, newText, annotation) {\n return { range, newText, annotationId: annotation };\n }\n AnnotatedTextEdit.replace = replace;\n /**\n * Creates an annotated insert text edit.\n *\n * @param position The position to insert the text at.\n * @param newText The text to be inserted.\n * @param annotation The annotation.\n */\n function insert(position, newText, annotation) {\n return { range: { start: position, end: position }, newText, annotationId: annotation };\n }\n AnnotatedTextEdit.insert = insert;\n /**\n * Creates an annotated delete text edit.\n *\n * @param range The range of text to be deleted.\n * @param annotation The annotation.\n */\n function del(range, annotation) {\n return { range, newText: '', annotationId: annotation };\n }\n AnnotatedTextEdit.del = del;\n function is(value) {\n const candidate = value;\n return TextEdit.is(candidate) && (ChangeAnnotation.is(candidate.annotationId) || ChangeAnnotationIdentifier.is(candidate.annotationId));\n }\n AnnotatedTextEdit.is = is;\n})(AnnotatedTextEdit || (AnnotatedTextEdit = {}));\n/**\n * The TextDocumentEdit namespace provides helper function to create\n * an edit that manipulates a text document.\n */\nexport var TextDocumentEdit;\n(function (TextDocumentEdit) {\n /**\n * Creates a new `TextDocumentEdit`\n */\n function create(textDocument, edits) {\n return { textDocument, edits };\n }\n TextDocumentEdit.create = create;\n function is(value) {\n let candidate = value;\n return Is.defined(candidate)\n && OptionalVersionedTextDocumentIdentifier.is(candidate.textDocument)\n && Array.isArray(candidate.edits);\n }\n TextDocumentEdit.is = is;\n})(TextDocumentEdit || (TextDocumentEdit = {}));\nexport var CreateFile;\n(function (CreateFile) {\n function create(uri, options, annotation) {\n let result = {\n kind: 'create',\n uri\n };\n if (options !== undefined && (options.overwrite !== undefined || options.ignoreIfExists !== undefined)) {\n result.options = options;\n }\n if (annotation !== undefined) {\n result.annotationId = annotation;\n }\n return result;\n }\n CreateFile.create = create;\n function is(value) {\n let candidate = value;\n return candidate && candidate.kind === 'create' && Is.string(candidate.uri) && (candidate.options === undefined ||\n ((candidate.options.overwrite === undefined || Is.boolean(candidate.options.overwrite)) && (candidate.options.ignoreIfExists === undefined || Is.boolean(candidate.options.ignoreIfExists)))) && (candidate.annotationId === undefined || ChangeAnnotationIdentifier.is(candidate.annotationId));\n }\n CreateFile.is = is;\n})(CreateFile || (CreateFile = {}));\nexport var RenameFile;\n(function (RenameFile) {\n function create(oldUri, newUri, options, annotation) {\n let result = {\n kind: 'rename',\n oldUri,\n newUri\n };\n if (options !== undefined && (options.overwrite !== undefined || options.ignoreIfExists !== undefined)) {\n result.options = options;\n }\n if (annotation !== undefined) {\n result.annotationId = annotation;\n }\n return result;\n }\n RenameFile.create = create;\n function is(value) {\n let candidate = value;\n return candidate && candidate.kind === 'rename' && Is.string(candidate.oldUri) && Is.string(candidate.newUri) && (candidate.options === undefined ||\n ((candidate.options.overwrite === undefined || Is.boolean(candidate.options.overwrite)) && (candidate.options.ignoreIfExists === undefined || Is.boolean(candidate.options.ignoreIfExists)))) && (candidate.annotationId === undefined || ChangeAnnotationIdentifier.is(candidate.annotationId));\n }\n RenameFile.is = is;\n})(RenameFile || (RenameFile = {}));\nexport var DeleteFile;\n(function (DeleteFile) {\n function create(uri, options, annotation) {\n let result = {\n kind: 'delete',\n uri\n };\n if (options !== undefined && (options.recursive !== undefined || options.ignoreIfNotExists !== undefined)) {\n result.options = options;\n }\n if (annotation !== undefined) {\n result.annotationId = annotation;\n }\n return result;\n }\n DeleteFile.create = create;\n function is(value) {\n let candidate = value;\n return candidate && candidate.kind === 'delete' && Is.string(candidate.uri) && (candidate.options === undefined ||\n ((candidate.options.recursive === undefined || Is.boolean(candidate.options.recursive)) && (candidate.options.ignoreIfNotExists === undefined || Is.boolean(candidate.options.ignoreIfNotExists)))) && (candidate.annotationId === undefined || ChangeAnnotationIdentifier.is(candidate.annotationId));\n }\n DeleteFile.is = is;\n})(DeleteFile || (DeleteFile = {}));\nexport var WorkspaceEdit;\n(function (WorkspaceEdit) {\n function is(value) {\n let candidate = value;\n return candidate &&\n (candidate.changes !== undefined || candidate.documentChanges !== undefined) &&\n (candidate.documentChanges === undefined || candidate.documentChanges.every((change) => {\n if (Is.string(change.kind)) {\n return CreateFile.is(change) || RenameFile.is(change) || DeleteFile.is(change);\n }\n else {\n return TextDocumentEdit.is(change);\n }\n }));\n }\n WorkspaceEdit.is = is;\n})(WorkspaceEdit || (WorkspaceEdit = {}));\nclass TextEditChangeImpl {\n constructor(edits, changeAnnotations) {\n this.edits = edits;\n this.changeAnnotations = changeAnnotations;\n }\n insert(position, newText, annotation) {\n let edit;\n let id;\n if (annotation === undefined) {\n edit = TextEdit.insert(position, newText);\n }\n else if (ChangeAnnotationIdentifier.is(annotation)) {\n id = annotation;\n edit = AnnotatedTextEdit.insert(position, newText, annotation);\n }\n else {\n this.assertChangeAnnotations(this.changeAnnotations);\n id = this.changeAnnotations.manage(annotation);\n edit = AnnotatedTextEdit.insert(position, newText, id);\n }\n this.edits.push(edit);\n if (id !== undefined) {\n return id;\n }\n }\n replace(range, newText, annotation) {\n let edit;\n let id;\n if (annotation === undefined) {\n edit = TextEdit.replace(range, newText);\n }\n else if (ChangeAnnotationIdentifier.is(annotation)) {\n id = annotation;\n edit = AnnotatedTextEdit.replace(range, newText, annotation);\n }\n else {\n this.assertChangeAnnotations(this.changeAnnotations);\n id = this.changeAnnotations.manage(annotation);\n edit = AnnotatedTextEdit.replace(range, newText, id);\n }\n this.edits.push(edit);\n if (id !== undefined) {\n return id;\n }\n }\n delete(range, annotation) {\n let edit;\n let id;\n if (annotation === undefined) {\n edit = TextEdit.del(range);\n }\n else if (ChangeAnnotationIdentifier.is(annotation)) {\n id = annotation;\n edit = AnnotatedTextEdit.del(range, annotation);\n }\n else {\n this.assertChangeAnnotations(this.changeAnnotations);\n id = this.changeAnnotations.manage(annotation);\n edit = AnnotatedTextEdit.del(range, id);\n }\n this.edits.push(edit);\n if (id !== undefined) {\n return id;\n }\n }\n add(edit) {\n this.edits.push(edit);\n }\n all() {\n return this.edits;\n }\n clear() {\n this.edits.splice(0, this.edits.length);\n }\n assertChangeAnnotations(value) {\n if (value === undefined) {\n throw new Error(`Text edit change is not configured to manage change annotations.`);\n }\n }\n}\n/**\n * A helper class\n */\nclass ChangeAnnotations {\n constructor(annotations) {\n this._annotations = annotations === undefined ? Object.create(null) : annotations;\n this._counter = 0;\n this._size = 0;\n }\n all() {\n return this._annotations;\n }\n get size() {\n return this._size;\n }\n manage(idOrAnnotation, annotation) {\n let id;\n if (ChangeAnnotationIdentifier.is(idOrAnnotation)) {\n id = idOrAnnotation;\n }\n else {\n id = this.nextId();\n annotation = idOrAnnotation;\n }\n if (this._annotations[id] !== undefined) {\n throw new Error(`Id ${id} is already in use.`);\n }\n if (annotation === undefined) {\n throw new Error(`No annotation provided for id ${id}`);\n }\n this._annotations[id] = annotation;\n this._size++;\n return id;\n }\n nextId() {\n this._counter++;\n return this._counter.toString();\n }\n}\n/**\n * A workspace change helps constructing changes to a workspace.\n */\nexport class WorkspaceChange {\n constructor(workspaceEdit) {\n this._textEditChanges = Object.create(null);\n if (workspaceEdit !== undefined) {\n this._workspaceEdit = workspaceEdit;\n if (workspaceEdit.documentChanges) {\n this._changeAnnotations = new ChangeAnnotations(workspaceEdit.changeAnnotations);\n workspaceEdit.changeAnnotations = this._changeAnnotations.all();\n workspaceEdit.documentChanges.forEach((change) => {\n if (TextDocumentEdit.is(change)) {\n const textEditChange = new TextEditChangeImpl(change.edits, this._changeAnnotations);\n this._textEditChanges[change.textDocument.uri] = textEditChange;\n }\n });\n }\n else if (workspaceEdit.changes) {\n Object.keys(workspaceEdit.changes).forEach((key) => {\n const textEditChange = new TextEditChangeImpl(workspaceEdit.changes[key]);\n this._textEditChanges[key] = textEditChange;\n });\n }\n }\n else {\n this._workspaceEdit = {};\n }\n }\n /**\n * Returns the underlying {@link WorkspaceEdit} literal\n * use to be returned from a workspace edit operation like rename.\n */\n get edit() {\n this.initDocumentChanges();\n if (this._changeAnnotations !== undefined) {\n if (this._changeAnnotations.size === 0) {\n this._workspaceEdit.changeAnnotations = undefined;\n }\n else {\n this._workspaceEdit.changeAnnotations = this._changeAnnotations.all();\n }\n }\n return this._workspaceEdit;\n }\n getTextEditChange(key) {\n if (OptionalVersionedTextDocumentIdentifier.is(key)) {\n this.initDocumentChanges();\n if (this._workspaceEdit.documentChanges === undefined) {\n throw new Error('Workspace edit is not configured for document changes.');\n }\n const textDocument = { uri: key.uri, version: key.version };\n let result = this._textEditChanges[textDocument.uri];\n if (!result) {\n const edits = [];\n const textDocumentEdit = {\n textDocument,\n edits\n };\n this._workspaceEdit.documentChanges.push(textDocumentEdit);\n result = new TextEditChangeImpl(edits, this._changeAnnotations);\n this._textEditChanges[textDocument.uri] = result;\n }\n return result;\n }\n else {\n this.initChanges();\n if (this._workspaceEdit.changes === undefined) {\n throw new Error('Workspace edit is not configured for normal text edit changes.');\n }\n let result = this._textEditChanges[key];\n if (!result) {\n let edits = [];\n this._workspaceEdit.changes[key] = edits;\n result = new TextEditChangeImpl(edits);\n this._textEditChanges[key] = result;\n }\n return result;\n }\n }\n initDocumentChanges() {\n if (this._workspaceEdit.documentChanges === undefined && this._workspaceEdit.changes === undefined) {\n this._changeAnnotations = new ChangeAnnotations();\n this._workspaceEdit.documentChanges = [];\n this._workspaceEdit.changeAnnotations = this._changeAnnotations.all();\n }\n }\n initChanges() {\n if (this._workspaceEdit.documentChanges === undefined && this._workspaceEdit.changes === undefined) {\n this._workspaceEdit.changes = Object.create(null);\n }\n }\n createFile(uri, optionsOrAnnotation, options) {\n this.initDocumentChanges();\n if (this._workspaceEdit.documentChanges === undefined) {\n throw new Error('Workspace edit is not configured for document changes.');\n }\n let annotation;\n if (ChangeAnnotation.is(optionsOrAnnotation) || ChangeAnnotationIdentifier.is(optionsOrAnnotation)) {\n annotation = optionsOrAnnotation;\n }\n else {\n options = optionsOrAnnotation;\n }\n let operation;\n let id;\n if (annotation === undefined) {\n operation = CreateFile.create(uri, options);\n }\n else {\n id = ChangeAnnotationIdentifier.is(annotation) ? annotation : this._changeAnnotations.manage(annotation);\n operation = CreateFile.create(uri, options, id);\n }\n this._workspaceEdit.documentChanges.push(operation);\n if (id !== undefined) {\n return id;\n }\n }\n renameFile(oldUri, newUri, optionsOrAnnotation, options) {\n this.initDocumentChanges();\n if (this._workspaceEdit.documentChanges === undefined) {\n throw new Error('Workspace edit is not configured for document changes.');\n }\n let annotation;\n if (ChangeAnnotation.is(optionsOrAnnotation) || ChangeAnnotationIdentifier.is(optionsOrAnnotation)) {\n annotation = optionsOrAnnotation;\n }\n else {\n options = optionsOrAnnotation;\n }\n let operation;\n let id;\n if (annotation === undefined) {\n operation = RenameFile.create(oldUri, newUri, options);\n }\n else {\n id = ChangeAnnotationIdentifier.is(annotation) ? annotation : this._changeAnnotations.manage(annotation);\n operation = RenameFile.create(oldUri, newUri, options, id);\n }\n this._workspaceEdit.documentChanges.push(operation);\n if (id !== undefined) {\n return id;\n }\n }\n deleteFile(uri, optionsOrAnnotation, options) {\n this.initDocumentChanges();\n if (this._workspaceEdit.documentChanges === undefined) {\n throw new Error('Workspace edit is not configured for document changes.');\n }\n let annotation;\n if (ChangeAnnotation.is(optionsOrAnnotation) || ChangeAnnotationIdentifier.is(optionsOrAnnotation)) {\n annotation = optionsOrAnnotation;\n }\n else {\n options = optionsOrAnnotation;\n }\n let operation;\n let id;\n if (annotation === undefined) {\n operation = DeleteFile.create(uri, options);\n }\n else {\n id = ChangeAnnotationIdentifier.is(annotation) ? annotation : this._changeAnnotations.manage(annotation);\n operation = DeleteFile.create(uri, options, id);\n }\n this._workspaceEdit.documentChanges.push(operation);\n if (id !== undefined) {\n return id;\n }\n }\n}\n/**\n * The TextDocumentIdentifier namespace provides helper functions to work with\n * {@link TextDocumentIdentifier} literals.\n */\nexport var TextDocumentIdentifier;\n(function (TextDocumentIdentifier) {\n /**\n * Creates a new TextDocumentIdentifier literal.\n * @param uri The document's uri.\n */\n function create(uri) {\n return { uri };\n }\n TextDocumentIdentifier.create = create;\n /**\n * Checks whether the given literal conforms to the {@link TextDocumentIdentifier} interface.\n */\n function is(value) {\n let candidate = value;\n return Is.defined(candidate) && Is.string(candidate.uri);\n }\n TextDocumentIdentifier.is = is;\n})(TextDocumentIdentifier || (TextDocumentIdentifier = {}));\n/**\n * The VersionedTextDocumentIdentifier namespace provides helper functions to work with\n * {@link VersionedTextDocumentIdentifier} literals.\n */\nexport var VersionedTextDocumentIdentifier;\n(function (VersionedTextDocumentIdentifier) {\n /**\n * Creates a new VersionedTextDocumentIdentifier literal.\n * @param uri The document's uri.\n * @param version The document's version.\n */\n function create(uri, version) {\n return { uri, version };\n }\n VersionedTextDocumentIdentifier.create = create;\n /**\n * Checks whether the given literal conforms to the {@link VersionedTextDocumentIdentifier} interface.\n */\n function is(value) {\n let candidate = value;\n return Is.defined(candidate) && Is.string(candidate.uri) && Is.integer(candidate.version);\n }\n VersionedTextDocumentIdentifier.is = is;\n})(VersionedTextDocumentIdentifier || (VersionedTextDocumentIdentifier = {}));\n/**\n * The OptionalVersionedTextDocumentIdentifier namespace provides helper functions to work with\n * {@link OptionalVersionedTextDocumentIdentifier} literals.\n */\nexport var OptionalVersionedTextDocumentIdentifier;\n(function (OptionalVersionedTextDocumentIdentifier) {\n /**\n * Creates a new OptionalVersionedTextDocumentIdentifier literal.\n * @param uri The document's uri.\n * @param version The document's version.\n */\n function create(uri, version) {\n return { uri, version };\n }\n OptionalVersionedTextDocumentIdentifier.create = create;\n /**\n * Checks whether the given literal conforms to the {@link OptionalVersionedTextDocumentIdentifier} interface.\n */\n function is(value) {\n let candidate = value;\n return Is.defined(candidate) && Is.string(candidate.uri) && (candidate.version === null || Is.integer(candidate.version));\n }\n OptionalVersionedTextDocumentIdentifier.is = is;\n})(OptionalVersionedTextDocumentIdentifier || (OptionalVersionedTextDocumentIdentifier = {}));\n/**\n * The TextDocumentItem namespace provides helper functions to work with\n * {@link TextDocumentItem} literals.\n */\nexport var TextDocumentItem;\n(function (TextDocumentItem) {\n /**\n * Creates a new TextDocumentItem literal.\n * @param uri The document's uri.\n * @param languageId The document's language identifier.\n * @param version The document's version number.\n * @param text The document's text.\n */\n function create(uri, languageId, version, text) {\n return { uri, languageId, version, text };\n }\n TextDocumentItem.create = create;\n /**\n * Checks whether the given literal conforms to the {@link TextDocumentItem} interface.\n */\n function is(value) {\n let candidate = value;\n return Is.defined(candidate) && Is.string(candidate.uri) && Is.string(candidate.languageId) && Is.integer(candidate.version) && Is.string(candidate.text);\n }\n TextDocumentItem.is = is;\n})(TextDocumentItem || (TextDocumentItem = {}));\n/**\n * Describes the content type that a client supports in various\n * result literals like `Hover`, `ParameterInfo` or `CompletionItem`.\n *\n * Please note that `MarkupKinds` must not start with a `$`. This kinds\n * are reserved for internal usage.\n */\nexport var MarkupKind;\n(function (MarkupKind) {\n /**\n * Plain text is supported as a content format\n */\n MarkupKind.PlainText = 'plaintext';\n /**\n * Markdown is supported as a content format\n */\n MarkupKind.Markdown = 'markdown';\n /**\n * Checks whether the given value is a value of the {@link MarkupKind} type.\n */\n function is(value) {\n const candidate = value;\n return candidate === MarkupKind.PlainText || candidate === MarkupKind.Markdown;\n }\n MarkupKind.is = is;\n})(MarkupKind || (MarkupKind = {}));\nexport var MarkupContent;\n(function (MarkupContent) {\n /**\n * Checks whether the given value conforms to the {@link MarkupContent} interface.\n */\n function is(value) {\n const candidate = value;\n return Is.objectLiteral(value) && MarkupKind.is(candidate.kind) && Is.string(candidate.value);\n }\n MarkupContent.is = is;\n})(MarkupContent || (MarkupContent = {}));\n/**\n * The kind of a completion entry.\n */\nexport var CompletionItemKind;\n(function (CompletionItemKind) {\n CompletionItemKind.Text = 1;\n CompletionItemKind.Method = 2;\n CompletionItemKind.Function = 3;\n CompletionItemKind.Constructor = 4;\n CompletionItemKind.Field = 5;\n CompletionItemKind.Variable = 6;\n CompletionItemKind.Class = 7;\n CompletionItemKind.Interface = 8;\n CompletionItemKind.Module = 9;\n CompletionItemKind.Property = 10;\n CompletionItemKind.Unit = 11;\n CompletionItemKind.Value = 12;\n CompletionItemKind.Enum = 13;\n CompletionItemKind.Keyword = 14;\n CompletionItemKind.Snippet = 15;\n CompletionItemKind.Color = 16;\n CompletionItemKind.File = 17;\n CompletionItemKind.Reference = 18;\n CompletionItemKind.Folder = 19;\n CompletionItemKind.EnumMember = 20;\n CompletionItemKind.Constant = 21;\n CompletionItemKind.Struct = 22;\n CompletionItemKind.Event = 23;\n CompletionItemKind.Operator = 24;\n CompletionItemKind.TypeParameter = 25;\n})(CompletionItemKind || (CompletionItemKind = {}));\n/**\n * Defines whether the insert text in a completion item should be interpreted as\n * plain text or a snippet.\n */\nexport var InsertTextFormat;\n(function (InsertTextFormat) {\n /**\n * The primary text to be inserted is treated as a plain string.\n */\n InsertTextFormat.PlainText = 1;\n /**\n * The primary text to be inserted is treated as a snippet.\n *\n * A snippet can define tab stops and placeholders with `$1`, `$2`\n * and `${3:foo}`. `$0` defines the final tab stop, it defaults to\n * the end of the snippet. Placeholders with equal identifiers are linked,\n * that is typing in one will update others too.\n *\n * See also: https://microsoft.github.io/language-server-protocol/specifications/specification-current/#snippet_syntax\n */\n InsertTextFormat.Snippet = 2;\n})(InsertTextFormat || (InsertTextFormat = {}));\n/**\n * Completion item tags are extra annotations that tweak the rendering of a completion\n * item.\n *\n * @since 3.15.0\n */\nexport var CompletionItemTag;\n(function (CompletionItemTag) {\n /**\n * Render a completion as obsolete, usually using a strike-out.\n */\n CompletionItemTag.Deprecated = 1;\n})(CompletionItemTag || (CompletionItemTag = {}));\n/**\n * The InsertReplaceEdit namespace provides functions to deal with insert / replace edits.\n *\n * @since 3.16.0\n */\nexport var InsertReplaceEdit;\n(function (InsertReplaceEdit) {\n /**\n * Creates a new insert / replace edit\n */\n function create(newText, insert, replace) {\n return { newText, insert, replace };\n }\n InsertReplaceEdit.create = create;\n /**\n * Checks whether the given literal conforms to the {@link InsertReplaceEdit} interface.\n */\n function is(value) {\n const candidate = value;\n return candidate && Is.string(candidate.newText) && Range.is(candidate.insert) && Range.is(candidate.replace);\n }\n InsertReplaceEdit.is = is;\n})(InsertReplaceEdit || (InsertReplaceEdit = {}));\n/**\n * How whitespace and indentation is handled during completion\n * item insertion.\n *\n * @since 3.16.0\n */\nexport var InsertTextMode;\n(function (InsertTextMode) {\n /**\n * The insertion or replace strings is taken as it is. If the\n * value is multi line the lines below the cursor will be\n * inserted using the indentation defined in the string value.\n * The client will not apply any kind of adjustments to the\n * string.\n */\n InsertTextMode.asIs = 1;\n /**\n * The editor adjusts leading whitespace of new lines so that\n * they match the indentation up to the cursor of the line for\n * which the item is accepted.\n *\n * Consider a line like this: <2tabs><3tabs>foo. Accepting a\n * multi line completion item is indented using 2 tabs and all\n * following lines inserted will be indented using 2 tabs as well.\n */\n InsertTextMode.adjustIndentation = 2;\n})(InsertTextMode || (InsertTextMode = {}));\nexport var CompletionItemLabelDetails;\n(function (CompletionItemLabelDetails) {\n function is(value) {\n const candidate = value;\n return candidate && (Is.string(candidate.detail) || candidate.detail === undefined) &&\n (Is.string(candidate.description) || candidate.description === undefined);\n }\n CompletionItemLabelDetails.is = is;\n})(CompletionItemLabelDetails || (CompletionItemLabelDetails = {}));\n/**\n * The CompletionItem namespace provides functions to deal with\n * completion items.\n */\nexport var CompletionItem;\n(function (CompletionItem) {\n /**\n * Create a completion item and seed it with a label.\n * @param label The completion item's label\n */\n function create(label) {\n return { label };\n }\n CompletionItem.create = create;\n})(CompletionItem || (CompletionItem = {}));\n/**\n * The CompletionList namespace provides functions to deal with\n * completion lists.\n */\nexport var CompletionList;\n(function (CompletionList) {\n /**\n * Creates a new completion list.\n *\n * @param items The completion items.\n * @param isIncomplete The list is not complete.\n */\n function create(items, isIncomplete) {\n return { items: items ? items : [], isIncomplete: !!isIncomplete };\n }\n CompletionList.create = create;\n})(CompletionList || (CompletionList = {}));\nexport var MarkedString;\n(function (MarkedString) {\n /**\n * Creates a marked string from plain text.\n *\n * @param plainText The plain text.\n */\n function fromPlainText(plainText) {\n return plainText.replace(/[\\\\`*_{}[\\]()#+\\-.!]/g, '\\\\$&'); // escape markdown syntax tokens: http://daringfireball.net/projects/markdown/syntax#backslash\n }\n MarkedString.fromPlainText = fromPlainText;\n /**\n * Checks whether the given value conforms to the {@link MarkedString} type.\n */\n function is(value) {\n const candidate = value;\n return Is.string(candidate) || (Is.objectLiteral(candidate) && Is.string(candidate.language) && Is.string(candidate.value));\n }\n MarkedString.is = is;\n})(MarkedString || (MarkedString = {}));\nexport var Hover;\n(function (Hover) {\n /**\n * Checks whether the given value conforms to the {@link Hover} interface.\n */\n function is(value) {\n let candidate = value;\n return !!candidate && Is.objectLiteral(candidate) && (MarkupContent.is(candidate.contents) ||\n MarkedString.is(candidate.contents) ||\n Is.typedArray(candidate.contents, MarkedString.is)) && (value.range === undefined || Range.is(value.range));\n }\n Hover.is = is;\n})(Hover || (Hover = {}));\n/**\n * The ParameterInformation namespace provides helper functions to work with\n * {@link ParameterInformation} literals.\n */\nexport var ParameterInformation;\n(function (ParameterInformation) {\n /**\n * Creates a new parameter information literal.\n *\n * @param label A label string.\n * @param documentation A doc string.\n */\n function create(label, documentation) {\n return documentation ? { label, documentation } : { label };\n }\n ParameterInformation.create = create;\n})(ParameterInformation || (ParameterInformation = {}));\n/**\n * The SignatureInformation namespace provides helper functions to work with\n * {@link SignatureInformation} literals.\n */\nexport var SignatureInformation;\n(function (SignatureInformation) {\n function create(label, documentation, ...parameters) {\n let result = { label };\n if (Is.defined(documentation)) {\n result.documentation = documentation;\n }\n if (Is.defined(parameters)) {\n result.parameters = parameters;\n }\n else {\n result.parameters = [];\n }\n return result;\n }\n SignatureInformation.create = create;\n})(SignatureInformation || (SignatureInformation = {}));\n/**\n * A document highlight kind.\n */\nexport var DocumentHighlightKind;\n(function (DocumentHighlightKind) {\n /**\n * A textual occurrence.\n */\n DocumentHighlightKind.Text = 1;\n /**\n * Read-access of a symbol, like reading a variable.\n */\n DocumentHighlightKind.Read = 2;\n /**\n * Write-access of a symbol, like writing to a variable.\n */\n DocumentHighlightKind.Write = 3;\n})(DocumentHighlightKind || (DocumentHighlightKind = {}));\n/**\n * DocumentHighlight namespace to provide helper functions to work with\n * {@link DocumentHighlight} literals.\n */\nexport var DocumentHighlight;\n(function (DocumentHighlight) {\n /**\n * Create a DocumentHighlight object.\n * @param range The range the highlight applies to.\n * @param kind The highlight kind\n */\n function create(range, kind) {\n let result = { range };\n if (Is.number(kind)) {\n result.kind = kind;\n }\n return result;\n }\n DocumentHighlight.create = create;\n})(DocumentHighlight || (DocumentHighlight = {}));\n/**\n * A symbol kind.\n */\nexport var SymbolKind;\n(function (SymbolKind) {\n SymbolKind.File = 1;\n SymbolKind.Module = 2;\n SymbolKind.Namespace = 3;\n SymbolKind.Package = 4;\n SymbolKind.Class = 5;\n SymbolKind.Method = 6;\n SymbolKind.Property = 7;\n SymbolKind.Field = 8;\n SymbolKind.Constructor = 9;\n SymbolKind.Enum = 10;\n SymbolKind.Interface = 11;\n SymbolKind.Function = 12;\n SymbolKind.Variable = 13;\n SymbolKind.Constant = 14;\n SymbolKind.String = 15;\n SymbolKind.Number = 16;\n SymbolKind.Boolean = 17;\n SymbolKind.Array = 18;\n SymbolKind.Object = 19;\n SymbolKind.Key = 20;\n SymbolKind.Null = 21;\n SymbolKind.EnumMember = 22;\n SymbolKind.Struct = 23;\n SymbolKind.Event = 24;\n SymbolKind.Operator = 25;\n SymbolKind.TypeParameter = 26;\n})(SymbolKind || (SymbolKind = {}));\n/**\n * Symbol tags are extra annotations that tweak the rendering of a symbol.\n *\n * @since 3.16\n */\nexport var SymbolTag;\n(function (SymbolTag) {\n /**\n * Render a symbol as obsolete, usually using a strike-out.\n */\n SymbolTag.Deprecated = 1;\n})(SymbolTag || (SymbolTag = {}));\nexport var SymbolInformation;\n(function (SymbolInformation) {\n /**\n * Creates a new symbol information literal.\n *\n * @param name The name of the symbol.\n * @param kind The kind of the symbol.\n * @param range The range of the location of the symbol.\n * @param uri The resource of the location of symbol.\n * @param containerName The name of the symbol containing the symbol.\n */\n function create(name, kind, range, uri, containerName) {\n let result = {\n name,\n kind,\n location: { uri, range }\n };\n if (containerName) {\n result.containerName = containerName;\n }\n return result;\n }\n SymbolInformation.create = create;\n})(SymbolInformation || (SymbolInformation = {}));\nexport var WorkspaceSymbol;\n(function (WorkspaceSymbol) {\n /**\n * Create a new workspace symbol.\n *\n * @param name The name of the symbol.\n * @param kind The kind of the symbol.\n * @param uri The resource of the location of the symbol.\n * @param range An options range of the location.\n * @returns A WorkspaceSymbol.\n */\n function create(name, kind, uri, range) {\n return range !== undefined\n ? { name, kind, location: { uri, range } }\n : { name, kind, location: { uri } };\n }\n WorkspaceSymbol.create = create;\n})(WorkspaceSymbol || (WorkspaceSymbol = {}));\nexport var DocumentSymbol;\n(function (DocumentSymbol) {\n /**\n * Creates a new symbol information literal.\n *\n * @param name The name of the symbol.\n * @param detail The detail of the symbol.\n * @param kind The kind of the symbol.\n * @param range The range of the symbol.\n * @param selectionRange The selectionRange of the symbol.\n * @param children Children of the symbol.\n */\n function create(name, detail, kind, range, selectionRange, children) {\n let result = {\n name,\n detail,\n kind,\n range,\n selectionRange\n };\n if (children !== undefined) {\n result.children = children;\n }\n return result;\n }\n DocumentSymbol.create = create;\n /**\n * Checks whether the given literal conforms to the {@link DocumentSymbol} interface.\n */\n function is(value) {\n let candidate = value;\n return candidate &&\n Is.string(candidate.name) && Is.number(candidate.kind) &&\n Range.is(candidate.range) && Range.is(candidate.selectionRange) &&\n (candidate.detail === undefined || Is.string(candidate.detail)) &&\n (candidate.deprecated === undefined || Is.boolean(candidate.deprecated)) &&\n (candidate.children === undefined || Array.isArray(candidate.children)) &&\n (candidate.tags === undefined || Array.isArray(candidate.tags));\n }\n DocumentSymbol.is = is;\n})(DocumentSymbol || (DocumentSymbol = {}));\n/**\n * A set of predefined code action kinds\n */\nexport var CodeActionKind;\n(function (CodeActionKind) {\n /**\n * Empty kind.\n */\n CodeActionKind.Empty = '';\n /**\n * Base kind for quickfix actions: 'quickfix'\n */\n CodeActionKind.QuickFix = 'quickfix';\n /**\n * Base kind for refactoring actions: 'refactor'\n */\n CodeActionKind.Refactor = 'refactor';\n /**\n * Base kind for refactoring extraction actions: 'refactor.extract'\n *\n * Example extract actions:\n *\n * - Extract method\n * - Extract function\n * - Extract variable\n * - Extract interface from class\n * - ...\n */\n CodeActionKind.RefactorExtract = 'refactor.extract';\n /**\n * Base kind for refactoring inline actions: 'refactor.inline'\n *\n * Example inline actions:\n *\n * - Inline function\n * - Inline variable\n * - Inline constant\n * - ...\n */\n CodeActionKind.RefactorInline = 'refactor.inline';\n /**\n * Base kind for refactoring rewrite actions: 'refactor.rewrite'\n *\n * Example rewrite actions:\n *\n * - Convert JavaScript function to class\n * - Add or remove parameter\n * - Encapsulate field\n * - Make method static\n * - Move method to base class\n * - ...\n */\n CodeActionKind.RefactorRewrite = 'refactor.rewrite';\n /**\n * Base kind for source actions: `source`\n *\n * Source code actions apply to the entire file.\n */\n CodeActionKind.Source = 'source';\n /**\n * Base kind for an organize imports source action: `source.organizeImports`\n */\n CodeActionKind.SourceOrganizeImports = 'source.organizeImports';\n /**\n * Base kind for auto-fix source actions: `source.fixAll`.\n *\n * Fix all actions automatically fix errors that have a clear fix that do not require user input.\n * They should not suppress errors or perform unsafe fixes such as generating new types or classes.\n *\n * @since 3.15.0\n */\n CodeActionKind.SourceFixAll = 'source.fixAll';\n})(CodeActionKind || (CodeActionKind = {}));\n/**\n * The reason why code actions were requested.\n *\n * @since 3.17.0\n */\nexport var CodeActionTriggerKind;\n(function (CodeActionTriggerKind) {\n /**\n * Code actions were explicitly requested by the user or by an extension.\n */\n CodeActionTriggerKind.Invoked = 1;\n /**\n * Code actions were requested automatically.\n *\n * This typically happens when current selection in a file changes, but can\n * also be triggered when file content changes.\n */\n CodeActionTriggerKind.Automatic = 2;\n})(CodeActionTriggerKind || (CodeActionTriggerKind = {}));\n/**\n * The CodeActionContext namespace provides helper functions to work with\n * {@link CodeActionContext} literals.\n */\nexport var CodeActionContext;\n(function (CodeActionContext) {\n /**\n * Creates a new CodeActionContext literal.\n */\n function create(diagnostics, only, triggerKind) {\n let result = { diagnostics };\n if (only !== undefined && only !== null) {\n result.only = only;\n }\n if (triggerKind !== undefined && triggerKind !== null) {\n result.triggerKind = triggerKind;\n }\n return result;\n }\n CodeActionContext.create = create;\n /**\n * Checks whether the given literal conforms to the {@link CodeActionContext} interface.\n */\n function is(value) {\n let candidate = value;\n return Is.defined(candidate) && Is.typedArray(candidate.diagnostics, Diagnostic.is)\n && (candidate.only === undefined || Is.typedArray(candidate.only, Is.string))\n && (candidate.triggerKind === undefined || candidate.triggerKind === CodeActionTriggerKind.Invoked || candidate.triggerKind === CodeActionTriggerKind.Automatic);\n }\n CodeActionContext.is = is;\n})(CodeActionContext || (CodeActionContext = {}));\nexport var CodeAction;\n(function (CodeAction) {\n function create(title, kindOrCommandOrEdit, kind) {\n let result = { title };\n let checkKind = true;\n if (typeof kindOrCommandOrEdit === 'string') {\n checkKind = false;\n result.kind = kindOrCommandOrEdit;\n }\n else if (Command.is(kindOrCommandOrEdit)) {\n result.command = kindOrCommandOrEdit;\n }\n else {\n result.edit = kindOrCommandOrEdit;\n }\n if (checkKind && kind !== undefined) {\n result.kind = kind;\n }\n return result;\n }\n CodeAction.create = create;\n function is(value) {\n let candidate = value;\n return candidate && Is.string(candidate.title) &&\n (candidate.diagnostics === undefined || Is.typedArray(candidate.diagnostics, Diagnostic.is)) &&\n (candidate.kind === undefined || Is.string(candidate.kind)) &&\n (candidate.edit !== undefined || candidate.command !== undefined) &&\n (candidate.command === undefined || Command.is(candidate.command)) &&\n (candidate.isPreferred === undefined || Is.boolean(candidate.isPreferred)) &&\n (candidate.edit === undefined || WorkspaceEdit.is(candidate.edit));\n }\n CodeAction.is = is;\n})(CodeAction || (CodeAction = {}));\n/**\n * The CodeLens namespace provides helper functions to work with\n * {@link CodeLens} literals.\n */\nexport var CodeLens;\n(function (CodeLens) {\n /**\n * Creates a new CodeLens literal.\n */\n function create(range, data) {\n let result = { range };\n if (Is.defined(data)) {\n result.data = data;\n }\n return result;\n }\n CodeLens.create = create;\n /**\n * Checks whether the given literal conforms to the {@link CodeLens} interface.\n */\n function is(value) {\n let candidate = value;\n return Is.defined(candidate) && Range.is(candidate.range) && (Is.undefined(candidate.command) || Command.is(candidate.command));\n }\n CodeLens.is = is;\n})(CodeLens || (CodeLens = {}));\n/**\n * The FormattingOptions namespace provides helper functions to work with\n * {@link FormattingOptions} literals.\n */\nexport var FormattingOptions;\n(function (FormattingOptions) {\n /**\n * Creates a new FormattingOptions literal.\n */\n function create(tabSize, insertSpaces) {\n return { tabSize, insertSpaces };\n }\n FormattingOptions.create = create;\n /**\n * Checks whether the given literal conforms to the {@link FormattingOptions} interface.\n */\n function is(value) {\n let candidate = value;\n return Is.defined(candidate) && Is.uinteger(candidate.tabSize) && Is.boolean(candidate.insertSpaces);\n }\n FormattingOptions.is = is;\n})(FormattingOptions || (FormattingOptions = {}));\n/**\n * The DocumentLink namespace provides helper functions to work with\n * {@link DocumentLink} literals.\n */\nexport var DocumentLink;\n(function (DocumentLink) {\n /**\n * Creates a new DocumentLink literal.\n */\n function create(range, target, data) {\n return { range, target, data };\n }\n DocumentLink.create = create;\n /**\n * Checks whether the given literal conforms to the {@link DocumentLink} interface.\n */\n function is(value) {\n let candidate = value;\n return Is.defined(candidate) && Range.is(candidate.range) && (Is.undefined(candidate.target) || Is.string(candidate.target));\n }\n DocumentLink.is = is;\n})(DocumentLink || (DocumentLink = {}));\n/**\n * The SelectionRange namespace provides helper function to work with\n * SelectionRange literals.\n */\nexport var SelectionRange;\n(function (SelectionRange) {\n /**\n * Creates a new SelectionRange\n * @param range the range.\n * @param parent an optional parent.\n */\n function create(range, parent) {\n return { range, parent };\n }\n SelectionRange.create = create;\n function is(value) {\n let candidate = value;\n return Is.objectLiteral(candidate) && Range.is(candidate.range) && (candidate.parent === undefined || SelectionRange.is(candidate.parent));\n }\n SelectionRange.is = is;\n})(SelectionRange || (SelectionRange = {}));\n/**\n * A set of predefined token types. This set is not fixed\n * an clients can specify additional token types via the\n * corresponding client capabilities.\n *\n * @since 3.16.0\n */\nexport var SemanticTokenTypes;\n(function (SemanticTokenTypes) {\n SemanticTokenTypes[\"namespace\"] = \"namespace\";\n /**\n * Represents a generic type. Acts as a fallback for types which can't be mapped to\n * a specific type like class or enum.\n */\n SemanticTokenTypes[\"type\"] = \"type\";\n SemanticTokenTypes[\"class\"] = \"class\";\n SemanticTokenTypes[\"enum\"] = \"enum\";\n SemanticTokenTypes[\"interface\"] = \"interface\";\n SemanticTokenTypes[\"struct\"] = \"struct\";\n SemanticTokenTypes[\"typeParameter\"] = \"typeParameter\";\n SemanticTokenTypes[\"parameter\"] = \"parameter\";\n SemanticTokenTypes[\"variable\"] = \"variable\";\n SemanticTokenTypes[\"property\"] = \"property\";\n SemanticTokenTypes[\"enumMember\"] = \"enumMember\";\n SemanticTokenTypes[\"event\"] = \"event\";\n SemanticTokenTypes[\"function\"] = \"function\";\n SemanticTokenTypes[\"method\"] = \"method\";\n SemanticTokenTypes[\"macro\"] = \"macro\";\n SemanticTokenTypes[\"keyword\"] = \"keyword\";\n SemanticTokenTypes[\"modifier\"] = \"modifier\";\n SemanticTokenTypes[\"comment\"] = \"comment\";\n SemanticTokenTypes[\"string\"] = \"string\";\n SemanticTokenTypes[\"number\"] = \"number\";\n SemanticTokenTypes[\"regexp\"] = \"regexp\";\n SemanticTokenTypes[\"operator\"] = \"operator\";\n /**\n * @since 3.17.0\n */\n SemanticTokenTypes[\"decorator\"] = \"decorator\";\n})(SemanticTokenTypes || (SemanticTokenTypes = {}));\n/**\n * A set of predefined token modifiers. This set is not fixed\n * an clients can specify additional token types via the\n * corresponding client capabilities.\n *\n * @since 3.16.0\n */\nexport var SemanticTokenModifiers;\n(function (SemanticTokenModifiers) {\n SemanticTokenModifiers[\"declaration\"] = \"declaration\";\n SemanticTokenModifiers[\"definition\"] = \"definition\";\n SemanticTokenModifiers[\"readonly\"] = \"readonly\";\n SemanticTokenModifiers[\"static\"] = \"static\";\n SemanticTokenModifiers[\"deprecated\"] = \"deprecated\";\n SemanticTokenModifiers[\"abstract\"] = \"abstract\";\n SemanticTokenModifiers[\"async\"] = \"async\";\n SemanticTokenModifiers[\"modification\"] = \"modification\";\n SemanticTokenModifiers[\"documentation\"] = \"documentation\";\n SemanticTokenModifiers[\"defaultLibrary\"] = \"defaultLibrary\";\n})(SemanticTokenModifiers || (SemanticTokenModifiers = {}));\n/**\n * @since 3.16.0\n */\nexport var SemanticTokens;\n(function (SemanticTokens) {\n function is(value) {\n const candidate = value;\n return Is.objectLiteral(candidate) && (candidate.resultId === undefined || typeof candidate.resultId === 'string') &&\n Array.isArray(candidate.data) && (candidate.data.length === 0 || typeof candidate.data[0] === 'number');\n }\n SemanticTokens.is = is;\n})(SemanticTokens || (SemanticTokens = {}));\n/**\n * The InlineValueText namespace provides functions to deal with InlineValueTexts.\n *\n * @since 3.17.0\n */\nexport var InlineValueText;\n(function (InlineValueText) {\n /**\n * Creates a new InlineValueText literal.\n */\n function create(range, text) {\n return { range, text };\n }\n InlineValueText.create = create;\n function is(value) {\n const candidate = value;\n return candidate !== undefined && candidate !== null && Range.is(candidate.range) && Is.string(candidate.text);\n }\n InlineValueText.is = is;\n})(InlineValueText || (InlineValueText = {}));\n/**\n * The InlineValueVariableLookup namespace provides functions to deal with InlineValueVariableLookups.\n *\n * @since 3.17.0\n */\nexport var InlineValueVariableLookup;\n(function (InlineValueVariableLookup) {\n /**\n * Creates a new InlineValueText literal.\n */\n function create(range, variableName, caseSensitiveLookup) {\n return { range, variableName, caseSensitiveLookup };\n }\n InlineValueVariableLookup.create = create;\n function is(value) {\n const candidate = value;\n return candidate !== undefined && candidate !== null && Range.is(candidate.range) && Is.boolean(candidate.caseSensitiveLookup)\n && (Is.string(candidate.variableName) || candidate.variableName === undefined);\n }\n InlineValueVariableLookup.is = is;\n})(InlineValueVariableLookup || (InlineValueVariableLookup = {}));\n/**\n * The InlineValueEvaluatableExpression namespace provides functions to deal with InlineValueEvaluatableExpression.\n *\n * @since 3.17.0\n */\nexport var InlineValueEvaluatableExpression;\n(function (InlineValueEvaluatableExpression) {\n /**\n * Creates a new InlineValueEvaluatableExpression literal.\n */\n function create(range, expression) {\n return { range, expression };\n }\n InlineValueEvaluatableExpression.create = create;\n function is(value) {\n const candidate = value;\n return candidate !== undefined && candidate !== null && Range.is(candidate.range)\n && (Is.string(candidate.expression) || candidate.expression === undefined);\n }\n InlineValueEvaluatableExpression.is = is;\n})(InlineValueEvaluatableExpression || (InlineValueEvaluatableExpression = {}));\n/**\n * The InlineValueContext namespace provides helper functions to work with\n * {@link InlineValueContext} literals.\n *\n * @since 3.17.0\n */\nexport var InlineValueContext;\n(function (InlineValueContext) {\n /**\n * Creates a new InlineValueContext literal.\n */\n function create(frameId, stoppedLocation) {\n return { frameId, stoppedLocation };\n }\n InlineValueContext.create = create;\n /**\n * Checks whether the given literal conforms to the {@link InlineValueContext} interface.\n */\n function is(value) {\n const candidate = value;\n return Is.defined(candidate) && Range.is(value.stoppedLocation);\n }\n InlineValueContext.is = is;\n})(InlineValueContext || (InlineValueContext = {}));\n/**\n * Inlay hint kinds.\n *\n * @since 3.17.0\n */\nexport var InlayHintKind;\n(function (InlayHintKind) {\n /**\n * An inlay hint that for a type annotation.\n */\n InlayHintKind.Type = 1;\n /**\n * An inlay hint that is for a parameter.\n */\n InlayHintKind.Parameter = 2;\n function is(value) {\n return value === 1 || value === 2;\n }\n InlayHintKind.is = is;\n})(InlayHintKind || (InlayHintKind = {}));\nexport var InlayHintLabelPart;\n(function (InlayHintLabelPart) {\n function create(value) {\n return { value };\n }\n InlayHintLabelPart.create = create;\n function is(value) {\n const candidate = value;\n return Is.objectLiteral(candidate)\n && (candidate.tooltip === undefined || Is.string(candidate.tooltip) || MarkupContent.is(candidate.tooltip))\n && (candidate.location === undefined || Location.is(candidate.location))\n && (candidate.command === undefined || Command.is(candidate.command));\n }\n InlayHintLabelPart.is = is;\n})(InlayHintLabelPart || (InlayHintLabelPart = {}));\nexport var InlayHint;\n(function (InlayHint) {\n function create(position, label, kind) {\n const result = { position, label };\n if (kind !== undefined) {\n result.kind = kind;\n }\n return result;\n }\n InlayHint.create = create;\n function is(value) {\n const candidate = value;\n return Is.objectLiteral(candidate) && Position.is(candidate.position)\n && (Is.string(candidate.label) || Is.typedArray(candidate.label, InlayHintLabelPart.is))\n && (candidate.kind === undefined || InlayHintKind.is(candidate.kind))\n && (candidate.textEdits === undefined) || Is.typedArray(candidate.textEdits, TextEdit.is)\n && (candidate.tooltip === undefined || Is.string(candidate.tooltip) || MarkupContent.is(candidate.tooltip))\n && (candidate.paddingLeft === undefined || Is.boolean(candidate.paddingLeft))\n && (candidate.paddingRight === undefined || Is.boolean(candidate.paddingRight));\n }\n InlayHint.is = is;\n})(InlayHint || (InlayHint = {}));\nexport var StringValue;\n(function (StringValue) {\n function createSnippet(value) {\n return { kind: 'snippet', value };\n }\n StringValue.createSnippet = createSnippet;\n})(StringValue || (StringValue = {}));\nexport var InlineCompletionItem;\n(function (InlineCompletionItem) {\n function create(insertText, filterText, range, command) {\n return { insertText, filterText, range, command };\n }\n InlineCompletionItem.create = create;\n})(InlineCompletionItem || (InlineCompletionItem = {}));\nexport var InlineCompletionList;\n(function (InlineCompletionList) {\n function create(items) {\n return { items };\n }\n InlineCompletionList.create = create;\n})(InlineCompletionList || (InlineCompletionList = {}));\n/**\n * Describes how an {@link InlineCompletionItemProvider inline completion provider} was triggered.\n *\n * @since 3.18.0\n * @proposed\n */\nexport var InlineCompletionTriggerKind;\n(function (InlineCompletionTriggerKind) {\n /**\n * Completion was triggered explicitly by a user gesture.\n */\n InlineCompletionTriggerKind.Invoked = 0;\n /**\n * Completion was triggered automatically while editing.\n */\n InlineCompletionTriggerKind.Automatic = 1;\n})(InlineCompletionTriggerKind || (InlineCompletionTriggerKind = {}));\nexport var SelectedCompletionInfo;\n(function (SelectedCompletionInfo) {\n function create(range, text) {\n return { range, text };\n }\n SelectedCompletionInfo.create = create;\n})(SelectedCompletionInfo || (SelectedCompletionInfo = {}));\nexport var InlineCompletionContext;\n(function (InlineCompletionContext) {\n function create(triggerKind, selectedCompletionInfo) {\n return { triggerKind, selectedCompletionInfo };\n }\n InlineCompletionContext.create = create;\n})(InlineCompletionContext || (InlineCompletionContext = {}));\nexport var WorkspaceFolder;\n(function (WorkspaceFolder) {\n function is(value) {\n const candidate = value;\n return Is.objectLiteral(candidate) && URI.is(candidate.uri) && Is.string(candidate.name);\n }\n WorkspaceFolder.is = is;\n})(WorkspaceFolder || (WorkspaceFolder = {}));\nexport const EOL = ['\\n', '\\r\\n', '\\r'];\n/**\n * @deprecated Use the text document from the new vscode-languageserver-textdocument package.\n */\nexport var TextDocument;\n(function (TextDocument) {\n /**\n * Creates a new ITextDocument literal from the given uri and content.\n * @param uri The document's uri.\n * @param languageId The document's language Id.\n * @param version The document's version.\n * @param content The document's content.\n */\n function create(uri, languageId, version, content) {\n return new FullTextDocument(uri, languageId, version, content);\n }\n TextDocument.create = create;\n /**\n * Checks whether the given literal conforms to the {@link ITextDocument} interface.\n */\n function is(value) {\n let candidate = value;\n return Is.defined(candidate) && Is.string(candidate.uri) && (Is.undefined(candidate.languageId) || Is.string(candidate.languageId)) && Is.uinteger(candidate.lineCount)\n && Is.func(candidate.getText) && Is.func(candidate.positionAt) && Is.func(candidate.offsetAt) ? true : false;\n }\n TextDocument.is = is;\n function applyEdits(document, edits) {\n let text = document.getText();\n let sortedEdits = mergeSort(edits, (a, b) => {\n let diff = a.range.start.line - b.range.start.line;\n if (diff === 0) {\n return a.range.start.character - b.range.start.character;\n }\n return diff;\n });\n let lastModifiedOffset = text.length;\n for (let i = sortedEdits.length - 1; i >= 0; i--) {\n let e = sortedEdits[i];\n let startOffset = document.offsetAt(e.range.start);\n let endOffset = document.offsetAt(e.range.end);\n if (endOffset <= lastModifiedOffset) {\n text = text.substring(0, startOffset) + e.newText + text.substring(endOffset, text.length);\n }\n else {\n throw new Error('Overlapping edit');\n }\n lastModifiedOffset = startOffset;\n }\n return text;\n }\n TextDocument.applyEdits = applyEdits;\n function mergeSort(data, compare) {\n if (data.length <= 1) {\n // sorted\n return data;\n }\n const p = (data.length / 2) | 0;\n const left = data.slice(0, p);\n const right = data.slice(p);\n mergeSort(left, compare);\n mergeSort(right, compare);\n let leftIdx = 0;\n let rightIdx = 0;\n let i = 0;\n while (leftIdx < left.length && rightIdx < right.length) {\n let ret = compare(left[leftIdx], right[rightIdx]);\n if (ret <= 0) {\n // smaller_equal -> take left to preserve order\n data[i++] = left[leftIdx++];\n }\n else {\n // greater -> take right\n data[i++] = right[rightIdx++];\n }\n }\n while (leftIdx < left.length) {\n data[i++] = left[leftIdx++];\n }\n while (rightIdx < right.length) {\n data[i++] = right[rightIdx++];\n }\n return data;\n }\n})(TextDocument || (TextDocument = {}));\n/**\n * @deprecated Use the text document from the new vscode-languageserver-textdocument package.\n */\nclass FullTextDocument {\n constructor(uri, languageId, version, content) {\n this._uri = uri;\n this._languageId = languageId;\n this._version = version;\n this._content = content;\n this._lineOffsets = undefined;\n }\n get uri() {\n return this._uri;\n }\n get languageId() {\n return this._languageId;\n }\n get version() {\n return this._version;\n }\n getText(range) {\n if (range) {\n let start = this.offsetAt(range.start);\n let end = this.offsetAt(range.end);\n return this._content.substring(start, end);\n }\n return this._content;\n }\n update(event, version) {\n this._content = event.text;\n this._version = version;\n this._lineOffsets = undefined;\n }\n getLineOffsets() {\n if (this._lineOffsets === undefined) {\n let lineOffsets = [];\n let text = this._content;\n let isLineStart = true;\n for (let i = 0; i < text.length; i++) {\n if (isLineStart) {\n lineOffsets.push(i);\n isLineStart = false;\n }\n let ch = text.charAt(i);\n isLineStart = (ch === '\\r' || ch === '\\n');\n if (ch === '\\r' && i + 1 < text.length && text.charAt(i + 1) === '\\n') {\n i++;\n }\n }\n if (isLineStart && text.length > 0) {\n lineOffsets.push(text.length);\n }\n this._lineOffsets = lineOffsets;\n }\n return this._lineOffsets;\n }\n positionAt(offset) {\n offset = Math.max(Math.min(offset, this._content.length), 0);\n let lineOffsets = this.getLineOffsets();\n let low = 0, high = lineOffsets.length;\n if (high === 0) {\n return Position.create(0, offset);\n }\n while (low < high) {\n let mid = Math.floor((low + high) / 2);\n if (lineOffsets[mid] > offset) {\n high = mid;\n }\n else {\n low = mid + 1;\n }\n }\n // low is the least x for which the line offset is larger than the current offset\n // or array.length if no line offset is larger than the current offset\n let line = low - 1;\n return Position.create(line, offset - lineOffsets[line]);\n }\n offsetAt(position) {\n let lineOffsets = this.getLineOffsets();\n if (position.line >= lineOffsets.length) {\n return this._content.length;\n }\n else if (position.line < 0) {\n return 0;\n }\n let lineOffset = lineOffsets[position.line];\n let nextLineOffset = (position.line + 1 < lineOffsets.length) ? lineOffsets[position.line + 1] : this._content.length;\n return Math.max(Math.min(lineOffset + position.character, nextLineOffset), lineOffset);\n }\n get lineCount() {\n return this.getLineOffsets().length;\n }\n}\nvar Is;\n(function (Is) {\n const toString = Object.prototype.toString;\n function defined(value) {\n return typeof value !== 'undefined';\n }\n Is.defined = defined;\n function undefined(value) {\n return typeof value === 'undefined';\n }\n Is.undefined = undefined;\n function boolean(value) {\n return value === true || value === false;\n }\n Is.boolean = boolean;\n function string(value) {\n return toString.call(value) === '[object String]';\n }\n Is.string = string;\n function number(value) {\n return toString.call(value) === '[object Number]';\n }\n Is.number = number;\n function numberRange(value, min, max) {\n return toString.call(value) === '[object Number]' && min <= value && value <= max;\n }\n Is.numberRange = numberRange;\n function integer(value) {\n return toString.call(value) === '[object Number]' && -2147483648 <= value && value <= 2147483647;\n }\n Is.integer = integer;\n function uinteger(value) {\n return toString.call(value) === '[object Number]' && 0 <= value && value <= 2147483647;\n }\n Is.uinteger = uinteger;\n function func(value) {\n return toString.call(value) === '[object Function]';\n }\n Is.func = func;\n function objectLiteral(value) {\n // Strictly speaking class instances pass this check as well. Since the LSP\n // doesn't use classes we ignore this for now. If we do we need to add something\n // like this: `Object.getPrototypeOf(Object.getPrototypeOf(x)) === null`\n return value !== null && typeof value === 'object';\n }\n Is.objectLiteral = objectLiteral;\n function typedArray(value, check) {\n return Array.isArray(value) && value.every(check);\n }\n Is.typedArray = typedArray;\n})(Is || (Is = {}));\n", "/******************************************************************************\n * Copyright 2021 TypeFox GmbH\n * This program and the accompanying materials are made available under the\n * terms of the MIT License, which is available in the project root.\n ******************************************************************************/\n\nimport type { IToken, TokenType } from 'chevrotain';\nimport type { Range } from 'vscode-languageserver-types';\nimport type { AbstractElement } from '../languages/generated/ast.js';\nimport type { AstNode, CompositeCstNode, CstNode, LeafCstNode, RootCstNode } from '../syntax-tree.js';\nimport { Position } from 'vscode-languageserver-types';\nimport { isCompositeCstNode } from '../syntax-tree.js';\nimport { tokenToRange } from '../utils/cst-utils.js';\n\nexport class CstNodeBuilder {\n\n private rootNode!: RootCstNodeImpl;\n private nodeStack: CompositeCstNodeImpl[] = [];\n\n private get current(): CompositeCstNodeImpl {\n return this.nodeStack[this.nodeStack.length - 1];\n }\n\n buildRootNode(input: string): RootCstNode {\n this.rootNode = new RootCstNodeImpl(input);\n this.rootNode.root = this.rootNode;\n this.nodeStack = [this.rootNode];\n return this.rootNode;\n }\n\n buildCompositeNode(feature: AbstractElement): CompositeCstNode {\n const compositeNode = new CompositeCstNodeImpl();\n compositeNode.grammarSource = feature;\n compositeNode.root = this.rootNode;\n this.current.content.push(compositeNode);\n this.nodeStack.push(compositeNode);\n return compositeNode;\n }\n\n buildLeafNode(token: IToken, feature: AbstractElement): LeafCstNode {\n const leafNode = new LeafCstNodeImpl(token.startOffset, token.image.length, tokenToRange(token), token.tokenType, false);\n leafNode.grammarSource = feature;\n leafNode.root = this.rootNode;\n this.current.content.push(leafNode);\n return leafNode;\n }\n\n removeNode(node: CstNode): void {\n const parent = node.container;\n if (parent) {\n const index = parent.content.indexOf(node);\n if (index >= 0) {\n parent.content.splice(index, 1);\n }\n }\n }\n\n construct(item: { $type: string | symbol | undefined, $cstNode: CstNode }): void {\n const current: CstNode = this.current;\n // The specified item could be a datatype ($type is symbol) or a fragment ($type is undefined)\n // Only if the $type is a string, we actually assign the element\n if (typeof item.$type === 'string') {\n this.current.astNode = item;\n }\n item.$cstNode = current;\n const node = this.nodeStack.pop();\n // Empty composite nodes are not valid\n // Simply remove the node from the tree\n if (node?.content.length === 0) {\n this.removeNode(node);\n }\n }\n\n addHiddenTokens(hiddenTokens: IToken[]): void {\n for (const token of hiddenTokens) {\n const hiddenNode = new LeafCstNodeImpl(token.startOffset, token.image.length, tokenToRange(token), token.tokenType, true);\n hiddenNode.root = this.rootNode;\n this.addHiddenToken(this.rootNode, hiddenNode);\n }\n }\n\n private addHiddenToken(node: CompositeCstNode, token: LeafCstNode): void {\n const { offset: tokenStart, end: tokenEnd } = token;\n\n for (let i = 0; i < node.content.length; i++) {\n const child = node.content[i];\n const { offset: childStart, end: childEnd } = child;\n if (isCompositeCstNode(child) && tokenStart > childStart && tokenEnd < childEnd) {\n this.addHiddenToken(child, token);\n return;\n } else if (tokenEnd <= childStart) {\n node.content.splice(i, 0, token);\n return;\n }\n }\n\n // We know that we haven't found a suited position for the token\n // So we simply add it to the end of the current node\n node.content.push(token);\n }\n}\n\nexport abstract class AbstractCstNode implements CstNode {\n abstract get offset(): number;\n abstract get length(): number;\n abstract get end(): number;\n abstract get range(): Range;\n\n container?: CompositeCstNode;\n grammarSource: AbstractElement;\n root: RootCstNode;\n private _astNode?: AstNode;\n\n /** @deprecated use `container` instead. */\n get parent(): CompositeCstNode | undefined {\n return this.container;\n }\n\n /** @deprecated use `grammarSource` instead. */\n get feature(): AbstractElement {\n return this.grammarSource;\n }\n\n get hidden(): boolean {\n return false;\n }\n\n get astNode(): AstNode {\n const node = typeof this._astNode?.$type === 'string' ? this._astNode : this.container?.astNode;\n if (!node) {\n throw new Error('This node has no associated AST element');\n }\n return node;\n }\n\n set astNode(value: AstNode) {\n this._astNode = value;\n }\n\n /** @deprecated use `astNode` instead. */\n get element(): AstNode {\n return this.astNode;\n }\n\n get text(): string {\n return this.root.fullText.substring(this.offset, this.end);\n }\n}\n\nexport class LeafCstNodeImpl extends AbstractCstNode implements LeafCstNode {\n get offset(): number {\n return this._offset;\n }\n\n get length(): number {\n return this._length;\n }\n\n get end(): number {\n return this._offset + this._length;\n }\n\n override get hidden(): boolean {\n return this._hidden;\n }\n\n get tokenType(): TokenType {\n return this._tokenType;\n }\n\n get range(): Range {\n return this._range;\n }\n\n private _hidden: boolean;\n private _offset: number;\n private _length: number;\n private _range: Range;\n private _tokenType: TokenType;\n\n constructor(offset: number, length: number, range: Range, tokenType: TokenType, hidden = false) {\n super();\n this._hidden = hidden;\n this._offset = offset;\n this._tokenType = tokenType;\n this._length = length;\n this._range = range;\n }\n}\n\nexport class CompositeCstNodeImpl extends AbstractCstNode implements CompositeCstNode {\n readonly content: CstNode[] = new CstNodeContainer(this);\n private _rangeCache?: Range;\n\n /** @deprecated use `content` instead. */\n get children(): CstNode[] {\n return this.content;\n }\n\n get offset(): number {\n return this.firstNonHiddenNode?.offset ?? 0;\n }\n\n get length(): number {\n return this.end - this.offset;\n }\n\n get end(): number {\n return this.lastNonHiddenNode?.end ?? 0;\n }\n\n get range(): Range {\n const firstNode = this.firstNonHiddenNode;\n const lastNode = this.lastNonHiddenNode;\n if (firstNode && lastNode) {\n if (this._rangeCache === undefined) {\n const { range: firstRange } = firstNode;\n const { range: lastRange } = lastNode;\n this._rangeCache = { start: firstRange.start, end: lastRange.end.line < firstRange.start.line ? firstRange.start : lastRange.end };\n }\n return this._rangeCache;\n } else {\n return { start: Position.create(0, 0), end: Position.create(0, 0) };\n }\n }\n\n private get firstNonHiddenNode(): CstNode | undefined {\n for (const child of this.content) {\n if (!child.hidden) {\n return child;\n }\n }\n return this.content[0];\n }\n\n private get lastNonHiddenNode(): CstNode | undefined {\n for (let i = this.content.length - 1; i >= 0; i--) {\n const child = this.content[i];\n if (!child.hidden) {\n return child;\n }\n }\n return this.content[this.content.length - 1];\n }\n}\n\nclass CstNodeContainer extends Array {\n readonly parent: CompositeCstNode;\n\n constructor(parent: CompositeCstNode) {\n super();\n this.parent = parent;\n Object.setPrototypeOf(this, CstNodeContainer.prototype);\n }\n\n override push(...items: CstNode[]): number {\n this.addParents(items);\n return super.push(...items);\n }\n\n override unshift(...items: CstNode[]): number {\n this.addParents(items);\n return super.unshift(...items);\n }\n\n override splice(start: number, count: number, ...items: CstNode[]): CstNode[] {\n this.addParents(items);\n return super.splice(start, count, ...items);\n }\n\n private addParents(items: CstNode[]): void {\n for (const item of items) {\n (item).container = this.parent;\n }\n }\n}\n\nexport class RootCstNodeImpl extends CompositeCstNodeImpl implements RootCstNode {\n private _text = '';\n\n override get text(): string {\n return this._text.substring(this.offset, this.end);\n }\n\n get fullText(): string {\n return this._text;\n }\n\n constructor(input?: string) {\n super();\n this._text = input ?? '';\n }\n}\n", "/******************************************************************************\n * Copyright 2021 TypeFox GmbH\n * This program and the accompanying materials are made available under the\n * terms of the MIT License, which is available in the project root.\n ******************************************************************************/\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport type { DSLMethodOpts, ILexingError, IOrAlt, IParserErrorMessageProvider, IRecognitionException, IToken, TokenType, TokenVocabulary } from 'chevrotain';\nimport type { AbstractElement, Action, Assignment, ParserRule } from '../languages/generated/ast.js';\nimport type { Linker } from '../references/linker.js';\nimport type { LangiumCoreServices } from '../services.js';\nimport type { AstNode, AstReflection, CompositeCstNode, CstNode } from '../syntax-tree.js';\nimport type { Lexer } from './lexer.js';\nimport type { IParserConfig } from './parser-config.js';\nimport type { ValueConverter } from './value-converter.js';\nimport { defaultParserErrorProvider, EmbeddedActionsParser, LLkLookaheadStrategy } from 'chevrotain';\nimport { LLStarLookaheadStrategy } from 'chevrotain-allstar';\nimport { isAssignment, isCrossReference, isKeyword } from '../languages/generated/ast.js';\nimport { getTypeName, isDataTypeRule } from '../utils/grammar-utils.js';\nimport { assignMandatoryProperties, getContainerOfType, linkContentToContainer } from '../utils/ast-utils.js';\nimport { CstNodeBuilder } from './cst-node-builder.js';\n\nexport type ParseResult = {\n value: T,\n parserErrors: IRecognitionException[],\n lexerErrors: ILexingError[]\n}\n\nexport const DatatypeSymbol = Symbol('Datatype');\n\ninterface DataTypeNode {\n $cstNode: CompositeCstNode\n /** Instead of a string, this node is uniquely identified by the `Datatype` symbol */\n $type: symbol\n /** Used as a storage for all parsed terminals, keywords and sub-datatype rules */\n value: string\n}\n\nfunction isDataTypeNode(node: { $type: string | symbol | undefined }): node is DataTypeNode {\n return node.$type === DatatypeSymbol;\n}\n\ntype RuleResult = (args: Args) => any;\n\ntype Args = Record;\n\ntype RuleImpl = (args: Args) => any;\n\ninterface AssignmentElement {\n assignment?: Assignment\n isCrossRef: boolean\n}\n\nexport interface BaseParser {\n rule(rule: ParserRule, impl: RuleImpl): RuleResult;\n alternatives(idx: number, choices: Array>): void;\n optional(idx: number, callback: DSLMethodOpts): void;\n many(idx: number, callback: DSLMethodOpts): void;\n atLeastOne(idx: number, callback: DSLMethodOpts): void;\n consume(idx: number, tokenType: TokenType, feature: AbstractElement): void;\n subrule(idx: number, rule: RuleResult, feature: AbstractElement, args: Args): void;\n action($type: string, action: Action): void;\n construct(): unknown;\n isRecording(): boolean;\n get unorderedGroups(): Map;\n getRuleStack(): number[];\n}\n\nconst ruleSuffix = '\\u200B';\nconst withRuleSuffix = (name: string): string => name.endsWith(ruleSuffix) ? name : name + ruleSuffix;\n\nexport abstract class AbstractLangiumParser implements BaseParser {\n\n protected readonly lexer: Lexer;\n protected readonly wrapper: ChevrotainWrapper;\n protected _unorderedGroups: Map = new Map();\n\n constructor(services: LangiumCoreServices) {\n this.lexer = services.parser.Lexer;\n const tokens = this.lexer.definition;\n this.wrapper = new ChevrotainWrapper(tokens, {\n ...services.parser.ParserConfig,\n errorMessageProvider: services.parser.ParserErrorMessageProvider\n });\n }\n\n alternatives(idx: number, choices: Array>): void {\n this.wrapper.wrapOr(idx, choices);\n }\n\n optional(idx: number, callback: DSLMethodOpts): void {\n this.wrapper.wrapOption(idx, callback);\n }\n\n many(idx: number, callback: DSLMethodOpts): void {\n this.wrapper.wrapMany(idx, callback);\n }\n\n atLeastOne(idx: number, callback: DSLMethodOpts): void {\n this.wrapper.wrapAtLeastOne(idx, callback);\n }\n\n abstract rule(rule: ParserRule, impl: RuleImpl): RuleResult;\n abstract consume(idx: number, tokenType: TokenType, feature: AbstractElement): void;\n abstract subrule(idx: number, rule: RuleResult, feature: AbstractElement, args: Args): void;\n abstract action($type: string, action: Action): void;\n abstract construct(): unknown;\n\n isRecording(): boolean {\n return this.wrapper.IS_RECORDING;\n }\n\n get unorderedGroups(): Map {\n return this._unorderedGroups;\n }\n\n getRuleStack(): number[] {\n return (this.wrapper as any).RULE_STACK;\n }\n\n finalize(): void {\n this.wrapper.wrapSelfAnalysis();\n }\n}\n\nexport class LangiumParser extends AbstractLangiumParser {\n private readonly linker: Linker;\n private readonly converter: ValueConverter;\n private readonly astReflection: AstReflection;\n private readonly nodeBuilder = new CstNodeBuilder();\n private stack: any[] = [];\n private mainRule!: RuleResult;\n private assignmentMap = new Map();\n\n private get current(): any {\n return this.stack[this.stack.length - 1];\n }\n\n constructor(services: LangiumCoreServices) {\n super(services);\n this.linker = services.references.Linker;\n this.converter = services.parser.ValueConverter;\n this.astReflection = services.shared.AstReflection;\n }\n\n rule(rule: ParserRule, impl: RuleImpl): RuleResult {\n const type = rule.fragment ? undefined : isDataTypeRule(rule) ? DatatypeSymbol : getTypeName(rule);\n const ruleMethod = this.wrapper.DEFINE_RULE(withRuleSuffix(rule.name), this.startImplementation(type, impl).bind(this));\n if (rule.entry) {\n this.mainRule = ruleMethod;\n }\n return ruleMethod;\n }\n\n parse(input: string): ParseResult {\n this.nodeBuilder.buildRootNode(input);\n const lexerResult = this.lexer.tokenize(input);\n this.wrapper.input = lexerResult.tokens;\n const result = this.mainRule.call(this.wrapper, {});\n this.nodeBuilder.addHiddenTokens(lexerResult.hidden);\n this.unorderedGroups.clear();\n return {\n value: result,\n lexerErrors: lexerResult.errors,\n parserErrors: this.wrapper.errors\n };\n }\n\n private startImplementation($type: string | symbol | undefined, implementation: RuleImpl): RuleImpl {\n return (args) => {\n if (!this.isRecording()) {\n const node: any = { $type };\n this.stack.push(node);\n if ($type === DatatypeSymbol) {\n node.value = '';\n }\n }\n let result: unknown;\n try {\n result = implementation(args);\n } catch (err) {\n result = undefined;\n }\n if (!this.isRecording() && result === undefined) {\n result = this.construct();\n }\n return result;\n };\n }\n\n consume(idx: number, tokenType: TokenType, feature: AbstractElement): void {\n const token = this.wrapper.wrapConsume(idx, tokenType);\n if (!this.isRecording() && this.isValidToken(token)) {\n const leafNode = this.nodeBuilder.buildLeafNode(token, feature);\n const { assignment, isCrossRef } = this.getAssignment(feature);\n const current = this.current;\n if (assignment) {\n const convertedValue = isKeyword(feature) ? token.image : this.converter.convert(token.image, leafNode);\n this.assign(assignment.operator, assignment.feature, convertedValue, leafNode, isCrossRef);\n } else if (isDataTypeNode(current)) {\n let text = token.image;\n if (!isKeyword(feature)) {\n text = this.converter.convert(text, leafNode).toString();\n }\n current.value += text;\n }\n }\n }\n\n /**\n * Most consumed parser tokens are valid. However there are two cases in which they are not valid:\n *\n * 1. They were inserted during error recovery by the parser. These tokens don't really exist and should not be further processed\n * 2. They contain invalid token ranges. This might include the special EOF token, or other tokens produced by invalid token builders.\n */\n private isValidToken(token: IToken): boolean {\n return !token.isInsertedInRecovery && !isNaN(token.startOffset) && typeof token.endOffset === 'number' && !isNaN(token.endOffset);\n }\n\n subrule(idx: number, rule: RuleResult, feature: AbstractElement, args: Args): void {\n let cstNode: CompositeCstNode | undefined;\n if (!this.isRecording()) {\n cstNode = this.nodeBuilder.buildCompositeNode(feature);\n }\n const subruleResult = this.wrapper.wrapSubrule(idx, rule, args) as any;\n if (!this.isRecording() && cstNode && cstNode.length > 0) {\n this.performSubruleAssignment(subruleResult, feature, cstNode);\n }\n }\n\n private performSubruleAssignment(result: any, feature: AbstractElement, cstNode: CompositeCstNode): void {\n const { assignment, isCrossRef } = this.getAssignment(feature);\n if (assignment) {\n this.assign(assignment.operator, assignment.feature, result, cstNode, isCrossRef);\n } else if (!assignment) {\n // If we call a subrule without an assignment we either:\n // 1. append the result of the subrule (data type rule)\n // 2. override the current object with the newly parsed object\n // If the current element is an AST node and the result of the subrule\n // is a data type rule, we can safely discard the results.\n const current = this.current;\n if (isDataTypeNode(current)) {\n current.value += result.toString();\n } else if (typeof result === 'object' && result) {\n const resultKind = result.$type;\n const object = this.assignWithoutOverride(result, current);\n if (resultKind) {\n object.$type = resultKind;\n }\n const newItem = object;\n this.stack.pop();\n this.stack.push(newItem);\n }\n }\n }\n\n action($type: string, action: Action): void {\n if (!this.isRecording()) {\n let last = this.current;\n // This branch is used for left recursive grammar rules.\n // Those don't call `construct` before another action.\n // Therefore, we need to call it here.\n if (!last.$cstNode && action.feature && action.operator) {\n last = this.construct(false);\n const feature = last.$cstNode.feature;\n this.nodeBuilder.buildCompositeNode(feature);\n }\n const newItem = { $type };\n this.stack.pop();\n this.stack.push(newItem);\n if (action.feature && action.operator) {\n this.assign(action.operator, action.feature, last, last.$cstNode, false);\n }\n }\n }\n\n construct(pop = true): unknown {\n if (this.isRecording()) {\n return undefined;\n }\n const obj = this.current;\n linkContentToContainer(obj);\n this.nodeBuilder.construct(obj);\n if (pop) {\n this.stack.pop();\n }\n if (isDataTypeNode(obj)) {\n return this.converter.convert(obj.value, obj.$cstNode);\n } else {\n assignMandatoryProperties(this.astReflection, obj);\n }\n return obj;\n }\n\n private getAssignment(feature: AbstractElement): AssignmentElement {\n if (!this.assignmentMap.has(feature)) {\n const assignment = getContainerOfType(feature, isAssignment);\n this.assignmentMap.set(feature, {\n assignment: assignment,\n isCrossRef: assignment ? isCrossReference(assignment.terminal) : false\n });\n }\n return this.assignmentMap.get(feature)!;\n }\n\n private assign(operator: string, feature: string, value: unknown, cstNode: CstNode, isCrossRef: boolean): void {\n const obj = this.current;\n let item: unknown;\n if (isCrossRef && typeof value === 'string') {\n item = this.linker.buildReference(obj, feature, cstNode, value);\n } else {\n item = value;\n }\n switch (operator) {\n case '=': {\n obj[feature] = item;\n break;\n }\n case '?=': {\n obj[feature] = true;\n break;\n }\n case '+=': {\n if (!Array.isArray(obj[feature])) {\n obj[feature] = [];\n }\n obj[feature].push(item);\n }\n }\n }\n\n private assignWithoutOverride(target: any, source: any): any {\n for (const [name, existingValue] of Object.entries(source)) {\n const newValue = target[name];\n if (newValue === undefined) {\n target[name] = existingValue;\n } else if (Array.isArray(newValue) && Array.isArray(existingValue)) {\n existingValue.push(...newValue);\n target[name] = existingValue;\n }\n }\n return target;\n }\n\n get definitionErrors(): IParserDefinitionError[] {\n return this.wrapper.definitionErrors;\n }\n}\n\nexport interface IParserDefinitionError {\n message: string\n type: number\n ruleName?: string\n}\n\nexport abstract class AbstractParserErrorMessageProvider implements IParserErrorMessageProvider {\n\n buildMismatchTokenMessage(options: {\n expected: TokenType\n actual: IToken\n previous: IToken\n ruleName: string\n }): string {\n return defaultParserErrorProvider.buildMismatchTokenMessage(options);\n }\n\n buildNotAllInputParsedMessage(options: {\n firstRedundant: IToken\n ruleName: string\n }): string {\n return defaultParserErrorProvider.buildNotAllInputParsedMessage(options);\n }\n\n buildNoViableAltMessage(options: {\n expectedPathsPerAlt: TokenType[][][]\n actual: IToken[]\n previous: IToken\n customUserDescription: string\n ruleName: string\n }): string {\n return defaultParserErrorProvider.buildNoViableAltMessage(options);\n }\n\n buildEarlyExitMessage(options: {\n expectedIterationPaths: TokenType[][]\n actual: IToken[]\n previous: IToken\n customUserDescription: string\n ruleName: string\n }): string {\n return defaultParserErrorProvider.buildEarlyExitMessage(options);\n }\n\n}\n\nexport class LangiumParserErrorMessageProvider extends AbstractParserErrorMessageProvider {\n\n override buildMismatchTokenMessage({ expected, actual }: {\n expected: TokenType\n actual: IToken\n previous: IToken\n ruleName: string\n }): string {\n const expectedMsg = expected.LABEL\n ? '`' + expected.LABEL + '`'\n : expected.name.endsWith(':KW')\n ? `keyword '${expected.name.substring(0, expected.name.length - 3)}'`\n : `token of type '${expected.name}'`;\n return `Expecting ${expectedMsg} but found \\`${actual.image}\\`.`;\n }\n\n override buildNotAllInputParsedMessage({ firstRedundant }: {\n firstRedundant: IToken\n ruleName: string\n }): string {\n return `Expecting end of file but found \\`${firstRedundant.image}\\`.`;\n }\n}\n\nexport interface CompletionParserResult {\n tokens: IToken[]\n elementStack: AbstractElement[]\n tokenIndex: number\n}\n\nexport class LangiumCompletionParser extends AbstractLangiumParser {\n private mainRule!: RuleResult;\n private tokens: IToken[] = [];\n\n private elementStack: AbstractElement[] = [];\n private lastElementStack: AbstractElement[] = [];\n private nextTokenIndex = 0;\n private stackSize = 0;\n\n action(): void {\n // NOOP\n }\n\n construct(): unknown {\n // NOOP\n return undefined;\n }\n\n parse(input: string): CompletionParserResult {\n this.resetState();\n const tokens = this.lexer.tokenize(input);\n this.tokens = tokens.tokens;\n this.wrapper.input = [...this.tokens];\n this.mainRule.call(this.wrapper, {});\n this.unorderedGroups.clear();\n return {\n tokens: this.tokens,\n elementStack: [...this.lastElementStack],\n tokenIndex: this.nextTokenIndex\n };\n }\n\n rule(rule: ParserRule, impl: RuleImpl): RuleResult {\n const ruleMethod = this.wrapper.DEFINE_RULE(withRuleSuffix(rule.name), this.startImplementation(impl).bind(this));\n if (rule.entry) {\n this.mainRule = ruleMethod;\n }\n return ruleMethod;\n }\n\n private resetState(): void {\n this.elementStack = [];\n this.lastElementStack = [];\n this.nextTokenIndex = 0;\n this.stackSize = 0;\n }\n\n private startImplementation(implementation: RuleImpl): RuleImpl {\n return (args) => {\n const size = this.keepStackSize();\n try {\n implementation(args);\n } finally {\n this.resetStackSize(size);\n }\n };\n }\n\n private removeUnexpectedElements(): void {\n this.elementStack.splice(this.stackSize);\n }\n\n keepStackSize(): number {\n const size = this.elementStack.length;\n this.stackSize = size;\n return size;\n }\n\n resetStackSize(size: number): void {\n this.removeUnexpectedElements();\n this.stackSize = size;\n }\n\n consume(idx: number, tokenType: TokenType, feature: AbstractElement): void {\n this.wrapper.wrapConsume(idx, tokenType);\n if (!this.isRecording()) {\n this.lastElementStack = [...this.elementStack, feature];\n this.nextTokenIndex = this.currIdx + 1;\n }\n }\n\n subrule(idx: number, rule: RuleResult, feature: AbstractElement, args: Args): void {\n this.before(feature);\n this.wrapper.wrapSubrule(idx, rule, args);\n this.after(feature);\n }\n\n before(element: AbstractElement): void {\n if (!this.isRecording()) {\n this.elementStack.push(element);\n }\n }\n\n after(element: AbstractElement): void {\n if (!this.isRecording()) {\n const index = this.elementStack.lastIndexOf(element);\n if (index >= 0) {\n this.elementStack.splice(index);\n }\n }\n }\n\n get currIdx(): number {\n return (this.wrapper as any).currIdx;\n }\n}\n\nconst defaultConfig: IParserConfig = {\n recoveryEnabled: true,\n nodeLocationTracking: 'full',\n skipValidations: true,\n errorMessageProvider: new LangiumParserErrorMessageProvider()\n};\n\n/**\n * This class wraps the embedded actions parser of chevrotain and exposes protected methods.\n * This way, we can build the `LangiumParser` as a composition.\n */\nclass ChevrotainWrapper extends EmbeddedActionsParser {\n\n // This array is set in the base implementation of Chevrotain.\n definitionErrors: IParserDefinitionError[];\n\n constructor(tokens: TokenVocabulary, config?: IParserConfig) {\n const useDefaultLookahead = config && 'maxLookahead' in config;\n super(tokens, {\n ...defaultConfig,\n lookaheadStrategy: useDefaultLookahead\n ? new LLkLookaheadStrategy({ maxLookahead: config.maxLookahead })\n : new LLStarLookaheadStrategy(),\n ...config,\n });\n }\n\n get IS_RECORDING(): boolean {\n return this.RECORDING_PHASE;\n }\n\n DEFINE_RULE(name: string, impl: RuleImpl): RuleResult {\n return this.RULE(name, impl);\n }\n\n wrapSelfAnalysis(): void {\n this.performSelfAnalysis();\n }\n\n wrapConsume(idx: number, tokenType: TokenType): IToken {\n return this.consume(idx, tokenType);\n }\n\n wrapSubrule(idx: number, rule: RuleResult, args: Args): unknown {\n return this.subrule(idx, rule, {\n ARGS: [args]\n });\n }\n\n wrapOr(idx: number, choices: Array>): void {\n this.or(idx, choices);\n }\n\n wrapOption(idx: number, callback: DSLMethodOpts): void {\n this.option(idx, callback);\n }\n\n wrapMany(idx: number, callback: DSLMethodOpts): void {\n this.many(idx, callback);\n }\n\n wrapAtLeastOne(idx: number, callback: DSLMethodOpts): void {\n this.atLeastOne(idx, callback);\n }\n}\n", "/******************************************************************************\n * Copyright 2022 TypeFox GmbH\n * This program and the accompanying materials are made available under the\n * terms of the MIT License, which is available in the project root.\n ******************************************************************************/\n\nimport type { IOrAlt, TokenType, TokenTypeDictionary } from 'chevrotain';\nimport type { AbstractElement, Action, Alternatives, Condition, CrossReference, Grammar, Group, Keyword, NamedArgument, ParserRule, RuleCall, UnorderedGroup } from '../languages/generated/ast.js';\nimport type { BaseParser } from './langium-parser.js';\nimport type { AstNode } from '../syntax-tree.js';\nimport type { Cardinality } from '../utils/grammar-utils.js';\nimport { EMPTY_ALT, EOF } from 'chevrotain';\nimport { isAction, isAlternatives, isEndOfFile, isAssignment, isConjunction, isCrossReference, isDisjunction, isGroup, isKeyword, isNegation, isParameterReference, isParserRule, isRuleCall, isTerminalRule, isUnorderedGroup, isBooleanLiteral } from '../languages/generated/ast.js';\nimport { assertUnreachable, ErrorWithLocation } from '../utils/errors.js';\nimport { stream } from '../utils/stream.js';\nimport { findNameAssignment, getAllReachableRules, getTypeName } from '../utils/grammar-utils.js';\n\ntype RuleContext = {\n optional: number,\n consume: number,\n subrule: number,\n many: number,\n or: number\n} & ParserContext;\n\ntype ParserContext = {\n parser: BaseParser\n tokens: TokenTypeDictionary\n rules: Map\n ruleNames: Map\n}\n\ntype Rule = (args: Args) => unknown;\n\ntype Args = Record;\n\ntype Predicate = (args: Args) => boolean;\n\ntype Method = (args: Args) => void;\n\nexport function createParser(grammar: Grammar, parser: T, tokens: TokenTypeDictionary): T {\n const rules = new Map();\n const parserContext: ParserContext = {\n parser,\n tokens,\n rules,\n ruleNames: new Map()\n };\n buildRules(parserContext, grammar);\n return parser;\n}\n\nfunction buildRules(parserContext: ParserContext, grammar: Grammar): void {\n const reachable = getAllReachableRules(grammar, false);\n const parserRules = stream(grammar.rules).filter(isParserRule).filter(rule => reachable.has(rule));\n for (const rule of parserRules) {\n const ctx: RuleContext = {\n ...parserContext,\n consume: 1,\n optional: 1,\n subrule: 1,\n many: 1,\n or: 1\n };\n ctx.rules.set(\n rule.name,\n parserContext.parser.rule(rule, buildElement(ctx, rule.definition))\n );\n }\n}\n\nfunction buildElement(ctx: RuleContext, element: AbstractElement, ignoreGuard = false): Method {\n let method: Method;\n if (isKeyword(element)) {\n method = buildKeyword(ctx, element);\n } else if (isAction(element)) {\n method = buildAction(ctx, element);\n } else if (isAssignment(element)) {\n method = buildElement(ctx, element.terminal);\n } else if (isCrossReference(element)) {\n method = buildCrossReference(ctx, element);\n } else if (isRuleCall(element)) {\n method = buildRuleCall(ctx, element);\n } else if (isAlternatives(element)) {\n method = buildAlternatives(ctx, element);\n } else if (isUnorderedGroup(element)) {\n method = buildUnorderedGroup(ctx, element);\n } else if (isGroup(element)) {\n method = buildGroup(ctx, element);\n } else if(isEndOfFile(element)) {\n const idx = ctx.consume++;\n method = () => ctx.parser.consume(idx, EOF, element);\n } else {\n throw new ErrorWithLocation(element.$cstNode, `Unexpected element type: ${element.$type}`);\n }\n return wrap(ctx, ignoreGuard ? undefined : getGuardCondition(element), method, element.cardinality);\n}\n\nfunction buildAction(ctx: RuleContext, action: Action): Method {\n const actionType = getTypeName(action);\n return () => ctx.parser.action(actionType, action);\n}\n\nfunction buildRuleCall(ctx: RuleContext, ruleCall: RuleCall): Method {\n const rule = ruleCall.rule.ref;\n if (isParserRule(rule)) {\n const idx = ctx.subrule++;\n const predicate = ruleCall.arguments.length > 0 ? buildRuleCallPredicate(rule, ruleCall.arguments) : () => ({});\n return (args) => ctx.parser.subrule(idx, getRule(ctx, rule), ruleCall, predicate(args));\n } else if (isTerminalRule(rule)) {\n const idx = ctx.consume++;\n const method = getToken(ctx, rule.name);\n return () => ctx.parser.consume(idx, method, ruleCall);\n } else if (!rule) {\n throw new ErrorWithLocation(ruleCall.$cstNode, `Undefined rule type: ${ruleCall.$type}`);\n } else {\n assertUnreachable(rule);\n }\n}\n\nfunction buildRuleCallPredicate(rule: ParserRule, namedArgs: NamedArgument[]): (args: Args) => Args {\n const predicates = namedArgs.map(e => buildPredicate(e.value));\n return (args) => {\n const ruleArgs: Args = {};\n for (let i = 0; i < predicates.length; i++) {\n const ruleTarget = rule.parameters[i];\n const predicate = predicates[i];\n ruleArgs[ruleTarget.name] = predicate(args);\n }\n return ruleArgs;\n };\n}\n\ninterface PredicatedMethod {\n ALT: Method,\n GATE?: Predicate\n}\n\nfunction buildPredicate(condition: Condition): Predicate {\n if (isDisjunction(condition)) {\n const left = buildPredicate(condition.left);\n const right = buildPredicate(condition.right);\n return (args) => (left(args) || right(args));\n } else if (isConjunction(condition)) {\n const left = buildPredicate(condition.left);\n const right = buildPredicate(condition.right);\n return (args) => (left(args) && right(args));\n } else if (isNegation(condition)) {\n const value = buildPredicate(condition.value);\n return (args) => !value(args);\n } else if (isParameterReference(condition)) {\n const name = condition.parameter.ref!.name;\n return (args) => args !== undefined && args[name] === true;\n } else if (isBooleanLiteral(condition)) {\n const value = Boolean(condition.true);\n return () => value;\n }\n assertUnreachable(condition);\n}\n\nfunction buildAlternatives(ctx: RuleContext, alternatives: Alternatives): Method {\n if (alternatives.elements.length === 1) {\n return buildElement(ctx, alternatives.elements[0]);\n } else {\n const methods: PredicatedMethod[] = [];\n\n for (const element of alternatives.elements) {\n const predicatedMethod: PredicatedMethod = {\n // Since we handle the guard condition in the alternative already\n // We can ignore the group guard condition inside\n ALT: buildElement(ctx, element, true)\n };\n const guard = getGuardCondition(element);\n if (guard) {\n predicatedMethod.GATE = buildPredicate(guard);\n }\n methods.push(predicatedMethod);\n }\n\n const idx = ctx.or++;\n return (args) => ctx.parser.alternatives(idx, methods.map(method => {\n const alt: IOrAlt = {\n ALT: () => method.ALT(args)\n };\n const gate = method.GATE;\n if (gate) {\n alt.GATE = () => gate(args);\n }\n return alt;\n }));\n }\n}\n\nfunction buildUnorderedGroup(ctx: RuleContext, group: UnorderedGroup): Method {\n if (group.elements.length === 1) {\n return buildElement(ctx, group.elements[0]);\n }\n const methods: PredicatedMethod[] = [];\n\n for (const element of group.elements) {\n const predicatedMethod: PredicatedMethod = {\n // Since we handle the guard condition in the alternative already\n // We can ignore the group guard condition inside\n ALT: buildElement(ctx, element, true)\n };\n const guard = getGuardCondition(element);\n if (guard) {\n predicatedMethod.GATE = buildPredicate(guard);\n }\n methods.push(predicatedMethod);\n }\n\n const orIdx = ctx.or++;\n\n const idFunc = (groupIdx: number, lParser: BaseParser) => {\n const stackId = lParser.getRuleStack().join('-');\n return `uGroup_${groupIdx}_${stackId}`;\n };\n const alternatives: Method = (args) => ctx.parser.alternatives(orIdx, methods.map((method, idx) => {\n const alt: IOrAlt = { ALT: () => true };\n const parser = ctx.parser;\n alt.ALT = () => {\n method.ALT(args);\n if (!parser.isRecording()) {\n const key = idFunc(orIdx, parser);\n if (!parser.unorderedGroups.get(key)) {\n // init after clear state\n parser.unorderedGroups.set(key, []);\n }\n const groupState = parser.unorderedGroups.get(key)!;\n if (typeof groupState?.[idx] === 'undefined') {\n // Not accessed yet\n groupState[idx] = true;\n }\n }\n };\n const gate = method.GATE;\n if (gate) {\n alt.GATE = () => gate(args);\n } else {\n alt.GATE = () => {\n const trackedAlternatives = parser.unorderedGroups.get(idFunc(orIdx, parser));\n const allow = !trackedAlternatives?.[idx];\n return allow;\n };\n }\n return alt;\n }));\n const wrapped = wrap(ctx, getGuardCondition(group), alternatives, '*');\n return (args) => {\n wrapped(args);\n if (!ctx.parser.isRecording()) {\n ctx.parser.unorderedGroups.delete(idFunc(orIdx, ctx.parser));\n }\n };\n}\n\nfunction buildGroup(ctx: RuleContext, group: Group): Method {\n const methods = group.elements.map(e => buildElement(ctx, e));\n return (args) => methods.forEach(method => method(args));\n}\n\nfunction getGuardCondition(element: AbstractElement): Condition | undefined {\n if (isGroup(element)) {\n return element.guardCondition;\n }\n return undefined;\n}\n\nfunction buildCrossReference(ctx: RuleContext, crossRef: CrossReference, terminal = crossRef.terminal): Method {\n if (!terminal) {\n if (!crossRef.type.ref) {\n throw new Error('Could not resolve reference to type: ' + crossRef.type.$refText);\n }\n const assignment = findNameAssignment(crossRef.type.ref);\n const assignTerminal = assignment?.terminal;\n if (!assignTerminal) {\n throw new Error('Could not find name assignment for type: ' + getTypeName(crossRef.type.ref));\n }\n return buildCrossReference(ctx, crossRef, assignTerminal);\n } else if (isRuleCall(terminal) && isParserRule(terminal.rule.ref)) {\n const idx = ctx.subrule++;\n return (args) => ctx.parser.subrule(idx, getRule(ctx, terminal.rule.ref as ParserRule), crossRef, args);\n } else if (isRuleCall(terminal) && isTerminalRule(terminal.rule.ref)) {\n const idx = ctx.consume++;\n const terminalRule = getToken(ctx, terminal.rule.ref.name);\n return () => ctx.parser.consume(idx, terminalRule, crossRef);\n } else if (isKeyword(terminal)) {\n const idx = ctx.consume++;\n const keyword = getToken(ctx, terminal.value);\n return () => ctx.parser.consume(idx, keyword, crossRef);\n }\n else {\n throw new Error('Could not build cross reference parser');\n }\n}\n\nfunction buildKeyword(ctx: RuleContext, keyword: Keyword): Method {\n const idx = ctx.consume++;\n const token = ctx.tokens[keyword.value];\n if (!token) {\n throw new Error('Could not find token for keyword: ' + keyword.value);\n }\n return () => ctx.parser.consume(idx, token, keyword);\n}\n\nfunction wrap(ctx: RuleContext, guard: Condition | undefined, method: Method, cardinality: Cardinality): Method {\n const gate = guard && buildPredicate(guard);\n\n if (!cardinality) {\n if (gate) {\n const idx = ctx.or++;\n return (args) => ctx.parser.alternatives(idx, [\n {\n ALT: () => method(args),\n GATE: () => gate(args)\n },\n {\n ALT: EMPTY_ALT(),\n GATE: () => !gate(args)\n }\n ]);\n } else {\n return method;\n }\n }\n\n if (cardinality === '*') {\n const idx = ctx.many++;\n return (args) => ctx.parser.many(idx, {\n DEF: () => method(args),\n GATE: gate ? () => gate(args) : undefined\n });\n } else if (cardinality === '+') {\n const idx = ctx.many++;\n if (gate) {\n const orIdx = ctx.or++;\n // In the case of a guard condition for the `+` group\n // We combine it with an empty alternative\n // If the condition returns true, it needs to parse at least a single iteration\n // If its false, it is not allowed to parse anything\n return (args) => ctx.parser.alternatives(orIdx, [\n {\n ALT: () => ctx.parser.atLeastOne(idx, {\n DEF: () => method(args)\n }),\n GATE: () => gate(args)\n },\n {\n ALT: EMPTY_ALT(),\n GATE: () => !gate(args)\n }\n ]);\n } else {\n return (args) => ctx.parser.atLeastOne(idx, {\n DEF: () => method(args),\n });\n }\n } else if (cardinality === '?') {\n const idx = ctx.optional++;\n return (args) => ctx.parser.optional(idx, {\n DEF: () => method(args),\n GATE: gate ? () => gate(args) : undefined\n });\n } else {\n assertUnreachable(cardinality);\n }\n}\n\nfunction getRule(ctx: ParserContext, element: ParserRule | AbstractElement): Rule {\n const name = getRuleName(ctx, element);\n const rule = ctx.rules.get(name);\n if (!rule) throw new Error(`Rule \"${name}\" not found.\"`);\n return rule;\n}\n\nfunction getRuleName(ctx: ParserContext, element: ParserRule | AbstractElement): string {\n if (isParserRule(element)) {\n return element.name;\n } else if (ctx.ruleNames.has(element)) {\n return ctx.ruleNames.get(element)!;\n } else {\n let item: AstNode = element;\n let parent: AstNode = item.$container!;\n let ruleName: string = element.$type;\n while (!isParserRule(parent)) {\n if (isGroup(parent) || isAlternatives(parent) || isUnorderedGroup(parent)) {\n const index = parent.elements.indexOf(item as AbstractElement);\n ruleName = index.toString() + ':' + ruleName;\n }\n item = parent;\n parent = parent.$container!;\n }\n const rule = parent as ParserRule;\n ruleName = rule.name + ':' + ruleName;\n ctx.ruleNames.set(element, ruleName);\n return ruleName;\n }\n}\n\nfunction getToken(ctx: ParserContext, name: string): TokenType {\n const token = ctx.tokens[name];\n if (!token) throw new Error(`Token \"${name}\" not found.\"`);\n return token;\n}\n", "/******************************************************************************\n * Copyright 2022 TypeFox GmbH\n * This program and the accompanying materials are made available under the\n * terms of the MIT License, which is available in the project root.\n ******************************************************************************/\n\nimport type { LangiumCoreServices } from '../services.js';\nimport { LangiumCompletionParser } from './langium-parser.js';\nimport { createParser } from './parser-builder-base.js';\n\nexport function createCompletionParser(services: LangiumCoreServices): LangiumCompletionParser {\n const grammar = services.Grammar;\n const lexer = services.parser.Lexer;\n const parser = new LangiumCompletionParser(services);\n createParser(grammar, parser, lexer.definition);\n parser.finalize();\n return parser;\n}\n", "/******************************************************************************\n * Copyright 2021 TypeFox GmbH\n * This program and the accompanying materials are made available under the\n * terms of the MIT License, which is available in the project root.\n ******************************************************************************/\n\nimport type { LangiumCoreServices } from '../services.js';\nimport { LangiumParser } from './langium-parser.js';\nimport { createParser } from './parser-builder-base.js';\n\n/**\n * Create and finalize a Langium parser. The parser rules are derived from the grammar, which is\n * available at `services.Grammar`.\n */\nexport function createLangiumParser(services: LangiumCoreServices): LangiumParser {\n const parser = prepareLangiumParser(services);\n parser.finalize();\n return parser;\n}\n\n/**\n * Create a Langium parser without finalizing it. This is used to extract more detailed error\n * information when the parser is initially validated.\n */\nexport function prepareLangiumParser(services: LangiumCoreServices): LangiumParser {\n const grammar = services.Grammar;\n const lexer = services.parser.Lexer;\n const parser = new LangiumParser(services);\n return createParser(grammar, parser, lexer.definition);\n}\n", "/******************************************************************************\n * Copyright 2021 TypeFox GmbH\n * This program and the accompanying materials are made available under the\n * terms of the MIT License, which is available in the project root.\n ******************************************************************************/\n\nimport type { CustomPatternMatcherFunc, TokenPattern, TokenType, TokenVocabulary } from 'chevrotain';\nimport type { AbstractRule, Grammar, Keyword, TerminalRule } from '../languages/generated/ast.js';\nimport type { Stream } from '../utils/stream.js';\nimport { Lexer } from 'chevrotain';\nimport { isKeyword, isParserRule, isTerminalRule } from '../languages/generated/ast.js';\nimport { streamAllContents } from '../utils/ast-utils.js';\nimport { getAllReachableRules, terminalRegex } from '../utils/grammar-utils.js';\nimport { getCaseInsensitivePattern, isWhitespace, partialMatches } from '../utils/regexp-utils.js';\nimport { stream } from '../utils/stream.js';\n\nexport interface TokenBuilderOptions {\n caseInsensitive?: boolean\n}\n\nexport interface TokenBuilder {\n buildTokens(grammar: Grammar, options?: TokenBuilderOptions): TokenVocabulary;\n}\n\nexport class DefaultTokenBuilder implements TokenBuilder {\n\n buildTokens(grammar: Grammar, options?: TokenBuilderOptions): TokenVocabulary {\n const reachableRules = stream(getAllReachableRules(grammar, false));\n const terminalTokens: TokenType[] = this.buildTerminalTokens(reachableRules);\n const tokens: TokenType[] = this.buildKeywordTokens(reachableRules, terminalTokens, options);\n\n terminalTokens.forEach(terminalToken => {\n const pattern = terminalToken.PATTERN;\n if (typeof pattern === 'object' && pattern && 'test' in pattern && isWhitespace(pattern)) {\n tokens.unshift(terminalToken);\n } else {\n tokens.push(terminalToken);\n }\n });\n // We don't need to add the EOF token explicitly.\n // It is automatically available at the end of the token stream.\n return tokens;\n }\n\n protected buildTerminalTokens(rules: Stream): TokenType[] {\n return rules.filter(isTerminalRule).filter(e => !e.fragment)\n .map(terminal => this.buildTerminalToken(terminal)).toArray();\n }\n\n protected buildTerminalToken(terminal: TerminalRule): TokenType {\n const regex = terminalRegex(terminal);\n const pattern = this.requiresCustomPattern(regex) ? this.regexPatternFunction(regex) : regex;\n const tokenType: TokenType = {\n name: terminal.name,\n PATTERN: pattern,\n LINE_BREAKS: true\n };\n if (terminal.hidden) {\n // Only skip tokens that are able to accept whitespace\n tokenType.GROUP = isWhitespace(regex) ? Lexer.SKIPPED : 'hidden';\n }\n return tokenType;\n }\n\n protected requiresCustomPattern(regex: RegExp): boolean {\n if (regex.flags.includes('u')) {\n // Unicode regexes are not supported by Chevrotain.\n return true;\n } else if (regex.source.includes('?<=') || regex.source.includes('? {\n stickyRegex.lastIndex = offset;\n const execResult = stickyRegex.exec(text);\n return execResult;\n };\n }\n\n protected buildKeywordTokens(rules: Stream, terminalTokens: TokenType[], options?: TokenBuilderOptions): TokenType[] {\n return rules\n // We filter by parser rules, since keywords in terminal rules get transformed into regex and are not actual tokens\n .filter(isParserRule)\n .flatMap(rule => streamAllContents(rule).filter(isKeyword))\n .distinct(e => e.value).toArray()\n // Sort keywords by descending length\n .sort((a, b) => b.value.length - a.value.length)\n .map(keyword => this.buildKeywordToken(keyword, terminalTokens, Boolean(options?.caseInsensitive)));\n }\n\n protected buildKeywordToken(keyword: Keyword, terminalTokens: TokenType[], caseInsensitive: boolean): TokenType {\n return {\n name: keyword.value,\n PATTERN: this.buildKeywordPattern(keyword, caseInsensitive),\n LONGER_ALT: this.findLongerAlt(keyword, terminalTokens)\n };\n }\n\n protected buildKeywordPattern(keyword: Keyword, caseInsensitive: boolean): TokenPattern {\n return caseInsensitive ?\n new RegExp(getCaseInsensitivePattern(keyword.value)) :\n keyword.value;\n }\n\n protected findLongerAlt(keyword: Keyword, terminalTokens: TokenType[]): TokenType[] {\n return terminalTokens.reduce((longerAlts: TokenType[], token) => {\n const pattern = token?.PATTERN as RegExp;\n if (pattern?.source && partialMatches('^' + pattern.source + '$', keyword.value)) {\n longerAlts.push(token);\n }\n return longerAlts;\n }, []);\n }\n}\n", "/******************************************************************************\n * Copyright 2021 TypeFox GmbH\n * This program and the accompanying materials are made available under the\n * terms of the MIT License, which is available in the project root.\n ******************************************************************************/\n\nimport type { AbstractElement, AbstractRule } from '../languages/generated/ast.js';\nimport type { CstNode } from '../syntax-tree.js';\nimport { isCrossReference, isRuleCall } from '../languages/generated/ast.js';\nimport { getCrossReferenceTerminal, getRuleType } from '../utils/grammar-utils.js';\n\n/**\n * Language-specific service for converting string values from the source text format into a value to be held in the AST.\n */\nexport interface ValueConverter {\n /**\n * Converts a string value from the source text format into a value to be held in the AST.\n */\n convert(input: string, cstNode: CstNode): ValueType;\n}\n\nexport type ValueType = string | number | boolean | bigint | Date;\n\nexport class DefaultValueConverter implements ValueConverter {\n\n convert(input: string, cstNode: CstNode): ValueType {\n let feature: AbstractElement | undefined = cstNode.grammarSource;\n if (isCrossReference(feature)) {\n feature = getCrossReferenceTerminal(feature);\n }\n if (isRuleCall(feature)) {\n const rule = feature.rule.ref;\n if (!rule) {\n throw new Error('This cst node was not parsed by a rule.');\n }\n return this.runConverter(rule, input, cstNode);\n }\n return input;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n protected runConverter(rule: AbstractRule, input: string, cstNode: CstNode): ValueType {\n switch (rule.name.toUpperCase()) {\n case 'INT': return ValueConverter.convertInt(input);\n case 'STRING': return ValueConverter.convertString(input);\n case 'ID': return ValueConverter.convertID(input);\n }\n switch (getRuleType(rule)?.toLowerCase()) {\n case 'number': return ValueConverter.convertNumber(input);\n case 'boolean': return ValueConverter.convertBoolean(input);\n case 'bigint': return ValueConverter.convertBigint(input);\n case 'date': return ValueConverter.convertDate(input);\n default: return input;\n }\n }\n}\n\nexport namespace ValueConverter {\n\n export function convertString(input: string): string {\n let result = '';\n for (let i = 1; i < input.length - 1; i++) {\n const c = input.charAt(i);\n if (c === '\\\\') {\n const c1 = input.charAt(++i);\n result += convertEscapeCharacter(c1);\n } else {\n result += c;\n }\n }\n return result;\n }\n\n function convertEscapeCharacter(char: string): string {\n switch (char) {\n case 'b': return '\\b';\n case 'f': return '\\f';\n case 'n': return '\\n';\n case 'r': return '\\r';\n case 't': return '\\t';\n case 'v': return '\\v';\n case '0': return '\\0';\n default: return char;\n }\n }\n\n export function convertID(input: string): string {\n if (input.charAt(0) === '^') {\n return input.substring(1);\n } else {\n return input;\n }\n }\n\n export function convertInt(input: string): number {\n return parseInt(input);\n }\n\n export function convertBigint(input: string): bigint {\n return BigInt(input);\n }\n\n export function convertDate(input: string): Date {\n return new Date(input);\n }\n\n export function convertNumber(input: string): number {\n return Number(input);\n }\n\n export function convertBoolean(input: string): boolean {\n return input.toLowerCase() === 'true';\n }\n\n}\n", "/******************************************************************************\n * Copyright 2024 TypeFox GmbH\n * This program and the accompanying materials are made available under the\n * terms of the MIT License, which is available in the project root.\n ******************************************************************************/\n\n// eslint-disable-next-line no-restricted-imports\nexport * from 'vscode-jsonrpc/lib/common/cancellation.js';\n", "/******************************************************************************\n * Copyright 2021 TypeFox GmbH\n * This program and the accompanying materials are made available under the\n * terms of the MIT License, which is available in the project root.\n ******************************************************************************/\n\nimport { CancellationToken, CancellationTokenSource, type AbstractCancellationTokenSource } from '../utils/cancellation.js';\n\nexport type MaybePromise = T | Promise\n\n/**\n * Delays the execution of the current code to the next tick of the event loop.\n * Don't call this method directly in a tight loop to prevent too many promises from being created.\n */\nexport function delayNextTick(): Promise {\n return new Promise(resolve => {\n // In case we are running in a non-node environment, `setImmediate` isn't available.\n // Using `setTimeout` of the browser API accomplishes the same result.\n if (typeof setImmediate === 'undefined') {\n setTimeout(resolve, 0);\n } else {\n setImmediate(resolve);\n }\n });\n}\n\nlet lastTick = 0;\nlet globalInterruptionPeriod = 10;\n\n/**\n * Reset the global interruption period and create a cancellation token source.\n */\nexport function startCancelableOperation(): AbstractCancellationTokenSource {\n lastTick = Date.now();\n return new CancellationTokenSource();\n}\n\n/**\n * Change the period duration for `interruptAndCheck` to the given number of milliseconds.\n * The default value is 10ms.\n */\nexport function setInterruptionPeriod(period: number): void {\n globalInterruptionPeriod = period;\n}\n\n/**\n * This symbol may be thrown in an asynchronous context by any Langium service that receives\n * a `CancellationToken`. This means that the promise returned by such a service is rejected with\n * this symbol as rejection reason.\n */\nexport const OperationCancelled = Symbol('OperationCancelled');\n\n/**\n * Use this in a `catch` block to check whether the thrown object indicates that the operation\n * has been cancelled.\n */\nexport function isOperationCancelled(err: unknown): err is typeof OperationCancelled {\n return err === OperationCancelled;\n}\n\n/**\n * This function does two things:\n * 1. Check the elapsed time since the last call to this function or to `startCancelableOperation`. If the predefined\n * period (configured with `setInterruptionPeriod`) is exceeded, execution is delayed with `delayNextTick`.\n * 2. If the predefined period is not met yet or execution is resumed after an interruption, the given cancellation\n * token is checked, and if cancellation is requested, `OperationCanceled` is thrown.\n *\n * All services in Langium that receive a `CancellationToken` may potentially call this function, so the\n * `CancellationToken` must be caught (with an `async` try-catch block or a `catch` callback attached to\n * the promise) to avoid that event being exposed as an error.\n */\nexport async function interruptAndCheck(token: CancellationToken): Promise {\n if (token === CancellationToken.None) {\n // Early exit in case cancellation was disabled by the caller\n return;\n }\n const current = Date.now();\n if (current - lastTick >= globalInterruptionPeriod) {\n lastTick = current;\n await delayNextTick();\n }\n if (token.isCancellationRequested) {\n throw OperationCancelled;\n }\n}\n\n/**\n * Simple implementation of the deferred pattern.\n * An object that exposes a promise and functions to resolve and reject it.\n */\nexport class Deferred {\n resolve: (value: T) => this;\n reject: (err?: unknown) => this;\n\n promise = new Promise((resolve, reject) => {\n this.resolve = (arg) => {\n resolve(arg);\n return this;\n };\n this.reject = (err) => {\n reject(err);\n return this;\n };\n });\n}\n", "/* --------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n * ------------------------------------------------------------------------------------------ */\n'use strict';\nclass FullTextDocument {\n constructor(uri, languageId, version, content) {\n this._uri = uri;\n this._languageId = languageId;\n this._version = version;\n this._content = content;\n this._lineOffsets = undefined;\n }\n get uri() {\n return this._uri;\n }\n get languageId() {\n return this._languageId;\n }\n get version() {\n return this._version;\n }\n getText(range) {\n if (range) {\n const start = this.offsetAt(range.start);\n const end = this.offsetAt(range.end);\n return this._content.substring(start, end);\n }\n return this._content;\n }\n update(changes, version) {\n for (const change of changes) {\n if (FullTextDocument.isIncremental(change)) {\n // makes sure start is before end\n const range = getWellformedRange(change.range);\n // update content\n const startOffset = this.offsetAt(range.start);\n const endOffset = this.offsetAt(range.end);\n this._content = this._content.substring(0, startOffset) + change.text + this._content.substring(endOffset, this._content.length);\n // update the offsets\n const startLine = Math.max(range.start.line, 0);\n const endLine = Math.max(range.end.line, 0);\n let lineOffsets = this._lineOffsets;\n const addedLineOffsets = computeLineOffsets(change.text, false, startOffset);\n if (endLine - startLine === addedLineOffsets.length) {\n for (let i = 0, len = addedLineOffsets.length; i < len; i++) {\n lineOffsets[i + startLine + 1] = addedLineOffsets[i];\n }\n }\n else {\n if (addedLineOffsets.length < 10000) {\n lineOffsets.splice(startLine + 1, endLine - startLine, ...addedLineOffsets);\n }\n else { // avoid too many arguments for splice\n this._lineOffsets = lineOffsets = lineOffsets.slice(0, startLine + 1).concat(addedLineOffsets, lineOffsets.slice(endLine + 1));\n }\n }\n const diff = change.text.length - (endOffset - startOffset);\n if (diff !== 0) {\n for (let i = startLine + 1 + addedLineOffsets.length, len = lineOffsets.length; i < len; i++) {\n lineOffsets[i] = lineOffsets[i] + diff;\n }\n }\n }\n else if (FullTextDocument.isFull(change)) {\n this._content = change.text;\n this._lineOffsets = undefined;\n }\n else {\n throw new Error('Unknown change event received');\n }\n }\n this._version = version;\n }\n getLineOffsets() {\n if (this._lineOffsets === undefined) {\n this._lineOffsets = computeLineOffsets(this._content, true);\n }\n return this._lineOffsets;\n }\n positionAt(offset) {\n offset = Math.max(Math.min(offset, this._content.length), 0);\n const lineOffsets = this.getLineOffsets();\n let low = 0, high = lineOffsets.length;\n if (high === 0) {\n return { line: 0, character: offset };\n }\n while (low < high) {\n const mid = Math.floor((low + high) / 2);\n if (lineOffsets[mid] > offset) {\n high = mid;\n }\n else {\n low = mid + 1;\n }\n }\n // low is the least x for which the line offset is larger than the current offset\n // or array.length if no line offset is larger than the current offset\n const line = low - 1;\n offset = this.ensureBeforeEOL(offset, lineOffsets[line]);\n return { line, character: offset - lineOffsets[line] };\n }\n offsetAt(position) {\n const lineOffsets = this.getLineOffsets();\n if (position.line >= lineOffsets.length) {\n return this._content.length;\n }\n else if (position.line < 0) {\n return 0;\n }\n const lineOffset = lineOffsets[position.line];\n if (position.character <= 0) {\n return lineOffset;\n }\n const nextLineOffset = (position.line + 1 < lineOffsets.length) ? lineOffsets[position.line + 1] : this._content.length;\n const offset = Math.min(lineOffset + position.character, nextLineOffset);\n return this.ensureBeforeEOL(offset, lineOffset);\n }\n ensureBeforeEOL(offset, lineOffset) {\n while (offset > lineOffset && isEOL(this._content.charCodeAt(offset - 1))) {\n offset--;\n }\n return offset;\n }\n get lineCount() {\n return this.getLineOffsets().length;\n }\n static isIncremental(event) {\n const candidate = event;\n return candidate !== undefined && candidate !== null &&\n typeof candidate.text === 'string' && candidate.range !== undefined &&\n (candidate.rangeLength === undefined || typeof candidate.rangeLength === 'number');\n }\n static isFull(event) {\n const candidate = event;\n return candidate !== undefined && candidate !== null &&\n typeof candidate.text === 'string' && candidate.range === undefined && candidate.rangeLength === undefined;\n }\n}\nexport var TextDocument;\n(function (TextDocument) {\n /**\n * Creates a new text document.\n *\n * @param uri The document's uri.\n * @param languageId The document's language Id.\n * @param version The document's initial version number.\n * @param content The document's content.\n */\n function create(uri, languageId, version, content) {\n return new FullTextDocument(uri, languageId, version, content);\n }\n TextDocument.create = create;\n /**\n * Updates a TextDocument by modifying its content.\n *\n * @param document the document to update. Only documents created by TextDocument.create are valid inputs.\n * @param changes the changes to apply to the document.\n * @param version the changes version for the document.\n * @returns The updated TextDocument. Note: That's the same document instance passed in as first parameter.\n *\n */\n function update(document, changes, version) {\n if (document instanceof FullTextDocument) {\n document.update(changes, version);\n return document;\n }\n else {\n throw new Error('TextDocument.update: document must be created by TextDocument.create');\n }\n }\n TextDocument.update = update;\n function applyEdits(document, edits) {\n const text = document.getText();\n const sortedEdits = mergeSort(edits.map(getWellformedEdit), (a, b) => {\n const diff = a.range.start.line - b.range.start.line;\n if (diff === 0) {\n return a.range.start.character - b.range.start.character;\n }\n return diff;\n });\n let lastModifiedOffset = 0;\n const spans = [];\n for (const e of sortedEdits) {\n const startOffset = document.offsetAt(e.range.start);\n if (startOffset < lastModifiedOffset) {\n throw new Error('Overlapping edit');\n }\n else if (startOffset > lastModifiedOffset) {\n spans.push(text.substring(lastModifiedOffset, startOffset));\n }\n if (e.newText.length) {\n spans.push(e.newText);\n }\n lastModifiedOffset = document.offsetAt(e.range.end);\n }\n spans.push(text.substr(lastModifiedOffset));\n return spans.join('');\n }\n TextDocument.applyEdits = applyEdits;\n})(TextDocument || (TextDocument = {}));\nfunction mergeSort(data, compare) {\n if (data.length <= 1) {\n // sorted\n return data;\n }\n const p = (data.length / 2) | 0;\n const left = data.slice(0, p);\n const right = data.slice(p);\n mergeSort(left, compare);\n mergeSort(right, compare);\n let leftIdx = 0;\n let rightIdx = 0;\n let i = 0;\n while (leftIdx < left.length && rightIdx < right.length) {\n const ret = compare(left[leftIdx], right[rightIdx]);\n if (ret <= 0) {\n // smaller_equal -> take left to preserve order\n data[i++] = left[leftIdx++];\n }\n else {\n // greater -> take right\n data[i++] = right[rightIdx++];\n }\n }\n while (leftIdx < left.length) {\n data[i++] = left[leftIdx++];\n }\n while (rightIdx < right.length) {\n data[i++] = right[rightIdx++];\n }\n return data;\n}\nfunction computeLineOffsets(text, isAtLineStart, textOffset = 0) {\n const result = isAtLineStart ? [textOffset] : [];\n for (let i = 0; i < text.length; i++) {\n const ch = text.charCodeAt(i);\n if (isEOL(ch)) {\n if (ch === 13 /* CharCode.CarriageReturn */ && i + 1 < text.length && text.charCodeAt(i + 1) === 10 /* CharCode.LineFeed */) {\n i++;\n }\n result.push(textOffset + i + 1);\n }\n }\n return result;\n}\nfunction isEOL(char) {\n return char === 13 /* CharCode.CarriageReturn */ || char === 10 /* CharCode.LineFeed */;\n}\nfunction getWellformedRange(range) {\n const start = range.start;\n const end = range.end;\n if (start.line > end.line || (start.line === end.line && start.character > end.character)) {\n return { start: end, end: start };\n }\n return range;\n}\nfunction getWellformedEdit(textEdit) {\n const range = getWellformedRange(textEdit.range);\n if (range !== textEdit.range) {\n return { newText: textEdit.newText, range };\n }\n return textEdit;\n}\n", "// 'path' module extracted from Node.js v8.11.1 (only the posix part)\n// transplited with Babel\n\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nfunction assertPath(path) {\n if (typeof path !== 'string') {\n throw new TypeError('Path must be a string. Received ' + JSON.stringify(path));\n }\n}\n\n// Resolves . and .. elements in a path with directory names\nfunction normalizeStringPosix(path, allowAboveRoot) {\n var res = '';\n var lastSegmentLength = 0;\n var lastSlash = -1;\n var dots = 0;\n var code;\n for (var i = 0; i <= path.length; ++i) {\n if (i < path.length)\n code = path.charCodeAt(i);\n else if (code === 47 /*/*/)\n break;\n else\n code = 47 /*/*/;\n if (code === 47 /*/*/) {\n if (lastSlash === i - 1 || dots === 1) {\n // NOOP\n } else if (lastSlash !== i - 1 && dots === 2) {\n if (res.length < 2 || lastSegmentLength !== 2 || res.charCodeAt(res.length - 1) !== 46 /*.*/ || res.charCodeAt(res.length - 2) !== 46 /*.*/) {\n if (res.length > 2) {\n var lastSlashIndex = res.lastIndexOf('/');\n if (lastSlashIndex !== res.length - 1) {\n if (lastSlashIndex === -1) {\n res = '';\n lastSegmentLength = 0;\n } else {\n res = res.slice(0, lastSlashIndex);\n lastSegmentLength = res.length - 1 - res.lastIndexOf('/');\n }\n lastSlash = i;\n dots = 0;\n continue;\n }\n } else if (res.length === 2 || res.length === 1) {\n res = '';\n lastSegmentLength = 0;\n lastSlash = i;\n dots = 0;\n continue;\n }\n }\n if (allowAboveRoot) {\n if (res.length > 0)\n res += '/..';\n else\n res = '..';\n lastSegmentLength = 2;\n }\n } else {\n if (res.length > 0)\n res += '/' + path.slice(lastSlash + 1, i);\n else\n res = path.slice(lastSlash + 1, i);\n lastSegmentLength = i - lastSlash - 1;\n }\n lastSlash = i;\n dots = 0;\n } else if (code === 46 /*.*/ && dots !== -1) {\n ++dots;\n } else {\n dots = -1;\n }\n }\n return res;\n}\n\nfunction _format(sep, pathObject) {\n var dir = pathObject.dir || pathObject.root;\n var base = pathObject.base || (pathObject.name || '') + (pathObject.ext || '');\n if (!dir) {\n return base;\n }\n if (dir === pathObject.root) {\n return dir + base;\n }\n return dir + sep + base;\n}\n\nvar posix = {\n // path.resolve([from ...], to)\n resolve: function resolve() {\n var resolvedPath = '';\n var resolvedAbsolute = false;\n var cwd;\n\n for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n var path;\n if (i >= 0)\n path = arguments[i];\n else {\n if (cwd === undefined)\n cwd = process.cwd();\n path = cwd;\n }\n\n assertPath(path);\n\n // Skip empty entries\n if (path.length === 0) {\n continue;\n }\n\n resolvedPath = path + '/' + resolvedPath;\n resolvedAbsolute = path.charCodeAt(0) === 47 /*/*/;\n }\n\n // At this point the path should be resolved to a full absolute path, but\n // handle relative paths to be safe (might happen when process.cwd() fails)\n\n // Normalize the path\n resolvedPath = normalizeStringPosix(resolvedPath, !resolvedAbsolute);\n\n if (resolvedAbsolute) {\n if (resolvedPath.length > 0)\n return '/' + resolvedPath;\n else\n return '/';\n } else if (resolvedPath.length > 0) {\n return resolvedPath;\n } else {\n return '.';\n }\n },\n\n normalize: function normalize(path) {\n assertPath(path);\n\n if (path.length === 0) return '.';\n\n var isAbsolute = path.charCodeAt(0) === 47 /*/*/;\n var trailingSeparator = path.charCodeAt(path.length - 1) === 47 /*/*/;\n\n // Normalize the path\n path = normalizeStringPosix(path, !isAbsolute);\n\n if (path.length === 0 && !isAbsolute) path = '.';\n if (path.length > 0 && trailingSeparator) path += '/';\n\n if (isAbsolute) return '/' + path;\n return path;\n },\n\n isAbsolute: function isAbsolute(path) {\n assertPath(path);\n return path.length > 0 && path.charCodeAt(0) === 47 /*/*/;\n },\n\n join: function join() {\n if (arguments.length === 0)\n return '.';\n var joined;\n for (var i = 0; i < arguments.length; ++i) {\n var arg = arguments[i];\n assertPath(arg);\n if (arg.length > 0) {\n if (joined === undefined)\n joined = arg;\n else\n joined += '/' + arg;\n }\n }\n if (joined === undefined)\n return '.';\n return posix.normalize(joined);\n },\n\n relative: function relative(from, to) {\n assertPath(from);\n assertPath(to);\n\n if (from === to) return '';\n\n from = posix.resolve(from);\n to = posix.resolve(to);\n\n if (from === to) return '';\n\n // Trim any leading backslashes\n var fromStart = 1;\n for (; fromStart < from.length; ++fromStart) {\n if (from.charCodeAt(fromStart) !== 47 /*/*/)\n break;\n }\n var fromEnd = from.length;\n var fromLen = fromEnd - fromStart;\n\n // Trim any leading backslashes\n var toStart = 1;\n for (; toStart < to.length; ++toStart) {\n if (to.charCodeAt(toStart) !== 47 /*/*/)\n break;\n }\n var toEnd = to.length;\n var toLen = toEnd - toStart;\n\n // Compare paths to find the longest common path from root\n var length = fromLen < toLen ? fromLen : toLen;\n var lastCommonSep = -1;\n var i = 0;\n for (; i <= length; ++i) {\n if (i === length) {\n if (toLen > length) {\n if (to.charCodeAt(toStart + i) === 47 /*/*/) {\n // We get here if `from` is the exact base path for `to`.\n // For example: from='/foo/bar'; to='/foo/bar/baz'\n return to.slice(toStart + i + 1);\n } else if (i === 0) {\n // We get here if `from` is the root\n // For example: from='/'; to='/foo'\n return to.slice(toStart + i);\n }\n } else if (fromLen > length) {\n if (from.charCodeAt(fromStart + i) === 47 /*/*/) {\n // We get here if `to` is the exact base path for `from`.\n // For example: from='/foo/bar/baz'; to='/foo/bar'\n lastCommonSep = i;\n } else if (i === 0) {\n // We get here if `to` is the root.\n // For example: from='/foo'; to='/'\n lastCommonSep = 0;\n }\n }\n break;\n }\n var fromCode = from.charCodeAt(fromStart + i);\n var toCode = to.charCodeAt(toStart + i);\n if (fromCode !== toCode)\n break;\n else if (fromCode === 47 /*/*/)\n lastCommonSep = i;\n }\n\n var out = '';\n // Generate the relative path based on the path difference between `to`\n // and `from`\n for (i = fromStart + lastCommonSep + 1; i <= fromEnd; ++i) {\n if (i === fromEnd || from.charCodeAt(i) === 47 /*/*/) {\n if (out.length === 0)\n out += '..';\n else\n out += '/..';\n }\n }\n\n // Lastly, append the rest of the destination (`to`) path that comes after\n // the common path parts\n if (out.length > 0)\n return out + to.slice(toStart + lastCommonSep);\n else {\n toStart += lastCommonSep;\n if (to.charCodeAt(toStart) === 47 /*/*/)\n ++toStart;\n return to.slice(toStart);\n }\n },\n\n _makeLong: function _makeLong(path) {\n return path;\n },\n\n dirname: function dirname(path) {\n assertPath(path);\n if (path.length === 0) return '.';\n var code = path.charCodeAt(0);\n var hasRoot = code === 47 /*/*/;\n var end = -1;\n var matchedSlash = true;\n for (var i = path.length - 1; i >= 1; --i) {\n code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n if (!matchedSlash) {\n end = i;\n break;\n }\n } else {\n // We saw the first non-path separator\n matchedSlash = false;\n }\n }\n\n if (end === -1) return hasRoot ? '/' : '.';\n if (hasRoot && end === 1) return '//';\n return path.slice(0, end);\n },\n\n basename: function basename(path, ext) {\n if (ext !== undefined && typeof ext !== 'string') throw new TypeError('\"ext\" argument must be a string');\n assertPath(path);\n\n var start = 0;\n var end = -1;\n var matchedSlash = true;\n var i;\n\n if (ext !== undefined && ext.length > 0 && ext.length <= path.length) {\n if (ext.length === path.length && ext === path) return '';\n var extIdx = ext.length - 1;\n var firstNonSlashEnd = -1;\n for (i = path.length - 1; i >= 0; --i) {\n var code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n start = i + 1;\n break;\n }\n } else {\n if (firstNonSlashEnd === -1) {\n // We saw the first non-path separator, remember this index in case\n // we need it if the extension ends up not matching\n matchedSlash = false;\n firstNonSlashEnd = i + 1;\n }\n if (extIdx >= 0) {\n // Try to match the explicit extension\n if (code === ext.charCodeAt(extIdx)) {\n if (--extIdx === -1) {\n // We matched the extension, so mark this as the end of our path\n // component\n end = i;\n }\n } else {\n // Extension does not match, so our result is the entire path\n // component\n extIdx = -1;\n end = firstNonSlashEnd;\n }\n }\n }\n }\n\n if (start === end) end = firstNonSlashEnd;else if (end === -1) end = path.length;\n return path.slice(start, end);\n } else {\n for (i = path.length - 1; i >= 0; --i) {\n if (path.charCodeAt(i) === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n start = i + 1;\n break;\n }\n } else if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // path component\n matchedSlash = false;\n end = i + 1;\n }\n }\n\n if (end === -1) return '';\n return path.slice(start, end);\n }\n },\n\n extname: function extname(path) {\n assertPath(path);\n var startDot = -1;\n var startPart = 0;\n var end = -1;\n var matchedSlash = true;\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find\n var preDotState = 0;\n for (var i = path.length - 1; i >= 0; --i) {\n var code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n startPart = i + 1;\n break;\n }\n continue;\n }\n if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // extension\n matchedSlash = false;\n end = i + 1;\n }\n if (code === 46 /*.*/) {\n // If this is our first dot, mark it as the start of our extension\n if (startDot === -1)\n startDot = i;\n else if (preDotState !== 1)\n preDotState = 1;\n } else if (startDot !== -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension\n preDotState = -1;\n }\n }\n\n if (startDot === -1 || end === -1 ||\n // We saw a non-dot character immediately before the dot\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly '..'\n preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {\n return '';\n }\n return path.slice(startDot, end);\n },\n\n format: function format(pathObject) {\n if (pathObject === null || typeof pathObject !== 'object') {\n throw new TypeError('The \"pathObject\" argument must be of type Object. Received type ' + typeof pathObject);\n }\n return _format('/', pathObject);\n },\n\n parse: function parse(path) {\n assertPath(path);\n\n var ret = { root: '', dir: '', base: '', ext: '', name: '' };\n if (path.length === 0) return ret;\n var code = path.charCodeAt(0);\n var isAbsolute = code === 47 /*/*/;\n var start;\n if (isAbsolute) {\n ret.root = '/';\n start = 1;\n } else {\n start = 0;\n }\n var startDot = -1;\n var startPart = 0;\n var end = -1;\n var matchedSlash = true;\n var i = path.length - 1;\n\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find\n var preDotState = 0;\n\n // Get non-dir info\n for (; i >= start; --i) {\n code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n startPart = i + 1;\n break;\n }\n continue;\n }\n if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // extension\n matchedSlash = false;\n end = i + 1;\n }\n if (code === 46 /*.*/) {\n // If this is our first dot, mark it as the start of our extension\n if (startDot === -1) startDot = i;else if (preDotState !== 1) preDotState = 1;\n } else if (startDot !== -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension\n preDotState = -1;\n }\n }\n\n if (startDot === -1 || end === -1 ||\n // We saw a non-dot character immediately before the dot\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly '..'\n preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {\n if (end !== -1) {\n if (startPart === 0 && isAbsolute) ret.base = ret.name = path.slice(1, end);else ret.base = ret.name = path.slice(startPart, end);\n }\n } else {\n if (startPart === 0 && isAbsolute) {\n ret.name = path.slice(1, startDot);\n ret.base = path.slice(1, end);\n } else {\n ret.name = path.slice(startPart, startDot);\n ret.base = path.slice(startPart, end);\n }\n ret.ext = path.slice(startDot, end);\n }\n\n if (startPart > 0) ret.dir = path.slice(0, startPart - 1);else if (isAbsolute) ret.dir = '/';\n\n return ret;\n },\n\n sep: '/',\n delimiter: ':',\n win32: null,\n posix: null\n};\n\nposix.posix = posix;\n\nmodule.exports = posix;\n", "// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n", "// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};", "__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))", "// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};", "/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n'use strict';\n\n// !!!!!\n// SEE https://github.com/microsoft/vscode/blob/master/src/vs/base/common/platform.ts\n// !!!!!\n\ndeclare const process: { platform: 'win32' };\ndeclare const navigator: { userAgent: string };\n\nexport let isWindows: boolean;\n\nif (typeof process === 'object') {\n\tisWindows = process.platform === 'win32';\n} else if (typeof navigator === 'object') {\n\tlet userAgent = navigator.userAgent;\n\tisWindows = userAgent.indexOf('Windows') >= 0;\n}\n", "/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n'use strict';\n\nimport { CharCode } from './charCode'\nimport { isWindows } from './platform';\n\nconst _schemePattern = /^\\w[\\w\\d+.-]*$/;\nconst _singleSlashStart = /^\\//;\nconst _doubleSlashStart = /^\\/\\//;\n\nfunction _validateUri(ret: URI, _strict?: boolean): void {\n\n\t// scheme, must be set\n\tif (!ret.scheme && _strict) {\n\t\tthrow new Error(`[UriError]: Scheme is missing: {scheme: \"\", authority: \"${ret.authority}\", path: \"${ret.path}\", query: \"${ret.query}\", fragment: \"${ret.fragment}\"}`);\n\t}\n\n\t// scheme, https://tools.ietf.org/html/rfc3986#section-3.1\n\t// ALPHA *( ALPHA / DIGIT / \"+\" / \"-\" / \".\" )\n\tif (ret.scheme && !_schemePattern.test(ret.scheme)) {\n\t\tthrow new Error('[UriError]: Scheme contains illegal characters.');\n\t}\n\n\t// path, http://tools.ietf.org/html/rfc3986#section-3.3\n\t// If a URI contains an authority component, then the path component\n\t// must either be empty or begin with a slash (\"/\") character. If a URI\n\t// does not contain an authority component, then the path cannot begin\n\t// with two slash characters (\"//\").\n\tif (ret.path) {\n\t\tif (ret.authority) {\n\t\t\tif (!_singleSlashStart.test(ret.path)) {\n\t\t\t\tthrow new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash (\"/\") character');\n\t\t\t}\n\t\t} else {\n\t\t\tif (_doubleSlashStart.test(ret.path)) {\n\t\t\t\tthrow new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters (\"//\")');\n\t\t\t}\n\t\t}\n\t}\n}\n\n// for a while we allowed uris *without* schemes and this is the migration\n// for them, e.g. an uri without scheme and without strict-mode warns and falls\n// back to the file-scheme. that should cause the least carnage and still be a\n// clear warning\nfunction _schemeFix(scheme: string, _strict: boolean): string {\n\tif (!scheme && !_strict) {\n\t\treturn 'file';\n\t}\n\treturn scheme;\n}\n\n// implements a bit of https://tools.ietf.org/html/rfc3986#section-5\nfunction _referenceResolution(scheme: string, path: string): string {\n\n\t// the slash-character is our 'default base' as we don't\n\t// support constructing URIs relative to other URIs. This\n\t// also means that we alter and potentially break paths.\n\t// see https://tools.ietf.org/html/rfc3986#section-5.1.4\n\tswitch (scheme) {\n\t\tcase 'https':\n\t\tcase 'http':\n\t\tcase 'file':\n\t\t\tif (!path) {\n\t\t\t\tpath = _slash;\n\t\t\t} else if (path[0] !== _slash) {\n\t\t\t\tpath = _slash + path;\n\t\t\t}\n\t\t\tbreak;\n\t}\n\treturn path;\n}\n\nconst _empty = '';\nconst _slash = '/';\nconst _regexp = /^(([^:/?#]+?):)?(\\/\\/([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?/;\n\n/**\n * Uniform Resource Identifier (URI) http://tools.ietf.org/html/rfc3986.\n * This class is a simple parser which creates the basic component parts\n * (http://tools.ietf.org/html/rfc3986#section-3) with minimal validation\n * and encoding.\n *\n * ```txt\n * foo://example.com:8042/over/there?name=ferret#nose\n * \\_/ \\______________/\\_________/ \\_________/ \\__/\n * | | | | |\n * scheme authority path query fragment\n * | _____________________|__\n * / \\ / \\\n * urn:example:animal:ferret:nose\n * ```\n */\nexport class URI implements UriComponents {\n\n\tstatic isUri(thing: any): thing is URI {\n\t\tif (thing instanceof URI) {\n\t\t\treturn true;\n\t\t}\n\t\tif (!thing) {\n\t\t\treturn false;\n\t\t}\n\t\treturn typeof (thing).authority === 'string'\n\t\t\t&& typeof (thing).fragment === 'string'\n\t\t\t&& typeof (thing).path === 'string'\n\t\t\t&& typeof (thing).query === 'string'\n\t\t\t&& typeof (thing).scheme === 'string'\n\t\t\t&& typeof (thing).fsPath === 'string'\n\t\t\t&& typeof (thing).with === 'function'\n\t\t\t&& typeof (thing).toString === 'function';\n\t}\n\n\t/**\n\t * scheme is the 'http' part of 'http://www.example.com/some/path?query#fragment'.\n\t * The part before the first colon.\n\t */\n\treadonly scheme: string;\n\n\t/**\n\t * authority is the 'www.example.com' part of 'http://www.example.com/some/path?query#fragment'.\n\t * The part between the first double slashes and the next slash.\n\t */\n\treadonly authority: string;\n\n\t/**\n\t * path is the '/some/path' part of 'http://www.example.com/some/path?query#fragment'.\n\t */\n\treadonly path: string;\n\n\t/**\n\t * query is the 'query' part of 'http://www.example.com/some/path?query#fragment'.\n\t */\n\treadonly query: string;\n\n\t/**\n\t * fragment is the 'fragment' part of 'http://www.example.com/some/path?query#fragment'.\n\t */\n\treadonly fragment: string;\n\n\t/**\n\t * @internal\n\t */\n\tprotected constructor(scheme: string, authority?: string, path?: string, query?: string, fragment?: string, _strict?: boolean);\n\n\t/**\n\t * @internal\n\t */\n\tprotected constructor(components: UriComponents);\n\n\t/**\n\t * @internal\n\t */\n\tprotected constructor(schemeOrData: string | UriComponents, authority?: string, path?: string, query?: string, fragment?: string, _strict: boolean = false) {\n\n\t\tif (typeof schemeOrData === 'object') {\n\t\t\tthis.scheme = schemeOrData.scheme || _empty;\n\t\t\tthis.authority = schemeOrData.authority || _empty;\n\t\t\tthis.path = schemeOrData.path || _empty;\n\t\t\tthis.query = schemeOrData.query || _empty;\n\t\t\tthis.fragment = schemeOrData.fragment || _empty;\n\t\t\t// no validation because it's this URI\n\t\t\t// that creates uri components.\n\t\t\t// _validateUri(this);\n\t\t} else {\n\t\t\tthis.scheme = _schemeFix(schemeOrData, _strict);\n\t\t\tthis.authority = authority || _empty;\n\t\t\tthis.path = _referenceResolution(this.scheme, path || _empty);\n\t\t\tthis.query = query || _empty;\n\t\t\tthis.fragment = fragment || _empty;\n\n\t\t\t_validateUri(this, _strict);\n\t\t}\n\t}\n\n\t// ---- filesystem path -----------------------\n\n\t/**\n\t * Returns a string representing the corresponding file system path of this URI.\n\t * Will handle UNC paths, normalizes windows drive letters to lower-case, and uses the\n\t * platform specific path separator.\n\t *\n\t * * Will *not* validate the path for invalid characters and semantics.\n\t * * Will *not* look at the scheme of this URI.\n\t * * The result shall *not* be used for display purposes but for accessing a file on disk.\n\t *\n\t *\n\t * The *difference* to `URI#path` is the use of the platform specific separator and the handling\n\t * of UNC paths. See the below sample of a file-uri with an authority (UNC path).\n\t *\n\t * ```ts\n\t\tconst u = URI.parse('file://server/c$/folder/file.txt')\n\t\tu.authority === 'server'\n\t\tu.path === '/shares/c$/file.txt'\n\t\tu.fsPath === '\\\\server\\c$\\folder\\file.txt'\n\t```\n\t *\n\t * Using `URI#path` to read a file (using fs-apis) would not be enough because parts of the path,\n\t * namely the server name, would be missing. Therefore `URI#fsPath` exists - it's sugar to ease working\n\t * with URIs that represent files on disk (`file` scheme).\n\t */\n\tget fsPath(): string {\n\t\t// if (this.scheme !== 'file') {\n\t\t// \tconsole.warn(`[UriError] calling fsPath with scheme ${this.scheme}`);\n\t\t// }\n\t\treturn uriToFsPath(this, false);\n\t}\n\n\t// ---- modify to new -------------------------\n\n\twith(change: { scheme?: string; authority?: string | null; path?: string | null; query?: string | null; fragment?: string | null }): URI {\n\n\t\tif (!change) {\n\t\t\treturn this;\n\t\t}\n\n\t\tlet { scheme, authority, path, query, fragment } = change;\n\t\tif (scheme === undefined) {\n\t\t\tscheme = this.scheme;\n\t\t} else if (scheme === null) {\n\t\t\tscheme = _empty;\n\t\t}\n\t\tif (authority === undefined) {\n\t\t\tauthority = this.authority;\n\t\t} else if (authority === null) {\n\t\t\tauthority = _empty;\n\t\t}\n\t\tif (path === undefined) {\n\t\t\tpath = this.path;\n\t\t} else if (path === null) {\n\t\t\tpath = _empty;\n\t\t}\n\t\tif (query === undefined) {\n\t\t\tquery = this.query;\n\t\t} else if (query === null) {\n\t\t\tquery = _empty;\n\t\t}\n\t\tif (fragment === undefined) {\n\t\t\tfragment = this.fragment;\n\t\t} else if (fragment === null) {\n\t\t\tfragment = _empty;\n\t\t}\n\n\t\tif (scheme === this.scheme\n\t\t\t&& authority === this.authority\n\t\t\t&& path === this.path\n\t\t\t&& query === this.query\n\t\t\t&& fragment === this.fragment) {\n\n\t\t\treturn this;\n\t\t}\n\n\t\treturn new Uri(scheme, authority, path, query, fragment);\n\t}\n\n\t// ---- parse & validate ------------------------\n\n\t/**\n\t * Creates a new URI from a string, e.g. `http://www.example.com/some/path`,\n\t * `file:///usr/home`, or `scheme:with/path`.\n\t *\n\t * @param value A string which represents an URI (see `URI#toString`).\n\t */\n\tstatic parse(value: string, _strict: boolean = false): URI {\n\t\tconst match = _regexp.exec(value);\n\t\tif (!match) {\n\t\t\treturn new Uri(_empty, _empty, _empty, _empty, _empty);\n\t\t}\n\t\treturn new Uri(\n\t\t\tmatch[2] || _empty,\n\t\t\tpercentDecode(match[4] || _empty),\n\t\t\tpercentDecode(match[5] || _empty),\n\t\t\tpercentDecode(match[7] || _empty),\n\t\t\tpercentDecode(match[9] || _empty),\n\t\t\t_strict\n\t\t);\n\t}\n\n\t/**\n\t * Creates a new URI from a file system path, e.g. `c:\\my\\files`,\n\t * `/usr/home`, or `\\\\server\\share\\some\\path`.\n\t *\n\t * The *difference* between `URI#parse` and `URI#file` is that the latter treats the argument\n\t * as path, not as stringified-uri. E.g. `URI.file(path)` is **not the same as**\n\t * `URI.parse('file://' + path)` because the path might contain characters that are\n\t * interpreted (# and ?). See the following sample:\n\t * ```ts\n\tconst good = URI.file('/coding/c#/project1');\n\tgood.scheme === 'file';\n\tgood.path === '/coding/c#/project1';\n\tgood.fragment === '';\n\tconst bad = URI.parse('file://' + '/coding/c#/project1');\n\tbad.scheme === 'file';\n\tbad.path === '/coding/c'; // path is now broken\n\tbad.fragment === '/project1';\n\t```\n\t *\n\t * @param path A file system path (see `URI#fsPath`)\n\t */\n\tstatic file(path: string): URI {\n\n\t\tlet authority = _empty;\n\n\t\t// normalize to fwd-slashes on windows,\n\t\t// on other systems bwd-slashes are valid\n\t\t// filename character, eg /f\\oo/ba\\r.txt\n\t\tif (isWindows) {\n\t\t\tpath = path.replace(/\\\\/g, _slash);\n\t\t}\n\n\t\t// check for authority as used in UNC shares\n\t\t// or use the path as given\n\t\tif (path[0] === _slash && path[1] === _slash) {\n\t\t\tconst idx = path.indexOf(_slash, 2);\n\t\t\tif (idx === -1) {\n\t\t\t\tauthority = path.substring(2);\n\t\t\t\tpath = _slash;\n\t\t\t} else {\n\t\t\t\tauthority = path.substring(2, idx);\n\t\t\t\tpath = path.substring(idx) || _slash;\n\t\t\t}\n\t\t}\n\n\t\treturn new Uri('file', authority, path, _empty, _empty);\n\t}\n\n\tstatic from(components: { scheme: string; authority?: string; path?: string; query?: string; fragment?: string }): URI {\n\t\tconst result = new Uri(\n\t\t\tcomponents.scheme,\n\t\t\tcomponents.authority,\n\t\t\tcomponents.path,\n\t\t\tcomponents.query,\n\t\t\tcomponents.fragment,\n\t\t);\n\t\t_validateUri(result, true);\n\t\treturn result;\n\t}\n\n\t// ---- printing/externalize ---------------------------\n\n\t/**\n\t * Creates a string representation for this URI. It's guaranteed that calling\n\t * `URI.parse` with the result of this function creates an URI which is equal\n\t * to this URI.\n\t *\n\t * * The result shall *not* be used for display purposes but for externalization or transport.\n\t * * The result will be encoded using the percentage encoding and encoding happens mostly\n\t * ignore the scheme-specific encoding rules.\n\t *\n\t * @param skipEncoding Do not encode the result, default is `false`\n\t */\n\ttoString(skipEncoding: boolean = false): string {\n\t\treturn _asFormatted(this, skipEncoding);\n\t}\n\n\ttoJSON(): UriComponents {\n\t\treturn this;\n\t}\n\n\tstatic revive(data: UriComponents | URI): URI;\n\tstatic revive(data: UriComponents | URI | undefined): URI | undefined;\n\tstatic revive(data: UriComponents | URI | null): URI | null;\n\tstatic revive(data: UriComponents | URI | undefined | null): URI | undefined | null;\n\tstatic revive(data: UriComponents | URI | undefined | null): URI | undefined | null {\n\t\tif (!data) {\n\t\t\treturn data;\n\t\t} else if (data instanceof URI) {\n\t\t\treturn data;\n\t\t} else {\n\t\t\tconst result = new Uri(data);\n\t\t\tresult._formatted = (data).external;\n\t\t\tresult._fsPath = (data)._sep === _pathSepMarker ? (data).fsPath : null;\n\t\t\treturn result;\n\t\t}\n\t}\n}\n\nexport interface UriComponents {\n\tscheme: string;\n\tauthority: string;\n\tpath: string;\n\tquery: string;\n\tfragment: string;\n}\n\ninterface UriState extends UriComponents {\n\t$mid: number;\n\texternal: string;\n\tfsPath: string;\n\t_sep: 1 | undefined;\n}\n\nconst _pathSepMarker = isWindows ? 1 : undefined;\n\n// This class exists so that URI is compatible with vscode.Uri (API).\nclass Uri extends URI {\n\n\t_formatted: string | null = null;\n\t_fsPath: string | null = null;\n\n\toverride get fsPath(): string {\n\t\tif (!this._fsPath) {\n\t\t\tthis._fsPath = uriToFsPath(this, false);\n\t\t}\n\t\treturn this._fsPath;\n\t}\n\n\toverride toString(skipEncoding: boolean = false): string {\n\t\tif (!skipEncoding) {\n\t\t\tif (!this._formatted) {\n\t\t\t\tthis._formatted = _asFormatted(this, false);\n\t\t\t}\n\t\t\treturn this._formatted;\n\t\t} else {\n\t\t\t// we don't cache that\n\t\t\treturn _asFormatted(this, true);\n\t\t}\n\t}\n\n\toverride toJSON(): UriComponents {\n\t\tconst res = {\n\t\t\t$mid: 1\n\t\t};\n\t\t// cached state\n\t\tif (this._fsPath) {\n\t\t\tres.fsPath = this._fsPath;\n\t\t\tres._sep = _pathSepMarker;\n\t\t}\n\t\tif (this._formatted) {\n\t\t\tres.external = this._formatted;\n\t\t}\n\t\t// uri components\n\t\tif (this.path) {\n\t\t\tres.path = this.path;\n\t\t}\n\t\tif (this.scheme) {\n\t\t\tres.scheme = this.scheme;\n\t\t}\n\t\tif (this.authority) {\n\t\t\tres.authority = this.authority;\n\t\t}\n\t\tif (this.query) {\n\t\t\tres.query = this.query;\n\t\t}\n\t\tif (this.fragment) {\n\t\t\tres.fragment = this.fragment;\n\t\t}\n\t\treturn res;\n\t}\n}\n\n// reserved characters: https://tools.ietf.org/html/rfc3986#section-2.2\nconst encodeTable: { [ch: number]: string } = {\n\t[CharCode.Colon]: '%3A', // gen-delims\n\t[CharCode.Slash]: '%2F',\n\t[CharCode.QuestionMark]: '%3F',\n\t[CharCode.Hash]: '%23',\n\t[CharCode.OpenSquareBracket]: '%5B',\n\t[CharCode.CloseSquareBracket]: '%5D',\n\t[CharCode.AtSign]: '%40',\n\n\t[CharCode.ExclamationMark]: '%21', // sub-delims\n\t[CharCode.DollarSign]: '%24',\n\t[CharCode.Ampersand]: '%26',\n\t[CharCode.SingleQuote]: '%27',\n\t[CharCode.OpenParen]: '%28',\n\t[CharCode.CloseParen]: '%29',\n\t[CharCode.Asterisk]: '%2A',\n\t[CharCode.Plus]: '%2B',\n\t[CharCode.Comma]: '%2C',\n\t[CharCode.Semicolon]: '%3B',\n\t[CharCode.Equals]: '%3D',\n\n\t[CharCode.Space]: '%20',\n};\n\nfunction encodeURIComponentFast(uriComponent: string, isPath: boolean, isAuthority: boolean): string {\n\tlet res: string | undefined = undefined;\n\tlet nativeEncodePos = -1;\n\n\tfor (let pos = 0; pos < uriComponent.length; pos++) {\n\t\tconst code = uriComponent.charCodeAt(pos);\n\n\t\t// unreserved characters: https://tools.ietf.org/html/rfc3986#section-2.3\n\t\tif (\n\t\t\t(code >= CharCode.a && code <= CharCode.z)\n\t\t\t|| (code >= CharCode.A && code <= CharCode.Z)\n\t\t\t|| (code >= CharCode.Digit0 && code <= CharCode.Digit9)\n\t\t\t|| code === CharCode.Dash\n\t\t\t|| code === CharCode.Period\n\t\t\t|| code === CharCode.Underline\n\t\t\t|| code === CharCode.Tilde\n\t\t\t|| (isPath && code === CharCode.Slash)\n\t\t\t|| (isAuthority && code === CharCode.OpenSquareBracket)\n\t\t\t|| (isAuthority && code === CharCode.CloseSquareBracket)\n\t\t\t|| (isAuthority && code === CharCode.Colon)\n\t\t) {\n\t\t\t// check if we are delaying native encode\n\t\t\tif (nativeEncodePos !== -1) {\n\t\t\t\tres += encodeURIComponent(uriComponent.substring(nativeEncodePos, pos));\n\t\t\t\tnativeEncodePos = -1;\n\t\t\t}\n\t\t\t// check if we write into a new string (by default we try to return the param)\n\t\t\tif (res !== undefined) {\n\t\t\t\tres += uriComponent.charAt(pos);\n\t\t\t}\n\n\t\t} else {\n\t\t\t// encoding needed, we need to allocate a new string\n\t\t\tif (res === undefined) {\n\t\t\t\tres = uriComponent.substr(0, pos);\n\t\t\t}\n\n\t\t\t// check with default table first\n\t\t\tconst escaped = encodeTable[code];\n\t\t\tif (escaped !== undefined) {\n\n\t\t\t\t// check if we are delaying native encode\n\t\t\t\tif (nativeEncodePos !== -1) {\n\t\t\t\t\tres += encodeURIComponent(uriComponent.substring(nativeEncodePos, pos));\n\t\t\t\t\tnativeEncodePos = -1;\n\t\t\t\t}\n\n\t\t\t\t// append escaped variant to result\n\t\t\t\tres += escaped;\n\n\t\t\t} else if (nativeEncodePos === -1) {\n\t\t\t\t// use native encode only when needed\n\t\t\t\tnativeEncodePos = pos;\n\t\t\t}\n\t\t}\n\t}\n\n\tif (nativeEncodePos !== -1) {\n\t\tres += encodeURIComponent(uriComponent.substring(nativeEncodePos));\n\t}\n\n\treturn res !== undefined ? res : uriComponent;\n}\n\nfunction encodeURIComponentMinimal(path: string): string {\n\tlet res: string | undefined = undefined;\n\tfor (let pos = 0; pos < path.length; pos++) {\n\t\tconst code = path.charCodeAt(pos);\n\t\tif (code === CharCode.Hash || code === CharCode.QuestionMark) {\n\t\t\tif (res === undefined) {\n\t\t\t\tres = path.substr(0, pos);\n\t\t\t}\n\t\t\tres += encodeTable[code];\n\t\t} else {\n\t\t\tif (res !== undefined) {\n\t\t\t\tres += path[pos];\n\t\t\t}\n\t\t}\n\t}\n\treturn res !== undefined ? res : path;\n}\n\n/**\n * Compute `fsPath` for the given uri\n */\nexport function uriToFsPath(uri: URI, keepDriveLetterCasing: boolean): string {\n\n\tlet value: string;\n\tif (uri.authority && uri.path.length > 1 && uri.scheme === 'file') {\n\t\t// unc path: file://shares/c$/far/boo\n\t\tvalue = `//${uri.authority}${uri.path}`;\n\t} else if (\n\t\turi.path.charCodeAt(0) === CharCode.Slash\n\t\t&& (uri.path.charCodeAt(1) >= CharCode.A && uri.path.charCodeAt(1) <= CharCode.Z || uri.path.charCodeAt(1) >= CharCode.a && uri.path.charCodeAt(1) <= CharCode.z)\n\t\t&& uri.path.charCodeAt(2) === CharCode.Colon\n\t) {\n\t\tif (!keepDriveLetterCasing) {\n\t\t\t// windows drive letter: file:///c:/far/boo\n\t\t\tvalue = uri.path[1].toLowerCase() + uri.path.substr(2);\n\t\t} else {\n\t\t\tvalue = uri.path.substr(1);\n\t\t}\n\t} else {\n\t\t// other path\n\t\tvalue = uri.path;\n\t}\n\tif (isWindows) {\n\t\tvalue = value.replace(/\\//g, '\\\\');\n\t}\n\treturn value;\n}\n\n/**\n * Create the external version of a uri\n */\nfunction _asFormatted(uri: URI, skipEncoding: boolean): string {\n\n\tconst encoder = !skipEncoding\n\t\t? encodeURIComponentFast\n\t\t: encodeURIComponentMinimal;\n\n\tlet res = '';\n\tlet { scheme, authority, path, query, fragment } = uri;\n\tif (scheme) {\n\t\tres += scheme;\n\t\tres += ':';\n\t}\n\tif (authority || scheme === 'file') {\n\t\tres += _slash;\n\t\tres += _slash;\n\t}\n\tif (authority) {\n\t\tlet idx = authority.indexOf('@');\n\t\tif (idx !== -1) {\n\t\t\t// @\n\t\t\tconst userinfo = authority.substr(0, idx);\n\t\t\tauthority = authority.substr(idx + 1);\n\t\t\tidx = userinfo.lastIndexOf(':');\n\t\t\tif (idx === -1) {\n\t\t\t\tres += encoder(userinfo, false, false);\n\t\t\t} else {\n\t\t\t\t// :@\n\t\t\t\tres += encoder(userinfo.substr(0, idx), false, false);\n\t\t\t\tres += ':';\n\t\t\t\tres += encoder(userinfo.substr(idx + 1), false, true);\n\t\t\t}\n\t\t\tres += '@';\n\t\t}\n\t\tauthority = authority.toLowerCase();\n\t\tidx = authority.lastIndexOf(':');\n\t\tif (idx === -1) {\n\t\t\tres += encoder(authority, false, true);\n\t\t} else {\n\t\t\t// :\n\t\t\tres += encoder(authority.substr(0, idx), false, true);\n\t\t\tres += authority.substr(idx);\n\t\t}\n\t}\n\tif (path) {\n\t\t// lower-case windows drive letters in /C:/fff or C:/fff\n\t\tif (path.length >= 3 && path.charCodeAt(0) === CharCode.Slash && path.charCodeAt(2) === CharCode.Colon) {\n\t\t\tconst code = path.charCodeAt(1);\n\t\t\tif (code >= CharCode.A && code <= CharCode.Z) {\n\t\t\t\tpath = `/${String.fromCharCode(code + 32)}:${path.substr(3)}`; // \"/c:\".length === 3\n\t\t\t}\n\t\t} else if (path.length >= 2 && path.charCodeAt(1) === CharCode.Colon) {\n\t\t\tconst code = path.charCodeAt(0);\n\t\t\tif (code >= CharCode.A && code <= CharCode.Z) {\n\t\t\t\tpath = `${String.fromCharCode(code + 32)}:${path.substr(2)}`; // \"/c:\".length === 3\n\t\t\t}\n\t\t}\n\t\t// encode the rest of the path\n\t\tres += encoder(path, true, false);\n\t}\n\tif (query) {\n\t\tres += '?';\n\t\tres += encoder(query, false, false);\n\t}\n\tif (fragment) {\n\t\tres += '#';\n\t\tres += !skipEncoding ? encodeURIComponentFast(fragment, false, false) : fragment;\n\t}\n\treturn res;\n}\n\n// --- decode\n\nfunction decodeURIComponentGraceful(str: string): string {\n\ttry {\n\t\treturn decodeURIComponent(str);\n\t} catch {\n\t\tif (str.length > 3) {\n\t\t\treturn str.substr(0, 3) + decodeURIComponentGraceful(str.substr(3));\n\t\t} else {\n\t\t\treturn str;\n\t\t}\n\t}\n}\n\nconst _rEncodedAsHex = /(%[0-9A-Za-z][0-9A-Za-z])+/g;\n\nfunction percentDecode(str: string): string {\n\tif (!str.match(_rEncodedAsHex)) {\n\t\treturn str;\n\t}\n\treturn str.replace(_rEncodedAsHex, (match) => decodeURIComponentGraceful(match));\n}\n\n/**\n * Mapped-type that replaces all occurrences of URI with UriComponents\n */\nexport type UriDto = { [K in keyof T]: T[K] extends URI\n\t? UriComponents\n\t: UriDto };\n", "/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n'use strict';\n\nimport { CharCode } from './charCode';\nimport { URI } from './uri';\nimport * as nodePath from 'path';\n\nconst posixPath = nodePath.posix || nodePath;\nconst slash = '/';\n\nexport namespace Utils {\n\n /**\n * Joins one or more input paths to the path of URI. \n * '/' is used as the directory separation character. \n * \n * The resolved path will be normalized. That means:\n * - all '..' and '.' segments are resolved.\n * - multiple, sequential occurences of '/' are replaced by a single instance of '/'.\n * - trailing separators are preserved.\n * \n * @param uri The input URI.\n * @param paths The paths to be joined with the path of URI.\n * @returns A URI with the joined path. All other properties of the URI (scheme, authority, query, fragments, ...) will be taken from the input URI.\n */\n export function joinPath(uri: URI, ...paths: string[]): URI {\n return uri.with({ path: posixPath.join(uri.path, ...paths) });\n }\n\n\n /**\n * Resolves one or more paths against the path of a URI. \n * '/' is used as the directory separation character. \n * \n * The resolved path will be normalized. That means:\n * - all '..' and '.' segments are resolved. \n * - multiple, sequential occurences of '/' are replaced by a single instance of '/'.\n * - trailing separators are removed.\n * \n * @param uri The input URI.\n * @param paths The paths to resolve against the path of URI.\n * @returns A URI with the resolved path. All other properties of the URI (scheme, authority, query, fragments, ...) will be taken from the input URI.\n */\n export function resolvePath(uri: URI, ...paths: string[]): URI {\n let path = uri.path; \n let slashAdded = false;\n if (path[0] !== slash) {\n path = slash + path; // make the path abstract: for posixPath.resolve the first segments has to be absolute or cwd is used.\n slashAdded = true;\n }\n let resolvedPath = posixPath.resolve(path, ...paths);\n if (slashAdded && resolvedPath[0] === slash && !uri.authority) {\n resolvedPath = resolvedPath.substring(1);\n }\n return uri.with({ path: resolvedPath });\n }\n\n /**\n * Returns a URI where the path is the directory name of the input uri, similar to the Unix dirname command. \n * In the path, '/' is recognized as the directory separation character. Trailing directory separators are ignored.\n * The orignal URI is returned if the URIs path is empty or does not contain any path segments.\n * \n * @param uri The input URI.\n * @return The last segment of the URIs path.\n */\n export function dirname(uri: URI): URI {\n if (uri.path.length === 0 || uri.path === slash) {\n return uri;\n }\n let path = posixPath.dirname(uri.path);\n if (path.length === 1 && path.charCodeAt(0) === CharCode.Period) {\n path = '';\n }\n return uri.with({ path });\n }\n\n /**\n * Returns the last segment of the path of a URI, similar to the Unix basename command. \n * In the path, '/' is recognized as the directory separation character. Trailing directory separators are ignored.\n * The empty string is returned if the URIs path is empty or does not contain any path segments.\n * \n * @param uri The input URI.\n * @return The base name of the URIs path.\n */\n export function basename(uri: URI): string {\n return posixPath.basename(uri.path);\n }\n\n /**\n * Returns the extension name of the path of a URI, similar to the Unix extname command. \n * In the path, '/' is recognized as the directory separation character. Trailing directory separators are ignored.\n * The empty string is returned if the URIs path is empty or does not contain any path segments.\n * \n * @param uri The input URI.\n * @return The extension name of the URIs path.\n */\n export function extname(uri: URI): string {\n return posixPath.extname(uri.path);\n }\n}", "/******************************************************************************\n * Copyright 2022 TypeFox GmbH\n * This program and the accompanying materials are made available under the\n * terms of the MIT License, which is available in the project root.\n ******************************************************************************/\n\nimport { URI, Utils } from 'vscode-uri';\n\nexport { URI };\n\nexport namespace UriUtils {\n\n export const basename = Utils.basename;\n export const dirname = Utils.dirname;\n export const extname = Utils.extname;\n export const joinPath = Utils.joinPath;\n export const resolvePath = Utils.resolvePath;\n\n export function equals(a?: URI | string, b?: URI | string): boolean {\n return a?.toString() === b?.toString();\n }\n\n export function relative(from: URI | string, to: URI | string): string {\n const fromPath = typeof from === 'string' ? from : from.path;\n const toPath = typeof to === 'string' ? to : to.path;\n const fromParts = fromPath.split('/').filter(e => e.length > 0);\n const toParts = toPath.split('/').filter(e => e.length > 0);\n let i = 0;\n for (; i < fromParts.length; i++) {\n if (fromParts[i] !== toParts[i]) {\n break;\n }\n }\n const backPart = '../'.repeat(fromParts.length - i);\n const toPart = toParts.slice(i).join('/');\n return backPart + toPart;\n }\n\n}\n", "/******************************************************************************\n * Copyright 2021 TypeFox GmbH\n * This program and the accompanying materials are made available under the\n * terms of the MIT License, which is available in the project root.\n ******************************************************************************/\n\n/**\n * Re-export 'TextDocument' from 'vscode-languageserver-textdocument' for convenience,\n * including both type _and_ symbol (namespace), as we here and there also refer to the symbol,\n * the overhead is very small, just a few kilobytes.\n * Everything else of that package (at the time contributing) is also defined\n * in 'vscode-languageserver-protocol' or 'vscode-languageserver-types'.\n */\nexport { TextDocument } from 'vscode-languageserver-textdocument';\n\nimport type { Diagnostic, Range } from 'vscode-languageserver-types';\nimport type { FileSystemProvider } from './file-system-provider.js';\nimport type { ParseResult } from '../parser/langium-parser.js';\nimport type { ServiceRegistry } from '../service-registry.js';\nimport type { LangiumSharedCoreServices } from '../services.js';\nimport type { AstNode, AstNodeDescription, Mutable, Reference } from '../syntax-tree.js';\nimport type { MultiMap } from '../utils/collections.js';\nimport type { Stream } from '../utils/stream.js';\nimport { TextDocument } from './documents.js';\nimport { CancellationToken } from '../utils/cancellation.js';\nimport { stream } from '../utils/stream.js';\nimport { URI } from '../utils/uri-utils.js';\n\n/**\n * A Langium document holds the parse result (AST and CST) and any additional state that is derived\n * from the AST, e.g. the result of scope precomputation.\n */\nexport interface LangiumDocument {\n /** The Uniform Resource Identifier (URI) of the document */\n readonly uri: URI;\n /** The text document used to convert between offsets and positions */\n readonly textDocument: TextDocument;\n /** The current state of the document */\n state: DocumentState;\n /** The parse result holds the Abstract Syntax Tree (AST) and potentially also parser / lexer errors */\n parseResult: ParseResult;\n /** Result of the scope precomputation phase */\n precomputedScopes?: PrecomputedScopes;\n /** An array of all cross-references found in the AST while linking */\n references: Reference[];\n /** Result of the validation phase */\n diagnostics?: Diagnostic[]\n}\n\n/**\n * A document is subject to several phases that are run in predefined order. Any state value implies that\n * smaller state values are finished as well.\n */\nexport enum DocumentState {\n /**\n * The text content has changed and needs to be parsed again. The AST held by this outdated\n * document instance is no longer valid.\n */\n Changed = 0,\n /**\n * An AST has been created from the text content. The document structure can be traversed,\n * but cross-references cannot be resolved yet. If necessary, the structure can be manipulated\n * at this stage as a preprocessing step.\n */\n Parsed = 1,\n /**\n * The `IndexManager` service has processed AST nodes of this document. This means the\n * exported symbols are available in the global scope and can be resolved from other documents.\n */\n IndexedContent = 2,\n /**\n * The `ScopeComputation` service has processed this document. This means the local symbols\n * are stored in a MultiMap so they can be looked up by the `ScopeProvider` service.\n * Once a document has reached this state, you may follow every reference - it will lazily\n * resolve its `ref` property and yield either the target AST node or `undefined` in case\n * the target is not in scope.\n */\n ComputedScopes = 3,\n /**\n * The `Linker` service has processed this document. All outgoing references have been\n * resolved or marked as erroneous.\n */\n Linked = 4,\n /**\n * The `IndexManager` service has processed AST node references of this document. This is\n * necessary to determine which documents are affected by a change in one of the workspace\n * documents.\n */\n IndexedReferences = 5,\n /**\n * The `DocumentValidator` service has processed this document. The language server listens\n * to the results of this phase and sends diagnostics to the client.\n */\n Validated = 6\n}\n\n/**\n * Result of the scope precomputation phase (`ScopeComputation` service).\n * It maps every AST node to the set of symbols that are visible in the subtree of that node.\n */\nexport type PrecomputedScopes = MultiMap\n\nexport interface DocumentSegment {\n readonly range: Range\n readonly offset: number\n readonly length: number\n readonly end: number\n}\n\n/**\n * Surrogate definition of the `TextDocuments` interface from the `vscode-languageserver` package.\n * No implementation object is expected to be offered by `LangiumCoreServices`, but only by `LangiumLSPServices`.\n */\nexport type TextDocumentProvider = {\n get(uri: string): TextDocument | undefined\n}\n\n/**\n * Shared service for creating `LangiumDocument` instances.\n *\n * Register a custom implementation if special (additional) behavior is required for your language(s).\n * Note: If you specialize {@link fromString} or {@link fromTextDocument} you probably might want to\n * specialize {@link update}, too!\n */\nexport interface LangiumDocumentFactory {\n /**\n * Create a Langium document from a `TextDocument` (usually associated with a file).\n */\n fromTextDocument(textDocument: TextDocument, uri?: URI): LangiumDocument;\n /**\n * Create a Langium document from a `TextDocument` asynchronously. This action can be cancelled if a cancellable parser implementation has been provided.\n */\n fromTextDocument(textDocument: TextDocument, uri: URI | undefined, cancellationToken: CancellationToken): Promise>;\n\n /**\n * Create an Langium document from an in-memory string.\n */\n fromString(text: string, uri: URI): LangiumDocument;\n /**\n * Create a Langium document from an in-memory string asynchronously. This action can be cancelled if a cancellable parser implementation has been provided.\n */\n fromString(text: string, uri: URI, cancellationToken: CancellationToken): Promise>;\n\n /**\n * Create an Langium document from a model that has been constructed in memory.\n */\n fromModel(model: T, uri: URI): LangiumDocument;\n\n /**\n * Create an Langium document from a specified `URI`. The factory will use the `FileSystemAccess` service to read the file.\n */\n fromUri(uri: URI, cancellationToken?: CancellationToken): Promise>;\n\n /**\n * Update the given document after changes in the corresponding textual representation.\n * Method is called by the document builder after it has been requested to build an existing\n * document and the document's state is {@link DocumentState.Changed}.\n * The text parsing is expected to be done the same way as in {@link fromTextDocument}\n * and {@link fromString}.\n */\n update(document: LangiumDocument, cancellationToken: CancellationToken): Promise>\n}\n\nexport class DefaultLangiumDocumentFactory implements LangiumDocumentFactory {\n\n protected readonly serviceRegistry: ServiceRegistry;\n protected readonly textDocuments?: TextDocumentProvider;\n protected readonly fileSystemProvider: FileSystemProvider;\n\n constructor(services: LangiumSharedCoreServices) {\n this.serviceRegistry = services.ServiceRegistry;\n this.textDocuments = services.workspace.TextDocuments;\n this.fileSystemProvider = services.workspace.FileSystemProvider;\n }\n\n async fromUri(uri: URI, cancellationToken = CancellationToken.None): Promise> {\n const content = await this.fileSystemProvider.readFile(uri);\n return this.createAsync(uri, content, cancellationToken);\n }\n\n fromTextDocument(textDocument: TextDocument, uri?: URI): LangiumDocument;\n fromTextDocument(textDocument: TextDocument, uri: URI | undefined, cancellationToken: CancellationToken): Promise>;\n fromTextDocument(textDocument: TextDocument, uri?: URI, cancellationToken?: CancellationToken): LangiumDocument | Promise> {\n uri = uri ?? URI.parse(textDocument.uri);\n if (cancellationToken) {\n return this.createAsync(uri, textDocument, cancellationToken);\n } else {\n return this.create(uri, textDocument);\n }\n }\n\n fromString(text: string, uri: URI): LangiumDocument;\n fromString(text: string, uri: URI, cancellationToken: CancellationToken): Promise>;\n fromString(text: string, uri: URI, cancellationToken?: CancellationToken): LangiumDocument | Promise> {\n if (cancellationToken) {\n return this.createAsync(uri, text, cancellationToken);\n } else {\n return this.create(uri, text);\n }\n }\n\n fromModel(model: T, uri: URI): LangiumDocument {\n return this.create(uri, { $model: model });\n }\n\n protected create(uri: URI, content: string | TextDocument | { $model: T }): LangiumDocument {\n if (typeof content === 'string') {\n const parseResult = this.parse(uri, content);\n return this.createLangiumDocument(parseResult, uri, undefined, content);\n\n } else if ('$model' in content) {\n const parseResult = { value: content.$model, parserErrors: [], lexerErrors: [] };\n return this.createLangiumDocument(parseResult, uri);\n\n } else {\n const parseResult = this.parse(uri, content.getText());\n return this.createLangiumDocument(parseResult, uri, content);\n }\n }\n\n protected async createAsync(uri: URI, content: string | TextDocument, cancelToken: CancellationToken): Promise> {\n if (typeof content === 'string') {\n const parseResult = await this.parseAsync(uri, content, cancelToken);\n return this.createLangiumDocument(parseResult, uri, undefined, content);\n } else {\n const parseResult = await this.parseAsync(uri, content.getText(), cancelToken);\n return this.createLangiumDocument(parseResult, uri, content);\n }\n }\n\n /**\n * Create a LangiumDocument from a given parse result.\n *\n * A TextDocument is created on demand if it is not provided as argument here. Usually this\n * should not be necessary because the main purpose of the TextDocument is to convert between\n * text ranges and offsets, which is done solely in LSP request handling.\n *\n * With the introduction of {@link update} below this method is supposed to be mainly called\n * during workspace initialization and on addition/recognition of new files, while changes in\n * existing documents are processed via {@link update}.\n */\n protected createLangiumDocument(parseResult: ParseResult, uri: URI, textDocument?: TextDocument, text?: string): LangiumDocument {\n let document: LangiumDocument;\n if (textDocument) {\n document = {\n parseResult,\n uri,\n state: DocumentState.Parsed,\n references: [],\n textDocument\n };\n } else {\n const textDocumentGetter = this.createTextDocumentGetter(uri, text);\n document = {\n parseResult,\n uri,\n state: DocumentState.Parsed,\n references: [],\n get textDocument() {\n return textDocumentGetter();\n }\n };\n }\n (parseResult.value as Mutable).$document = document;\n return document;\n }\n\n async update(document: Mutable>, cancellationToken: CancellationToken): Promise> {\n // The CST full text property contains the original text that was used to create the AST.\n const oldText = document.parseResult.value.$cstNode?.root.fullText;\n const textDocument = this.textDocuments?.get(document.uri.toString());\n const text = textDocument ? textDocument.getText() : await this.fileSystemProvider.readFile(document.uri);\n\n if (textDocument) {\n Object.defineProperty(\n document,\n 'textDocument',\n {\n value: textDocument\n }\n );\n } else {\n const textDocumentGetter = this.createTextDocumentGetter(document.uri, text);\n Object.defineProperty(\n document,\n 'textDocument',\n {\n get: textDocumentGetter\n }\n );\n }\n\n // Some of these documents can be pretty large, so parsing them again can be quite expensive.\n // Therefore, we only parse if the text has actually changed.\n if (oldText !== text) {\n document.parseResult = await this.parseAsync(document.uri, text, cancellationToken);\n (document.parseResult.value as Mutable).$document = document;\n }\n document.state = DocumentState.Parsed;\n return document;\n }\n\n protected parse(uri: URI, text: string): ParseResult {\n const services = this.serviceRegistry.getServices(uri);\n return services.parser.LangiumParser.parse(text);\n }\n\n protected parseAsync(uri: URI, text: string, cancellationToken: CancellationToken): Promise> {\n const services = this.serviceRegistry.getServices(uri);\n return services.parser.AsyncParser.parse(text, cancellationToken);\n }\n\n protected createTextDocumentGetter(uri: URI, text?: string): () => TextDocument {\n const serviceRegistry = this.serviceRegistry;\n let textDoc: TextDocument | undefined = undefined;\n return () => {\n return textDoc ??= TextDocument.create(\n uri.toString(), serviceRegistry.getServices(uri).LanguageMetaData.languageId, 0, text ?? ''\n );\n };\n }\n}\n\n/**\n * Shared service for managing Langium documents.\n */\nexport interface LangiumDocuments {\n\n /**\n * A stream of all documents managed under this service.\n */\n readonly all: Stream\n\n /**\n * Manage a new document under this service.\n * @throws an error if a document with the same URI is already present.\n */\n addDocument(document: LangiumDocument): void;\n\n /**\n * Retrieve the document with the given URI, if present. Otherwise returns `undefined`.\n */\n getDocument(uri: URI): LangiumDocument | undefined;\n\n /**\n * Retrieve the document with the given URI. If not present, a new one will be created using the file system access.\n * The new document will be added to the list of documents managed under this service.\n */\n getOrCreateDocument(uri: URI, cancellationToken?: CancellationToken): Promise;\n\n /**\n * Creates a new document with the given URI and text content.\n * The new document is automatically added to this service and can be retrieved using {@link getDocument}.\n *\n * @throws an error if a document with the same URI is already present.\n */\n createDocument(uri: URI, text: string): LangiumDocument;\n\n /**\n * Creates a new document with the given URI and text content asynchronously.\n * The process can be interrupted with a cancellation token.\n * The new document is automatically added to this service and can be retrieved using {@link getDocument}.\n *\n * @throws an error if a document with the same URI is already present.\n */\n createDocument(uri: URI, text: string, cancellationToken: CancellationToken): Promise;\n\n /**\n * Returns `true` if a document with the given URI is managed under this service.\n */\n hasDocument(uri: URI): boolean;\n\n /**\n * Flag the document with the given URI as `Changed`, if present, meaning that its content\n * is no longer valid. The content (parseResult) stays untouched, while internal data may\n * be dropped to reduce memory footprint.\n *\n * @returns the affected {@link LangiumDocument} if existing for convenience\n */\n invalidateDocument(uri: URI): LangiumDocument | undefined;\n\n /**\n * Remove the document with the given URI, if present, and mark it as `Changed`, meaning\n * that its content is no longer valid. The next call to `getOrCreateDocument` with the same\n * URI will create a new document instance.\n *\n * @returns the affected {@link LangiumDocument} if existing for convenience\n */\n deleteDocument(uri: URI): LangiumDocument | undefined;\n}\n\nexport class DefaultLangiumDocuments implements LangiumDocuments {\n\n protected readonly langiumDocumentFactory: LangiumDocumentFactory;\n\n protected readonly documentMap: Map = new Map();\n\n constructor(services: LangiumSharedCoreServices) {\n this.langiumDocumentFactory = services.workspace.LangiumDocumentFactory;\n }\n\n get all(): Stream {\n return stream(this.documentMap.values());\n }\n\n addDocument(document: LangiumDocument): void {\n const uriString = document.uri.toString();\n if (this.documentMap.has(uriString)) {\n throw new Error(`A document with the URI '${uriString}' is already present.`);\n }\n this.documentMap.set(uriString, document);\n }\n\n getDocument(uri: URI): LangiumDocument | undefined {\n const uriString = uri.toString();\n return this.documentMap.get(uriString);\n }\n\n async getOrCreateDocument(uri: URI, cancellationToken?: CancellationToken): Promise {\n let document = this.getDocument(uri);\n if (document) {\n return document;\n }\n document = await this.langiumDocumentFactory.fromUri(uri, cancellationToken);\n this.addDocument(document);\n return document;\n }\n\n createDocument(uri: URI, text: string): LangiumDocument;\n createDocument(uri: URI, text: string, cancellationToken: CancellationToken): Promise;\n createDocument(uri: URI, text: string, cancellationToken?: CancellationToken): LangiumDocument | Promise {\n if (cancellationToken) {\n return this.langiumDocumentFactory.fromString(text, uri, cancellationToken).then(document => {\n this.addDocument(document);\n return document;\n });\n } else {\n const document = this.langiumDocumentFactory.fromString(text, uri);\n this.addDocument(document);\n return document;\n }\n }\n\n hasDocument(uri: URI): boolean {\n return this.documentMap.has(uri.toString());\n }\n\n invalidateDocument(uri: URI): LangiumDocument | undefined {\n const uriString = uri.toString();\n const langiumDoc = this.documentMap.get(uriString);\n if (langiumDoc) {\n langiumDoc.state = DocumentState.Changed;\n langiumDoc.precomputedScopes = undefined;\n langiumDoc.references = [];\n langiumDoc.diagnostics = undefined;\n }\n return langiumDoc;\n }\n\n deleteDocument(uri: URI): LangiumDocument | undefined {\n const uriString = uri.toString();\n const langiumDoc = this.documentMap.get(uriString);\n if (langiumDoc) {\n langiumDoc.state = DocumentState.Changed;\n this.documentMap.delete(uriString);\n }\n return langiumDoc;\n }\n}\n", "/******************************************************************************\n * Copyright 2021 TypeFox GmbH\n * This program and the accompanying materials are made available under the\n * terms of the MIT License, which is available in the project root.\n ******************************************************************************/\n\nimport type { LangiumCoreServices } from '../services.js';\nimport type { AstNode, AstNodeDescription, AstReflection, CstNode, LinkingError, Reference, ReferenceInfo } from '../syntax-tree.js';\nimport type { AstNodeLocator } from '../workspace/ast-node-locator.js';\nimport type { LangiumDocument, LangiumDocuments } from '../workspace/documents.js';\nimport type { ScopeProvider } from './scope-provider.js';\nimport { CancellationToken } from '../utils/cancellation.js';\nimport { isAstNode, isAstNodeDescription, isLinkingError } from '../syntax-tree.js';\nimport { getDocument, streamAst, streamReferences } from '../utils/ast-utils.js';\nimport { interruptAndCheck } from '../utils/promise-utils.js';\nimport { DocumentState } from '../workspace/documents.js';\n\n/**\n * Language-specific service for resolving cross-references in the AST.\n */\nexport interface Linker {\n\n /**\n * Links all cross-references within the specified document. The default implementation loads only target\n * elements from documents that are present in the `LangiumDocuments` service. The linked references are\n * stored in the document's `references` property.\n *\n * @param document A LangiumDocument that shall be linked.\n * @param cancelToken A token for cancelling the operation.\n */\n link(document: LangiumDocument, cancelToken?: CancellationToken): Promise;\n\n /**\n * Unlinks all references within the specified document and removes them from the list of `references`.\n *\n * @param document A LangiumDocument that shall be unlinked.\n */\n unlink(document: LangiumDocument): void;\n\n /**\n * Determines a candidate AST node description for linking the given reference.\n *\n * @param node The AST node containing the reference.\n * @param refId The reference identifier used to build a scope.\n * @param reference The actual reference to resolve.\n */\n getCandidate(refInfo: ReferenceInfo): AstNodeDescription | LinkingError;\n\n /**\n * Creates a cross reference node being aware of its containing AstNode, the corresponding CstNode,\n * the cross reference text denoting the target AstNode being already extracted of the document text,\n * as well as the unique cross reference identifier.\n *\n * Default behavior:\n * - The returned Reference's 'ref' property pointing to the target AstNode is populated lazily on its\n * first visit.\n * - If the target AstNode cannot be resolved on the first visit, an error indicator will be installed\n * and further resolution attempts will *not* be performed.\n *\n * @param node The containing AST node\n * @param refNode The corresponding CST node\n * @param refId The cross reference identifier like ':'\n * @param refText The cross reference text denoting the target AstNode\n * @returns the desired Reference node, whose behavior wrt. resolving the cross reference is implementation specific.\n */\n buildReference(node: AstNode, property: string, refNode: CstNode | undefined, refText: string): Reference;\n\n}\n\ninterface DefaultReference extends Reference {\n _ref?: AstNode | LinkingError;\n _nodeDescription?: AstNodeDescription;\n}\n\nexport class DefaultLinker implements Linker {\n protected readonly reflection: AstReflection;\n protected readonly scopeProvider: ScopeProvider;\n protected readonly astNodeLocator: AstNodeLocator;\n protected readonly langiumDocuments: () => LangiumDocuments;\n\n constructor(services: LangiumCoreServices) {\n this.reflection = services.shared.AstReflection;\n this.langiumDocuments = () => services.shared.workspace.LangiumDocuments;\n this.scopeProvider = services.references.ScopeProvider;\n this.astNodeLocator = services.workspace.AstNodeLocator;\n }\n\n async link(document: LangiumDocument, cancelToken = CancellationToken.None): Promise {\n for (const node of streamAst(document.parseResult.value)) {\n await interruptAndCheck(cancelToken);\n streamReferences(node).forEach(ref => this.doLink(ref, document));\n }\n }\n\n protected doLink(refInfo: ReferenceInfo, document: LangiumDocument): void {\n const ref = refInfo.reference as DefaultReference;\n // The reference may already have been resolved lazily by accessing its `ref` property.\n if (ref._ref === undefined) {\n try {\n const description = this.getCandidate(refInfo);\n if (isLinkingError(description)) {\n ref._ref = description;\n } else {\n ref._nodeDescription = description;\n if (this.langiumDocuments().hasDocument(description.documentUri)) {\n // The target document is already loaded\n const linkedNode = this.loadAstNode(description);\n ref._ref = linkedNode ?? this.createLinkingError(refInfo, description);\n }\n }\n } catch (err) {\n ref._ref = {\n ...refInfo,\n message: `An error occurred while resolving reference to '${ref.$refText}': ${err}`\n };\n }\n }\n // Add the reference to the document's array of references\n document.references.push(ref);\n }\n\n unlink(document: LangiumDocument): void {\n for (const ref of document.references) {\n delete (ref as DefaultReference)._ref;\n delete (ref as DefaultReference)._nodeDescription;\n }\n document.references = [];\n }\n\n getCandidate(refInfo: ReferenceInfo): AstNodeDescription | LinkingError {\n const scope = this.scopeProvider.getScope(refInfo);\n const description = scope.getElement(refInfo.reference.$refText);\n return description ?? this.createLinkingError(refInfo);\n }\n\n buildReference(node: AstNode, property: string, refNode: CstNode | undefined, refText: string): Reference {\n // See behavior description in doc of Linker, update that on changes in here.\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const linker = this;\n const reference: DefaultReference = {\n $refNode: refNode,\n $refText: refText,\n\n get ref() {\n if (isAstNode(this._ref)) {\n // Most frequent case: the target is already resolved.\n return this._ref;\n } else if (isAstNodeDescription(this._nodeDescription)) {\n // A candidate has been found before, but it is not loaded yet.\n const linkedNode = linker.loadAstNode(this._nodeDescription);\n this._ref = linkedNode ??\n linker.createLinkingError({ reference, container: node, property }, this._nodeDescription);\n } else if (this._ref === undefined) {\n // The reference has not been linked yet, so do that now.\n const refData = linker.getLinkedNode({ reference, container: node, property });\n if (refData.error && getDocument(node).state < DocumentState.ComputedScopes) {\n // Document scope is not ready, don't set `this._ref` so linker can retry later.\n return undefined;\n }\n this._ref = refData.node ?? refData.error;\n this._nodeDescription = refData.descr;\n }\n return isAstNode(this._ref) ? this._ref : undefined;\n },\n get $nodeDescription() {\n return this._nodeDescription;\n },\n get error() {\n return isLinkingError(this._ref) ? this._ref : undefined;\n }\n };\n return reference;\n }\n\n protected getLinkedNode(refInfo: ReferenceInfo): { node?: AstNode, descr?: AstNodeDescription, error?: LinkingError } {\n try {\n const description = this.getCandidate(refInfo);\n if (isLinkingError(description)) {\n return { error: description };\n }\n const linkedNode = this.loadAstNode(description);\n if (linkedNode) {\n return { node: linkedNode, descr: description };\n }\n else {\n return {\n descr: description,\n error:\n this.createLinkingError(refInfo, description)\n };\n }\n } catch (err) {\n return {\n error: {\n ...refInfo,\n message: `An error occurred while resolving reference to '${refInfo.reference.$refText}': ${err}`\n }\n };\n }\n }\n\n protected loadAstNode(nodeDescription: AstNodeDescription): AstNode | undefined {\n if (nodeDescription.node) {\n return nodeDescription.node;\n }\n const doc = this.langiumDocuments().getDocument(nodeDescription.documentUri);\n if (!doc) {\n return undefined;\n }\n return this.astNodeLocator.getAstNode(doc.parseResult.value, nodeDescription.path);\n }\n\n protected createLinkingError(refInfo: ReferenceInfo, targetDescription?: AstNodeDescription): LinkingError {\n // Check whether the document is sufficiently processed by the DocumentBuilder. If not, this is a hint for a bug\n // in the language implementation.\n const document = getDocument(refInfo.container);\n if (document.state < DocumentState.ComputedScopes) {\n console.warn(`Attempted reference resolution before document reached ComputedScopes state (${document.uri}).`);\n }\n const referenceType = this.reflection.getReferenceType(refInfo);\n return {\n ...refInfo,\n message: `Could not resolve reference to ${referenceType} named '${refInfo.reference.$refText}'.`,\n targetDescription\n };\n }\n\n}\n", "/******************************************************************************\n * Copyright 2021 TypeFox GmbH\n * This program and the accompanying materials are made available under the\n * terms of the MIT License, which is available in the project root.\n ******************************************************************************/\n\nimport type { AstNode, CstNode } from '../syntax-tree.js';\nimport { findNodeForProperty } from '../utils/grammar-utils.js';\n\nexport interface NamedAstNode extends AstNode {\n name: string;\n}\n\nexport function isNamed(node: AstNode): node is NamedAstNode {\n return typeof (node as NamedAstNode).name === 'string';\n}\n\n/**\n * Utility service for retrieving the `name` of an `AstNode` or the `CstNode` containing a `name`.\n */\nexport interface NameProvider {\n /**\n * Returns the `name` of a given AstNode.\n * @param node Specified `AstNode` whose name node shall be retrieved.\n */\n getName(node: AstNode): string | undefined;\n /**\n * Returns the `CstNode` which contains the parsed value of the `name` assignment.\n * @param node Specified `AstNode` whose name node shall be retrieved.\n */\n getNameNode(node: AstNode): CstNode | undefined;\n}\n\nexport class DefaultNameProvider implements NameProvider {\n getName(node: AstNode): string | undefined {\n if (isNamed(node)) {\n return node.name;\n }\n return undefined;\n }\n\n getNameNode(node: AstNode): CstNode | undefined {\n return findNodeForProperty(node.$cstNode, 'name');\n }\n}\n", "/******************************************************************************\n * Copyright 2021 TypeFox GmbH\n * This program and the accompanying materials are made available under the\n * terms of the MIT License, which is available in the project root.\n ******************************************************************************/\n\nimport type { LangiumCoreServices } from '../services.js';\nimport type { AstNode, CstNode, GenericAstNode } from '../syntax-tree.js';\nimport type { Stream } from '../utils/stream.js';\nimport type { ReferenceDescription } from '../workspace/ast-descriptions.js';\nimport type { AstNodeLocator } from '../workspace/ast-node-locator.js';\nimport type { IndexManager } from '../workspace/index-manager.js';\nimport type { NameProvider } from './name-provider.js';\nimport type { URI } from '../utils/uri-utils.js';\nimport { findAssignment } from '../utils/grammar-utils.js';\nimport { isReference } from '../syntax-tree.js';\nimport { getDocument } from '../utils/ast-utils.js';\nimport { isChildNode, toDocumentSegment } from '../utils/cst-utils.js';\nimport { stream } from '../utils/stream.js';\nimport { UriUtils } from '../utils/uri-utils.js';\n\n/**\n * Language-specific service for finding references and declaration of a given `CstNode`.\n */\nexport interface References {\n\n /**\n * If the CstNode is a reference node the target CstNode will be returned.\n * If the CstNode is a significant node of the CstNode this CstNode will be returned.\n *\n * @param sourceCstNode CstNode that points to a AstNode\n */\n findDeclaration(sourceCstNode: CstNode): AstNode | undefined;\n\n /**\n * If the CstNode is a reference node the target CstNode will be returned.\n * If the CstNode is a significant node of the CstNode this CstNode will be returned.\n *\n * @param sourceCstNode CstNode that points to a AstNode\n */\n findDeclarationNode(sourceCstNode: CstNode): CstNode | undefined;\n\n /**\n * Finds all references to the target node as references (local references) or reference descriptions.\n *\n * @param targetNode Specified target node whose references should be returned\n */\n findReferences(targetNode: AstNode, options: FindReferencesOptions): Stream;\n}\n\nexport interface FindReferencesOptions {\n /**\n * @deprecated Since v1.2.0. Please use `documentUri` instead.\n */\n onlyLocal?: boolean;\n /**\n * When set, the `findReferences` method will only return references/declarations from the specified document.\n */\n documentUri?: URI;\n /**\n * Whether the returned list of references should include the declaration.\n */\n includeDeclaration?: boolean;\n}\n\nexport class DefaultReferences implements References {\n protected readonly nameProvider: NameProvider;\n protected readonly index: IndexManager;\n protected readonly nodeLocator: AstNodeLocator;\n\n constructor(services: LangiumCoreServices) {\n this.nameProvider = services.references.NameProvider;\n this.index = services.shared.workspace.IndexManager;\n this.nodeLocator = services.workspace.AstNodeLocator;\n }\n\n findDeclaration(sourceCstNode: CstNode): AstNode | undefined {\n if (sourceCstNode) {\n const assignment = findAssignment(sourceCstNode);\n const nodeElem = sourceCstNode.astNode;\n if (assignment && nodeElem) {\n const reference = (nodeElem as GenericAstNode)[assignment.feature];\n\n if (isReference(reference)) {\n return reference.ref;\n } else if (Array.isArray(reference)) {\n for (const ref of reference) {\n if (isReference(ref) && ref.$refNode\n && ref.$refNode.offset <= sourceCstNode.offset\n && ref.$refNode.end >= sourceCstNode.end) {\n return ref.ref;\n }\n }\n }\n }\n if (nodeElem) {\n const nameNode = this.nameProvider.getNameNode(nodeElem);\n // Only return the targeted node in case the targeted cst node is the name node or part of it\n if (nameNode && (nameNode === sourceCstNode || isChildNode(sourceCstNode, nameNode))) {\n return nodeElem;\n }\n }\n }\n return undefined;\n }\n\n findDeclarationNode(sourceCstNode: CstNode): CstNode | undefined {\n const astNode = this.findDeclaration(sourceCstNode);\n if (astNode?.$cstNode) {\n const targetNode = this.nameProvider.getNameNode(astNode);\n return targetNode ?? astNode.$cstNode;\n }\n return undefined;\n }\n\n findReferences(targetNode: AstNode, options: FindReferencesOptions): Stream {\n const refs: ReferenceDescription[] = [];\n if (options.includeDeclaration) {\n const ref = this.getReferenceToSelf(targetNode);\n if (ref) {\n refs.push(ref);\n }\n }\n let indexReferences = this.index.findAllReferences(targetNode, this.nodeLocator.getAstNodePath(targetNode));\n if (options.documentUri) {\n indexReferences = indexReferences.filter(ref => UriUtils.equals(ref.sourceUri, options.documentUri));\n }\n refs.push(...indexReferences);\n return stream(refs);\n }\n\n protected getReferenceToSelf(targetNode: AstNode): ReferenceDescription | undefined {\n const nameNode = this.nameProvider.getNameNode(targetNode);\n if (nameNode) {\n const doc = getDocument(targetNode);\n const path = this.nodeLocator.getAstNodePath(targetNode);\n return {\n sourceUri: doc.uri,\n sourcePath: path,\n targetUri: doc.uri,\n targetPath: path,\n segment: toDocumentSegment(nameNode),\n local: true\n };\n }\n return undefined;\n }\n}\n", "/******************************************************************************\n * Copyright 2021 TypeFox GmbH\n * This program and the accompanying materials are made available under the\n * terms of the MIT License, which is available in the project root.\n ******************************************************************************/\n\nimport type { Stream } from './stream.js';\nimport { Reduction, stream } from './stream.js';\n\n/**\n * A multimap is a variation of a Map that has potentially multiple values for every key.\n */\nexport class MultiMap {\n\n private map = new Map();\n\n constructor()\n constructor(elements: Array<[K, V]>)\n constructor(elements?: Array<[K, V]>) {\n if (elements) {\n for (const [key, value] of elements) {\n this.add(key, value);\n }\n }\n }\n\n /**\n * The total number of values in the multimap.\n */\n get size(): number {\n return Reduction.sum(stream(this.map.values()).map(a => a.length));\n }\n\n /**\n * Clear all entries in the multimap.\n */\n clear(): void {\n this.map.clear();\n }\n\n /**\n * Operates differently depending on whether a `value` is given:\n * * With a value, this method deletes the specific key / value pair from the multimap.\n * * Without a value, all values associated with the given key are deleted.\n *\n * @returns `true` if a value existed and has been removed, or `false` if the specified\n * key / value does not exist.\n */\n delete(key: K, value?: V): boolean {\n if (value === undefined) {\n return this.map.delete(key);\n } else {\n const values = this.map.get(key);\n if (values) {\n const index = values.indexOf(value);\n if (index >= 0) {\n if (values.length === 1) {\n this.map.delete(key);\n } else {\n values.splice(index, 1);\n }\n return true;\n }\n }\n return false;\n }\n }\n\n /**\n * Returns an array of all values associated with the given key. If no value exists,\n * an empty array is returned.\n *\n * _Note:_ The returned array is assumed not to be modified. Use the `set` method to add a\n * value and `delete` to remove a value from the multimap.\n */\n get(key: K): readonly V[] {\n return this.map.get(key) ?? [];\n }\n\n /**\n * Operates differently depending on whether a `value` is given:\n * * With a value, this method returns `true` if the specific key / value pair is present in the multimap.\n * * Without a value, this method returns `true` if the given key is present in the multimap.\n */\n has(key: K, value?: V): boolean {\n if (value === undefined) {\n return this.map.has(key);\n } else {\n const values = this.map.get(key);\n if (values) {\n return values.indexOf(value) >= 0;\n }\n return false;\n }\n }\n\n /**\n * Add the given key / value pair to the multimap.\n */\n add(key: K, value: V): this {\n if (this.map.has(key)) {\n this.map.get(key)!.push(value);\n } else {\n this.map.set(key, [value]);\n }\n return this;\n }\n\n /**\n * Add the given set of key / value pairs to the multimap.\n */\n addAll(key: K, values: Iterable): this {\n if (this.map.has(key)) {\n this.map.get(key)!.push(...values);\n } else {\n this.map.set(key, Array.from(values));\n }\n return this;\n }\n\n /**\n * Invokes the given callback function for every key / value pair in the multimap.\n */\n forEach(callbackfn: (value: V, key: K, map: this) => void): void {\n this.map.forEach((array, key) =>\n array.forEach(value => callbackfn(value, key, this))\n );\n }\n\n /**\n * Returns an iterator of key, value pairs for every entry in the map.\n */\n [Symbol.iterator](): Iterator<[K, V]> {\n return this.entries().iterator();\n }\n\n /**\n * Returns a stream of key, value pairs for every entry in the map.\n */\n entries(): Stream<[K, V]> {\n return stream(this.map.entries())\n .flatMap(([key, array]) => array.map(value => [key, value] as [K, V]));\n }\n\n /**\n * Returns a stream of keys in the map.\n */\n keys(): Stream {\n return stream(this.map.keys());\n }\n\n /**\n * Returns a stream of values in the map.\n */\n values(): Stream {\n return stream(this.map.values()).flat();\n }\n\n /**\n * Returns a stream of key, value set pairs for every key in the map.\n */\n entriesGroupedByKey(): Stream<[K, V[]]> {\n return stream(this.map.entries());\n }\n\n}\n\nexport class BiMap {\n\n private map = new Map();\n private inverse = new Map();\n\n get size(): number {\n return this.map.size;\n }\n\n constructor()\n constructor(elements: Array<[K, V]>)\n constructor(elements?: Array<[K, V]>) {\n if (elements) {\n for (const [key, value] of elements) {\n this.set(key, value);\n }\n }\n }\n\n clear(): void {\n this.map.clear();\n this.inverse.clear();\n }\n\n set(key: K, value: V): this {\n this.map.set(key, value);\n this.inverse.set(value, key);\n return this;\n }\n\n get(key: K): V | undefined {\n return this.map.get(key);\n }\n\n getKey(value: V): K | undefined {\n return this.inverse.get(value);\n }\n\n delete(key: K): boolean {\n const value = this.map.get(key);\n if (value !== undefined) {\n this.map.delete(key);\n this.inverse.delete(value);\n return true;\n }\n return false;\n }\n}\n", "/******************************************************************************\n * Copyright 2021-2022 TypeFox GmbH\n * This program and the accompanying materials are made available under the\n * terms of the MIT License, which is available in the project root.\n ******************************************************************************/\n\nimport type { LangiumCoreServices } from '../services.js';\nimport type { AstNode, AstNodeDescription } from '../syntax-tree.js';\nimport type { AstNodeDescriptionProvider } from '../workspace/ast-descriptions.js';\nimport type { LangiumDocument, PrecomputedScopes } from '../workspace/documents.js';\nimport type { NameProvider } from './name-provider.js';\nimport { CancellationToken } from '../utils/cancellation.js';\nimport { streamAllContents, streamContents } from '../utils/ast-utils.js';\nimport { MultiMap } from '../utils/collections.js';\nimport { interruptAndCheck } from '../utils/promise-utils.js';\n\n/**\n * Language-specific service for precomputing global and local scopes. The service methods are executed\n * as the first and second phase in the `DocumentBuilder`.\n */\nexport interface ScopeComputation {\n\n /**\n * Creates descriptions of all AST nodes that shall be exported into the _global_ scope from the given\n * document. These descriptions are gathered by the `IndexManager` and stored in the global index so\n * they can be referenced from other documents.\n *\n * _Note:_ You should not resolve any cross-references in this service method. Cross-reference resolution\n * depends on the scope computation phase to be completed (`computeScope` method), which runs after the\n * initial indexing where this method is used.\n *\n * @param document The document from which to gather exported AST nodes.\n * @param cancelToken Indicates when to cancel the current operation.\n * @throws `OperationCanceled` if a user action occurs during execution\n */\n computeExports(document: LangiumDocument, cancelToken?: CancellationToken): Promise;\n\n /**\n * Precomputes the _local_ scopes for a document, which are necessary for the default way of\n * resolving references to symbols in the same document. The result is a multimap assigning a\n * set of AST node descriptions to every level of the AST. These data are used by the `ScopeProvider`\n * service to determine which target nodes are visible in the context of a specific cross-reference.\n *\n * _Note:_ You should not resolve any cross-references in this service method. Cross-reference\n * resolution depends on the scope computation phase to be completed.\n *\n * @param document The document in which to compute scopes.\n * @param cancelToken Indicates when to cancel the current operation.\n * @throws `OperationCanceled` if a user action occurs during execution\n */\n computeLocalScopes(document: LangiumDocument, cancelToken?: CancellationToken): Promise;\n\n}\n\n/**\n * The default scope computation creates and collectes descriptions of the AST nodes to be exported into the\n * _global_ scope from the given document. By default those are the document's root AST node and its directly\n * contained child nodes.\n *\n * Besides, it gathers all AST nodes that have a name (according to the `NameProvider` service) and includes them\n * in the local scope of their particular container nodes. As a result, for every cross-reference in the AST,\n * target elements from the same level (siblings) and further up towards the root (parents and siblings of parents)\n * are visible. Elements being nested inside lower levels (children, children of siblings and parents' siblings)\n * are _invisible_ by default, but that can be changed by customizing this service.\n */\nexport class DefaultScopeComputation implements ScopeComputation {\n\n protected readonly nameProvider: NameProvider;\n protected readonly descriptions: AstNodeDescriptionProvider;\n\n constructor(services: LangiumCoreServices) {\n this.nameProvider = services.references.NameProvider;\n this.descriptions = services.workspace.AstNodeDescriptionProvider;\n }\n\n async computeExports(document: LangiumDocument, cancelToken = CancellationToken.None): Promise {\n return this.computeExportsForNode(document.parseResult.value, document, undefined, cancelToken);\n }\n\n /**\n * Creates {@link AstNodeDescription AstNodeDescriptions} for the given {@link AstNode parentNode} and its children.\n * The list of children to be considered is determined by the function parameter {@link children}.\n * By default only the direct children of {@link parentNode} are visited, nested nodes are not exported.\n *\n * @param parentNode AST node to be exported, i.e., of which an {@link AstNodeDescription} shall be added to the returned list.\n * @param document The document containing the AST node to be exported.\n * @param children A function called with {@link parentNode} as single argument and returning an {@link Iterable} supplying the children to be visited, which must be directly or transitively contained in {@link parentNode}.\n * @param cancelToken Indicates when to cancel the current operation.\n * @throws `OperationCanceled` if a user action occurs during execution.\n * @returns A list of {@link AstNodeDescription AstNodeDescriptions} to be published to index.\n */\n async computeExportsForNode(parentNode: AstNode, document: LangiumDocument, children: (root: AstNode) => Iterable = streamContents, cancelToken: CancellationToken = CancellationToken.None): Promise {\n const exports: AstNodeDescription[] = [];\n\n this.exportNode(parentNode, exports, document);\n for (const node of children(parentNode)) {\n await interruptAndCheck(cancelToken);\n this.exportNode(node, exports, document);\n }\n return exports;\n }\n\n /**\n * Add a single node to the list of exports if it has a name. Override this method to change how\n * symbols are exported, e.g. by modifying their exported name.\n */\n protected exportNode(node: AstNode, exports: AstNodeDescription[], document: LangiumDocument): void {\n const name = this.nameProvider.getName(node);\n if (name) {\n exports.push(this.descriptions.createDescription(node, name, document));\n }\n }\n\n async computeLocalScopes(document: LangiumDocument, cancelToken = CancellationToken.None): Promise {\n const rootNode = document.parseResult.value;\n const scopes = new MultiMap();\n // Here we navigate the full AST - local scopes shall be available in the whole document\n for (const node of streamAllContents(rootNode)) {\n await interruptAndCheck(cancelToken);\n this.processNode(node, document, scopes);\n }\n return scopes;\n }\n\n /**\n * Process a single node during scopes computation. The default implementation makes the node visible\n * in the subtree of its container (if the node has a name). Override this method to change this,\n * e.g. by increasing the visibility to a higher level in the AST.\n */\n protected processNode(node: AstNode, document: LangiumDocument, scopes: PrecomputedScopes): void {\n const container = node.$container;\n if (container) {\n const name = this.nameProvider.getName(node);\n if (name) {\n scopes.add(container, this.descriptions.createDescription(node, name, document));\n }\n }\n }\n\n}\n", "/******************************************************************************\n * Copyright 2023 TypeFox GmbH\n * This program and the accompanying materials are made available under the\n * terms of the MIT License, which is available in the project root.\n ******************************************************************************/\n\nimport type { AstNodeDescription } from '../syntax-tree.js';\nimport type { Stream } from '../utils/stream.js';\nimport { EMPTY_STREAM, stream } from '../utils/stream.js';\n\n/**\n * A scope describes what target elements are visible from a specific cross-reference context.\n */\nexport interface Scope {\n\n /**\n * Find a target element matching the given name. If no element is found, `undefined` is returned.\n * If multiple matching elements are present, the selection of the returned element should be done\n * according to the semantics of your language. Usually it is the element that is most closely defined.\n *\n * @param name Name of the cross-reference target as it appears in the source text.\n */\n getElement(name: string): AstNodeDescription | undefined;\n\n /**\n * Create a stream of all elements in the scope. This is used to compute completion proposals to be\n * shown in the editor.\n */\n getAllElements(): Stream;\n\n}\n\nexport interface ScopeOptions {\n caseInsensitive?: boolean;\n}\n\n/**\n * The default scope implementation is based on a `Stream`. It has an optional _outer scope_ describing\n * the next level of elements, which are queried when a target element is not found in the stream provided\n * to this scope.\n */\nexport class StreamScope implements Scope {\n readonly elements: Stream;\n readonly outerScope?: Scope;\n readonly caseInsensitive: boolean;\n\n constructor(elements: Stream, outerScope?: Scope, options?: ScopeOptions) {\n this.elements = elements;\n this.outerScope = outerScope;\n this.caseInsensitive = options?.caseInsensitive ?? false;\n }\n\n getAllElements(): Stream {\n if (this.outerScope) {\n return this.elements.concat(this.outerScope.getAllElements());\n } else {\n return this.elements;\n }\n }\n\n getElement(name: string): AstNodeDescription | undefined {\n const local = this.caseInsensitive\n ? this.elements.find(e => e.name.toLowerCase() === name.toLowerCase())\n : this.elements.find(e => e.name === name);\n if (local) {\n return local;\n }\n if (this.outerScope) {\n return this.outerScope.getElement(name);\n }\n return undefined;\n }\n}\n\nexport class MapScope implements Scope {\n readonly elements: Map;\n readonly outerScope?: Scope;\n readonly caseInsensitive: boolean;\n\n constructor(elements: Iterable, outerScope?: Scope, options?: ScopeOptions) {\n this.elements = new Map();\n this.caseInsensitive = options?.caseInsensitive ?? false;\n for (const element of elements) {\n const name = this.caseInsensitive\n ? element.name.toLowerCase()\n : element.name;\n this.elements.set(name, element);\n }\n this.outerScope = outerScope;\n }\n\n getElement(name: string): AstNodeDescription | undefined {\n const localName = this.caseInsensitive ? name.toLowerCase() : name;\n const local = this.elements.get(localName);\n if (local) {\n return local;\n }\n if (this.outerScope) {\n return this.outerScope.getElement(name);\n }\n return undefined;\n }\n\n getAllElements(): Stream {\n let elementStream = stream(this.elements.values());\n if (this.outerScope) {\n elementStream = elementStream.concat(this.outerScope.getAllElements());\n }\n return elementStream;\n }\n\n}\n\nexport const EMPTY_SCOPE: Scope = {\n getElement(): undefined {\n return undefined;\n },\n getAllElements(): Stream {\n return EMPTY_STREAM;\n }\n};\n", "/******************************************************************************\n * Copyright 2023 TypeFox GmbH\n * This program and the accompanying materials are made available under the\n * terms of the MIT License, which is available in the project root.\n ******************************************************************************/\n\nimport type { Disposable } from './disposable.js';\nimport type { URI } from './uri-utils.js';\nimport type { LangiumSharedCoreServices } from '../services.js';\n\nexport abstract class DisposableCache implements Disposable {\n\n protected toDispose: Disposable[] = [];\n protected isDisposed = false;\n\n onDispose(disposable: Disposable): void {\n this.toDispose.push(disposable);\n }\n\n dispose(): void {\n this.throwIfDisposed();\n this.clear();\n this.isDisposed = true;\n this.toDispose.forEach(disposable => disposable.dispose());\n }\n\n protected throwIfDisposed(): void {\n if (this.isDisposed) {\n throw new Error('This cache has already been disposed');\n }\n }\n\n abstract clear(): void;\n}\n\nexport class SimpleCache extends DisposableCache {\n protected readonly cache = new Map();\n\n has(key: K): boolean {\n this.throwIfDisposed();\n return this.cache.has(key);\n }\n\n set(key: K, value: V): void {\n this.throwIfDisposed();\n this.cache.set(key, value);\n }\n\n get(key: K): V | undefined;\n get(key: K, provider: () => V): V;\n get(key: K, provider?: () => V): V | undefined {\n this.throwIfDisposed();\n if (this.cache.has(key)) {\n return this.cache.get(key);\n } else if (provider) {\n const value = provider();\n this.cache.set(key, value);\n return value;\n } else {\n return undefined;\n }\n }\n\n delete(key: K): boolean {\n this.throwIfDisposed();\n return this.cache.delete(key);\n }\n\n clear(): void {\n this.throwIfDisposed();\n this.cache.clear();\n }\n}\n\nexport class ContextCache extends DisposableCache {\n\n private readonly cache = new Map>();\n private readonly converter: (input: Context) => ContextKey | Context;\n\n constructor(converter?: (input: Context) => ContextKey) {\n super();\n this.converter = converter ?? (value => value);\n }\n\n has(contextKey: Context, key: Key): boolean {\n this.throwIfDisposed();\n return this.cacheForContext(contextKey).has(key);\n }\n\n set(contextKey: Context, key: Key, value: Value): void {\n this.throwIfDisposed();\n this.cacheForContext(contextKey).set(key, value);\n }\n\n get(contextKey: Context, key: Key): Value | undefined;\n get(contextKey: Context, key: Key, provider: () => Value): Value;\n get(contextKey: Context, key: Key, provider?: () => Value): Value | undefined {\n this.throwIfDisposed();\n const contextCache = this.cacheForContext(contextKey);\n if (contextCache.has(key)) {\n return contextCache.get(key);\n } else if (provider) {\n const value = provider();\n contextCache.set(key, value);\n return value;\n } else {\n return undefined;\n }\n }\n\n delete(contextKey: Context, key: Key): boolean {\n this.throwIfDisposed();\n return this.cacheForContext(contextKey).delete(key);\n }\n\n clear(): void;\n clear(contextKey: Context): void;\n clear(contextKey?: Context): void {\n this.throwIfDisposed();\n if (contextKey) {\n const mapKey = this.converter(contextKey);\n this.cache.delete(mapKey);\n } else {\n this.cache.clear();\n }\n }\n\n protected cacheForContext(contextKey: Context): Map {\n const mapKey = this.converter(contextKey);\n let documentCache = this.cache.get(mapKey);\n if (!documentCache) {\n documentCache = new Map();\n this.cache.set(mapKey, documentCache);\n }\n return documentCache;\n }\n}\n\n/**\n * Every key/value pair in this cache is scoped to a document.\n * If this document is changed or deleted, all associated key/value pairs are deleted.\n */\nexport class DocumentCache extends ContextCache {\n constructor(sharedServices: LangiumSharedCoreServices) {\n super(uri => uri.toString());\n this.onDispose(sharedServices.workspace.DocumentBuilder.onUpdate((changed, deleted) => {\n const allUris = changed.concat(deleted);\n for (const uri of allUris) {\n this.clear(uri);\n }\n }));\n }\n}\n\n/**\n * Every key/value pair in this cache is scoped to the whole workspace.\n * If any document in the workspace changes, the whole cache is evicted.\n */\nexport class WorkspaceCache extends SimpleCache {\n constructor(sharedServices: LangiumSharedCoreServices) {\n super();\n this.onDispose(sharedServices.workspace.DocumentBuilder.onUpdate(() => {\n this.clear();\n }));\n }\n}\n", "/******************************************************************************\n * Copyright 2021-2022 TypeFox GmbH\n * This program and the accompanying materials are made available under the\n * terms of the MIT License, which is available in the project root.\n ******************************************************************************/\n\nimport type { LangiumCoreServices } from '../services.js';\nimport type { AstNode, AstNodeDescription, AstReflection, ReferenceInfo } from '../syntax-tree.js';\nimport type { Stream } from '../utils/stream.js';\nimport type { AstNodeDescriptionProvider } from '../workspace/ast-descriptions.js';\nimport type { IndexManager } from '../workspace/index-manager.js';\nimport type { NameProvider } from './name-provider.js';\nimport type { Scope, ScopeOptions} from './scope.js';\nimport { MapScope, StreamScope } from './scope.js';\nimport { getDocument } from '../utils/ast-utils.js';\nimport { stream } from '../utils/stream.js';\nimport { WorkspaceCache } from '../utils/caching.js';\n\n/**\n * Language-specific service for determining the scope of target elements visible in a specific cross-reference context.\n */\nexport interface ScopeProvider {\n\n /**\n * Return a scope describing what elements are visible for the given AST node and cross-reference\n * identifier.\n *\n * @param context Information about the reference for which a scope is requested.\n */\n getScope(context: ReferenceInfo): Scope;\n\n}\n\nexport class DefaultScopeProvider implements ScopeProvider {\n\n protected readonly reflection: AstReflection;\n protected readonly nameProvider: NameProvider;\n protected readonly descriptions: AstNodeDescriptionProvider;\n protected readonly indexManager: IndexManager;\n\n protected readonly globalScopeCache: WorkspaceCache;\n\n constructor(services: LangiumCoreServices) {\n this.reflection = services.shared.AstReflection;\n this.nameProvider = services.references.NameProvider;\n this.descriptions = services.workspace.AstNodeDescriptionProvider;\n this.indexManager = services.shared.workspace.IndexManager;\n this.globalScopeCache = new WorkspaceCache(services.shared);\n }\n\n getScope(context: ReferenceInfo): Scope {\n const scopes: Array> = [];\n const referenceType = this.reflection.getReferenceType(context);\n\n const precomputed = getDocument(context.container).precomputedScopes;\n if (precomputed) {\n let currentNode: AstNode | undefined = context.container;\n do {\n const allDescriptions = precomputed.get(currentNode);\n if (allDescriptions.length > 0) {\n scopes.push(stream(allDescriptions).filter(\n desc => this.reflection.isSubtype(desc.type, referenceType)));\n }\n currentNode = currentNode.$container;\n } while (currentNode);\n }\n\n let result: Scope = this.getGlobalScope(referenceType, context);\n for (let i = scopes.length - 1; i >= 0; i--) {\n result = this.createScope(scopes[i], result);\n }\n return result;\n }\n\n /**\n * Create a scope for the given collection of AST node descriptions.\n */\n protected createScope(elements: Iterable, outerScope?: Scope, options?: ScopeOptions): Scope {\n return new StreamScope(stream(elements), outerScope, options);\n }\n\n /**\n * Create a scope for the given collection of AST nodes, which need to be transformed into respective\n * descriptions first. This is done using the `NameProvider` and `AstNodeDescriptionProvider` services.\n */\n protected createScopeForNodes(elements: Iterable, outerScope?: Scope, options?: ScopeOptions): Scope {\n const s = stream(elements).map(e => {\n const name = this.nameProvider.getName(e);\n if (name) {\n return this.descriptions.createDescription(e, name);\n }\n return undefined;\n }).nonNullable();\n return new StreamScope(s, outerScope, options);\n }\n\n /**\n * Create a global scope filtered for the given reference type.\n */\n protected getGlobalScope(referenceType: string, _context: ReferenceInfo): Scope {\n return this.globalScopeCache.get(referenceType, () => new MapScope(this.indexManager.allElements(referenceType)));\n }\n\n}\n", "/******************************************************************************\n * Copyright 2021 TypeFox GmbH\n * This program and the accompanying materials are made available under the\n * terms of the MIT License, which is available in the project root.\n ******************************************************************************/\n\nimport { URI } from 'vscode-uri';\nimport type { CommentProvider } from '../documentation/comment-provider.js';\nimport type { NameProvider } from '../references/name-provider.js';\nimport type { LangiumCoreServices } from '../services.js';\nimport type { AstNode, CstNode, GenericAstNode, Mutable, Reference } from '../syntax-tree.js';\nimport { isAstNode, isReference } from '../syntax-tree.js';\nimport { getDocument } from '../utils/ast-utils.js';\nimport { findNodesForProperty } from '../utils/grammar-utils.js';\nimport type { AstNodeLocator } from '../workspace/ast-node-locator.js';\nimport type { DocumentSegment, LangiumDocument, LangiumDocuments } from '../workspace/documents.js';\n\nexport interface JsonSerializeOptions {\n /** The space parameter for `JSON.stringify`, controlling whether and how to pretty-print the output. */\n space?: string | number;\n /** Whether to include the `$refText` property for references (the name used to identify the target node). */\n refText?: boolean;\n /** Whether to include the `$sourceText` property, which holds the full source text from which an AST node was parsed. */\n sourceText?: boolean;\n /** Whether to include the `$textRegion` property, which holds information to trace AST node properties to their respective source text regions. */\n textRegions?: boolean;\n /** Whether to include the `$comment` property, which holds comments according to the CommentProvider service. */\n comments?: boolean;\n /** The replacer parameter for `JSON.stringify`; the default replacer given as parameter should be used to apply basic replacements. */\n replacer?: (key: string, value: unknown, defaultReplacer: (key: string, value: unknown) => unknown) => unknown\n /** Used to convert and serialize URIs when the target of a cross-reference is in a different document. */\n uriConverter?: (uri: URI, reference: Reference) => string\n}\n\nexport interface JsonDeserializeOptions {\n /** Used to parse and convert URIs when the target of a cross-reference is in a different document. */\n uriConverter?: (uri: string) => URI\n}\n\n/**\n * {@link AstNode}s that may carry information on their definition area within the DSL text.\n */\nexport interface AstNodeWithTextRegion extends AstNode {\n $sourceText?: string;\n $textRegion?: AstNodeRegionWithAssignments;\n}\n\n/**\n * {@link AstNode}s that may carry a semantically relevant comment.\n */\nexport interface AstNodeWithComment extends AstNode {\n $comment?: string;\n}\n\nexport function isAstNodeWithComment(node: AstNode): node is AstNodeWithComment {\n return typeof (node as AstNodeWithComment).$comment === 'string';\n}\n\n/**\n * A {@DocumentSegment} representing the definition area of an AstNode within the DSL text.\n * Usually contains text region information on all assigned property values of the AstNode,\n * and may contain the defining file's URI as string.\n */\nexport interface AstNodeRegionWithAssignments extends DocumentSegment {\n /**\n * A record containing an entry for each assigned property of the AstNode.\n * The key is equal to the property name and the value is an array of the property values'\n * text regions, regardless of whether the property is a single value or list property.\n */\n assignments?: Record;\n /**\n * The AstNode defining file's URI as string\n */\n documentURI?: string;\n}\n\n/**\n * Utility service for transforming an `AstNode` into a JSON string and vice versa.\n */\nexport interface JsonSerializer {\n /**\n * Serialize an `AstNode` into a JSON `string`.\n * @param node The `AstNode` to be serialized.\n * @param space Adds indentation, white space, and line break characters to the return-value JSON text to make it easier to read.\n */\n serialize(node: AstNode, options?: JsonSerializeOptions): string;\n /**\n * Deserialize (parse) a JSON `string` into an `AstNode`.\n */\n deserialize(content: string, options?: JsonDeserializeOptions): T;\n}\n\n/**\n * A cross-reference in the serialized JSON representation of an AstNode.\n */\ninterface IntermediateReference {\n /** URI pointing to the target element. This is either `#${path}` if the target is in the same document, or `${documentURI}#${path}` otherwise. */\n $ref?: string\n /** The actual text used to look up the reference target in the surrounding scope. */\n $refText?: string\n /** If any problem occurred while resolving the reference, it is described by this property. */\n $error?: string\n}\n\nfunction isIntermediateReference(obj: unknown): obj is IntermediateReference {\n return typeof obj === 'object' && !!obj && ('$ref' in obj || '$error' in obj);\n}\n\nexport class DefaultJsonSerializer implements JsonSerializer {\n\n /** The set of AstNode properties to be ignored by the serializer. */\n ignoreProperties = new Set(['$container', '$containerProperty', '$containerIndex', '$document', '$cstNode']);\n\n /** The document that is currently processed by the serializer; this is used by the replacer function. */\n protected currentDocument: LangiumDocument | undefined;\n\n protected readonly langiumDocuments: LangiumDocuments;\n protected readonly astNodeLocator: AstNodeLocator;\n protected readonly nameProvider: NameProvider;\n protected readonly commentProvider: CommentProvider;\n\n constructor(services: LangiumCoreServices) {\n this.langiumDocuments = services.shared.workspace.LangiumDocuments;\n this.astNodeLocator = services.workspace.AstNodeLocator;\n this.nameProvider = services.references.NameProvider;\n this.commentProvider = services.documentation.CommentProvider;\n }\n\n serialize(node: AstNode, options: JsonSerializeOptions = {}): string {\n const specificReplacer = options?.replacer;\n const defaultReplacer = (key: string, value: unknown) => this.replacer(key, value, options);\n const replacer = specificReplacer ? (key: string, value: unknown) => specificReplacer(key, value, defaultReplacer) : defaultReplacer;\n\n try {\n this.currentDocument = getDocument(node);\n return JSON.stringify(node, replacer, options?.space);\n } finally {\n this.currentDocument = undefined;\n }\n }\n\n deserialize(content: string, options: JsonDeserializeOptions = {}): T {\n const root = JSON.parse(content);\n this.linkNode(root, root, options);\n return root;\n }\n\n protected replacer(key: string, value: unknown, { refText, sourceText, textRegions, comments, uriConverter }: JsonSerializeOptions): unknown {\n if (this.ignoreProperties.has(key)) {\n return undefined;\n } else if (isReference(value)) {\n const refValue = value.ref;\n const $refText = refText ? value.$refText : undefined;\n if (refValue) {\n const targetDocument = getDocument(refValue);\n let targetUri = '';\n if (this.currentDocument && this.currentDocument !== targetDocument) {\n if (uriConverter) {\n targetUri = uriConverter(targetDocument.uri, value);\n } else {\n targetUri = targetDocument.uri.toString();\n }\n }\n const targetPath = this.astNodeLocator.getAstNodePath(refValue);\n return {\n $ref: `${targetUri}#${targetPath}`,\n $refText\n } satisfies IntermediateReference;\n } else {\n return {\n $error: value.error?.message ?? 'Could not resolve reference',\n $refText\n } satisfies IntermediateReference;\n }\n } else if (isAstNode(value)) {\n let astNode: AstNodeWithTextRegion | undefined = undefined;\n if (textRegions) {\n astNode = this.addAstNodeRegionWithAssignmentsTo({ ...value });\n if ((!key || value.$document) && astNode?.$textRegion) {\n // The document URI is added to the root node of the resulting JSON tree\n astNode.$textRegion.documentURI = this.currentDocument?.uri.toString();\n }\n }\n if (sourceText && !key) {\n astNode ??= { ...value };\n astNode.$sourceText = value.$cstNode?.text;\n }\n if (comments) {\n astNode ??= { ...value };\n const comment = this.commentProvider.getComment(value);\n if (comment) {\n (astNode as AstNodeWithComment).$comment = comment.replace(/\\r/g, '');\n }\n }\n return astNode ?? value;\n } else {\n return value;\n }\n }\n\n protected addAstNodeRegionWithAssignmentsTo(node: AstNodeWithTextRegion) {\n const createDocumentSegment: (cstNode: CstNode) => AstNodeRegionWithAssignments = cstNode => {\n offset: cstNode.offset,\n end: cstNode.end,\n length: cstNode.length,\n range: cstNode.range,\n };\n\n if (node.$cstNode) {\n const textRegion = node.$textRegion = createDocumentSegment(node.$cstNode);\n const assignments: Record = textRegion.assignments = {};\n\n Object.keys(node).filter(key => !key.startsWith('$')).forEach(key => {\n const propertyAssignments = findNodesForProperty(node.$cstNode, key).map(createDocumentSegment);\n if (propertyAssignments.length !== 0) {\n assignments[key] = propertyAssignments;\n }\n });\n\n return node;\n }\n return undefined;\n }\n\n protected linkNode(node: GenericAstNode, root: AstNode, options: JsonDeserializeOptions, container?: AstNode, containerProperty?: string, containerIndex?: number) {\n for (const [propertyName, item] of Object.entries(node)) {\n if (Array.isArray(item)) {\n for (let index = 0; index < item.length; index++) {\n const element = item[index];\n if (isIntermediateReference(element)) {\n item[index] = this.reviveReference(node, propertyName, root, element, options);\n } else if (isAstNode(element)) {\n this.linkNode(element as GenericAstNode, root, options, node, propertyName, index);\n }\n }\n } else if (isIntermediateReference(item)) {\n node[propertyName] = this.reviveReference(node, propertyName, root, item, options);\n } else if (isAstNode(item)) {\n this.linkNode(item as GenericAstNode, root, options, node, propertyName);\n }\n }\n const mutable = node as Mutable;\n mutable.$container = container;\n mutable.$containerProperty = containerProperty;\n mutable.$containerIndex = containerIndex;\n }\n\n protected reviveReference(container: AstNode, property: string, root: AstNode, reference: IntermediateReference, options: JsonDeserializeOptions): Reference | undefined {\n let refText = reference.$refText;\n let error = reference.$error;\n if (reference.$ref) {\n const ref = this.getRefNode(root, reference.$ref, options.uriConverter);\n if (isAstNode(ref)) {\n if (!refText) {\n refText = this.nameProvider.getName(ref);\n }\n return {\n $refText: refText ?? '',\n ref\n };\n } else {\n error = ref;\n }\n }\n if (error) {\n const ref: Mutable = {\n $refText: refText ?? ''\n };\n ref.error = {\n container,\n property,\n message: error,\n reference: ref\n };\n return ref;\n } else {\n return undefined;\n }\n }\n\n protected getRefNode(root: AstNode, uri: string, uriConverter?: (uri: string) => URI): AstNode | string {\n try {\n const fragmentIndex = uri.indexOf('#');\n if (fragmentIndex === 0) {\n const node = this.astNodeLocator.getAstNode(root, uri.substring(1));\n if (!node) {\n return 'Could not resolve path: ' + uri;\n }\n return node;\n }\n if (fragmentIndex < 0) {\n const documentUri = uriConverter ? uriConverter(uri) : URI.parse(uri);\n const document = this.langiumDocuments.getDocument(documentUri);\n if (!document) {\n return 'Could not find document for URI: ' + uri;\n }\n return document.parseResult.value;\n }\n const documentUri = uriConverter ? uriConverter(uri.substring(0, fragmentIndex)) : URI.parse(uri.substring(0, fragmentIndex));\n const document = this.langiumDocuments.getDocument(documentUri);\n if (!document) {\n return 'Could not find document for URI: ' + uri;\n }\n if (fragmentIndex === uri.length - 1) {\n return document.parseResult.value;\n }\n const node = this.astNodeLocator.getAstNode(document.parseResult.value, uri.substring(fragmentIndex + 1));\n if (!node) {\n return 'Could not resolve URI: ' + uri;\n }\n return node;\n } catch (err) {\n return String(err);\n }\n }\n\n}\n", "/******************************************************************************\n * Copyright 2021 TypeFox GmbH\n * This program and the accompanying materials are made available under the\n * terms of the MIT License, which is available in the project root.\n ******************************************************************************/\n\nimport type { LangiumCoreServices } from './services.js';\nimport { UriUtils, type URI } from './utils/uri-utils.js';\n\n/**\n * The service registry provides access to the language-specific {@link LangiumCoreServices} optionally including LSP-related services.\n * These are resolved via the URI of a text document.\n */\nexport interface ServiceRegistry {\n\n /**\n * Register a language via its injected services.\n */\n register(language: LangiumCoreServices): void;\n\n /**\n * Retrieve the language-specific services for the given URI. In case only one language is\n * registered, it may be used regardless of the URI format.\n */\n getServices(uri: URI): LangiumCoreServices;\n\n /**\n * The full set of registered language services.\n */\n readonly all: readonly LangiumCoreServices[];\n}\n\n/**\n * Generic registry for Langium services, but capable of being used with extending service sets as well (such as the lsp-complete LangiumCoreServices set)\n */\nexport class DefaultServiceRegistry implements ServiceRegistry {\n\n protected singleton?: LangiumCoreServices;\n protected map?: Record;\n\n register(language: LangiumCoreServices): void {\n if (!this.singleton && !this.map) {\n // This is the first language to be registered; store it as singleton.\n this.singleton = language;\n return;\n }\n if (!this.map) {\n this.map = {};\n if (this.singleton) {\n // Move the previous singleton instance to the new map.\n for (const ext of this.singleton.LanguageMetaData.fileExtensions) {\n this.map[ext] = this.singleton;\n }\n this.singleton = undefined;\n }\n }\n // Store the language services in the map.\n for (const ext of language.LanguageMetaData.fileExtensions) {\n if (this.map[ext] !== undefined && this.map[ext] !== language) {\n console.warn(`The file extension ${ext} is used by multiple languages. It is now assigned to '${language.LanguageMetaData.languageId}'.`);\n }\n this.map[ext] = language;\n }\n }\n\n getServices(uri: URI): LangiumCoreServices {\n if (this.singleton !== undefined) {\n return this.singleton;\n }\n if (this.map === undefined) {\n throw new Error('The service registry is empty. Use `register` to register the services of a language.');\n }\n const ext = UriUtils.extname(uri);\n const services = this.map[ext];\n if (!services) {\n throw new Error(`The service registry contains no services for the extension '${ext}'.`);\n }\n return services;\n }\n\n get all(): readonly LangiumCoreServices[] {\n if (this.singleton !== undefined) {\n return [this.singleton];\n }\n if (this.map !== undefined) {\n return Object.values(this.map);\n }\n return [];\n }\n}\n", "/******************************************************************************\n * Copyright 2021 TypeFox GmbH\n * This program and the accompanying materials are made available under the\n * terms of the MIT License, which is available in the project root.\n ******************************************************************************/\n\nimport type { CodeDescription, DiagnosticRelatedInformation, DiagnosticTag, integer, Range } from 'vscode-languageserver-types';\nimport type { CancellationToken } from '../utils/cancellation.js';\nimport type { LangiumCoreServices } from '../services.js';\nimport type { AstNode, AstReflection, Properties } from '../syntax-tree.js';\nimport type { MaybePromise } from '../utils/promise-utils.js';\nimport type { Stream } from '../utils/stream.js';\nimport type { DocumentSegment } from '../workspace/documents.js';\nimport { MultiMap } from '../utils/collections.js';\nimport { isOperationCancelled } from '../utils/promise-utils.js';\nimport { stream } from '../utils/stream.js';\n\nexport type DiagnosticInfo> = {\n /** The AST node to which the diagnostic is attached. */\n node: N;\n /** If a property name is given, the diagnostic is restricted to the corresponding text region. */\n property?: P;\n /** If the value of a keyword is given, the diagnostic will appear at its corresponding text region */\n keyword?: string;\n /** In case of a multi-value property (array), an index can be given to select a specific element. */\n index?: number;\n /** If you want to create a diagnostic independent to any property, use the range property. */\n range?: Range;\n /** The diagnostic's code, which usually appear in the user interface. */\n code?: integer | string;\n /** An optional property to describe the error code. */\n codeDescription?: CodeDescription;\n /** Additional metadata about the diagnostic. */\n tags?: DiagnosticTag[];\n /** An array of related diagnostic information, e.g. when symbol-names within a scope collide all definitions can be marked via this property. */\n relatedInformation?: DiagnosticRelatedInformation[];\n /** A data entry field that is preserved between a `textDocument/publishDiagnostics` notification and `textDocument/codeAction` request. */\n data?: unknown;\n}\n\n/**\n * Shape of information commonly used in the `data` field of diagnostics.\n */\nexport interface DiagnosticData {\n /** Diagnostic code for identifying which code action to apply. This code is _not_ shown in the user interface. */\n code: string\n /** Specifies where to apply the code action in the form of a `DocumentSegment`. */\n actionSegment?: DocumentSegment\n /** Specifies where to apply the code action in the form of a `Range`. */\n actionRange?: Range\n}\n\n/**\n * Create DiagnosticData for a given diagnostic code. The result can be put into the `data` field of a DiagnosticInfo.\n */\nexport function diagnosticData(code: string): DiagnosticData {\n return { code };\n}\n\nexport type ValidationAcceptor = (severity: 'error' | 'warning' | 'info' | 'hint', message: string, info: DiagnosticInfo) => void\n\nexport type ValidationCheck = (node: T, accept: ValidationAcceptor, cancelToken: CancellationToken) => MaybePromise;\n\n/**\n * A utility type for associating non-primitive AST types to corresponding validation checks. For example:\n *\n * ```ts\n * const checks: ValidationChecks = {\n * State: validator.checkStateNameStartsWithCapital\n * };\n * ```\n *\n * If an AST type does not extend AstNode, e.g. if it describes a union of string literals, that type's name must not occur as a key in objects of type `ValidationCheck<...>`.\n *\n * @param T a type definition mapping language specific type names (keys) to the corresponding types (values)\n */\nexport type ValidationChecks = {\n [K in keyof T]?: T[K] extends AstNode ? ValidationCheck | Array> : never\n} & {\n AstNode?: ValidationCheck | Array>;\n}\n\n/**\n * `fast` checks can be executed after every document change (i.e. as the user is typing). If a check\n * is too slow it can delay the response to document changes, yielding bad user experience. By marking\n * it as `slow`, it will be skipped for normal as-you-type validation. Then it's up to you when to\n * schedule these long-running checks: after the fast checks are done, or after saving a document,\n * or with an explicit command, etc.\n *\n * `built-in` checks are errors produced by the lexer, the parser, or the linker. They cannot be used\n * for custom validation checks.\n */\nexport type ValidationCategory = 'fast' | 'slow' | 'built-in'\n\nexport namespace ValidationCategory {\n export const all: readonly ValidationCategory[] = ['fast', 'slow', 'built-in'];\n}\n\ntype ValidationCheckEntry = {\n check: ValidationCheck\n category: ValidationCategory\n}\n\n/**\n * Manages a set of `ValidationCheck`s to be applied when documents are validated.\n */\nexport class ValidationRegistry {\n private readonly entries = new MultiMap();\n private readonly reflection: AstReflection;\n\n constructor(services: LangiumCoreServices) {\n this.reflection = services.shared.AstReflection;\n }\n\n /**\n * Register a set of validation checks. Each value in the record can be either a single validation check (i.e. a function)\n * or an array of validation checks.\n *\n * @param checksRecord Set of validation checks to register.\n * @param category Optional category for the validation checks (defaults to `'fast'`).\n * @param thisObj Optional object to be used as `this` when calling the validation check functions.\n */\n register(checksRecord: ValidationChecks, thisObj: ThisParameterType = this, category: ValidationCategory = 'fast'): void {\n if (category === 'built-in') {\n throw new Error(\"The 'built-in' category is reserved for lexer, parser, and linker errors.\");\n }\n for (const [type, ch] of Object.entries(checksRecord)) {\n const callbacks = ch as ValidationCheck | ValidationCheck[];\n if (Array.isArray(callbacks)) {\n for (const check of callbacks) {\n const entry: ValidationCheckEntry = {\n check: this.wrapValidationException(check, thisObj),\n category\n };\n this.addEntry(type, entry);\n }\n } else if (typeof callbacks === 'function') {\n const entry: ValidationCheckEntry = {\n check: this.wrapValidationException(callbacks, thisObj),\n category\n };\n this.addEntry(type, entry);\n }\n }\n }\n\n protected wrapValidationException(check: ValidationCheck, thisObj: unknown): ValidationCheck {\n return async (node, accept, cancelToken) => {\n try {\n await check.call(thisObj, node, accept, cancelToken);\n } catch (err) {\n if (isOperationCancelled(err)) {\n throw err;\n }\n console.error('An error occurred during validation:', err);\n const message = err instanceof Error ? err.message : String(err);\n if (err instanceof Error && err.stack) {\n console.error(err.stack);\n }\n accept('error', 'An error occurred during validation: ' + message, { node });\n }\n };\n }\n\n protected addEntry(type: string, entry: ValidationCheckEntry): void {\n if (type === 'AstNode') {\n this.entries.add('AstNode', entry);\n return;\n }\n for (const subtype of this.reflection.getAllSubTypes(type)) {\n this.entries.add(subtype, entry);\n }\n }\n\n getChecks(type: string, categories?: ValidationCategory[]): Stream {\n let checks = stream(this.entries.get(type))\n .concat(this.entries.get('AstNode'));\n if (categories) {\n checks = checks.filter(entry => categories.includes(entry.category));\n }\n return checks.map(entry => entry.check);\n }\n\n}\n", "/******************************************************************************\n * Copyright 2021 TypeFox GmbH\n * This program and the accompanying materials are made available under the\n * terms of the MIT License, which is available in the project root.\n ******************************************************************************/\n\nimport type { MismatchedTokenException } from 'chevrotain';\nimport type { DiagnosticSeverity, Position, Range, Diagnostic } from 'vscode-languageserver-types';\nimport type { LanguageMetaData } from '../languages/language-meta-data.js';\nimport type { ParseResult } from '../parser/langium-parser.js';\nimport type { LangiumCoreServices } from '../services.js';\nimport type { AstNode, CstNode } from '../syntax-tree.js';\nimport type { LangiumDocument } from '../workspace/documents.js';\nimport type { DiagnosticData, DiagnosticInfo, ValidationAcceptor, ValidationCategory, ValidationRegistry } from './validation-registry.js';\nimport { CancellationToken } from '../utils/cancellation.js';\nimport { findNodeForKeyword, findNodeForProperty } from '../utils/grammar-utils.js';\nimport { streamAst } from '../utils/ast-utils.js';\nimport { tokenToRange } from '../utils/cst-utils.js';\nimport { interruptAndCheck, isOperationCancelled } from '../utils/promise-utils.js';\nimport { diagnosticData } from './validation-registry.js';\n\nexport interface ValidationOptions {\n /**\n * If this is set, only the checks associated with these categories are executed; otherwise\n * all checks are executed. The default category if not specified to the registry is `'fast'`.\n */\n categories?: ValidationCategory[];\n /** If true, no further diagnostics are reported if there are lexing errors. */\n stopAfterLexingErrors?: boolean\n /** If true, no further diagnostics are reported if there are parsing errors. */\n stopAfterParsingErrors?: boolean\n /** If true, no further diagnostics are reported if there are linking errors. */\n stopAfterLinkingErrors?: boolean\n}\n\n/**\n * Language-specific service for validating `LangiumDocument`s.\n */\nexport interface DocumentValidator {\n /**\n * Validates the whole specified document.\n *\n * @param document specified document to validate\n * @param options options to control the validation process\n * @param cancelToken allows to cancel the current operation\n * @throws `OperationCanceled` if a user action occurs during execution\n */\n validateDocument(document: LangiumDocument, options?: ValidationOptions, cancelToken?: CancellationToken): Promise;\n}\n\nexport class DefaultDocumentValidator implements DocumentValidator {\n\n protected readonly validationRegistry: ValidationRegistry;\n protected readonly metadata: LanguageMetaData;\n\n constructor(services: LangiumCoreServices) {\n this.validationRegistry = services.validation.ValidationRegistry;\n this.metadata = services.LanguageMetaData;\n }\n\n async validateDocument(document: LangiumDocument, options: ValidationOptions = {}, cancelToken = CancellationToken.None): Promise {\n const parseResult = document.parseResult;\n const diagnostics: Diagnostic[] = [];\n\n await interruptAndCheck(cancelToken);\n\n if (!options.categories || options.categories.includes('built-in')) {\n this.processLexingErrors(parseResult, diagnostics, options);\n if (options.stopAfterLexingErrors && diagnostics.some(d => d.data?.code === DocumentValidator.LexingError)) {\n return diagnostics;\n }\n\n this.processParsingErrors(parseResult, diagnostics, options);\n if (options.stopAfterParsingErrors && diagnostics.some(d => d.data?.code === DocumentValidator.ParsingError)) {\n return diagnostics;\n }\n\n this.processLinkingErrors(document, diagnostics, options);\n if (options.stopAfterLinkingErrors && diagnostics.some(d => d.data?.code === DocumentValidator.LinkingError)) {\n return diagnostics;\n }\n }\n\n // Process custom validations\n try {\n diagnostics.push(...await this.validateAst(parseResult.value, options, cancelToken));\n } catch (err) {\n if (isOperationCancelled(err)) {\n throw err;\n }\n console.error('An error occurred during validation:', err);\n }\n\n await interruptAndCheck(cancelToken);\n\n return diagnostics;\n }\n\n protected processLexingErrors(parseResult: ParseResult, diagnostics: Diagnostic[], _options: ValidationOptions): void {\n for (const lexerError of parseResult.lexerErrors) {\n const diagnostic: Diagnostic = {\n severity: toDiagnosticSeverity('error'),\n range: {\n start: {\n line: lexerError.line! - 1,\n character: lexerError.column! - 1\n },\n end: {\n line: lexerError.line! - 1,\n character: lexerError.column! + lexerError.length - 1\n }\n },\n message: lexerError.message,\n data: diagnosticData(DocumentValidator.LexingError),\n source: this.getSource()\n };\n diagnostics.push(diagnostic);\n }\n }\n\n protected processParsingErrors(parseResult: ParseResult, diagnostics: Diagnostic[], _options: ValidationOptions): void {\n for (const parserError of parseResult.parserErrors) {\n let range: Range | undefined = undefined;\n // We can run into the chevrotain error recovery here\n // The token contained in the parser error might be automatically inserted\n // In this case every position value will be `NaN`\n if (isNaN(parserError.token.startOffset)) {\n // Some special parser error types contain a `previousToken`\n // We can simply append our diagnostic to that token\n if ('previousToken' in parserError) {\n const token = (parserError as MismatchedTokenException).previousToken;\n if (!isNaN(token.startOffset)) {\n const position: Position = { line: token.endLine! - 1, character: token.endColumn! };\n range = { start: position, end: position};\n } else {\n // No valid prev token. Might be empty document or containing only hidden tokens.\n // Point to document start\n const position: Position = { line: 0, character: 0 };\n range = { start: position, end: position};\n }\n }\n } else {\n range = tokenToRange(parserError.token);\n }\n if (range) {\n const diagnostic: Diagnostic = {\n severity: toDiagnosticSeverity('error'),\n range,\n message: parserError.message,\n data: diagnosticData(DocumentValidator.ParsingError),\n source: this.getSource()\n };\n diagnostics.push(diagnostic);\n }\n }\n }\n\n protected processLinkingErrors(document: LangiumDocument, diagnostics: Diagnostic[], _options: ValidationOptions): void {\n for (const reference of document.references) {\n const linkingError = reference.error;\n if (linkingError) {\n const info: DiagnosticInfo = {\n node: linkingError.container,\n property: linkingError.property,\n index: linkingError.index,\n data: {\n code: DocumentValidator.LinkingError,\n containerType: linkingError.container.$type,\n property: linkingError.property,\n refText: linkingError.reference.$refText\n } satisfies LinkingErrorData\n };\n diagnostics.push(this.toDiagnostic('error', linkingError.message, info));\n }\n }\n }\n\n protected async validateAst(rootNode: AstNode, options: ValidationOptions, cancelToken = CancellationToken.None): Promise {\n const validationItems: Diagnostic[] = [];\n const acceptor: ValidationAcceptor = (severity: 'error' | 'warning' | 'info' | 'hint', message: string, info: DiagnosticInfo) => {\n validationItems.push(this.toDiagnostic(severity, message, info));\n };\n\n await Promise.all(streamAst(rootNode).map(async node => {\n await interruptAndCheck(cancelToken);\n const checks = this.validationRegistry.getChecks(node.$type, options.categories);\n for (const check of checks) {\n await check(node, acceptor, cancelToken);\n }\n }));\n return validationItems;\n }\n\n protected toDiagnostic(severity: 'error' | 'warning' | 'info' | 'hint', message: string, info: DiagnosticInfo): Diagnostic {\n return {\n message,\n range: getDiagnosticRange(info),\n severity: toDiagnosticSeverity(severity),\n code: info.code,\n codeDescription: info.codeDescription,\n tags: info.tags,\n relatedInformation: info.relatedInformation,\n data: info.data,\n source: this.getSource()\n };\n }\n\n protected getSource(): string | undefined {\n return this.metadata.languageId;\n }\n}\n\nexport function getDiagnosticRange(info: DiagnosticInfo): Range {\n if (info.range) {\n return info.range;\n }\n let cstNode: CstNode | undefined;\n if (typeof info.property === 'string') {\n cstNode = findNodeForProperty(info.node.$cstNode, info.property, info.index);\n } else if (typeof info.keyword === 'string') {\n cstNode = findNodeForKeyword(info.node.$cstNode, info.keyword, info.index);\n }\n cstNode ??= info.node.$cstNode;\n if (!cstNode) {\n return {\n start: { line: 0, character: 0 },\n end: { line: 0, character: 0 }\n };\n }\n return cstNode.range;\n}\n\nexport function toDiagnosticSeverity(severity: 'error' | 'warning' | 'info' | 'hint'): DiagnosticSeverity {\n switch (severity) {\n case 'error':\n return 1; // according to vscode-languageserver-types/lib/esm/main.js#DiagnosticSeverity.Error\n case 'warning':\n return 2; // according to vscode-languageserver-types/lib/esm/main.js#DiagnosticSeverity.Warning\n case 'info':\n return 3; // according to vscode-languageserver-types/lib/esm/main.js#DiagnosticSeverity.Information\n case 'hint':\n return 4; // according to vscode-languageserver-types/lib/esm/main.js#DiagnosticSeverity.Hint\n default:\n throw new Error('Invalid diagnostic severity: ' + severity);\n }\n}\n\nexport namespace DocumentValidator {\n export const LexingError = 'lexing-error';\n export const ParsingError = 'parsing-error';\n export const LinkingError = 'linking-error';\n}\n\nexport interface LinkingErrorData extends DiagnosticData {\n containerType: string\n property: string\n refText: string\n}\n", "/******************************************************************************\n * Copyright 2021 TypeFox GmbH\n * This program and the accompanying materials are made available under the\n * terms of the MIT License, which is available in the project root.\n ******************************************************************************/\n\nimport type { URI } from '../utils/uri-utils.js';\nimport type { NameProvider } from '../references/name-provider.js';\nimport type { LangiumCoreServices } from '../services.js';\nimport type { AstNode, AstNodeDescription, ReferenceInfo } from '../syntax-tree.js';\nimport type { AstNodeLocator } from './ast-node-locator.js';\nimport type { DocumentSegment, LangiumDocument } from './documents.js';\nimport { CancellationToken } from '../utils/cancellation.js';\nimport { isLinkingError } from '../syntax-tree.js';\nimport { getDocument, streamAst, streamReferences } from '../utils/ast-utils.js';\nimport { toDocumentSegment } from '../utils/cst-utils.js';\nimport { interruptAndCheck } from '../utils/promise-utils.js';\nimport { UriUtils } from '../utils/uri-utils.js';\n\n/**\n * Language-specific service for creating descriptions of AST nodes to be used for cross-reference resolutions.\n */\nexport interface AstNodeDescriptionProvider {\n\n /**\n * Create a description for the given AST node. This service method is typically used while indexing\n * the contents of a document and during scope computation.\n *\n * @param node An AST node.\n * @param name The name to be used to refer to the AST node. By default, this is determined by the\n * `NameProvider` service, but alternative names may be provided according to the semantics\n * of your language.\n * @param document The document containing the AST node. If omitted, it is taken from the root AST node.\n */\n createDescription(node: AstNode, name: string | undefined, document?: LangiumDocument): AstNodeDescription;\n\n}\n\nexport class DefaultAstNodeDescriptionProvider implements AstNodeDescriptionProvider {\n\n protected readonly astNodeLocator: AstNodeLocator;\n protected readonly nameProvider: NameProvider;\n\n constructor(services: LangiumCoreServices) {\n this.astNodeLocator = services.workspace.AstNodeLocator;\n this.nameProvider = services.references.NameProvider;\n }\n\n createDescription(node: AstNode, name: string | undefined, document: LangiumDocument = getDocument(node)): AstNodeDescription {\n name ??= this.nameProvider.getName(node);\n const path = this.astNodeLocator.getAstNodePath(node);\n if (!name) {\n throw new Error(`Node at path ${path} has no name.`);\n }\n let nameNodeSegment: DocumentSegment | undefined;\n const nameSegmentGetter = () => nameNodeSegment ??= toDocumentSegment(this.nameProvider.getNameNode(node) ?? node.$cstNode);\n return {\n node,\n name,\n get nameSegment() {\n return nameSegmentGetter();\n },\n selectionSegment: toDocumentSegment(node.$cstNode),\n type: node.$type,\n documentUri: document.uri,\n path\n };\n }\n\n}\n\n/**\n * Describes a cross-reference within a document or between two documents.\n */\nexport interface ReferenceDescription {\n /** URI of the document that holds a reference */\n sourceUri: URI\n /** Path to AstNode that holds a reference */\n sourcePath: string\n /** Target document uri */\n targetUri: URI\n /** Path to the target AstNode inside the document */\n targetPath: string\n /** Segment of the reference text. */\n segment: DocumentSegment\n /** Marks a local reference i.e. a cross reference inside a document. */\n local?: boolean\n}\n\n/**\n * Language-specific service to create descriptions of all cross-references in a document. These are used by the `IndexManager`\n * to determine which documents are affected and should be rebuilt when a document is changed.\n */\nexport interface ReferenceDescriptionProvider {\n /**\n * Create descriptions of all cross-references found in the given document. These descriptions are\n * gathered by the `IndexManager` and stored in the global index so they can be considered when\n * a document change is reported by the client.\n *\n * @param document The document in which to gather cross-references.\n * @param cancelToken Indicates when to cancel the current operation.\n * @throws `OperationCanceled` if a user action occurs during execution\n */\n createDescriptions(document: LangiumDocument, cancelToken?: CancellationToken): Promise;\n}\n\nexport class DefaultReferenceDescriptionProvider implements ReferenceDescriptionProvider {\n\n protected readonly nodeLocator: AstNodeLocator;\n\n constructor(services: LangiumCoreServices) {\n this.nodeLocator = services.workspace.AstNodeLocator;\n }\n\n async createDescriptions(document: LangiumDocument, cancelToken = CancellationToken.None): Promise {\n const descr: ReferenceDescription[] = [];\n const rootNode = document.parseResult.value;\n for (const astNode of streamAst(rootNode)) {\n await interruptAndCheck(cancelToken);\n streamReferences(astNode).filter(refInfo => !isLinkingError(refInfo)).forEach(refInfo => {\n // TODO: Consider logging a warning or throw an exception when DocumentState is < than Linked\n const description = this.createDescription(refInfo);\n if (description) {\n descr.push(description);\n }\n });\n }\n return descr;\n }\n\n protected createDescription(refInfo: ReferenceInfo): ReferenceDescription | undefined {\n const targetNodeDescr = refInfo.reference.$nodeDescription;\n const refCstNode = refInfo.reference.$refNode;\n if (!targetNodeDescr || !refCstNode) {\n return undefined;\n }\n const docUri = getDocument(refInfo.container).uri;\n return {\n sourceUri: docUri,\n sourcePath: this.nodeLocator.getAstNodePath(refInfo.container),\n targetUri: targetNodeDescr.documentUri,\n targetPath: targetNodeDescr.path,\n segment: toDocumentSegment(refCstNode),\n local: UriUtils.equals(targetNodeDescr.documentUri, docUri)\n };\n }\n\n}\n", "/******************************************************************************\n * Copyright 2021 TypeFox GmbH\n * This program and the accompanying materials are made available under the\n * terms of the MIT License, which is available in the project root.\n ******************************************************************************/\n\nimport type { AstNode } from '../syntax-tree.js';\n\n/**\n * Language-specific service for locating an `AstNode` in a document.\n */\nexport interface AstNodeLocator {\n\n /**\n * Creates a path represented by a `string` that identifies an `AstNode` inside its document.\n * It must be possible to retrieve exactly the same `AstNode` from the document using this path.\n *\n * @param node The `AstNode` for which to create the path.\n * @returns a path represented by a `string` that identifies `node` inside its document.\n * @see AstNodeLocator.getAstNode\n */\n getAstNodePath(node: AstNode): string;\n\n /**\n * Locates an `AstNode` inside another node by following the given path.\n *\n * @param node Parent element.\n * @param path Describes how to locate the `AstNode` inside the given `node`.\n * @returns The `AstNode` located under the given path, or `undefined` if the path cannot be resolved.\n * @see AstNodeLocator.getAstNodePath\n */\n getAstNode(node: AstNode, path: string): T | undefined;\n\n}\n\nexport class DefaultAstNodeLocator implements AstNodeLocator {\n protected segmentSeparator = '/';\n protected indexSeparator = '@';\n\n getAstNodePath(node: AstNode): string {\n if (node.$container) {\n const containerPath = this.getAstNodePath(node.$container);\n const newSegment = this.getPathSegment(node);\n const nodePath = containerPath + this.segmentSeparator + newSegment;\n return nodePath;\n }\n return '';\n }\n\n protected getPathSegment({ $containerProperty, $containerIndex }: AstNode): string {\n if (!$containerProperty) {\n throw new Error(\"Missing '$containerProperty' in AST node.\");\n }\n if ($containerIndex !== undefined) {\n return $containerProperty + this.indexSeparator + $containerIndex;\n }\n return $containerProperty;\n }\n\n getAstNode(node: AstNode, path: string): T | undefined {\n const segments = path.split(this.segmentSeparator);\n return segments.reduce((previousValue, currentValue) => {\n if (!previousValue || currentValue.length === 0) {\n return previousValue;\n }\n const propertyIndex = currentValue.indexOf(this.indexSeparator);\n if (propertyIndex > 0) {\n const property = currentValue.substring(0, propertyIndex);\n const arrayIndex = parseInt(currentValue.substring(propertyIndex + 1));\n const array = (previousValue as unknown as Record)[property];\n return array?.[arrayIndex];\n }\n return (previousValue as unknown as Record)[currentValue];\n }, node) as T;\n }\n\n}\n", "/******************************************************************************\n * Copyright 2022 TypeFox GmbH\n * This program and the accompanying materials are made available under the\n * terms of the MIT License, which is available in the project root.\n ******************************************************************************/\n\nimport type { ConfigurationItem, DidChangeConfigurationParams, DidChangeConfigurationRegistrationOptions, InitializeParams, InitializedParams } from 'vscode-languageserver-protocol';\nimport type { ServiceRegistry } from '../service-registry.js';\nimport type { LangiumSharedCoreServices } from '../services.js';\nimport { Deferred } from '../utils/promise-utils.js';\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\nexport interface ConfigurationProvider {\n\n /**\n * A promise that resolves when the configuration provider is ready to be used.\n */\n readonly ready: Promise;\n\n /**\n * When used in a language server context, this method is called when the server receives\n * the `initialize` request.\n */\n initialize(params: InitializeParams): void;\n\n /**\n * When used in a language server context, this method is called when the server receives\n * the `initialized` notification.\n */\n initialized(params: ConfigurationInitializedParams): Promise;\n\n /**\n * Returns a configuration value stored for the given language.\n *\n * @param language The language id\n * @param configuration Configuration name\n */\n getConfiguration(language: string, configuration: string): Promise;\n\n /**\n * Updates the cached configurations using the `change` notification parameters.\n *\n * @param change The parameters of a change configuration notification.\n * `settings` property of the change object could be expressed as `Record>`\n */\n updateConfiguration(change: DidChangeConfigurationParams): void;\n}\n\nexport interface ConfigurationInitializedParams extends InitializedParams {\n register?: (params: DidChangeConfigurationRegistrationOptions) => void,\n fetchConfiguration?: (configuration: ConfigurationItem[]) => Promise\n}\n\n/**\n * Base configuration provider for building up other configuration providers\n */\nexport class DefaultConfigurationProvider implements ConfigurationProvider {\n\n protected readonly serviceRegistry: ServiceRegistry;\n protected readonly _ready = new Deferred();\n protected settings: Record> = {};\n protected workspaceConfig = false;\n\n constructor(services: LangiumSharedCoreServices) {\n this.serviceRegistry = services.ServiceRegistry;\n }\n\n get ready(): Promise {\n return this._ready.promise;\n }\n\n initialize(params: InitializeParams): void {\n this.workspaceConfig = params.capabilities.workspace?.configuration ?? false;\n }\n\n async initialized(params: ConfigurationInitializedParams): Promise {\n if (this.workspaceConfig) {\n if (params.register) {\n // params.register(...) is a function to be provided by the calling language server for the sake of\n // decoupling this implementation from the concrete LSP implementations, specifically the LSP Connection\n\n const languages = this.serviceRegistry.all;\n params.register({\n // Listen to configuration changes for all languages\n section: languages.map(lang => this.toSectionName(lang.LanguageMetaData.languageId))\n });\n }\n\n if (params.fetchConfiguration) {\n // params.fetchConfiguration(...) is a function to be provided by the calling language server for the sake of\n // decoupling this implementation from the concrete LSP implementations, specifically the LSP Connection\n const configToUpdate = this.serviceRegistry.all.map(lang => {\n // Fetch the configuration changes for all languages\n section: this.toSectionName(lang.LanguageMetaData.languageId)\n });\n\n // get workspace configurations (default scope URI)\n const configs = await params.fetchConfiguration(configToUpdate);\n configToUpdate.forEach((conf, idx) => {\n this.updateSectionConfiguration(conf.section!, configs[idx]);\n });\n }\n }\n this._ready.resolve();\n }\n\n /**\n * Updates the cached configurations using the `change` notification parameters.\n *\n * @param change The parameters of a change configuration notification.\n * `settings` property of the change object could be expressed as `Record>`\n */\n updateConfiguration(change: DidChangeConfigurationParams): void {\n if (!change.settings) {\n return;\n }\n Object.keys(change.settings).forEach(section => {\n this.updateSectionConfiguration(section, change.settings[section]);\n });\n }\n\n protected updateSectionConfiguration(section: string, configuration: any): void {\n this.settings[section] = configuration;\n }\n\n /**\n * Returns a configuration value stored for the given language.\n *\n * @param language The language id\n * @param configuration Configuration name\n */\n async getConfiguration(language: string, configuration: string): Promise {\n await this.ready;\n\n const sectionName = this.toSectionName(language);\n if (this.settings[sectionName]) {\n return this.settings[sectionName][configuration];\n }\n }\n\n protected toSectionName(languageId: string): string {\n return `${languageId}`;\n }\n}\n", "/******************************************************************************\n * Copyright 2021 TypeFox GmbH\n * This program and the accompanying materials are made available under the\n * terms of the MIT License, which is available in the project root.\n ******************************************************************************/\n\nexport interface Disposable {\n /**\n * Dispose this object.\n */\n dispose(): void;\n}\n\nexport interface AsyncDisposable {\n /**\n * Dispose this object.\n */\n dispose(): Promise;\n}\n\nexport namespace Disposable {\n export function create(callback: () => Promise): AsyncDisposable;\n export function create(callback: () => void): Disposable;\n export function create(callback: () => void | Promise): Disposable | AsyncDisposable {\n return {\n dispose: async () => await callback()\n };\n }\n}\n", "/******************************************************************************\n * Copyright 2021 TypeFox GmbH\n * This program and the accompanying materials are made available under the\n * terms of the MIT License, which is available in the project root.\n ******************************************************************************/\n\nimport { CancellationToken } from '../utils/cancellation.js';\nimport { Disposable } from '../utils/disposable.js';\nimport type { ServiceRegistry } from '../service-registry.js';\nimport type { LangiumSharedCoreServices } from '../services.js';\nimport type { AstNode } from '../syntax-tree.js';\nimport type { MaybePromise } from '../utils/promise-utils.js';\nimport type { Deferred } from '../utils/promise-utils.js';\nimport type { ValidationOptions } from '../validation/document-validator.js';\nimport type { IndexManager } from '../workspace/index-manager.js';\nimport type { LangiumDocument, LangiumDocuments, LangiumDocumentFactory } from './documents.js';\nimport { MultiMap } from '../utils/collections.js';\nimport { OperationCancelled, interruptAndCheck } from '../utils/promise-utils.js';\nimport { stream } from '../utils/stream.js';\nimport type { URI } from '../utils/uri-utils.js';\nimport { ValidationCategory } from '../validation/validation-registry.js';\nimport { DocumentState } from './documents.js';\n\nexport interface BuildOptions {\n /**\n * Control the validation phase with this option:\n * - `true` enables all validation checks and forces revalidating the documents\n * - `false` or `undefined` disables all validation checks\n * - An object runs only the necessary validation checks; the `categories` property restricts this to a specific subset\n */\n validation?: boolean | ValidationOptions\n}\n\nexport interface DocumentBuildState {\n /** Whether a document has completed its last build process. */\n completed: boolean\n /** The options used for the last build process. */\n options: BuildOptions\n /** Additional information about the last build result. */\n result?: {\n validationChecks?: ValidationCategory[]\n }\n}\n\n/**\n * Shared-service for building and updating `LangiumDocument`s.\n */\nexport interface DocumentBuilder {\n\n /** The options used for rebuilding documents after an update. */\n updateBuildOptions: BuildOptions;\n\n /**\n * Execute all necessary build steps for the given documents.\n *\n * @param documents Set of documents to be built.\n * @param options Options for the document builder.\n * @param cancelToken Indicates when to cancel the current operation.\n * @throws `OperationCanceled` if a user action occurs during execution\n */\n build(documents: Array>, options?: BuildOptions, cancelToken?: CancellationToken): Promise;\n\n /**\n * This method is called when a document change is detected. It updates the state of all\n * affected documents, including those with references to the changed ones, so they are rebuilt.\n *\n * @param changed URIs of changed or created documents\n * @param deleted URIs of deleted documents\n * @param cancelToken allows to cancel the current operation\n * @throws `OperationCancelled` if cancellation is detected during execution\n */\n update(changed: URI[], deleted: URI[], cancelToken?: CancellationToken): Promise;\n\n /**\n * Notify the given callback when a document update was triggered, but before any document\n * is rebuilt. Listeners to this event should not perform any long-running task.\n */\n onUpdate(callback: DocumentUpdateListener): Disposable;\n\n /**\n * Notify the given callback when a set of documents has been built reaching a desired target state.\n */\n onBuildPhase(targetState: DocumentState, callback: DocumentBuildListener): Disposable;\n\n /**\n * Wait until the workspace has reached the specified state for all documents.\n *\n * @param state The desired state. The promise won't resolve until all documents have reached this state\n * @param cancelToken Optionally allows to cancel the wait operation, disposing any listeners in the process\n * @throws `OperationCancelled` if cancellation has been requested before the state has been reached\n */\n waitUntil(state: DocumentState, cancelToken?: CancellationToken): Promise;\n\n /**\n * Wait until the document specified by the {@link uri} has reached the specified state.\n *\n * @param state The desired state. The promise won't resolve until the document has reached this state.\n * @param uri The specified URI that points to the document. If the URI does not exist, the promise will resolve once the workspace has reached the specified state.\n * @param cancelToken Optionally allows to cancel the wait operation, disposing any listeners in the process.\n * @return The URI of the document that has reached the desired state, or `undefined` if the document does not exist.\n * @throws `OperationCancelled` if cancellation has been requested before the state has been reached\n */\n waitUntil(state: DocumentState, uri?: URI, cancelToken?: CancellationToken): Promise;\n}\n\nexport type DocumentUpdateListener = (changed: URI[], deleted: URI[]) => void | Promise\nexport type DocumentBuildListener = (built: LangiumDocument[], cancelToken: CancellationToken) => void | Promise\nexport class DefaultDocumentBuilder implements DocumentBuilder {\n\n updateBuildOptions: BuildOptions = {\n // Default: run only the built-in validation checks and those in the _fast_ category (includes those without category)\n validation: {\n categories: ['built-in', 'fast']\n }\n };\n\n protected readonly langiumDocuments: LangiumDocuments;\n protected readonly langiumDocumentFactory: LangiumDocumentFactory;\n protected readonly indexManager: IndexManager;\n protected readonly serviceRegistry: ServiceRegistry;\n protected readonly updateListeners: DocumentUpdateListener[] = [];\n protected readonly buildPhaseListeners = new MultiMap();\n protected readonly buildState = new Map();\n protected readonly documentBuildWaiters = new Map>();\n protected currentState = DocumentState.Changed;\n\n constructor(services: LangiumSharedCoreServices) {\n this.langiumDocuments = services.workspace.LangiumDocuments;\n this.langiumDocumentFactory = services.workspace.LangiumDocumentFactory;\n this.indexManager = services.workspace.IndexManager;\n this.serviceRegistry = services.ServiceRegistry;\n }\n\n async build(documents: Array>, options: BuildOptions = {}, cancelToken = CancellationToken.None): Promise {\n for (const document of documents) {\n const key = document.uri.toString();\n if (document.state === DocumentState.Validated) {\n if (typeof options.validation === 'boolean' && options.validation) {\n // Force re-running all validation checks\n document.state = DocumentState.IndexedReferences;\n document.diagnostics = undefined;\n this.buildState.delete(key);\n } else if (typeof options.validation === 'object') {\n const buildState = this.buildState.get(key);\n const previousCategories = buildState?.result?.validationChecks;\n if (previousCategories) {\n // Validation with explicit options was requested for a document that has already been partly validated.\n // In this case, we need to merge the previous validation categories with the new ones.\n const newCategories = options.validation.categories ?? ValidationCategory.all as ValidationCategory[];\n const categories = newCategories.filter(c => !previousCategories.includes(c));\n if (categories.length > 0) {\n this.buildState.set(key, {\n completed: false,\n options: {\n validation: {\n ...options.validation,\n categories\n }\n },\n result: buildState.result\n });\n document.state = DocumentState.IndexedReferences;\n }\n }\n }\n } else {\n // Default: forget any previous build options\n this.buildState.delete(key);\n }\n }\n this.currentState = DocumentState.Changed;\n await this.emitUpdate(documents.map(e => e.uri), []);\n await this.buildDocuments(documents, options, cancelToken);\n }\n\n async update(changed: URI[], deleted: URI[], cancelToken = CancellationToken.None): Promise {\n this.currentState = DocumentState.Changed;\n // Remove all metadata of documents that are reported as deleted\n for (const deletedUri of deleted) {\n this.langiumDocuments.deleteDocument(deletedUri);\n this.buildState.delete(deletedUri.toString());\n this.indexManager.remove(deletedUri);\n }\n // Set the state of all changed documents to `Changed` so they are completely rebuilt\n for (const changedUri of changed) {\n const invalidated = this.langiumDocuments.invalidateDocument(changedUri);\n if (!invalidated) {\n // We create an unparsed, invalid document.\n // This will be parsed as soon as we reach the first document builder phase.\n // This allows to cancel the parsing process later in case we need it.\n const newDocument = this.langiumDocumentFactory.fromModel({ $type: 'INVALID' }, changedUri);\n newDocument.state = DocumentState.Changed;\n this.langiumDocuments.addDocument(newDocument);\n }\n this.buildState.delete(changedUri.toString());\n }\n // Set the state of all documents that should be relinked to `ComputedScopes` (if not already lower)\n const allChangedUris = stream(changed).concat(deleted).map(uri => uri.toString()).toSet();\n this.langiumDocuments.all\n .filter(doc => !allChangedUris.has(doc.uri.toString()) && this.shouldRelink(doc, allChangedUris))\n .forEach(doc => {\n const linker = this.serviceRegistry.getServices(doc.uri).references.Linker;\n linker.unlink(doc);\n doc.state = Math.min(doc.state, DocumentState.ComputedScopes);\n doc.diagnostics = undefined;\n });\n // Notify listeners of the update\n await this.emitUpdate(changed, deleted);\n // Only allow interrupting the execution after all state changes are done\n await interruptAndCheck(cancelToken);\n\n // Collect all documents that we should rebuild\n const rebuildDocuments = this.langiumDocuments.all\n .filter(doc =>\n // This includes those that were reported as changed and those that we selected for relinking\n doc.state < DocumentState.Linked\n // This includes those for which a previous build has been cancelled\n || !this.buildState.get(doc.uri.toString())?.completed\n )\n .toArray();\n await this.buildDocuments(rebuildDocuments, this.updateBuildOptions, cancelToken);\n }\n\n protected async emitUpdate(changed: URI[], deleted: URI[]): Promise {\n await Promise.all(this.updateListeners.map(listener => listener(changed, deleted)));\n }\n\n /**\n * Check whether the given document should be relinked after changes were found in the given URIs.\n */\n protected shouldRelink(document: LangiumDocument, changedUris: Set): boolean {\n // Relink documents with linking errors -- maybe those references can be resolved now\n if (document.references.some(ref => ref.error !== undefined)) {\n return true;\n }\n // Check whether the document is affected by any of the changed URIs\n return this.indexManager.isAffected(document, changedUris);\n }\n\n onUpdate(callback: DocumentUpdateListener): Disposable {\n this.updateListeners.push(callback);\n return Disposable.create(() => {\n const index = this.updateListeners.indexOf(callback);\n if (index >= 0) {\n this.updateListeners.splice(index, 1);\n }\n });\n }\n\n /**\n * Build the given documents by stepping through all build phases. If a document's state indicates\n * that a certain build phase is already done, the phase is skipped for that document.\n */\n protected async buildDocuments(documents: LangiumDocument[], options: BuildOptions, cancelToken: CancellationToken): Promise {\n this.prepareBuild(documents, options);\n // 0. Parse content\n await this.runCancelable(documents, DocumentState.Parsed, cancelToken, doc =>\n this.langiumDocumentFactory.update(doc, cancelToken)\n );\n // 1. Index content\n await this.runCancelable(documents, DocumentState.IndexedContent, cancelToken, doc =>\n this.indexManager.updateContent(doc, cancelToken)\n );\n // 2. Compute scopes\n await this.runCancelable(documents, DocumentState.ComputedScopes, cancelToken, async doc => {\n const scopeComputation = this.serviceRegistry.getServices(doc.uri).references.ScopeComputation;\n doc.precomputedScopes = await scopeComputation.computeLocalScopes(doc, cancelToken);\n });\n // 3. Linking\n await this.runCancelable(documents, DocumentState.Linked, cancelToken, doc => {\n const linker = this.serviceRegistry.getServices(doc.uri).references.Linker;\n return linker.link(doc, cancelToken);\n });\n // 4. Index references\n await this.runCancelable(documents, DocumentState.IndexedReferences, cancelToken, doc =>\n this.indexManager.updateReferences(doc, cancelToken)\n );\n // 5. Validation\n const toBeValidated = documents.filter(doc => this.shouldValidate(doc));\n await this.runCancelable(toBeValidated, DocumentState.Validated, cancelToken, doc =>\n this.validate(doc, cancelToken)\n );\n\n // If we've made it to this point without being cancelled, we can mark the build state as completed.\n for (const doc of documents) {\n const state = this.buildState.get(doc.uri.toString());\n if (state) {\n state.completed = true;\n }\n }\n }\n\n protected prepareBuild(documents: LangiumDocument[], options: BuildOptions): void {\n for (const doc of documents) {\n const key = doc.uri.toString();\n const state = this.buildState.get(key);\n // If the document has no previous build state, we set it. If it has one, but it's already marked\n // as completed, we overwrite it. If the previous build was not completed, we keep its state\n // and continue where it was cancelled.\n if (!state || state.completed) {\n this.buildState.set(key, {\n completed: false,\n options,\n result: state?.result\n });\n }\n }\n }\n\n protected async runCancelable(documents: LangiumDocument[], targetState: DocumentState, cancelToken: CancellationToken,\n callback: (document: LangiumDocument) => MaybePromise): Promise {\n const filtered = documents.filter(e => e.state < targetState);\n for (const document of filtered) {\n await interruptAndCheck(cancelToken);\n await callback(document);\n document.state = targetState;\n }\n await this.notifyBuildPhase(filtered, targetState, cancelToken);\n this.currentState = targetState;\n }\n\n onBuildPhase(targetState: DocumentState, callback: DocumentBuildListener): Disposable {\n this.buildPhaseListeners.add(targetState, callback);\n return Disposable.create(() => {\n this.buildPhaseListeners.delete(targetState, callback);\n });\n }\n\n waitUntil(state: DocumentState, cancelToken?: CancellationToken): Promise;\n waitUntil(state: DocumentState, uri?: URI, cancelToken?: CancellationToken): Promise;\n waitUntil(state: DocumentState, uriOrToken?: URI | CancellationToken, cancelToken?: CancellationToken): Promise {\n let uri: URI | undefined = undefined;\n if (uriOrToken && 'path' in uriOrToken) {\n uri = uriOrToken;\n } else {\n cancelToken = uriOrToken;\n }\n cancelToken ??= CancellationToken.None;\n if (uri) {\n const document = this.langiumDocuments.getDocument(uri);\n if (document && document.state > state) {\n return Promise.resolve(uri);\n }\n }\n if (this.currentState >= state) {\n return Promise.resolve(undefined);\n } else if (cancelToken.isCancellationRequested) {\n return Promise.reject(OperationCancelled);\n }\n return new Promise((resolve, reject) => {\n const buildDisposable = this.onBuildPhase(state, () => {\n buildDisposable.dispose();\n cancelDisposable.dispose();\n if (uri) {\n const document = this.langiumDocuments.getDocument(uri);\n resolve(document?.uri);\n } else {\n resolve(undefined);\n }\n });\n const cancelDisposable = cancelToken!.onCancellationRequested(() => {\n buildDisposable.dispose();\n cancelDisposable.dispose();\n reject(OperationCancelled);\n });\n });\n }\n\n protected async notifyBuildPhase(documents: LangiumDocument[], state: DocumentState, cancelToken: CancellationToken): Promise {\n if (documents.length === 0) {\n // Don't notify when no document has been processed\n return;\n }\n const listeners = this.buildPhaseListeners.get(state);\n for (const listener of listeners) {\n await interruptAndCheck(cancelToken);\n await listener(documents, cancelToken);\n }\n }\n\n /**\n * Determine whether the given document should be validated during a build. The default\n * implementation checks the `validation` property of the build options. If it's set to `true`\n * or a `ValidationOptions` object, the document is included in the validation phase.\n */\n protected shouldValidate(document: LangiumDocument): boolean {\n return Boolean(this.getBuildOptions(document).validation);\n }\n\n /**\n * Run validation checks on the given document and store the resulting diagnostics in the document.\n * If the document already contains diagnostics, the new ones are added to the list.\n */\n protected async validate(document: LangiumDocument, cancelToken: CancellationToken): Promise {\n const validator = this.serviceRegistry.getServices(document.uri).validation.DocumentValidator;\n const validationSetting = this.getBuildOptions(document).validation;\n const options = typeof validationSetting === 'object' ? validationSetting : undefined;\n const diagnostics = await validator.validateDocument(document, options, cancelToken);\n if (document.diagnostics) {\n document.diagnostics.push(...diagnostics);\n } else {\n document.diagnostics = diagnostics;\n }\n\n // Store information about the executed validation in the build state\n const state = this.buildState.get(document.uri.toString());\n if (state) {\n state.result ??= {};\n const newCategories = options?.categories ?? ValidationCategory.all;\n if (state.result.validationChecks) {\n state.result.validationChecks.push(...newCategories);\n } else {\n state.result.validationChecks = [...newCategories];\n }\n }\n }\n\n protected getBuildOptions(document: LangiumDocument): BuildOptions {\n return this.buildState.get(document.uri.toString())?.options ?? {};\n }\n\n}\n", "/******************************************************************************\n * Copyright 2021 TypeFox GmbH\n * This program and the accompanying materials are made available under the\n * terms of the MIT License, which is available in the project root.\n ******************************************************************************/\n\nimport type { ServiceRegistry } from '../service-registry.js';\nimport type { LangiumSharedCoreServices } from '../services.js';\nimport type { AstNode, AstNodeDescription, AstReflection } from '../syntax-tree.js';\nimport { getDocument } from '../utils/ast-utils.js';\nimport { ContextCache } from '../utils/caching.js';\nimport { CancellationToken } from '../utils/cancellation.js';\nimport type { Stream } from '../utils/stream.js';\nimport { stream } from '../utils/stream.js';\nimport type { URI } from '../utils/uri-utils.js';\nimport { UriUtils } from '../utils/uri-utils.js';\nimport type { ReferenceDescription } from './ast-descriptions.js';\nimport type { LangiumDocument, LangiumDocuments } from './documents.js';\n\n/**\n * The index manager is responsible for keeping metadata about symbols and cross-references\n * in the workspace. It is used to look up symbols in the global scope, mostly during linking\n * and completion. This service is shared between all languages of a language server.\n */\nexport interface IndexManager {\n\n /**\n * Removes the specified document URI from the index.\n * Necessary when documents are deleted and not referenceable anymore.\n *\n * @param uri The URI of the document for which index data shall be removed\n */\n remove(uri: URI): void;\n\n /**\n * Updates the information about the exportable content of a document inside the index.\n *\n * @param document Document to be updated\n * @param cancelToken Indicates when to cancel the current operation.\n * @throws `OperationCanceled` if a user action occurs during execution\n */\n updateContent(document: LangiumDocument, cancelToken?: CancellationToken): Promise;\n\n /**\n * Updates the information about the cross-references of a document inside the index.\n *\n * @param document Document to be updated\n * @param cancelToken Indicates when to cancel the current operation.\n * @throws `OperationCanceled` if a user action occurs during execution\n */\n updateReferences(document: LangiumDocument, cancelToken?: CancellationToken): Promise;\n\n /**\n * Determine whether the given document could be affected by changes of the documents\n * identified by the given URIs (second parameter). The document is typically regarded as\n * affected if it contains a reference to any of the changed files.\n *\n * @param document Document to check whether it's affected\n * @param changedUris URIs of the changed documents\n */\n isAffected(document: LangiumDocument, changedUris: Set): boolean;\n\n /**\n * Compute a list of all exported elements, optionally filtered using a type identifier and document URIs.\n *\n * @param nodeType The type to filter with, or `undefined` to return descriptions of all types.\n * @param uris If specified, only returns elements from the given URIs.\n * @returns a `Stream` containing all globally visible nodes (of a given type).\n */\n allElements(nodeType?: string, uris?: Set): Stream;\n\n /**\n * Returns all known references that are pointing to the given `targetNode`.\n *\n * @param targetNode the `AstNode` to look up references for\n * @param astNodePath the path that points to the `targetNode` inside the document. See also `AstNodeLocator`\n *\n * @returns a `Stream` of references that are targeting the `targetNode`\n */\n findAllReferences(targetNode: AstNode, astNodePath: string): Stream;\n\n}\n\nexport class DefaultIndexManager implements IndexManager {\n\n protected readonly serviceRegistry: ServiceRegistry;\n protected readonly documents: LangiumDocuments;\n protected readonly astReflection: AstReflection;\n\n /**\n * The symbol index stores all `AstNodeDescription` items exported by a document.\n * The key used in this map is the string representation of the specific document URI.\n */\n protected readonly symbolIndex = new Map();\n /**\n * This is a cache for the `allElements()` method.\n * It caches the descriptions from `symbolIndex` grouped by types.\n */\n protected readonly symbolByTypeIndex = new ContextCache();\n /**\n * This index keeps track of all `ReferenceDescription` items exported by a document.\n * This is used to compute which elements are affected by a document change\n * and for finding references to an AST node.\n */\n protected readonly referenceIndex = new Map();\n\n constructor(services: LangiumSharedCoreServices) {\n this.documents = services.workspace.LangiumDocuments;\n this.serviceRegistry = services.ServiceRegistry;\n this.astReflection = services.AstReflection;\n }\n\n findAllReferences(targetNode: AstNode, astNodePath: string): Stream {\n const targetDocUri = getDocument(targetNode).uri;\n const result: ReferenceDescription[] = [];\n this.referenceIndex.forEach(docRefs => {\n docRefs.forEach(refDescr => {\n if (UriUtils.equals(refDescr.targetUri, targetDocUri) && refDescr.targetPath === astNodePath) {\n result.push(refDescr);\n }\n });\n });\n return stream(result);\n }\n\n allElements(nodeType?: string, uris?: Set): Stream {\n let documentUris = stream(this.symbolIndex.keys());\n if (uris) {\n documentUris = documentUris.filter(uri => !uris || uris.has(uri));\n }\n return documentUris\n .map(uri => this.getFileDescriptions(uri, nodeType))\n .flat();\n }\n\n protected getFileDescriptions(uri: string, nodeType?: string): AstNodeDescription[] {\n if (!nodeType) {\n return this.symbolIndex.get(uri) ?? [];\n }\n const descriptions = this.symbolByTypeIndex.get(uri, nodeType, () => {\n const allFileDescriptions = this.symbolIndex.get(uri) ?? [];\n return allFileDescriptions.filter(e => this.astReflection.isSubtype(e.type, nodeType));\n });\n return descriptions;\n }\n\n remove(uri: URI): void {\n const uriString = uri.toString();\n this.symbolIndex.delete(uriString);\n this.symbolByTypeIndex.clear(uriString);\n this.referenceIndex.delete(uriString);\n }\n\n async updateContent(document: LangiumDocument, cancelToken = CancellationToken.None): Promise {\n const services = this.serviceRegistry.getServices(document.uri);\n const exports = await services.references.ScopeComputation.computeExports(document, cancelToken);\n const uri = document.uri.toString();\n this.symbolIndex.set(uri, exports);\n this.symbolByTypeIndex.clear(uri);\n }\n\n async updateReferences(document: LangiumDocument, cancelToken = CancellationToken.None): Promise {\n const services = this.serviceRegistry.getServices(document.uri);\n const indexData = await services.workspace.ReferenceDescriptionProvider.createDescriptions(document, cancelToken);\n this.referenceIndex.set(document.uri.toString(), indexData);\n }\n\n isAffected(document: LangiumDocument, changedUris: Set): boolean {\n const references = this.referenceIndex.get(document.uri.toString());\n if (!references) {\n return false;\n }\n return references.some(ref => !ref.local && changedUris.has(ref.targetUri.toString()));\n }\n\n}\n", "/******************************************************************************\n * Copyright 2022 TypeFox GmbH\n * This program and the accompanying materials are made available under the\n * terms of the MIT License, which is available in the project root.\n ******************************************************************************/\n\nimport type { InitializeParams, InitializedParams } from 'vscode-languageserver-protocol';\nimport type { WorkspaceFolder } from 'vscode-languageserver-types';\nimport type { ServiceRegistry } from '../service-registry.js';\nimport type { LangiumSharedCoreServices } from '../services.js';\nimport { CancellationToken } from '../utils/cancellation.js';\nimport { Deferred, interruptAndCheck } from '../utils/promise-utils.js';\nimport { URI, UriUtils } from '../utils/uri-utils.js';\nimport type { BuildOptions, DocumentBuilder } from './document-builder.js';\nimport type { LangiumDocument, LangiumDocuments } from './documents.js';\nimport type { FileSystemNode, FileSystemProvider } from './file-system-provider.js';\nimport type { WorkspaceLock } from './workspace-lock.js';\n\n// export type WorkspaceFolder from 'vscode-languageserver-types' for convenience,\n// is supposed to avoid confusion as 'WorkspaceFolder' might accidentally be imported via 'vscode-languageclient'\nexport type { WorkspaceFolder };\n\n/**\n * The workspace manager is responsible for finding source files in the workspace.\n * This service is shared between all languages of a language server.\n */\nexport interface WorkspaceManager {\n\n /** The options used for the initial workspace build. */\n initialBuildOptions: BuildOptions | undefined;\n\n /**\n * A promise that resolves when the workspace manager is ready to be used.\n * Use this to ensure that the workspace manager has finished its initialization.\n */\n readonly ready: Promise;\n\n /**\n * When used in a language server context, this method is called when the server receives\n * the `initialize` request.\n */\n initialize(params: InitializeParams): void;\n\n /**\n * When used in a language server context, this method is called when the server receives\n * the `initialized` notification.\n */\n initialized(params: InitializedParams): Promise;\n\n /**\n * Does the initial indexing of workspace folders.\n * Collects information about exported and referenced AstNodes in\n * each language file and stores it locally.\n *\n * @param folders The set of workspace folders to be indexed.\n */\n initializeWorkspace(folders: WorkspaceFolder[], cancelToken?: CancellationToken): Promise;\n\n}\n\nexport class DefaultWorkspaceManager implements WorkspaceManager {\n\n initialBuildOptions: BuildOptions = {};\n\n protected readonly serviceRegistry: ServiceRegistry;\n protected readonly langiumDocuments: LangiumDocuments;\n protected readonly documentBuilder: DocumentBuilder;\n protected readonly fileSystemProvider: FileSystemProvider;\n protected readonly mutex: WorkspaceLock;\n protected readonly _ready = new Deferred();\n protected folders?: WorkspaceFolder[];\n\n constructor(services: LangiumSharedCoreServices) {\n this.serviceRegistry = services.ServiceRegistry;\n this.langiumDocuments = services.workspace.LangiumDocuments;\n this.documentBuilder = services.workspace.DocumentBuilder;\n this.fileSystemProvider = services.workspace.FileSystemProvider;\n this.mutex = services.workspace.WorkspaceLock;\n }\n\n get ready(): Promise {\n return this._ready.promise;\n }\n\n initialize(params: InitializeParams): void {\n this.folders = params.workspaceFolders ?? undefined;\n }\n\n initialized(_params: InitializedParams): Promise {\n // Initialize the workspace even if there are no workspace folders\n // We still want to load additional documents (language library or similar) during initialization\n return this.mutex.write(token => this.initializeWorkspace(this.folders ?? [], token));\n }\n\n async initializeWorkspace(folders: WorkspaceFolder[], cancelToken = CancellationToken.None): Promise {\n const documents = await this.performStartup(folders);\n // Only after creating all documents do we check whether we need to cancel the initialization\n // The document builder will later pick up on all unprocessed documents\n await interruptAndCheck(cancelToken);\n await this.documentBuilder.build(documents, this.initialBuildOptions, cancelToken);\n }\n\n /**\n * Performs the uninterruptable startup sequence of the workspace manager.\n * This methods loads all documents in the workspace and other documents and returns them.\n */\n protected async performStartup(folders: WorkspaceFolder[]): Promise {\n const fileExtensions = this.serviceRegistry.all.flatMap(e => e.LanguageMetaData.fileExtensions);\n const documents: LangiumDocument[] = [];\n const collector = (document: LangiumDocument) => {\n documents.push(document);\n if (!this.langiumDocuments.hasDocument(document.uri)) {\n this.langiumDocuments.addDocument(document);\n }\n };\n // Even though we don't await the initialization of the workspace manager,\n // we can still assume that all library documents and file documents are loaded by the time we start building documents.\n // The mutex prevents anything from performing a workspace build until we check the cancellation token\n await this.loadAdditionalDocuments(folders, collector);\n await Promise.all(\n folders.map(wf => [wf, this.getRootFolder(wf)] as [WorkspaceFolder, URI])\n .map(async entry => this.traverseFolder(...entry, fileExtensions, collector))\n );\n this._ready.resolve();\n return documents;\n }\n\n /**\n * Load all additional documents that shall be visible in the context of the given workspace\n * folders and add them to the collector. This can be used to include built-in libraries of\n * your language, which can be either loaded from provided files or constructed in memory.\n */\n protected loadAdditionalDocuments(_folders: WorkspaceFolder[], _collector: (document: LangiumDocument) => void): Promise {\n return Promise.resolve();\n }\n\n /**\n * Determine the root folder of the source documents in the given workspace folder.\n * The default implementation returns the URI of the workspace folder, but you can override\n * this to return a subfolder like `src` instead.\n */\n protected getRootFolder(workspaceFolder: WorkspaceFolder): URI {\n return URI.parse(workspaceFolder.uri);\n }\n\n /**\n * Traverse the file system folder identified by the given URI and its subfolders. All\n * contained files that match the file extensions are added to the collector.\n */\n protected async traverseFolder(workspaceFolder: WorkspaceFolder, folderPath: URI, fileExtensions: string[], collector: (document: LangiumDocument) => void): Promise {\n const content = await this.fileSystemProvider.readDirectory(folderPath);\n await Promise.all(content.map(async entry => {\n if (this.includeEntry(workspaceFolder, entry, fileExtensions)) {\n if (entry.isDirectory) {\n await this.traverseFolder(workspaceFolder, entry.uri, fileExtensions, collector);\n } else if (entry.isFile) {\n const document = await this.langiumDocuments.getOrCreateDocument(entry.uri);\n collector(document);\n }\n }\n }));\n }\n\n /**\n * Determine whether the given folder entry shall be included while indexing the workspace.\n */\n protected includeEntry(_workspaceFolder: WorkspaceFolder, entry: FileSystemNode, fileExtensions: string[]): boolean {\n const name = UriUtils.basename(entry.uri);\n if (name.startsWith('.')) {\n return false;\n }\n if (entry.isDirectory) {\n return name !== 'node_modules' && name !== 'out';\n } else if (entry.isFile) {\n const extname = UriUtils.extname(entry.uri);\n return fileExtensions.includes(extname);\n }\n return false;\n }\n\n}\n", "/******************************************************************************\n * Copyright 2022 TypeFox GmbH\n * This program and the accompanying materials are made available under the\n * terms of the MIT License, which is available in the project root.\n ******************************************************************************/\n\nimport type { ILexingError, IMultiModeLexerDefinition, IToken, TokenType, TokenTypeDictionary, TokenVocabulary } from 'chevrotain';\nimport type { LangiumCoreServices } from '../services.js';\nimport { Lexer as ChevrotainLexer } from 'chevrotain';\n\nexport interface LexerResult {\n /**\n * A list of all tokens that were lexed from the input.\n *\n * Note that Langium requires the optional properties\n * `startLine`, `startColumn`, `endOffset`, `endLine` and `endColumn` to be set on each token.\n */\n tokens: IToken[];\n /**\n * Contains hidden tokens, usually comments.\n */\n hidden: IToken[];\n errors: ILexingError[];\n}\n\nexport interface Lexer {\n readonly definition: TokenTypeDictionary;\n tokenize(text: string): LexerResult;\n}\n\nexport class DefaultLexer implements Lexer {\n\n protected chevrotainLexer: ChevrotainLexer;\n protected tokenTypes: TokenTypeDictionary;\n\n constructor(services: LangiumCoreServices) {\n const tokens = services.parser.TokenBuilder.buildTokens(services.Grammar, {\n caseInsensitive: services.LanguageMetaData.caseInsensitive\n });\n this.tokenTypes = this.toTokenTypeDictionary(tokens);\n const lexerTokens = isTokenTypeDictionary(tokens) ? Object.values(tokens) : tokens;\n this.chevrotainLexer = new ChevrotainLexer(lexerTokens, {\n positionTracking: 'full'\n });\n }\n\n get definition(): TokenTypeDictionary {\n return this.tokenTypes;\n }\n\n tokenize(text: string): LexerResult {\n const chevrotainResult = this.chevrotainLexer.tokenize(text);\n return {\n tokens: chevrotainResult.tokens,\n errors: chevrotainResult.errors,\n hidden: chevrotainResult.groups.hidden ?? []\n };\n }\n\n protected toTokenTypeDictionary(buildTokens: TokenVocabulary): TokenTypeDictionary {\n if (isTokenTypeDictionary(buildTokens)) return buildTokens;\n const tokens = isIMultiModeLexerDefinition(buildTokens) ? Object.values(buildTokens.modes).flat() : buildTokens;\n const res: TokenTypeDictionary = {};\n tokens.forEach(token => res[token.name] = token);\n return res;\n }\n}\n\n/**\n * Returns a check whether the given TokenVocabulary is TokenType array\n */\nexport function isTokenTypeArray(tokenVocabulary: TokenVocabulary): tokenVocabulary is TokenType[] {\n return Array.isArray(tokenVocabulary) && (tokenVocabulary.length === 0 || 'name' in tokenVocabulary[0]);\n}\n\n/**\n * Returns a check whether the given TokenVocabulary is IMultiModeLexerDefinition\n */\nexport function isIMultiModeLexerDefinition(tokenVocabulary: TokenVocabulary): tokenVocabulary is IMultiModeLexerDefinition {\n return tokenVocabulary && 'modes' in tokenVocabulary && 'defaultMode' in tokenVocabulary;\n}\n\n/**\n * Returns a check whether the given TokenVocabulary is TokenTypeDictionary\n */\nexport function isTokenTypeDictionary(tokenVocabulary: TokenVocabulary): tokenVocabulary is TokenTypeDictionary {\n return !isTokenTypeArray(tokenVocabulary) && !isIMultiModeLexerDefinition(tokenVocabulary);\n}\n", "/******************************************************************************\n * Copyright 2023 TypeFox GmbH\n * This program and the accompanying materials are made available under the\n * terms of the MIT License, which is available in the project root.\n ******************************************************************************/\n\nimport { Position, Range } from 'vscode-languageserver-types';\nimport type { CstNode } from '../syntax-tree.js';\nimport { NEWLINE_REGEXP, escapeRegExp } from '../utils/regexp-utils.js';\nimport { URI } from '../utils/uri-utils.js';\n\nexport interface JSDocComment extends JSDocValue {\n readonly elements: JSDocElement[]\n getTag(name: string): JSDocTag | undefined\n getTags(name: string): JSDocTag[]\n}\n\nexport type JSDocElement = JSDocParagraph | JSDocTag;\n\nexport type JSDocInline = JSDocTag | JSDocLine;\n\nexport interface JSDocValue {\n /**\n * Represents the range that this JSDoc element occupies.\n * If the JSDoc was parsed from a `CstNode`, the range will represent the location in the source document.\n */\n readonly range: Range\n /**\n * Renders this JSDoc element to a plain text representation.\n */\n toString(): string\n /**\n * Renders this JSDoc element to a markdown representation.\n *\n * @param options Rendering options to customize the markdown result.\n */\n toMarkdown(options?: JSDocRenderOptions): string\n}\n\nexport interface JSDocParagraph extends JSDocValue {\n readonly inlines: JSDocInline[]\n}\n\nexport interface JSDocLine extends JSDocValue {\n readonly text: string\n}\n\nexport interface JSDocTag extends JSDocValue {\n readonly name: string\n readonly content: JSDocParagraph\n readonly inline: boolean\n}\n\nexport interface JSDocParseOptions {\n /**\n * The start symbol of your comment format. Defaults to `/**`.\n */\n readonly start?: RegExp | string\n /**\n * The symbol that start a line of your comment format. Defaults to `*`.\n */\n readonly line?: RegExp | string\n /**\n * The end symbol of your comment format. Defaults to `*\\/`.\n */\n readonly end?: RegExp | string\n}\n\nexport interface JSDocRenderOptions {\n /**\n * Determines the style for rendering tags. Defaults to `italic`.\n */\n tag?: 'plain' | 'italic' | 'bold' | 'bold-italic'\n /**\n * Determines the default for rendering `@link` tags. Defaults to `plain`.\n */\n link?: 'code' | 'plain'\n /**\n * Custom tag rendering function.\n * Return a markdown formatted tag or `undefined` to fall back to the default rendering.\n */\n renderTag?(tag: JSDocTag): string | undefined\n /**\n * Custom link rendering function. Accepts a link target and a display value for the link.\n * Return a markdown formatted link with the format `[$display]($link)` or `undefined` if the link is not a valid target.\n */\n renderLink?(link: string, display: string): string | undefined\n}\n\n/**\n * Parses a JSDoc from a `CstNode` containing a comment.\n *\n * @param node A `CstNode` from a parsed Langium document.\n * @param options Parsing options specialized to your language. See {@link JSDocParseOptions}.\n */\nexport function parseJSDoc(node: CstNode, options?: JSDocParseOptions): JSDocComment;\n/**\n * Parses a JSDoc from a string comment.\n *\n * @param content A string containing the source of the JSDoc comment.\n * @param start The start position the comment occupies in the source document.\n * @param options Parsing options specialized to your language. See {@link JSDocParseOptions}.\n */\nexport function parseJSDoc(content: string, start?: Position, options?: JSDocParseOptions): JSDocComment;\nexport function parseJSDoc(node: CstNode | string, start?: Position | JSDocParseOptions, options?: JSDocParseOptions): JSDocComment {\n let opts: JSDocParseOptions | undefined;\n let position: Position | undefined;\n if (typeof node === 'string') {\n position = start as Position | undefined;\n opts = options as JSDocParseOptions | undefined;\n } else {\n position = node.range.start;\n opts = start as JSDocParseOptions | undefined;\n }\n if (!position) {\n position = Position.create(0, 0);\n }\n\n const lines = getLines(node);\n const normalizedOptions = normalizeOptions(opts);\n\n const tokens = tokenize({\n lines,\n position,\n options: normalizedOptions\n });\n\n return parseJSDocComment({\n index: 0,\n tokens,\n position\n });\n}\n\nexport function isJSDoc(node: CstNode | string, options?: JSDocParseOptions): boolean {\n const normalizedOptions = normalizeOptions(options);\n const lines = getLines(node);\n if (lines.length === 0) {\n return false;\n }\n\n const first = lines[0];\n const last = lines[lines.length - 1];\n const firstRegex = normalizedOptions.start;\n const lastRegex = normalizedOptions.end;\n\n return Boolean(firstRegex?.exec(first)) && Boolean(lastRegex?.exec(last));\n}\n\nfunction getLines(node: CstNode | string): string[] {\n let content = '';\n if (typeof node === 'string') {\n content = node;\n } else {\n content = node.text;\n }\n const lines = content.split(NEWLINE_REGEXP);\n return lines;\n}\n\n// Tokenization\n\ninterface JSDocToken {\n type: 'text' | 'tag' | 'inline-tag' | 'break'\n content: string\n range: Range\n}\n\nconst tagRegex = /\\s*(@([\\p{L}][\\p{L}\\p{N}]*)?)/uy;\nconst inlineTagRegex = /\\{(@[\\p{L}][\\p{L}\\p{N}]*)(\\s*)([^\\r\\n}]+)?\\}/gu;\n\nfunction tokenize(context: TokenizationContext): JSDocToken[] {\n const tokens: JSDocToken[] = [];\n let currentLine = context.position.line;\n let currentCharacter = context.position.character;\n for (let i = 0; i < context.lines.length; i++) {\n const first = i === 0;\n const last = i === context.lines.length - 1;\n let line = context.lines[i];\n let index = 0;\n\n if (first && context.options.start) {\n const match = context.options.start?.exec(line);\n if (match) {\n index = match.index + match[0].length;\n }\n } else {\n const match = context.options.line?.exec(line);\n if (match) {\n index = match.index + match[0].length;\n }\n }\n if (last) {\n const match = context.options.end?.exec(line);\n if (match) {\n line = line.substring(0, match.index);\n }\n }\n\n line = line.substring(0, lastCharacter(line));\n const whitespaceEnd = skipWhitespace(line, index);\n\n if (whitespaceEnd >= line.length) {\n // Only create a break token when we already have previous tokens\n if (tokens.length > 0) {\n const position = Position.create(currentLine, currentCharacter);\n tokens.push({\n type: 'break',\n content: '',\n range: Range.create(position, position)\n });\n }\n } else {\n tagRegex.lastIndex = index;\n const tagMatch = tagRegex.exec(line);\n if (tagMatch) {\n const fullMatch = tagMatch[0];\n const value = tagMatch[1];\n const start = Position.create(currentLine, currentCharacter + index);\n const end = Position.create(currentLine, currentCharacter + index + fullMatch.length);\n tokens.push({\n type: 'tag',\n content: value,\n range: Range.create(start, end)\n });\n index += fullMatch.length;\n index = skipWhitespace(line, index);\n }\n\n if (index < line.length) {\n const rest = line.substring(index);\n const inlineTagMatches = Array.from(rest.matchAll(inlineTagRegex));\n tokens.push(...buildInlineTokens(inlineTagMatches, rest, currentLine, currentCharacter + index));\n }\n }\n\n currentLine++;\n currentCharacter = 0;\n }\n\n // Remove last break token if there is one\n if (tokens.length > 0 && tokens[tokens.length - 1].type === 'break') {\n return tokens.slice(0, -1);\n }\n\n return tokens;\n}\n\nfunction buildInlineTokens(tags: RegExpMatchArray[], line: string, lineIndex: number, characterIndex: number): JSDocToken[] {\n const tokens: JSDocToken[] = [];\n\n if (tags.length === 0) {\n const start = Position.create(lineIndex, characterIndex);\n const end = Position.create(lineIndex, characterIndex + line.length);\n tokens.push({\n type: 'text',\n content: line,\n range: Range.create(start, end)\n });\n } else {\n let lastIndex = 0;\n for (const match of tags) {\n const matchIndex = match.index!;\n const startContent = line.substring(lastIndex, matchIndex);\n if (startContent.length > 0) {\n tokens.push({\n type: 'text',\n content: line.substring(lastIndex, matchIndex),\n range: Range.create(\n Position.create(lineIndex, lastIndex + characterIndex),\n Position.create(lineIndex, matchIndex + characterIndex)\n )\n });\n }\n let offset = startContent.length + 1;\n const tagName = match[1];\n tokens.push({\n type: 'inline-tag',\n content: tagName,\n range: Range.create(\n Position.create(lineIndex, lastIndex + offset + characterIndex),\n Position.create(lineIndex, lastIndex + offset + tagName.length + characterIndex)\n )\n });\n offset += tagName.length;\n if (match.length === 4) {\n offset += match[2].length;\n const value = match[3];\n tokens.push({\n type: 'text',\n content: value,\n range: Range.create(\n Position.create(lineIndex, lastIndex + offset + characterIndex),\n Position.create(lineIndex, lastIndex + offset + value.length + characterIndex)\n )\n });\n } else {\n tokens.push({\n type: 'text',\n content: '',\n range: Range.create(\n Position.create(lineIndex, lastIndex + offset + characterIndex),\n Position.create(lineIndex, lastIndex + offset + characterIndex)\n )\n });\n }\n lastIndex = matchIndex + match[0].length;\n }\n const endContent = line.substring(lastIndex);\n if (endContent.length > 0) {\n tokens.push({\n type: 'text',\n content: endContent,\n range: Range.create(\n Position.create(lineIndex, lastIndex + characterIndex),\n Position.create(lineIndex, lastIndex + characterIndex + endContent.length)\n )\n });\n }\n }\n\n return tokens;\n}\n\nconst nonWhitespaceRegex = /\\S/;\nconst whitespaceEndRegex = /\\s*$/;\n\nfunction skipWhitespace(line: string, index: number): number {\n const match = line.substring(index).match(nonWhitespaceRegex);\n if (match) {\n return index + match.index!;\n } else {\n return line.length;\n }\n}\n\nfunction lastCharacter(line: string): number | undefined {\n const match = line.match(whitespaceEndRegex);\n if (match && typeof match.index === 'number') {\n return match.index;\n }\n return undefined;\n}\n\n// Parsing\n\nfunction parseJSDocComment(context: ParseContext): JSDocComment {\n const startPosition: Position = Position.create(context.position.line, context.position.character);\n if (context.tokens.length === 0) {\n return new JSDocCommentImpl([], Range.create(startPosition, startPosition));\n }\n const elements: JSDocElement[] = [];\n while (context.index < context.tokens.length) {\n const element = parseJSDocElement(context, elements[elements.length - 1]);\n if (element) {\n elements.push(element);\n }\n }\n const start = elements[0]?.range.start ?? startPosition;\n const end = elements[elements.length - 1]?.range.end ?? startPosition;\n return new JSDocCommentImpl(elements, Range.create(start, end));\n}\n\nfunction parseJSDocElement(context: ParseContext, last?: JSDocElement): JSDocElement | undefined {\n const next = context.tokens[context.index];\n if (next.type === 'tag') {\n return parseJSDocTag(context, false);\n } else if (next.type === 'text' || next.type === 'inline-tag') {\n return parseJSDocText(context);\n } else {\n appendEmptyLine(next, last);\n context.index++;\n return undefined;\n }\n}\n\nfunction appendEmptyLine(token: JSDocToken, element?: JSDocElement): void {\n if (element) {\n const line = new JSDocLineImpl('', token.range);\n if ('inlines' in element) {\n element.inlines.push(line);\n } else {\n element.content.inlines.push(line);\n }\n }\n}\n\nfunction parseJSDocText(context: ParseContext): JSDocParagraph {\n let token = context.tokens[context.index];\n const firstToken = token;\n let lastToken = token;\n const lines: JSDocInline[] = [];\n while (token && token.type !== 'break' && token.type !== 'tag') {\n lines.push(parseJSDocInline(context));\n lastToken = token;\n token = context.tokens[context.index];\n }\n return new JSDocTextImpl(lines, Range.create(firstToken.range.start, lastToken.range.end));\n}\n\nfunction parseJSDocInline(context: ParseContext): JSDocInline {\n const token = context.tokens[context.index];\n if (token.type === 'inline-tag') {\n return parseJSDocTag(context, true);\n } else {\n return parseJSDocLine(context);\n }\n}\n\nfunction parseJSDocTag(context: ParseContext, inline: boolean): JSDocTag {\n const tagToken = context.tokens[context.index++];\n const name = tagToken.content.substring(1);\n const nextToken = context.tokens[context.index];\n if (nextToken?.type === 'text') {\n if (inline) {\n const docLine = parseJSDocLine(context);\n return new JSDocTagImpl(\n name,\n new JSDocTextImpl([docLine], docLine.range),\n inline,\n Range.create(tagToken.range.start, docLine.range.end)\n );\n } else {\n const textDoc = parseJSDocText(context);\n return new JSDocTagImpl(\n name,\n textDoc,\n inline,\n Range.create(tagToken.range.start, textDoc.range.end)\n );\n }\n } else {\n const range = tagToken.range;\n return new JSDocTagImpl(name, new JSDocTextImpl([], range), inline, range);\n }\n}\n\nfunction parseJSDocLine(context: ParseContext): JSDocLine {\n const token = context.tokens[context.index++];\n return new JSDocLineImpl(token.content, token.range);\n}\n\ninterface NormalizedOptions {\n start?: RegExp\n end?: RegExp\n line?: RegExp\n}\n\ninterface TokenizationContext {\n position: Position\n lines: string[]\n options: NormalizedOptions\n}\n\ninterface ParseContext {\n position: Position\n tokens: JSDocToken[]\n index: number\n}\n\nfunction normalizeOptions(options?: JSDocParseOptions): NormalizedOptions {\n if (!options) {\n return normalizeOptions({\n start: '/**',\n end: '*/',\n line: '*'\n });\n }\n const { start, end, line } = options;\n return {\n start: normalizeOption(start, true),\n end: normalizeOption(end, false),\n line: normalizeOption(line, true)\n };\n}\n\nfunction normalizeOption(option: RegExp | string | undefined, start: boolean): RegExp | undefined {\n if (typeof option === 'string' || typeof option === 'object') {\n const escaped = typeof option === 'string' ? escapeRegExp(option) : option.source;\n if (start) {\n return new RegExp(`^\\\\s*${escaped}`);\n } else {\n return new RegExp(`\\\\s*${escaped}\\\\s*$`);\n }\n } else {\n return option;\n }\n}\n\nclass JSDocCommentImpl implements JSDocComment {\n\n readonly elements: JSDocElement[];\n readonly range: Range;\n\n constructor(elements: JSDocElement[], range: Range) {\n this.elements = elements;\n this.range = range;\n }\n\n getTag(name: string): JSDocTag | undefined {\n return this.getAllTags().find(e => e.name === name);\n }\n\n getTags(name: string): JSDocTag[] {\n return this.getAllTags().filter(e => e.name === name);\n }\n\n private getAllTags(): JSDocTag[] {\n return this.elements.filter((e): e is JSDocTag => 'name' in e);\n }\n\n toString(): string {\n let value = '';\n for (const element of this.elements) {\n if (value.length === 0) {\n value = element.toString();\n } else {\n const text = element.toString();\n value += fillNewlines(value) + text;\n }\n }\n return value.trim();\n }\n\n toMarkdown(options?: JSDocRenderOptions): string {\n let value = '';\n for (const element of this.elements) {\n if (value.length === 0) {\n value = element.toMarkdown(options);\n } else {\n const text = element.toMarkdown(options);\n value += fillNewlines(value) + text;\n }\n }\n return value.trim();\n }\n}\n\nclass JSDocTagImpl implements JSDocTag {\n name: string;\n content: JSDocParagraph;\n range: Range;\n inline: boolean;\n\n constructor(name: string, content: JSDocParagraph, inline: boolean, range: Range) {\n this.name = name;\n this.content = content;\n this.inline = inline;\n this.range = range;\n }\n\n toString(): string {\n let text = `@${this.name}`;\n const content = this.content.toString();\n if (this.content.inlines.length === 1) {\n text = `${text} ${content}`;\n } else if (this.content.inlines.length > 1) {\n text = `${text}\\n${content}`;\n }\n if (this.inline) {\n // Inline tags are surrounded by curly braces\n return `{${text}}`;\n } else {\n return text;\n }\n }\n\n toMarkdown(options?: JSDocRenderOptions): string {\n return options?.renderTag?.(this) ?? this.toMarkdownDefault(options);\n }\n\n private toMarkdownDefault(options?: JSDocRenderOptions): string {\n const content = this.content.toMarkdown(options);\n if (this.inline) {\n const rendered = renderInlineTag(this.name, content, options ?? {});\n if (typeof rendered === 'string') {\n return rendered;\n }\n }\n let marker = '';\n if (options?.tag === 'italic' || options?.tag === undefined) {\n marker = '*';\n } else if (options?.tag === 'bold') {\n marker = '**';\n } else if (options?.tag === 'bold-italic') {\n marker = '***';\n }\n let text = `${marker}@${this.name}${marker}`;\n if (this.content.inlines.length === 1) {\n text = `${text} \u2014 ${content}`;\n } else if (this.content.inlines.length > 1) {\n text = `${text}\\n${content}`;\n }\n if (this.inline) {\n // Inline tags are surrounded by curly braces\n return `{${text}}`;\n } else {\n return text;\n }\n }\n}\n\nfunction renderInlineTag(tag: string, content: string, options: JSDocRenderOptions): string | undefined {\n if (tag === 'linkplain' || tag === 'linkcode' || tag === 'link') {\n const index = content.indexOf(' ');\n let display = content;\n if (index > 0) {\n const displayStart = skipWhitespace(content, index);\n display = content.substring(displayStart);\n content = content.substring(0, index);\n }\n if (tag === 'linkcode' || (tag === 'link' && options.link === 'code')) {\n // Surround the display value in a markdown inline code block\n display = `\\`${display}\\``;\n }\n const renderedLink = options.renderLink?.(content, display) ?? renderLinkDefault(content, display);\n return renderedLink;\n }\n return undefined;\n}\n\nfunction renderLinkDefault(content: string, display: string): string {\n try {\n URI.parse(content, true);\n return `[${display}](${content})`;\n } catch {\n return content;\n }\n}\n\nclass JSDocTextImpl implements JSDocParagraph {\n inlines: JSDocInline[];\n range: Range;\n\n constructor(lines: JSDocInline[], range: Range) {\n this.inlines = lines;\n this.range = range;\n }\n\n toString(): string {\n let text = '';\n for (let i = 0; i < this.inlines.length; i++) {\n const inline = this.inlines[i];\n const next = this.inlines[i + 1];\n text += inline.toString();\n if (next && next.range.start.line > inline.range.start.line) {\n text += '\\n';\n }\n }\n return text;\n }\n\n toMarkdown(options?: JSDocRenderOptions): string {\n let text = '';\n for (let i = 0; i < this.inlines.length; i++) {\n const inline = this.inlines[i];\n const next = this.inlines[i + 1];\n text += inline.toMarkdown(options);\n if (next && next.range.start.line > inline.range.start.line) {\n text += '\\n';\n }\n }\n return text;\n }\n}\n\nclass JSDocLineImpl implements JSDocLine {\n text: string;\n range: Range;\n\n constructor(text: string, range: Range) {\n this.text = text;\n this.range = range;\n }\n\n toString(): string {\n return this.text;\n }\n toMarkdown(): string {\n return this.text;\n }\n\n}\n\nfunction fillNewlines(text: string): string {\n if (text.endsWith('\\n')) {\n return '\\n';\n } else {\n return '\\n\\n';\n }\n}\n", "/******************************************************************************\n * Copyright 2023 TypeFox GmbH\n * This program and the accompanying materials are made available under the\n * terms of the MIT License, which is available in the project root.\n ******************************************************************************/\n\nimport type { LangiumCoreServices } from '../services.js';\nimport type { AstNode, AstNodeDescription } from '../syntax-tree.js';\nimport type { IndexManager } from '../workspace/index-manager.js';\nimport type { CommentProvider } from './comment-provider.js';\nimport type { JSDocTag } from './jsdoc.js';\nimport { getDocument } from '../utils/ast-utils.js';\nimport { isJSDoc, parseJSDoc } from './jsdoc.js';\n\n/**\n * Provides documentation for AST nodes.\n */\nexport interface DocumentationProvider {\n /**\n * Returns a markdown documentation string for the specified AST node.\n *\n * The default implementation `JSDocDocumentationProvider` will inspect the comment associated with the specified node.\n */\n getDocumentation(node: AstNode): string | undefined;\n}\n\nexport class JSDocDocumentationProvider implements DocumentationProvider {\n\n protected readonly indexManager: IndexManager;\n protected readonly commentProvider: CommentProvider;\n\n constructor(services: LangiumCoreServices) {\n this.indexManager = services.shared.workspace.IndexManager;\n this.commentProvider = services.documentation.CommentProvider;\n }\n\n getDocumentation(node: AstNode): string | undefined {\n const comment = this.commentProvider.getComment(node);\n if (comment && isJSDoc(comment)) {\n const parsedJSDoc = parseJSDoc(comment);\n return parsedJSDoc.toMarkdown({\n renderLink: (link, display) => {\n return this.documentationLinkRenderer(node, link, display);\n },\n renderTag: (tag) => {\n return this.documentationTagRenderer(node, tag);\n }\n });\n }\n return undefined;\n }\n\n protected documentationLinkRenderer(node: AstNode, name: string, display: string): string | undefined {\n const description = this.findNameInPrecomputedScopes(node, name) ?? this.findNameInGlobalScope(node, name);\n if (description && description.nameSegment) {\n const line = description.nameSegment.range.start.line + 1;\n const character = description.nameSegment.range.start.character + 1;\n const uri = description.documentUri.with({ fragment: `L${line},${character}` });\n return `[${display}](${uri.toString()})`;\n } else {\n return undefined;\n }\n }\n\n protected documentationTagRenderer(_node: AstNode, _tag: JSDocTag): string | undefined {\n // Fall back to the default tag rendering\n return undefined;\n }\n\n protected findNameInPrecomputedScopes(node: AstNode, name: string): AstNodeDescription | undefined {\n const document = getDocument(node);\n const precomputed = document.precomputedScopes;\n if (!precomputed) {\n return undefined;\n }\n let currentNode: AstNode | undefined = node;\n do {\n const allDescriptions = precomputed.get(currentNode);\n const description = allDescriptions.find(e => e.name === name);\n if (description) {\n return description;\n }\n currentNode = currentNode.$container;\n } while (currentNode);\n\n return undefined;\n }\n\n protected findNameInGlobalScope(node: AstNode, name: string): AstNodeDescription | undefined {\n const description = this.indexManager.allElements().find(e => e.name === name);\n return description;\n }\n}\n", "/******************************************************************************\n * Copyright 2023 TypeFox GmbH\n * This program and the accompanying materials are made available under the\n * terms of the MIT License, which is available in the project root.\n ******************************************************************************/\n\nimport type { GrammarConfig } from '../languages/grammar-config.js';\nimport { isAstNodeWithComment } from '../serializer/json-serializer.js';\nimport type { LangiumCoreServices } from '../services.js';\nimport type { AstNode } from '../syntax-tree.js';\nimport { findCommentNode } from '../utils/cst-utils.js';\n\n/**\n * Provides comments for AST nodes.\n */\nexport interface CommentProvider {\n /**\n * Returns the comment associated with the specified AST node.\n * @param node The AST node to get the comment for.\n * @returns The comment associated with the specified AST node or `undefined` if there is no comment.\n */\n getComment(node: AstNode): string | undefined;\n}\n\nexport class DefaultCommentProvider implements CommentProvider {\n protected readonly grammarConfig: () => GrammarConfig;\n constructor(services: LangiumCoreServices) {\n this.grammarConfig = () => services.parser.GrammarConfig;\n }\n getComment(node: AstNode): string | undefined {\n if(isAstNodeWithComment(node)) {\n return node.$comment;\n }\n return findCommentNode(node.$cstNode, this.grammarConfig().multilineCommentRules)?.text;\n }\n}\n", "/******************************************************************************\n * Copyright 2024 TypeFox GmbH\n * This program and the accompanying materials are made available under the\n * terms of the MIT License, which is available in the project root.\n ******************************************************************************/\n\n// eslint-disable-next-line no-restricted-imports\nexport * from 'vscode-jsonrpc/lib/common/events.js';\n", "/******************************************************************************\n * Copyright 2023 TypeFox GmbH\n * This program and the accompanying materials are made available under the\n * terms of the MIT License, which is available in the project root.\n ******************************************************************************/\n\nimport type { CancellationToken } from '../utils/cancellation.js';\nimport type { LangiumCoreServices } from '../services.js';\nimport type { AstNode } from '../syntax-tree.js';\nimport type { LangiumParser, ParseResult } from './langium-parser.js';\nimport type { Hydrator } from '../serializer/hydrator.js';\nimport type { Event } from '../utils/event.js';\nimport { Deferred, OperationCancelled } from '../utils/promise-utils.js';\nimport { Emitter } from '../utils/event.js';\n\n/**\n * Async parser that allows to cancel the current parsing process.\n * The sync parser implementation is blocking the event loop, which can become quite problematic for large files.\n *\n * Note that the default implementation is not actually async. It just wraps the sync parser in a promise.\n * A real implementation would create worker threads or web workers to offload the parsing work.\n */\nexport interface AsyncParser {\n parse(text: string, cancelToken: CancellationToken): Promise>;\n}\n\n/**\n * Default implementation of the async parser. This implementation only wraps the sync parser in a promise.\n *\n * A real implementation would create worker threads or web workers to offload the parsing work.\n */\nexport class DefaultAsyncParser implements AsyncParser {\n\n protected readonly syncParser: LangiumParser;\n\n constructor(services: LangiumCoreServices) {\n this.syncParser = services.parser.LangiumParser;\n }\n\n parse(text: string): Promise> {\n return Promise.resolve(this.syncParser.parse(text));\n }\n}\n\nexport abstract class AbstractThreadedAsyncParser implements AsyncParser {\n\n /**\n * The thread count determines how many threads are used to parse files in parallel.\n * The default value is 8. Decreasing this value increases startup performance, but decreases parallel parsing performance.\n */\n protected threadCount = 8;\n /**\n * The termination delay determines how long the parser waits for a thread to finish after a cancellation request.\n * The default value is 200(ms).\n */\n protected terminationDelay = 200;\n protected workerPool: ParserWorker[] = [];\n protected queue: Array> = [];\n\n protected readonly hydrator: Hydrator;\n\n constructor(services: LangiumCoreServices) {\n this.hydrator = services.serializer.Hydrator;\n }\n\n protected initializeWorkers(): void {\n while (this.workerPool.length < this.threadCount) {\n const worker = this.createWorker();\n worker.onReady(() => {\n if (this.queue.length > 0) {\n const deferred = this.queue.shift();\n if (deferred) {\n worker.lock();\n deferred.resolve(worker);\n }\n }\n });\n this.workerPool.push(worker);\n }\n }\n\n async parse(text: string, cancelToken: CancellationToken): Promise> {\n const worker = await this.acquireParserWorker(cancelToken);\n const deferred = new Deferred>();\n let timeout: NodeJS.Timeout | undefined;\n // If the cancellation token is requested, we wait for a certain time before terminating the worker.\n // Since the cancellation token lives longer than the parsing process, we need to dispose the event listener.\n // Otherwise, we might accidentally terminate the worker after the parsing process has finished.\n const cancellation = cancelToken.onCancellationRequested(() => {\n timeout = setTimeout(() => {\n this.terminateWorker(worker);\n }, this.terminationDelay);\n });\n worker.parse(text).then(result => {\n const hydrated = this.hydrator.hydrate(result);\n deferred.resolve(hydrated);\n }).catch(err => {\n deferred.reject(err);\n }).finally(() => {\n cancellation.dispose();\n clearTimeout(timeout);\n });\n return deferred.promise;\n }\n\n protected terminateWorker(worker: ParserWorker): void {\n worker.terminate();\n const index = this.workerPool.indexOf(worker);\n if (index >= 0) {\n this.workerPool.splice(index, 1);\n }\n }\n\n protected async acquireParserWorker(cancelToken: CancellationToken): Promise {\n this.initializeWorkers();\n for (const worker of this.workerPool) {\n if (worker.ready) {\n worker.lock();\n return worker;\n }\n }\n const deferred = new Deferred();\n cancelToken.onCancellationRequested(() => {\n const index = this.queue.indexOf(deferred);\n if (index >= 0) {\n this.queue.splice(index, 1);\n }\n deferred.reject(OperationCancelled);\n });\n this.queue.push(deferred);\n return deferred.promise;\n }\n\n protected abstract createWorker(): ParserWorker;\n}\n\nexport type WorkerMessagePost = (message: unknown) => void;\nexport type WorkerMessageCallback = (cb: (message: unknown) => void) => void;\n\nexport class ParserWorker {\n\n protected readonly sendMessage: WorkerMessagePost;\n protected readonly _terminate: () => void;\n protected readonly onReadyEmitter = new Emitter();\n\n protected deferred = new Deferred();\n protected _ready = true;\n protected _parsing = false;\n\n get ready(): boolean {\n return this._ready;\n }\n\n get onReady(): Event {\n return this.onReadyEmitter.event;\n }\n\n constructor(sendMessage: WorkerMessagePost, onMessage: WorkerMessageCallback, onError: WorkerMessageCallback, terminate: () => void) {\n this.sendMessage = sendMessage;\n this._terminate = terminate;\n onMessage(result => {\n const parseResult = result as ParseResult;\n this.deferred.resolve(parseResult);\n this.unlock();\n });\n onError(error => {\n this.deferred.reject(error);\n this.unlock();\n });\n }\n\n terminate(): void {\n this.deferred.reject(OperationCancelled);\n this._terminate();\n }\n\n lock(): void {\n this._ready = false;\n }\n\n unlock(): void {\n this._parsing = false;\n this._ready = true;\n this.onReadyEmitter.fire();\n }\n\n parse(text: string): Promise {\n if (this._parsing) {\n throw new Error('Parser worker is busy');\n }\n this._parsing = true;\n this.deferred = new Deferred();\n this.sendMessage(text);\n return this.deferred.promise;\n }\n}\n", "/******************************************************************************\n * Copyright 2023 TypeFox GmbH\n * This program and the accompanying materials are made available under the\n * terms of the MIT License, which is available in the project root.\n ******************************************************************************/\n\nimport { CancellationToken, CancellationTokenSource } from '../utils/cancellation.js';\nimport { Deferred, isOperationCancelled, type MaybePromise } from '../utils/promise-utils.js';\n\n/**\n * Utility service to execute mutually exclusive actions.\n */\nexport interface WorkspaceLock {\n /**\n * Performs a single async action, like initializing the workspace or processing document changes.\n * Only one action will be executed at a time.\n *\n * When another action is queued up, the token provided for the action will be cancelled.\n * Assuming the action makes use of this token, the next action only has to wait for the current action to finish cancellation.\n */\n write(action: (token: CancellationToken) => MaybePromise): Promise;\n\n /**\n * Performs a single action, like computing completion results or providing workspace symbols.\n * Read actions will only be executed after all write actions have finished. They will be executed in parallel if possible.\n *\n * If a write action is currently running, the read action will be queued up and executed afterwards.\n * If a new write action is queued up while a read action is waiting, the write action will receive priority and will be handled before the read action.\n *\n * Note that read actions are not allowed to modify anything in the workspace. Please use {@link write} instead.\n */\n read(action: () => MaybePromise): Promise;\n\n /**\n * Cancels the last queued write action. All previous write actions already have been cancelled.\n */\n cancelWrite(): void;\n}\n\ntype LockAction = (token: CancellationToken) => MaybePromise;\n\ninterface LockEntry {\n action: LockAction;\n deferred: Deferred;\n cancellationToken: CancellationToken;\n}\n\nexport class DefaultWorkspaceLock implements WorkspaceLock {\n\n private previousTokenSource = new CancellationTokenSource();\n private writeQueue: LockEntry[] = [];\n private readQueue: LockEntry[] = [];\n private done = true;\n\n write(action: (token: CancellationToken) => MaybePromise): Promise {\n this.cancelWrite();\n const tokenSource = new CancellationTokenSource();\n this.previousTokenSource = tokenSource;\n return this.enqueue(this.writeQueue, action, tokenSource.token);\n }\n\n read(action: () => MaybePromise): Promise {\n return this.enqueue(this.readQueue, action);\n }\n\n private enqueue(queue: LockEntry[], action: LockAction, cancellationToken?: CancellationToken): Promise {\n const deferred = new Deferred();\n const entry: LockEntry = {\n action,\n deferred,\n cancellationToken: cancellationToken ?? CancellationToken.None\n };\n queue.push(entry);\n this.performNextOperation();\n return deferred.promise as Promise;\n }\n\n private async performNextOperation(): Promise {\n if (!this.done) {\n return;\n }\n const entries: LockEntry[] = [];\n if (this.writeQueue.length > 0) {\n // Just perform the next write action\n entries.push(this.writeQueue.shift()!);\n } else if (this.readQueue.length > 0) {\n // Empty the read queue and perform all actions in parallel\n entries.push(...this.readQueue.splice(0, this.readQueue.length));\n } else {\n return;\n }\n this.done = false;\n await Promise.all(entries.map(async ({ action, deferred, cancellationToken }) => {\n try {\n // Move the execution of the action to the next event loop tick via `Promise.resolve()`\n const result = await Promise.resolve().then(() => action(cancellationToken));\n deferred.resolve(result);\n } catch (err) {\n if (isOperationCancelled(err)) {\n // If the operation was cancelled, we don't want to reject the promise\n deferred.resolve(undefined);\n } else {\n deferred.reject(err);\n }\n }\n }));\n this.done = true;\n this.performNextOperation();\n }\n\n cancelWrite(): void {\n this.previousTokenSource.cancel();\n }\n}\n", "/******************************************************************************\n * Copyright 2024 TypeFox GmbH\n * This program and the accompanying materials are made available under the\n * terms of the MIT License, which is available in the project root.\n ******************************************************************************/\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\nimport type { TokenType } from 'chevrotain';\nimport { CompositeCstNodeImpl, LeafCstNodeImpl, RootCstNodeImpl } from '../parser/cst-node-builder.js';\nimport { isAbstractElement, type AbstractElement, type Grammar } from '../languages/generated/ast.js';\nimport type { Linker } from '../references/linker.js';\nimport type { Lexer } from '../parser/lexer.js';\nimport type { LangiumCoreServices } from '../services.js';\nimport type { ParseResult } from '../parser/langium-parser.js';\nimport type { Reference, AstNode, CstNode, LeafCstNode, GenericAstNode, Mutable, RootCstNode } from '../syntax-tree.js';\nimport { isRootCstNode, isCompositeCstNode, isLeafCstNode, isAstNode, isReference } from '../syntax-tree.js';\nimport { streamAst } from '../utils/ast-utils.js';\nimport { BiMap } from '../utils/collections.js';\nimport { streamCst } from '../utils/cst-utils.js';\n\n/**\n * The hydrator service is responsible for allowing AST parse results to be sent across worker threads.\n */\nexport interface Hydrator {\n /**\n * Converts a parse result to a plain object. The resulting object can be sent across worker threads.\n */\n dehydrate(result: ParseResult): ParseResult;\n /**\n * Converts a plain object to a parse result. The included AST node can then be used in the main thread.\n * Calling this method on objects that have not been dehydrated first will result in undefined behavior.\n */\n hydrate(result: ParseResult): ParseResult;\n}\n\nexport interface DehydrateContext {\n astNodes: Map;\n cstNodes: Map;\n}\n\nexport interface HydrateContext {\n astNodes: Map;\n cstNodes: Map;\n}\n\nexport class DefaultHydrator implements Hydrator {\n\n protected readonly grammar: Grammar;\n protected readonly lexer: Lexer;\n protected readonly linker: Linker;\n\n protected readonly grammarElementIdMap = new BiMap();\n protected readonly tokenTypeIdMap = new BiMap();\n\n constructor(services: LangiumCoreServices) {\n this.grammar = services.Grammar;\n this.lexer = services.parser.Lexer;\n this.linker = services.references.Linker;\n }\n\n dehydrate(result: ParseResult): ParseResult {\n return {\n // We need to create shallow copies of the errors\n // The original errors inherit from the `Error` class, which is not transferable across worker threads\n lexerErrors: result.lexerErrors.map(e => ({ ...e })),\n parserErrors: result.parserErrors.map(e => ({ ...e })),\n value: this.dehydrateAstNode(result.value, this.createDehyrationContext(result.value))\n };\n }\n\n protected createDehyrationContext(node: AstNode): DehydrateContext {\n const astNodes = new Map();\n const cstNodes = new Map();\n for (const astNode of streamAst(node)) {\n astNodes.set(astNode, {});\n }\n if (node.$cstNode) {\n for (const cstNode of streamCst(node.$cstNode)) {\n cstNodes.set(cstNode, {});\n }\n }\n return {\n astNodes,\n cstNodes\n };\n }\n\n protected dehydrateAstNode(node: AstNode, context: DehydrateContext): object {\n const obj = context.astNodes.get(node) as Record;\n obj.$type = node.$type;\n obj.$containerIndex = node.$containerIndex;\n obj.$containerProperty = node.$containerProperty;\n if (node.$cstNode !== undefined) {\n obj.$cstNode = this.dehydrateCstNode(node.$cstNode, context);\n }\n for (const [name, value] of Object.entries(node)) {\n if (name.startsWith('$')) {\n continue;\n }\n if (Array.isArray(value)) {\n const arr: any[] = [];\n obj[name] = arr;\n for (const item of value) {\n if (isAstNode(item)) {\n arr.push(this.dehydrateAstNode(item, context));\n } else if (isReference(item)) {\n arr.push(this.dehydrateReference(item, context));\n } else {\n arr.push(item);\n }\n }\n } else if (isAstNode(value)) {\n obj[name] = this.dehydrateAstNode(value, context);\n } else if (isReference(value)) {\n obj[name] = this.dehydrateReference(value, context);\n } else if (value !== undefined) {\n obj[name] = value;\n }\n }\n return obj;\n }\n\n protected dehydrateReference(reference: Reference, context: DehydrateContext): any {\n const obj: Record = {};\n obj.$refText = reference.$refText;\n if (reference.$refNode) {\n obj.$refNode = context.cstNodes.get(reference.$refNode);\n }\n return obj;\n }\n\n protected dehydrateCstNode(node: CstNode, context: DehydrateContext): any {\n const cstNode = context.cstNodes.get(node) as Record;\n if (isRootCstNode(node)) {\n cstNode.fullText = node.fullText;\n } else {\n // Note: This returns undefined for hidden nodes (i.e. comments)\n cstNode.grammarSource = this.getGrammarElementId(node.grammarSource);\n }\n cstNode.hidden = node.hidden;\n cstNode.astNode = context.astNodes.get(node.astNode);\n if (isCompositeCstNode(node)) {\n cstNode.content = node.content.map(child => this.dehydrateCstNode(child, context));\n } else if (isLeafCstNode(node)) {\n cstNode.tokenType = node.tokenType.name;\n cstNode.offset = node.offset;\n cstNode.length = node.length;\n cstNode.startLine = node.range.start.line;\n cstNode.startColumn = node.range.start.character;\n cstNode.endLine = node.range.end.line;\n cstNode.endColumn = node.range.end.character;\n }\n return cstNode;\n }\n\n hydrate(result: ParseResult): ParseResult {\n const node = result.value;\n const context = this.createHydrationContext(node);\n if ('$cstNode' in node) {\n this.hydrateCstNode(node.$cstNode, context);\n }\n return {\n lexerErrors: result.lexerErrors,\n parserErrors: result.parserErrors,\n value: this.hydrateAstNode(node, context) as T\n };\n }\n\n protected createHydrationContext(node: any): HydrateContext {\n const astNodes = new Map();\n const cstNodes = new Map();\n for (const astNode of streamAst(node)) {\n astNodes.set(astNode, {} as AstNode);\n }\n let root: RootCstNode;\n if (node.$cstNode) {\n for (const cstNode of streamCst(node.$cstNode)) {\n let cst: Mutable | undefined;\n if ('fullText' in cstNode) {\n cst = new RootCstNodeImpl(cstNode.fullText as string);\n root = cst as RootCstNode;\n } else if ('content' in cstNode) {\n cst = new CompositeCstNodeImpl();\n } else if ('tokenType' in cstNode) {\n cst = this.hydrateCstLeafNode(cstNode);\n }\n if (cst) {\n cstNodes.set(cstNode, cst);\n cst.root = root!;\n }\n }\n }\n return {\n astNodes,\n cstNodes\n };\n }\n\n protected hydrateAstNode(node: any, context: HydrateContext): AstNode {\n const astNode = context.astNodes.get(node) as Mutable;\n astNode.$type = node.$type;\n astNode.$containerIndex = node.$containerIndex;\n astNode.$containerProperty = node.$containerProperty;\n if (node.$cstNode) {\n astNode.$cstNode = context.cstNodes.get(node.$cstNode);\n }\n for (const [name, value] of Object.entries(node)) {\n if (name.startsWith('$')) {\n continue;\n }\n if (Array.isArray(value)) {\n const arr: unknown[] = [];\n astNode[name] = arr;\n for (const item of value) {\n if (isAstNode(item)) {\n arr.push(this.setParent(this.hydrateAstNode(item, context), astNode));\n } else if (isReference(item)) {\n arr.push(this.hydrateReference(item, astNode, name, context));\n } else {\n arr.push(item);\n }\n }\n } else if (isAstNode(value)) {\n astNode[name] = this.setParent(this.hydrateAstNode(value, context), astNode);\n } else if (isReference(value)) {\n astNode[name] = this.hydrateReference(value, astNode, name, context);\n } else if (value !== undefined) {\n astNode[name] = value;\n }\n }\n return astNode;\n }\n\n protected setParent(node: any, parent: any): any {\n node.$container = parent as AstNode;\n return node;\n }\n\n protected hydrateReference(reference: any, node: AstNode, name: string, context: HydrateContext): Reference {\n return this.linker.buildReference(node, name, context.cstNodes.get(reference.$refNode)!, reference.$refText);\n }\n\n protected hydrateCstNode(cstNode: any, context: HydrateContext, num = 0): CstNode {\n const cstNodeObj = context.cstNodes.get(cstNode) as Mutable;\n if (typeof cstNode.grammarSource === 'number') {\n cstNodeObj.grammarSource = this.getGrammarElement(cstNode.grammarSource);\n }\n cstNodeObj.astNode = context.astNodes.get(cstNode.astNode)!;\n if (isCompositeCstNode(cstNodeObj)) {\n for (const child of cstNode.content) {\n const hydrated = this.hydrateCstNode(child, context, num++);\n cstNodeObj.content.push(hydrated);\n }\n }\n return cstNodeObj;\n }\n\n protected hydrateCstLeafNode(cstNode: any): LeafCstNode {\n const tokenType = this.getTokenType(cstNode.tokenType);\n const offset = cstNode.offset;\n const length = cstNode.length;\n const startLine = cstNode.startLine;\n const startColumn = cstNode.startColumn;\n const endLine = cstNode.endLine;\n const endColumn = cstNode.endColumn;\n const hidden = cstNode.hidden;\n const node = new LeafCstNodeImpl(\n offset,\n length,\n {\n start: {\n line: startLine,\n character: startColumn\n },\n end: {\n line: endLine,\n character: endColumn\n }\n },\n tokenType,\n hidden\n );\n return node;\n }\n\n protected getTokenType(name: string): TokenType {\n return this.lexer.definition[name];\n }\n\n protected getGrammarElementId(node: AbstractElement): number | undefined {\n if (this.grammarElementIdMap.size === 0) {\n this.createGrammarElementIdMap();\n }\n return this.grammarElementIdMap.get(node);\n }\n\n protected getGrammarElement(id: number): AbstractElement {\n if (this.grammarElementIdMap.size === 0) {\n this.createGrammarElementIdMap();\n }\n const element = this.grammarElementIdMap.getKey(id);\n if (element) {\n return element;\n } else {\n throw new Error('Invalid grammar element id: ' + id);\n }\n }\n\n protected createGrammarElementIdMap(): void {\n let id = 0;\n for (const element of streamAst(this.grammar)) {\n if (isAbstractElement(element)) {\n this.grammarElementIdMap.set(element, id++);\n }\n }\n }\n\n}\n", "/******************************************************************************\n * Copyright 2021 TypeFox GmbH\n * This program and the accompanying materials are made available under the\n * terms of the MIT License, which is available in the project root.\n******************************************************************************/\n\nimport type { Module } from './dependency-injection.js';\nimport type { LangiumDefaultCoreServices, LangiumDefaultSharedCoreServices, LangiumCoreServices, LangiumSharedCoreServices } from './services.js';\nimport type { FileSystemProvider } from './workspace/file-system-provider.js';\nimport { createGrammarConfig } from './languages/grammar-config.js';\nimport { createCompletionParser } from './parser/completion-parser-builder.js';\nimport { createLangiumParser } from './parser/langium-parser-builder.js';\nimport { DefaultTokenBuilder } from './parser/token-builder.js';\nimport { DefaultValueConverter } from './parser/value-converter.js';\nimport { DefaultLinker } from './references/linker.js';\nimport { DefaultNameProvider } from './references/name-provider.js';\nimport { DefaultReferences } from './references/references.js';\nimport { DefaultScopeComputation } from './references/scope-computation.js';\nimport { DefaultScopeProvider } from './references/scope-provider.js';\nimport { DefaultJsonSerializer } from './serializer/json-serializer.js';\nimport { DefaultServiceRegistry } from './service-registry.js';\nimport { DefaultDocumentValidator } from './validation/document-validator.js';\nimport { ValidationRegistry } from './validation/validation-registry.js';\nimport { DefaultAstNodeDescriptionProvider, DefaultReferenceDescriptionProvider } from './workspace/ast-descriptions.js';\nimport { DefaultAstNodeLocator } from './workspace/ast-node-locator.js';\nimport { DefaultConfigurationProvider } from './workspace/configuration.js';\nimport { DefaultDocumentBuilder } from './workspace/document-builder.js';\nimport { DefaultLangiumDocumentFactory, DefaultLangiumDocuments } from './workspace/documents.js';\nimport { DefaultIndexManager } from './workspace/index-manager.js';\nimport { DefaultWorkspaceManager } from './workspace/workspace-manager.js';\nimport { DefaultLexer } from './parser/lexer.js';\nimport { JSDocDocumentationProvider } from './documentation/documentation-provider.js';\nimport { DefaultCommentProvider } from './documentation/comment-provider.js';\nimport { LangiumParserErrorMessageProvider } from './parser/langium-parser.js';\nimport { DefaultAsyncParser } from './parser/async-parser.js';\nimport { DefaultWorkspaceLock } from './workspace/workspace-lock.js';\nimport { DefaultHydrator } from './serializer/hydrator.js';\n\n/**\n * Context required for creating the default language-specific dependency injection module.\n */\nexport interface DefaultCoreModuleContext {\n shared: LangiumSharedCoreServices;\n}\n\n/**\n * Creates a dependency injection module configuring the default core services.\n * This is a set of services that are dedicated to a specific language.\n */\nexport function createDefaultCoreModule(context: DefaultCoreModuleContext): Module {\n return {\n documentation: {\n CommentProvider: (services) => new DefaultCommentProvider(services),\n DocumentationProvider: (services) => new JSDocDocumentationProvider(services)\n },\n parser: {\n AsyncParser: (services) => new DefaultAsyncParser(services),\n GrammarConfig: (services) => createGrammarConfig(services),\n LangiumParser: (services) => createLangiumParser(services),\n CompletionParser: (services) => createCompletionParser(services),\n ValueConverter: () => new DefaultValueConverter(),\n TokenBuilder: () => new DefaultTokenBuilder(),\n Lexer: (services) => new DefaultLexer(services),\n ParserErrorMessageProvider: () => new LangiumParserErrorMessageProvider()\n },\n workspace: {\n AstNodeLocator: () => new DefaultAstNodeLocator(),\n AstNodeDescriptionProvider: (services) => new DefaultAstNodeDescriptionProvider(services),\n ReferenceDescriptionProvider: (services) => new DefaultReferenceDescriptionProvider(services)\n },\n references: {\n Linker: (services) => new DefaultLinker(services),\n NameProvider: () => new DefaultNameProvider(),\n ScopeProvider: (services) => new DefaultScopeProvider(services),\n ScopeComputation: (services) => new DefaultScopeComputation(services),\n References: (services) => new DefaultReferences(services)\n },\n serializer: {\n Hydrator: (services) => new DefaultHydrator(services),\n JsonSerializer: (services) => new DefaultJsonSerializer(services)\n },\n validation: {\n DocumentValidator: (services) => new DefaultDocumentValidator(services),\n ValidationRegistry: (services) => new ValidationRegistry(services)\n },\n shared: () => context.shared\n };\n}\n\n/**\n * Context required for creating the default shared dependency injection module.\n */\nexport interface DefaultSharedCoreModuleContext {\n /**\n * Factory function to create a {@link FileSystemProvider}.\n *\n * Langium exposes an `EmptyFileSystem` and `NodeFileSystem`, exported through `langium/node`.\n * When running Langium as part of a vscode language server or a Node.js app, using the `NodeFileSystem` is recommended,\n * the `EmptyFileSystem` in every other use case.\n */\n fileSystemProvider: (services: LangiumSharedCoreServices) => FileSystemProvider;\n}\n\n/**\n * Creates a dependency injection module configuring the default shared core services.\n * This is the set of services that are shared between multiple languages.\n */\nexport function createDefaultSharedCoreModule(context: DefaultSharedCoreModuleContext): Module {\n return {\n ServiceRegistry: () => new DefaultServiceRegistry(),\n workspace: {\n LangiumDocuments: (services) => new DefaultLangiumDocuments(services),\n LangiumDocumentFactory: (services) => new DefaultLangiumDocumentFactory(services),\n DocumentBuilder: (services) => new DefaultDocumentBuilder(services),\n IndexManager: (services) => new DefaultIndexManager(services),\n WorkspaceManager: (services) => new DefaultWorkspaceManager(services),\n FileSystemProvider: (services) => context.fileSystemProvider(services),\n WorkspaceLock: () => new DefaultWorkspaceLock(),\n ConfigurationProvider: (services) => new DefaultConfigurationProvider(services)\n }\n };\n}\n", "/******************************************************************************\n * Copyright 2021 TypeFox GmbH\n * This program and the accompanying materials are made available under the\n * terms of the MIT License, which is available in the project root.\n ******************************************************************************/\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\n/**\n * A `Module` is a description of possibly grouped service factories.\n *\n * Given a type I = { group: { service: A } },\n * Module := { group: { service: (injector: I) => A } }\n *\n * Making `I` available during the creation of `I` allows us to create cyclic\n * dependencies.\n */\nexport type Module = {\n [K in keyof T]: Module | ((injector: I) => T[K])\n}\n\nexport namespace Module {\n export const merge = (m1: Module, m2: Module) => (_merge(_merge({}, m1), m2) as Module);\n}\n\n/**\n * Given a set of modules, the inject function returns a lazily evaluated injector\n * that injects dependencies into the requested service when it is requested the\n * first time. Subsequent requests will return the same service.\n *\n * In the case of cyclic dependencies, an Error will be thrown. This can be fixed\n * by injecting a provider `() => T` instead of a `T`.\n *\n * Please note that the arguments may be objects or arrays. However, the result will\n * be an object. Using it with for..of will have no effect.\n *\n * @param module1 first Module\n * @param module2 (optional) second Module\n * @param module3 (optional) third Module\n * @param module4 (optional) fourth Module\n * @param module5 (optional) fifth Module\n * @param module6 (optional) sixth Module\n * @param module7 (optional) seventh Module\n * @param module8 (optional) eighth Module\n * @param module9 (optional) ninth Module\n * @returns a new object of type I\n */\nexport function inject(\n module1: Module, module2?: Module, module3?: Module, module4?: Module, module5?: Module, module6?: Module, module7?: Module, module8?: Module, module9?: Module\n): I {\n const module = [module1, module2, module3, module4, module5, module6, module7, module8, module9].reduce(_merge, {}) as Module;\n return _inject(module);\n}\n\nconst isProxy = Symbol('isProxy');\n\n/**\n * Eagerly load all services in the given dependency injection container. This is sometimes\n * necessary because services can register event listeners in their constructors.\n */\nexport function eagerLoad(item: T): T {\n if (item && (item as any)[isProxy]) {\n for (const value of Object.values(item)) {\n eagerLoad(value);\n }\n }\n return item;\n}\n\n/**\n * Helper function that returns an injector by creating a proxy.\n * Invariant: injector is of type I. If injector is undefined, then T = I.\n */\nfunction _inject(module: Module, injector?: any): T {\n const proxy: any = new Proxy({} as any, {\n deleteProperty: () => false,\n get: (obj, prop) => _resolve(obj, prop, module, injector || proxy),\n getOwnPropertyDescriptor: (obj, prop) => (_resolve(obj, prop, module, injector || proxy), Object.getOwnPropertyDescriptor(obj, prop)), // used by for..in\n has: (_, prop) => prop in module, // used by ..in..\n ownKeys: () => [...Reflect.ownKeys(module), isProxy] // used by for..in\n });\n proxy[isProxy] = true;\n return proxy;\n}\n\n/**\n * Internally used to tag a requested dependency, directly before calling the factory.\n * This allows us to find cycles during instance creation.\n */\nconst __requested__ = Symbol();\n\n/**\n * Returns the value `obj[prop]`. If the value does not exist, yet, it is resolved from\n * the module description. The result of service factories is cached. Groups are\n * recursively proxied.\n *\n * @param obj an object holding all group proxies and services\n * @param prop the key of a value within obj\n * @param module an object containing groups and service factories\n * @param injector the first level proxy that provides access to all values\n * @returns the requested value `obj[prop]`\n * @throws Error if a dependency cycle is detected\n */\nfunction _resolve(obj: any, prop: string | symbol | number, module: Module, injector: I): T[keyof T] | undefined {\n if (prop in obj) {\n if (obj[prop] instanceof Error) {\n throw new Error('Construction failure. Please make sure that your dependencies are constructable.', {cause: obj[prop]});\n }\n if (obj[prop] === __requested__) {\n throw new Error('Cycle detected. Please make \"' + String(prop) + '\" lazy. See https://langium.org/docs/configuration-services/#resolving-cyclic-dependencies');\n }\n return obj[prop];\n } else if (prop in module) {\n const value: Module | ((injector: I) => T[keyof T]) = module[prop as keyof T];\n obj[prop] = __requested__;\n try {\n obj[prop] = (typeof value === 'function') ? value(injector) : _inject(value, injector);\n } catch (error) {\n obj[prop] = error instanceof Error ? error : undefined;\n throw error;\n }\n return obj[prop];\n } else {\n return undefined;\n }\n}\n\n/**\n * Performs a deep-merge of two modules by writing source entries into the target module.\n *\n * @param target the module which is written\n * @param source the module which is read\n * @returns the target module\n */\nfunction _merge(target: Module, source?: Module): Module {\n if (source) {\n for (const [key, value2] of Object.entries(source)) {\n if (value2 !== undefined) {\n const value1 = target[key];\n if (value1 !== null && value2 !== null && typeof value1 === 'object' && typeof value2 === 'object') {\n target[key] = _merge(value1, value2);\n } else {\n target[key] = value2;\n }\n }\n }\n }\n return target;\n}\n", "/******************************************************************************\n * Copyright 2023 TypeFox GmbH\n * This program and the accompanying materials are made available under the\n * terms of the MIT License, which is available in the project root.\n ******************************************************************************/\n\nexport * from './caching.js';\nexport * from './event.js';\nexport * from './collections.js';\nexport * from './disposable.js';\nexport * from './errors.js';\nexport * from './grammar-loader.js';\nexport * from './promise-utils.js';\nexport * from './stream.js';\nexport * from './uri-utils.js';\n\nimport * as AstUtils from './ast-utils.js';\nimport * as Cancellation from './cancellation.js';\nimport * as CstUtils from './cst-utils.js';\nimport * as GrammarUtils from './grammar-utils.js';\nimport * as RegExpUtils from './regexp-utils.js';\nexport { AstUtils, Cancellation, CstUtils, GrammarUtils, RegExpUtils };\n", "/******************************************************************************\n * Copyright 2022 TypeFox GmbH\n * This program and the accompanying materials are made available under the\n * terms of the MIT License, which is available in the project root.\n ******************************************************************************/\n\nimport type { URI } from '../utils/uri-utils.js';\n\nexport interface FileSystemNode {\n readonly isFile: boolean;\n readonly isDirectory: boolean;\n readonly uri: URI;\n}\n\nexport type FileSystemFilter = (node: FileSystemNode) => boolean;\n\n/**\n * Provides methods to interact with an abstract file system. The default implementation is based on the node.js `fs` API.\n */\nexport interface FileSystemProvider {\n /**\n * Reads a document asynchronously from a given URI.\n * @returns The string content of the file with the specified URI.\n */\n readFile(uri: URI): Promise;\n /**\n * Reads the directory information for the given URI.\n * @returns The list of file system entries that are contained within the specified directory.\n */\n readDirectory(uri: URI): Promise;\n}\n\nexport class EmptyFileSystemProvider implements FileSystemProvider {\n\n readFile(): Promise {\n throw new Error('No file system is available.');\n }\n\n async readDirectory(): Promise {\n return [];\n }\n\n}\n\nexport const EmptyFileSystem = {\n fileSystemProvider: () => new EmptyFileSystemProvider()\n};\n", "/******************************************************************************\n * Copyright 2023 TypeFox GmbH\n * This program and the accompanying materials are made available under the\n * terms of the MIT License, which is available in the project root.\n ******************************************************************************/\n\nimport { createDefaultCoreModule, createDefaultSharedCoreModule } from '../default-module.js';\nimport type { Module } from '../dependency-injection.js';\nimport { inject } from '../dependency-injection.js';\nimport * as ast from '../languages/generated/ast.js';\nimport type { LangiumCoreServices, LangiumSharedCoreServices, PartialLangiumCoreServices, PartialLangiumSharedCoreServices } from '../services.js';\nimport type { Mutable } from '../syntax-tree.js';\nimport { EmptyFileSystem } from '../workspace/file-system-provider.js';\nimport { URI } from './uri-utils.js';\n\nconst minimalGrammarModule: Module = {\n Grammar: () => undefined as unknown as ast.Grammar,\n LanguageMetaData: () => ({\n caseInsensitive: false,\n fileExtensions: ['.langium'],\n languageId: 'langium'\n })\n};\n\nconst minimalSharedGrammarModule: Module = {\n AstReflection: () => new ast.LangiumGrammarAstReflection()\n};\n\nfunction createMinimalGrammarServices(): LangiumCoreServices {\n const shared = inject(\n createDefaultSharedCoreModule(EmptyFileSystem),\n minimalSharedGrammarModule\n );\n const grammar = inject(\n createDefaultCoreModule({ shared }),\n minimalGrammarModule\n );\n shared.ServiceRegistry.register(grammar);\n return grammar;\n}\n\n/**\n * Load a Langium grammar for your language from a JSON string. This is used by several services,\n * most notably the parser builder which interprets the grammar to create a parser.\n */\nexport function loadGrammarFromJson(json: string): ast.Grammar {\n const services = createMinimalGrammarServices();\n const astNode = services.serializer.JsonSerializer.deserialize(json) as Mutable;\n services.shared.workspace.LangiumDocumentFactory.fromModel(astNode, URI.parse(`memory://${astNode.name ?? 'grammar'}.langium`));\n return astNode;\n}\n", "var __defProp = Object.defineProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\n\n// src/language/generated/ast.ts\nimport { AbstractAstReflection } from \"langium\";\nvar Statement = \"Statement\";\nvar Architecture = \"Architecture\";\nfunction isArchitecture(item) {\n return reflection.isInstance(item, Architecture);\n}\n__name(isArchitecture, \"isArchitecture\");\nvar Branch = \"Branch\";\nfunction isBranch(item) {\n return reflection.isInstance(item, Branch);\n}\n__name(isBranch, \"isBranch\");\nvar Checkout = \"Checkout\";\nvar CherryPicking = \"CherryPicking\";\nvar Commit = \"Commit\";\nfunction isCommit(item) {\n return reflection.isInstance(item, Commit);\n}\n__name(isCommit, \"isCommit\");\nvar Common = \"Common\";\nfunction isCommon(item) {\n return reflection.isInstance(item, Common);\n}\n__name(isCommon, \"isCommon\");\nvar GitGraph = \"GitGraph\";\nfunction isGitGraph(item) {\n return reflection.isInstance(item, GitGraph);\n}\n__name(isGitGraph, \"isGitGraph\");\nvar Info = \"Info\";\nfunction isInfo(item) {\n return reflection.isInstance(item, Info);\n}\n__name(isInfo, \"isInfo\");\nvar Merge = \"Merge\";\nfunction isMerge(item) {\n return reflection.isInstance(item, Merge);\n}\n__name(isMerge, \"isMerge\");\nvar Packet = \"Packet\";\nfunction isPacket(item) {\n return reflection.isInstance(item, Packet);\n}\n__name(isPacket, \"isPacket\");\nvar PacketBlock = \"PacketBlock\";\nfunction isPacketBlock(item) {\n return reflection.isInstance(item, PacketBlock);\n}\n__name(isPacketBlock, \"isPacketBlock\");\nvar Pie = \"Pie\";\nfunction isPie(item) {\n return reflection.isInstance(item, Pie);\n}\n__name(isPie, \"isPie\");\nvar PieSection = \"PieSection\";\nfunction isPieSection(item) {\n return reflection.isInstance(item, PieSection);\n}\n__name(isPieSection, \"isPieSection\");\nvar Direction = \"Direction\";\nvar MermaidAstReflection = class extends AbstractAstReflection {\n static {\n __name(this, \"MermaidAstReflection\");\n }\n getAllTypes() {\n return [\"Architecture\", \"Branch\", \"Checkout\", \"CherryPicking\", \"Commit\", \"Common\", \"Direction\", \"Edge\", \"GitGraph\", \"Group\", \"Info\", \"Junction\", \"Merge\", \"Packet\", \"PacketBlock\", \"Pie\", \"PieSection\", \"Service\", \"Statement\"];\n }\n computeIsSubtype(subtype, supertype) {\n switch (subtype) {\n case Branch:\n case Checkout:\n case CherryPicking:\n case Commit:\n case Merge: {\n return this.isSubtype(Statement, supertype);\n }\n case Direction: {\n return this.isSubtype(GitGraph, supertype);\n }\n default: {\n return false;\n }\n }\n }\n getReferenceType(refInfo) {\n const referenceId = `${refInfo.container.$type}:${refInfo.property}`;\n switch (referenceId) {\n default: {\n throw new Error(`${referenceId} is not a valid reference id.`);\n }\n }\n }\n getTypeMetaData(type) {\n switch (type) {\n case \"Architecture\": {\n return {\n name: \"Architecture\",\n properties: [\n { name: \"accDescr\" },\n { name: \"accTitle\" },\n { name: \"edges\", defaultValue: [] },\n { name: \"groups\", defaultValue: [] },\n { name: \"junctions\", defaultValue: [] },\n { name: \"services\", defaultValue: [] },\n { name: \"title\" }\n ]\n };\n }\n case \"Branch\": {\n return {\n name: \"Branch\",\n properties: [\n { name: \"name\" },\n { name: \"order\" }\n ]\n };\n }\n case \"Checkout\": {\n return {\n name: \"Checkout\",\n properties: [\n { name: \"branch\" }\n ]\n };\n }\n case \"CherryPicking\": {\n return {\n name: \"CherryPicking\",\n properties: [\n { name: \"id\" },\n { name: \"parent\" },\n { name: \"tags\", defaultValue: [] }\n ]\n };\n }\n case \"Commit\": {\n return {\n name: \"Commit\",\n properties: [\n { name: \"id\" },\n { name: \"message\" },\n { name: \"tags\", defaultValue: [] },\n { name: \"type\" }\n ]\n };\n }\n case \"Common\": {\n return {\n name: \"Common\",\n properties: [\n { name: \"accDescr\" },\n { name: \"accTitle\" },\n { name: \"title\" }\n ]\n };\n }\n case \"Edge\": {\n return {\n name: \"Edge\",\n properties: [\n { name: \"lhsDir\" },\n { name: \"lhsGroup\", defaultValue: false },\n { name: \"lhsId\" },\n { name: \"lhsInto\", defaultValue: false },\n { name: \"rhsDir\" },\n { name: \"rhsGroup\", defaultValue: false },\n { name: \"rhsId\" },\n { name: \"rhsInto\", defaultValue: false },\n { name: \"title\" }\n ]\n };\n }\n case \"GitGraph\": {\n return {\n name: \"GitGraph\",\n properties: [\n { name: \"accDescr\" },\n { name: \"accTitle\" },\n { name: \"statements\", defaultValue: [] },\n { name: \"title\" }\n ]\n };\n }\n case \"Group\": {\n return {\n name: \"Group\",\n properties: [\n { name: \"icon\" },\n { name: \"id\" },\n { name: \"in\" },\n { name: \"title\" }\n ]\n };\n }\n case \"Info\": {\n return {\n name: \"Info\",\n properties: [\n { name: \"accDescr\" },\n { name: \"accTitle\" },\n { name: \"title\" }\n ]\n };\n }\n case \"Junction\": {\n return {\n name: \"Junction\",\n properties: [\n { name: \"id\" },\n { name: \"in\" }\n ]\n };\n }\n case \"Merge\": {\n return {\n name: \"Merge\",\n properties: [\n { name: \"branch\" },\n { name: \"id\" },\n { name: \"tags\", defaultValue: [] },\n { name: \"type\" }\n ]\n };\n }\n case \"Packet\": {\n return {\n name: \"Packet\",\n properties: [\n { name: \"accDescr\" },\n { name: \"accTitle\" },\n { name: \"blocks\", defaultValue: [] },\n { name: \"title\" }\n ]\n };\n }\n case \"PacketBlock\": {\n return {\n name: \"PacketBlock\",\n properties: [\n { name: \"end\" },\n { name: \"label\" },\n { name: \"start\" }\n ]\n };\n }\n case \"Pie\": {\n return {\n name: \"Pie\",\n properties: [\n { name: \"accDescr\" },\n { name: \"accTitle\" },\n { name: \"sections\", defaultValue: [] },\n { name: \"showData\", defaultValue: false },\n { name: \"title\" }\n ]\n };\n }\n case \"PieSection\": {\n return {\n name: \"PieSection\",\n properties: [\n { name: \"label\" },\n { name: \"value\" }\n ]\n };\n }\n case \"Service\": {\n return {\n name: \"Service\",\n properties: [\n { name: \"icon\" },\n { name: \"iconText\" },\n { name: \"id\" },\n { name: \"in\" },\n { name: \"title\" }\n ]\n };\n }\n case \"Direction\": {\n return {\n name: \"Direction\",\n properties: [\n { name: \"accDescr\" },\n { name: \"accTitle\" },\n { name: \"dir\" },\n { name: \"statements\", defaultValue: [] },\n { name: \"title\" }\n ]\n };\n }\n default: {\n return {\n name: type,\n properties: []\n };\n }\n }\n }\n};\nvar reflection = new MermaidAstReflection();\n\n// src/language/generated/grammar.ts\nimport { loadGrammarFromJson } from \"langium\";\nvar loadedInfoGrammar;\nvar InfoGrammar = /* @__PURE__ */ __name(() => loadedInfoGrammar ?? (loadedInfoGrammar = loadGrammarFromJson('{\"$type\":\"Grammar\",\"isDeclared\":true,\"name\":\"Info\",\"imports\":[],\"rules\":[{\"$type\":\"ParserRule\",\"name\":\"Info\",\"entry\":true,\"definition\":{\"$type\":\"Group\",\"elements\":[{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@3\"},\"arguments\":[],\"cardinality\":\"*\"},{\"$type\":\"Keyword\",\"value\":\"info\"},{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@3\"},\"arguments\":[],\"cardinality\":\"*\"},{\"$type\":\"Group\",\"elements\":[{\"$type\":\"Keyword\",\"value\":\"showInfo\"},{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@3\"},\"arguments\":[],\"cardinality\":\"*\"}],\"cardinality\":\"?\"},{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@1\"},\"arguments\":[],\"cardinality\":\"?\"}]},\"definesHiddenTokens\":false,\"fragment\":false,\"hiddenTokens\":[],\"parameters\":[],\"wildcard\":false},{\"$type\":\"ParserRule\",\"name\":\"TitleAndAccessibilities\",\"fragment\":true,\"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@2\"},\"arguments\":[]}],\"cardinality\":\"+\"},\"definesHiddenTokens\":false,\"entry\":false,\"hiddenTokens\":[],\"parameters\":[],\"wildcard\":false},{\"$type\":\"ParserRule\",\"name\":\"EOL\",\"fragment\":true,\"dataType\":\"string\",\"definition\":{\"$type\":\"Alternatives\",\"elements\":[{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@3\"},\"arguments\":[],\"cardinality\":\"+\"},{\"$type\":\"EndOfFile\"}]},\"definesHiddenTokens\":false,\"entry\":false,\"hiddenTokens\":[],\"parameters\":[],\"wildcard\":false},{\"$type\":\"TerminalRule\",\"name\":\"NEWLINE\",\"definition\":{\"$type\":\"RegexToken\",\"regex\":\"/\\\\\\\\r?\\\\\\\\n/\"},\"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\",\"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\":[{\"$type\":\"Interface\",\"name\":\"Common\",\"attributes\":[{\"$type\":\"TypeAttribute\",\"name\":\"accDescr\",\"isOptional\":true,\"type\":{\"$type\":\"SimpleType\",\"primitiveType\":\"string\"}},{\"$type\":\"TypeAttribute\",\"name\":\"accTitle\",\"isOptional\":true,\"type\":{\"$type\":\"SimpleType\",\"primitiveType\":\"string\"}},{\"$type\":\"TypeAttribute\",\"name\":\"title\",\"isOptional\":true,\"type\":{\"$type\":\"SimpleType\",\"primitiveType\":\"string\"}}],\"superTypes\":[]}],\"types\":[],\"usedGrammars\":[]}')), \"InfoGrammar\");\nvar loadedPacketGrammar;\nvar PacketGrammar = /* @__PURE__ */ __name(() => loadedPacketGrammar ?? (loadedPacketGrammar = loadGrammarFromJson(`{\"$type\":\"Grammar\",\"isDeclared\":true,\"name\":\"Packet\",\"imports\":[],\"rules\":[{\"$type\":\"ParserRule\",\"name\":\"Packet\",\"entry\":true,\"definition\":{\"$type\":\"Group\",\"elements\":[{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@6\"},\"arguments\":[],\"cardinality\":\"*\"},{\"$type\":\"Keyword\",\"value\":\"packet-beta\"},{\"$type\":\"Alternatives\",\"elements\":[{\"$type\":\"Group\",\"elements\":[{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@6\"},\"arguments\":[],\"cardinality\":\"*\"},{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@4\"},\"arguments\":[]},{\"$type\":\"Assignment\",\"feature\":\"blocks\",\"operator\":\"+=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@1\"},\"arguments\":[]},\"cardinality\":\"*\"}]},{\"$type\":\"Group\",\"elements\":[{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@6\"},\"arguments\":[],\"cardinality\":\"+\"},{\"$type\":\"Assignment\",\"feature\":\"blocks\",\"operator\":\"+=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@1\"},\"arguments\":[]},\"cardinality\":\"+\"}]},{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@6\"},\"arguments\":[],\"cardinality\":\"*\"}]}]},\"definesHiddenTokens\":false,\"fragment\":false,\"hiddenTokens\":[],\"parameters\":[],\"wildcard\":false},{\"$type\":\"ParserRule\",\"name\":\"PacketBlock\",\"definition\":{\"$type\":\"Group\",\"elements\":[{\"$type\":\"Assignment\",\"feature\":\"start\",\"operator\":\"=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@2\"},\"arguments\":[]}},{\"$type\":\"Group\",\"elements\":[{\"$type\":\"Keyword\",\"value\":\"-\"},{\"$type\":\"Assignment\",\"feature\":\"end\",\"operator\":\"=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@2\"},\"arguments\":[]}}],\"cardinality\":\"?\"},{\"$type\":\"Keyword\",\"value\":\":\"},{\"$type\":\"Assignment\",\"feature\":\"label\",\"operator\":\"=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@3\"},\"arguments\":[]}},{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@5\"},\"arguments\":[]}]},\"definesHiddenTokens\":false,\"entry\":false,\"fragment\":false,\"hiddenTokens\":[],\"parameters\":[],\"wildcard\":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\":\"STRING\",\"definition\":{\"$type\":\"RegexToken\",\"regex\":\"/\\\\\"[^\\\\\"]*\\\\\"|'[^']*'/\"},\"fragment\":false,\"hidden\":false},{\"$type\":\"ParserRule\",\"name\":\"TitleAndAccessibilities\",\"fragment\":true,\"definition\":{\"$type\":\"Group\",\"elements\":[{\"$type\":\"Alternatives\",\"elements\":[{\"$type\":\"Assignment\",\"feature\":\"accDescr\",\"operator\":\"=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@7\"},\"arguments\":[]}},{\"$type\":\"Assignment\",\"feature\":\"accTitle\",\"operator\":\"=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@8\"},\"arguments\":[]}},{\"$type\":\"Assignment\",\"feature\":\"title\",\"operator\":\"=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@9\"},\"arguments\":[]}}]},{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@5\"},\"arguments\":[]}],\"cardinality\":\"+\"},\"definesHiddenTokens\":false,\"entry\":false,\"hiddenTokens\":[],\"parameters\":[],\"wildcard\":false},{\"$type\":\"ParserRule\",\"name\":\"EOL\",\"fragment\":true,\"dataType\":\"string\",\"definition\":{\"$type\":\"Alternatives\",\"elements\":[{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@6\"},\"arguments\":[],\"cardinality\":\"+\"},{\"$type\":\"EndOfFile\"}]},\"definesHiddenTokens\":false,\"entry\":false,\"hiddenTokens\":[],\"parameters\":[],\"wildcard\":false},{\"$type\":\"TerminalRule\",\"name\":\"NEWLINE\",\"definition\":{\"$type\":\"RegexToken\",\"regex\":\"/\\\\\\\\r?\\\\\\\\n/\"},\"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\",\"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\":[{\"$type\":\"Interface\",\"name\":\"Common\",\"attributes\":[{\"$type\":\"TypeAttribute\",\"name\":\"accDescr\",\"isOptional\":true,\"type\":{\"$type\":\"SimpleType\",\"primitiveType\":\"string\"}},{\"$type\":\"TypeAttribute\",\"name\":\"accTitle\",\"isOptional\":true,\"type\":{\"$type\":\"SimpleType\",\"primitiveType\":\"string\"}},{\"$type\":\"TypeAttribute\",\"name\":\"title\",\"isOptional\":true,\"type\":{\"$type\":\"SimpleType\",\"primitiveType\":\"string\"}}],\"superTypes\":[]}],\"types\":[],\"usedGrammars\":[]}`)), \"PacketGrammar\");\nvar loadedPieGrammar;\nvar PieGrammar = /* @__PURE__ */ __name(() => loadedPieGrammar ?? (loadedPieGrammar = loadGrammarFromJson('{\"$type\":\"Grammar\",\"isDeclared\":true,\"name\":\"Pie\",\"imports\":[],\"rules\":[{\"$type\":\"ParserRule\",\"name\":\"Pie\",\"entry\":true,\"definition\":{\"$type\":\"Group\",\"elements\":[{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@6\"},\"arguments\":[],\"cardinality\":\"*\"},{\"$type\":\"Keyword\",\"value\":\"pie\"},{\"$type\":\"Assignment\",\"feature\":\"showData\",\"operator\":\"?=\",\"terminal\":{\"$type\":\"Keyword\",\"value\":\"showData\"},\"cardinality\":\"?\"},{\"$type\":\"Alternatives\",\"elements\":[{\"$type\":\"Group\",\"elements\":[{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@6\"},\"arguments\":[],\"cardinality\":\"*\"},{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@4\"},\"arguments\":[]},{\"$type\":\"Assignment\",\"feature\":\"sections\",\"operator\":\"+=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@1\"},\"arguments\":[]},\"cardinality\":\"*\"}]},{\"$type\":\"Group\",\"elements\":[{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@6\"},\"arguments\":[],\"cardinality\":\"+\"},{\"$type\":\"Assignment\",\"feature\":\"sections\",\"operator\":\"+=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@1\"},\"arguments\":[]},\"cardinality\":\"+\"}]},{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@6\"},\"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@2\"},\"arguments\":[]}},{\"$type\":\"Keyword\",\"value\":\":\"},{\"$type\":\"Assignment\",\"feature\":\"value\",\"operator\":\"=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@3\"},\"arguments\":[]}},{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@5\"},\"arguments\":[]}]},\"definesHiddenTokens\":false,\"entry\":false,\"fragment\":false,\"hiddenTokens\":[],\"parameters\":[],\"wildcard\":false},{\"$type\":\"TerminalRule\",\"name\":\"PIE_SECTION_LABEL\",\"definition\":{\"$type\":\"RegexToken\",\"regex\":\"/\\\\\"[^\\\\\"]+\\\\\"/\"},\"fragment\":false,\"hidden\":false},{\"$type\":\"TerminalRule\",\"name\":\"PIE_SECTION_VALUE\",\"type\":{\"$type\":\"ReturnType\",\"name\":\"number\"},\"definition\":{\"$type\":\"RegexToken\",\"regex\":\"/(0|[1-9][0-9]*)(\\\\\\\\.[0-9]+)?/\"},\"fragment\":false,\"hidden\":false},{\"$type\":\"ParserRule\",\"name\":\"TitleAndAccessibilities\",\"fragment\":true,\"definition\":{\"$type\":\"Group\",\"elements\":[{\"$type\":\"Alternatives\",\"elements\":[{\"$type\":\"Assignment\",\"feature\":\"accDescr\",\"operator\":\"=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@7\"},\"arguments\":[]}},{\"$type\":\"Assignment\",\"feature\":\"accTitle\",\"operator\":\"=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@8\"},\"arguments\":[]}},{\"$type\":\"Assignment\",\"feature\":\"title\",\"operator\":\"=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@9\"},\"arguments\":[]}}]},{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@5\"},\"arguments\":[]}],\"cardinality\":\"+\"},\"definesHiddenTokens\":false,\"entry\":false,\"hiddenTokens\":[],\"parameters\":[],\"wildcard\":false},{\"$type\":\"ParserRule\",\"name\":\"EOL\",\"fragment\":true,\"dataType\":\"string\",\"definition\":{\"$type\":\"Alternatives\",\"elements\":[{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@6\"},\"arguments\":[],\"cardinality\":\"+\"},{\"$type\":\"EndOfFile\"}]},\"definesHiddenTokens\":false,\"entry\":false,\"hiddenTokens\":[],\"parameters\":[],\"wildcard\":false},{\"$type\":\"TerminalRule\",\"name\":\"NEWLINE\",\"definition\":{\"$type\":\"RegexToken\",\"regex\":\"/\\\\\\\\r?\\\\\\\\n/\"},\"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\",\"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\":[{\"$type\":\"Interface\",\"name\":\"Common\",\"attributes\":[{\"$type\":\"TypeAttribute\",\"name\":\"accDescr\",\"isOptional\":true,\"type\":{\"$type\":\"SimpleType\",\"primitiveType\":\"string\"}},{\"$type\":\"TypeAttribute\",\"name\":\"accTitle\",\"isOptional\":true,\"type\":{\"$type\":\"SimpleType\",\"primitiveType\":\"string\"}},{\"$type\":\"TypeAttribute\",\"name\":\"title\",\"isOptional\":true,\"type\":{\"$type\":\"SimpleType\",\"primitiveType\":\"string\"}}],\"superTypes\":[]}],\"types\":[],\"usedGrammars\":[]}')), \"PieGrammar\");\nvar loadedArchitectureGrammar;\nvar ArchitectureGrammar = /* @__PURE__ */ __name(() => loadedArchitectureGrammar ?? (loadedArchitectureGrammar = loadGrammarFromJson('{\"$type\":\"Grammar\",\"isDeclared\":true,\"name\":\"Architecture\",\"imports\":[],\"rules\":[{\"$type\":\"ParserRule\",\"name\":\"Architecture\",\"entry\":true,\"definition\":{\"$type\":\"Group\",\"elements\":[{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@18\"},\"arguments\":[],\"cardinality\":\"*\"},{\"$type\":\"Keyword\",\"value\":\"architecture-beta\"},{\"$type\":\"Alternatives\",\"elements\":[{\"$type\":\"Group\",\"elements\":[{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@18\"},\"arguments\":[],\"cardinality\":\"*\"},{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@16\"},\"arguments\":[]}]},{\"$type\":\"Group\",\"elements\":[{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@18\"},\"arguments\":[],\"cardinality\":\"*\"},{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@1\"},\"arguments\":[],\"cardinality\":\"*\"}]},{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@18\"},\"arguments\":[],\"cardinality\":\"*\"}]}]},\"definesHiddenTokens\":false,\"fragment\":false,\"hiddenTokens\":[],\"parameters\":[],\"wildcard\":false},{\"$type\":\"ParserRule\",\"name\":\"Statement\",\"fragment\":true,\"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\",\"name\":\"LeftPort\",\"fragment\":true,\"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\",\"name\":\"RightPort\",\"fragment\":true,\"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\",\"name\":\"Arrow\",\"fragment\":true,\"definition\":{\"$type\":\"Group\",\"elements\":[{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@2\"},\"arguments\":[]},{\"$type\":\"Assignment\",\"feature\":\"lhsInto\",\"operator\":\"?=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@15\"},\"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@13\"},\"arguments\":[]}},{\"$type\":\"Keyword\",\"value\":\"-\"}]}]},{\"$type\":\"Assignment\",\"feature\":\"rhsInto\",\"operator\":\"?=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@15\"},\"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@10\"},\"arguments\":[]}},{\"$type\":\"Assignment\",\"feature\":\"icon\",\"operator\":\"=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@12\"},\"arguments\":[]},\"cardinality\":\"?\"},{\"$type\":\"Assignment\",\"feature\":\"title\",\"operator\":\"=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@13\"},\"arguments\":[]},\"cardinality\":\"?\"},{\"$type\":\"Group\",\"elements\":[{\"$type\":\"Keyword\",\"value\":\"in\"},{\"$type\":\"Assignment\",\"feature\":\"in\",\"operator\":\"=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@10\"},\"arguments\":[]}}],\"cardinality\":\"?\"},{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@17\"},\"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@10\"},\"arguments\":[]}},{\"$type\":\"Alternatives\",\"elements\":[{\"$type\":\"Assignment\",\"feature\":\"iconText\",\"operator\":\"=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@11\"},\"arguments\":[]}},{\"$type\":\"Assignment\",\"feature\":\"icon\",\"operator\":\"=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@12\"},\"arguments\":[]}}],\"cardinality\":\"?\"},{\"$type\":\"Assignment\",\"feature\":\"title\",\"operator\":\"=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@13\"},\"arguments\":[]},\"cardinality\":\"?\"},{\"$type\":\"Group\",\"elements\":[{\"$type\":\"Keyword\",\"value\":\"in\"},{\"$type\":\"Assignment\",\"feature\":\"in\",\"operator\":\"=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@10\"},\"arguments\":[]}}],\"cardinality\":\"?\"},{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@17\"},\"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@10\"},\"arguments\":[]}},{\"$type\":\"Group\",\"elements\":[{\"$type\":\"Keyword\",\"value\":\"in\"},{\"$type\":\"Assignment\",\"feature\":\"in\",\"operator\":\"=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@10\"},\"arguments\":[]}}],\"cardinality\":\"?\"},{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@17\"},\"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@10\"},\"arguments\":[]}},{\"$type\":\"Assignment\",\"feature\":\"lhsGroup\",\"operator\":\"?=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@14\"},\"arguments\":[]},\"cardinality\":\"?\"},{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@4\"},\"arguments\":[]},{\"$type\":\"Assignment\",\"feature\":\"rhsId\",\"operator\":\"=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@10\"},\"arguments\":[]}},{\"$type\":\"Assignment\",\"feature\":\"rhsGroup\",\"operator\":\"?=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@14\"},\"arguments\":[]},\"cardinality\":\"?\"},{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@17\"},\"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\":\"ARCH_ID\",\"definition\":{\"$type\":\"RegexToken\",\"regex\":\"/[\\\\\\\\w]+/\"},\"fragment\":false,\"hidden\":false},{\"$type\":\"TerminalRule\",\"name\":\"ARCH_TEXT_ICON\",\"definition\":{\"$type\":\"RegexToken\",\"regex\":\"/\\\\\\\\(\\\\\"[^\\\\\"]+\\\\\"\\\\\\\\)/\"},\"fragment\":false,\"hidden\":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},{\"$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\",\"name\":\"TitleAndAccessibilities\",\"fragment\":true,\"definition\":{\"$type\":\"Group\",\"elements\":[{\"$type\":\"Alternatives\",\"elements\":[{\"$type\":\"Assignment\",\"feature\":\"accDescr\",\"operator\":\"=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@19\"},\"arguments\":[]}},{\"$type\":\"Assignment\",\"feature\":\"accTitle\",\"operator\":\"=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@20\"},\"arguments\":[]}},{\"$type\":\"Assignment\",\"feature\":\"title\",\"operator\":\"=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@21\"},\"arguments\":[]}}]},{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@17\"},\"arguments\":[]}],\"cardinality\":\"+\"},\"definesHiddenTokens\":false,\"entry\":false,\"hiddenTokens\":[],\"parameters\":[],\"wildcard\":false},{\"$type\":\"ParserRule\",\"name\":\"EOL\",\"fragment\":true,\"dataType\":\"string\",\"definition\":{\"$type\":\"Alternatives\",\"elements\":[{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@18\"},\"arguments\":[],\"cardinality\":\"+\"},{\"$type\":\"EndOfFile\"}]},\"definesHiddenTokens\":false,\"entry\":false,\"hiddenTokens\":[],\"parameters\":[],\"wildcard\":false},{\"$type\":\"TerminalRule\",\"name\":\"NEWLINE\",\"definition\":{\"$type\":\"RegexToken\",\"regex\":\"/\\\\\\\\r?\\\\\\\\n/\"},\"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\",\"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\":[{\"$type\":\"Interface\",\"name\":\"Common\",\"attributes\":[{\"$type\":\"TypeAttribute\",\"name\":\"accDescr\",\"isOptional\":true,\"type\":{\"$type\":\"SimpleType\",\"primitiveType\":\"string\"}},{\"$type\":\"TypeAttribute\",\"name\":\"accTitle\",\"isOptional\":true,\"type\":{\"$type\":\"SimpleType\",\"primitiveType\":\"string\"}},{\"$type\":\"TypeAttribute\",\"name\":\"title\",\"isOptional\":true,\"type\":{\"$type\":\"SimpleType\",\"primitiveType\":\"string\"}}],\"superTypes\":[]}],\"types\":[],\"usedGrammars\":[]}')), \"ArchitectureGrammar\");\nvar loadedGitGraphGrammar;\nvar GitGraphGrammar = /* @__PURE__ */ __name(() => loadedGitGraphGrammar ?? (loadedGitGraphGrammar = loadGrammarFromJson(`{\"$type\":\"Grammar\",\"isDeclared\":true,\"name\":\"GitGraph\",\"interfaces\":[{\"$type\":\"Interface\",\"name\":\"Common\",\"attributes\":[{\"$type\":\"TypeAttribute\",\"name\":\"accDescr\",\"isOptional\":true,\"type\":{\"$type\":\"SimpleType\",\"primitiveType\":\"string\"}},{\"$type\":\"TypeAttribute\",\"name\":\"accTitle\",\"isOptional\":true,\"type\":{\"$type\":\"SimpleType\",\"primitiveType\":\"string\"}},{\"$type\":\"TypeAttribute\",\"name\":\"title\",\"isOptional\":true,\"type\":{\"$type\":\"SimpleType\",\"primitiveType\":\"string\"}}],\"superTypes\":[]}],\"rules\":[{\"$type\":\"ParserRule\",\"name\":\"TitleAndAccessibilities\",\"fragment\":true,\"definition\":{\"$type\":\"Group\",\"elements\":[{\"$type\":\"Alternatives\",\"elements\":[{\"$type\":\"Assignment\",\"feature\":\"accDescr\",\"operator\":\"=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@3\"},\"arguments\":[]}},{\"$type\":\"Assignment\",\"feature\":\"accTitle\",\"operator\":\"=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@4\"},\"arguments\":[]}},{\"$type\":\"Assignment\",\"feature\":\"title\",\"operator\":\"=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@5\"},\"arguments\":[]}}]},{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@1\"},\"arguments\":[]}],\"cardinality\":\"+\"},\"definesHiddenTokens\":false,\"entry\":false,\"hiddenTokens\":[],\"parameters\":[],\"wildcard\":false},{\"$type\":\"ParserRule\",\"name\":\"EOL\",\"fragment\":true,\"dataType\":\"string\",\"definition\":{\"$type\":\"Alternatives\",\"elements\":[{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@2\"},\"arguments\":[],\"cardinality\":\"+\"},{\"$type\":\"EndOfFile\"}]},\"definesHiddenTokens\":false,\"entry\":false,\"hiddenTokens\":[],\"parameters\":[],\"wildcard\":false},{\"$type\":\"TerminalRule\",\"name\":\"NEWLINE\",\"definition\":{\"$type\":\"RegexToken\",\"regex\":\"/\\\\\\\\r?\\\\\\\\n/\"},\"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\",\"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\":\"ParserRule\",\"name\":\"GitGraph\",\"entry\":true,\"definition\":{\"$type\":\"Group\",\"elements\":[{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@2\"},\"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@12\"},\"arguments\":[]},{\"$type\":\"Keyword\",\"value\":\":\"}]}]},{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@2\"},\"arguments\":[],\"cardinality\":\"*\"},{\"$type\":\"Group\",\"elements\":[{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@2\"},\"arguments\":[],\"cardinality\":\"*\"},{\"$type\":\"Alternatives\",\"elements\":[{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@0\"},\"arguments\":[]},{\"$type\":\"Assignment\",\"feature\":\"statements\",\"operator\":\"+=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@11\"},\"arguments\":[]}},{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@2\"},\"arguments\":[]}],\"cardinality\":\"*\"}]}]},\"definesHiddenTokens\":false,\"fragment\":false,\"hiddenTokens\":[],\"parameters\":[],\"wildcard\":false},{\"$type\":\"ParserRule\",\"name\":\"Statement\",\"definition\":{\"$type\":\"Alternatives\",\"elements\":[{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@13\"},\"arguments\":[]},{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@14\"},\"arguments\":[]},{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@15\"},\"arguments\":[]},{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@16\"},\"arguments\":[]},{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@17\"},\"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@20\"},\"arguments\":[]}}]},{\"$type\":\"Group\",\"elements\":[{\"$type\":\"Keyword\",\"value\":\"msg:\",\"cardinality\":\"?\"},{\"$type\":\"Assignment\",\"feature\":\"message\",\"operator\":\"=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@20\"},\"arguments\":[]}}]},{\"$type\":\"Group\",\"elements\":[{\"$type\":\"Keyword\",\"value\":\"tag:\"},{\"$type\":\"Assignment\",\"feature\":\"tags\",\"operator\":\"+=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@20\"},\"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@1\"},\"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@19\"},\"arguments\":[]},{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@20\"},\"arguments\":[]}]}},{\"$type\":\"Group\",\"elements\":[{\"$type\":\"Keyword\",\"value\":\"order:\"},{\"$type\":\"Assignment\",\"feature\":\"order\",\"operator\":\"=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@18\"},\"arguments\":[]}}],\"cardinality\":\"?\"},{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@1\"},\"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@19\"},\"arguments\":[]},{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@20\"},\"arguments\":[]}]}},{\"$type\":\"Alternatives\",\"elements\":[{\"$type\":\"Group\",\"elements\":[{\"$type\":\"Keyword\",\"value\":\"id:\"},{\"$type\":\"Assignment\",\"feature\":\"id\",\"operator\":\"=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@20\"},\"arguments\":[]}}]},{\"$type\":\"Group\",\"elements\":[{\"$type\":\"Keyword\",\"value\":\"tag:\"},{\"$type\":\"Assignment\",\"feature\":\"tags\",\"operator\":\"+=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@20\"},\"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@1\"},\"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@19\"},\"arguments\":[]},{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@20\"},\"arguments\":[]}]}},{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@1\"},\"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@20\"},\"arguments\":[]}}]},{\"$type\":\"Group\",\"elements\":[{\"$type\":\"Keyword\",\"value\":\"tag:\"},{\"$type\":\"Assignment\",\"feature\":\"tags\",\"operator\":\"+=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@20\"},\"arguments\":[]}}]},{\"$type\":\"Group\",\"elements\":[{\"$type\":\"Keyword\",\"value\":\"parent:\"},{\"$type\":\"Assignment\",\"feature\":\"parent\",\"operator\":\"=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@20\"},\"arguments\":[]}}]}],\"cardinality\":\"*\"},{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@1\"},\"arguments\":[]}]},\"definesHiddenTokens\":false,\"entry\":false,\"fragment\":false,\"hiddenTokens\":[],\"parameters\":[],\"wildcard\":false},{\"$type\":\"TerminalRule\",\"name\":\"INT\",\"type\":{\"$type\":\"ReturnType\",\"name\":\"number\"},\"definition\":{\"$type\":\"RegexToken\",\"regex\":\"/[0-9]+(?=\\\\\\\\s)/\"},\"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\":\"STRING\",\"definition\":{\"$type\":\"RegexToken\",\"regex\":\"/\\\\\"[^\\\\\"]*\\\\\"|'[^']*'/\"},\"fragment\":false,\"hidden\":false}],\"definesHiddenTokens\":false,\"hiddenTokens\":[],\"imports\":[],\"types\":[],\"usedGrammars\":[]}`)), \"GitGraphGrammar\");\n\n// src/language/generated/module.ts\nvar InfoLanguageMetaData = {\n languageId: \"info\",\n fileExtensions: [\".mmd\", \".mermaid\"],\n caseInsensitive: false\n};\nvar PacketLanguageMetaData = {\n languageId: \"packet\",\n fileExtensions: [\".mmd\", \".mermaid\"],\n caseInsensitive: false\n};\nvar PieLanguageMetaData = {\n languageId: \"pie\",\n fileExtensions: [\".mmd\", \".mermaid\"],\n caseInsensitive: false\n};\nvar ArchitectureLanguageMetaData = {\n languageId: \"architecture\",\n fileExtensions: [\".mmd\", \".mermaid\"],\n caseInsensitive: false\n};\nvar GitGraphLanguageMetaData = {\n languageId: \"gitGraph\",\n fileExtensions: [\".mmd\", \".mermaid\"],\n caseInsensitive: false\n};\nvar MermaidGeneratedSharedModule = {\n AstReflection: /* @__PURE__ */ __name(() => new MermaidAstReflection(), \"AstReflection\")\n};\nvar InfoGeneratedModule = {\n Grammar: /* @__PURE__ */ __name(() => InfoGrammar(), \"Grammar\"),\n LanguageMetaData: /* @__PURE__ */ __name(() => InfoLanguageMetaData, \"LanguageMetaData\"),\n parser: {}\n};\nvar PacketGeneratedModule = {\n Grammar: /* @__PURE__ */ __name(() => PacketGrammar(), \"Grammar\"),\n LanguageMetaData: /* @__PURE__ */ __name(() => PacketLanguageMetaData, \"LanguageMetaData\"),\n parser: {}\n};\nvar PieGeneratedModule = {\n Grammar: /* @__PURE__ */ __name(() => PieGrammar(), \"Grammar\"),\n LanguageMetaData: /* @__PURE__ */ __name(() => PieLanguageMetaData, \"LanguageMetaData\"),\n parser: {}\n};\nvar ArchitectureGeneratedModule = {\n Grammar: /* @__PURE__ */ __name(() => ArchitectureGrammar(), \"Grammar\"),\n LanguageMetaData: /* @__PURE__ */ __name(() => ArchitectureLanguageMetaData, \"LanguageMetaData\"),\n parser: {}\n};\nvar GitGraphGeneratedModule = {\n Grammar: /* @__PURE__ */ __name(() => GitGraphGrammar(), \"Grammar\"),\n LanguageMetaData: /* @__PURE__ */ __name(() => GitGraphLanguageMetaData, \"LanguageMetaData\"),\n parser: {}\n};\n\n// src/language/common/valueConverter.ts\nimport { DefaultValueConverter } from \"langium\";\n\n// src/language/common/matcher.ts\nvar accessibilityDescrRegex = /accDescr(?:[\\t ]*:([^\\n\\r]*)|\\s*{([^}]*)})/;\nvar accessibilityTitleRegex = /accTitle[\\t ]*:([^\\n\\r]*)/;\nvar titleRegex = /title([\\t ][^\\n\\r]*|)/;\n\n// src/language/common/valueConverter.ts\nvar rulesRegexes = {\n ACC_DESCR: accessibilityDescrRegex,\n ACC_TITLE: accessibilityTitleRegex,\n TITLE: titleRegex\n};\nvar AbstractMermaidValueConverter = class extends DefaultValueConverter {\n static {\n __name(this, \"AbstractMermaidValueConverter\");\n }\n runConverter(rule, input, cstNode) {\n let value = this.runCommonConverter(rule, input, cstNode);\n if (value === void 0) {\n value = this.runCustomConverter(rule, input, cstNode);\n }\n if (value === void 0) {\n return super.runConverter(rule, input, cstNode);\n }\n return value;\n }\n runCommonConverter(rule, input, _cstNode) {\n const regex = rulesRegexes[rule.name];\n if (regex === void 0) {\n return void 0;\n }\n const match = regex.exec(input);\n if (match === null) {\n return void 0;\n }\n if (match[1] !== void 0) {\n return match[1].trim().replace(/[\\t ]{2,}/gm, \" \");\n }\n if (match[2] !== void 0) {\n return match[2].replace(/^\\s*/gm, \"\").replace(/\\s+$/gm, \"\").replace(/[\\t ]{2,}/gm, \" \").replace(/[\\n\\r]{2,}/gm, \"\\n\");\n }\n return void 0;\n }\n};\nvar CommonValueConverter = class extends AbstractMermaidValueConverter {\n static {\n __name(this, \"CommonValueConverter\");\n }\n runCustomConverter(_rule, _input, _cstNode) {\n return void 0;\n }\n};\n\n// src/language/common/tokenBuilder.ts\nimport { DefaultTokenBuilder } from \"langium\";\nvar AbstractMermaidTokenBuilder = class extends DefaultTokenBuilder {\n static {\n __name(this, \"AbstractMermaidTokenBuilder\");\n }\n constructor(keywords) {\n super();\n this.keywords = new Set(keywords);\n }\n buildKeywordTokens(rules, terminalTokens, options) {\n const tokenTypes = super.buildKeywordTokens(rules, terminalTokens, options);\n tokenTypes.forEach((tokenType) => {\n if (this.keywords.has(tokenType.name) && tokenType.PATTERN !== void 0) {\n tokenType.PATTERN = new RegExp(tokenType.PATTERN.toString() + \"(?:(?=%%)|(?!\\\\S))\");\n }\n });\n return tokenTypes;\n }\n};\nvar CommonTokenBuilder = class extends AbstractMermaidTokenBuilder {\n static {\n __name(this, \"CommonTokenBuilder\");\n }\n};\n\nexport {\n __name,\n Statement,\n Architecture,\n isArchitecture,\n Branch,\n isBranch,\n Commit,\n isCommit,\n isCommon,\n GitGraph,\n isGitGraph,\n Info,\n isInfo,\n Merge,\n isMerge,\n Packet,\n isPacket,\n PacketBlock,\n isPacketBlock,\n Pie,\n isPie,\n PieSection,\n isPieSection,\n MermaidGeneratedSharedModule,\n InfoGeneratedModule,\n PacketGeneratedModule,\n PieGeneratedModule,\n ArchitectureGeneratedModule,\n GitGraphGeneratedModule,\n AbstractMermaidValueConverter,\n CommonValueConverter,\n AbstractMermaidTokenBuilder,\n CommonTokenBuilder\n};\n"], + "mappings": "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", + "names": ["require_ral", "__commonJSMin", "exports", "_ral", "RAL", "install", "ral", "require_is", "__commonJSMin", "exports", "boolean", "value", "string", "number", "error", "func", "array", "stringArray", "elem", "require_events", "__commonJSMin", "exports", "ral_1", "Event", "_disposable", "CallbackList", "callback", "context", "bucket", "foundCallbackWithDifferentContext", "len", "args", "ret", "callbacks", "contexts", "i", "e", "Emitter", "_Emitter", "_options", "listener", "thisArgs", "disposables", "result", "event", "require_cancellation", "__commonJSMin", "exports", "ral_1", "Is", "events_1", "CancellationToken", "is", "value", "candidate", "shortcutEvent", "callback", "context", "handle", "MutableToken", "CancellationTokenSource", "lib_exports", "__export", "AbstractAstReflection", "AbstractCstNode", "AbstractLangiumParser", "AbstractParserErrorMessageProvider", "AbstractThreadedAsyncParser", "ast_utils_exports", "BiMap", "cancellation_exports", "CompositeCstNodeImpl", "ContextCache", "CstNodeBuilder", "cst_utils_exports", "DONE_RESULT", "DatatypeSymbol", "DefaultAstNodeDescriptionProvider", "DefaultAstNodeLocator", "DefaultAsyncParser", "DefaultCommentProvider", "DefaultConfigurationProvider", "DefaultDocumentBuilder", "DefaultDocumentValidator", "DefaultHydrator", "DefaultIndexManager", "DefaultJsonSerializer", "DefaultLangiumDocumentFactory", "DefaultLangiumDocuments", "DefaultLexer", "DefaultLinker", "DefaultNameProvider", "DefaultReferenceDescriptionProvider", "DefaultReferences", "DefaultScopeComputation", "DefaultScopeProvider", "DefaultServiceRegistry", "DefaultTokenBuilder", "DefaultValueConverter", "DefaultWorkspaceLock", "DefaultWorkspaceManager", "Deferred", "Disposable", "DisposableCache", "DocumentCache", "DocumentState", "DocumentValidator", "EMPTY_SCOPE", "EMPTY_STREAM", "EmptyFileSystem", "EmptyFileSystemProvider", "ErrorWithLocation", "ast_exports", "grammar_utils_exports", "JSDocDocumentationProvider", "LangiumCompletionParser", "LangiumParser", "LangiumParserErrorMessageProvider", "LeafCstNodeImpl", "MapScope", "Module", "MultiMap", "OperationCancelled", "ParserWorker", "Reduction", "regexp_utils_exports", "RootCstNodeImpl", "SimpleCache", "StreamImpl", "StreamScope", "TextDocument", "TreeStreamImpl", "URI", "UriUtils", "ValidationCategory", "ValidationRegistry", "ValueConverter", "WorkspaceCache", "assertUnreachable", "createCompletionParser", "createDefaultCoreModule", "createDefaultSharedCoreModule", "createGrammarConfig", "createLangiumParser", "delayNextTick", "diagnosticData", "eagerLoad", "getDiagnosticRange", "inject", "interruptAndCheck", "isAstNode", "isAstNodeDescription", "isAstNodeWithComment", "isCompositeCstNode", "isIMultiModeLexerDefinition", "isJSDoc", "isLeafCstNode", "isLinkingError", "isNamed", "isOperationCancelled", "isReference", "isRootCstNode", "isTokenTypeArray", "isTokenTypeDictionary", "loadGrammarFromJson", "parseJSDoc", "prepareLangiumParser", "setInterruptionPeriod", "startCancelableOperation", "stream", "toDiagnosticSeverity", "cst_utils_exports", "__export", "DefaultNameRegexp", "RangeComparison", "compareRange", "findCommentNode", "findDeclarationNodeAtOffset", "findLeafNodeAtOffset", "findLeafNodeBeforeOffset", "flattenCst", "getInteriorNodes", "getNextNode", "getPreviousNode", "getStartlineNode", "inRange", "isChildNode", "isCommentNode", "streamCst", "toDocumentSegment", "tokenToRange", "isAstNode", "obj", "isReference", "isAstNodeDescription", "isLinkingError", "AbstractAstReflection", "node", "type", "subtype", "supertype", "nested", "existing", "result", "allTypes", "types", "possibleSubType", "isCompositeCstNode", "isLeafCstNode", "isRootCstNode", "StreamImpl", "_StreamImpl", "startFn", "nextFn", "iterator", "count", "next", "result", "keyFn", "valueFn", "entryStream", "element", "other", "state", "DONE_RESULT", "separator", "value", "addSeparator", "toString", "searchElement", "fromIndex", "index", "predicate", "callbackfn", "done", "initialValue", "previousValue", "mapped", "isIterable", "depth", "stream", "skipCount", "i", "maxSize", "by", "set", "e", "key", "otherKeySet", "item", "ownKey", "obj", "EMPTY_STREAM", "collections", "collection", "TreeStreamImpl", "root", "children", "options", "Reduction", "sum", "b", "product", "min", "max", "streamCst", "node", "TreeStreamImpl", "element", "isCompositeCstNode", "flattenCst", "isLeafCstNode", "isChildNode", "child", "parent", "tokenToRange", "token", "toDocumentSegment", "offset", "end", "range", "RangeComparison", "compareRange", "to", "startInside", "endInside", "inRange", "DefaultNameRegexp", "findDeclarationNodeAtOffset", "cstNode", "nameRegexp", "localOffset", "textAtOffset", "findLeafNodeAtOffset", "findCommentNode", "commentNames", "previous", "getPreviousNode", "isCommentNode", "isRootCstNode", "endIndex", "e", "searchResult", "binarySearch", "findLeafNodeBeforeOffset", "closest", "left", "right", "closestNode", "middle", "middleNode", "hidden", "index", "getNextNode", "last", "next", "getStartlineNode", "line", "selfIndex", "getInteriorNodes", "start", "commonParent", "getCommonParent", "a", "b", "aParents", "getParentChain", "bParents", "current", "i", "aParent", "bParent", "chain", "grammar_utils_exports", "__export", "findAssignment", "findNameAssignment", "findNodeForKeyword", "findNodeForProperty", "findNodesForKeyword", "findNodesForKeywordInternal", "findNodesForProperty", "getActionAtElement", "getActionType", "getAllReachableRules", "getCrossReferenceTerminal", "getEntryRule", "getExplicitRuleType", "getHiddenRules", "getRuleType", "getTypeName", "isArrayCardinality", "isArrayOperator", "isCommentTerminal", "isDataType", "isDataTypeRule", "isOptionalCardinality", "terminalRegex", "ErrorWithLocation", "node", "message", "assertUnreachable", "_", "ast_exports", "__export", "AbstractElement", "AbstractRule", "AbstractType", "Action", "Alternatives", "ArrayLiteral", "ArrayType", "Assignment", "BooleanLiteral", "CharacterRange", "Condition", "Conjunction", "CrossReference", "Disjunction", "EndOfFile", "Grammar", "GrammarImport", "Group", "InferredType", "Interface", "Keyword", "LangiumGrammarAstReflection", "LangiumGrammarTerminals", "NamedArgument", "NegatedToken", "Negation", "NumberLiteral", "Parameter", "ParameterReference", "ParserRule", "ReferenceType", "RegexToken", "ReturnType", "RuleCall", "SimpleType", "StringLiteral", "TerminalAlternatives", "TerminalGroup", "TerminalRule", "TerminalRuleCall", "Type", "TypeAttribute", "TypeDefinition", "UnionType", "UnorderedGroup", "UntilToken", "ValueLiteral", "Wildcard", "isAbstractElement", "isAbstractRule", "isAbstractType", "isAction", "isAlternatives", "isArrayLiteral", "isArrayType", "isAssignment", "isBooleanLiteral", "isCharacterRange", "isCondition", "isConjunction", "isCrossReference", "isDisjunction", "isEndOfFile", "isFeatureName", "isGrammar", "isGrammarImport", "isGroup", "isInferredType", "isInterface", "isKeyword", "isNamedArgument", "isNegatedToken", "isNegation", "isNumberLiteral", "isParameter", "isParameterReference", "isParserRule", "isPrimitiveType", "isReferenceType", "isRegexToken", "isReturnType", "isRuleCall", "isSimpleType", "isStringLiteral", "isTerminalAlternatives", "isTerminalGroup", "isTerminalRule", "isTerminalRuleCall", "isType", "isTypeAttribute", "isTypeDefinition", "isUnionType", "isUnorderedGroup", "isUntilToken", "isValueLiteral", "isWildcard", "reflection", "LangiumGrammarTerminals", "AbstractRule", "isAbstractRule", "item", "reflection", "AbstractType", "isAbstractType", "Condition", "isCondition", "isFeatureName", "isPrimitiveType", "TypeDefinition", "isTypeDefinition", "ValueLiteral", "isValueLiteral", "AbstractElement", "isAbstractElement", "ArrayLiteral", "isArrayLiteral", "ArrayType", "isArrayType", "BooleanLiteral", "isBooleanLiteral", "Conjunction", "isConjunction", "Disjunction", "isDisjunction", "Grammar", "isGrammar", "GrammarImport", "isGrammarImport", "InferredType", "isInferredType", "Interface", "isInterface", "NamedArgument", "isNamedArgument", "Negation", "isNegation", "NumberLiteral", "isNumberLiteral", "Parameter", "isParameter", "ParameterReference", "isParameterReference", "ParserRule", "isParserRule", "ReferenceType", "isReferenceType", "ReturnType", "isReturnType", "SimpleType", "isSimpleType", "StringLiteral", "isStringLiteral", "TerminalRule", "isTerminalRule", "Type", "isType", "TypeAttribute", "isTypeAttribute", "UnionType", "isUnionType", "Action", "isAction", "Alternatives", "isAlternatives", "Assignment", "isAssignment", "CharacterRange", "isCharacterRange", "CrossReference", "isCrossReference", "EndOfFile", "isEndOfFile", "Group", "isGroup", "Keyword", "isKeyword", "NegatedToken", "isNegatedToken", "RegexToken", "isRegexToken", "RuleCall", "isRuleCall", "TerminalAlternatives", "isTerminalAlternatives", "TerminalGroup", "isTerminalGroup", "TerminalRuleCall", "isTerminalRuleCall", "UnorderedGroup", "isUnorderedGroup", "UntilToken", "isUntilToken", "Wildcard", "isWildcard", "LangiumGrammarAstReflection", "AbstractAstReflection", "subtype", "supertype", "refInfo", "referenceId", "type", "ast_utils_exports", "__export", "assignMandatoryProperties", "copyAstNode", "findLocalReferences", "findRootNode", "getContainerOfType", "getDocument", "hasContainerOfType", "linkContentToContainer", "streamAllContents", "streamAst", "streamContents", "streamReferences", "linkContentToContainer", "node", "name", "value", "item", "index", "isAstNode", "getContainerOfType", "typePredicate", "hasContainerOfType", "predicate", "getDocument", "result", "findRootNode", "streamContents", "options", "range", "StreamImpl", "state", "property", "isAstNodeInRange", "element", "DONE_RESULT", "streamAllContents", "root", "TreeStreamImpl", "streamAst", "astNode", "nodeRange", "_a", "inRange", "streamReferences", "isReference", "findLocalReferences", "targetNode", "lookup", "refs", "refInfo", "stream", "assignMandatoryProperties", "reflection", "typeMetaData", "genericNode", "copyDefaultValue", "propertyType", "copyAstNode", "buildReference", "copy", "copiedArray", "regexp_utils_exports", "__export", "NEWLINE_REGEXP", "escapeRegExp", "getCaseInsensitivePattern", "getTerminalParts", "isMultilineComment", "isWhitespace", "partialMatches", "partialRegExp", "cc", "char", "insertToSet", "item", "set", "subItem", "addFlag", "flagObj", "flagKey", "x", "ASSERT_EXISTS", "obj", "ASSERT_NEVER_REACH_HERE", "isCharacter", "digitsCharCodes", "i", "cc", "wordCharCodes", "whitespaceCodes", "hexDigitPattern", "decimalPattern", "decimalPatternNoZero", "RegExpParser", "newState", "input", "value", "flags", "addFlag", "alts", "begin", "terms", "type", "ASSERT_EXISTS", "disjunction", "ASSERT_NEVER_REACH_HERE", "isBacktracking", "range", "atLeast", "atMost", "atom", "cc", "set", "complement", "digitsCharCodes", "whitespaceCodes", "wordCharCodes", "escapeCode", "letter", "escapedChar", "nextChar", "from", "isFromSingleChar", "isCharacter", "to", "isToSingleChar", "insertToSet", "capturing", "groupAst", "number", "howMuch", "prevState", "howMany", "hexString", "hexChar", "char", "BaseRegExpVisitor", "node", "key", "child", "subChild", "NEWLINE_REGEXP", "regexpParser", "RegExpParser", "TerminalRegExpVisitor", "BaseRegExpVisitor", "regex", "node", "char", "escapedChar", "escapeRegExp", "set", "visitor", "getTerminalParts", "regexp", "pattern", "parts", "alternative", "isMultilineComment", "isWhitespace", "value", "getCaseInsensitivePattern", "keyword", "letter", "partialMatches", "input", "partial", "partialRegExp", "match", "re", "source", "i", "process", "result", "tmp", "appendRaw", "nbChars", "appendOptional", "getEntryRule", "grammar", "isParserRule", "getHiddenRules", "isTerminalRule", "getAllReachableRules", "allTerminals", "ruleNames", "entryRule", "topMostRules", "rule", "ruleDfs", "rules", "visitedSet", "streamAllContents", "node", "isRuleCall", "isTerminalRuleCall", "refRule", "getCrossReferenceTerminal", "crossRef", "nameAssigment", "findNameAssignment", "isCommentTerminal", "terminalRule", "terminalRegex", "findNodesForProperty", "property", "findNodesForPropertyInternal", "findNodeForProperty", "index", "nodes", "element", "first", "nodeFeature", "getContainerOfType", "isAssignment", "isCompositeCstNode", "e", "findNodesForKeyword", "keyword", "findNodesForKeywordInternal", "findNodeForKeyword", "isKeyword", "treeIterator", "streamCst", "result", "keywordNodes", "childNode", "findAssignment", "cstNode", "astNode", "_a", "assignment", "type", "startNode", "isInferredType", "isAction", "assertUnreachable", "findNameAssignmentInternal", "cache", "go", "refType", "childAssignment", "isSimpleType", "getActionAtElement", "parent", "isGroup", "elements", "item", "action", "isAbstractElement", "isOptionalCardinality", "cardinality", "isArrayCardinality", "isArrayOperator", "operator", "isDataTypeRule", "isDataTypeRuleInternal", "visited", "isDataType", "isDataTypeInternal", "isArrayType", "isReferenceType", "isUnionType", "ref", "isType", "getExplicitRuleType", "isInterface", "getTypeName", "isReturnType", "actionType", "getActionType", "getRuleType", "_b", "_c", "flags", "source", "abstractElementToRegex", "flagText", "value", "name", "WILDCARD", "isTerminalAlternatives", "terminalAlternativesToRegex", "isTerminalGroup", "terminalGroupToRegex", "isCharacterRange", "characterRangeToRegex", "withCardinality", "isNegatedToken", "negateTokenToRegex", "isUntilToken", "untilTokenToRegex", "isRegexToken", "lastSlash", "regexFlags", "isWildcard", "alternatives", "group", "until", "negate", "range", "keywordToRegex", "escapeRegExp", "regex", "options", "createGrammarConfig", "services", "rules", "grammar", "rule", "isTerminalRule", "isCommentTerminal", "isMultilineComment", "terminalRegex", "DefaultNameRegexp", "PRINT_ERROR", "msg", "PRINT_WARNING", "timer", "func", "start", "val", "toFastProperties", "toBecomeFast", "FakeConstructor", "fakeInstance", "fakeAccess", "tokenLabel", "tokType", "hasTokenLabel", "obj", "isString_default", "AbstractProduction", "value", "_definition", "visitor", "forEach_default", "prod", "NonTerminal", "options", "assign_default", "pickBy_default", "v", "definition", "Rule", "Alternative", "Option", "RepetitionMandatory", "RepetitionMandatoryWithSeparator", "Repetition", "RepetitionWithSeparator", "Alternation", "Terminal", "serializeGrammar", "topRules", "map_default", "serializeProduction", "node", "convertDefinition", "serializedNonTerminal", "serializedTerminal", "pattern", "isRegExp_default", "GAstVisitor", "node", "nodeAny", "NonTerminal", "Alternative", "Option", "RepetitionMandatory", "RepetitionMandatoryWithSeparator", "RepetitionWithSeparator", "Repetition", "Alternation", "Terminal", "Rule", "isSequenceProd", "prod", "Alternative", "Option", "Repetition", "RepetitionMandatory", "RepetitionMandatoryWithSeparator", "RepetitionWithSeparator", "Terminal", "Rule", "isOptionalProd", "alreadyVisited", "Alternation", "some_default", "subProd", "NonTerminal", "includes_default", "AbstractProduction", "every_default", "isBranchingProd", "getProductionDslName", "RestWalker", "prod", "prevRest", "forEach_default", "subProd", "index", "currRest", "drop_default", "NonTerminal", "Terminal", "Alternative", "Option", "RepetitionMandatory", "RepetitionMandatoryWithSeparator", "RepetitionWithSeparator", "Repetition", "Alternation", "terminal", "refProd", "flatProd", "fullOrRest", "optionProd", "atLeastOneProd", "fullAtLeastOneRest", "atLeastOneSepProd", "fullAtLeastOneSepRest", "restForRepetitionWithSeparator", "manyProd", "fullManyRest", "manySepProd", "fullManySepRest", "orProd", "alt", "prodWrapper", "repSepProd", "first", "prod", "NonTerminal", "Terminal", "firstForTerminal", "isSequenceProd", "firstForSequence", "isBranchingProd", "firstForBranching", "firstSet", "seq", "nextSubProdIdx", "hasInnerProdsRemaining", "currSubProd", "isLastInnerProdOptional", "isOptionalProd", "uniq_default", "allAlternativesFirsts", "map_default", "innerProd", "flatten_default", "terminal", "IN", "ResyncFollowsWalker", "RestWalker", "topProd", "terminal", "currRest", "prevRest", "refProd", "followName", "buildBetweenProdsFollowPrefix", "fullRest", "restProd", "Alternative", "t_in_topProd_follows", "first", "computeAllProdsFollows", "topProductions", "reSyncFollows", "forEach_default", "currRefsFollow", "assign_default", "inner", "occurenceInParent", "IN", "regExpAstCache", "regExpParser", "RegExpParser", "getRegExpAst", "regExp", "regExpStr", "regExpAst", "clearRegExpParserCache", "complementErrorMessage", "failedOptimizationPrefixMsg", "getOptimizedStartCodesIndices", "regExp", "ensureOptimizations", "ast", "getRegExpAst", "firstCharOptimizedIndices", "e", "PRINT_WARNING", "msgSuffix", "PRINT_ERROR", "result", "ignoreCase", "terms", "term", "atom", "addOptimizedIdxToResult", "forEach_default", "code", "range", "rangeCode", "minOptimizationVal", "minUnOptVal", "maxUnOptVal", "minOptIdx", "charCodeToOptimizedIndex", "maxOptIdx", "currOptIdx", "isOptionalQuantifier", "isWholeOptional", "values_default", "optimizedCharIdx", "handleIgnoreCase", "char", "upperChar", "lowerChar", "findCode", "setNode", "targetCharCodes", "find_default", "codeOrRange", "includes_default", "targetCode", "quantifier", "isArray_default", "every_default", "CharCodeFinder", "BaseRegExpVisitor", "node", "canMatchCharCode", "charCodes", "pattern", "charCodeFinder", "PATTERN", "DEFAULT_MODE", "MODES", "SUPPORT_STICKY", "analyzeTokenTypes", "tokenTypes", "options", "defaults_default", "SUPPORT_STICKY", "msg", "action", "tracer", "initCharCodeToOptimizedIndexMap", "onlyRelevantTypes", "reject_default", "currType", "PATTERN", "Lexer", "hasCustom", "allTransformedPatterns", "map_default", "currPattern", "isRegExp_default", "regExpSource", "includes_default", "addStickyFlag", "addStartOfInput", "isFunction_default", "escapedRegExpString", "wrappedRegExp", "patternIdxToType", "patternIdxToGroup", "patternIdxToLongerAltIdxArr", "patternIdxToPushMode", "patternIdxToPopMode", "clazz", "groupName", "isString_default", "isUndefined_default", "longerAltType", "isArray_default", "type", "indexOf_default", "has_default", "patternIdxToCanLineTerminator", "lineTerminatorCharCodes", "getCharCodes", "tokType", "checkLineBreaksIssues", "canMatchCharCode", "patternIdxToIsCustom", "patternIdxToShort", "emptyGroups", "patternIdxToConfig", "isCustomPattern", "isShortPattern", "reduce_default", "acc", "x", "idx", "canBeOptimized", "charCodeToPatternIdxToConfig", "result", "currTokType", "charCode", "optimizedIdx", "charCodeToOptimizedIndex", "addToMapOfArrays", "lastOptimizedIdx", "forEach_default", "charOrInt", "currOptimizedIdx", "PRINT_ERROR", "failedOptimizationPrefixMsg", "optimizedCodes", "getOptimizedStartCodesIndices", "isEmpty_default", "code", "validatePatterns", "validModesNames", "errors", "missingResult", "findMissingPatterns", "invalidResult", "findInvalidPatterns", "validTokenTypes", "validateRegExpPattern", "findInvalidGroupType", "findModesThatDoNotExist", "findUnreachablePatterns", "withRegExpPatterns", "filter_default", "findEndOfInputAnchor", "findStartOfInputAnchor", "findUnsupportedFlags", "findDuplicatePatterns", "findEmptyMatchRegExps", "tokenTypesWithMissingPattern", "LexerDefinitionErrorType", "valid", "difference_default", "tokenTypesWithInvalidPattern", "pattern", "end_of_input", "EndAnchorFinder", "BaseRegExpVisitor", "node", "invalidRegex", "regexpAst", "getRegExpAst", "endAnchorVisitor", "matchesEmptyString", "start_of_input", "StartAnchorFinder", "startAnchorVisitor", "invalidFlags", "found", "identicalPatterns", "outerType", "innerType", "compact_default", "duplicatePatterns", "currIdenticalSet", "setOfIdentical", "tokenTypeNames", "head_default", "invalidTypes", "group", "validModes", "invalidModes", "canBeTested", "noMetaChar", "testIdx", "str", "tokenType", "testTokenType", "regExpArray", "regExp", "find_default", "char", "flags", "performRuntimeChecks", "lexerDefinition", "trackLines", "lineTerminatorCharacters", "DEFAULT_MODE", "MODES", "currModeValue", "currModeName", "currIdx", "longerAlt", "currLongerAlt", "performWarningRuntimeChecks", "warnings", "hasAnyLineBreak", "allTokenTypes", "flatten_default", "values_default", "concreteTokenTypes", "terminatorCharCodes", "currIssue", "warningDescriptor", "buildLineBreakIssueMessage", "cloneEmptyGroups", "clonedResult", "groupKeys", "keys_default", "currKey", "currGroupValue", "LineTerminatorOptimizedTester", "text", "len", "i", "c", "e", "details", "charsOrCodes", "numOrString", "map", "key", "value", "minOptimizationVal", "charCodeToOptimizedIdxMap", "tokenStructuredMatcher", "tokInstance", "tokConstructor", "instanceType", "tokenStructuredMatcherNoCategories", "token", "tokType", "tokenShortNameIdx", "tokenIdxToClass", "augmentTokenTypes", "tokenTypes", "tokenTypesAndParents", "expandCategories", "assignTokenDefaultProps", "assignCategoriesMapProp", "assignCategoriesTokensProp", "forEach_default", "result", "clone_default", "categories", "searching", "compact_default", "flatten_default", "map_default", "currTokType", "newCategories", "difference_default", "isEmpty_default", "hasShortKeyProperty", "hasCategoriesProperty", "isArray_default", "hasExtendingTokensTypesProperty", "hasExtendingTokensTypesMapProperty", "val", "key", "singleAssignCategoriesToksMap", "path", "nextNode", "pathNode", "nextCategory", "newPath", "includes_default", "has_default", "isTokenType", "defaultLexerErrorProvider", "token", "fullText", "startOffset", "length", "line", "column", "LexerDefinitionErrorType", "DEFAULT_LEXER_CONFIG", "defaultLexerErrorProvider", "Lexer", "lexerDefinition", "config", "phaseDesc", "phaseImpl", "indent", "time", "value", "timer", "traceMethod", "assign_default", "traceInitVal", "actualDefinition", "hasOnlySingleMode", "LineTerminatorOptimizedTester", "isArray_default", "clone_default", "DEFAULT_MODE", "performRuntimeChecks", "performWarningRuntimeChecks", "forEach_default", "currModeValue", "currModeName", "reject_default", "currTokType", "isUndefined_default", "allModeNames", "keys_default", "currModDef", "currModName", "validatePatterns", "isEmpty_default", "augmentTokenTypes", "currAnalyzeResult", "analyzeTokenTypes", "allErrMessagesString", "map_default", "error", "warningDescriptor", "PRINT_WARNING", "SUPPORT_STICKY", "identity_default", "noop_default", "unOptimizedModes", "reduce_default", "cannotBeOptimized", "canBeOptimized", "modeName", "clearRegExpParserCache", "toFastProperties", "text", "initialMode", "i", "j", "k", "matchAltImage", "longerAlt", "matchedImage", "payload", "altPayload", "imageLength", "group", "tokType", "newToken", "errLength", "droppedChar", "msg", "match", "orgText", "orgLength", "offset", "matchedTokensIndex", "guessedNumberOfTokens", "matchedTokens", "errors", "line", "column", "groups", "cloneEmptyGroups", "trackLines", "lineTerminatorPattern", "currModePatternsLength", "patternIdxToConfig", "currCharCodeToPatternIdxToConfig", "modeStack", "emptyArray", "getPossiblePatterns", "getPossiblePatternsSlow", "getPossiblePatternsOptimized", "charCode", "optimizedCharIdx", "charCodeToOptimizedIndex", "possiblePatterns", "pop_mode", "popToken", "newMode", "last_default", "modeCanBeOptimized", "push_mode", "currConfig", "recoveryEnabled", "nextCharCode", "chosenPatternIdxToConfig", "chosenPatternsLength", "currPattern", "singleCharCode", "longerAltLength", "longerAltConfig", "longerAltPattern", "numOfLTsInMatch", "foundTerminator", "lastLTEndOffset", "errorStartOffset", "errorLine", "errorColumn", "foundResyncPoint", "pushMode", "length", "regExp", "newLastIndex", "lastLTIdx", "lastCharIsLT", "fixForEndingInLT", "oldColumn", "image", "startOffset", "tokenTypeIdx", "tokenType", "startLine", "startColumn", "tokenVector", "index", "tokenToAdd", "token", "pattern", "regExpArray", "tokenLabel", "tokType", "hasTokenLabel", "hasTokenLabel", "obj", "isString_default", "PARENT", "CATEGORIES", "LABEL", "GROUP", "PUSH_MODE", "POP_MODE", "LONGER_ALT", "LINE_BREAKS", "START_CHARS_HINT", "createToken", "config", "createTokenInternal", "pattern", "tokenType", "isUndefined_default", "has_default", "augmentTokenTypes", "EOF", "Lexer", "createTokenInstance", "tokType", "image", "startOffset", "endOffset", "startLine", "endLine", "startColumn", "endColumn", "tokenMatcher", "token", "tokenStructuredMatcher", "defaultParserErrorProvider", "expected", "actual", "previous", "ruleName", "hasTokenLabel", "tokenLabel", "firstRedundant", "expectedPathsPerAlt", "customUserDescription", "errPrefix", "errSuffix", "head_default", "allLookAheadPaths", "reduce_default", "result", "currAltPaths", "nextValidTokenSequences", "map_default", "currPath", "currTokenType", "calculatedDescription", "itemMsg", "idx", "expectedIterationPaths", "defaultGrammarResolverErrorProvider", "topLevelRule", "undefinedRule", "defaultGrammarValidatorErrorProvider", "duplicateProds", "getExtraProductionArgument", "prod", "Terminal", "NonTerminal", "topLevelName", "duplicateProd", "index", "dslName", "getProductionDslName", "extraArgument", "hasExplicitIndex", "msg", "rule", "options", "pathMsg", "currTok", "occurrence", "currtok", "currMessage", "pathNames", "currRule", "leftRecursivePath", "Rule", "resolveGrammar", "topLevels", "errMsgProvider", "refResolver", "GastRefResolverVisitor", "GAstVisitor", "nameToTopRule", "forEach_default", "values_default", "prod", "node", "ref", "msg", "ParserDefinitionErrorType", "AbstractNextPossibleTokensWalker", "RestWalker", "topProd", "path", "clone_default", "prod", "prevRest", "refProd", "currRest", "fullRest", "isEmpty_default", "NextAfterTokenWalker", "terminal", "restProd", "Alternative", "first", "AbstractNextTerminalAfterProductionWalker", "topRule", "occurrence", "NextTerminalAfterManyWalker", "manyProd", "firstAfterMany", "head_default", "Terminal", "NextTerminalAfterManySepWalker", "manySepProd", "firstAfterManySep", "NextTerminalAfterAtLeastOneWalker", "atLeastOneProd", "firstAfterAtLeastOne", "NextTerminalAfterAtLeastOneSepWalker", "atleastOneSepProd", "firstAfterfirstAfterAtLeastOneSep", "possiblePathsFrom", "targetDef", "maxLength", "currPath", "result", "remainingPathWith", "nextDef", "drop_default", "getAlternativesForProd", "definition", "alternatives", "NonTerminal", "Option", "RepetitionMandatory", "newDef", "Repetition", "RepetitionMandatoryWithSeparator", "RepetitionWithSeparator", "Alternation", "forEach_default", "currAlt", "nextPossibleTokensAfter", "initialDef", "tokenVector", "tokMatcher", "maxLookAhead", "EXIT_NON_TERMINAL", "EXIT_NON_TERMINAL_ARR", "EXIT_ALTERNATIVE", "foundCompletePath", "tokenVectorLength", "minimalAlternativesIndex", "possiblePaths", "last_default", "currDef", "currIdx", "currRuleStack", "currOccurrenceStack", "nextPath", "dropRight_default", "nextIdx", "actualToken", "newRuleStack", "newOccurrenceStack", "nextPathWithout", "nextPathWith", "secondIteration", "separatorGast", "nthRepetition", "i", "currAltPath", "Rule", "expandTopLevelRule", "newCurrOccurrenceStack", "PROD_TYPE", "getProdType", "prod", "Option", "Repetition", "RepetitionMandatory", "RepetitionMandatoryWithSeparator", "RepetitionWithSeparator", "Alternation", "getLookaheadPaths", "options", "occurrence", "rule", "prodType", "maxLookahead", "type", "getLookaheadPathsForOr", "getLookaheadPathsForOptionalProd", "buildLookaheadFuncForOr", "ruleGrammar", "hasPredicates", "dynamicTokensEnabled", "laFuncBuilder", "lookAheadPaths", "tokenMatcher", "areTokenCategoriesNotUsed", "tokenStructuredMatcherNoCategories", "tokenStructuredMatcher", "buildLookaheadFuncForOptionalProd", "k", "lookaheadBuilder", "buildAlternativesLookAheadFunc", "alts", "numOfAlts", "areAllOneTokenLookahead", "every_default", "currAlt", "currPath", "orAlts", "predicates", "map_default", "t", "currNumOfPaths", "currPredicate", "nextPath", "j", "currPathLength", "i", "nextToken", "singleTokenAlts", "flatten_default", "choiceToAlt", "reduce_default", "result", "idx", "forEach_default", "currTokType", "has_default", "currExtendingType", "buildSingleAlternativeLookaheadFunction", "alt", "numOfPaths", "singleTokensTypes", "isEmpty_default", "expectedTokenUniqueKey", "RestDefinitionFinderWalker", "RestWalker", "topProd", "targetOccurrence", "targetProdType", "node", "expectedProdType", "currRest", "prevRest", "optionProd", "atLeastOneProd", "atLeastOneSepProd", "manyProd", "manySepProd", "InsideDefinitionFinderVisitor", "GAstVisitor", "targetRef", "expectedProdName", "initializeArrayOfArrays", "size", "pathToHashKeys", "path", "keys", "tokType", "longerKeys", "currShorterKey", "categoriesKeySuffix", "isUniquePrefixHash", "altKnownPathsKeys", "searchPathKeys", "currAltIdx", "otherAltKnownPathsKeys", "searchIdx", "searchKey", "lookAheadSequenceFromAlternatives", "altsDefs", "partialAlts", "possiblePathsFrom", "finalResult", "altsHashes", "currAltPaths", "dict", "item", "currKey", "newData", "pathLength", "currDataset", "altIdx", "currAltPathsAndSuffixes", "currPathIdx", "currPathPrefix", "suffixDef", "prefixKeys", "currAltResult", "containsPath", "newPartialPathsAndSuffixes", "key", "orProd", "visitor", "insideDefVisitor", "insideDef", "afterDef", "insideFlat", "Alternative", "afterFlat", "alternative", "searchPath", "compareOtherPath", "otherPath", "searchTok", "otherTok", "isStrictPrefixOfPath", "prefix", "other", "otherTokType", "singleAltPaths", "singlePath", "token", "validateLookahead", "options", "lookaheadValidationErrorMessages", "map_default", "errorMessage", "ParserDefinitionErrorType", "validateGrammar", "topLevels", "tokenTypes", "errMsgProvider", "grammarName", "duplicateErrors", "flatMap_default", "currTopLevel", "validateDuplicateProductions", "termsNamespaceConflictErrors", "checkTerminalAndNoneTerminalsNameSpace", "tooManyAltsErrors", "curRule", "validateTooManyAlts", "duplicateRulesError", "validateRuleDoesNotAlreadyExist", "topLevelRule", "collectorVisitor", "OccurrenceValidationCollector", "allRuleProductions", "productionGroups", "groupBy_default", "identifyProductionForDuplicates", "duplicates", "pickBy_default", "currGroup", "values_default", "currDuplicates", "firstProd", "head_default", "msg", "dslName", "getProductionDslName", "defError", "param", "getExtraProductionArgument", "prod", "Terminal", "NonTerminal", "GAstVisitor", "subrule", "option", "manySep", "atLeastOne", "atLeastOneSep", "many", "or", "terminal", "rule", "allRules", "className", "errors", "reduce_default", "result", "errMsg", "validateRuleIsOverridden", "ruleName", "definedRulesNames", "includes_default", "validateNoLeftRecursion", "topRule", "currRule", "path", "nextNonTerminals", "getFirstNoneTerminal", "isEmpty_default", "validNextSteps", "difference_default", "errorsFromNextSteps", "currRefRule", "newPath", "clone_default", "definition", "Alternative", "Option", "RepetitionMandatory", "RepetitionMandatoryWithSeparator", "RepetitionWithSeparator", "Repetition", "Alternation", "flatten_default", "currSubDef", "isFirstOptional", "isOptionalProd", "hasMore", "rest", "drop_default", "OrCollector", "node", "validateEmptyOrAlternative", "orCollector", "ors", "currOr", "exceptLast", "dropRight_default", "currAlternative", "currAltIdx", "possibleFirstInAlt", "nextPossibleTokensAfter", "tokenStructuredMatcher", "validateAmbiguousAlternationAlternatives", "globalMaxLookahead", "reject_default", "currOccurrence", "actualMaxLookahead", "alternatives", "getLookaheadPathsForOr", "altsAmbiguityErrors", "checkAlternativesAmbiguities", "altsPrefixAmbiguityErrors", "checkPrefixAlternativesAmbiguities", "RepetitionCollector", "validateSomeNonEmptyLookaheadPath", "topLevelRules", "maxLookahead", "forEach_default", "currTopRule", "currProd", "prodType", "getProdType", "pathsInsideProduction", "getLookaheadPathsForOptionalProd", "alternation", "foundAmbiguousPaths", "identicalAmbiguities", "currAlt", "currPath", "altsCurrPathAppearsIn", "currOtherAlt", "currOtherAltIdx", "containsPath", "currAmbDescriptor", "ambgIndices", "pathsAndIndices", "idx", "currPathsAndIdx", "compact_default", "currPathAndIdx", "targetIdx", "targetPath", "prefixAmbiguitiesPathsAndIndices", "filter_default", "searchPathAndIdx", "isStrictPrefixOfPath", "currAmbPathAndIdx", "occurrence", "tokenNames", "currToken", "currRuleName", "resolveGrammar", "options", "actualOptions", "defaults_default", "defaultGrammarResolverErrorProvider", "topRulesTable", "forEach_default", "rule", "validateGrammar", "defaultGrammarValidatorErrorProvider", "MISMATCHED_TOKEN_EXCEPTION", "NO_VIABLE_ALT_EXCEPTION", "EARLY_EXIT_EXCEPTION", "NOT_ALL_INPUT_PARSED_EXCEPTION", "RECOGNITION_EXCEPTION_NAMES", "isRecognitionException", "error", "includes_default", "RecognitionException", "message", "token", "MismatchedTokenException", "previousToken", "NoViableAltException", "NotAllInputParsedException", "EarlyExitException", "EOF_FOLLOW_KEY", "IN_RULE_RECOVERY_EXCEPTION", "InRuleRecoveryException", "message", "Recoverable", "config", "has_default", "DEFAULT_PARSER_CONFIG", "attemptInRepetitionRecovery", "tokType", "tokToInsert", "createTokenInstance", "grammarRule", "grammarRuleArgs", "lookAheadFunc", "expectedTokType", "reSyncTokType", "savedLexerState", "resyncedTokens", "passedResyncPoint", "nextTokenWithoutResync", "currToken", "generateErrorMessage", "previousToken", "msg", "error", "MismatchedTokenException", "dropRight_default", "expectTokAfterLastMatch", "nextTokIdx", "notStuck", "tokIdxInRule", "grammarPath", "follows", "nextTok", "expectedToken", "isEmpty_default", "mismatchedTok", "find_default", "possibleFollowsTokType", "tokenTypeIdx", "followKey", "currentRuleReSyncSet", "includes_default", "allPossibleReSyncTokTypes", "nextToken", "k", "foundMatch", "resyncTokType", "tokenMatcher", "currRuleShortName", "currRuleIdx", "prevRuleShortName", "explicitRuleStack", "explicitOccurrenceStack", "map_default", "ruleName", "idx", "followStack", "currKey", "flatten_default", "EOF", "followName", "IN", "token", "resyncTokens", "prodFunc", "args", "lookaheadFunc", "dslMethodIdx", "prodOccurrence", "nextToksWalker", "pathRuleStack", "pathOccurrenceStack", "clone_default", "currShortName", "key", "firstAfterRepInfo", "currRuleName", "ruleGrammar", "isEndOfRule", "getKeyForAutomaticLookahead", "ruleIdx", "dslMethodIdx", "occurrence", "LLkLookaheadStrategy", "options", "_a", "DEFAULT_PARSER_CONFIG", "leftRecursionErrors", "isEmpty_default", "emptyAltErrors", "ambiguousAltsErrors", "emptyRepetitionErrors", "rules", "flatMap_default", "currTopRule", "validateNoLeftRecursion", "defaultGrammarValidatorErrorProvider", "validateEmptyOrAlternative", "maxLookahead", "validateAmbiguousAlternationAlternatives", "validateSomeNonEmptyLookaheadPath", "buildLookaheadFuncForOr", "buildAlternativesLookAheadFunc", "buildLookaheadFuncForOptionalProd", "getProdType", "buildSingleAlternativeLookaheadFunction", "LooksAhead", "config", "has_default", "DEFAULT_PARSER_CONFIG", "LLkLookaheadStrategy", "rules", "forEach_default", "currRule", "alternation", "repetition", "option", "repetitionMandatory", "repetitionMandatoryWithSeparator", "repetitionWithSeparator", "collectMethods", "currProd", "prodIdx", "getProductionDslName", "laFunc", "key", "getKeyForAutomaticLookahead", "rule", "prodOccurrence", "prodKey", "prodType", "prodMaxLookahead", "dslMethodName", "dslMethodIdx", "occurrence", "currRuleShortName", "value", "DslMethodsCollectorVisitor", "GAstVisitor", "manySep", "atLeastOne", "atLeastOneSep", "many", "or", "collectorVisitor", "dslMethods", "setNodeLocationOnlyOffset", "currNodeLocation", "newLocationInfo", "setNodeLocationFull", "addTerminalToCst", "node", "token", "tokenTypeName", "addNoneTerminalToCst", "ruleName", "ruleResult", "NAME", "defineNameProp", "obj", "nameValue", "defaultVisit", "ctx", "param", "childrenNames", "keys_default", "childrenNamesLength", "currChildName", "currChildArray", "currChildArrayLength", "j", "currChild", "createBaseSemanticVisitorConstructor", "grammarName", "ruleNames", "derivedConstructor", "defineNameProp", "semanticProto", "cstNode", "isArray_default", "isUndefined_default", "semanticDefinitionErrors", "validateVisitor", "isEmpty_default", "errorMessages", "map_default", "currDefError", "createBaseVisitorConstructorWithDefaults", "baseConstructor", "withDefaultsProto", "forEach_default", "ruleName", "CstVisitorDefinitionError", "visitorInstance", "validateMissingCstMethods", "missingRuleNames", "filter_default", "currRuleName", "isFunction_default", "errors", "compact_default", "TreeBuilder", "config", "has_default", "DEFAULT_PARSER_CONFIG", "noop_default", "setNodeLocationFull", "setNodeLocationOnlyOffset", "cstNode", "nextToken", "fullRuleName", "ruleCstNode", "prevToken", "loc", "key", "consumedToken", "rootCst", "addTerminalToCst", "ruleCstResult", "ruleName", "preCstNode", "addNoneTerminalToCst", "isUndefined_default", "newBaseCstVisitorConstructor", "createBaseSemanticVisitorConstructor", "keys_default", "newConstructor", "createBaseVisitorConstructorWithDefaults", "ruleStack", "occurrenceStack", "LexerAdapter", "newInput", "END_OF_FILE", "howMuch", "soughtIdx", "newState", "RecognizerApi", "impl", "idx", "tokType", "options", "ruleToCall", "actionORMethodDef", "altsOrOpts", "name", "implementation", "config", "DEFAULT_RULE_CONFIG", "includes_default", "error", "defaultGrammarValidatorErrorProvider", "ParserDefinitionErrorType", "ruleImplementation", "ruleErrors", "validateRuleIsOverridden", "grammarRule", "args", "orgState", "e", "isRecognitionException", "serializeGrammar", "values_default", "RecognizerEngine", "tokenVocabulary", "config", "tokenStructuredMatcherNoCategories", "has_default", "isArray_default", "isEmpty_default", "reduce_default", "acc", "tokType", "every_default", "flatten_default", "values_default", "isTokenType", "allTokenTypes", "uniqueTokens", "uniq_default", "isObject_default", "clone_default", "EOF", "noTokenCategoriesUsed", "tokenConstructor", "tokenStructuredMatcher", "augmentTokenTypes", "ruleName", "impl", "resyncEnabled", "DEFAULT_RULE_CONFIG", "recoveryValueFunc", "shortName", "invokeRuleWithTry", "args", "cst", "e", "resyncEnabledConfig", "isFirstInvokedRule", "reSyncEnabled", "isRecognitionException", "recogError", "reSyncTokType", "partialCstResult", "actionORMethodDef", "occurrence", "key", "lookAheadFunc", "action", "predicate", "orgLookaheadFunction", "prodOccurrence", "laKey", "notStuck", "PROD_TYPE", "NextTerminalAfterAtLeastOneWalker", "options", "separator", "separatorLookAheadFunc", "NextTerminalAfterAtLeastOneSepWalker", "lookaheadFunction", "NextTerminalAfterManyWalker", "NextTerminalAfterManySepWalker", "nextTerminalAfterWalker", "beforeIteration", "altsOrOpts", "alts", "altIdxToTake", "firstRedundantTok", "errMsg", "NotAllInputParsedException", "ruleToCall", "idx", "ruleResult", "consumedToken", "nextToken", "eFromConsumption", "msg", "previousToken", "MismatchedTokenException", "follows", "eFromInRuleRecovery", "IN_RULE_RECOVERY_EXCEPTION", "savedErrors", "savedRuleStack", "newState", "fullName", "idxInCallingRule", "ErrorHandler", "config", "has_default", "DEFAULT_PARSER_CONFIG", "error", "isRecognitionException", "clone_default", "newErrors", "occurrence", "prodType", "userDefinedErrMsg", "ruleName", "ruleGrammar", "insideProdPaths", "getLookaheadPathsForOptionalProd", "actualTokens", "i", "msg", "EarlyExitException", "errMsgTypes", "lookAheadPathsPerAlternative", "getLookaheadPathsForOr", "previousToken", "errMsg", "NoViableAltException", "ContentAssist", "startRuleName", "precedingInput", "startRuleGast", "isUndefined_default", "nextPossibleTokensAfter", "grammarPath", "topRuleName", "head_default", "topProduction", "NextAfterTokenWalker", "RECORDING_NULL_OBJECT", "HANDLE_SEPARATOR", "MAX_METHOD_IDX", "RFT", "createToken", "Lexer", "augmentTokenTypes", "RECORDING_PHASE_TOKEN", "createTokenInstance", "RECORDING_PHASE_CSTNODE", "GastRecorder", "config", "i", "idx", "arg1", "arg2", "that", "impl", "grammarRule", "args", "howMuch", "END_OF_FILE", "name", "def", "newTopLevelRule", "Rule", "originalError", "actionORMethodDef", "occurrence", "recordProd", "Option", "RepetitionMandatory", "options", "RepetitionMandatoryWithSeparator", "Repetition", "RepetitionWithSeparator", "altsOrOpts", "recordOrProd", "ruleToCall", "assertMethodIdxIsValid", "has_default", "error", "getIdxSuffix", "prevProd", "last_default", "ruleName", "newNoneTerminal", "NonTerminal", "tokType", "hasShortKeyProperty", "Terminal", "prodConstructor", "mainProdArg", "handleSep", "grammarAction", "isFunction_default", "newProd", "hasOptions", "isArray_default", "alts", "newOrProd", "Alternation", "hasPredicates", "some_default", "currAlt", "forEach_default", "currAltFlat", "Alternative", "PerformanceTracer", "config", "has_default", "userTraceInitPerf", "traceIsNumber", "DEFAULT_PARSER_CONFIG", "phaseDesc", "phaseImpl", "indent", "time", "value", "timer", "traceMethod", "applyMixins", "derivedCtor", "baseCtors", "baseCtor", "baseProto", "propName", "basePropDescriptor", "END_OF_FILE", "createTokenInstance", "EOF", "DEFAULT_PARSER_CONFIG", "defaultParserErrorProvider", "DEFAULT_RULE_CONFIG", "ParserDefinitionErrorType", "EMPTY_ALT", "value", "Parser", "_Parser", "parserInstance", "defErrorsMsgs", "className", "toFastProperties", "forEach_default", "currRuleName", "originalGrammarAction", "recordedRuleGast", "resolverErrors", "resolveGrammar", "values_default", "isEmpty_default", "validationErrors", "validateGrammar", "defaultGrammarValidatorErrorProvider", "lookaheadValidationErrors", "validateLookahead", "allFollows", "computeAllProdsFollows", "_b", "_a", "map_default", "defError", "tokenVocabulary", "config", "that", "has_default", "applyMixins", "Recoverable", "LooksAhead", "TreeBuilder", "LexerAdapter", "RecognizerEngine", "RecognizerApi", "ErrorHandler", "ContentAssist", "GastRecorder", "PerformanceTracer", "EmbeddedActionsParser", "Parser", "tokenVocabulary", "config", "DEFAULT_PARSER_CONFIG", "configClone", "clone_default", "buildATNKey", "rule", "type", "occurrence", "ATN_BASIC", "ATN_RULE_START", "ATN_PLUS_BLOCK_START", "ATN_STAR_BLOCK_START", "ATN_RULE_STOP", "ATN_BLOCK_END", "ATN_STAR_LOOP_BACK", "ATN_STAR_LOOP_ENTRY", "ATN_PLUS_LOOP_BACK", "ATN_LOOP_END", "AbstractTransition", "target", "AtomTransition", "tokenType", "EpsilonTransition", "RuleTransition", "ruleStart", "rule", "followState", "createATN", "rules", "atn", "createRuleStartAndStopATNStates", "ruleLength", "i", "ruleBlock", "block", "buildRuleHandle", "start", "newState", "ATN_RULE_START", "stop", "atom", "production", "Terminal", "tokenRef", "NonTerminal", "ruleRef", "Alternation", "alternation", "Option", "option", "Repetition", "repetition", "RepetitionWithSeparator", "repetitionSep", "RepetitionMandatory", "repetitionMandatory", "RepetitionMandatoryWithSeparator", "repetitionMandatorySep", "starState", "ATN_STAR_BLOCK_START", "defineDecisionState", "handle", "makeAlts", "star", "sep", "plusState", "ATN_PLUS_BLOCK_START", "plus", "ATN_BASIC", "alts", "map_default", "e", "optional", "handles", "filter_default", "makeBlock", "blkStart", "blkEnd", "loop", "end", "buildATNKey", "epsilon", "entry", "loopEnd", "state", "alt", "getProdType", "altsLength", "transition", "isRuleTransition", "ruleTransition", "next", "removeState", "first", "last", "left", "right", "addTransition", "currentRule", "nonTerminal", "call", "a", "b", "partial", "t", "DFA_ERROR", "ATNConfigSet", "config", "key", "getATNConfigKey", "map_default", "value", "k", "alt", "e", "createDFACache", "startState", "decision", "map", "predicateSet", "key", "existing", "PredicateSet", "index", "value", "size", "i", "EMPTY_PREDICATES", "LLStarLookaheadStrategy", "LLkLookaheadStrategy", "options", "_a", "message", "createATN", "initATNSimulator", "prodOccurrence", "rule", "hasPredicates", "dynamicTokensEnabled", "dfas", "logging", "buildATNKey", "decisionIndex", "partialAlts", "map_default", "getLookaheadPaths", "currAlt", "path", "isLL1Sequence", "choiceToAlt", "reduce_default", "result", "idx", "forEach_default", "currTokType", "currExtendingType", "orAlts", "nextToken", "prediction", "gate", "predicates", "length", "adaptivePredict", "prodType", "alts", "e", "g", "alt", "singleTokensTypes", "flatten_default", "isEmpty_default", "expectedTokenUniqueKey", "sequences", "allowEmpty", "fullSet", "altSet", "tokType", "indices", "atn", "decisionLength", "decisionToDFA", "dfaCaches", "dfa", "start", "closure", "computeStartState", "addDFAState", "newDFAState", "performLookahead", "s0", "previousD", "t", "d", "getExistingTargetState", "computeLookaheadTarget", "DFA_ERROR", "buildAdaptivePredictError", "token", "lookahead", "reach", "computeReachSet", "addDFAEdge", "newState", "predictedAlt", "getUniqueAlt", "hasConflictTerminatingPrediction", "min_default", "reportLookaheadAmbiguity", "ambiguityIndices", "prefixPath", "atnState", "topLevelRule", "production", "buildAmbiguityError", "pathMsg", "currtok", "tokenLabel", "occurrence", "currMessage", "getProductionDslName", "prod", "NonTerminal", "Option", "Alternation", "RepetitionMandatory", "RepetitionMandatoryWithSeparator", "RepetitionWithSeparator", "Repetition", "Terminal", "previous", "current", "nextTransitions", "flatMap_default", "nextTokenTypes", "uniqBy_default", "AtomTransition", "state", "configs", "intermediate", "ATNConfigSet", "skippedStopStates", "c", "ATN_RULE_STOP", "transitionLength", "transition", "target", "getReachableTarget", "hasConfigInRuleStopState", "tokenMatcher", "from", "to", "mapKey", "numberOfTransitions", "config", "p", "atnStack", "followConfig", "getEpsilonTarget", "EpsilonTransition", "RuleTransition", "stack", "allConfigsInRuleStopStates", "altSets", "getConflictingAltSets", "hasConflictingAltSet", "hasStateAssociatedWithOneAlt", "configToAlts", "getATNConfigKey", "DocumentUri", "is", "value", "URI", "integer", "uinteger", "Position", "create", "line", "character", "candidate", "Is", "Range", "one", "two", "three", "four", "Location", "uri", "range", "LocationLink", "targetUri", "targetRange", "targetSelectionRange", "originSelectionRange", "Color", "red", "green", "blue", "alpha", "ColorInformation", "color", "ColorPresentation", "label", "textEdit", "additionalTextEdits", "TextEdit", "FoldingRangeKind", "FoldingRange", "startLine", "endLine", "startCharacter", "endCharacter", "kind", "collapsedText", "result", "DiagnosticRelatedInformation", "location", "message", "DiagnosticSeverity", "DiagnosticTag", "CodeDescription", "Diagnostic", "severity", "code", "source", "relatedInformation", "_a", "Command", "title", "command", "args", "replace", "newText", "insert", "position", "del", "ChangeAnnotation", "needsConfirmation", "description", "ChangeAnnotationIdentifier", "AnnotatedTextEdit", "annotation", "TextDocumentEdit", "textDocument", "edits", "OptionalVersionedTextDocumentIdentifier", "CreateFile", "options", "RenameFile", "oldUri", "newUri", "DeleteFile", "WorkspaceEdit", "change", "TextDocumentIdentifier", "create", "uri", "is", "value", "candidate", "Is", "VersionedTextDocumentIdentifier", "version", "OptionalVersionedTextDocumentIdentifier", "TextDocumentItem", "languageId", "text", "MarkupKind", "MarkupContent", "CompletionItemKind", "InsertTextFormat", "CompletionItemTag", "InsertReplaceEdit", "newText", "insert", "replace", "Range", "InsertTextMode", "CompletionItemLabelDetails", "CompletionItem", "label", "CompletionList", "items", "isIncomplete", "MarkedString", "fromPlainText", "plainText", "Hover", "ParameterInformation", "documentation", "SignatureInformation", "parameters", "result", "DocumentHighlightKind", "DocumentHighlight", "range", "kind", "SymbolKind", "SymbolTag", "SymbolInformation", "name", "containerName", "WorkspaceSymbol", "DocumentSymbol", "detail", "selectionRange", "children", "CodeActionKind", "CodeActionTriggerKind", "CodeActionContext", "diagnostics", "only", "triggerKind", "Diagnostic", "CodeAction", "title", "kindOrCommandOrEdit", "checkKind", "Command", "WorkspaceEdit", "CodeLens", "data", "FormattingOptions", "tabSize", "insertSpaces", "DocumentLink", "target", "SelectionRange", "parent", "SemanticTokenTypes", "SemanticTokenModifiers", "SemanticTokens", "InlineValueText", "InlineValueVariableLookup", "variableName", "caseSensitiveLookup", "InlineValueEvaluatableExpression", "expression", "InlineValueContext", "frameId", "stoppedLocation", "InlayHintKind", "InlayHintLabelPart", "Location", "InlayHint", "position", "Position", "TextEdit", "StringValue", "createSnippet", "InlineCompletionItem", "insertText", "filterText", "command", "InlineCompletionList", "InlineCompletionTriggerKind", "SelectedCompletionInfo", "InlineCompletionContext", "selectedCompletionInfo", "WorkspaceFolder", "URI", "TextDocument", "create", "uri", "languageId", "version", "content", "FullTextDocument", "is", "value", "candidate", "Is", "applyEdits", "document", "edits", "text", "sortedEdits", "mergeSort", "a", "b", "diff", "lastModifiedOffset", "i", "e", "startOffset", "endOffset", "data", "compare", "p", "left", "right", "leftIdx", "rightIdx", "range", "start", "end", "event", "lineOffsets", "isLineStart", "ch", "offset", "low", "high", "Position", "mid", "line", "position", "lineOffset", "nextLineOffset", "toString", "defined", "undefined", "boolean", "string", "number", "numberRange", "min", "max", "integer", "uinteger", "func", "objectLiteral", "typedArray", "check", "CstNodeBuilder", "input", "RootCstNodeImpl", "feature", "compositeNode", "CompositeCstNodeImpl", "token", "leafNode", "LeafCstNodeImpl", "tokenToRange", "node", "parent", "index", "item", "current", "hiddenTokens", "hiddenNode", "tokenStart", "tokenEnd", "i", "child", "childStart", "childEnd", "isCompositeCstNode", "AbstractCstNode", "_a", "_b", "value", "offset", "length", "range", "tokenType", "hidden", "CstNodeContainer", "firstNode", "lastNode", "firstRange", "lastRange", "Position", "_CstNodeContainer", "items", "start", "count", "DatatypeSymbol", "isDataTypeNode", "node", "ruleSuffix", "withRuleSuffix", "name", "AbstractLangiumParser", "services", "tokens", "ChevrotainWrapper", "idx", "choices", "callback", "LangiumParser", "CstNodeBuilder", "rule", "impl", "type", "isDataTypeRule", "getTypeName", "ruleMethod", "input", "lexerResult", "result", "$type", "implementation", "args", "tokenType", "feature", "token", "leafNode", "assignment", "isCrossRef", "current", "convertedValue", "isKeyword", "text", "cstNode", "subruleResult", "resultKind", "object", "newItem", "action", "last", "pop", "obj", "linkContentToContainer", "assignMandatoryProperties", "getContainerOfType", "isAssignment", "isCrossReference", "operator", "value", "item", "target", "source", "existingValue", "newValue", "AbstractParserErrorMessageProvider", "options", "defaultParserErrorProvider", "LangiumParserErrorMessageProvider", "expected", "actual", "firstRedundant", "LangiumCompletionParser", "size", "element", "index", "defaultConfig", "EmbeddedActionsParser", "config", "useDefaultLookahead", "LLkLookaheadStrategy", "LLStarLookaheadStrategy", "createParser", "grammar", "parser", "tokens", "buildRules", "parserContext", "reachable", "getAllReachableRules", "parserRules", "stream", "isParserRule", "rule", "ctx", "buildElement", "element", "ignoreGuard", "method", "isKeyword", "buildKeyword", "isAction", "buildAction", "isAssignment", "isCrossReference", "buildCrossReference", "isRuleCall", "buildRuleCall", "isAlternatives", "buildAlternatives", "isUnorderedGroup", "buildUnorderedGroup", "isGroup", "buildGroup", "isEndOfFile", "idx", "EOF", "ErrorWithLocation", "wrap", "getGuardCondition", "action", "actionType", "getTypeName", "ruleCall", "predicate", "buildRuleCallPredicate", "args", "getRule", "isTerminalRule", "getToken", "assertUnreachable", "namedArgs", "predicates", "e", "buildPredicate", "ruleArgs", "i", "ruleTarget", "condition", "isDisjunction", "left", "right", "isConjunction", "isNegation", "value", "isParameterReference", "name", "isBooleanLiteral", "alternatives", "methods", "predicatedMethod", "guard", "alt", "gate", "group", "orIdx", "idFunc", "groupIdx", "lParser", "stackId", "key", "groupState", "trackedAlternatives", "wrapped", "crossRef", "terminal", "terminalRule", "keyword", "assignment", "findNameAssignment", "assignTerminal", "token", "cardinality", "EMPTY_ALT", "getRuleName", "item", "parent", "ruleName", "createCompletionParser", "services", "grammar", "lexer", "parser", "LangiumCompletionParser", "createParser", "createLangiumParser", "services", "parser", "prepareLangiumParser", "grammar", "lexer", "LangiumParser", "createParser", "DefaultTokenBuilder", "grammar", "options", "reachableRules", "stream", "getAllReachableRules", "terminalTokens", "tokens", "terminalToken", "pattern", "isWhitespace", "rules", "isTerminalRule", "e", "terminal", "regex", "terminalRegex", "tokenType", "Lexer", "stickyRegex", "text", "offset", "isParserRule", "rule", "streamAllContents", "isKeyword", "a", "b", "keyword", "caseInsensitive", "getCaseInsensitivePattern", "longerAlts", "token", "partialMatches", "DefaultValueConverter", "input", "cstNode", "feature", "isCrossReference", "getCrossReferenceTerminal", "isRuleCall", "rule", "ValueConverter", "_a", "getRuleType", "convertString", "result", "i", "c", "c1", "convertEscapeCharacter", "char", "convertID", "convertInt", "convertBigint", "convertDate", "convertNumber", "convertBoolean", "cancellation_exports", "__reExport", "delayNextTick", "resolve", "lastTick", "globalInterruptionPeriod", "startCancelableOperation", "setInterruptionPeriod", "period", "OperationCancelled", "isOperationCancelled", "err", "interruptAndCheck", "token", "current", "Deferred", "reject", "arg", "FullTextDocument", "_FullTextDocument", "uri", "languageId", "version", "content", "range", "start", "end", "changes", "change", "getWellformedRange", "startOffset", "endOffset", "startLine", "endLine", "lineOffsets", "addedLineOffsets", "computeLineOffsets", "i", "len", "diff", "offset", "low", "high", "mid", "line", "position", "lineOffset", "nextLineOffset", "isEOL", "event", "candidate", "TextDocument", "create", "update", "document", "applyEdits", "edits", "text", "sortedEdits", "mergeSort", "getWellformedEdit", "a", "b", "lastModifiedOffset", "spans", "e", "data", "compare", "p", "left", "right", "leftIdx", "rightIdx", "isAtLineStart", "textOffset", "result", "ch", "char", "textEdit", "assertPath", "path", "TypeError", "JSON", "stringify", "normalizeStringPosix", "allowAboveRoot", "code", "res", "lastSegmentLength", "lastSlash", "dots", "i", "length", "charCodeAt", "lastSlashIndex", "lastIndexOf", "slice", "posix", "resolve", "cwd", "resolvedPath", "resolvedAbsolute", "arguments", "process", "normalize", "isAbsolute", "trailingSeparator", "join", "joined", "arg", "relative", "from", "to", "fromStart", "fromEnd", "fromLen", "toStart", "toLen", "lastCommonSep", "fromCode", "out", "_makeLong", "dirname", "hasRoot", "end", "matchedSlash", "basename", "ext", "start", "extIdx", "firstNonSlashEnd", "extname", "startDot", "startPart", "preDotState", "format", "pathObject", "sep", "dir", "root", "base", "name", "parse", "ret", "delimiter", "win32", "module", "exports", "__webpack_module_cache__", "__webpack_require__", "moduleId", "cachedModule", "__webpack_modules__", "d", "definition", "key", "o", "Object", "defineProperty", "enumerable", "get", "obj", "prop", "prototype", "hasOwnProperty", "call", "r", "Symbol", "toStringTag", "value", "isWindows", "f", "P", "platform", "navigator", "userAgent", "indexOf", "_schemePattern", "_singleSlashStart", "_doubleSlashStart", "_validateUri", "_strict", "scheme", "Error", "authority", "query", "fragment", "test", "_empty", "_slash", "_regexp", "URI", "thing", "fsPath", "with", "toString", "schemeOrData", "this", "uriToFsPath", "change", "Uri", "match", "exec", "percentDecode", "replace", "idx", "substring", "components", "result", "skipEncoding", "_asFormatted", "toJSON", "data", "_formatted", "external", "_fsPath", "_sep", "_pathSepMarker", "$mid", "encodeTable", "encodeURIComponentFast", "uriComponent", "isPath", "isAuthority", "nativeEncodePos", "pos", "encodeURIComponent", "charAt", "substr", "escaped", "encodeURIComponentMinimal", "uri", "keepDriveLetterCasing", "toLowerCase", "encoder", "userinfo", "String", "fromCharCode", "decodeURIComponentGraceful", "str", "decodeURIComponent", "_rEncodedAsHex", "A", "posixPath", "slash", "Utils", "t", "joinPath", "paths", "resolvePath", "slashAdded", "LIB", "UriUtils", "Utils", "equals", "a", "b", "relative", "from", "to", "fromPath", "toPath", "fromParts", "e", "toParts", "i", "backPart", "toPart", "DocumentState", "DefaultLangiumDocumentFactory", "services", "uri", "cancellationToken", "content", "textDocument", "URI", "text", "model", "parseResult", "cancelToken", "document", "textDocumentGetter", "oldText", "_a", "_b", "serviceRegistry", "textDoc", "TextDocument", "DefaultLangiumDocuments", "stream", "uriString", "langiumDoc", "DefaultLinker", "services", "document", "cancelToken", "node", "streamAst", "interruptAndCheck", "streamReferences", "ref", "refInfo", "description", "isLinkingError", "linkedNode", "err", "property", "refNode", "refText", "linker", "reference", "isAstNode", "isAstNodeDescription", "refData", "getDocument", "DocumentState", "_a", "nodeDescription", "doc", "targetDescription", "referenceType", "isNamed", "node", "DefaultNameProvider", "findNodeForProperty", "DefaultReferences", "services", "sourceCstNode", "assignment", "findAssignment", "nodeElem", "reference", "isReference", "ref", "nameNode", "isChildNode", "astNode", "targetNode", "options", "refs", "indexReferences", "UriUtils", "stream", "doc", "getDocument", "path", "toDocumentSegment", "MultiMap", "elements", "key", "value", "Reduction", "stream", "a", "values", "index", "_a", "callbackfn", "array", "BiMap", "DefaultScopeComputation", "services", "document", "cancelToken", "parentNode", "children", "streamContents", "exports", "node", "interruptAndCheck", "name", "rootNode", "scopes", "MultiMap", "streamAllContents", "container", "StreamScope", "elements", "outerScope", "options", "_a", "name", "local", "e", "MapScope", "element", "localName", "elementStream", "stream", "EMPTY_SCOPE", "EMPTY_STREAM", "DisposableCache", "disposable", "SimpleCache", "key", "value", "provider", "ContextCache", "converter", "contextKey", "contextCache", "mapKey", "documentCache", "DocumentCache", "sharedServices", "uri", "changed", "deleted", "allUris", "WorkspaceCache", "DefaultScopeProvider", "services", "WorkspaceCache", "context", "scopes", "referenceType", "precomputed", "getDocument", "currentNode", "allDescriptions", "stream", "desc", "result", "i", "elements", "outerScope", "options", "StreamScope", "s", "e", "name", "_context", "MapScope", "isAstNodeWithComment", "node", "isIntermediateReference", "obj", "DefaultJsonSerializer", "services", "options", "specificReplacer", "defaultReplacer", "key", "value", "replacer", "getDocument", "content", "root", "refText", "sourceText", "textRegions", "comments", "uriConverter", "isReference", "refValue", "$refText", "targetDocument", "targetUri", "targetPath", "_b", "_a", "isAstNode", "astNode", "_c", "_d", "comment", "createDocumentSegment", "cstNode", "textRegion", "assignments", "propertyAssignments", "findNodesForProperty", "container", "containerProperty", "containerIndex", "propertyName", "item", "index", "element", "mutable", "property", "reference", "error", "ref", "uri", "fragmentIndex", "documentUri", "URI", "document", "err", "DefaultServiceRegistry", "language", "ext", "uri", "UriUtils", "services", "diagnosticData", "code", "ValidationCategory", "ValidationRegistry", "services", "MultiMap", "checksRecord", "thisObj", "category", "type", "ch", "callbacks", "check", "entry", "node", "accept", "cancelToken", "err", "isOperationCancelled", "message", "subtype", "categories", "checks", "stream", "DefaultDocumentValidator", "services", "document", "options", "cancelToken", "parseResult", "diagnostics", "interruptAndCheck", "d", "_a", "DocumentValidator", "err", "isOperationCancelled", "_options", "lexerError", "diagnostic", "toDiagnosticSeverity", "diagnosticData", "parserError", "range", "token", "position", "tokenToRange", "reference", "linkingError", "info", "rootNode", "validationItems", "acceptor", "severity", "message", "streamAst", "node", "checks", "check", "getDiagnosticRange", "cstNode", "findNodeForProperty", "findNodeForKeyword", "DefaultAstNodeDescriptionProvider", "services", "node", "name", "document", "getDocument", "path", "nameNodeSegment", "nameSegmentGetter", "_a", "toDocumentSegment", "DefaultReferenceDescriptionProvider", "cancelToken", "descr", "rootNode", "astNode", "streamAst", "interruptAndCheck", "streamReferences", "refInfo", "isLinkingError", "description", "targetNodeDescr", "refCstNode", "docUri", "UriUtils", "DefaultAstNodeLocator", "node", "containerPath", "newSegment", "$containerProperty", "$containerIndex", "path", "previousValue", "currentValue", "propertyIndex", "property", "arrayIndex", "array", "DefaultConfigurationProvider", "services", "Deferred", "params", "_b", "_a", "languages", "lang", "configToUpdate", "configs", "conf", "idx", "change", "section", "configuration", "language", "sectionName", "languageId", "Disposable", "create", "callback", "DefaultDocumentBuilder", "services", "MultiMap", "DocumentState", "documents", "options", "cancelToken", "document", "key", "buildState", "previousCategories", "_a", "categories", "_b", "ValidationCategory", "c", "e", "changed", "deleted", "deletedUri", "changedUri", "newDocument", "allChangedUris", "stream", "uri", "doc", "interruptAndCheck", "rebuildDocuments", "listener", "changedUris", "ref", "callback", "Disposable", "index", "scopeComputation", "toBeValidated", "state", "targetState", "filtered", "uriOrToken", "OperationCancelled", "resolve", "reject", "buildDisposable", "cancelDisposable", "listeners", "validator", "validationSetting", "diagnostics", "newCategories", "DefaultIndexManager", "services", "ContextCache", "targetNode", "astNodePath", "targetDocUri", "getDocument", "result", "docRefs", "refDescr", "UriUtils", "stream", "nodeType", "uris", "documentUris", "uri", "_a", "e", "uriString", "document", "cancelToken", "exports", "indexData", "changedUris", "references", "ref", "DefaultWorkspaceManager", "services", "Deferred", "params", "_a", "_params", "token", "folders", "cancelToken", "documents", "interruptAndCheck", "fileExtensions", "e", "collector", "document", "wf", "entry", "_folders", "_collector", "workspaceFolder", "URI", "folderPath", "content", "_workspaceFolder", "name", "UriUtils", "extname", "DefaultLexer", "services", "tokens", "lexerTokens", "isTokenTypeDictionary", "Lexer", "text", "chevrotainResult", "_a", "buildTokens", "isIMultiModeLexerDefinition", "res", "token", "isTokenTypeArray", "tokenVocabulary", "parseJSDoc", "node", "start", "options", "opts", "position", "Position", "lines", "getLines", "normalizedOptions", "normalizeOptions", "tokens", "tokenize", "parseJSDocComment", "isJSDoc", "first", "last", "firstRegex", "lastRegex", "content", "NEWLINE_REGEXP", "tagRegex", "inlineTagRegex", "context", "currentLine", "currentCharacter", "i", "line", "index", "match", "_a", "_b", "_c", "lastCharacter", "skipWhitespace", "Range", "tagMatch", "fullMatch", "value", "end", "rest", "inlineTagMatches", "buildInlineTokens", "tags", "lineIndex", "characterIndex", "lastIndex", "matchIndex", "startContent", "offset", "tagName", "endContent", "nonWhitespaceRegex", "whitespaceEndRegex", "startPosition", "JSDocCommentImpl", "elements", "element", "parseJSDocElement", "_d", "next", "parseJSDocTag", "parseJSDocText", "appendEmptyLine", "token", "JSDocLineImpl", "firstToken", "lastToken", "parseJSDocInline", "JSDocTextImpl", "parseJSDocLine", "inline", "tagToken", "name", "nextToken", "docLine", "JSDocTagImpl", "textDoc", "range", "normalizeOption", "option", "escaped", "escapeRegExp", "e", "text", "fillNewlines", "rendered", "renderInlineTag", "marker", "tag", "display", "displayStart", "renderLinkDefault", "URI", "JSDocDocumentationProvider", "services", "node", "comment", "isJSDoc", "parseJSDoc", "link", "display", "tag", "name", "description", "_a", "line", "character", "uri", "_node", "_tag", "precomputed", "getDocument", "currentNode", "e", "DefaultCommentProvider", "services", "node", "isAstNodeWithComment", "_a", "findCommentNode", "event_exports", "__reExport", "DefaultAsyncParser", "services", "text", "AbstractThreadedAsyncParser", "worker", "deferred", "cancelToken", "Deferred", "timeout", "cancellation", "result", "hydrated", "err", "index", "OperationCancelled", "ParserWorker", "sendMessage", "onMessage", "onError", "terminate", "parseResult", "error", "DefaultWorkspaceLock", "action", "tokenSource", "queue", "cancellationToken", "deferred", "Deferred", "entry", "entries", "result", "err", "isOperationCancelled", "DefaultHydrator", "services", "BiMap", "result", "e", "node", "astNodes", "cstNodes", "astNode", "streamAst", "cstNode", "streamCst", "context", "obj", "name", "value", "arr", "item", "isAstNode", "isReference", "reference", "isRootCstNode", "isCompositeCstNode", "child", "isLeafCstNode", "root", "cst", "RootCstNodeImpl", "CompositeCstNodeImpl", "parent", "num", "cstNodeObj", "hydrated", "tokenType", "offset", "length", "startLine", "startColumn", "endLine", "endColumn", "hidden", "LeafCstNodeImpl", "id", "element", "isAbstractElement", "createDefaultCoreModule", "context", "services", "DefaultCommentProvider", "JSDocDocumentationProvider", "DefaultAsyncParser", "createGrammarConfig", "createLangiumParser", "createCompletionParser", "DefaultValueConverter", "DefaultTokenBuilder", "DefaultLexer", "LangiumParserErrorMessageProvider", "DefaultAstNodeLocator", "DefaultAstNodeDescriptionProvider", "DefaultReferenceDescriptionProvider", "DefaultLinker", "DefaultNameProvider", "DefaultScopeProvider", "DefaultScopeComputation", "DefaultReferences", "DefaultHydrator", "DefaultJsonSerializer", "DefaultDocumentValidator", "ValidationRegistry", "createDefaultSharedCoreModule", "DefaultServiceRegistry", "DefaultLangiumDocuments", "DefaultLangiumDocumentFactory", "DefaultDocumentBuilder", "DefaultIndexManager", "DefaultWorkspaceManager", "DefaultWorkspaceLock", "DefaultConfigurationProvider", "Module", "m1", "m2", "_merge", "inject", "module1", "module2", "module3", "module4", "module5", "module6", "module7", "module8", "module9", "module", "_inject", "isProxy", "eagerLoad", "item", "value", "injector", "proxy", "obj", "prop", "_resolve", "_", "__requested__", "error", "target", "source", "key", "value2", "value1", "utils_exports", "__export", "ast_utils_exports", "BiMap", "cancellation_exports", "ContextCache", "cst_utils_exports", "DONE_RESULT", "Deferred", "Disposable", "DisposableCache", "DocumentCache", "EMPTY_STREAM", "ErrorWithLocation", "grammar_utils_exports", "MultiMap", "OperationCancelled", "Reduction", "regexp_utils_exports", "SimpleCache", "StreamImpl", "TreeStreamImpl", "URI", "UriUtils", "WorkspaceCache", "assertUnreachable", "delayNextTick", "interruptAndCheck", "isOperationCancelled", "loadGrammarFromJson", "setInterruptionPeriod", "startCancelableOperation", "stream", "__reExport", "event_exports", "EmptyFileSystemProvider", "EmptyFileSystem", "minimalGrammarModule", "minimalSharedGrammarModule", "LangiumGrammarAstReflection", "createMinimalGrammarServices", "shared", "inject", "createDefaultSharedCoreModule", "EmptyFileSystem", "grammar", "createDefaultCoreModule", "loadGrammarFromJson", "json", "services", "astNode", "URI", "_a", "__reExport", "lib_exports", "utils_exports", "__defProp", "__name", "target", "value", "Statement", "Architecture", "isArchitecture", "item", "reflection", "Branch", "isBranch", "Checkout", "CherryPicking", "Commit", "isCommit", "Common", "isCommon", "GitGraph", "isGitGraph", "Info", "isInfo", "Merge", "isMerge", "Packet", "isPacket", "PacketBlock", "isPacketBlock", "Pie", "isPie", "PieSection", "isPieSection", "Direction", "MermaidAstReflection", "AbstractAstReflection", "subtype", "supertype", "refInfo", "referenceId", "type", "loadedInfoGrammar", "InfoGrammar", "loadGrammarFromJson", "loadedPacketGrammar", "PacketGrammar", "loadedPieGrammar", "PieGrammar", "loadedArchitectureGrammar", "ArchitectureGrammar", "loadedGitGraphGrammar", "GitGraphGrammar", "InfoLanguageMetaData", "PacketLanguageMetaData", "PieLanguageMetaData", "ArchitectureLanguageMetaData", "GitGraphLanguageMetaData", "MermaidGeneratedSharedModule", "InfoGeneratedModule", "PacketGeneratedModule", "PieGeneratedModule", "ArchitectureGeneratedModule", "GitGraphGeneratedModule", "accessibilityDescrRegex", "accessibilityTitleRegex", "titleRegex", "rulesRegexes", "AbstractMermaidValueConverter", "DefaultValueConverter", "rule", "input", "cstNode", "_cstNode", "regex", "match", "CommonValueConverter", "_rule", "_input", "AbstractMermaidTokenBuilder", "DefaultTokenBuilder", "keywords", "rules", "terminalTokens", "options", "tokenTypes", "tokenType", "CommonTokenBuilder"] +} diff --git a/docs/_site/public/chunk-C7DS3QYJ.min.js b/docs/_site/public/chunk-C7DS3QYJ.min.js new file mode 100644 index 0000000..d41c889 --- /dev/null +++ b/docs/_site/public/chunk-C7DS3QYJ.min.js @@ -0,0 +1,2 @@ +import{a as c}from"./chunk-CM5D5KZN.min.js";import{G as o,h as n}from"./chunk-U3SD26FK.min.js";import{d as x}from"./chunk-OSRY5VT3.min.js";var l=x(c(),1),d=n((a,t)=>{let r=a.append("rect");if(r.attr("x",t.x),r.attr("y",t.y),r.attr("fill",t.fill),r.attr("stroke",t.stroke),r.attr("width",t.width),r.attr("height",t.height),t.name&&r.attr("name",t.name),t.rx&&r.attr("rx",t.rx),t.ry&&r.attr("ry",t.ry),t.attrs!==void 0)for(let e in t.attrs)r.attr(e,t.attrs[e]);return t.class&&r.attr("class",t.class),r},"drawRect"),g=n((a,t)=>{let r={x:t.startx,y:t.starty,width:t.stopx-t.startx,height:t.stopy-t.starty,fill:t.fill,stroke:t.stroke,class:"rect"};d(a,r).lower()},"drawBackgroundRect"),h=n((a,t)=>{let r=t.text.replace(o," "),e=a.append("text");e.attr("x",t.x),e.attr("y",t.y),e.attr("class","legend"),e.style("text-anchor",t.anchor),t.class&&e.attr("class",t.class);let s=e.append("tspan");return s.attr("x",t.x+t.textMargin*2),s.text(r),e},"drawText"),y=n((a,t,r,e)=>{let s=a.append("image");s.attr("x",t),s.attr("y",r);let i=(0,l.sanitizeUrl)(e);s.attr("xlink:href",i)},"drawImage"),p=n((a,t,r,e)=>{let s=a.append("use");s.attr("x",t),s.attr("y",r);let i=(0,l.sanitizeUrl)(e);s.attr("xlink:href",`#${i}`)},"drawEmbeddedImage"),f=n(()=>({x:0,y:0,width:100,height:100,fill:"#EDF2AE",stroke:"#666",anchor:"start",rx:0,ry:0}),"getNoteRect"),w=n(()=>({x:0,y:0,width:100,height:100,"text-anchor":"start",style:"#666",textMargin:0,rx:0,ry:0,tspan:!0}),"getTextObj");export{d as a,g as b,h as c,y as d,p as e,f,w as g}; +//# sourceMappingURL=chunk-C7DS3QYJ.min.js.map diff --git a/docs/_site/public/chunk-C7DS3QYJ.min.js.map b/docs/_site/public/chunk-C7DS3QYJ.min.js.map new file mode 100644 index 0000000..61f02c5 --- /dev/null +++ b/docs/_site/public/chunk-C7DS3QYJ.min.js.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": ["../../node_modules/mermaid/dist/chunks/mermaid.core/chunk-ASOPGD6M.mjs"], + "sourcesContent": ["import {\n __name,\n lineBreakRegex\n} from \"./chunk-6DBFFHIP.mjs\";\n\n// src/diagrams/common/svgDrawCommon.ts\nimport { sanitizeUrl } from \"@braintree/sanitize-url\";\nvar drawRect = /* @__PURE__ */ __name((element, rectData) => {\n const rectElement = element.append(\"rect\");\n rectElement.attr(\"x\", rectData.x);\n rectElement.attr(\"y\", rectData.y);\n rectElement.attr(\"fill\", rectData.fill);\n rectElement.attr(\"stroke\", rectData.stroke);\n rectElement.attr(\"width\", rectData.width);\n rectElement.attr(\"height\", rectData.height);\n if (rectData.name) {\n rectElement.attr(\"name\", rectData.name);\n }\n if (rectData.rx) {\n rectElement.attr(\"rx\", rectData.rx);\n }\n if (rectData.ry) {\n rectElement.attr(\"ry\", rectData.ry);\n }\n if (rectData.attrs !== void 0) {\n for (const attrKey in rectData.attrs) {\n rectElement.attr(attrKey, rectData.attrs[attrKey]);\n }\n }\n if (rectData.class) {\n rectElement.attr(\"class\", rectData.class);\n }\n return rectElement;\n}, \"drawRect\");\nvar drawBackgroundRect = /* @__PURE__ */ __name((element, bounds) => {\n const rectData = {\n x: bounds.startx,\n y: bounds.starty,\n width: bounds.stopx - bounds.startx,\n height: bounds.stopy - bounds.starty,\n fill: bounds.fill,\n stroke: bounds.stroke,\n class: \"rect\"\n };\n const rectElement = drawRect(element, rectData);\n rectElement.lower();\n}, \"drawBackgroundRect\");\nvar drawText = /* @__PURE__ */ __name((element, textData) => {\n const nText = textData.text.replace(lineBreakRegex, \" \");\n const textElem = element.append(\"text\");\n textElem.attr(\"x\", textData.x);\n textElem.attr(\"y\", textData.y);\n textElem.attr(\"class\", \"legend\");\n textElem.style(\"text-anchor\", textData.anchor);\n if (textData.class) {\n textElem.attr(\"class\", textData.class);\n }\n const tspan = textElem.append(\"tspan\");\n tspan.attr(\"x\", textData.x + textData.textMargin * 2);\n tspan.text(nText);\n return textElem;\n}, \"drawText\");\nvar drawImage = /* @__PURE__ */ __name((elem, x, y, link) => {\n const imageElement = elem.append(\"image\");\n imageElement.attr(\"x\", x);\n imageElement.attr(\"y\", y);\n const sanitizedLink = sanitizeUrl(link);\n imageElement.attr(\"xlink:href\", sanitizedLink);\n}, \"drawImage\");\nvar drawEmbeddedImage = /* @__PURE__ */ __name((element, x, y, link) => {\n const imageElement = element.append(\"use\");\n imageElement.attr(\"x\", x);\n imageElement.attr(\"y\", y);\n const sanitizedLink = sanitizeUrl(link);\n imageElement.attr(\"xlink:href\", `#${sanitizedLink}`);\n}, \"drawEmbeddedImage\");\nvar getNoteRect = /* @__PURE__ */ __name(() => {\n const noteRectData = {\n x: 0,\n y: 0,\n width: 100,\n height: 100,\n fill: \"#EDF2AE\",\n stroke: \"#666\",\n anchor: \"start\",\n rx: 0,\n ry: 0\n };\n return noteRectData;\n}, \"getNoteRect\");\nvar getTextObj = /* @__PURE__ */ __name(() => {\n const testObject = {\n x: 0,\n y: 0,\n width: 100,\n height: 100,\n \"text-anchor\": \"start\",\n style: \"#666\",\n textMargin: 0,\n rx: 0,\n ry: 0,\n tspan: true\n };\n return testObject;\n}, \"getTextObj\");\n\nexport {\n drawRect,\n drawBackgroundRect,\n drawText,\n drawImage,\n drawEmbeddedImage,\n getNoteRect,\n getTextObj\n};\n"], + "mappings": "2IAMA,IAAAA,EAA4B,SACxBC,EAA2BC,EAAO,CAACC,EAASC,IAAa,CAC3D,IAAMC,EAAcF,EAAQ,OAAO,MAAM,EAgBzC,GAfAE,EAAY,KAAK,IAAKD,EAAS,CAAC,EAChCC,EAAY,KAAK,IAAKD,EAAS,CAAC,EAChCC,EAAY,KAAK,OAAQD,EAAS,IAAI,EACtCC,EAAY,KAAK,SAAUD,EAAS,MAAM,EAC1CC,EAAY,KAAK,QAASD,EAAS,KAAK,EACxCC,EAAY,KAAK,SAAUD,EAAS,MAAM,EACtCA,EAAS,MACXC,EAAY,KAAK,OAAQD,EAAS,IAAI,EAEpCA,EAAS,IACXC,EAAY,KAAK,KAAMD,EAAS,EAAE,EAEhCA,EAAS,IACXC,EAAY,KAAK,KAAMD,EAAS,EAAE,EAEhCA,EAAS,QAAU,OACrB,QAAWE,KAAWF,EAAS,MAC7BC,EAAY,KAAKC,EAASF,EAAS,MAAME,CAAO,CAAC,EAGrD,OAAIF,EAAS,OACXC,EAAY,KAAK,QAASD,EAAS,KAAK,EAEnCC,CACT,EAAG,UAAU,EACTE,EAAqCL,EAAO,CAACC,EAASK,IAAW,CACnE,IAAMJ,EAAW,CACf,EAAGI,EAAO,OACV,EAAGA,EAAO,OACV,MAAOA,EAAO,MAAQA,EAAO,OAC7B,OAAQA,EAAO,MAAQA,EAAO,OAC9B,KAAMA,EAAO,KACb,OAAQA,EAAO,OACf,MAAO,MACT,EACoBP,EAASE,EAASC,CAAQ,EAClC,MAAM,CACpB,EAAG,oBAAoB,EACnBK,EAA2BP,EAAO,CAACC,EAASO,IAAa,CAC3D,IAAMC,EAAQD,EAAS,KAAK,QAAQE,EAAgB,GAAG,EACjDC,EAAWV,EAAQ,OAAO,MAAM,EACtCU,EAAS,KAAK,IAAKH,EAAS,CAAC,EAC7BG,EAAS,KAAK,IAAKH,EAAS,CAAC,EAC7BG,EAAS,KAAK,QAAS,QAAQ,EAC/BA,EAAS,MAAM,cAAeH,EAAS,MAAM,EACzCA,EAAS,OACXG,EAAS,KAAK,QAASH,EAAS,KAAK,EAEvC,IAAMI,EAAQD,EAAS,OAAO,OAAO,EACrC,OAAAC,EAAM,KAAK,IAAKJ,EAAS,EAAIA,EAAS,WAAa,CAAC,EACpDI,EAAM,KAAKH,CAAK,EACTE,CACT,EAAG,UAAU,EACTE,EAA4Bb,EAAO,CAACc,EAAMC,EAAGC,EAAGC,IAAS,CAC3D,IAAMC,EAAeJ,EAAK,OAAO,OAAO,EACxCI,EAAa,KAAK,IAAKH,CAAC,EACxBG,EAAa,KAAK,IAAKF,CAAC,EACxB,IAAMG,KAAgB,eAAYF,CAAI,EACtCC,EAAa,KAAK,aAAcC,CAAa,CAC/C,EAAG,WAAW,EACVC,EAAoCpB,EAAO,CAACC,EAASc,EAAGC,EAAGC,IAAS,CACtE,IAAMC,EAAejB,EAAQ,OAAO,KAAK,EACzCiB,EAAa,KAAK,IAAKH,CAAC,EACxBG,EAAa,KAAK,IAAKF,CAAC,EACxB,IAAMG,KAAgB,eAAYF,CAAI,EACtCC,EAAa,KAAK,aAAc,IAAIC,CAAa,EAAE,CACrD,EAAG,mBAAmB,EAClBE,EAA8BrB,EAAO,KAClB,CACnB,EAAG,EACH,EAAG,EACH,MAAO,IACP,OAAQ,IACR,KAAM,UACN,OAAQ,OACR,OAAQ,QACR,GAAI,EACJ,GAAI,CACN,GAEC,aAAa,EACZsB,EAA6BtB,EAAO,KACnB,CACjB,EAAG,EACH,EAAG,EACH,MAAO,IACP,OAAQ,IACR,cAAe,QACf,MAAO,OACP,WAAY,EACZ,GAAI,EACJ,GAAI,EACJ,MAAO,EACT,GAEC,YAAY", + "names": ["import_sanitize_url", "drawRect", "__name", "element", "rectData", "rectElement", "attrKey", "drawBackgroundRect", "bounds", "drawText", "textData", "nText", "lineBreakRegex", "textElem", "tspan", "drawImage", "elem", "x", "y", "link", "imageElement", "sanitizedLink", "drawEmbeddedImage", "getNoteRect", "getTextObj"] +} diff --git a/docs/_site/public/chunk-CLIYZZ5Y.min.js b/docs/_site/public/chunk-CLIYZZ5Y.min.js new file mode 100644 index 0000000..f750c30 --- /dev/null +++ b/docs/_site/public/chunk-CLIYZZ5Y.min.js @@ -0,0 +1,2 @@ +import{h as x}from"./chunk-U3SD26FK.min.js";var c={aggregation:18,extension:18,composition:18,dependency:6,lollipop:13.5,arrow_point:4};function d(n,r){if(n===void 0||r===void 0)return{angle:0,deltaX:0,deltaY:0};n=t(n),r=t(r);let[s,e]=[n.x,n.y],[a,i]=[r.x,r.y],o=a-s,y=i-e;return{angle:Math.atan(y/o),deltaX:o,deltaY:y}}x(d,"calculateDeltaAndAngle");var t=x(n=>Array.isArray(n)?{x:n[0],y:n[1]}:n,"pointTransformer"),T=x(n=>({x:x(function(r,s,e){let a=0,i=t(e[0]).x=0?1:-1)}else if(s===e.length-1&&Object.hasOwn(c,n.arrowTypeEnd)){let{angle:l,deltaX:g}=d(e[e.length-1],e[e.length-2]);a=c[n.arrowTypeEnd]*Math.cos(l)*(g>=0?1:-1)}let o=Math.abs(t(r).x-t(e[e.length-1]).x),y=Math.abs(t(r).y-t(e[e.length-1]).y),f=Math.abs(t(r).x-t(e[0]).x),w=Math.abs(t(r).y-t(e[0]).y),h=c[n.arrowTypeStart],u=c[n.arrowTypeEnd],p=1;if(o0&&y0&&w=0?1:-1)}else if(s===e.length-1&&Object.hasOwn(c,n.arrowTypeEnd)){let{angle:l,deltaY:g}=d(e[e.length-1],e[e.length-2]);a=c[n.arrowTypeEnd]*Math.abs(Math.sin(l))*(g>=0?1:-1)}let o=Math.abs(t(r).y-t(e[e.length-1]).y),y=Math.abs(t(r).x-t(e[e.length-1]).x),f=Math.abs(t(r).y-t(e[0]).y),w=Math.abs(t(r).x-t(e[0]).x),h=c[n.arrowTypeStart],u=c[n.arrowTypeEnd],p=1;if(o0&&y0&&w {\n if (Array.isArray(data)) {\n return { x: data[0], y: data[1] };\n }\n return data;\n}, \"pointTransformer\");\nvar getLineFunctionsWithOffset = /* @__PURE__ */ __name((edge) => {\n return {\n x: /* @__PURE__ */ __name(function(d, i, data) {\n let offset = 0;\n const DIRECTION = pointTransformer(data[0]).x < pointTransformer(data[data.length - 1]).x ? \"left\" : \"right\";\n if (i === 0 && Object.hasOwn(markerOffsets, edge.arrowTypeStart)) {\n const { angle, deltaX } = calculateDeltaAndAngle(data[0], data[1]);\n offset = markerOffsets[edge.arrowTypeStart] * Math.cos(angle) * (deltaX >= 0 ? 1 : -1);\n } else if (i === data.length - 1 && Object.hasOwn(markerOffsets, edge.arrowTypeEnd)) {\n const { angle, deltaX } = calculateDeltaAndAngle(\n data[data.length - 1],\n data[data.length - 2]\n );\n offset = markerOffsets[edge.arrowTypeEnd] * Math.cos(angle) * (deltaX >= 0 ? 1 : -1);\n }\n const differenceToEnd = Math.abs(\n pointTransformer(d).x - pointTransformer(data[data.length - 1]).x\n );\n const differenceInYEnd = Math.abs(\n pointTransformer(d).y - pointTransformer(data[data.length - 1]).y\n );\n const differenceToStart = Math.abs(pointTransformer(d).x - pointTransformer(data[0]).x);\n const differenceInYStart = Math.abs(pointTransformer(d).y - pointTransformer(data[0]).y);\n const startMarkerHeight = markerOffsets[edge.arrowTypeStart];\n const endMarkerHeight = markerOffsets[edge.arrowTypeEnd];\n const extraRoom = 1;\n if (differenceToEnd < endMarkerHeight && differenceToEnd > 0 && differenceInYEnd < endMarkerHeight) {\n let adjustment = endMarkerHeight + extraRoom - differenceToEnd;\n adjustment *= DIRECTION === \"right\" ? -1 : 1;\n offset -= adjustment;\n }\n if (differenceToStart < startMarkerHeight && differenceToStart > 0 && differenceInYStart < startMarkerHeight) {\n let adjustment = startMarkerHeight + extraRoom - differenceToStart;\n adjustment *= DIRECTION === \"right\" ? -1 : 1;\n offset += adjustment;\n }\n return pointTransformer(d).x + offset;\n }, \"x\"),\n y: /* @__PURE__ */ __name(function(d, i, data) {\n let offset = 0;\n const DIRECTION = pointTransformer(data[0]).y < pointTransformer(data[data.length - 1]).y ? \"down\" : \"up\";\n if (i === 0 && Object.hasOwn(markerOffsets, edge.arrowTypeStart)) {\n const { angle, deltaY } = calculateDeltaAndAngle(data[0], data[1]);\n offset = markerOffsets[edge.arrowTypeStart] * Math.abs(Math.sin(angle)) * (deltaY >= 0 ? 1 : -1);\n } else if (i === data.length - 1 && Object.hasOwn(markerOffsets, edge.arrowTypeEnd)) {\n const { angle, deltaY } = calculateDeltaAndAngle(\n data[data.length - 1],\n data[data.length - 2]\n );\n offset = markerOffsets[edge.arrowTypeEnd] * Math.abs(Math.sin(angle)) * (deltaY >= 0 ? 1 : -1);\n }\n const differenceToEnd = Math.abs(\n pointTransformer(d).y - pointTransformer(data[data.length - 1]).y\n );\n const differenceInXEnd = Math.abs(\n pointTransformer(d).x - pointTransformer(data[data.length - 1]).x\n );\n const differenceToStart = Math.abs(pointTransformer(d).y - pointTransformer(data[0]).y);\n const differenceInXStart = Math.abs(pointTransformer(d).x - pointTransformer(data[0]).x);\n const startMarkerHeight = markerOffsets[edge.arrowTypeStart];\n const endMarkerHeight = markerOffsets[edge.arrowTypeEnd];\n const extraRoom = 1;\n if (differenceToEnd < endMarkerHeight && differenceToEnd > 0 && differenceInXEnd < endMarkerHeight) {\n let adjustment = endMarkerHeight + extraRoom - differenceToEnd;\n adjustment *= DIRECTION === \"up\" ? -1 : 1;\n offset -= adjustment;\n }\n if (differenceToStart < startMarkerHeight && differenceToStart > 0 && differenceInXStart < startMarkerHeight) {\n let adjustment = startMarkerHeight + extraRoom - differenceToStart;\n adjustment *= DIRECTION === \"up\" ? -1 : 1;\n offset += adjustment;\n }\n return pointTransformer(d).y + offset;\n }, \"y\")\n };\n}, \"getLineFunctionsWithOffset\");\nif (void 0) {\n const { it, expect, describe } = void 0;\n describe(\"calculateDeltaAndAngle\", () => {\n it(\"should calculate the angle and deltas between two points\", () => {\n expect(calculateDeltaAndAngle([0, 0], [0, 1])).toStrictEqual({\n angle: 1.5707963267948966,\n deltaX: 0,\n deltaY: 1\n });\n expect(calculateDeltaAndAngle([1, 0], [0, -1])).toStrictEqual({\n angle: 0.7853981633974483,\n deltaX: -1,\n deltaY: -1\n });\n expect(calculateDeltaAndAngle({ x: 1, y: 0 }, [0, -1])).toStrictEqual({\n angle: 0.7853981633974483,\n deltaX: -1,\n deltaY: -1\n });\n expect(calculateDeltaAndAngle({ x: 1, y: 0 }, { x: 1, y: 0 })).toStrictEqual({\n angle: NaN,\n deltaX: 0,\n deltaY: 0\n });\n });\n it(\"should calculate the angle and deltas if one point in undefined\", () => {\n expect(calculateDeltaAndAngle(void 0, [0, 1])).toStrictEqual({\n angle: 0,\n deltaX: 0,\n deltaY: 0\n });\n expect(calculateDeltaAndAngle([0, 1], void 0)).toStrictEqual({\n angle: 0,\n deltaX: 0,\n deltaY: 0\n });\n });\n });\n}\n\nexport {\n getLineFunctionsWithOffset\n};\n"], + "mappings": "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", + "names": ["markerOffsets", "calculateDeltaAndAngle", "point1", "point2", "pointTransformer", "x1", "y1", "x2", "y2", "deltaX", "deltaY", "__name", "data", "getLineFunctionsWithOffset", "edge", "d", "i", "offset", "DIRECTION", "angle", "differenceToEnd", "differenceInYEnd", "differenceToStart", "differenceInYStart", "startMarkerHeight", "endMarkerHeight", "extraRoom", "adjustment", "differenceInXEnd", "differenceInXStart"] +} diff --git a/docs/_site/public/chunk-CM5D5KZN.min.js b/docs/_site/public/chunk-CM5D5KZN.min.js new file mode 100644 index 0000000..76e50e8 --- /dev/null +++ b/docs/_site/public/chunk-CM5D5KZN.min.js @@ -0,0 +1,2 @@ +import{a as m}from"./chunk-OSRY5VT3.min.js";var R=m(e=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0});e.BLANK_URL=e.relativeFirstCharacters=e.whitespaceEscapeCharsRegex=e.urlSchemeRegex=e.ctrlCharactersRegex=e.htmlCtrlEntityRegex=e.htmlEntitiesRegex=e.invalidProtocolRegex=void 0;e.invalidProtocolRegex=/^([^\w]*)(javascript|data|vbscript)/im;e.htmlEntitiesRegex=/&#(\w+)(^\w|;)?/g;e.htmlCtrlEntityRegex=/&(newline|tab);/gi;e.ctrlCharactersRegex=/[\u0000-\u001F\u007F-\u009F\u2000-\u200D\uFEFF]/gim;e.urlSchemeRegex=/^.+(:|:)/gim;e.whitespaceEscapeCharsRegex=/(\\|%5[cC])((%(6[eE]|72|74))|[nrt])/g;e.relativeFirstCharacters=[".","/"];e.BLANK_URL="about:blank"});var p=m(s=>{"use strict";Object.defineProperty(s,"__esModule",{value:!0});s.sanitizeUrl=void 0;var t=R();function d(r){return t.relativeFirstCharacters.indexOf(r[0])>-1}function v(r){var c=r.replace(t.ctrlCharactersRegex,"");return c.replace(t.htmlEntitiesRegex,function(a,i){return String.fromCharCode(i)})}function x(r){return URL.canParse(r)}function g(r){try{return decodeURIComponent(r)}catch{return r}}function C(r){if(!r)return t.BLANK_URL;var c,a=g(r.trim());do a=v(a).replace(t.htmlCtrlEntityRegex,"").replace(t.ctrlCharactersRegex,"").replace(t.whitespaceEscapeCharsRegex,"").trim(),a=g(a),c=a.match(t.ctrlCharactersRegex)||a.match(t.htmlEntitiesRegex)||a.match(t.htmlCtrlEntityRegex)||a.match(t.whitespaceEscapeCharsRegex);while(c&&c.length>0);var i=a;if(!i)return t.BLANK_URL;if(d(i))return i;var h=i.trimStart(),u=h.match(t.urlSchemeRegex);if(!u)return i;var n=u[0].toLowerCase().trim();if(t.invalidProtocolRegex.test(n))return t.BLANK_URL;var o=h.replace(/\\/g,"/");if(n==="mailto:"||n.includes("://"))return o;if(n==="http:"||n==="https:"){if(!x(o))return t.BLANK_URL;var l=new URL(o);return l.protocol=l.protocol.toLowerCase(),l.hostname=l.hostname.toLowerCase(),l.toString()}return o}s.sanitizeUrl=C});export{p as a}; +//# sourceMappingURL=chunk-CM5D5KZN.min.js.map diff --git a/docs/_site/public/chunk-CM5D5KZN.min.js.map b/docs/_site/public/chunk-CM5D5KZN.min.js.map new file mode 100644 index 0000000..508e75f --- /dev/null +++ b/docs/_site/public/chunk-CM5D5KZN.min.js.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": ["../../node_modules/@braintree/sanitize-url/dist/constants.js", "../../node_modules/@braintree/sanitize-url/dist/index.js"], + "sourcesContent": ["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BLANK_URL = exports.relativeFirstCharacters = exports.whitespaceEscapeCharsRegex = exports.urlSchemeRegex = exports.ctrlCharactersRegex = exports.htmlCtrlEntityRegex = exports.htmlEntitiesRegex = exports.invalidProtocolRegex = void 0;\nexports.invalidProtocolRegex = /^([^\\w]*)(javascript|data|vbscript)/im;\nexports.htmlEntitiesRegex = /&#(\\w+)(^\\w|;)?/g;\nexports.htmlCtrlEntityRegex = /&(newline|tab);/gi;\nexports.ctrlCharactersRegex = /[\\u0000-\\u001F\\u007F-\\u009F\\u2000-\\u200D\\uFEFF]/gim;\nexports.urlSchemeRegex = /^.+(:|:)/gim;\nexports.whitespaceEscapeCharsRegex = /(\\\\|%5[cC])((%(6[eE]|72|74))|[nrt])/g;\nexports.relativeFirstCharacters = [\".\", \"/\"];\nexports.BLANK_URL = \"about:blank\";\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sanitizeUrl = void 0;\nvar constants_1 = require(\"./constants\");\nfunction isRelativeUrlWithoutProtocol(url) {\n return constants_1.relativeFirstCharacters.indexOf(url[0]) > -1;\n}\nfunction decodeHtmlCharacters(str) {\n var removedNullByte = str.replace(constants_1.ctrlCharactersRegex, \"\");\n return removedNullByte.replace(constants_1.htmlEntitiesRegex, function (match, dec) {\n return String.fromCharCode(dec);\n });\n}\nfunction isValidUrl(url) {\n return URL.canParse(url);\n}\nfunction decodeURI(uri) {\n try {\n return decodeURIComponent(uri);\n }\n catch (e) {\n // Ignoring error\n // It is possible that the URI contains a `%` not associated\n // with URI/URL-encoding.\n return uri;\n }\n}\nfunction sanitizeUrl(url) {\n if (!url) {\n return constants_1.BLANK_URL;\n }\n var charsToDecode;\n var decodedUrl = decodeURI(url.trim());\n do {\n decodedUrl = decodeHtmlCharacters(decodedUrl)\n .replace(constants_1.htmlCtrlEntityRegex, \"\")\n .replace(constants_1.ctrlCharactersRegex, \"\")\n .replace(constants_1.whitespaceEscapeCharsRegex, \"\")\n .trim();\n decodedUrl = decodeURI(decodedUrl);\n charsToDecode =\n decodedUrl.match(constants_1.ctrlCharactersRegex) ||\n decodedUrl.match(constants_1.htmlEntitiesRegex) ||\n decodedUrl.match(constants_1.htmlCtrlEntityRegex) ||\n decodedUrl.match(constants_1.whitespaceEscapeCharsRegex);\n } while (charsToDecode && charsToDecode.length > 0);\n var sanitizedUrl = decodedUrl;\n if (!sanitizedUrl) {\n return constants_1.BLANK_URL;\n }\n if (isRelativeUrlWithoutProtocol(sanitizedUrl)) {\n return sanitizedUrl;\n }\n // Remove any leading whitespace before checking the URL scheme\n var trimmedUrl = sanitizedUrl.trimStart();\n var urlSchemeParseResults = trimmedUrl.match(constants_1.urlSchemeRegex);\n if (!urlSchemeParseResults) {\n return sanitizedUrl;\n }\n var urlScheme = urlSchemeParseResults[0].toLowerCase().trim();\n if (constants_1.invalidProtocolRegex.test(urlScheme)) {\n return constants_1.BLANK_URL;\n }\n var backSanitized = trimmedUrl.replace(/\\\\/g, \"/\");\n // Handle special cases for mailto: and custom deep-link protocols\n if (urlScheme === \"mailto:\" || urlScheme.includes(\"://\")) {\n return backSanitized;\n }\n // For http and https URLs, perform additional validation\n if (urlScheme === \"http:\" || urlScheme === \"https:\") {\n if (!isValidUrl(backSanitized)) {\n return constants_1.BLANK_URL;\n }\n var url_1 = new URL(backSanitized);\n url_1.protocol = url_1.protocol.toLowerCase();\n url_1.hostname = url_1.hostname.toLowerCase();\n return url_1.toString();\n }\n return backSanitized;\n}\nexports.sanitizeUrl = sanitizeUrl;\n"], + "mappings": "4CAAA,IAAAA,EAAAC,EAAAC,GAAA,cACA,OAAO,eAAeA,EAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EAC5DA,EAAQ,UAAYA,EAAQ,wBAA0BA,EAAQ,2BAA6BA,EAAQ,eAAiBA,EAAQ,oBAAsBA,EAAQ,oBAAsBA,EAAQ,kBAAoBA,EAAQ,qBAAuB,OAC3OA,EAAQ,qBAAuB,wCAC/BA,EAAQ,kBAAoB,mBAC5BA,EAAQ,oBAAsB,oBAC9BA,EAAQ,oBAAsB,qDAC9BA,EAAQ,eAAiB,oBACzBA,EAAQ,2BAA6B,uCACrCA,EAAQ,wBAA0B,CAAC,IAAK,GAAG,EAC3CA,EAAQ,UAAY,gBCVpB,IAAAC,EAAAC,EAAAC,GAAA,cACA,OAAO,eAAeA,EAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EAC5DA,EAAQ,YAAc,OACtB,IAAIC,EAAc,IAClB,SAASC,EAA6BC,EAAK,CACvC,OAAOF,EAAY,wBAAwB,QAAQE,EAAI,CAAC,CAAC,EAAI,EACjE,CACA,SAASC,EAAqBC,EAAK,CAC/B,IAAIC,EAAkBD,EAAI,QAAQJ,EAAY,oBAAqB,EAAE,EACrE,OAAOK,EAAgB,QAAQL,EAAY,kBAAmB,SAAUM,EAAOC,EAAK,CAChF,OAAO,OAAO,aAAaA,CAAG,CAClC,CAAC,CACL,CACA,SAASC,EAAWN,EAAK,CACrB,OAAO,IAAI,SAASA,CAAG,CAC3B,CACA,SAASO,EAAUC,EAAK,CACpB,GAAI,CACA,OAAO,mBAAmBA,CAAG,CACjC,MACU,CAIN,OAAOA,CACX,CACJ,CACA,SAASC,EAAYT,EAAK,CACtB,GAAI,CAACA,EACD,OAAOF,EAAY,UAEvB,IAAIY,EACAC,EAAaJ,EAAUP,EAAI,KAAK,CAAC,EACrC,GACIW,EAAaV,EAAqBU,CAAU,EACvC,QAAQb,EAAY,oBAAqB,EAAE,EAC3C,QAAQA,EAAY,oBAAqB,EAAE,EAC3C,QAAQA,EAAY,2BAA4B,EAAE,EAClD,KAAK,EACVa,EAAaJ,EAAUI,CAAU,EACjCD,EACIC,EAAW,MAAMb,EAAY,mBAAmB,GAC5Ca,EAAW,MAAMb,EAAY,iBAAiB,GAC9Ca,EAAW,MAAMb,EAAY,mBAAmB,GAChDa,EAAW,MAAMb,EAAY,0BAA0B,QAC1DY,GAAiBA,EAAc,OAAS,GACjD,IAAIE,EAAeD,EACnB,GAAI,CAACC,EACD,OAAOd,EAAY,UAEvB,GAAIC,EAA6Ba,CAAY,EACzC,OAAOA,EAGX,IAAIC,EAAaD,EAAa,UAAU,EACpCE,EAAwBD,EAAW,MAAMf,EAAY,cAAc,EACvE,GAAI,CAACgB,EACD,OAAOF,EAEX,IAAIG,EAAYD,EAAsB,CAAC,EAAE,YAAY,EAAE,KAAK,EAC5D,GAAIhB,EAAY,qBAAqB,KAAKiB,CAAS,EAC/C,OAAOjB,EAAY,UAEvB,IAAIkB,EAAgBH,EAAW,QAAQ,MAAO,GAAG,EAEjD,GAAIE,IAAc,WAAaA,EAAU,SAAS,KAAK,EACnD,OAAOC,EAGX,GAAID,IAAc,SAAWA,IAAc,SAAU,CACjD,GAAI,CAACT,EAAWU,CAAa,EACzB,OAAOlB,EAAY,UAEvB,IAAImB,EAAQ,IAAI,IAAID,CAAa,EACjC,OAAAC,EAAM,SAAWA,EAAM,SAAS,YAAY,EAC5CA,EAAM,SAAWA,EAAM,SAAS,YAAY,EACrCA,EAAM,SAAS,CAC1B,CACA,OAAOD,CACX,CACAnB,EAAQ,YAAcY", + "names": ["require_constants", "__commonJSMin", "exports", "require_dist", "__commonJSMin", "exports", "constants_1", "isRelativeUrlWithoutProtocol", "url", "decodeHtmlCharacters", "str", "removedNullByte", "match", "dec", "isValidUrl", "decodeURI", "uri", "sanitizeUrl", "charsToDecode", "decodedUrl", "sanitizedUrl", "trimmedUrl", "urlSchemeParseResults", "urlScheme", "backSanitized", "url_1"] +} diff --git a/docs/_site/public/chunk-CXRPJJJE.min.js b/docs/_site/public/chunk-CXRPJJJE.min.js new file mode 100644 index 0000000..e4866a0 --- /dev/null +++ b/docs/_site/public/chunk-CXRPJJJE.min.js @@ -0,0 +1,2 @@ +var Pr=typeof global=="object"&&global&&global.Object===Object&&global,U=Pr;var Sr=typeof self=="object"&&self&&self.Object===Object&&self,Ir=U||Sr||Function("return this")(),c=Ir;var Mr=c.Symbol,_=Mr;var nt=Object.prototype,Er=nt.hasOwnProperty,Fr=nt.toString,E=_?_.toStringTag:void 0;function Lr(t){var r=Er.call(t,E),e=t[E];try{t[E]=void 0;var o=!0}catch{}var a=Fr.call(t);return o&&(r?t[E]=e:delete t[E]),a}var it=Lr;var Dr=Object.prototype,Gr=Dr.toString;function Nr(t){return Gr.call(t)}var ft=Nr;var zr="[object Null]",Ur="[object Undefined]",pt=_?_.toStringTag:void 0;function Rr(t){return t==null?t===void 0?Ur:zr:pt&&pt in Object(t)?it(t):ft(t)}var g=Rr;function Hr(t){var r=typeof t;return t!=null&&(r=="object"||r=="function")}var s=Hr;var Br="[object AsyncFunction]",Vr="[object Function]",Kr="[object GeneratorFunction]",qr="[object Proxy]";function $r(t){if(!s(t))return!1;var r=g(t);return r==Vr||r==Kr||r==Br||r==qr}var O=$r;var Xr=c["__core-js_shared__"],R=Xr;var ut=function(){var t=/[^.]+$/.exec(R&&R.keys&&R.keys.IE_PROTO||"");return t?"Symbol(src)_1."+t:""}();function Jr(t){return!!ut&&ut in t}var st=Jr;var Wr=Function.prototype,Yr=Wr.toString;function Zr(t){if(t!=null){try{return Yr.call(t)}catch{}try{return t+""}catch{}}return""}var mt=Zr;var Qr=/[\\^$.*+?()[\]{}|]/g,kr=/^\[object .+?Constructor\]$/,te=Function.prototype,re=Object.prototype,ee=te.toString,oe=re.hasOwnProperty,ae=RegExp("^"+ee.call(oe).replace(Qr,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function ne(t){if(!s(t)||st(t))return!1;var r=O(t)?ae:kr;return r.test(mt(t))}var lt=ne;function ie(t,r){return t?.[r]}var ct=ie;function fe(t,r){var e=ct(t,r);return lt(e)?e:void 0}var T=fe;var pe=T(Object,"create"),h=pe;function ue(){this.__data__=h?h(null):{},this.size=0}var dt=ue;function se(t){var r=this.has(t)&&delete this.__data__[t];return this.size-=r?1:0,r}var ht=se;var me="__lodash_hash_undefined__",le=Object.prototype,ce=le.hasOwnProperty;function de(t){var r=this.__data__;if(h){var e=r[t];return e===me?void 0:e}return ce.call(r,t)?r[t]:void 0}var gt=de;var he=Object.prototype,ge=he.hasOwnProperty;function ye(t){var r=this.__data__;return h?r[t]!==void 0:ge.call(r,t)}var yt=ye;var be="__lodash_hash_undefined__";function xe(t,r){var e=this.__data__;return this.size+=this.has(t)?0:1,e[t]=h&&r===void 0?be:r,this}var bt=xe;function j(t){var r=-1,e=t==null?0:t.length;for(this.clear();++r-1}var Ot=we;function Pe(t,r){var e=this.__data__,o=b(e,t);return o<0?(++this.size,e.push([t,r])):e[o][1]=r,this}var Tt=Pe;function A(t){var r=-1,e=t==null?0:t.length;for(this.clear();++r-1&&t%1==0&&t<=Xe}var V=Je;function We(t){return t!=null&&V(t.length)&&!O(t)}var w=We;function Ye(){return!1}var Mt=Ye;var Lt=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Et=Lt&&typeof module=="object"&&module&&!module.nodeType&&module,Ze=Et&&Et.exports===Lt,Ft=Ze?c.Buffer:void 0,Qe=Ft?Ft.isBuffer:void 0,ke=Qe||Mt,K=ke;var to="[object Arguments]",ro="[object Array]",eo="[object Boolean]",oo="[object Date]",ao="[object Error]",no="[object Function]",io="[object Map]",fo="[object Number]",po="[object Object]",uo="[object RegExp]",so="[object Set]",mo="[object String]",lo="[object WeakMap]",co="[object ArrayBuffer]",ho="[object DataView]",go="[object Float32Array]",yo="[object Float64Array]",bo="[object Int8Array]",xo="[object Int16Array]",vo="[object Int32Array]",_o="[object Uint8Array]",Oo="[object Uint8ClampedArray]",To="[object Uint16Array]",jo="[object Uint32Array]",p={};p[go]=p[yo]=p[bo]=p[xo]=p[vo]=p[_o]=p[Oo]=p[To]=p[jo]=!0;p[to]=p[ro]=p[co]=p[eo]=p[ho]=p[oo]=p[ao]=p[no]=p[io]=p[fo]=p[po]=p[uo]=p[so]=p[mo]=p[lo]=!1;function Ao(t){return d(t)&&V(t.length)&&!!p[g(t)]}var Dt=Ao;function Co(t){return function(r){return t(r)}}var Gt=Co;var Nt=typeof exports=="object"&&exports&&!exports.nodeType&&exports,G=Nt&&typeof module=="object"&&module&&!module.nodeType&&module,wo=G&&G.exports===Nt,rt=wo&&U.process,Po=function(){try{var t=G&&G.require&&G.require("util").types;return t||rt&&rt.binding&&rt.binding("util")}catch{}}(),et=Po;var zt=et&&et.isTypedArray,So=zt?Gt(zt):Dt,q=So;function Io(t){return function(){return t}}var Ut=Io;function Mo(){this.__data__=new x,this.size=0}var Rt=Mo;function Eo(t){var r=this.__data__,e=r.delete(t);return this.size=r.size,e}var Ht=Eo;function Fo(t){return this.__data__.get(t)}var Bt=Fo;function Lo(t){return this.__data__.has(t)}var Vt=Lo;var Do=200;function Go(t,r){var e=this.__data__;if(e instanceof x){var o=e.__data__;if(!H||o.length-1&&t%1==0&&t0){if(++r>=Pa)return arguments[0]}else r=0;return t.apply(void 0,arguments)}}var Tr=Ma;var Ea=Tr(Or),jr=Ea;function Fa(t,r){return jr(_r(t,r,W),t+"")}var Ar=Fa;function La(t,r,e){if(!s(e))return!1;var o=typeof r;return(o=="number"?w(e)&&X(r,e.length):o=="string"&&r in e)?y(e[r],t):!1}var Cr=La;function Da(t){return Ar(function(r,e){var o=-1,a=e.length,i=a>1?e[a-1]:void 0,f=a>2?e[2]:void 0;for(i=t.length>3&&typeof i=="function"?(a--,i):void 0,f&&Cr(e[0],e[1],f)&&(i=a<3?void 0:i,a=1),r=Object(r);++o true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nexport default isObject;\n", "import baseGetTag from './_baseGetTag.js';\nimport isObject from './isObject.js';\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nexport default isFunction;\n", "import root from './_root.js';\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nexport default coreJsData;\n", "import coreJsData from './_coreJsData.js';\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nexport default isMasked;\n", "/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nexport default toSource;\n", "import isFunction from './isFunction.js';\nimport isMasked from './_isMasked.js';\nimport isObject from './isObject.js';\nimport toSource from './_toSource.js';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nexport default baseIsNative;\n", "/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nexport default getValue;\n", "import baseIsNative from './_baseIsNative.js';\nimport getValue from './_getValue.js';\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nexport default getNative;\n", "import getNative from './_getNative.js';\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nexport default nativeCreate;\n", "import nativeCreate from './_nativeCreate.js';\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nexport default hashClear;\n", "/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nexport default hashDelete;\n", "import nativeCreate from './_nativeCreate.js';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nexport default hashGet;\n", "import nativeCreate from './_nativeCreate.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nexport default hashHas;\n", "import nativeCreate from './_nativeCreate.js';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nexport default hashSet;\n", "import hashClear from './_hashClear.js';\nimport hashDelete from './_hashDelete.js';\nimport hashGet from './_hashGet.js';\nimport hashHas from './_hashHas.js';\nimport hashSet from './_hashSet.js';\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nexport default Hash;\n", "/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nexport default listCacheClear;\n", "/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nexport default eq;\n", "import eq from './eq.js';\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nexport default assocIndexOf;\n", "import assocIndexOf from './_assocIndexOf.js';\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nexport default listCacheDelete;\n", "import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nexport default listCacheGet;\n", "import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nexport default listCacheHas;\n", "import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nexport default listCacheSet;\n", "import listCacheClear from './_listCacheClear.js';\nimport listCacheDelete from './_listCacheDelete.js';\nimport listCacheGet from './_listCacheGet.js';\nimport listCacheHas from './_listCacheHas.js';\nimport listCacheSet from './_listCacheSet.js';\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nexport default ListCache;\n", "import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nexport default Map;\n", "import Hash from './_Hash.js';\nimport ListCache from './_ListCache.js';\nimport Map from './_Map.js';\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nexport default mapCacheClear;\n", "/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nexport default isKeyable;\n", "import isKeyable from './_isKeyable.js';\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nexport default getMapData;\n", "import getMapData from './_getMapData.js';\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nexport default mapCacheDelete;\n", "import getMapData from './_getMapData.js';\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nexport default mapCacheGet;\n", "import getMapData from './_getMapData.js';\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nexport default mapCacheHas;\n", "import getMapData from './_getMapData.js';\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nexport default mapCacheSet;\n", "import mapCacheClear from './_mapCacheClear.js';\nimport mapCacheDelete from './_mapCacheDelete.js';\nimport mapCacheGet from './_mapCacheGet.js';\nimport mapCacheHas from './_mapCacheHas.js';\nimport mapCacheSet from './_mapCacheSet.js';\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nexport default MapCache;\n", "import MapCache from './_MapCache.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nexport default memoize;\n", "/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nexport default isPrototype;\n", "/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nexport default isObjectLike;\n", "import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nexport default baseIsArguments;\n", "import baseIsArguments from './_baseIsArguments.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nexport default isArguments;\n", "/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nexport default isArray;\n", "/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nexport default isLength;\n", "import isFunction from './isFunction.js';\nimport isLength from './isLength.js';\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nexport default isArrayLike;\n", "/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nexport default stubFalse;\n", "import root from './_root.js';\nimport stubFalse from './stubFalse.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nexport default isBuffer;\n", "import baseGetTag from './_baseGetTag.js';\nimport isLength from './isLength.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nexport default baseIsTypedArray;\n", "/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nexport default baseUnary;\n", "import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nexport default nodeUtil;\n", "import baseIsTypedArray from './_baseIsTypedArray.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nexport default isTypedArray;\n", "/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\nexport default constant;\n", "import ListCache from './_ListCache.js';\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nexport default stackClear;\n", "/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nexport default stackDelete;\n", "/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nexport default stackGet;\n", "/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nexport default stackHas;\n", "import ListCache from './_ListCache.js';\nimport Map from './_Map.js';\nimport MapCache from './_MapCache.js';\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nexport default stackSet;\n", "import ListCache from './_ListCache.js';\nimport stackClear from './_stackClear.js';\nimport stackDelete from './_stackDelete.js';\nimport stackGet from './_stackGet.js';\nimport stackHas from './_stackHas.js';\nimport stackSet from './_stackSet.js';\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nexport default Stack;\n", "import getNative from './_getNative.js';\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nexport default defineProperty;\n", "import defineProperty from './_defineProperty.js';\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nexport default baseAssignValue;\n", "import baseAssignValue from './_baseAssignValue.js';\nimport eq from './eq.js';\n\n/**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignMergeValue(object, key, value) {\n if ((value !== undefined && !eq(object[key], value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nexport default assignMergeValue;\n", "/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\nexport default createBaseFor;\n", "import createBaseFor from './_createBaseFor.js';\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\nexport default baseFor;\n", "import root from './_root.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined;\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n}\n\nexport default cloneBuffer;\n", "import root from './_root.js';\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nexport default Uint8Array;\n", "import Uint8Array from './_Uint8Array.js';\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\nexport default cloneArrayBuffer;\n", "import cloneArrayBuffer from './_cloneArrayBuffer.js';\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\nexport default cloneTypedArray;\n", "/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\nexport default copyArray;\n", "import isObject from './isObject.js';\n\n/** Built-in value references. */\nvar objectCreate = Object.create;\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n}());\n\nexport default baseCreate;\n", "/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nexport default overArg;\n", "import overArg from './_overArg.js';\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nexport default getPrototype;\n", "import baseCreate from './_baseCreate.js';\nimport getPrototype from './_getPrototype.js';\nimport isPrototype from './_isPrototype.js';\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\nexport default initCloneObject;\n", "import isArrayLike from './isArrayLike.js';\nimport isObjectLike from './isObjectLike.js';\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\nexport default isArrayLikeObject;\n", "import baseGetTag from './_baseGetTag.js';\nimport getPrototype from './_getPrototype.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\nexport default isPlainObject;\n", "/**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction safeGet(object, key) {\n if (key === 'constructor' && typeof object[key] === 'function') {\n return;\n }\n\n if (key == '__proto__') {\n return;\n }\n\n return object[key];\n}\n\nexport default safeGet;\n", "import baseAssignValue from './_baseAssignValue.js';\nimport eq from './eq.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nexport default assignValue;\n", "import assignValue from './_assignValue.js';\nimport baseAssignValue from './_baseAssignValue.js';\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\nexport default copyObject;\n", "/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nexport default baseTimes;\n", "/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nexport default isIndex;\n", "import baseTimes from './_baseTimes.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isIndex from './_isIndex.js';\nimport isTypedArray from './isTypedArray.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default arrayLikeKeys;\n", "/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default nativeKeysIn;\n", "import isObject from './isObject.js';\nimport isPrototype from './_isPrototype.js';\nimport nativeKeysIn from './_nativeKeysIn.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default baseKeysIn;\n", "import arrayLikeKeys from './_arrayLikeKeys.js';\nimport baseKeysIn from './_baseKeysIn.js';\nimport isArrayLike from './isArrayLike.js';\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\nexport default keysIn;\n", "import copyObject from './_copyObject.js';\nimport keysIn from './keysIn.js';\n\n/**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\nfunction toPlainObject(value) {\n return copyObject(value, keysIn(value));\n}\n\nexport default toPlainObject;\n", "import assignMergeValue from './_assignMergeValue.js';\nimport cloneBuffer from './_cloneBuffer.js';\nimport cloneTypedArray from './_cloneTypedArray.js';\nimport copyArray from './_copyArray.js';\nimport initCloneObject from './_initCloneObject.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isArrayLikeObject from './isArrayLikeObject.js';\nimport isBuffer from './isBuffer.js';\nimport isFunction from './isFunction.js';\nimport isObject from './isObject.js';\nimport isPlainObject from './isPlainObject.js';\nimport isTypedArray from './isTypedArray.js';\nimport safeGet from './_safeGet.js';\nimport toPlainObject from './toPlainObject.js';\n\n/**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = safeGet(object, key),\n srcValue = safeGet(source, key),\n stacked = stack.get(srcValue);\n\n if (stacked) {\n assignMergeValue(object, key, stacked);\n return;\n }\n var newValue = customizer\n ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n : undefined;\n\n var isCommon = newValue === undefined;\n\n if (isCommon) {\n var isArr = isArray(srcValue),\n isBuff = !isArr && isBuffer(srcValue),\n isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n\n newValue = srcValue;\n if (isArr || isBuff || isTyped) {\n if (isArray(objValue)) {\n newValue = objValue;\n }\n else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n }\n else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n }\n else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n }\n else {\n newValue = [];\n }\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n }\n else if (!isObject(objValue) || isFunction(objValue)) {\n newValue = initCloneObject(srcValue);\n }\n }\n else {\n isCommon = false;\n }\n }\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack['delete'](srcValue);\n }\n assignMergeValue(object, key, newValue);\n}\n\nexport default baseMergeDeep;\n", "import Stack from './_Stack.js';\nimport assignMergeValue from './_assignMergeValue.js';\nimport baseFor from './_baseFor.js';\nimport baseMergeDeep from './_baseMergeDeep.js';\nimport isObject from './isObject.js';\nimport keysIn from './keysIn.js';\nimport safeGet from './_safeGet.js';\n\n/**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n baseFor(source, function(srcValue, key) {\n stack || (stack = new Stack);\n if (isObject(srcValue)) {\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n }\n else {\n var newValue = customizer\n ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)\n : undefined;\n\n if (newValue === undefined) {\n newValue = srcValue;\n }\n assignMergeValue(object, key, newValue);\n }\n }, keysIn);\n}\n\nexport default baseMerge;\n", "/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nexport default identity;\n", "/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\nexport default apply;\n", "import apply from './_apply.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\nexport default overRest;\n", "import constant from './constant.js';\nimport defineProperty from './_defineProperty.js';\nimport identity from './identity.js';\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\nexport default baseSetToString;\n", "/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeNow = Date.now;\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\nexport default shortOut;\n", "import baseSetToString from './_baseSetToString.js';\nimport shortOut from './_shortOut.js';\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\nexport default setToString;\n", "import identity from './identity.js';\nimport overRest from './_overRest.js';\nimport setToString from './_setToString.js';\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\nexport default baseRest;\n", "import eq from './eq.js';\nimport isArrayLike from './isArrayLike.js';\nimport isIndex from './_isIndex.js';\nimport isObject from './isObject.js';\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\nexport default isIterateeCall;\n", "import baseRest from './_baseRest.js';\nimport isIterateeCall from './_isIterateeCall.js';\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\nexport default createAssigner;\n", "import baseMerge from './_baseMerge.js';\nimport createAssigner from './_createAssigner.js';\n\n/**\n * This method is like `_.assign` except that it recursively merges own and\n * inherited enumerable string keyed properties of source objects into the\n * destination object. Source properties that resolve to `undefined` are\n * skipped if a destination value exists. Array and plain object properties\n * are merged recursively. Other objects and value types are overridden by\n * assignment. Source objects are applied from left to right. Subsequent\n * sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {\n * 'a': [{ 'b': 2 }, { 'd': 4 }]\n * };\n *\n * var other = {\n * 'a': [{ 'c': 3 }, { 'e': 5 }]\n * };\n *\n * _.merge(object, other);\n * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n */\nvar merge = createAssigner(function(object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\n});\n\nexport default merge;\n"], + "mappings": "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", + "names": ["freeGlobal", "freeGlobal_default", "freeSelf", "root", "freeGlobal_default", "root_default", "Symbol", "root_default", "Symbol_default", "objectProto", "hasOwnProperty", "nativeObjectToString", "symToStringTag", "Symbol_default", "getRawTag", "value", "isOwn", "tag", "unmasked", "result", "getRawTag_default", "objectProto", "nativeObjectToString", "objectToString", "value", "objectToString_default", "nullTag", "undefinedTag", "symToStringTag", "Symbol_default", "baseGetTag", "value", "getRawTag_default", "objectToString_default", "baseGetTag_default", "isObject", "value", "type", "isObject_default", "asyncTag", "funcTag", "genTag", "proxyTag", "isFunction", "value", "isObject_default", "tag", "baseGetTag_default", "isFunction_default", "coreJsData", "root_default", "coreJsData_default", "maskSrcKey", "uid", "coreJsData_default", "isMasked", "func", "isMasked_default", "funcProto", "funcToString", "toSource", "func", "toSource_default", "reRegExpChar", "reIsHostCtor", "funcProto", "objectProto", "funcToString", "hasOwnProperty", "reIsNative", "baseIsNative", "value", "isObject_default", "isMasked_default", "pattern", "isFunction_default", "toSource_default", "baseIsNative_default", "getValue", "object", "key", "getValue_default", "getNative", "object", "key", "value", "getValue_default", "baseIsNative_default", "getNative_default", "nativeCreate", "getNative_default", "nativeCreate_default", "hashClear", "nativeCreate_default", "hashClear_default", "hashDelete", "key", "result", "hashDelete_default", "HASH_UNDEFINED", "objectProto", "hasOwnProperty", "hashGet", "key", "data", "nativeCreate_default", "result", "hashGet_default", "objectProto", "hasOwnProperty", "hashHas", "key", "data", "nativeCreate_default", "hashHas_default", "HASH_UNDEFINED", "hashSet", "key", "value", "data", "nativeCreate_default", "hashSet_default", "Hash", "entries", "index", "length", "entry", "hashClear_default", "hashDelete_default", "hashGet_default", "hashHas_default", "hashSet_default", "Hash_default", "listCacheClear", "listCacheClear_default", "eq", "value", "other", "eq_default", "assocIndexOf", "array", "key", "length", "eq_default", "assocIndexOf_default", "arrayProto", "splice", "listCacheDelete", "key", "data", "index", "assocIndexOf_default", "lastIndex", "listCacheDelete_default", "listCacheGet", "key", "data", "index", "assocIndexOf_default", "listCacheGet_default", "listCacheHas", "key", "assocIndexOf_default", "listCacheHas_default", "listCacheSet", "key", "value", "data", "index", "assocIndexOf_default", "listCacheSet_default", "ListCache", "entries", "index", "length", "entry", "listCacheClear_default", "listCacheDelete_default", "listCacheGet_default", "listCacheHas_default", "listCacheSet_default", "ListCache_default", "Map", "getNative_default", "root_default", "Map_default", "mapCacheClear", "Hash_default", "Map_default", "ListCache_default", "mapCacheClear_default", "isKeyable", "value", "type", "isKeyable_default", "getMapData", "map", "key", "data", "isKeyable_default", "getMapData_default", "mapCacheDelete", "key", "result", "getMapData_default", "mapCacheDelete_default", "mapCacheGet", "key", "getMapData_default", "mapCacheGet_default", "mapCacheHas", "key", "getMapData_default", "mapCacheHas_default", "mapCacheSet", "key", "value", "data", "getMapData_default", "size", "mapCacheSet_default", "MapCache", "entries", "index", "length", "entry", "mapCacheClear_default", "mapCacheDelete_default", "mapCacheGet_default", "mapCacheHas_default", "mapCacheSet_default", "MapCache_default", "FUNC_ERROR_TEXT", "memoize", "func", "resolver", "memoized", "args", "key", "cache", "result", "MapCache_default", "memoize_default", "objectProto", "isPrototype", "value", "Ctor", "proto", "isPrototype_default", "isObjectLike", "value", "isObjectLike_default", "argsTag", "baseIsArguments", "value", "isObjectLike_default", "baseGetTag_default", "baseIsArguments_default", "objectProto", "hasOwnProperty", "propertyIsEnumerable", "isArguments", "baseIsArguments_default", "value", "isObjectLike_default", "isArguments_default", "isArray", "isArray_default", "MAX_SAFE_INTEGER", "isLength", "value", "isLength_default", "isArrayLike", "value", "isLength_default", "isFunction_default", "isArrayLike_default", "stubFalse", "stubFalse_default", "freeExports", "freeModule", "moduleExports", "Buffer", "root_default", "nativeIsBuffer", "isBuffer", "stubFalse_default", "isBuffer_default", "argsTag", "arrayTag", "boolTag", "dateTag", "errorTag", "funcTag", "mapTag", "numberTag", "objectTag", "regexpTag", "setTag", "stringTag", "weakMapTag", "arrayBufferTag", "dataViewTag", "float32Tag", "float64Tag", "int8Tag", "int16Tag", "int32Tag", "uint8Tag", "uint8ClampedTag", "uint16Tag", "uint32Tag", "typedArrayTags", "baseIsTypedArray", "value", "isObjectLike_default", "isLength_default", "baseGetTag_default", "baseIsTypedArray_default", "baseUnary", "func", "value", "baseUnary_default", "freeExports", "freeModule", "moduleExports", "freeProcess", "freeGlobal_default", "nodeUtil", "types", "nodeUtil_default", "nodeIsTypedArray", "nodeUtil_default", "isTypedArray", "baseUnary_default", "baseIsTypedArray_default", "isTypedArray_default", "constant", "value", "constant_default", "stackClear", "ListCache_default", "stackClear_default", "stackDelete", "key", "data", "result", "stackDelete_default", "stackGet", "key", "stackGet_default", "stackHas", "key", "stackHas_default", "LARGE_ARRAY_SIZE", "stackSet", "key", "value", "data", "ListCache_default", "pairs", "Map_default", "MapCache_default", "stackSet_default", "Stack", "entries", "data", "ListCache_default", "stackClear_default", "stackDelete_default", "stackGet_default", "stackHas_default", "stackSet_default", "Stack_default", "defineProperty", "func", "getNative_default", "defineProperty_default", "baseAssignValue", "object", "key", "value", "defineProperty_default", "baseAssignValue_default", "assignMergeValue", "object", "key", "value", "eq_default", "baseAssignValue_default", "assignMergeValue_default", "createBaseFor", "fromRight", "object", "iteratee", "keysFunc", "index", "iterable", "props", "length", "key", "createBaseFor_default", "baseFor", "createBaseFor_default", "baseFor_default", "freeExports", "freeModule", "moduleExports", "Buffer", "root_default", "allocUnsafe", "cloneBuffer", "buffer", "isDeep", "length", "result", "cloneBuffer_default", "Uint8Array", "root_default", "Uint8Array_default", "cloneArrayBuffer", "arrayBuffer", "result", "Uint8Array_default", "cloneArrayBuffer_default", "cloneTypedArray", "typedArray", "isDeep", "buffer", "cloneArrayBuffer_default", "cloneTypedArray_default", "copyArray", "source", "array", "index", "length", "copyArray_default", "objectCreate", "baseCreate", "object", "proto", "isObject_default", "result", "baseCreate_default", "overArg", "func", "transform", "arg", "overArg_default", "getPrototype", "overArg_default", "getPrototype_default", "initCloneObject", "object", "isPrototype_default", "baseCreate_default", "getPrototype_default", "initCloneObject_default", "isArrayLikeObject", "value", "isObjectLike_default", "isArrayLike_default", "isArrayLikeObject_default", "objectTag", "funcProto", "objectProto", "funcToString", "hasOwnProperty", "objectCtorString", "isPlainObject", "value", "isObjectLike_default", "baseGetTag_default", "proto", "getPrototype_default", "Ctor", "isPlainObject_default", "safeGet", "object", "key", "safeGet_default", "objectProto", "hasOwnProperty", "assignValue", "object", "key", "value", "objValue", "eq_default", "baseAssignValue_default", "assignValue_default", "copyObject", "source", "props", "object", "customizer", "isNew", "index", "length", "key", "newValue", "baseAssignValue_default", "assignValue_default", "copyObject_default", "baseTimes", "n", "iteratee", "index", "result", "baseTimes_default", "MAX_SAFE_INTEGER", "reIsUint", "isIndex", "value", "length", "type", "isIndex_default", "objectProto", "hasOwnProperty", "arrayLikeKeys", "value", "inherited", "isArr", "isArray_default", "isArg", "isArguments_default", "isBuff", "isBuffer_default", "isType", "isTypedArray_default", "skipIndexes", "result", "baseTimes_default", "length", "key", "isIndex_default", "arrayLikeKeys_default", "nativeKeysIn", "object", "result", "key", "nativeKeysIn_default", "objectProto", "hasOwnProperty", "baseKeysIn", "object", "isObject_default", "nativeKeysIn_default", "isProto", "isPrototype_default", "result", "key", "baseKeysIn_default", "keysIn", "object", "isArrayLike_default", "arrayLikeKeys_default", "baseKeysIn_default", "keysIn_default", "toPlainObject", "value", "copyObject_default", "keysIn_default", "toPlainObject_default", "baseMergeDeep", "object", "source", "key", "srcIndex", "mergeFunc", "customizer", "stack", "objValue", "safeGet_default", "srcValue", "stacked", "assignMergeValue_default", "newValue", "isCommon", "isArr", "isArray_default", "isBuff", "isBuffer_default", "isTyped", "isTypedArray_default", "isArrayLikeObject_default", "copyArray_default", "cloneBuffer_default", "cloneTypedArray_default", "isPlainObject_default", "isArguments_default", "toPlainObject_default", "isObject_default", "isFunction_default", "initCloneObject_default", "baseMergeDeep_default", "baseMerge", "object", "source", "srcIndex", "customizer", "stack", "baseFor_default", "srcValue", "key", "Stack_default", "isObject_default", "baseMergeDeep_default", "newValue", "safeGet_default", "assignMergeValue_default", "keysIn_default", "baseMerge_default", "identity", "value", "identity_default", "apply", "func", "thisArg", "args", "apply_default", "nativeMax", "overRest", "func", "start", "transform", "args", "index", "length", "array", "otherArgs", "apply_default", "overRest_default", "baseSetToString", "defineProperty_default", "func", "string", "constant_default", "identity_default", "baseSetToString_default", "HOT_COUNT", "HOT_SPAN", "nativeNow", "shortOut", "func", "count", "lastCalled", "stamp", "remaining", "shortOut_default", "setToString", "shortOut_default", "baseSetToString_default", "setToString_default", "baseRest", "func", "start", "setToString_default", "overRest_default", "identity_default", "baseRest_default", "isIterateeCall", "value", "index", "object", "isObject_default", "type", "isArrayLike_default", "isIndex_default", "eq_default", "isIterateeCall_default", "createAssigner", "assigner", "baseRest_default", "object", "sources", "index", "length", "customizer", "guard", "isIterateeCall_default", "source", "createAssigner_default", "merge", "createAssigner_default", "object", "source", "srcIndex", "baseMerge_default", "merge_default"] +} diff --git a/docs/_site/public/chunk-DTUU2GN4.min.js b/docs/_site/public/chunk-DTUU2GN4.min.js new file mode 100644 index 0000000..d5c236c --- /dev/null +++ b/docs/_site/public/chunk-DTUU2GN4.min.js @@ -0,0 +1,22 @@ +import{a as k}from"./chunk-OSRY5VT3.min.js";var v=k((h,j)=>{(function(e,n){typeof define=="function"&&define.amd?define(n):typeof h=="object"?j.exports=n():n()(e.lunr)})(h,function(){return function(e){if(typeof e>"u")throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(typeof e.stemmerSupport>"u")throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var n=e.version[0]=="2";e.ja=function(){this.pipeline.reset(),this.pipeline.add(e.ja.trimmer,e.ja.stopWordFilter,e.ja.stemmer),n?this.tokenizer=e.ja.tokenizer:(e.tokenizer&&(e.tokenizer=e.ja.tokenizer),this.tokenizerFn&&(this.tokenizerFn=e.ja.tokenizer))};var F=new e.TinySegmenter;e.ja.tokenizer=function(s){var t,i,f,o,a,d,g,p,r,c;if(!arguments.length||s==null||s==null)return[];if(Array.isArray(s))return s.map(function(m){return n?new e.Token(m.toLowerCase()):m.toLowerCase()});for(i=s.toString().toLowerCase().replace(/^\s+/,""),t=i.length-1;t>=0;t--)if(/\S/.test(i.charAt(t))){i=i.substring(0,t+1);break}for(a=[],f=i.length,r=0,p=0;r<=f;r++)if(d=i.charAt(r),g=r-p,d.match(/\s/)||r==f){if(g>0)for(o=F.segment(i.slice(p,r)).filter(function(m){return!!m}),c=p,t=0;t 1.0.0\n this.tokenizerFn = lunr.ja.tokenizer;\n }\n }\n };\n var segmenter = new lunr.TinySegmenter(); // \u30A4\u30F3\u30B9\u30BF\u30F3\u30B9\u751F\u6210\n\n lunr.ja.tokenizer = function(obj) {\n var i;\n var str;\n var len;\n var segs;\n var tokens;\n var char;\n var sliceLength;\n var sliceStart;\n var sliceEnd;\n var segStart;\n\n if (!arguments.length || obj == null || obj == undefined)\n return [];\n\n if (Array.isArray(obj)) {\n return obj.map(\n function(t) {\n return isLunr2 ? new lunr.Token(t.toLowerCase()) : t.toLowerCase();\n }\n );\n }\n\n str = obj.toString().toLowerCase().replace(/^\\s+/, '');\n for (i = str.length - 1; i >= 0; i--) {\n if (/\\S/.test(str.charAt(i))) {\n str = str.substring(0, i + 1);\n break;\n }\n }\n\n tokens = [];\n len = str.length;\n for (sliceEnd = 0, sliceStart = 0; sliceEnd <= len; sliceEnd++) {\n char = str.charAt(sliceEnd);\n sliceLength = sliceEnd - sliceStart;\n\n if ((char.match(/\\s/) || sliceEnd == len)) {\n if (sliceLength > 0) {\n segs = segmenter.segment(str.slice(sliceStart, sliceEnd)).filter(\n function(token) {\n return !!token;\n }\n );\n\n segStart = sliceStart;\n for (i = 0; i < segs.length; i++) {\n if (isLunr2) {\n tokens.push(\n new lunr.Token(\n segs[i], {\n position: [segStart, segs[i].length],\n index: tokens.length\n }\n )\n );\n } else {\n tokens.push(segs[i]);\n }\n segStart += segs[i].length;\n }\n }\n\n sliceStart = sliceEnd + 1;\n }\n }\n\n return tokens;\n }\n\n /* lunr stemmer function */\n lunr.ja.stemmer = (function() {\n\n /* TODO japanese stemmer */\n return function(word) {\n return word;\n }\n })();\n lunr.Pipeline.registerFunction(lunr.ja.stemmer, 'stemmer-ja');\n\n /* lunr trimmer function */\n lunr.ja.wordCharacters = \"\u4E00\u4E8C\u4E09\u56DB\u4E94\u516D\u4E03\u516B\u4E5D\u5341\u767E\u5343\u4E07\u5104\u5146\u4E00-\u9FA0\u3005\u3006\u30F5\u30F6\u3041-\u3093\u30A1-\u30F4\u30FC\uFF71-\uFF9D\uFF9Ea-zA-Z\uFF41-\uFF5A\uFF21-\uFF3A0-9\uFF10-\uFF19\";\n lunr.ja.trimmer = lunr.trimmerSupport.generateTrimmer(lunr.ja.wordCharacters);\n lunr.Pipeline.registerFunction(lunr.ja.trimmer, 'trimmer-ja');\n\n /* lunr stop word filter. see http://www.ranks.nl/stopwords/japanese */\n lunr.ja.stopWordFilter = lunr.generateStopWordFilter(\n '\u3053\u308C \u305D\u308C \u3042\u308C \u3053\u306E \u305D\u306E \u3042\u306E \u3053\u3053 \u305D\u3053 \u3042\u305D\u3053 \u3053\u3061\u3089 \u3069\u3053 \u3060\u308C \u306A\u306B \u306A\u3093 \u4F55 \u79C1 \u8CB4\u65B9 \u8CB4\u65B9\u65B9 \u6211\u3005 \u79C1\u9054 \u3042\u306E\u4EBA \u3042\u306E\u304B\u305F \u5F7C\u5973 \u5F7C \u3067\u3059 \u3042\u308A\u307E\u3059 \u304A\u308A\u307E\u3059 \u3044\u307E\u3059 \u306F \u304C \u306E \u306B \u3092 \u3067 \u3048 \u304B\u3089 \u307E\u3067 \u3088\u308A \u3082 \u3069\u306E \u3068 \u3057 \u305D\u308C\u3067 \u3057\u304B\u3057'.split(' '));\n lunr.Pipeline.registerFunction(lunr.ja.stopWordFilter, 'stopWordFilter-ja');\n\n // alias ja => jp for backward-compatibility.\n // jp is the country code, while ja is the language code\n // a new lunr.ja.js has been created, but in order to\n // keep the backward compatibility, we'll leave the lunr.jp.js\n // here for a while, and just make it use the new lunr.ja.js\n lunr.jp = lunr.ja;\n lunr.Pipeline.registerFunction(lunr.jp.stemmer, 'stemmer-jp');\n lunr.Pipeline.registerFunction(lunr.jp.trimmer, 'trimmer-jp');\n lunr.Pipeline.registerFunction(lunr.jp.stopWordFilter, 'stopWordFilter-jp');\n };\n}))"], + "mappings": "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", + "names": ["require_lunr_ja", "__commonJSMin", "exports", "module", "root", "factory", "lunr", "isLunr2", "segmenter", "obj", "i", "str", "len", "segs", "tokens", "char", "sliceLength", "sliceStart", "sliceEnd", "segStart", "t", "token", "word"] +} diff --git a/docs/_site/public/chunk-EDJWACL4.min.js b/docs/_site/public/chunk-EDJWACL4.min.js new file mode 100644 index 0000000..e4ce339 --- /dev/null +++ b/docs/_site/public/chunk-EDJWACL4.min.js @@ -0,0 +1,2 @@ +var r="11.4.1";export{r as a}; +//# sourceMappingURL=chunk-EDJWACL4.min.js.map diff --git a/docs/_site/public/chunk-EDJWACL4.min.js.map b/docs/_site/public/chunk-EDJWACL4.min.js.map new file mode 100644 index 0000000..1b505c7 --- /dev/null +++ b/docs/_site/public/chunk-EDJWACL4.min.js.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": ["../../node_modules/mermaid/dist/chunks/mermaid.core/chunk-K6PMAZHR.mjs"], + "sourcesContent": ["// package.json\nvar version = \"11.4.1\";\n\nexport {\n version\n};\n"], + "mappings": "AACA,IAAIA,EAAU", + "names": ["version"] +} diff --git a/docs/_site/public/chunk-EKP7MBOP.min.js b/docs/_site/public/chunk-EKP7MBOP.min.js new file mode 100644 index 0000000..c15dac4 --- /dev/null +++ b/docs/_site/public/chunk-EKP7MBOP.min.js @@ -0,0 +1,2 @@ +import{h as i}from"./chunk-U3SD26FK.min.js";function t(c,e){c.accDescr&&e.setAccDescription?.(c.accDescr),c.accTitle&&e.setAccTitle?.(c.accTitle),c.title&&e.setDiagramTitle?.(c.title)}i(t,"populateCommonDb");export{t as a}; +//# sourceMappingURL=chunk-EKP7MBOP.min.js.map diff --git a/docs/_site/public/chunk-EKP7MBOP.min.js.map b/docs/_site/public/chunk-EKP7MBOP.min.js.map new file mode 100644 index 0000000..aaf620c --- /dev/null +++ b/docs/_site/public/chunk-EKP7MBOP.min.js.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": ["../../node_modules/mermaid/dist/chunks/mermaid.core/chunk-TMUBEWPD.mjs"], + "sourcesContent": ["import {\n __name\n} from \"./chunk-6DBFFHIP.mjs\";\n\n// src/diagrams/common/populateCommonDb.ts\nfunction populateCommonDb(ast, db) {\n if (ast.accDescr) {\n db.setAccDescription?.(ast.accDescr);\n }\n if (ast.accTitle) {\n db.setAccTitle?.(ast.accTitle);\n }\n if (ast.title) {\n db.setDiagramTitle?.(ast.title);\n }\n}\n__name(populateCommonDb, \"populateCommonDb\");\n\nexport {\n populateCommonDb\n};\n"], + "mappings": "4CAKA,SAASA,EAAiBC,EAAKC,EAAI,CAC7BD,EAAI,UACNC,EAAG,oBAAoBD,EAAI,QAAQ,EAEjCA,EAAI,UACNC,EAAG,cAAcD,EAAI,QAAQ,EAE3BA,EAAI,OACNC,EAAG,kBAAkBD,EAAI,KAAK,CAElC,CACAE,EAAOH,EAAkB,kBAAkB", + "names": ["populateCommonDb", "ast", "db", "__name"] +} diff --git a/docs/_site/public/chunk-I4ZXTPQC.min.js b/docs/_site/public/chunk-I4ZXTPQC.min.js new file mode 100644 index 0000000..470b7d9 --- /dev/null +++ b/docs/_site/public/chunk-I4ZXTPQC.min.js @@ -0,0 +1,2 @@ +import{h as t}from"./chunk-U3SD26FK.min.js";var s=class{constructor(i){this.init=i,this.records=this.init()}static{t(this,"ImperativeState")}reset(){this.records=this.init()}};export{s as a}; +//# sourceMappingURL=chunk-I4ZXTPQC.min.js.map diff --git a/docs/_site/public/chunk-I4ZXTPQC.min.js.map b/docs/_site/public/chunk-I4ZXTPQC.min.js.map new file mode 100644 index 0000000..6df9fb1 --- /dev/null +++ b/docs/_site/public/chunk-I4ZXTPQC.min.js.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": ["../../node_modules/mermaid/dist/chunks/mermaid.core/chunk-KFBOBJHC.mjs"], + "sourcesContent": ["import {\n __name\n} from \"./chunk-6DBFFHIP.mjs\";\n\n// src/utils/imperativeState.ts\nvar ImperativeState = class {\n /**\n * @param init - Function that creates the default state.\n */\n constructor(init) {\n this.init = init;\n this.records = this.init();\n }\n static {\n __name(this, \"ImperativeState\");\n }\n reset() {\n this.records = this.init();\n }\n};\n\nexport {\n ImperativeState\n};\n"], + "mappings": "4CAKA,IAAIA,EAAkB,KAAM,CAI1B,YAAYC,EAAM,CAChB,KAAK,KAAOA,EACZ,KAAK,QAAU,KAAK,KAAK,CAC3B,CACA,MAAO,CACLC,EAAO,KAAM,iBAAiB,CAChC,CACA,OAAQ,CACN,KAAK,QAAU,KAAK,KAAK,CAC3B,CACF", + "names": ["ImperativeState", "init", "__name"] +} diff --git a/docs/_site/public/chunk-IJ4BRSPX.min.js b/docs/_site/public/chunk-IJ4BRSPX.min.js new file mode 100644 index 0000000..de693e3 --- /dev/null +++ b/docs/_site/public/chunk-IJ4BRSPX.min.js @@ -0,0 +1,2 @@ +import{a as i,b as u,c as a,d as n,e as m,f as r,g as o,k as s,m as l,o as d}from"./chunk-BIJFJY5F.min.js";var h=class extends d{static{r(this,"ArchitectureTokenBuilder")}constructor(){super(["architecture"])}},A=class extends l{static{r(this,"ArchitectureValueConverter")}runCustomConverter(t,e,c){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()}},C={parser:{TokenBuilder:r(()=>new h,"TokenBuilder"),ValueConverter:r(()=>new A,"ValueConverter")}};function v(t=n){let e=a(u(t),o),c=a(i({shared:e}),s,C);return e.ServiceRegistry.register(c),{shared:e,Architecture:c}}r(v,"createArchitectureServices");export{C as a,v as b}; +//# sourceMappingURL=chunk-IJ4BRSPX.min.js.map diff --git a/docs/_site/public/chunk-IJ4BRSPX.min.js.map b/docs/_site/public/chunk-IJ4BRSPX.min.js.map new file mode 100644 index 0000000..76c9b18 --- /dev/null +++ b/docs/_site/public/chunk-IJ4BRSPX.min.js.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": ["../../node_modules/@mermaid-js/parser/dist/chunks/mermaid-parser.core/chunk-FF7BQXOH.mjs"], + "sourcesContent": ["import {\n AbstractMermaidTokenBuilder,\n AbstractMermaidValueConverter,\n ArchitectureGeneratedModule,\n MermaidGeneratedSharedModule,\n __name\n} from \"./chunk-Y27MQZ3U.mjs\";\n\n// src/language/architecture/module.ts\nimport {\n EmptyFileSystem,\n createDefaultCoreModule,\n createDefaultSharedCoreModule,\n inject\n} from \"langium\";\n\n// src/language/architecture/tokenBuilder.ts\nvar ArchitectureTokenBuilder = class extends AbstractMermaidTokenBuilder {\n static {\n __name(this, \"ArchitectureTokenBuilder\");\n }\n constructor() {\n super([\"architecture\"]);\n }\n};\n\n// src/language/architecture/valueConverter.ts\nvar ArchitectureValueConverter = class extends AbstractMermaidValueConverter {\n static {\n __name(this, \"ArchitectureValueConverter\");\n }\n runCustomConverter(rule, input, _cstNode) {\n if (rule.name === \"ARCH_ICON\") {\n return input.replace(/[()]/g, \"\").trim();\n } else if (rule.name === \"ARCH_TEXT_ICON\") {\n return input.replace(/[\"()]/g, \"\");\n } else if (rule.name === \"ARCH_TITLE\") {\n return input.replace(/[[\\]]/g, \"\").trim();\n }\n return void 0;\n }\n};\n\n// src/language/architecture/module.ts\nvar ArchitectureModule = {\n parser: {\n TokenBuilder: /* @__PURE__ */ __name(() => new ArchitectureTokenBuilder(), \"TokenBuilder\"),\n ValueConverter: /* @__PURE__ */ __name(() => new ArchitectureValueConverter(), \"ValueConverter\")\n }\n};\nfunction createArchitectureServices(context = EmptyFileSystem) {\n const shared = inject(\n createDefaultSharedCoreModule(context),\n MermaidGeneratedSharedModule\n );\n const Architecture = inject(\n createDefaultCoreModule({ shared }),\n ArchitectureGeneratedModule,\n ArchitectureModule\n );\n shared.ServiceRegistry.register(Architecture);\n return { shared, Architecture };\n}\n__name(createArchitectureServices, \"createArchitectureServices\");\n\nexport {\n ArchitectureModule,\n createArchitectureServices\n};\n"], + "mappings": "2GAiBA,IAAIA,EAA2B,cAAcC,CAA4B,CACvE,MAAO,CACLC,EAAO,KAAM,0BAA0B,CACzC,CACA,aAAc,CACZ,MAAM,CAAC,cAAc,CAAC,CACxB,CACF,EAGIC,EAA6B,cAAcC,CAA8B,CAC3E,MAAO,CACLF,EAAO,KAAM,4BAA4B,CAC3C,CACA,mBAAmBG,EAAMC,EAAOC,EAAU,CACxC,GAAIF,EAAK,OAAS,YAChB,OAAOC,EAAM,QAAQ,QAAS,EAAE,EAAE,KAAK,EAClC,GAAID,EAAK,OAAS,iBACvB,OAAOC,EAAM,QAAQ,SAAU,EAAE,EAC5B,GAAID,EAAK,OAAS,aACvB,OAAOC,EAAM,QAAQ,SAAU,EAAE,EAAE,KAAK,CAG5C,CACF,EAGIE,EAAqB,CACvB,OAAQ,CACN,aAA8BN,EAAO,IAAM,IAAIF,EAA4B,cAAc,EACzF,eAAgCE,EAAO,IAAM,IAAIC,EAA8B,gBAAgB,CACjG,CACF,EACA,SAASM,EAA2BC,EAAUC,EAAiB,CAC7D,IAAMC,EAASC,EACbC,EAA8BJ,CAAO,EACrCK,CACF,EACMC,EAAeH,EACnBI,EAAwB,CAAE,OAAAL,CAAO,CAAC,EAClCM,EACAV,CACF,EACA,OAAAI,EAAO,gBAAgB,SAASI,CAAY,EACrC,CAAE,OAAAJ,EAAQ,aAAAI,CAAa,CAChC,CACAd,EAAOO,EAA4B,4BAA4B", + "names": ["ArchitectureTokenBuilder", "AbstractMermaidTokenBuilder", "__name", "ArchitectureValueConverter", "AbstractMermaidValueConverter", "rule", "input", "_cstNode", "ArchitectureModule", "createArchitectureServices", "context", "EmptyFileSystem", "shared", "inject", "createDefaultSharedCoreModule", "MermaidGeneratedSharedModule", "Architecture", "createDefaultCoreModule", "ArchitectureGeneratedModule"] +} diff --git a/docs/_site/public/chunk-IQQ46AC6.min.js b/docs/_site/public/chunk-IQQ46AC6.min.js new file mode 100644 index 0000000..c2f7171 --- /dev/null +++ b/docs/_site/public/chunk-IQQ46AC6.min.js @@ -0,0 +1,2 @@ +import{B as d,D as v,G as P,a as e,c as u,f as i,g as a,i as m,t as w,v as f,y as b,z as j}from"./chunk-CXRPJJJE.min.js";var A=w(Object.keys,Object),S=A;var C=Object.prototype,V=C.hasOwnProperty;function D(r){if(!f(r))return S(r);var t=[];for(var o in Object(r))V.call(r,o)&&o!="constructor"&&t.push(o);return t}var T=D;var K=a(e,"DataView"),n=K;var N=a(e,"Promise"),s=N;var W=a(e,"Set"),c=W;var B=a(e,"WeakMap"),g=B;var O="[object Map]",z="[object Object]",M="[object Promise]",h="[object Set]",x="[object WeakMap]",k="[object DataView]",E=i(n),G=i(m),L=i(s),q=i(c),F=i(g),p=u;(n&&p(new n(new ArrayBuffer(1)))!=k||m&&p(new m)!=O||s&&p(s.resolve())!=M||c&&p(new c)!=h||g&&p(new g)!=x)&&(p=function(r){var t=u(r),o=t==z?r.constructor:void 0,y=o?i(o):"";if(y)switch(y){case E:return k;case G:return O;case L:return M;case q:return h;case F:return x}return t});var l=p;var H="[object Map]",I="[object Set]",J=Object.prototype,Q=J.hasOwnProperty;function R(r){if(r==null)return!0;if(d(r)&&(j(r)||typeof r=="string"||typeof r.splice=="function"||v(r)||P(r)||b(r)))return!r.length;var t=l(r);if(t==H||t==I)return!r.size;if(f(r))return!T(r).length;for(var o in r)if(Q.call(r,o))return!1;return!0}var kr=R;export{T as a,c as b,l as c,kr as d}; +//# sourceMappingURL=chunk-IQQ46AC6.min.js.map diff --git a/docs/_site/public/chunk-IQQ46AC6.min.js.map b/docs/_site/public/chunk-IQQ46AC6.min.js.map new file mode 100644 index 0000000..ed2cb66 --- /dev/null +++ b/docs/_site/public/chunk-IQQ46AC6.min.js.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": ["../../node_modules/lodash-es/_nativeKeys.js", "../../node_modules/lodash-es/_baseKeys.js", "../../node_modules/lodash-es/_DataView.js", "../../node_modules/lodash-es/_Promise.js", "../../node_modules/lodash-es/_Set.js", "../../node_modules/lodash-es/_WeakMap.js", "../../node_modules/lodash-es/_getTag.js", "../../node_modules/lodash-es/isEmpty.js"], + "sourcesContent": ["import overArg from './_overArg.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nexport default nativeKeys;\n", "import isPrototype from './_isPrototype.js';\nimport nativeKeys from './_nativeKeys.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default baseKeys;\n", "import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nexport default DataView;\n", "import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nexport default Promise;\n", "import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nexport default Set;\n", "import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nexport default WeakMap;\n", "import DataView from './_DataView.js';\nimport Map from './_Map.js';\nimport Promise from './_Promise.js';\nimport Set from './_Set.js';\nimport WeakMap from './_WeakMap.js';\nimport baseGetTag from './_baseGetTag.js';\nimport toSource from './_toSource.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nexport default getTag;\n", "import baseKeys from './_baseKeys.js';\nimport getTag from './_getTag.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isArrayLike from './isArrayLike.js';\nimport isBuffer from './isBuffer.js';\nimport isPrototype from './_isPrototype.js';\nimport isTypedArray from './isTypedArray.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n setTag = '[object Set]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if `value` is an empty object, collection, map, or set.\n *\n * Objects are considered empty if they have no own enumerable string keyed\n * properties.\n *\n * Array-like values such as `arguments` objects, arrays, buffers, strings, or\n * jQuery-like collections are considered empty if they have a `length` of `0`.\n * Similarly, maps and sets are considered empty if they have a `size` of `0`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is empty, else `false`.\n * @example\n *\n * _.isEmpty(null);\n * // => true\n *\n * _.isEmpty(true);\n * // => true\n *\n * _.isEmpty(1);\n * // => true\n *\n * _.isEmpty([1, 2, 3]);\n * // => false\n *\n * _.isEmpty({ 'a': 1 });\n * // => false\n */\nfunction isEmpty(value) {\n if (value == null) {\n return true;\n }\n if (isArrayLike(value) &&\n (isArray(value) || typeof value == 'string' || typeof value.splice == 'function' ||\n isBuffer(value) || isTypedArray(value) || isArguments(value))) {\n return !value.length;\n }\n var tag = getTag(value);\n if (tag == mapTag || tag == setTag) {\n return !value.size;\n }\n if (isPrototype(value)) {\n return !baseKeys(value).length;\n }\n for (var key in value) {\n if (hasOwnProperty.call(value, key)) {\n return false;\n }\n }\n return true;\n}\n\nexport default isEmpty;\n"], + "mappings": "yHAGA,IAAIA,EAAaC,EAAQ,OAAO,KAAM,MAAM,EAErCC,EAAQF,ECDf,IAAIG,EAAc,OAAO,UAGrBC,EAAiBD,EAAY,eASjC,SAASE,EAASC,EAAQ,CACxB,GAAI,CAACC,EAAYD,CAAM,EACrB,OAAOE,EAAWF,CAAM,EAE1B,IAAIG,EAAS,CAAC,EACd,QAASC,KAAO,OAAOJ,CAAM,EACvBF,EAAe,KAAKE,EAAQI,CAAG,GAAKA,GAAO,eAC7CD,EAAO,KAAKC,CAAG,EAGnB,OAAOD,CACT,CAEA,IAAOE,EAAQN,ECzBf,IAAIO,EAAWC,EAAUC,EAAM,UAAU,EAElCC,EAAQH,ECFf,IAAII,EAAUC,EAAUC,EAAM,SAAS,EAEhCC,EAAQH,ECFf,IAAII,EAAMC,EAAUC,EAAM,KAAK,EAExBC,EAAQH,ECFf,IAAII,EAAUC,EAAUC,EAAM,SAAS,EAEhCC,EAAQH,ECGf,IAAII,EAAS,eACTC,EAAY,kBACZC,EAAa,mBACbC,EAAS,eACTC,EAAa,mBAEbC,EAAc,oBAGdC,EAAqBC,EAASC,CAAQ,EACtCC,EAAgBF,EAASG,CAAG,EAC5BC,EAAoBJ,EAASK,CAAO,EACpCC,EAAgBN,EAASO,CAAG,EAC5BC,EAAoBR,EAASS,CAAO,EASpCC,EAASC,GAGRV,GAAYS,EAAO,IAAIT,EAAS,IAAI,YAAY,CAAC,CAAC,CAAC,GAAKH,GACxDK,GAAOO,EAAO,IAAIP,CAAG,GAAKV,GAC1BY,GAAWK,EAAOL,EAAQ,QAAQ,CAAC,GAAKV,GACxCY,GAAOG,EAAO,IAAIH,CAAG,GAAKX,GAC1Ba,GAAWC,EAAO,IAAID,CAAO,GAAKZ,KACrCa,EAAS,SAASE,EAAO,CACvB,IAAIC,EAASF,EAAWC,CAAK,EACzBE,EAAOD,GAAUnB,EAAYkB,EAAM,YAAc,OACjDG,EAAaD,EAAOd,EAASc,CAAI,EAAI,GAEzC,GAAIC,EACF,OAAQA,EAAY,CAClB,KAAKhB,EAAoB,OAAOD,EAChC,KAAKI,EAAe,OAAOT,EAC3B,KAAKW,EAAmB,OAAOT,EAC/B,KAAKW,EAAe,OAAOV,EAC3B,KAAKY,EAAmB,OAAOX,CACjC,CAEF,OAAOgB,CACT,GAGF,IAAOG,EAAQN,EC/Cf,IAAIO,EAAS,eACTC,EAAS,eAGTC,EAAc,OAAO,UAGrBC,EAAiBD,EAAY,eAmCjC,SAASE,EAAQC,EAAO,CACtB,GAAIA,GAAS,KACX,MAAO,GAET,GAAIC,EAAYD,CAAK,IAChBE,EAAQF,CAAK,GAAK,OAAOA,GAAS,UAAY,OAAOA,EAAM,QAAU,YACpEG,EAASH,CAAK,GAAKI,EAAaJ,CAAK,GAAKK,EAAYL,CAAK,GAC/D,MAAO,CAACA,EAAM,OAEhB,IAAIM,EAAMC,EAAOP,CAAK,EACtB,GAAIM,GAAOX,GAAUW,GAAOV,EAC1B,MAAO,CAACI,EAAM,KAEhB,GAAIQ,EAAYR,CAAK,EACnB,MAAO,CAACS,EAAST,CAAK,EAAE,OAE1B,QAASU,KAAOV,EACd,GAAIF,EAAe,KAAKE,EAAOU,CAAG,EAChC,MAAO,GAGX,MAAO,EACT,CAEA,IAAOC,GAAQZ", + "names": ["nativeKeys", "overArg_default", "nativeKeys_default", "objectProto", "hasOwnProperty", "baseKeys", "object", "isPrototype_default", "nativeKeys_default", "result", "key", "baseKeys_default", "DataView", "getNative_default", "root_default", "DataView_default", "Promise", "getNative_default", "root_default", "Promise_default", "Set", "getNative_default", "root_default", "Set_default", "WeakMap", "getNative_default", "root_default", "WeakMap_default", "mapTag", "objectTag", "promiseTag", "setTag", "weakMapTag", "dataViewTag", "dataViewCtorString", "toSource_default", "DataView_default", "mapCtorString", "Map_default", "promiseCtorString", "Promise_default", "setCtorString", "Set_default", "weakMapCtorString", "WeakMap_default", "getTag", "baseGetTag_default", "value", "result", "Ctor", "ctorString", "getTag_default", "mapTag", "setTag", "objectProto", "hasOwnProperty", "isEmpty", "value", "isArrayLike_default", "isArray_default", "isBuffer_default", "isTypedArray_default", "isArguments_default", "tag", "getTag_default", "isPrototype_default", "baseKeys_default", "key", "isEmpty_default"] +} diff --git a/docs/_site/public/chunk-ISDTAGDN.min.js b/docs/_site/public/chunk-ISDTAGDN.min.js new file mode 100644 index 0000000..47ef6bf --- /dev/null +++ b/docs/_site/public/chunk-ISDTAGDN.min.js @@ -0,0 +1,2 @@ +import{O as x,h as r,ia as a,j as h}from"./chunk-U3SD26FK.min.js";var b=r((t,e)=>{let o;return e==="sandbox"&&(o=a("#i"+t)),(e==="sandbox"?a(o.nodes()[0].contentDocument.body):a("body")).select(`[id="${t}"]`)},"getDiagramElement"),B=r((t,e,o,n)=>{t.attr("class",o);let{width:i,height:s,x:m,y:d}=g(t,e);x(t,s,i,n);let c=w(m,d,i,s,e);t.attr("viewBox",c),h.debug(`viewBox configured: ${c} with padding: ${e}`)},"setupViewPortForSVG"),g=r((t,e)=>{let o=t.node()?.getBBox()||{width:0,height:0,x:0,y:0};return{width:o.width+e*2,height:o.height+e*2,x:o.x,y:o.y}},"calculateDimensionsWithPadding"),w=r((t,e,o,n,i)=>`${t-i} ${e-i} ${o} ${n}`,"createViewBox");export{b as a,B as b}; +//# sourceMappingURL=chunk-ISDTAGDN.min.js.map diff --git a/docs/_site/public/chunk-ISDTAGDN.min.js.map b/docs/_site/public/chunk-ISDTAGDN.min.js.map new file mode 100644 index 0000000..e1132e0 --- /dev/null +++ b/docs/_site/public/chunk-ISDTAGDN.min.js.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": ["../../node_modules/mermaid/dist/chunks/mermaid.core/chunk-5HRBRIJM.mjs"], + "sourcesContent": ["import {\n __name,\n configureSvgSize,\n log\n} from \"./chunk-6DBFFHIP.mjs\";\n\n// src/rendering-util/insertElementsForSize.js\nimport { select } from \"d3\";\nvar getDiagramElement = /* @__PURE__ */ __name((id, securityLevel) => {\n let sandboxElement;\n if (securityLevel === \"sandbox\") {\n sandboxElement = select(\"#i\" + id);\n }\n const root = securityLevel === \"sandbox\" ? select(sandboxElement.nodes()[0].contentDocument.body) : select(\"body\");\n const svg = root.select(`[id=\"${id}\"]`);\n return svg;\n}, \"getDiagramElement\");\n\n// src/rendering-util/setupViewPortForSVG.ts\nvar setupViewPortForSVG = /* @__PURE__ */ __name((svg, padding, cssDiagram, useMaxWidth) => {\n svg.attr(\"class\", cssDiagram);\n const { width, height, x, y } = calculateDimensionsWithPadding(svg, padding);\n configureSvgSize(svg, height, width, useMaxWidth);\n const viewBox = createViewBox(x, y, width, height, padding);\n svg.attr(\"viewBox\", viewBox);\n log.debug(`viewBox configured: ${viewBox} with padding: ${padding}`);\n}, \"setupViewPortForSVG\");\nvar calculateDimensionsWithPadding = /* @__PURE__ */ __name((svg, padding) => {\n const bounds = svg.node()?.getBBox() || { width: 0, height: 0, x: 0, y: 0 };\n return {\n width: bounds.width + padding * 2,\n height: bounds.height + padding * 2,\n x: bounds.x,\n y: bounds.y\n };\n}, \"calculateDimensionsWithPadding\");\nvar createViewBox = /* @__PURE__ */ __name((x, y, width, height, padding) => {\n return `${x - padding} ${y - padding} ${width} ${height}`;\n}, \"createViewBox\");\n\nexport {\n getDiagramElement,\n setupViewPortForSVG\n};\n"], + "mappings": "kEAQA,IAAIA,EAAoCC,EAAO,CAACC,EAAIC,IAAkB,CACpE,IAAIC,EACJ,OAAID,IAAkB,YACpBC,EAAiBC,EAAO,KAAOH,CAAE,IAEtBC,IAAkB,UAAYE,EAAOD,EAAe,MAAM,EAAE,CAAC,EAAE,gBAAgB,IAAI,EAAIC,EAAO,MAAM,GAChG,OAAO,QAAQH,CAAE,IAAI,CAExC,EAAG,mBAAmB,EAGlBI,EAAsCL,EAAO,CAACM,EAAKC,EAASC,EAAYC,IAAgB,CAC1FH,EAAI,KAAK,QAASE,CAAU,EAC5B,GAAM,CAAE,MAAAE,EAAO,OAAAC,EAAQ,EAAAC,EAAG,EAAAC,CAAE,EAAIC,EAA+BR,EAAKC,CAAO,EAC3EQ,EAAiBT,EAAKK,EAAQD,EAAOD,CAAW,EAChD,IAAMO,EAAUC,EAAcL,EAAGC,EAAGH,EAAOC,EAAQJ,CAAO,EAC1DD,EAAI,KAAK,UAAWU,CAAO,EAC3BE,EAAI,MAAM,uBAAuBF,CAAO,kBAAkBT,CAAO,EAAE,CACrE,EAAG,qBAAqB,EACpBO,EAAiDd,EAAO,CAACM,EAAKC,IAAY,CAC5E,IAAMY,EAASb,EAAI,KAAK,GAAG,QAAQ,GAAK,CAAE,MAAO,EAAG,OAAQ,EAAG,EAAG,EAAG,EAAG,CAAE,EAC1E,MAAO,CACL,MAAOa,EAAO,MAAQZ,EAAU,EAChC,OAAQY,EAAO,OAASZ,EAAU,EAClC,EAAGY,EAAO,EACV,EAAGA,EAAO,CACZ,CACF,EAAG,gCAAgC,EAC/BF,EAAgCjB,EAAO,CAACY,EAAGC,EAAGH,EAAOC,EAAQJ,IACxD,GAAGK,EAAIL,CAAO,IAAIM,EAAIN,CAAO,IAAIG,CAAK,IAAIC,CAAM,GACtD,eAAe", + "names": ["getDiagramElement", "__name", "id", "securityLevel", "sandboxElement", "select_default", "setupViewPortForSVG", "svg", "padding", "cssDiagram", "useMaxWidth", "width", "height", "x", "y", "calculateDimensionsWithPadding", "configureSvgSize", "viewBox", "createViewBox", "log", "bounds"] +} diff --git a/docs/_site/public/chunk-JL3VILNY.min.js b/docs/_site/public/chunk-JL3VILNY.min.js new file mode 100644 index 0000000..4d85c0c --- /dev/null +++ b/docs/_site/public/chunk-JL3VILNY.min.js @@ -0,0 +1,2 @@ +import{b as u,c as y,d as f,e as h}from"./chunk-TLYS76Q7.min.js";import{b as g,e as m,h as d}from"./chunk-N6ME3NZU.min.js";import{c as l}from"./chunk-PYPO7LRM.min.js";import{D as n,N as s,h as o,j as a}from"./chunk-U3SD26FK.min.js";var p={common:s,getConfig:n,insertCluster:m,insertEdge:f,insertEdgeLabel:u,insertMarkers:h,insertNode:d,interpolateToCurve:l,labelHelper:g,log:a,positionEdgeLabel:y},t={},L=o(r=>{for(let e of r)t[e.name]=e},"registerLayoutLoaders"),w=o(()=>{L([{name:"dagre",loader:o(async()=>await import("./dagre-4EVJKHTY-MHPLGZHX.min.js"),"loader")}])},"registerDefaultLayoutLoaders");w();var R=o(async(r,e)=>{if(!(r.layoutAlgorithm in t))throw new Error(`Unknown layout algorithm: ${r.layoutAlgorithm}`);let i=t[r.layoutAlgorithm];return(await i.loader()).render(r,e,p,{algorithm:i.algorithm})},"render"),_=o((r="",{fallback:e="dagre"}={})=>{if(r in t)return r;if(e in t)return a.warn(`Layout algorithm ${r} is not registered. Using ${e} as fallback.`),e;throw new Error(`Both layout algorithms ${r} and ${e} are not registered.`)},"getRegisteredLayoutAlgorithm");export{L as a,R as b,_ as c}; +//# sourceMappingURL=chunk-JL3VILNY.min.js.map diff --git a/docs/_site/public/chunk-JL3VILNY.min.js.map b/docs/_site/public/chunk-JL3VILNY.min.js.map new file mode 100644 index 0000000..b5fd72f --- /dev/null +++ b/docs/_site/public/chunk-JL3VILNY.min.js.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": ["../../node_modules/mermaid/dist/chunks/mermaid.core/chunk-BO7VGL7K.mjs"], + "sourcesContent": ["import {\n insertEdge,\n insertEdgeLabel,\n markers_default,\n positionEdgeLabel\n} from \"./chunk-66SQ7PYY.mjs\";\nimport {\n insertCluster,\n insertNode,\n labelHelper\n} from \"./chunk-7NZE2EM7.mjs\";\nimport {\n interpolateToCurve\n} from \"./chunk-7DKRZKHE.mjs\";\nimport {\n __name,\n common_default,\n getConfig,\n log\n} from \"./chunk-6DBFFHIP.mjs\";\n\n// src/internals.ts\nvar internalHelpers = {\n common: common_default,\n getConfig,\n insertCluster,\n insertEdge,\n insertEdgeLabel,\n insertMarkers: markers_default,\n insertNode,\n interpolateToCurve,\n labelHelper,\n log,\n positionEdgeLabel\n};\n\n// src/rendering-util/render.ts\nvar layoutAlgorithms = {};\nvar registerLayoutLoaders = /* @__PURE__ */ __name((loaders) => {\n for (const loader of loaders) {\n layoutAlgorithms[loader.name] = loader;\n }\n}, \"registerLayoutLoaders\");\nvar registerDefaultLayoutLoaders = /* @__PURE__ */ __name(() => {\n registerLayoutLoaders([\n {\n name: \"dagre\",\n loader: /* @__PURE__ */ __name(async () => await import(\"./dagre-4EVJKHTY.mjs\"), \"loader\")\n }\n ]);\n}, \"registerDefaultLayoutLoaders\");\nregisterDefaultLayoutLoaders();\nvar render = /* @__PURE__ */ __name(async (data4Layout, svg) => {\n if (!(data4Layout.layoutAlgorithm in layoutAlgorithms)) {\n throw new Error(`Unknown layout algorithm: ${data4Layout.layoutAlgorithm}`);\n }\n const layoutDefinition = layoutAlgorithms[data4Layout.layoutAlgorithm];\n const layoutRenderer = await layoutDefinition.loader();\n return layoutRenderer.render(data4Layout, svg, internalHelpers, {\n algorithm: layoutDefinition.algorithm\n });\n}, \"render\");\nvar getRegisteredLayoutAlgorithm = /* @__PURE__ */ __name((algorithm = \"\", { fallback = \"dagre\" } = {}) => {\n if (algorithm in layoutAlgorithms) {\n return algorithm;\n }\n if (fallback in layoutAlgorithms) {\n log.warn(`Layout algorithm ${algorithm} is not registered. Using ${fallback} as fallback.`);\n return fallback;\n }\n throw new Error(`Both layout algorithms ${algorithm} and ${fallback} are not registered.`);\n}, \"getRegisteredLayoutAlgorithm\");\n\nexport {\n registerLayoutLoaders,\n render,\n getRegisteredLayoutAlgorithm\n};\n"], + "mappings": "wOAsBA,IAAIA,EAAkB,CACpB,OAAQC,EACR,UAAAC,EACA,cAAAC,EACA,WAAAC,EACA,gBAAAC,EACA,cAAeC,EACf,WAAAC,EACA,mBAAAC,EACA,YAAAC,EACA,IAAAC,EACA,kBAAAC,CACF,EAGIC,EAAmB,CAAC,EACpBC,EAAwCC,EAAQC,GAAY,CAC9D,QAAWC,KAAUD,EACnBH,EAAiBI,EAAO,IAAI,EAAIA,CAEpC,EAAG,uBAAuB,EACtBC,EAA+CH,EAAO,IAAM,CAC9DD,EAAsB,CACpB,CACE,KAAM,QACN,OAAwBC,EAAO,SAAY,KAAM,QAAO,kCAAsB,EAAG,QAAQ,CAC3F,CACF,CAAC,CACH,EAAG,8BAA8B,EACjCG,EAA6B,EAC7B,IAAIC,EAAyBJ,EAAO,MAAOK,EAAaC,IAAQ,CAC9D,GAAI,EAAED,EAAY,mBAAmBP,GACnC,MAAM,IAAI,MAAM,6BAA6BO,EAAY,eAAe,EAAE,EAE5E,IAAME,EAAmBT,EAAiBO,EAAY,eAAe,EAErE,OADuB,MAAME,EAAiB,OAAO,GAC/B,OAAOF,EAAaC,EAAKpB,EAAiB,CAC9D,UAAWqB,EAAiB,SAC9B,CAAC,CACH,EAAG,QAAQ,EACPC,EAA+CR,EAAO,CAACS,EAAY,GAAI,CAAE,SAAAC,EAAW,OAAQ,EAAI,CAAC,IAAM,CACzG,GAAID,KAAaX,EACf,OAAOW,EAET,GAAIC,KAAYZ,EACd,OAAAF,EAAI,KAAK,oBAAoBa,CAAS,6BAA6BC,CAAQ,eAAe,EACnFA,EAET,MAAM,IAAI,MAAM,0BAA0BD,CAAS,QAAQC,CAAQ,sBAAsB,CAC3F,EAAG,8BAA8B", + "names": ["internalHelpers", "common_default", "getConfig", "insertCluster", "insertEdge", "insertEdgeLabel", "markers_default", "insertNode", "interpolateToCurve", "labelHelper", "log", "positionEdgeLabel", "layoutAlgorithms", "registerLayoutLoaders", "__name", "loaders", "loader", "registerDefaultLayoutLoaders", "render", "data4Layout", "svg", "layoutDefinition", "getRegisteredLayoutAlgorithm", "algorithm", "fallback"] +} diff --git a/docs/_site/public/chunk-N4YULA37.min.js b/docs/_site/public/chunk-N4YULA37.min.js new file mode 100644 index 0000000..e77886e --- /dev/null +++ b/docs/_site/public/chunk-N4YULA37.min.js @@ -0,0 +1,42 @@ +import{h as f}from"./chunk-U3SD26FK.min.js";function Ae(e){return typeof e>"u"||e===null}f(Ae,"isNothing");function Ee(e){return typeof e=="object"&&e!==null}f(Ee,"isObject");function Oe(e){return Array.isArray(e)?e:Ae(e)?[]:[e]}f(Oe,"toArray");function Ie(e,n){var i,l,r,u;if(n)for(u=Object.keys(n),i=0,l=u.length;ic&&(u=" ... ",n=l-c+u.length),i-l>c&&(o=" ...",i=l+c-o.length),{str:u+e.slice(n,i).replace(/\t/g,"\u2192")+o,pos:l-n+u.length}}f(W,"getLine");function G(e,n){return w.repeat(" ",n-e.length)+e}f(G,"padStart");function Ne(e,n){if(n=Object.create(n||null),!e.buffer)return null;n.maxLength||(n.maxLength=79),typeof n.indent!="number"&&(n.indent=1),typeof n.linesBefore!="number"&&(n.linesBefore=3),typeof n.linesAfter!="number"&&(n.linesAfter=2);for(var i=/\r?\n|\r|\0/g,l=[0],r=[],u,o=-1;u=i.exec(e.buffer);)r.push(u.index),l.push(u.index+u[0].length),e.position<=u.index&&o<0&&(o=l.length-2);o<0&&(o=l.length-1);var c="",a,t,d=Math.min(e.line+n.linesAfter,r.length).toString().length,p=n.maxLength-(n.indent+d+3);for(a=1;a<=n.linesBefore&&!(o-a<0);a++)t=W(e.buffer,l[o-a],r[o-a],e.position-(l[o]-l[o-a]),p),c=w.repeat(" ",n.indent)+G((e.line-a+1).toString(),d)+" | "+t.str+` +`+c;for(t=W(e.buffer,l[o],r[o],e.position,p),c+=w.repeat(" ",n.indent)+G((e.line+1).toString(),d)+" | "+t.str+` +`,c+=w.repeat("-",n.indent+d+3+t.pos)+`^ +`,a=1;a<=n.linesAfter&&!(o+a>=r.length);a++)t=W(e.buffer,l[o+a],r[o+a],e.position-(l[o]-l[o+a]),p),c+=w.repeat(" ",n.indent)+G((e.line+a+1).toString(),d)+" | "+t.str+` +`;return c.replace(/\n$/,"")}f(Ne,"makeSnippet");var Ai=Ne,yi=["kind","multi","resolve","construct","instanceOf","predicate","represent","representName","defaultStyle","styleAliases"],_i=["scalar","sequence","mapping"];function Re(e){var n={};return e!==null&&Object.keys(e).forEach(function(i){e[i].forEach(function(l){n[String(l)]=i})}),n}f(Re,"compileStyleAliases");function Me(e,n){if(n=n||{},Object.keys(n).forEach(function(i){if(yi.indexOf(i)===-1)throw new x('Unknown option "'+i+'" is met in definition of "'+e+'" YAML type.')}),this.options=n,this.tag=e,this.kind=n.kind||null,this.resolve=n.resolve||function(){return!0},this.construct=n.construct||function(i){return i},this.instanceOf=n.instanceOf||null,this.predicate=n.predicate||null,this.represent=n.represent||null,this.representName=n.representName||null,this.defaultStyle=n.defaultStyle||null,this.multi=n.multi||!1,this.styleAliases=Re(n.styleAliases||null),_i.indexOf(this.kind)===-1)throw new x('Unknown kind "'+this.kind+'" is specified for "'+e+'" YAML type.')}f(Me,"Type$1");var C=Me;function re(e,n){var i=[];return e[n].forEach(function(l){var r=i.length;i.forEach(function(u,o){u.tag===l.tag&&u.kind===l.kind&&u.multi===l.multi&&(r=o)}),i[r]=l}),i}f(re,"compileList");function Ye(){var e={scalar:{},sequence:{},mapping:{},fallback:{},multi:{scalar:[],sequence:[],mapping:[],fallback:[]}},n,i;function l(r){r.multi?(e.multi[r.kind].push(r),e.multi.fallback.push(r)):e[r.kind][r.tag]=e.fallback[r.tag]=r}for(f(l,"collectType"),n=0,i=arguments.length;n=0?"0b"+e.toString(2):"-0b"+e.toString(2).slice(1)},"binary"),octal:f(function(e){return e>=0?"0o"+e.toString(8):"-0o"+e.toString(8).slice(1)},"octal"),decimal:f(function(e){return e.toString(10)},"decimal"),hexadecimal:f(function(e){return e>=0?"0x"+e.toString(16).toUpperCase():"-0x"+e.toString(16).toUpperCase().slice(1)},"hexadecimal")},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}}),Ii=new RegExp("^(?:[-+]?(?:[0-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");function Qe(e){return!(e===null||!Ii.test(e)||e[e.length-1]==="_")}f(Qe,"resolveYamlFloat");function Ve(e){var n,i;return n=e.replace(/_/g,"").toLowerCase(),i=n[0]==="-"?-1:1,"+-".indexOf(n[0])>=0&&(n=n.slice(1)),n===".inf"?i===1?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:n===".nan"?NaN:i*parseFloat(n,10)}f(Ve,"constructYamlFloat");var ki=/^[-+]?[0-9]+e/;function Xe(e,n){var i;if(isNaN(e))switch(n){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===e)switch(n){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===e)switch(n){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(w.isNegativeZero(e))return"-0.0";return i=e.toString(10),ki.test(i)?i.replace("e",".e"):i}f(Xe,"representYamlFloat");function Ze(e){return Object.prototype.toString.call(e)==="[object Number]"&&(e%1!==0||w.isNegativeZero(e))}f(Ze,"isFloat");var Li=new C("tag:yaml.org,2002:float",{kind:"scalar",resolve:Qe,construct:Ve,predicate:Ze,represent:Xe,defaultStyle:"lowercase"}),ze=xi.extend({implicit:[Ti,Ei,Oi,Li]}),Ni=ze,Je=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),en=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");function nn(e){return e===null?!1:Je.exec(e)!==null||en.exec(e)!==null}f(nn,"resolveYamlTimestamp");function rn(e){var n,i,l,r,u,o,c,a=0,t=null,d,p,s;if(n=Je.exec(e),n===null&&(n=en.exec(e)),n===null)throw new Error("Date resolve error");if(i=+n[1],l=+n[2]-1,r=+n[3],!n[4])return new Date(Date.UTC(i,l,r));if(u=+n[4],o=+n[5],c=+n[6],n[7]){for(a=n[7].slice(0,3);a.length<3;)a+="0";a=+a}return n[9]&&(d=+n[10],p=+(n[11]||0),t=(d*60+p)*6e4,n[9]==="-"&&(t=-t)),s=new Date(Date.UTC(i,l,r,u,o,c,a)),t&&s.setTime(s.getTime()-t),s}f(rn,"constructYamlTimestamp");function ln(e){return e.toISOString()}f(ln,"representYamlTimestamp");var Ri=new C("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:nn,construct:rn,instanceOf:Date,represent:ln});function on(e){return e==="<<"||e===null}f(on,"resolveYamlMerge");var Mi=new C("tag:yaml.org,2002:merge",{kind:"scalar",resolve:on}),_e=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/= +\r`;function un(e){if(e===null)return!1;var n,i,l=0,r=e.length,u=_e;for(i=0;i64)){if(n<0)return!1;l+=6}return l%8===0}f(un,"resolveYamlBinary");function cn(e){var n,i,l=e.replace(/[\r\n=]/g,""),r=l.length,u=_e,o=0,c=[];for(n=0;n>16&255),c.push(o>>8&255),c.push(o&255)),o=o<<6|u.indexOf(l.charAt(n));return i=r%4*6,i===0?(c.push(o>>16&255),c.push(o>>8&255),c.push(o&255)):i===18?(c.push(o>>10&255),c.push(o>>2&255)):i===12&&c.push(o>>4&255),new Uint8Array(c)}f(cn,"constructYamlBinary");function fn(e){var n="",i=0,l,r,u=e.length,o=_e;for(l=0;l>18&63],n+=o[i>>12&63],n+=o[i>>6&63],n+=o[i&63]),i=(i<<8)+e[l];return r=u%3,r===0?(n+=o[i>>18&63],n+=o[i>>12&63],n+=o[i>>6&63],n+=o[i&63]):r===2?(n+=o[i>>10&63],n+=o[i>>4&63],n+=o[i<<2&63],n+=o[64]):r===1&&(n+=o[i>>2&63],n+=o[i<<4&63],n+=o[64],n+=o[64]),n}f(fn,"representYamlBinary");function an(e){return Object.prototype.toString.call(e)==="[object Uint8Array]"}f(an,"isBinary");var Yi=new C("tag:yaml.org,2002:binary",{kind:"scalar",resolve:un,construct:cn,predicate:an,represent:fn}),Fi=Object.prototype.hasOwnProperty,Pi=Object.prototype.toString;function tn(e){if(e===null)return!0;var n=[],i,l,r,u,o,c=e;for(i=0,l=c.length;i>10)+55296,(e-65536&1023)+56320)}f(bn,"charFromCodepoint");var xn=new Array(256),Tn=new Array(256);for(N=0;N<256;N++)xn[N]=oe(N)?1:0,Tn[N]=oe(N);var N;function En(e,n){this.input=e,this.filename=n.filename||null,this.schema=n.schema||gn,this.onWarning=n.onWarning||null,this.legacy=n.legacy||!1,this.json=n.json||!1,this.listener=n.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=e.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.firstTabInLine=-1,this.documents=[]}f(En,"State$1");function we(e,n){var i={name:e.filename,buffer:e.input.slice(0,-1),position:e.position,line:e.line,column:e.position-e.lineStart};return i.snippet=Ai(i),new x(n,i)}f(we,"generateError");function h(e,n){throw we(e,n)}f(h,"throwError");function H(e,n){e.onWarning&&e.onWarning.call(null,we(e,n))}f(H,"throwWarning");var Te={YAML:f(function(n,i,l){var r,u,o;n.version!==null&&h(n,"duplication of %YAML directive"),l.length!==1&&h(n,"YAML directive accepts exactly one argument"),r=/^([0-9]+)\.([0-9]+)$/.exec(l[0]),r===null&&h(n,"ill-formed argument of the YAML directive"),u=parseInt(r[1],10),o=parseInt(r[2],10),u!==1&&h(n,"unacceptable YAML version of the document"),n.version=l[0],n.checkLineBreaks=o<2,o!==1&&o!==2&&H(n,"unsupported YAML version of the document")},"handleYamlDirective"),TAG:f(function(n,i,l){var r,u;l.length!==2&&h(n,"TAG directive accepts exactly two arguments"),r=l[0],u=l[1],yn.test(r)||h(n,"ill-formed tag handle (first argument) of the TAG directive"),L.call(n.tagMap,r)&&h(n,'there is a previously declared suffix for "'+r+'" tag handle'),_n.test(u)||h(n,"ill-formed tag prefix (second argument) of the TAG directive");try{u=decodeURIComponent(u)}catch{h(n,"tag prefix is malformed: "+u)}n.tagMap[r]=u},"handleTagDirective")};function I(e,n,i,l){var r,u,o,c;if(n1&&(e.result+=w.repeat(` +`,n-1))}f(ee,"writeFoldedLines");function On(e,n,i){var l,r,u,o,c,a,t,d,p=e.kind,s=e.result,m;if(m=e.input.charCodeAt(e.position),b(m)||R(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)&&(r=e.input.charCodeAt(e.position+1),b(r)||i&&R(r)))return!1;for(e.kind="scalar",e.result="",u=o=e.position,c=!1;m!==0;){if(m===58){if(r=e.input.charCodeAt(e.position+1),b(r)||i&&R(r))break}else if(m===35){if(l=e.input.charCodeAt(e.position-1),b(l))break}else{if(e.position===e.lineStart&&q(e)||i&&R(m))break;if(E(m))if(a=e.line,t=e.lineStart,d=e.lineIndent,_(e,!1,-1),e.lineIndent>=n){c=!0,m=e.input.charCodeAt(e.position);continue}else{e.position=o,e.line=a,e.lineStart=t,e.lineIndent=d;break}}c&&(I(e,u,o,!1),ee(e,e.line-a),u=o=e.position,c=!1),k(m)||(o=e.position+1),m=e.input.charCodeAt(++e.position)}return I(e,u,o,!1),e.result?!0:(e.kind=p,e.result=s,!1)}f(On,"readPlainScalar");function In(e,n){var i,l,r;if(i=e.input.charCodeAt(e.position),i!==39)return!1;for(e.kind="scalar",e.result="",e.position++,l=r=e.position;(i=e.input.charCodeAt(e.position))!==0;)if(i===39)if(I(e,l,e.position,!0),i=e.input.charCodeAt(++e.position),i===39)l=e.position,e.position++,r=e.position;else return!0;else E(i)?(I(e,l,r,!0),ee(e,_(e,!1,n)),l=r=e.position):e.position===e.lineStart&&q(e)?h(e,"unexpected end of the document within a single quoted scalar"):(e.position++,r=e.position);h(e,"unexpected end of the stream within a single quoted scalar")}f(In,"readSingleQuotedScalar");function kn(e,n){var i,l,r,u,o,c;if(c=e.input.charCodeAt(e.position),c!==34)return!1;for(e.kind="scalar",e.result="",e.position++,i=l=e.position;(c=e.input.charCodeAt(e.position))!==0;){if(c===34)return I(e,i,e.position,!0),e.position++,!0;if(c===92){if(I(e,i,e.position,!0),c=e.input.charCodeAt(++e.position),E(c))_(e,!1,n);else if(c<256&&xn[c])e.result+=Tn[c],e.position++;else if((o=Cn(c))>0){for(r=o,u=0;r>0;r--)c=e.input.charCodeAt(++e.position),(o=wn(c))>=0?u=(u<<4)+o:h(e,"expected hexadecimal character");e.result+=bn(u),e.position++}else h(e,"unknown escape sequence");i=l=e.position}else E(c)?(I(e,i,l,!0),ee(e,_(e,!1,n)),i=l=e.position):e.position===e.lineStart&&q(e)?h(e,"unexpected end of the document within a double quoted scalar"):(e.position++,l=e.position)}h(e,"unexpected end of the stream within a double quoted scalar")}f(kn,"readDoubleQuotedScalar");function Ln(e,n){var i=!0,l,r,u,o=e.tag,c,a=e.anchor,t,d,p,s,m,g=Object.create(null),A,y,T,v;if(v=e.input.charCodeAt(e.position),v===91)d=93,m=!1,c=[];else if(v===123)d=125,m=!0,c={};else return!1;for(e.anchor!==null&&(e.anchorMap[e.anchor]=c),v=e.input.charCodeAt(++e.position);v!==0;){if(_(e,!0,n),v=e.input.charCodeAt(e.position),v===d)return e.position++,e.tag=o,e.anchor=a,e.kind=m?"mapping":"sequence",e.result=c,!0;i?v===44&&h(e,"expected the node content, but found ','"):h(e,"missed comma between flow collection entries"),y=A=T=null,p=s=!1,v===63&&(t=e.input.charCodeAt(e.position+1),b(t)&&(p=s=!0,e.position++,_(e,!0,n))),l=e.line,r=e.lineStart,u=e.position,Y(e,n,Q,!1,!0),y=e.tag,A=e.result,_(e,!0,n),v=e.input.charCodeAt(e.position),(s||e.line===l)&&v===58&&(p=!0,v=e.input.charCodeAt(++e.position),_(e,!0,n),Y(e,n,Q,!1,!0),T=e.result),m?M(e,c,g,y,A,T,l,r,u):p?c.push(M(e,null,g,y,A,T,l,r,u)):c.push(A),_(e,!0,n),v=e.input.charCodeAt(e.position),v===44?(i=!0,v=e.input.charCodeAt(++e.position)):i=!1}h(e,"unexpected end of the stream within a flow collection")}f(Ln,"readFlowCollection");function Nn(e,n){var i,l,r=ie,u=!1,o=!1,c=n,a=0,t=!1,d,p;if(p=e.input.charCodeAt(e.position),p===124)l=!1;else if(p===62)l=!0;else return!1;for(e.kind="scalar",e.result="";p!==0;)if(p=e.input.charCodeAt(++e.position),p===43||p===45)ie===r?r=p===43?xe:Ki:h(e,"repeat of a chomping mode identifier");else if((d=Sn(p))>=0)d===0?h(e,"bad explicit indentation width of a block scalar; it cannot be less than one"):o?h(e,"repeat of an indentation width identifier"):(c=n+d-1,o=!0);else break;if(k(p)){do p=e.input.charCodeAt(++e.position);while(k(p));if(p===35)do p=e.input.charCodeAt(++e.position);while(!E(p)&&p!==0)}for(;p!==0;){for(J(e),e.lineIndent=0,p=e.input.charCodeAt(e.position);(!o||e.lineIndentc&&(c=e.lineIndent),E(p)){a++;continue}if(e.lineIndentn)&&a!==0)h(e,"bad indentation of a sequence entry");else if(e.lineIndentn)&&(y&&(o=e.line,c=e.lineStart,a=e.position),Y(e,n,V,!0,r)&&(y?g=e.result:A=e.result),y||(M(e,p,s,m,g,A,o,c,a),m=g=A=null),_(e,!0,-1),v=e.input.charCodeAt(e.position)),(e.line===u||e.lineIndent>n)&&v!==0)h(e,"bad indentation of a mapping entry");else if(e.lineIndentn?a=1:e.lineIndent===n?a=0:e.lineIndentn?a=1:e.lineIndent===n?a=0:e.lineIndent tag; it should be "scalar", not "'+e.kind+'"'),p=0,s=e.implicitTypes.length;p"),e.result!==null&&g.kind!==e.kind&&h(e,"unacceptable node kind for !<"+e.tag+'> tag; it should be "'+g.kind+'", not "'+e.kind+'"'),g.resolve(e.result,e.tag)?(e.result=g.construct(e.result,e.tag),e.anchor!==null&&(e.anchorMap[e.anchor]=e.result)):h(e,"cannot resolve a node with !<"+e.tag+"> explicit tag")}return e.listener!==null&&e.listener("close",e),e.tag!==null||e.anchor!==null||d}f(Y,"composeNode");function Pn(e){var n=e.position,i,l,r,u=!1,o;for(e.version=null,e.checkLineBreaks=e.legacy,e.tagMap=Object.create(null),e.anchorMap=Object.create(null);(o=e.input.charCodeAt(e.position))!==0&&(_(e,!0,-1),o=e.input.charCodeAt(e.position),!(e.lineIndent>0||o!==37));){for(u=!0,o=e.input.charCodeAt(++e.position),i=e.position;o!==0&&!b(o);)o=e.input.charCodeAt(++e.position);for(l=e.input.slice(i,e.position),r=[],l.length<1&&h(e,"directive name must not be less than one character in length");o!==0;){for(;k(o);)o=e.input.charCodeAt(++e.position);if(o===35){do o=e.input.charCodeAt(++e.position);while(o!==0&&!E(o));break}if(E(o))break;for(i=e.position;o!==0&&!b(o);)o=e.input.charCodeAt(++e.position);r.push(e.input.slice(i,e.position))}o!==0&&J(e),L.call(Te,l)?Te[l](e,l,r):H(e,'unknown document directive "'+l+'"')}if(_(e,!0,-1),e.lineIndent===0&&e.input.charCodeAt(e.position)===45&&e.input.charCodeAt(e.position+1)===45&&e.input.charCodeAt(e.position+2)===45?(e.position+=3,_(e,!0,-1)):u&&h(e,"directives end mark is expected"),Y(e,e.lineIndent-1,V,!1,!0),_(e,!0,-1),e.checkLineBreaks&&Wi.test(e.input.slice(n,e.position))&&H(e,"non-ASCII line breaks are interpreted as content"),e.documents.push(e.result),e.position===e.lineStart&&q(e)){e.input.charCodeAt(e.position)===46&&(e.position+=3,_(e,!0,-1));return}if(e.position"u"&&(i=n,n=null);var l=Ce(e,i);if(typeof n!="function")return l;for(var r=0,u=l.length;r=55296&&i<=56319&&n+1=56320&&l<=57343)?(i-55296)*1024+l-56320+65536:i}f(P,"codePointAt");function be(e){var n=/^\n* /;return n.test(e)}f(be,"needIndentIndicator");var ei=1,he=2,ni=3,ii=4,F=5;function ri(e,n,i,l,r,u,o,c){var a,t=0,d=null,p=!1,s=!1,m=l!==-1,g=-1,A=zn(P(e,0))&&Jn(P(e,e.length-1));if(n||o)for(a=0;a=65536?a+=2:a++){if(t=P(e,a),!D(t))return F;A=A&&pe(t,d,c),d=t}else{for(a=0;a=65536?a+=2:a++){if(t=P(e,a),t===j)p=!0,m&&(s=s||a-g-1>l&&e[g+1]!==" ",g=a);else if(!D(t))return F;A=A&&pe(t,d,c),d=t}s=s||m&&a-g-1>l&&e[g+1]!==" "}return!p&&!s?A&&!o&&!r(e)?ei:u===U?F:he:i>9&&be(e)?F:o?u===U?F:he:s?ii:ni}f(ri,"chooseScalarStyle");function li(e,n,i,l,r){e.dump=function(){if(n.length===0)return e.quotingType===U?'""':"''";if(!e.noCompatMode&&(pr.indexOf(n)!==-1||hr.test(n)))return e.quotingType===U?'"'+n+'"':"'"+n+"'";var u=e.indent*Math.max(1,i),o=e.lineWidth===-1?-1:Math.max(Math.min(e.lineWidth,40),e.lineWidth-u),c=l||e.flowLevel>-1&&i>=e.flowLevel;function a(t){return Zn(e,t)}switch(f(a,"testAmbiguity"),ri(n,c,e.indent,o,a,e.quotingType,e.forceQuotes&&!l,r)){case ei:return n;case he:return"'"+n.replace(/'/g,"''")+"'";case ni:return"|"+de(n,e.indent)+se(ae(n,u));case ii:return">"+de(n,e.indent)+se(ae(oi(n,o),u));case F:return'"'+ui(n)+'"';default:throw new x("impossible error: invalid scalar style")}}()}f(li,"writeScalar");function de(e,n){var i=be(e)?String(n):"",l=e[e.length-1]===` +`,r=l&&(e[e.length-2]===` +`||e===` +`),u=r?"+":l?"":"-";return i+u+` +`}f(de,"blockHeader");function se(e){return e[e.length-1]===` +`?e.slice(0,-1):e}f(se,"dropEndingNewline");function oi(e,n){for(var i=/(\n+)([^\n]*)/g,l=function(){var t=e.indexOf(` +`);return t=t!==-1?t:e.length,i.lastIndex=t,me(e.slice(0,t),n)}(),r=e[0]===` +`||e[0]===" ",u,o;o=i.exec(e);){var c=o[1],a=o[2];u=a[0]===" ",l+=c+(!r&&!u&&a!==""?` +`:"")+me(a,n),r=u}return l}f(oi,"foldString");function me(e,n){if(e===""||e[0]===" ")return e;for(var i=/ [^ ]/g,l,r=0,u,o=0,c=0,a="";l=i.exec(e);)c=l.index,c-r>n&&(u=o>r?o:c,a+=` +`+e.slice(r,u),r=u+1),o=c;return a+=` +`,e.length-r>n&&o>r?a+=e.slice(r,o)+` +`+e.slice(o+1):a+=e.slice(r),a.slice(1)}f(me,"foldLine");function ui(e){for(var n="",i=0,l,r=0;r=65536?r+=2:r++)i=P(e,r),l=S[i],!l&&D(i)?(n+=e[r],i>=65536&&(n+=e[r+1])):n+=l||Vn(i);return n}f(ui,"escapeString");function ci(e,n,i){var l="",r=e.tag,u,o,c;for(u=0,o=i.length;u"u"&&O(e,n,null,!1,!1))&&(l!==""&&(l+=","+(e.condenseFlow?"":" ")),l+=e.dump);e.tag=r,e.dump="["+l+"]"}f(ci,"writeFlowSequence");function ge(e,n,i,l){var r="",u=e.tag,o,c,a;for(o=0,c=i.length;o"u"&&O(e,n+1,null,!0,!0,!1,!0))&&((!l||r!=="")&&(r+=Z(e,n)),e.dump&&j===e.dump.charCodeAt(0)?r+="-":r+="- ",r+=e.dump);e.tag=u,e.dump=r||"[]"}f(ge,"writeBlockSequence");function fi(e,n,i){var l="",r=e.tag,u=Object.keys(i),o,c,a,t,d;for(o=0,c=u.length;o1024&&(d+="? "),d+=e.dump+(e.condenseFlow?'"':"")+":"+(e.condenseFlow?"":" "),O(e,n,t,!1,!1)&&(d+=e.dump,l+=d));e.tag=r,e.dump="{"+l+"}"}f(fi,"writeFlowMapping");function ai(e,n,i,l){var r="",u=e.tag,o=Object.keys(i),c,a,t,d,p,s;if(e.sortKeys===!0)o.sort();else if(typeof e.sortKeys=="function")o.sort(e.sortKeys);else if(e.sortKeys)throw new x("sortKeys must be a boolean or a function");for(c=0,a=o.length;c1024,p&&(e.dump&&j===e.dump.charCodeAt(0)?s+="?":s+="? "),s+=e.dump,p&&(s+=Z(e,n)),O(e,n+1,d,!0,p)&&(e.dump&&j===e.dump.charCodeAt(0)?s+=":":s+=": ",s+=e.dump,r+=s));e.tag=u,e.dump=r||"{}"}f(ai,"writeBlockMapping");function ve(e,n,i){var l,r,u,o,c,a;for(r=i?e.explicitTypes:e.implicitTypes,u=0,o=r.length;u tag resolver accepts not "'+a+'" style');e.dump=l}return!0}return!1}f(ve,"detectType");function O(e,n,i,l,r,u,o){e.tag=null,e.dump=i,ve(e,i,!1)||ve(e,i,!0);var c=jn.call(e.dump),a=l,t;l&&(l=e.flowLevel<0||e.flowLevel>n);var d=c==="[object Object]"||c==="[object Array]",p,s;if(d&&(p=e.duplicates.indexOf(i),s=p!==-1),(e.tag!==null&&e.tag!=="?"||s||e.indent!==2&&n>0)&&(r=!1),s&&e.usedDuplicates[p])e.dump="*ref_"+p;else{if(d&&s&&!e.usedDuplicates[p]&&(e.usedDuplicates[p]=!0),c==="[object Object]")l&&Object.keys(e.dump).length!==0?(ai(e,n,e.dump,r),s&&(e.dump="&ref_"+p+e.dump)):(fi(e,n,e.dump),s&&(e.dump="&ref_"+p+" "+e.dump));else if(c==="[object Array]")l&&e.dump.length!==0?(e.noArrayIndent&&!o&&n>0?ge(e,n-1,e.dump,r):ge(e,n,e.dump,r),s&&(e.dump="&ref_"+p+e.dump)):(ci(e,n,e.dump),s&&(e.dump="&ref_"+p+" "+e.dump));else if(c==="[object String]")e.tag!=="?"&&li(e,e.dump,n,u,a);else{if(c==="[object Undefined]")return!1;if(e.skipInvalid)return!1;throw new x("unacceptable kind of an object to dump "+c)}e.tag!==null&&e.tag!=="?"&&(t=encodeURI(e.tag[0]==="!"?e.tag.slice(1):e.tag).replace(/!/g,"%21"),e.tag[0]==="!"?t="!"+t:t.slice(0,18)==="tag:yaml.org,2002:"?t="!!"+t.slice(18):t="!<"+t+">",e.dump=t+" "+e.dump)}return!0}f(O,"writeNode");function ti(e,n){var i=[],l=[],r,u;for(z(e,i,l),r=0,u=l.length;r maxHalfLength) {\n head = \" ... \";\n lineStart = position - maxHalfLength + head.length;\n }\n if (lineEnd - position > maxHalfLength) {\n tail = \" ...\";\n lineEnd = position + maxHalfLength - tail.length;\n }\n return {\n str: head + buffer.slice(lineStart, lineEnd).replace(/\\t/g, \"\\u2192\") + tail,\n pos: position - lineStart + head.length\n // relative position\n };\n}\n__name(getLine, \"getLine\");\nfunction padStart(string, max) {\n return common.repeat(\" \", max - string.length) + string;\n}\n__name(padStart, \"padStart\");\nfunction makeSnippet(mark, options) {\n options = Object.create(options || null);\n if (!mark.buffer) return null;\n if (!options.maxLength) options.maxLength = 79;\n if (typeof options.indent !== \"number\") options.indent = 1;\n if (typeof options.linesBefore !== \"number\") options.linesBefore = 3;\n if (typeof options.linesAfter !== \"number\") options.linesAfter = 2;\n var re = /\\r?\\n|\\r|\\0/g;\n var lineStarts = [0];\n var lineEnds = [];\n var match;\n var foundLineNo = -1;\n while (match = re.exec(mark.buffer)) {\n lineEnds.push(match.index);\n lineStarts.push(match.index + match[0].length);\n if (mark.position <= match.index && foundLineNo < 0) {\n foundLineNo = lineStarts.length - 2;\n }\n }\n if (foundLineNo < 0) foundLineNo = lineStarts.length - 1;\n var result = \"\", i, line;\n var lineNoLength = Math.min(mark.line + options.linesAfter, lineEnds.length).toString().length;\n var maxLineLength = options.maxLength - (options.indent + lineNoLength + 3);\n for (i = 1; i <= options.linesBefore; i++) {\n if (foundLineNo - i < 0) break;\n line = getLine(\n mark.buffer,\n lineStarts[foundLineNo - i],\n lineEnds[foundLineNo - i],\n mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo - i]),\n maxLineLength\n );\n result = common.repeat(\" \", options.indent) + padStart((mark.line - i + 1).toString(), lineNoLength) + \" | \" + line.str + \"\\n\" + result;\n }\n line = getLine(mark.buffer, lineStarts[foundLineNo], lineEnds[foundLineNo], mark.position, maxLineLength);\n result += common.repeat(\" \", options.indent) + padStart((mark.line + 1).toString(), lineNoLength) + \" | \" + line.str + \"\\n\";\n result += common.repeat(\"-\", options.indent + lineNoLength + 3 + line.pos) + \"^\\n\";\n for (i = 1; i <= options.linesAfter; i++) {\n if (foundLineNo + i >= lineEnds.length) break;\n line = getLine(\n mark.buffer,\n lineStarts[foundLineNo + i],\n lineEnds[foundLineNo + i],\n mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo + i]),\n maxLineLength\n );\n result += common.repeat(\" \", options.indent) + padStart((mark.line + i + 1).toString(), lineNoLength) + \" | \" + line.str + \"\\n\";\n }\n return result.replace(/\\n$/, \"\");\n}\n__name(makeSnippet, \"makeSnippet\");\nvar snippet = makeSnippet;\nvar TYPE_CONSTRUCTOR_OPTIONS = [\n \"kind\",\n \"multi\",\n \"resolve\",\n \"construct\",\n \"instanceOf\",\n \"predicate\",\n \"represent\",\n \"representName\",\n \"defaultStyle\",\n \"styleAliases\"\n];\nvar YAML_NODE_KINDS = [\n \"scalar\",\n \"sequence\",\n \"mapping\"\n];\nfunction compileStyleAliases(map2) {\n var result = {};\n if (map2 !== null) {\n Object.keys(map2).forEach(function(style) {\n map2[style].forEach(function(alias) {\n result[String(alias)] = style;\n });\n });\n }\n return result;\n}\n__name(compileStyleAliases, \"compileStyleAliases\");\nfunction Type$1(tag, options) {\n options = options || {};\n Object.keys(options).forEach(function(name) {\n if (TYPE_CONSTRUCTOR_OPTIONS.indexOf(name) === -1) {\n throw new exception('Unknown option \"' + name + '\" is met in definition of \"' + tag + '\" YAML type.');\n }\n });\n this.options = options;\n this.tag = tag;\n this.kind = options[\"kind\"] || null;\n this.resolve = options[\"resolve\"] || function() {\n return true;\n };\n this.construct = options[\"construct\"] || function(data) {\n return data;\n };\n this.instanceOf = options[\"instanceOf\"] || null;\n this.predicate = options[\"predicate\"] || null;\n this.represent = options[\"represent\"] || null;\n this.representName = options[\"representName\"] || null;\n this.defaultStyle = options[\"defaultStyle\"] || null;\n this.multi = options[\"multi\"] || false;\n this.styleAliases = compileStyleAliases(options[\"styleAliases\"] || null);\n if (YAML_NODE_KINDS.indexOf(this.kind) === -1) {\n throw new exception('Unknown kind \"' + this.kind + '\" is specified for \"' + tag + '\" YAML type.');\n }\n}\n__name(Type$1, \"Type$1\");\nvar type = Type$1;\nfunction compileList(schema2, name) {\n var result = [];\n schema2[name].forEach(function(currentType) {\n var newIndex = result.length;\n result.forEach(function(previousType, previousIndex) {\n if (previousType.tag === currentType.tag && previousType.kind === currentType.kind && previousType.multi === currentType.multi) {\n newIndex = previousIndex;\n }\n });\n result[newIndex] = currentType;\n });\n return result;\n}\n__name(compileList, \"compileList\");\nfunction compileMap() {\n var result = {\n scalar: {},\n sequence: {},\n mapping: {},\n fallback: {},\n multi: {\n scalar: [],\n sequence: [],\n mapping: [],\n fallback: []\n }\n }, index, length;\n function collectType(type2) {\n if (type2.multi) {\n result.multi[type2.kind].push(type2);\n result.multi[\"fallback\"].push(type2);\n } else {\n result[type2.kind][type2.tag] = result[\"fallback\"][type2.tag] = type2;\n }\n }\n __name(collectType, \"collectType\");\n for (index = 0, length = arguments.length; index < length; index += 1) {\n arguments[index].forEach(collectType);\n }\n return result;\n}\n__name(compileMap, \"compileMap\");\nfunction Schema$1(definition) {\n return this.extend(definition);\n}\n__name(Schema$1, \"Schema$1\");\nSchema$1.prototype.extend = /* @__PURE__ */ __name(function extend2(definition) {\n var implicit = [];\n var explicit = [];\n if (definition instanceof type) {\n explicit.push(definition);\n } else if (Array.isArray(definition)) {\n explicit = explicit.concat(definition);\n } else if (definition && (Array.isArray(definition.implicit) || Array.isArray(definition.explicit))) {\n if (definition.implicit) implicit = implicit.concat(definition.implicit);\n if (definition.explicit) explicit = explicit.concat(definition.explicit);\n } else {\n throw new exception(\"Schema.extend argument should be a Type, [ Type ], or a schema definition ({ implicit: [...], explicit: [...] })\");\n }\n implicit.forEach(function(type$1) {\n if (!(type$1 instanceof type)) {\n throw new exception(\"Specified list of YAML types (or a single Type object) contains a non-Type object.\");\n }\n if (type$1.loadKind && type$1.loadKind !== \"scalar\") {\n throw new exception(\"There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.\");\n }\n if (type$1.multi) {\n throw new exception(\"There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit.\");\n }\n });\n explicit.forEach(function(type$1) {\n if (!(type$1 instanceof type)) {\n throw new exception(\"Specified list of YAML types (or a single Type object) contains a non-Type object.\");\n }\n });\n var result = Object.create(Schema$1.prototype);\n result.implicit = (this.implicit || []).concat(implicit);\n result.explicit = (this.explicit || []).concat(explicit);\n result.compiledImplicit = compileList(result, \"implicit\");\n result.compiledExplicit = compileList(result, \"explicit\");\n result.compiledTypeMap = compileMap(result.compiledImplicit, result.compiledExplicit);\n return result;\n}, \"extend\");\nvar schema = Schema$1;\nvar str = new type(\"tag:yaml.org,2002:str\", {\n kind: \"scalar\",\n construct: /* @__PURE__ */ __name(function(data) {\n return data !== null ? data : \"\";\n }, \"construct\")\n});\nvar seq = new type(\"tag:yaml.org,2002:seq\", {\n kind: \"sequence\",\n construct: /* @__PURE__ */ __name(function(data) {\n return data !== null ? data : [];\n }, \"construct\")\n});\nvar map = new type(\"tag:yaml.org,2002:map\", {\n kind: \"mapping\",\n construct: /* @__PURE__ */ __name(function(data) {\n return data !== null ? data : {};\n }, \"construct\")\n});\nvar failsafe = new schema({\n explicit: [\n str,\n seq,\n map\n ]\n});\nfunction resolveYamlNull(data) {\n if (data === null) return true;\n var max = data.length;\n return max === 1 && data === \"~\" || max === 4 && (data === \"null\" || data === \"Null\" || data === \"NULL\");\n}\n__name(resolveYamlNull, \"resolveYamlNull\");\nfunction constructYamlNull() {\n return null;\n}\n__name(constructYamlNull, \"constructYamlNull\");\nfunction isNull(object) {\n return object === null;\n}\n__name(isNull, \"isNull\");\nvar _null = new type(\"tag:yaml.org,2002:null\", {\n kind: \"scalar\",\n resolve: resolveYamlNull,\n construct: constructYamlNull,\n predicate: isNull,\n represent: {\n canonical: /* @__PURE__ */ __name(function() {\n return \"~\";\n }, \"canonical\"),\n lowercase: /* @__PURE__ */ __name(function() {\n return \"null\";\n }, \"lowercase\"),\n uppercase: /* @__PURE__ */ __name(function() {\n return \"NULL\";\n }, \"uppercase\"),\n camelcase: /* @__PURE__ */ __name(function() {\n return \"Null\";\n }, \"camelcase\"),\n empty: /* @__PURE__ */ __name(function() {\n return \"\";\n }, \"empty\")\n },\n defaultStyle: \"lowercase\"\n});\nfunction resolveYamlBoolean(data) {\n if (data === null) return false;\n var max = data.length;\n return max === 4 && (data === \"true\" || data === \"True\" || data === \"TRUE\") || max === 5 && (data === \"false\" || data === \"False\" || data === \"FALSE\");\n}\n__name(resolveYamlBoolean, \"resolveYamlBoolean\");\nfunction constructYamlBoolean(data) {\n return data === \"true\" || data === \"True\" || data === \"TRUE\";\n}\n__name(constructYamlBoolean, \"constructYamlBoolean\");\nfunction isBoolean(object) {\n return Object.prototype.toString.call(object) === \"[object Boolean]\";\n}\n__name(isBoolean, \"isBoolean\");\nvar bool = new type(\"tag:yaml.org,2002:bool\", {\n kind: \"scalar\",\n resolve: resolveYamlBoolean,\n construct: constructYamlBoolean,\n predicate: isBoolean,\n represent: {\n lowercase: /* @__PURE__ */ __name(function(object) {\n return object ? \"true\" : \"false\";\n }, \"lowercase\"),\n uppercase: /* @__PURE__ */ __name(function(object) {\n return object ? \"TRUE\" : \"FALSE\";\n }, \"uppercase\"),\n camelcase: /* @__PURE__ */ __name(function(object) {\n return object ? \"True\" : \"False\";\n }, \"camelcase\")\n },\n defaultStyle: \"lowercase\"\n});\nfunction isHexCode(c) {\n return 48 <= c && c <= 57 || 65 <= c && c <= 70 || 97 <= c && c <= 102;\n}\n__name(isHexCode, \"isHexCode\");\nfunction isOctCode(c) {\n return 48 <= c && c <= 55;\n}\n__name(isOctCode, \"isOctCode\");\nfunction isDecCode(c) {\n return 48 <= c && c <= 57;\n}\n__name(isDecCode, \"isDecCode\");\nfunction resolveYamlInteger(data) {\n if (data === null) return false;\n var max = data.length, index = 0, hasDigits = false, ch;\n if (!max) return false;\n ch = data[index];\n if (ch === \"-\" || ch === \"+\") {\n ch = data[++index];\n }\n if (ch === \"0\") {\n if (index + 1 === max) return true;\n ch = data[++index];\n if (ch === \"b\") {\n index++;\n for (; index < max; index++) {\n ch = data[index];\n if (ch === \"_\") continue;\n if (ch !== \"0\" && ch !== \"1\") return false;\n hasDigits = true;\n }\n return hasDigits && ch !== \"_\";\n }\n if (ch === \"x\") {\n index++;\n for (; index < max; index++) {\n ch = data[index];\n if (ch === \"_\") continue;\n if (!isHexCode(data.charCodeAt(index))) return false;\n hasDigits = true;\n }\n return hasDigits && ch !== \"_\";\n }\n if (ch === \"o\") {\n index++;\n for (; index < max; index++) {\n ch = data[index];\n if (ch === \"_\") continue;\n if (!isOctCode(data.charCodeAt(index))) return false;\n hasDigits = true;\n }\n return hasDigits && ch !== \"_\";\n }\n }\n if (ch === \"_\") return false;\n for (; index < max; index++) {\n ch = data[index];\n if (ch === \"_\") continue;\n if (!isDecCode(data.charCodeAt(index))) {\n return false;\n }\n hasDigits = true;\n }\n if (!hasDigits || ch === \"_\") return false;\n return true;\n}\n__name(resolveYamlInteger, \"resolveYamlInteger\");\nfunction constructYamlInteger(data) {\n var value = data, sign = 1, ch;\n if (value.indexOf(\"_\") !== -1) {\n value = value.replace(/_/g, \"\");\n }\n ch = value[0];\n if (ch === \"-\" || ch === \"+\") {\n if (ch === \"-\") sign = -1;\n value = value.slice(1);\n ch = value[0];\n }\n if (value === \"0\") return 0;\n if (ch === \"0\") {\n if (value[1] === \"b\") return sign * parseInt(value.slice(2), 2);\n if (value[1] === \"x\") return sign * parseInt(value.slice(2), 16);\n if (value[1] === \"o\") return sign * parseInt(value.slice(2), 8);\n }\n return sign * parseInt(value, 10);\n}\n__name(constructYamlInteger, \"constructYamlInteger\");\nfunction isInteger(object) {\n return Object.prototype.toString.call(object) === \"[object Number]\" && (object % 1 === 0 && !common.isNegativeZero(object));\n}\n__name(isInteger, \"isInteger\");\nvar int = new type(\"tag:yaml.org,2002:int\", {\n kind: \"scalar\",\n resolve: resolveYamlInteger,\n construct: constructYamlInteger,\n predicate: isInteger,\n represent: {\n binary: /* @__PURE__ */ __name(function(obj) {\n return obj >= 0 ? \"0b\" + obj.toString(2) : \"-0b\" + obj.toString(2).slice(1);\n }, \"binary\"),\n octal: /* @__PURE__ */ __name(function(obj) {\n return obj >= 0 ? \"0o\" + obj.toString(8) : \"-0o\" + obj.toString(8).slice(1);\n }, \"octal\"),\n decimal: /* @__PURE__ */ __name(function(obj) {\n return obj.toString(10);\n }, \"decimal\"),\n /* eslint-disable max-len */\n hexadecimal: /* @__PURE__ */ __name(function(obj) {\n return obj >= 0 ? \"0x\" + obj.toString(16).toUpperCase() : \"-0x\" + obj.toString(16).toUpperCase().slice(1);\n }, \"hexadecimal\")\n },\n defaultStyle: \"decimal\",\n styleAliases: {\n binary: [2, \"bin\"],\n octal: [8, \"oct\"],\n decimal: [10, \"dec\"],\n hexadecimal: [16, \"hex\"]\n }\n});\nvar YAML_FLOAT_PATTERN = new RegExp(\n // 2.5e4, 2.5 and integers\n \"^(?:[-+]?(?:[0-9][0-9_]*)(?:\\\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?\\\\.(?:inf|Inf|INF)|\\\\.(?:nan|NaN|NAN))$\"\n);\nfunction resolveYamlFloat(data) {\n if (data === null) return false;\n if (!YAML_FLOAT_PATTERN.test(data) || // Quick hack to not allow integers end with `_`\n // Probably should update regexp & check speed\n data[data.length - 1] === \"_\") {\n return false;\n }\n return true;\n}\n__name(resolveYamlFloat, \"resolveYamlFloat\");\nfunction constructYamlFloat(data) {\n var value, sign;\n value = data.replace(/_/g, \"\").toLowerCase();\n sign = value[0] === \"-\" ? -1 : 1;\n if (\"+-\".indexOf(value[0]) >= 0) {\n value = value.slice(1);\n }\n if (value === \".inf\") {\n return sign === 1 ? Number.POSITIVE_INFINITY : Number.NEGATIVE_INFINITY;\n } else if (value === \".nan\") {\n return NaN;\n }\n return sign * parseFloat(value, 10);\n}\n__name(constructYamlFloat, \"constructYamlFloat\");\nvar SCIENTIFIC_WITHOUT_DOT = /^[-+]?[0-9]+e/;\nfunction representYamlFloat(object, style) {\n var res;\n if (isNaN(object)) {\n switch (style) {\n case \"lowercase\":\n return \".nan\";\n case \"uppercase\":\n return \".NAN\";\n case \"camelcase\":\n return \".NaN\";\n }\n } else if (Number.POSITIVE_INFINITY === object) {\n switch (style) {\n case \"lowercase\":\n return \".inf\";\n case \"uppercase\":\n return \".INF\";\n case \"camelcase\":\n return \".Inf\";\n }\n } else if (Number.NEGATIVE_INFINITY === object) {\n switch (style) {\n case \"lowercase\":\n return \"-.inf\";\n case \"uppercase\":\n return \"-.INF\";\n case \"camelcase\":\n return \"-.Inf\";\n }\n } else if (common.isNegativeZero(object)) {\n return \"-0.0\";\n }\n res = object.toString(10);\n return SCIENTIFIC_WITHOUT_DOT.test(res) ? res.replace(\"e\", \".e\") : res;\n}\n__name(representYamlFloat, \"representYamlFloat\");\nfunction isFloat(object) {\n return Object.prototype.toString.call(object) === \"[object Number]\" && (object % 1 !== 0 || common.isNegativeZero(object));\n}\n__name(isFloat, \"isFloat\");\nvar float = new type(\"tag:yaml.org,2002:float\", {\n kind: \"scalar\",\n resolve: resolveYamlFloat,\n construct: constructYamlFloat,\n predicate: isFloat,\n represent: representYamlFloat,\n defaultStyle: \"lowercase\"\n});\nvar json = failsafe.extend({\n implicit: [\n _null,\n bool,\n int,\n float\n ]\n});\nvar core = json;\nvar YAML_DATE_REGEXP = new RegExp(\n \"^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$\"\n);\nvar YAML_TIMESTAMP_REGEXP = new RegExp(\n \"^([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]))?))?$\"\n);\nfunction resolveYamlTimestamp(data) {\n if (data === null) return false;\n if (YAML_DATE_REGEXP.exec(data) !== null) return true;\n if (YAML_TIMESTAMP_REGEXP.exec(data) !== null) return true;\n return false;\n}\n__name(resolveYamlTimestamp, \"resolveYamlTimestamp\");\nfunction constructYamlTimestamp(data) {\n var match, year, month, day, hour, minute, second, fraction = 0, delta = null, tz_hour, tz_minute, date;\n match = YAML_DATE_REGEXP.exec(data);\n if (match === null) match = YAML_TIMESTAMP_REGEXP.exec(data);\n if (match === null) throw new Error(\"Date resolve error\");\n year = +match[1];\n month = +match[2] - 1;\n day = +match[3];\n if (!match[4]) {\n return new Date(Date.UTC(year, month, day));\n }\n hour = +match[4];\n minute = +match[5];\n second = +match[6];\n if (match[7]) {\n fraction = match[7].slice(0, 3);\n while (fraction.length < 3) {\n fraction += \"0\";\n }\n fraction = +fraction;\n }\n if (match[9]) {\n tz_hour = +match[10];\n tz_minute = +(match[11] || 0);\n delta = (tz_hour * 60 + tz_minute) * 6e4;\n if (match[9] === \"-\") delta = -delta;\n }\n date = new Date(Date.UTC(year, month, day, hour, minute, second, fraction));\n if (delta) date.setTime(date.getTime() - delta);\n return date;\n}\n__name(constructYamlTimestamp, \"constructYamlTimestamp\");\nfunction representYamlTimestamp(object) {\n return object.toISOString();\n}\n__name(representYamlTimestamp, \"representYamlTimestamp\");\nvar timestamp = new type(\"tag:yaml.org,2002:timestamp\", {\n kind: \"scalar\",\n resolve: resolveYamlTimestamp,\n construct: constructYamlTimestamp,\n instanceOf: Date,\n represent: representYamlTimestamp\n});\nfunction resolveYamlMerge(data) {\n return data === \"<<\" || data === null;\n}\n__name(resolveYamlMerge, \"resolveYamlMerge\");\nvar merge = new type(\"tag:yaml.org,2002:merge\", {\n kind: \"scalar\",\n resolve: resolveYamlMerge\n});\nvar BASE64_MAP = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\\n\\r\";\nfunction resolveYamlBinary(data) {\n if (data === null) return false;\n var code, idx, bitlen = 0, max = data.length, map2 = BASE64_MAP;\n for (idx = 0; idx < max; idx++) {\n code = map2.indexOf(data.charAt(idx));\n if (code > 64) continue;\n if (code < 0) return false;\n bitlen += 6;\n }\n return bitlen % 8 === 0;\n}\n__name(resolveYamlBinary, \"resolveYamlBinary\");\nfunction constructYamlBinary(data) {\n var idx, tailbits, input = data.replace(/[\\r\\n=]/g, \"\"), max = input.length, map2 = BASE64_MAP, bits = 0, result = [];\n for (idx = 0; idx < max; idx++) {\n if (idx % 4 === 0 && idx) {\n result.push(bits >> 16 & 255);\n result.push(bits >> 8 & 255);\n result.push(bits & 255);\n }\n bits = bits << 6 | map2.indexOf(input.charAt(idx));\n }\n tailbits = max % 4 * 6;\n if (tailbits === 0) {\n result.push(bits >> 16 & 255);\n result.push(bits >> 8 & 255);\n result.push(bits & 255);\n } else if (tailbits === 18) {\n result.push(bits >> 10 & 255);\n result.push(bits >> 2 & 255);\n } else if (tailbits === 12) {\n result.push(bits >> 4 & 255);\n }\n return new Uint8Array(result);\n}\n__name(constructYamlBinary, \"constructYamlBinary\");\nfunction representYamlBinary(object) {\n var result = \"\", bits = 0, idx, tail, max = object.length, map2 = BASE64_MAP;\n for (idx = 0; idx < max; idx++) {\n if (idx % 3 === 0 && idx) {\n result += map2[bits >> 18 & 63];\n result += map2[bits >> 12 & 63];\n result += map2[bits >> 6 & 63];\n result += map2[bits & 63];\n }\n bits = (bits << 8) + object[idx];\n }\n tail = max % 3;\n if (tail === 0) {\n result += map2[bits >> 18 & 63];\n result += map2[bits >> 12 & 63];\n result += map2[bits >> 6 & 63];\n result += map2[bits & 63];\n } else if (tail === 2) {\n result += map2[bits >> 10 & 63];\n result += map2[bits >> 4 & 63];\n result += map2[bits << 2 & 63];\n result += map2[64];\n } else if (tail === 1) {\n result += map2[bits >> 2 & 63];\n result += map2[bits << 4 & 63];\n result += map2[64];\n result += map2[64];\n }\n return result;\n}\n__name(representYamlBinary, \"representYamlBinary\");\nfunction isBinary(obj) {\n return Object.prototype.toString.call(obj) === \"[object Uint8Array]\";\n}\n__name(isBinary, \"isBinary\");\nvar binary = new type(\"tag:yaml.org,2002:binary\", {\n kind: \"scalar\",\n resolve: resolveYamlBinary,\n construct: constructYamlBinary,\n predicate: isBinary,\n represent: representYamlBinary\n});\nvar _hasOwnProperty$3 = Object.prototype.hasOwnProperty;\nvar _toString$2 = Object.prototype.toString;\nfunction resolveYamlOmap(data) {\n if (data === null) return true;\n var objectKeys = [], index, length, pair, pairKey, pairHasKey, object = data;\n for (index = 0, length = object.length; index < length; index += 1) {\n pair = object[index];\n pairHasKey = false;\n if (_toString$2.call(pair) !== \"[object Object]\") return false;\n for (pairKey in pair) {\n if (_hasOwnProperty$3.call(pair, pairKey)) {\n if (!pairHasKey) pairHasKey = true;\n else return false;\n }\n }\n if (!pairHasKey) return false;\n if (objectKeys.indexOf(pairKey) === -1) objectKeys.push(pairKey);\n else return false;\n }\n return true;\n}\n__name(resolveYamlOmap, \"resolveYamlOmap\");\nfunction constructYamlOmap(data) {\n return data !== null ? data : [];\n}\n__name(constructYamlOmap, \"constructYamlOmap\");\nvar omap = new type(\"tag:yaml.org,2002:omap\", {\n kind: \"sequence\",\n resolve: resolveYamlOmap,\n construct: constructYamlOmap\n});\nvar _toString$1 = Object.prototype.toString;\nfunction resolveYamlPairs(data) {\n if (data === null) return true;\n var index, length, pair, keys, result, object = data;\n result = new Array(object.length);\n for (index = 0, length = object.length; index < length; index += 1) {\n pair = object[index];\n if (_toString$1.call(pair) !== \"[object Object]\") return false;\n keys = Object.keys(pair);\n if (keys.length !== 1) return false;\n result[index] = [keys[0], pair[keys[0]]];\n }\n return true;\n}\n__name(resolveYamlPairs, \"resolveYamlPairs\");\nfunction constructYamlPairs(data) {\n if (data === null) return [];\n var index, length, pair, keys, result, object = data;\n result = new Array(object.length);\n for (index = 0, length = object.length; index < length; index += 1) {\n pair = object[index];\n keys = Object.keys(pair);\n result[index] = [keys[0], pair[keys[0]]];\n }\n return result;\n}\n__name(constructYamlPairs, \"constructYamlPairs\");\nvar pairs = new type(\"tag:yaml.org,2002:pairs\", {\n kind: \"sequence\",\n resolve: resolveYamlPairs,\n construct: constructYamlPairs\n});\nvar _hasOwnProperty$2 = Object.prototype.hasOwnProperty;\nfunction resolveYamlSet(data) {\n if (data === null) return true;\n var key, object = data;\n for (key in object) {\n if (_hasOwnProperty$2.call(object, key)) {\n if (object[key] !== null) return false;\n }\n }\n return true;\n}\n__name(resolveYamlSet, \"resolveYamlSet\");\nfunction constructYamlSet(data) {\n return data !== null ? data : {};\n}\n__name(constructYamlSet, \"constructYamlSet\");\nvar set = new type(\"tag:yaml.org,2002:set\", {\n kind: \"mapping\",\n resolve: resolveYamlSet,\n construct: constructYamlSet\n});\nvar _default = core.extend({\n implicit: [\n timestamp,\n merge\n ],\n explicit: [\n binary,\n omap,\n pairs,\n set\n ]\n});\nvar _hasOwnProperty$1 = Object.prototype.hasOwnProperty;\nvar CONTEXT_FLOW_IN = 1;\nvar CONTEXT_FLOW_OUT = 2;\nvar CONTEXT_BLOCK_IN = 3;\nvar CONTEXT_BLOCK_OUT = 4;\nvar CHOMPING_CLIP = 1;\nvar CHOMPING_STRIP = 2;\nvar CHOMPING_KEEP = 3;\nvar PATTERN_NON_PRINTABLE = /[\\x00-\\x08\\x0B\\x0C\\x0E-\\x1F\\x7F-\\x84\\x86-\\x9F\\uFFFE\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]/;\nvar PATTERN_NON_ASCII_LINE_BREAKS = /[\\x85\\u2028\\u2029]/;\nvar PATTERN_FLOW_INDICATORS = /[,\\[\\]\\{\\}]/;\nvar PATTERN_TAG_HANDLE = /^(?:!|!!|![a-z\\-]+!)$/i;\nvar PATTERN_TAG_URI = /^(?:!|[^,\\[\\]\\{\\}])(?:%[0-9a-f]{2}|[0-9a-z\\-#;\\/\\?:@&=\\+\\$,_\\.!~\\*'\\(\\)\\[\\]])*$/i;\nfunction _class(obj) {\n return Object.prototype.toString.call(obj);\n}\n__name(_class, \"_class\");\nfunction is_EOL(c) {\n return c === 10 || c === 13;\n}\n__name(is_EOL, \"is_EOL\");\nfunction is_WHITE_SPACE(c) {\n return c === 9 || c === 32;\n}\n__name(is_WHITE_SPACE, \"is_WHITE_SPACE\");\nfunction is_WS_OR_EOL(c) {\n return c === 9 || c === 32 || c === 10 || c === 13;\n}\n__name(is_WS_OR_EOL, \"is_WS_OR_EOL\");\nfunction is_FLOW_INDICATOR(c) {\n return c === 44 || c === 91 || c === 93 || c === 123 || c === 125;\n}\n__name(is_FLOW_INDICATOR, \"is_FLOW_INDICATOR\");\nfunction fromHexCode(c) {\n var lc;\n if (48 <= c && c <= 57) {\n return c - 48;\n }\n lc = c | 32;\n if (97 <= lc && lc <= 102) {\n return lc - 97 + 10;\n }\n return -1;\n}\n__name(fromHexCode, \"fromHexCode\");\nfunction escapedHexLen(c) {\n if (c === 120) {\n return 2;\n }\n if (c === 117) {\n return 4;\n }\n if (c === 85) {\n return 8;\n }\n return 0;\n}\n__name(escapedHexLen, \"escapedHexLen\");\nfunction fromDecimalCode(c) {\n if (48 <= c && c <= 57) {\n return c - 48;\n }\n return -1;\n}\n__name(fromDecimalCode, \"fromDecimalCode\");\nfunction simpleEscapeSequence(c) {\n return c === 48 ? \"\\0\" : c === 97 ? \"\\x07\" : c === 98 ? \"\\b\" : c === 116 ? \"\t\" : c === 9 ? \"\t\" : c === 110 ? \"\\n\" : c === 118 ? \"\\v\" : c === 102 ? \"\\f\" : c === 114 ? \"\\r\" : c === 101 ? \"\\x1B\" : c === 32 ? \" \" : c === 34 ? '\"' : c === 47 ? \"/\" : c === 92 ? \"\\\\\" : c === 78 ? \"\\x85\" : c === 95 ? \"\\xA0\" : c === 76 ? \"\\u2028\" : c === 80 ? \"\\u2029\" : \"\";\n}\n__name(simpleEscapeSequence, \"simpleEscapeSequence\");\nfunction charFromCodepoint(c) {\n if (c <= 65535) {\n return String.fromCharCode(c);\n }\n return String.fromCharCode(\n (c - 65536 >> 10) + 55296,\n (c - 65536 & 1023) + 56320\n );\n}\n__name(charFromCodepoint, \"charFromCodepoint\");\nvar simpleEscapeCheck = new Array(256);\nvar simpleEscapeMap = new Array(256);\nfor (i = 0; i < 256; i++) {\n simpleEscapeCheck[i] = simpleEscapeSequence(i) ? 1 : 0;\n simpleEscapeMap[i] = simpleEscapeSequence(i);\n}\nvar i;\nfunction State$1(input, options) {\n this.input = input;\n this.filename = options[\"filename\"] || null;\n this.schema = options[\"schema\"] || _default;\n this.onWarning = options[\"onWarning\"] || null;\n this.legacy = options[\"legacy\"] || false;\n this.json = options[\"json\"] || false;\n this.listener = options[\"listener\"] || null;\n this.implicitTypes = this.schema.compiledImplicit;\n this.typeMap = this.schema.compiledTypeMap;\n this.length = input.length;\n this.position = 0;\n this.line = 0;\n this.lineStart = 0;\n this.lineIndent = 0;\n this.firstTabInLine = -1;\n this.documents = [];\n}\n__name(State$1, \"State$1\");\nfunction generateError(state, message) {\n var mark = {\n name: state.filename,\n buffer: state.input.slice(0, -1),\n // omit trailing \\0\n position: state.position,\n line: state.line,\n column: state.position - state.lineStart\n };\n mark.snippet = snippet(mark);\n return new exception(message, mark);\n}\n__name(generateError, \"generateError\");\nfunction throwError(state, message) {\n throw generateError(state, message);\n}\n__name(throwError, \"throwError\");\nfunction throwWarning(state, message) {\n if (state.onWarning) {\n state.onWarning.call(null, generateError(state, message));\n }\n}\n__name(throwWarning, \"throwWarning\");\nvar directiveHandlers = {\n YAML: /* @__PURE__ */ __name(function handleYamlDirective(state, name, args) {\n var match, major, minor;\n if (state.version !== null) {\n throwError(state, \"duplication of %YAML directive\");\n }\n if (args.length !== 1) {\n throwError(state, \"YAML directive accepts exactly one argument\");\n }\n match = /^([0-9]+)\\.([0-9]+)$/.exec(args[0]);\n if (match === null) {\n throwError(state, \"ill-formed argument of the YAML directive\");\n }\n major = parseInt(match[1], 10);\n minor = parseInt(match[2], 10);\n if (major !== 1) {\n throwError(state, \"unacceptable YAML version of the document\");\n }\n state.version = args[0];\n state.checkLineBreaks = minor < 2;\n if (minor !== 1 && minor !== 2) {\n throwWarning(state, \"unsupported YAML version of the document\");\n }\n }, \"handleYamlDirective\"),\n TAG: /* @__PURE__ */ __name(function handleTagDirective(state, name, args) {\n var handle, prefix;\n if (args.length !== 2) {\n throwError(state, \"TAG directive accepts exactly two arguments\");\n }\n handle = args[0];\n prefix = args[1];\n if (!PATTERN_TAG_HANDLE.test(handle)) {\n throwError(state, \"ill-formed tag handle (first argument) of the TAG directive\");\n }\n if (_hasOwnProperty$1.call(state.tagMap, handle)) {\n throwError(state, 'there is a previously declared suffix for \"' + handle + '\" tag handle');\n }\n if (!PATTERN_TAG_URI.test(prefix)) {\n throwError(state, \"ill-formed tag prefix (second argument) of the TAG directive\");\n }\n try {\n prefix = decodeURIComponent(prefix);\n } catch (err) {\n throwError(state, \"tag prefix is malformed: \" + prefix);\n }\n state.tagMap[handle] = prefix;\n }, \"handleTagDirective\")\n};\nfunction captureSegment(state, start, end, checkJson) {\n var _position, _length, _character, _result;\n if (start < end) {\n _result = state.input.slice(start, end);\n if (checkJson) {\n for (_position = 0, _length = _result.length; _position < _length; _position += 1) {\n _character = _result.charCodeAt(_position);\n if (!(_character === 9 || 32 <= _character && _character <= 1114111)) {\n throwError(state, \"expected valid JSON character\");\n }\n }\n } else if (PATTERN_NON_PRINTABLE.test(_result)) {\n throwError(state, \"the stream contains non-printable characters\");\n }\n state.result += _result;\n }\n}\n__name(captureSegment, \"captureSegment\");\nfunction mergeMappings(state, destination, source, overridableKeys) {\n var sourceKeys, key, index, quantity;\n if (!common.isObject(source)) {\n throwError(state, \"cannot merge mappings; the provided source object is unacceptable\");\n }\n sourceKeys = Object.keys(source);\n for (index = 0, quantity = sourceKeys.length; index < quantity; index += 1) {\n key = sourceKeys[index];\n if (!_hasOwnProperty$1.call(destination, key)) {\n destination[key] = source[key];\n overridableKeys[key] = true;\n }\n }\n}\n__name(mergeMappings, \"mergeMappings\");\nfunction storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, startLine, startLineStart, startPos) {\n var index, quantity;\n if (Array.isArray(keyNode)) {\n keyNode = Array.prototype.slice.call(keyNode);\n for (index = 0, quantity = keyNode.length; index < quantity; index += 1) {\n if (Array.isArray(keyNode[index])) {\n throwError(state, \"nested arrays are not supported inside keys\");\n }\n if (typeof keyNode === \"object\" && _class(keyNode[index]) === \"[object Object]\") {\n keyNode[index] = \"[object Object]\";\n }\n }\n }\n if (typeof keyNode === \"object\" && _class(keyNode) === \"[object Object]\") {\n keyNode = \"[object Object]\";\n }\n keyNode = String(keyNode);\n if (_result === null) {\n _result = {};\n }\n if (keyTag === \"tag:yaml.org,2002:merge\") {\n if (Array.isArray(valueNode)) {\n for (index = 0, quantity = valueNode.length; index < quantity; index += 1) {\n mergeMappings(state, _result, valueNode[index], overridableKeys);\n }\n } else {\n mergeMappings(state, _result, valueNode, overridableKeys);\n }\n } else {\n if (!state.json && !_hasOwnProperty$1.call(overridableKeys, keyNode) && _hasOwnProperty$1.call(_result, keyNode)) {\n state.line = startLine || state.line;\n state.lineStart = startLineStart || state.lineStart;\n state.position = startPos || state.position;\n throwError(state, \"duplicated mapping key\");\n }\n if (keyNode === \"__proto__\") {\n Object.defineProperty(_result, keyNode, {\n configurable: true,\n enumerable: true,\n writable: true,\n value: valueNode\n });\n } else {\n _result[keyNode] = valueNode;\n }\n delete overridableKeys[keyNode];\n }\n return _result;\n}\n__name(storeMappingPair, \"storeMappingPair\");\nfunction readLineBreak(state) {\n var ch;\n ch = state.input.charCodeAt(state.position);\n if (ch === 10) {\n state.position++;\n } else if (ch === 13) {\n state.position++;\n if (state.input.charCodeAt(state.position) === 10) {\n state.position++;\n }\n } else {\n throwError(state, \"a line break is expected\");\n }\n state.line += 1;\n state.lineStart = state.position;\n state.firstTabInLine = -1;\n}\n__name(readLineBreak, \"readLineBreak\");\nfunction skipSeparationSpace(state, allowComments, checkIndent) {\n var lineBreaks = 0, ch = state.input.charCodeAt(state.position);\n while (ch !== 0) {\n while (is_WHITE_SPACE(ch)) {\n if (ch === 9 && state.firstTabInLine === -1) {\n state.firstTabInLine = state.position;\n }\n ch = state.input.charCodeAt(++state.position);\n }\n if (allowComments && ch === 35) {\n do {\n ch = state.input.charCodeAt(++state.position);\n } while (ch !== 10 && ch !== 13 && ch !== 0);\n }\n if (is_EOL(ch)) {\n readLineBreak(state);\n ch = state.input.charCodeAt(state.position);\n lineBreaks++;\n state.lineIndent = 0;\n while (ch === 32) {\n state.lineIndent++;\n ch = state.input.charCodeAt(++state.position);\n }\n } else {\n break;\n }\n }\n if (checkIndent !== -1 && lineBreaks !== 0 && state.lineIndent < checkIndent) {\n throwWarning(state, \"deficient indentation\");\n }\n return lineBreaks;\n}\n__name(skipSeparationSpace, \"skipSeparationSpace\");\nfunction testDocumentSeparator(state) {\n var _position = state.position, ch;\n ch = state.input.charCodeAt(_position);\n if ((ch === 45 || ch === 46) && ch === state.input.charCodeAt(_position + 1) && ch === state.input.charCodeAt(_position + 2)) {\n _position += 3;\n ch = state.input.charCodeAt(_position);\n if (ch === 0 || is_WS_OR_EOL(ch)) {\n return true;\n }\n }\n return false;\n}\n__name(testDocumentSeparator, \"testDocumentSeparator\");\nfunction writeFoldedLines(state, count) {\n if (count === 1) {\n state.result += \" \";\n } else if (count > 1) {\n state.result += common.repeat(\"\\n\", count - 1);\n }\n}\n__name(writeFoldedLines, \"writeFoldedLines\");\nfunction readPlainScalar(state, nodeIndent, withinFlowCollection) {\n var preceding, following, captureStart, captureEnd, hasPendingContent, _line, _lineStart, _lineIndent, _kind = state.kind, _result = state.result, ch;\n ch = state.input.charCodeAt(state.position);\n if (is_WS_OR_EOL(ch) || is_FLOW_INDICATOR(ch) || ch === 35 || ch === 38 || ch === 42 || ch === 33 || ch === 124 || ch === 62 || ch === 39 || ch === 34 || ch === 37 || ch === 64 || ch === 96) {\n return false;\n }\n if (ch === 63 || ch === 45) {\n following = state.input.charCodeAt(state.position + 1);\n if (is_WS_OR_EOL(following) || withinFlowCollection && is_FLOW_INDICATOR(following)) {\n return false;\n }\n }\n state.kind = \"scalar\";\n state.result = \"\";\n captureStart = captureEnd = state.position;\n hasPendingContent = false;\n while (ch !== 0) {\n if (ch === 58) {\n following = state.input.charCodeAt(state.position + 1);\n if (is_WS_OR_EOL(following) || withinFlowCollection && is_FLOW_INDICATOR(following)) {\n break;\n }\n } else if (ch === 35) {\n preceding = state.input.charCodeAt(state.position - 1);\n if (is_WS_OR_EOL(preceding)) {\n break;\n }\n } else if (state.position === state.lineStart && testDocumentSeparator(state) || withinFlowCollection && is_FLOW_INDICATOR(ch)) {\n break;\n } else if (is_EOL(ch)) {\n _line = state.line;\n _lineStart = state.lineStart;\n _lineIndent = state.lineIndent;\n skipSeparationSpace(state, false, -1);\n if (state.lineIndent >= nodeIndent) {\n hasPendingContent = true;\n ch = state.input.charCodeAt(state.position);\n continue;\n } else {\n state.position = captureEnd;\n state.line = _line;\n state.lineStart = _lineStart;\n state.lineIndent = _lineIndent;\n break;\n }\n }\n if (hasPendingContent) {\n captureSegment(state, captureStart, captureEnd, false);\n writeFoldedLines(state, state.line - _line);\n captureStart = captureEnd = state.position;\n hasPendingContent = false;\n }\n if (!is_WHITE_SPACE(ch)) {\n captureEnd = state.position + 1;\n }\n ch = state.input.charCodeAt(++state.position);\n }\n captureSegment(state, captureStart, captureEnd, false);\n if (state.result) {\n return true;\n }\n state.kind = _kind;\n state.result = _result;\n return false;\n}\n__name(readPlainScalar, \"readPlainScalar\");\nfunction readSingleQuotedScalar(state, nodeIndent) {\n var ch, captureStart, captureEnd;\n ch = state.input.charCodeAt(state.position);\n if (ch !== 39) {\n return false;\n }\n state.kind = \"scalar\";\n state.result = \"\";\n state.position++;\n captureStart = captureEnd = state.position;\n while ((ch = state.input.charCodeAt(state.position)) !== 0) {\n if (ch === 39) {\n captureSegment(state, captureStart, state.position, true);\n ch = state.input.charCodeAt(++state.position);\n if (ch === 39) {\n captureStart = state.position;\n state.position++;\n captureEnd = state.position;\n } else {\n return true;\n }\n } else if (is_EOL(ch)) {\n captureSegment(state, captureStart, captureEnd, true);\n writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent));\n captureStart = captureEnd = state.position;\n } else if (state.position === state.lineStart && testDocumentSeparator(state)) {\n throwError(state, \"unexpected end of the document within a single quoted scalar\");\n } else {\n state.position++;\n captureEnd = state.position;\n }\n }\n throwError(state, \"unexpected end of the stream within a single quoted scalar\");\n}\n__name(readSingleQuotedScalar, \"readSingleQuotedScalar\");\nfunction readDoubleQuotedScalar(state, nodeIndent) {\n var captureStart, captureEnd, hexLength, hexResult, tmp, ch;\n ch = state.input.charCodeAt(state.position);\n if (ch !== 34) {\n return false;\n }\n state.kind = \"scalar\";\n state.result = \"\";\n state.position++;\n captureStart = captureEnd = state.position;\n while ((ch = state.input.charCodeAt(state.position)) !== 0) {\n if (ch === 34) {\n captureSegment(state, captureStart, state.position, true);\n state.position++;\n return true;\n } else if (ch === 92) {\n captureSegment(state, captureStart, state.position, true);\n ch = state.input.charCodeAt(++state.position);\n if (is_EOL(ch)) {\n skipSeparationSpace(state, false, nodeIndent);\n } else if (ch < 256 && simpleEscapeCheck[ch]) {\n state.result += simpleEscapeMap[ch];\n state.position++;\n } else if ((tmp = escapedHexLen(ch)) > 0) {\n hexLength = tmp;\n hexResult = 0;\n for (; hexLength > 0; hexLength--) {\n ch = state.input.charCodeAt(++state.position);\n if ((tmp = fromHexCode(ch)) >= 0) {\n hexResult = (hexResult << 4) + tmp;\n } else {\n throwError(state, \"expected hexadecimal character\");\n }\n }\n state.result += charFromCodepoint(hexResult);\n state.position++;\n } else {\n throwError(state, \"unknown escape sequence\");\n }\n captureStart = captureEnd = state.position;\n } else if (is_EOL(ch)) {\n captureSegment(state, captureStart, captureEnd, true);\n writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent));\n captureStart = captureEnd = state.position;\n } else if (state.position === state.lineStart && testDocumentSeparator(state)) {\n throwError(state, \"unexpected end of the document within a double quoted scalar\");\n } else {\n state.position++;\n captureEnd = state.position;\n }\n }\n throwError(state, \"unexpected end of the stream within a double quoted scalar\");\n}\n__name(readDoubleQuotedScalar, \"readDoubleQuotedScalar\");\nfunction readFlowCollection(state, nodeIndent) {\n var readNext = true, _line, _lineStart, _pos, _tag = state.tag, _result, _anchor = state.anchor, following, terminator, isPair, isExplicitPair, isMapping, overridableKeys = /* @__PURE__ */ Object.create(null), keyNode, keyTag, valueNode, ch;\n ch = state.input.charCodeAt(state.position);\n if (ch === 91) {\n terminator = 93;\n isMapping = false;\n _result = [];\n } else if (ch === 123) {\n terminator = 125;\n isMapping = true;\n _result = {};\n } else {\n return false;\n }\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = _result;\n }\n ch = state.input.charCodeAt(++state.position);\n while (ch !== 0) {\n skipSeparationSpace(state, true, nodeIndent);\n ch = state.input.charCodeAt(state.position);\n if (ch === terminator) {\n state.position++;\n state.tag = _tag;\n state.anchor = _anchor;\n state.kind = isMapping ? \"mapping\" : \"sequence\";\n state.result = _result;\n return true;\n } else if (!readNext) {\n throwError(state, \"missed comma between flow collection entries\");\n } else if (ch === 44) {\n throwError(state, \"expected the node content, but found ','\");\n }\n keyTag = keyNode = valueNode = null;\n isPair = isExplicitPair = false;\n if (ch === 63) {\n following = state.input.charCodeAt(state.position + 1);\n if (is_WS_OR_EOL(following)) {\n isPair = isExplicitPair = true;\n state.position++;\n skipSeparationSpace(state, true, nodeIndent);\n }\n }\n _line = state.line;\n _lineStart = state.lineStart;\n _pos = state.position;\n composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true);\n keyTag = state.tag;\n keyNode = state.result;\n skipSeparationSpace(state, true, nodeIndent);\n ch = state.input.charCodeAt(state.position);\n if ((isExplicitPair || state.line === _line) && ch === 58) {\n isPair = true;\n ch = state.input.charCodeAt(++state.position);\n skipSeparationSpace(state, true, nodeIndent);\n composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true);\n valueNode = state.result;\n }\n if (isMapping) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, _line, _lineStart, _pos);\n } else if (isPair) {\n _result.push(storeMappingPair(state, null, overridableKeys, keyTag, keyNode, valueNode, _line, _lineStart, _pos));\n } else {\n _result.push(keyNode);\n }\n skipSeparationSpace(state, true, nodeIndent);\n ch = state.input.charCodeAt(state.position);\n if (ch === 44) {\n readNext = true;\n ch = state.input.charCodeAt(++state.position);\n } else {\n readNext = false;\n }\n }\n throwError(state, \"unexpected end of the stream within a flow collection\");\n}\n__name(readFlowCollection, \"readFlowCollection\");\nfunction readBlockScalar(state, nodeIndent) {\n var captureStart, folding, chomping = CHOMPING_CLIP, didReadContent = false, detectedIndent = false, textIndent = nodeIndent, emptyLines = 0, atMoreIndented = false, tmp, ch;\n ch = state.input.charCodeAt(state.position);\n if (ch === 124) {\n folding = false;\n } else if (ch === 62) {\n folding = true;\n } else {\n return false;\n }\n state.kind = \"scalar\";\n state.result = \"\";\n while (ch !== 0) {\n ch = state.input.charCodeAt(++state.position);\n if (ch === 43 || ch === 45) {\n if (CHOMPING_CLIP === chomping) {\n chomping = ch === 43 ? CHOMPING_KEEP : CHOMPING_STRIP;\n } else {\n throwError(state, \"repeat of a chomping mode identifier\");\n }\n } else if ((tmp = fromDecimalCode(ch)) >= 0) {\n if (tmp === 0) {\n throwError(state, \"bad explicit indentation width of a block scalar; it cannot be less than one\");\n } else if (!detectedIndent) {\n textIndent = nodeIndent + tmp - 1;\n detectedIndent = true;\n } else {\n throwError(state, \"repeat of an indentation width identifier\");\n }\n } else {\n break;\n }\n }\n if (is_WHITE_SPACE(ch)) {\n do {\n ch = state.input.charCodeAt(++state.position);\n } while (is_WHITE_SPACE(ch));\n if (ch === 35) {\n do {\n ch = state.input.charCodeAt(++state.position);\n } while (!is_EOL(ch) && ch !== 0);\n }\n }\n while (ch !== 0) {\n readLineBreak(state);\n state.lineIndent = 0;\n ch = state.input.charCodeAt(state.position);\n while ((!detectedIndent || state.lineIndent < textIndent) && ch === 32) {\n state.lineIndent++;\n ch = state.input.charCodeAt(++state.position);\n }\n if (!detectedIndent && state.lineIndent > textIndent) {\n textIndent = state.lineIndent;\n }\n if (is_EOL(ch)) {\n emptyLines++;\n continue;\n }\n if (state.lineIndent < textIndent) {\n if (chomping === CHOMPING_KEEP) {\n state.result += common.repeat(\"\\n\", didReadContent ? 1 + emptyLines : emptyLines);\n } else if (chomping === CHOMPING_CLIP) {\n if (didReadContent) {\n state.result += \"\\n\";\n }\n }\n break;\n }\n if (folding) {\n if (is_WHITE_SPACE(ch)) {\n atMoreIndented = true;\n state.result += common.repeat(\"\\n\", didReadContent ? 1 + emptyLines : emptyLines);\n } else if (atMoreIndented) {\n atMoreIndented = false;\n state.result += common.repeat(\"\\n\", emptyLines + 1);\n } else if (emptyLines === 0) {\n if (didReadContent) {\n state.result += \" \";\n }\n } else {\n state.result += common.repeat(\"\\n\", emptyLines);\n }\n } else {\n state.result += common.repeat(\"\\n\", didReadContent ? 1 + emptyLines : emptyLines);\n }\n didReadContent = true;\n detectedIndent = true;\n emptyLines = 0;\n captureStart = state.position;\n while (!is_EOL(ch) && ch !== 0) {\n ch = state.input.charCodeAt(++state.position);\n }\n captureSegment(state, captureStart, state.position, false);\n }\n return true;\n}\n__name(readBlockScalar, \"readBlockScalar\");\nfunction readBlockSequence(state, nodeIndent) {\n var _line, _tag = state.tag, _anchor = state.anchor, _result = [], following, detected = false, ch;\n if (state.firstTabInLine !== -1) return false;\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = _result;\n }\n ch = state.input.charCodeAt(state.position);\n while (ch !== 0) {\n if (state.firstTabInLine !== -1) {\n state.position = state.firstTabInLine;\n throwError(state, \"tab characters must not be used in indentation\");\n }\n if (ch !== 45) {\n break;\n }\n following = state.input.charCodeAt(state.position + 1);\n if (!is_WS_OR_EOL(following)) {\n break;\n }\n detected = true;\n state.position++;\n if (skipSeparationSpace(state, true, -1)) {\n if (state.lineIndent <= nodeIndent) {\n _result.push(null);\n ch = state.input.charCodeAt(state.position);\n continue;\n }\n }\n _line = state.line;\n composeNode(state, nodeIndent, CONTEXT_BLOCK_IN, false, true);\n _result.push(state.result);\n skipSeparationSpace(state, true, -1);\n ch = state.input.charCodeAt(state.position);\n if ((state.line === _line || state.lineIndent > nodeIndent) && ch !== 0) {\n throwError(state, \"bad indentation of a sequence entry\");\n } else if (state.lineIndent < nodeIndent) {\n break;\n }\n }\n if (detected) {\n state.tag = _tag;\n state.anchor = _anchor;\n state.kind = \"sequence\";\n state.result = _result;\n return true;\n }\n return false;\n}\n__name(readBlockSequence, \"readBlockSequence\");\nfunction readBlockMapping(state, nodeIndent, flowIndent) {\n var following, allowCompact, _line, _keyLine, _keyLineStart, _keyPos, _tag = state.tag, _anchor = state.anchor, _result = {}, overridableKeys = /* @__PURE__ */ Object.create(null), keyTag = null, keyNode = null, valueNode = null, atExplicitKey = false, detected = false, ch;\n if (state.firstTabInLine !== -1) return false;\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = _result;\n }\n ch = state.input.charCodeAt(state.position);\n while (ch !== 0) {\n if (!atExplicitKey && state.firstTabInLine !== -1) {\n state.position = state.firstTabInLine;\n throwError(state, \"tab characters must not be used in indentation\");\n }\n following = state.input.charCodeAt(state.position + 1);\n _line = state.line;\n if ((ch === 63 || ch === 58) && is_WS_OR_EOL(following)) {\n if (ch === 63) {\n if (atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);\n keyTag = keyNode = valueNode = null;\n }\n detected = true;\n atExplicitKey = true;\n allowCompact = true;\n } else if (atExplicitKey) {\n atExplicitKey = false;\n allowCompact = true;\n } else {\n throwError(state, \"incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line\");\n }\n state.position += 1;\n ch = following;\n } else {\n _keyLine = state.line;\n _keyLineStart = state.lineStart;\n _keyPos = state.position;\n if (!composeNode(state, flowIndent, CONTEXT_FLOW_OUT, false, true)) {\n break;\n }\n if (state.line === _line) {\n ch = state.input.charCodeAt(state.position);\n while (is_WHITE_SPACE(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n if (ch === 58) {\n ch = state.input.charCodeAt(++state.position);\n if (!is_WS_OR_EOL(ch)) {\n throwError(state, \"a whitespace character is expected after the key-value separator within a block mapping\");\n }\n if (atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);\n keyTag = keyNode = valueNode = null;\n }\n detected = true;\n atExplicitKey = false;\n allowCompact = false;\n keyTag = state.tag;\n keyNode = state.result;\n } else if (detected) {\n throwError(state, \"can not read an implicit mapping pair; a colon is missed\");\n } else {\n state.tag = _tag;\n state.anchor = _anchor;\n return true;\n }\n } else if (detected) {\n throwError(state, \"can not read a block mapping entry; a multiline key may not be an implicit key\");\n } else {\n state.tag = _tag;\n state.anchor = _anchor;\n return true;\n }\n }\n if (state.line === _line || state.lineIndent > nodeIndent) {\n if (atExplicitKey) {\n _keyLine = state.line;\n _keyLineStart = state.lineStart;\n _keyPos = state.position;\n }\n if (composeNode(state, nodeIndent, CONTEXT_BLOCK_OUT, true, allowCompact)) {\n if (atExplicitKey) {\n keyNode = state.result;\n } else {\n valueNode = state.result;\n }\n }\n if (!atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, _keyLine, _keyLineStart, _keyPos);\n keyTag = keyNode = valueNode = null;\n }\n skipSeparationSpace(state, true, -1);\n ch = state.input.charCodeAt(state.position);\n }\n if ((state.line === _line || state.lineIndent > nodeIndent) && ch !== 0) {\n throwError(state, \"bad indentation of a mapping entry\");\n } else if (state.lineIndent < nodeIndent) {\n break;\n }\n }\n if (atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);\n }\n if (detected) {\n state.tag = _tag;\n state.anchor = _anchor;\n state.kind = \"mapping\";\n state.result = _result;\n }\n return detected;\n}\n__name(readBlockMapping, \"readBlockMapping\");\nfunction readTagProperty(state) {\n var _position, isVerbatim = false, isNamed = false, tagHandle, tagName, ch;\n ch = state.input.charCodeAt(state.position);\n if (ch !== 33) return false;\n if (state.tag !== null) {\n throwError(state, \"duplication of a tag property\");\n }\n ch = state.input.charCodeAt(++state.position);\n if (ch === 60) {\n isVerbatim = true;\n ch = state.input.charCodeAt(++state.position);\n } else if (ch === 33) {\n isNamed = true;\n tagHandle = \"!!\";\n ch = state.input.charCodeAt(++state.position);\n } else {\n tagHandle = \"!\";\n }\n _position = state.position;\n if (isVerbatim) {\n do {\n ch = state.input.charCodeAt(++state.position);\n } while (ch !== 0 && ch !== 62);\n if (state.position < state.length) {\n tagName = state.input.slice(_position, state.position);\n ch = state.input.charCodeAt(++state.position);\n } else {\n throwError(state, \"unexpected end of the stream within a verbatim tag\");\n }\n } else {\n while (ch !== 0 && !is_WS_OR_EOL(ch)) {\n if (ch === 33) {\n if (!isNamed) {\n tagHandle = state.input.slice(_position - 1, state.position + 1);\n if (!PATTERN_TAG_HANDLE.test(tagHandle)) {\n throwError(state, \"named tag handle cannot contain such characters\");\n }\n isNamed = true;\n _position = state.position + 1;\n } else {\n throwError(state, \"tag suffix cannot contain exclamation marks\");\n }\n }\n ch = state.input.charCodeAt(++state.position);\n }\n tagName = state.input.slice(_position, state.position);\n if (PATTERN_FLOW_INDICATORS.test(tagName)) {\n throwError(state, \"tag suffix cannot contain flow indicator characters\");\n }\n }\n if (tagName && !PATTERN_TAG_URI.test(tagName)) {\n throwError(state, \"tag name cannot contain such characters: \" + tagName);\n }\n try {\n tagName = decodeURIComponent(tagName);\n } catch (err) {\n throwError(state, \"tag name is malformed: \" + tagName);\n }\n if (isVerbatim) {\n state.tag = tagName;\n } else if (_hasOwnProperty$1.call(state.tagMap, tagHandle)) {\n state.tag = state.tagMap[tagHandle] + tagName;\n } else if (tagHandle === \"!\") {\n state.tag = \"!\" + tagName;\n } else if (tagHandle === \"!!\") {\n state.tag = \"tag:yaml.org,2002:\" + tagName;\n } else {\n throwError(state, 'undeclared tag handle \"' + tagHandle + '\"');\n }\n return true;\n}\n__name(readTagProperty, \"readTagProperty\");\nfunction readAnchorProperty(state) {\n var _position, ch;\n ch = state.input.charCodeAt(state.position);\n if (ch !== 38) return false;\n if (state.anchor !== null) {\n throwError(state, \"duplication of an anchor property\");\n }\n ch = state.input.charCodeAt(++state.position);\n _position = state.position;\n while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n if (state.position === _position) {\n throwError(state, \"name of an anchor node must contain at least one character\");\n }\n state.anchor = state.input.slice(_position, state.position);\n return true;\n}\n__name(readAnchorProperty, \"readAnchorProperty\");\nfunction readAlias(state) {\n var _position, alias, ch;\n ch = state.input.charCodeAt(state.position);\n if (ch !== 42) return false;\n ch = state.input.charCodeAt(++state.position);\n _position = state.position;\n while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n if (state.position === _position) {\n throwError(state, \"name of an alias node must contain at least one character\");\n }\n alias = state.input.slice(_position, state.position);\n if (!_hasOwnProperty$1.call(state.anchorMap, alias)) {\n throwError(state, 'unidentified alias \"' + alias + '\"');\n }\n state.result = state.anchorMap[alias];\n skipSeparationSpace(state, true, -1);\n return true;\n}\n__name(readAlias, \"readAlias\");\nfunction composeNode(state, parentIndent, nodeContext, allowToSeek, allowCompact) {\n var allowBlockStyles, allowBlockScalars, allowBlockCollections, indentStatus = 1, atNewLine = false, hasContent = false, typeIndex, typeQuantity, typeList, type2, flowIndent, blockIndent;\n if (state.listener !== null) {\n state.listener(\"open\", state);\n }\n state.tag = null;\n state.anchor = null;\n state.kind = null;\n state.result = null;\n allowBlockStyles = allowBlockScalars = allowBlockCollections = CONTEXT_BLOCK_OUT === nodeContext || CONTEXT_BLOCK_IN === nodeContext;\n if (allowToSeek) {\n if (skipSeparationSpace(state, true, -1)) {\n atNewLine = true;\n if (state.lineIndent > parentIndent) {\n indentStatus = 1;\n } else if (state.lineIndent === parentIndent) {\n indentStatus = 0;\n } else if (state.lineIndent < parentIndent) {\n indentStatus = -1;\n }\n }\n }\n if (indentStatus === 1) {\n while (readTagProperty(state) || readAnchorProperty(state)) {\n if (skipSeparationSpace(state, true, -1)) {\n atNewLine = true;\n allowBlockCollections = allowBlockStyles;\n if (state.lineIndent > parentIndent) {\n indentStatus = 1;\n } else if (state.lineIndent === parentIndent) {\n indentStatus = 0;\n } else if (state.lineIndent < parentIndent) {\n indentStatus = -1;\n }\n } else {\n allowBlockCollections = false;\n }\n }\n }\n if (allowBlockCollections) {\n allowBlockCollections = atNewLine || allowCompact;\n }\n if (indentStatus === 1 || CONTEXT_BLOCK_OUT === nodeContext) {\n if (CONTEXT_FLOW_IN === nodeContext || CONTEXT_FLOW_OUT === nodeContext) {\n flowIndent = parentIndent;\n } else {\n flowIndent = parentIndent + 1;\n }\n blockIndent = state.position - state.lineStart;\n if (indentStatus === 1) {\n if (allowBlockCollections && (readBlockSequence(state, blockIndent) || readBlockMapping(state, blockIndent, flowIndent)) || readFlowCollection(state, flowIndent)) {\n hasContent = true;\n } else {\n if (allowBlockScalars && readBlockScalar(state, flowIndent) || readSingleQuotedScalar(state, flowIndent) || readDoubleQuotedScalar(state, flowIndent)) {\n hasContent = true;\n } else if (readAlias(state)) {\n hasContent = true;\n if (state.tag !== null || state.anchor !== null) {\n throwError(state, \"alias node should not have any properties\");\n }\n } else if (readPlainScalar(state, flowIndent, CONTEXT_FLOW_IN === nodeContext)) {\n hasContent = true;\n if (state.tag === null) {\n state.tag = \"?\";\n }\n }\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n }\n } else if (indentStatus === 0) {\n hasContent = allowBlockCollections && readBlockSequence(state, blockIndent);\n }\n }\n if (state.tag === null) {\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n } else if (state.tag === \"?\") {\n if (state.result !== null && state.kind !== \"scalar\") {\n throwError(state, 'unacceptable node kind for ! tag; it should be \"scalar\", not \"' + state.kind + '\"');\n }\n for (typeIndex = 0, typeQuantity = state.implicitTypes.length; typeIndex < typeQuantity; typeIndex += 1) {\n type2 = state.implicitTypes[typeIndex];\n if (type2.resolve(state.result)) {\n state.result = type2.construct(state.result);\n state.tag = type2.tag;\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n break;\n }\n }\n } else if (state.tag !== \"!\") {\n if (_hasOwnProperty$1.call(state.typeMap[state.kind || \"fallback\"], state.tag)) {\n type2 = state.typeMap[state.kind || \"fallback\"][state.tag];\n } else {\n type2 = null;\n typeList = state.typeMap.multi[state.kind || \"fallback\"];\n for (typeIndex = 0, typeQuantity = typeList.length; typeIndex < typeQuantity; typeIndex += 1) {\n if (state.tag.slice(0, typeList[typeIndex].tag.length) === typeList[typeIndex].tag) {\n type2 = typeList[typeIndex];\n break;\n }\n }\n }\n if (!type2) {\n throwError(state, \"unknown tag !<\" + state.tag + \">\");\n }\n if (state.result !== null && type2.kind !== state.kind) {\n throwError(state, \"unacceptable node kind for !<\" + state.tag + '> tag; it should be \"' + type2.kind + '\", not \"' + state.kind + '\"');\n }\n if (!type2.resolve(state.result, state.tag)) {\n throwError(state, \"cannot resolve a node with !<\" + state.tag + \"> explicit tag\");\n } else {\n state.result = type2.construct(state.result, state.tag);\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n }\n }\n if (state.listener !== null) {\n state.listener(\"close\", state);\n }\n return state.tag !== null || state.anchor !== null || hasContent;\n}\n__name(composeNode, \"composeNode\");\nfunction readDocument(state) {\n var documentStart = state.position, _position, directiveName, directiveArgs, hasDirectives = false, ch;\n state.version = null;\n state.checkLineBreaks = state.legacy;\n state.tagMap = /* @__PURE__ */ Object.create(null);\n state.anchorMap = /* @__PURE__ */ Object.create(null);\n while ((ch = state.input.charCodeAt(state.position)) !== 0) {\n skipSeparationSpace(state, true, -1);\n ch = state.input.charCodeAt(state.position);\n if (state.lineIndent > 0 || ch !== 37) {\n break;\n }\n hasDirectives = true;\n ch = state.input.charCodeAt(++state.position);\n _position = state.position;\n while (ch !== 0 && !is_WS_OR_EOL(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n directiveName = state.input.slice(_position, state.position);\n directiveArgs = [];\n if (directiveName.length < 1) {\n throwError(state, \"directive name must not be less than one character in length\");\n }\n while (ch !== 0) {\n while (is_WHITE_SPACE(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n if (ch === 35) {\n do {\n ch = state.input.charCodeAt(++state.position);\n } while (ch !== 0 && !is_EOL(ch));\n break;\n }\n if (is_EOL(ch)) break;\n _position = state.position;\n while (ch !== 0 && !is_WS_OR_EOL(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n directiveArgs.push(state.input.slice(_position, state.position));\n }\n if (ch !== 0) readLineBreak(state);\n if (_hasOwnProperty$1.call(directiveHandlers, directiveName)) {\n directiveHandlers[directiveName](state, directiveName, directiveArgs);\n } else {\n throwWarning(state, 'unknown document directive \"' + directiveName + '\"');\n }\n }\n skipSeparationSpace(state, true, -1);\n if (state.lineIndent === 0 && state.input.charCodeAt(state.position) === 45 && state.input.charCodeAt(state.position + 1) === 45 && state.input.charCodeAt(state.position + 2) === 45) {\n state.position += 3;\n skipSeparationSpace(state, true, -1);\n } else if (hasDirectives) {\n throwError(state, \"directives end mark is expected\");\n }\n composeNode(state, state.lineIndent - 1, CONTEXT_BLOCK_OUT, false, true);\n skipSeparationSpace(state, true, -1);\n if (state.checkLineBreaks && PATTERN_NON_ASCII_LINE_BREAKS.test(state.input.slice(documentStart, state.position))) {\n throwWarning(state, \"non-ASCII line breaks are interpreted as content\");\n }\n state.documents.push(state.result);\n if (state.position === state.lineStart && testDocumentSeparator(state)) {\n if (state.input.charCodeAt(state.position) === 46) {\n state.position += 3;\n skipSeparationSpace(state, true, -1);\n }\n return;\n }\n if (state.position < state.length - 1) {\n throwError(state, \"end of the stream or a document separator is expected\");\n } else {\n return;\n }\n}\n__name(readDocument, \"readDocument\");\nfunction loadDocuments(input, options) {\n input = String(input);\n options = options || {};\n if (input.length !== 0) {\n if (input.charCodeAt(input.length - 1) !== 10 && input.charCodeAt(input.length - 1) !== 13) {\n input += \"\\n\";\n }\n if (input.charCodeAt(0) === 65279) {\n input = input.slice(1);\n }\n }\n var state = new State$1(input, options);\n var nullpos = input.indexOf(\"\\0\");\n if (nullpos !== -1) {\n state.position = nullpos;\n throwError(state, \"null byte is not allowed in input\");\n }\n state.input += \"\\0\";\n while (state.input.charCodeAt(state.position) === 32) {\n state.lineIndent += 1;\n state.position += 1;\n }\n while (state.position < state.length - 1) {\n readDocument(state);\n }\n return state.documents;\n}\n__name(loadDocuments, \"loadDocuments\");\nfunction loadAll$1(input, iterator, options) {\n if (iterator !== null && typeof iterator === \"object\" && typeof options === \"undefined\") {\n options = iterator;\n iterator = null;\n }\n var documents = loadDocuments(input, options);\n if (typeof iterator !== \"function\") {\n return documents;\n }\n for (var index = 0, length = documents.length; index < length; index += 1) {\n iterator(documents[index]);\n }\n}\n__name(loadAll$1, \"loadAll$1\");\nfunction load$1(input, options) {\n var documents = loadDocuments(input, options);\n if (documents.length === 0) {\n return void 0;\n } else if (documents.length === 1) {\n return documents[0];\n }\n throw new exception(\"expected a single document in the stream, but found more\");\n}\n__name(load$1, \"load$1\");\nvar loadAll_1 = loadAll$1;\nvar load_1 = load$1;\nvar loader = {\n loadAll: loadAll_1,\n load: load_1\n};\nvar _toString = Object.prototype.toString;\nvar _hasOwnProperty = Object.prototype.hasOwnProperty;\nvar CHAR_BOM = 65279;\nvar CHAR_TAB = 9;\nvar CHAR_LINE_FEED = 10;\nvar CHAR_CARRIAGE_RETURN = 13;\nvar CHAR_SPACE = 32;\nvar CHAR_EXCLAMATION = 33;\nvar CHAR_DOUBLE_QUOTE = 34;\nvar CHAR_SHARP = 35;\nvar CHAR_PERCENT = 37;\nvar CHAR_AMPERSAND = 38;\nvar CHAR_SINGLE_QUOTE = 39;\nvar CHAR_ASTERISK = 42;\nvar CHAR_COMMA = 44;\nvar CHAR_MINUS = 45;\nvar CHAR_COLON = 58;\nvar CHAR_EQUALS = 61;\nvar CHAR_GREATER_THAN = 62;\nvar CHAR_QUESTION = 63;\nvar CHAR_COMMERCIAL_AT = 64;\nvar CHAR_LEFT_SQUARE_BRACKET = 91;\nvar CHAR_RIGHT_SQUARE_BRACKET = 93;\nvar CHAR_GRAVE_ACCENT = 96;\nvar CHAR_LEFT_CURLY_BRACKET = 123;\nvar CHAR_VERTICAL_LINE = 124;\nvar CHAR_RIGHT_CURLY_BRACKET = 125;\nvar ESCAPE_SEQUENCES = {};\nESCAPE_SEQUENCES[0] = \"\\\\0\";\nESCAPE_SEQUENCES[7] = \"\\\\a\";\nESCAPE_SEQUENCES[8] = \"\\\\b\";\nESCAPE_SEQUENCES[9] = \"\\\\t\";\nESCAPE_SEQUENCES[10] = \"\\\\n\";\nESCAPE_SEQUENCES[11] = \"\\\\v\";\nESCAPE_SEQUENCES[12] = \"\\\\f\";\nESCAPE_SEQUENCES[13] = \"\\\\r\";\nESCAPE_SEQUENCES[27] = \"\\\\e\";\nESCAPE_SEQUENCES[34] = '\\\\\"';\nESCAPE_SEQUENCES[92] = \"\\\\\\\\\";\nESCAPE_SEQUENCES[133] = \"\\\\N\";\nESCAPE_SEQUENCES[160] = \"\\\\_\";\nESCAPE_SEQUENCES[8232] = \"\\\\L\";\nESCAPE_SEQUENCES[8233] = \"\\\\P\";\nvar DEPRECATED_BOOLEANS_SYNTAX = [\n \"y\",\n \"Y\",\n \"yes\",\n \"Yes\",\n \"YES\",\n \"on\",\n \"On\",\n \"ON\",\n \"n\",\n \"N\",\n \"no\",\n \"No\",\n \"NO\",\n \"off\",\n \"Off\",\n \"OFF\"\n];\nvar DEPRECATED_BASE60_SYNTAX = /^[-+]?[0-9_]+(?::[0-9_]+)+(?:\\.[0-9_]*)?$/;\nfunction compileStyleMap(schema2, map2) {\n var result, keys, index, length, tag, style, type2;\n if (map2 === null) return {};\n result = {};\n keys = Object.keys(map2);\n for (index = 0, length = keys.length; index < length; index += 1) {\n tag = keys[index];\n style = String(map2[tag]);\n if (tag.slice(0, 2) === \"!!\") {\n tag = \"tag:yaml.org,2002:\" + tag.slice(2);\n }\n type2 = schema2.compiledTypeMap[\"fallback\"][tag];\n if (type2 && _hasOwnProperty.call(type2.styleAliases, style)) {\n style = type2.styleAliases[style];\n }\n result[tag] = style;\n }\n return result;\n}\n__name(compileStyleMap, \"compileStyleMap\");\nfunction encodeHex(character) {\n var string, handle, length;\n string = character.toString(16).toUpperCase();\n if (character <= 255) {\n handle = \"x\";\n length = 2;\n } else if (character <= 65535) {\n handle = \"u\";\n length = 4;\n } else if (character <= 4294967295) {\n handle = \"U\";\n length = 8;\n } else {\n throw new exception(\"code point within a string may not be greater than 0xFFFFFFFF\");\n }\n return \"\\\\\" + handle + common.repeat(\"0\", length - string.length) + string;\n}\n__name(encodeHex, \"encodeHex\");\nvar QUOTING_TYPE_SINGLE = 1;\nvar QUOTING_TYPE_DOUBLE = 2;\nfunction State(options) {\n this.schema = options[\"schema\"] || _default;\n this.indent = Math.max(1, options[\"indent\"] || 2);\n this.noArrayIndent = options[\"noArrayIndent\"] || false;\n this.skipInvalid = options[\"skipInvalid\"] || false;\n this.flowLevel = common.isNothing(options[\"flowLevel\"]) ? -1 : options[\"flowLevel\"];\n this.styleMap = compileStyleMap(this.schema, options[\"styles\"] || null);\n this.sortKeys = options[\"sortKeys\"] || false;\n this.lineWidth = options[\"lineWidth\"] || 80;\n this.noRefs = options[\"noRefs\"] || false;\n this.noCompatMode = options[\"noCompatMode\"] || false;\n this.condenseFlow = options[\"condenseFlow\"] || false;\n this.quotingType = options[\"quotingType\"] === '\"' ? QUOTING_TYPE_DOUBLE : QUOTING_TYPE_SINGLE;\n this.forceQuotes = options[\"forceQuotes\"] || false;\n this.replacer = typeof options[\"replacer\"] === \"function\" ? options[\"replacer\"] : null;\n this.implicitTypes = this.schema.compiledImplicit;\n this.explicitTypes = this.schema.compiledExplicit;\n this.tag = null;\n this.result = \"\";\n this.duplicates = [];\n this.usedDuplicates = null;\n}\n__name(State, \"State\");\nfunction indentString(string, spaces) {\n var ind = common.repeat(\" \", spaces), position = 0, next = -1, result = \"\", line, length = string.length;\n while (position < length) {\n next = string.indexOf(\"\\n\", position);\n if (next === -1) {\n line = string.slice(position);\n position = length;\n } else {\n line = string.slice(position, next + 1);\n position = next + 1;\n }\n if (line.length && line !== \"\\n\") result += ind;\n result += line;\n }\n return result;\n}\n__name(indentString, \"indentString\");\nfunction generateNextLine(state, level) {\n return \"\\n\" + common.repeat(\" \", state.indent * level);\n}\n__name(generateNextLine, \"generateNextLine\");\nfunction testImplicitResolving(state, str2) {\n var index, length, type2;\n for (index = 0, length = state.implicitTypes.length; index < length; index += 1) {\n type2 = state.implicitTypes[index];\n if (type2.resolve(str2)) {\n return true;\n }\n }\n return false;\n}\n__name(testImplicitResolving, \"testImplicitResolving\");\nfunction isWhitespace(c) {\n return c === CHAR_SPACE || c === CHAR_TAB;\n}\n__name(isWhitespace, \"isWhitespace\");\nfunction isPrintable(c) {\n return 32 <= c && c <= 126 || 161 <= c && c <= 55295 && c !== 8232 && c !== 8233 || 57344 <= c && c <= 65533 && c !== CHAR_BOM || 65536 <= c && c <= 1114111;\n}\n__name(isPrintable, \"isPrintable\");\nfunction isNsCharOrWhitespace(c) {\n return isPrintable(c) && c !== CHAR_BOM && c !== CHAR_CARRIAGE_RETURN && c !== CHAR_LINE_FEED;\n}\n__name(isNsCharOrWhitespace, \"isNsCharOrWhitespace\");\nfunction isPlainSafe(c, prev, inblock) {\n var cIsNsCharOrWhitespace = isNsCharOrWhitespace(c);\n var cIsNsChar = cIsNsCharOrWhitespace && !isWhitespace(c);\n return (\n // ns-plain-safe\n (inblock ? (\n // c = flow-in\n cIsNsCharOrWhitespace\n ) : cIsNsCharOrWhitespace && c !== CHAR_COMMA && c !== CHAR_LEFT_SQUARE_BRACKET && c !== CHAR_RIGHT_SQUARE_BRACKET && c !== CHAR_LEFT_CURLY_BRACKET && c !== CHAR_RIGHT_CURLY_BRACKET) && c !== CHAR_SHARP && !(prev === CHAR_COLON && !cIsNsChar) || isNsCharOrWhitespace(prev) && !isWhitespace(prev) && c === CHAR_SHARP || prev === CHAR_COLON && cIsNsChar\n );\n}\n__name(isPlainSafe, \"isPlainSafe\");\nfunction isPlainSafeFirst(c) {\n return isPrintable(c) && c !== CHAR_BOM && !isWhitespace(c) && c !== CHAR_MINUS && c !== CHAR_QUESTION && c !== CHAR_COLON && c !== CHAR_COMMA && c !== CHAR_LEFT_SQUARE_BRACKET && c !== CHAR_RIGHT_SQUARE_BRACKET && c !== CHAR_LEFT_CURLY_BRACKET && c !== CHAR_RIGHT_CURLY_BRACKET && c !== CHAR_SHARP && c !== CHAR_AMPERSAND && c !== CHAR_ASTERISK && c !== CHAR_EXCLAMATION && c !== CHAR_VERTICAL_LINE && c !== CHAR_EQUALS && c !== CHAR_GREATER_THAN && c !== CHAR_SINGLE_QUOTE && c !== CHAR_DOUBLE_QUOTE && c !== CHAR_PERCENT && c !== CHAR_COMMERCIAL_AT && c !== CHAR_GRAVE_ACCENT;\n}\n__name(isPlainSafeFirst, \"isPlainSafeFirst\");\nfunction isPlainSafeLast(c) {\n return !isWhitespace(c) && c !== CHAR_COLON;\n}\n__name(isPlainSafeLast, \"isPlainSafeLast\");\nfunction codePointAt(string, pos) {\n var first = string.charCodeAt(pos), second;\n if (first >= 55296 && first <= 56319 && pos + 1 < string.length) {\n second = string.charCodeAt(pos + 1);\n if (second >= 56320 && second <= 57343) {\n return (first - 55296) * 1024 + second - 56320 + 65536;\n }\n }\n return first;\n}\n__name(codePointAt, \"codePointAt\");\nfunction needIndentIndicator(string) {\n var leadingSpaceRe = /^\\n* /;\n return leadingSpaceRe.test(string);\n}\n__name(needIndentIndicator, \"needIndentIndicator\");\nvar STYLE_PLAIN = 1;\nvar STYLE_SINGLE = 2;\nvar STYLE_LITERAL = 3;\nvar STYLE_FOLDED = 4;\nvar STYLE_DOUBLE = 5;\nfunction chooseScalarStyle(string, singleLineOnly, indentPerLevel, lineWidth, testAmbiguousType, quotingType, forceQuotes, inblock) {\n var i;\n var char = 0;\n var prevChar = null;\n var hasLineBreak = false;\n var hasFoldableLine = false;\n var shouldTrackWidth = lineWidth !== -1;\n var previousLineBreak = -1;\n var plain = isPlainSafeFirst(codePointAt(string, 0)) && isPlainSafeLast(codePointAt(string, string.length - 1));\n if (singleLineOnly || forceQuotes) {\n for (i = 0; i < string.length; char >= 65536 ? i += 2 : i++) {\n char = codePointAt(string, i);\n if (!isPrintable(char)) {\n return STYLE_DOUBLE;\n }\n plain = plain && isPlainSafe(char, prevChar, inblock);\n prevChar = char;\n }\n } else {\n for (i = 0; i < string.length; char >= 65536 ? i += 2 : i++) {\n char = codePointAt(string, i);\n if (char === CHAR_LINE_FEED) {\n hasLineBreak = true;\n if (shouldTrackWidth) {\n hasFoldableLine = hasFoldableLine || // Foldable line = too long, and not more-indented.\n i - previousLineBreak - 1 > lineWidth && string[previousLineBreak + 1] !== \" \";\n previousLineBreak = i;\n }\n } else if (!isPrintable(char)) {\n return STYLE_DOUBLE;\n }\n plain = plain && isPlainSafe(char, prevChar, inblock);\n prevChar = char;\n }\n hasFoldableLine = hasFoldableLine || shouldTrackWidth && (i - previousLineBreak - 1 > lineWidth && string[previousLineBreak + 1] !== \" \");\n }\n if (!hasLineBreak && !hasFoldableLine) {\n if (plain && !forceQuotes && !testAmbiguousType(string)) {\n return STYLE_PLAIN;\n }\n return quotingType === QUOTING_TYPE_DOUBLE ? STYLE_DOUBLE : STYLE_SINGLE;\n }\n if (indentPerLevel > 9 && needIndentIndicator(string)) {\n return STYLE_DOUBLE;\n }\n if (!forceQuotes) {\n return hasFoldableLine ? STYLE_FOLDED : STYLE_LITERAL;\n }\n return quotingType === QUOTING_TYPE_DOUBLE ? STYLE_DOUBLE : STYLE_SINGLE;\n}\n__name(chooseScalarStyle, \"chooseScalarStyle\");\nfunction writeScalar(state, string, level, iskey, inblock) {\n state.dump = function() {\n if (string.length === 0) {\n return state.quotingType === QUOTING_TYPE_DOUBLE ? '\"\"' : \"''\";\n }\n if (!state.noCompatMode) {\n if (DEPRECATED_BOOLEANS_SYNTAX.indexOf(string) !== -1 || DEPRECATED_BASE60_SYNTAX.test(string)) {\n return state.quotingType === QUOTING_TYPE_DOUBLE ? '\"' + string + '\"' : \"'\" + string + \"'\";\n }\n }\n var indent = state.indent * Math.max(1, level);\n var lineWidth = state.lineWidth === -1 ? -1 : Math.max(Math.min(state.lineWidth, 40), state.lineWidth - indent);\n var singleLineOnly = iskey || state.flowLevel > -1 && level >= state.flowLevel;\n function testAmbiguity(string2) {\n return testImplicitResolving(state, string2);\n }\n __name(testAmbiguity, \"testAmbiguity\");\n switch (chooseScalarStyle(\n string,\n singleLineOnly,\n state.indent,\n lineWidth,\n testAmbiguity,\n state.quotingType,\n state.forceQuotes && !iskey,\n inblock\n )) {\n case STYLE_PLAIN:\n return string;\n case STYLE_SINGLE:\n return \"'\" + string.replace(/'/g, \"''\") + \"'\";\n case STYLE_LITERAL:\n return \"|\" + blockHeader(string, state.indent) + dropEndingNewline(indentString(string, indent));\n case STYLE_FOLDED:\n return \">\" + blockHeader(string, state.indent) + dropEndingNewline(indentString(foldString(string, lineWidth), indent));\n case STYLE_DOUBLE:\n return '\"' + escapeString(string) + '\"';\n default:\n throw new exception(\"impossible error: invalid scalar style\");\n }\n }();\n}\n__name(writeScalar, \"writeScalar\");\nfunction blockHeader(string, indentPerLevel) {\n var indentIndicator = needIndentIndicator(string) ? String(indentPerLevel) : \"\";\n var clip = string[string.length - 1] === \"\\n\";\n var keep = clip && (string[string.length - 2] === \"\\n\" || string === \"\\n\");\n var chomp = keep ? \"+\" : clip ? \"\" : \"-\";\n return indentIndicator + chomp + \"\\n\";\n}\n__name(blockHeader, \"blockHeader\");\nfunction dropEndingNewline(string) {\n return string[string.length - 1] === \"\\n\" ? string.slice(0, -1) : string;\n}\n__name(dropEndingNewline, \"dropEndingNewline\");\nfunction foldString(string, width) {\n var lineRe = /(\\n+)([^\\n]*)/g;\n var result = function() {\n var nextLF = string.indexOf(\"\\n\");\n nextLF = nextLF !== -1 ? nextLF : string.length;\n lineRe.lastIndex = nextLF;\n return foldLine(string.slice(0, nextLF), width);\n }();\n var prevMoreIndented = string[0] === \"\\n\" || string[0] === \" \";\n var moreIndented;\n var match;\n while (match = lineRe.exec(string)) {\n var prefix = match[1], line = match[2];\n moreIndented = line[0] === \" \";\n result += prefix + (!prevMoreIndented && !moreIndented && line !== \"\" ? \"\\n\" : \"\") + foldLine(line, width);\n prevMoreIndented = moreIndented;\n }\n return result;\n}\n__name(foldString, \"foldString\");\nfunction foldLine(line, width) {\n if (line === \"\" || line[0] === \" \") return line;\n var breakRe = / [^ ]/g;\n var match;\n var start = 0, end, curr = 0, next = 0;\n var result = \"\";\n while (match = breakRe.exec(line)) {\n next = match.index;\n if (next - start > width) {\n end = curr > start ? curr : next;\n result += \"\\n\" + line.slice(start, end);\n start = end + 1;\n }\n curr = next;\n }\n result += \"\\n\";\n if (line.length - start > width && curr > start) {\n result += line.slice(start, curr) + \"\\n\" + line.slice(curr + 1);\n } else {\n result += line.slice(start);\n }\n return result.slice(1);\n}\n__name(foldLine, \"foldLine\");\nfunction escapeString(string) {\n var result = \"\";\n var char = 0;\n var escapeSeq;\n for (var i = 0; i < string.length; char >= 65536 ? i += 2 : i++) {\n char = codePointAt(string, i);\n escapeSeq = ESCAPE_SEQUENCES[char];\n if (!escapeSeq && isPrintable(char)) {\n result += string[i];\n if (char >= 65536) result += string[i + 1];\n } else {\n result += escapeSeq || encodeHex(char);\n }\n }\n return result;\n}\n__name(escapeString, \"escapeString\");\nfunction writeFlowSequence(state, level, object) {\n var _result = \"\", _tag = state.tag, index, length, value;\n for (index = 0, length = object.length; index < length; index += 1) {\n value = object[index];\n if (state.replacer) {\n value = state.replacer.call(object, String(index), value);\n }\n if (writeNode(state, level, value, false, false) || typeof value === \"undefined\" && writeNode(state, level, null, false, false)) {\n if (_result !== \"\") _result += \",\" + (!state.condenseFlow ? \" \" : \"\");\n _result += state.dump;\n }\n }\n state.tag = _tag;\n state.dump = \"[\" + _result + \"]\";\n}\n__name(writeFlowSequence, \"writeFlowSequence\");\nfunction writeBlockSequence(state, level, object, compact) {\n var _result = \"\", _tag = state.tag, index, length, value;\n for (index = 0, length = object.length; index < length; index += 1) {\n value = object[index];\n if (state.replacer) {\n value = state.replacer.call(object, String(index), value);\n }\n if (writeNode(state, level + 1, value, true, true, false, true) || typeof value === \"undefined\" && writeNode(state, level + 1, null, true, true, false, true)) {\n if (!compact || _result !== \"\") {\n _result += generateNextLine(state, level);\n }\n if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {\n _result += \"-\";\n } else {\n _result += \"- \";\n }\n _result += state.dump;\n }\n }\n state.tag = _tag;\n state.dump = _result || \"[]\";\n}\n__name(writeBlockSequence, \"writeBlockSequence\");\nfunction writeFlowMapping(state, level, object) {\n var _result = \"\", _tag = state.tag, objectKeyList = Object.keys(object), index, length, objectKey, objectValue, pairBuffer;\n for (index = 0, length = objectKeyList.length; index < length; index += 1) {\n pairBuffer = \"\";\n if (_result !== \"\") pairBuffer += \", \";\n if (state.condenseFlow) pairBuffer += '\"';\n objectKey = objectKeyList[index];\n objectValue = object[objectKey];\n if (state.replacer) {\n objectValue = state.replacer.call(object, objectKey, objectValue);\n }\n if (!writeNode(state, level, objectKey, false, false)) {\n continue;\n }\n if (state.dump.length > 1024) pairBuffer += \"? \";\n pairBuffer += state.dump + (state.condenseFlow ? '\"' : \"\") + \":\" + (state.condenseFlow ? \"\" : \" \");\n if (!writeNode(state, level, objectValue, false, false)) {\n continue;\n }\n pairBuffer += state.dump;\n _result += pairBuffer;\n }\n state.tag = _tag;\n state.dump = \"{\" + _result + \"}\";\n}\n__name(writeFlowMapping, \"writeFlowMapping\");\nfunction writeBlockMapping(state, level, object, compact) {\n var _result = \"\", _tag = state.tag, objectKeyList = Object.keys(object), index, length, objectKey, objectValue, explicitPair, pairBuffer;\n if (state.sortKeys === true) {\n objectKeyList.sort();\n } else if (typeof state.sortKeys === \"function\") {\n objectKeyList.sort(state.sortKeys);\n } else if (state.sortKeys) {\n throw new exception(\"sortKeys must be a boolean or a function\");\n }\n for (index = 0, length = objectKeyList.length; index < length; index += 1) {\n pairBuffer = \"\";\n if (!compact || _result !== \"\") {\n pairBuffer += generateNextLine(state, level);\n }\n objectKey = objectKeyList[index];\n objectValue = object[objectKey];\n if (state.replacer) {\n objectValue = state.replacer.call(object, objectKey, objectValue);\n }\n if (!writeNode(state, level + 1, objectKey, true, true, true)) {\n continue;\n }\n explicitPair = state.tag !== null && state.tag !== \"?\" || state.dump && state.dump.length > 1024;\n if (explicitPair) {\n if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {\n pairBuffer += \"?\";\n } else {\n pairBuffer += \"? \";\n }\n }\n pairBuffer += state.dump;\n if (explicitPair) {\n pairBuffer += generateNextLine(state, level);\n }\n if (!writeNode(state, level + 1, objectValue, true, explicitPair)) {\n continue;\n }\n if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {\n pairBuffer += \":\";\n } else {\n pairBuffer += \": \";\n }\n pairBuffer += state.dump;\n _result += pairBuffer;\n }\n state.tag = _tag;\n state.dump = _result || \"{}\";\n}\n__name(writeBlockMapping, \"writeBlockMapping\");\nfunction detectType(state, object, explicit) {\n var _result, typeList, index, length, type2, style;\n typeList = explicit ? state.explicitTypes : state.implicitTypes;\n for (index = 0, length = typeList.length; index < length; index += 1) {\n type2 = typeList[index];\n if ((type2.instanceOf || type2.predicate) && (!type2.instanceOf || typeof object === \"object\" && object instanceof type2.instanceOf) && (!type2.predicate || type2.predicate(object))) {\n if (explicit) {\n if (type2.multi && type2.representName) {\n state.tag = type2.representName(object);\n } else {\n state.tag = type2.tag;\n }\n } else {\n state.tag = \"?\";\n }\n if (type2.represent) {\n style = state.styleMap[type2.tag] || type2.defaultStyle;\n if (_toString.call(type2.represent) === \"[object Function]\") {\n _result = type2.represent(object, style);\n } else if (_hasOwnProperty.call(type2.represent, style)) {\n _result = type2.represent[style](object, style);\n } else {\n throw new exception(\"!<\" + type2.tag + '> tag resolver accepts not \"' + style + '\" style');\n }\n state.dump = _result;\n }\n return true;\n }\n }\n return false;\n}\n__name(detectType, \"detectType\");\nfunction writeNode(state, level, object, block, compact, iskey, isblockseq) {\n state.tag = null;\n state.dump = object;\n if (!detectType(state, object, false)) {\n detectType(state, object, true);\n }\n var type2 = _toString.call(state.dump);\n var inblock = block;\n var tagStr;\n if (block) {\n block = state.flowLevel < 0 || state.flowLevel > level;\n }\n var objectOrArray = type2 === \"[object Object]\" || type2 === \"[object Array]\", duplicateIndex, duplicate;\n if (objectOrArray) {\n duplicateIndex = state.duplicates.indexOf(object);\n duplicate = duplicateIndex !== -1;\n }\n if (state.tag !== null && state.tag !== \"?\" || duplicate || state.indent !== 2 && level > 0) {\n compact = false;\n }\n if (duplicate && state.usedDuplicates[duplicateIndex]) {\n state.dump = \"*ref_\" + duplicateIndex;\n } else {\n if (objectOrArray && duplicate && !state.usedDuplicates[duplicateIndex]) {\n state.usedDuplicates[duplicateIndex] = true;\n }\n if (type2 === \"[object Object]\") {\n if (block && Object.keys(state.dump).length !== 0) {\n writeBlockMapping(state, level, state.dump, compact);\n if (duplicate) {\n state.dump = \"&ref_\" + duplicateIndex + state.dump;\n }\n } else {\n writeFlowMapping(state, level, state.dump);\n if (duplicate) {\n state.dump = \"&ref_\" + duplicateIndex + \" \" + state.dump;\n }\n }\n } else if (type2 === \"[object Array]\") {\n if (block && state.dump.length !== 0) {\n if (state.noArrayIndent && !isblockseq && level > 0) {\n writeBlockSequence(state, level - 1, state.dump, compact);\n } else {\n writeBlockSequence(state, level, state.dump, compact);\n }\n if (duplicate) {\n state.dump = \"&ref_\" + duplicateIndex + state.dump;\n }\n } else {\n writeFlowSequence(state, level, state.dump);\n if (duplicate) {\n state.dump = \"&ref_\" + duplicateIndex + \" \" + state.dump;\n }\n }\n } else if (type2 === \"[object String]\") {\n if (state.tag !== \"?\") {\n writeScalar(state, state.dump, level, iskey, inblock);\n }\n } else if (type2 === \"[object Undefined]\") {\n return false;\n } else {\n if (state.skipInvalid) return false;\n throw new exception(\"unacceptable kind of an object to dump \" + type2);\n }\n if (state.tag !== null && state.tag !== \"?\") {\n tagStr = encodeURI(\n state.tag[0] === \"!\" ? state.tag.slice(1) : state.tag\n ).replace(/!/g, \"%21\");\n if (state.tag[0] === \"!\") {\n tagStr = \"!\" + tagStr;\n } else if (tagStr.slice(0, 18) === \"tag:yaml.org,2002:\") {\n tagStr = \"!!\" + tagStr.slice(18);\n } else {\n tagStr = \"!<\" + tagStr + \">\";\n }\n state.dump = tagStr + \" \" + state.dump;\n }\n }\n return true;\n}\n__name(writeNode, \"writeNode\");\nfunction getDuplicateReferences(object, state) {\n var objects = [], duplicatesIndexes = [], index, length;\n inspectNode(object, objects, duplicatesIndexes);\n for (index = 0, length = duplicatesIndexes.length; index < length; index += 1) {\n state.duplicates.push(objects[duplicatesIndexes[index]]);\n }\n state.usedDuplicates = new Array(length);\n}\n__name(getDuplicateReferences, \"getDuplicateReferences\");\nfunction inspectNode(object, objects, duplicatesIndexes) {\n var objectKeyList, index, length;\n if (object !== null && typeof object === \"object\") {\n index = objects.indexOf(object);\n if (index !== -1) {\n if (duplicatesIndexes.indexOf(index) === -1) {\n duplicatesIndexes.push(index);\n }\n } else {\n objects.push(object);\n if (Array.isArray(object)) {\n for (index = 0, length = object.length; index < length; index += 1) {\n inspectNode(object[index], objects, duplicatesIndexes);\n }\n } else {\n objectKeyList = Object.keys(object);\n for (index = 0, length = objectKeyList.length; index < length; index += 1) {\n inspectNode(object[objectKeyList[index]], objects, duplicatesIndexes);\n }\n }\n }\n }\n}\n__name(inspectNode, \"inspectNode\");\nfunction dump$1(input, options) {\n options = options || {};\n var state = new State(options);\n if (!state.noRefs) getDuplicateReferences(input, state);\n var value = input;\n if (state.replacer) {\n value = state.replacer.call({ \"\": value }, \"\", value);\n }\n if (writeNode(state, 0, value, true, true)) return state.dump + \"\\n\";\n return \"\";\n}\n__name(dump$1, \"dump$1\");\nvar dump_1 = dump$1;\nvar dumper = {\n dump: dump_1\n};\nfunction renamed(from, to) {\n return function() {\n throw new Error(\"Function yaml.\" + from + \" is removed in js-yaml 4. Use yaml.\" + to + \" instead, which is now safe by default.\");\n };\n}\n__name(renamed, \"renamed\");\nvar JSON_SCHEMA = json;\nvar load = loader.load;\nvar loadAll = loader.loadAll;\nvar dump = dumper.dump;\nvar safeLoad = renamed(\"safeLoad\", \"load\");\nvar safeLoadAll = renamed(\"safeLoadAll\", \"loadAll\");\nvar safeDump = renamed(\"safeDump\", \"dump\");\n\nexport {\n JSON_SCHEMA,\n load\n};\n/*! Bundled license information:\n\njs-yaml/dist/js-yaml.mjs:\n (*! js-yaml 4.1.0 https://github.com/nodeca/js-yaml @license MIT *)\n*/\n"], + "mappings": "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", + "names": ["isNothing", "subject", "__name", "isObject", "toArray", "sequence", "extend", "target", "source", "index", "length", "key", "sourceKeys", "repeat", "string", "count", "result", "cycle", "isNegativeZero", "number", "isNothing_1", "isObject_1", "toArray_1", "repeat_1", "isNegativeZero_1", "extend_1", "common", "formatError", "exception2", "compact", "where", "message", "YAMLException$1", "reason", "mark", "exception", "getLine", "buffer", "lineStart", "lineEnd", "position", "maxLineLength", "head", "tail", "maxHalfLength", "padStart", "max", "makeSnippet", "options", "re", "lineStarts", "lineEnds", "match", "foundLineNo", "i", "line", "lineNoLength", "snippet", "TYPE_CONSTRUCTOR_OPTIONS", "YAML_NODE_KINDS", "compileStyleAliases", "map2", "style", "alias", "Type$1", "tag", "name", "data", "type", "compileList", "schema2", "currentType", "newIndex", "previousType", "previousIndex", "compileMap", "collectType", "type2", "Schema$1", "definition", "implicit", "explicit", "type$1", "schema", "str", "seq", "map", "failsafe", "resolveYamlNull", "constructYamlNull", "isNull", "object", "_null", "resolveYamlBoolean", "constructYamlBoolean", "isBoolean", "bool", "isHexCode", "c", "isOctCode", "isDecCode", "resolveYamlInteger", "hasDigits", "ch", "constructYamlInteger", "value", "sign", "isInteger", "int", "obj", "YAML_FLOAT_PATTERN", "resolveYamlFloat", "constructYamlFloat", "SCIENTIFIC_WITHOUT_DOT", "representYamlFloat", "res", "isFloat", "float", "json", "core", "YAML_DATE_REGEXP", "YAML_TIMESTAMP_REGEXP", "resolveYamlTimestamp", "constructYamlTimestamp", "year", "month", "day", "hour", "minute", "second", "fraction", "delta", "tz_hour", "tz_minute", "date", "representYamlTimestamp", "timestamp", "resolveYamlMerge", "merge", "BASE64_MAP", "resolveYamlBinary", "code", "idx", "bitlen", "constructYamlBinary", "tailbits", "input", "bits", "representYamlBinary", "isBinary", "binary", "_hasOwnProperty$3", "_toString$2", "resolveYamlOmap", "objectKeys", "pair", "pairKey", "pairHasKey", "constructYamlOmap", "omap", "_toString$1", "resolveYamlPairs", "keys", "constructYamlPairs", "pairs", "_hasOwnProperty$2", "resolveYamlSet", "constructYamlSet", "set", "_default", "_hasOwnProperty$1", "CONTEXT_FLOW_IN", "CONTEXT_FLOW_OUT", "CONTEXT_BLOCK_IN", "CONTEXT_BLOCK_OUT", "CHOMPING_CLIP", "CHOMPING_STRIP", "CHOMPING_KEEP", "PATTERN_NON_PRINTABLE", "PATTERN_NON_ASCII_LINE_BREAKS", "PATTERN_FLOW_INDICATORS", "PATTERN_TAG_HANDLE", "PATTERN_TAG_URI", "_class", "is_EOL", "is_WHITE_SPACE", "is_WS_OR_EOL", "is_FLOW_INDICATOR", "fromHexCode", "lc", "escapedHexLen", "fromDecimalCode", "simpleEscapeSequence", "charFromCodepoint", "simpleEscapeCheck", "simpleEscapeMap", "State$1", "generateError", "state", "throwError", "throwWarning", "directiveHandlers", "args", "major", "minor", "handle", "prefix", "captureSegment", "start", "end", "checkJson", "_position", "_length", "_character", "_result", "mergeMappings", "destination", "overridableKeys", "quantity", "storeMappingPair", "keyTag", "keyNode", "valueNode", "startLine", "startLineStart", "startPos", "readLineBreak", "skipSeparationSpace", "allowComments", "checkIndent", "lineBreaks", "testDocumentSeparator", "writeFoldedLines", "readPlainScalar", "nodeIndent", "withinFlowCollection", "preceding", "following", "captureStart", "captureEnd", "hasPendingContent", "_line", "_lineStart", "_lineIndent", "_kind", "readSingleQuotedScalar", "readDoubleQuotedScalar", "hexLength", "hexResult", "tmp", "readFlowCollection", "readNext", "_pos", "_tag", "_anchor", "terminator", "isPair", "isExplicitPair", "isMapping", "composeNode", "readBlockScalar", "folding", "chomping", "didReadContent", "detectedIndent", "textIndent", "emptyLines", "atMoreIndented", "readBlockSequence", "detected", "readBlockMapping", "flowIndent", "allowCompact", "_keyLine", "_keyLineStart", "_keyPos", "atExplicitKey", "readTagProperty", "isVerbatim", "isNamed", "tagHandle", "tagName", "readAnchorProperty", "readAlias", "parentIndent", "nodeContext", "allowToSeek", "allowBlockStyles", "allowBlockScalars", "allowBlockCollections", "indentStatus", "atNewLine", "hasContent", "typeIndex", "typeQuantity", "typeList", "blockIndent", "readDocument", "documentStart", "directiveName", "directiveArgs", "hasDirectives", "loadDocuments", "nullpos", "loadAll$1", "iterator", "documents", "load$1", "loadAll_1", "load_1", "loader", "_toString", "_hasOwnProperty", "CHAR_BOM", "CHAR_TAB", "CHAR_LINE_FEED", "CHAR_CARRIAGE_RETURN", "CHAR_SPACE", "CHAR_EXCLAMATION", "CHAR_DOUBLE_QUOTE", "CHAR_SHARP", "CHAR_PERCENT", "CHAR_AMPERSAND", "CHAR_SINGLE_QUOTE", "CHAR_ASTERISK", "CHAR_COMMA", "CHAR_MINUS", "CHAR_COLON", "CHAR_EQUALS", "CHAR_GREATER_THAN", "CHAR_QUESTION", "CHAR_COMMERCIAL_AT", "CHAR_LEFT_SQUARE_BRACKET", "CHAR_RIGHT_SQUARE_BRACKET", "CHAR_GRAVE_ACCENT", "CHAR_LEFT_CURLY_BRACKET", "CHAR_VERTICAL_LINE", "CHAR_RIGHT_CURLY_BRACKET", "ESCAPE_SEQUENCES", "DEPRECATED_BOOLEANS_SYNTAX", "DEPRECATED_BASE60_SYNTAX", "compileStyleMap", "encodeHex", "character", "QUOTING_TYPE_SINGLE", "QUOTING_TYPE_DOUBLE", "State", "indentString", "spaces", "ind", "next", "generateNextLine", "level", "testImplicitResolving", "str2", "isWhitespace", "isPrintable", "isNsCharOrWhitespace", "isPlainSafe", "prev", "inblock", "cIsNsCharOrWhitespace", "cIsNsChar", "isPlainSafeFirst", "isPlainSafeLast", "codePointAt", "pos", "first", "needIndentIndicator", "leadingSpaceRe", "STYLE_PLAIN", "STYLE_SINGLE", "STYLE_LITERAL", "STYLE_FOLDED", "STYLE_DOUBLE", "chooseScalarStyle", "singleLineOnly", "indentPerLevel", "lineWidth", "testAmbiguousType", "quotingType", "forceQuotes", "char", "prevChar", "hasLineBreak", "hasFoldableLine", "shouldTrackWidth", "previousLineBreak", "plain", "writeScalar", "iskey", "indent", "testAmbiguity", "string2", "blockHeader", "dropEndingNewline", "foldString", "escapeString", "indentIndicator", "clip", "keep", "chomp", "width", "lineRe", "nextLF", "foldLine", "prevMoreIndented", "moreIndented", "breakRe", "curr", "escapeSeq", "writeFlowSequence", "writeNode", "writeBlockSequence", "writeFlowMapping", "objectKeyList", "objectKey", "objectValue", "pairBuffer", "writeBlockMapping", "explicitPair", "detectType", "block", "isblockseq", "tagStr", "objectOrArray", "duplicateIndex", "duplicate", "getDuplicateReferences", "objects", "duplicatesIndexes", "inspectNode", "dump$1", "dump_1", "dumper", "renamed", "from", "to", "JSON_SCHEMA", "load", "loadAll", "dump", "safeLoad", "safeLoadAll", "safeDump"] +} diff --git a/docs/_site/public/chunk-N6ME3NZU.min.js b/docs/_site/public/chunk-N6ME3NZU.min.js new file mode 100644 index 0000000..e3c340a --- /dev/null +++ b/docs/_site/public/chunk-N6ME3NZU.min.js @@ -0,0 +1,16 @@ +import{a as Tt}from"./chunk-V55NTXQN.min.js";import{c as ft}from"./chunk-BD4P4Z7J.min.js";import{d as ct}from"./chunk-AUO2PXKS.min.js";import{i as ls,k as cs,o as ut,q as J}from"./chunk-PYPO7LRM.min.js";import{D as Rt,H as Lt,I as Q,K as At,M as rs,N as is,Z as X,aa as ns,h as S,ia as Y,j as q,v as as}from"./chunk-U3SD26FK.min.js";function Wt(l,t,r){if(l&&l.length){let[a,e]=t,i=Math.PI/180*r,o=Math.cos(i),s=Math.sin(i);for(let h of l){let[n,c]=h;h[0]=(n-a)*o-(c-e)*s+a,h[1]=(n-a)*s+(c-e)*o+e}}}function _e(l,t){return l[0]===t[0]&&l[1]===t[1]}function ze(l,t,r,a=1){let e=r,i=Math.max(t,.1),o=l[0]&&l[0][0]&&typeof l[0][0]=="number"?[l]:l,s=[0,0];if(e)for(let n of o)Wt(n,s,e);let h=function(n,c,g){let f=[];for(let x of n){let b=[...x];_e(b[0],b[b.length-1])||b.push([b[0][0],b[0][1]]),b.length>2&&f.push(b)}let p=[];c=Math.max(c,.1);let u=[];for(let x of f)for(let b=0;bx.yminb.ymin?1:x.xb.x?1:x.ymax===b.ymax?0:(x.ymax-b.ymax)/Math.abs(x.ymax-b.ymax)),!u.length)return p;let y=[],m=u[0].ymin,d=0;for(;y.length||u.length;){if(u.length){let x=-1;for(let b=0;bm);b++)x=b;u.splice(0,x+1).forEach(b=>{y.push({s:m,edge:b})})}if(y=y.filter(x=>!(x.edge.ymax<=m)),y.sort((x,b)=>x.edge.x===b.edge.x?0:(x.edge.x-b.edge.x)/Math.abs(x.edge.x-b.edge.x)),(g!==1||d%c==0)&&y.length>1)for(let x=0;x=y.length)break;let k=y[x].edge,w=y[b].edge;p.push([[Math.round(k.x),m],[Math.round(w.x),m]])}m+=g,y.forEach(x=>{x.edge.x=x.edge.x+g*x.edge.islope}),d++}return p}(o,i,a);if(e){for(let n of o)Wt(n,s,-e);(function(n,c,g){let f=[];n.forEach(p=>f.push(...p)),Wt(f,c,g)})(h,s,-e)}return h}function xt(l,t){var r;let a=t.hachureAngle+90,e=t.hachureGap;e<0&&(e=4*t.strokeWidth),e=Math.round(Math.max(e,.1));let i=1;return t.roughness>=1&&(((r=t.randomizer)===null||r===void 0?void 0:r.next())||Math.random())>.7&&(i=e),ze(l,e,a,i||1)}var mt=class{constructor(t){this.helper=t}fillPolygons(t,r){return this._fillPolygons(t,r)}_fillPolygons(t,r){let a=xt(t,r);return{type:"fillSketch",ops:this.renderLines(a,r)}}renderLines(t,r){let a=[];for(let e of t)a.push(...this.helper.doubleLineOps(e[0][0],e[0][1],e[1][0],e[1][1],r));return a}};function Ct(l){let t=l[0],r=l[1];return Math.sqrt(Math.pow(t[0]-r[0],2)+Math.pow(t[1]-r[1],2))}var _t=class extends mt{fillPolygons(t,r){let a=r.hachureGap;a<0&&(a=4*r.strokeWidth),a=Math.max(a,.1);let e=xt(t,Object.assign({},r,{hachureGap:a})),i=Math.PI/180*r.hachureAngle,o=[],s=.5*a*Math.cos(i),h=.5*a*Math.sin(i);for(let[n,c]of e)Ct([n,c])&&o.push([[n[0]-s,n[1]+h],[...c]],[[n[0]+s,n[1]-h],[...c]]);return{type:"fillSketch",ops:this.renderLines(o,r)}}},zt=class extends mt{fillPolygons(t,r){let a=this._fillPolygons(t,r),e=Object.assign({},r,{hachureAngle:r.hachureAngle+90}),i=this._fillPolygons(t,e);return a.ops=a.ops.concat(i.ops),a}},jt=class{constructor(t){this.helper=t}fillPolygons(t,r){let a=xt(t,r=Object.assign({},r,{hachureAngle:0}));return this.dotsOnLines(a,r)}dotsOnLines(t,r){let a=[],e=r.hachureGap;e<0&&(e=4*r.strokeWidth),e=Math.max(e,.1);let i=r.fillWeight;i<0&&(i=r.strokeWidth/2);let o=e/4;for(let s of t){let h=Ct(s),n=h/e,c=Math.ceil(n)-1,g=h-c*e,f=(s[0][0]+s[1][0])/2-e/4,p=Math.min(s[0][1],s[1][1]);for(let u=0;u{let s=Ct(o),h=Math.floor(s/(a+e)),n=(s+e-h*(a+e))/2,c=o[0],g=o[1];c[0]>g[0]&&(c=o[1],g=o[0]);let f=Math.atan((g[1]-c[1])/(g[0]-c[0]));for(let p=0;p{let o=Ct(i),s=Math.round(o/(2*r)),h=i[0],n=i[1];h[0]>n[0]&&(h=i[1],n=i[0]);let c=Math.atan((n[1]-h[1])/(n[0]-h[0]));for(let g=0;gc%2?n+r:n+t);i.push({key:"C",data:h}),t=h[4],r=h[5];break}case"Q":i.push({key:"Q",data:[...s]}),t=s[2],r=s[3];break;case"q":{let h=s.map((n,c)=>c%2?n+r:n+t);i.push({key:"Q",data:h}),t=h[2],r=h[3];break}case"A":i.push({key:"A",data:[...s]}),t=s[5],r=s[6];break;case"a":t+=s[5],r+=s[6],i.push({key:"A",data:[s[0],s[1],s[2],s[3],s[4],t,r]});break;case"H":i.push({key:"H",data:[...s]}),t=s[0];break;case"h":t+=s[0],i.push({key:"H",data:[t]});break;case"V":i.push({key:"V",data:[...s]}),r=s[0];break;case"v":r+=s[0],i.push({key:"V",data:[r]});break;case"S":i.push({key:"S",data:[...s]}),t=s[2],r=s[3];break;case"s":{let h=s.map((n,c)=>c%2?n+r:n+t);i.push({key:"S",data:h}),t=h[2],r=h[3];break}case"T":i.push({key:"T",data:[...s]}),t=s[0],r=s[1];break;case"t":t+=s[0],r+=s[1],i.push({key:"T",data:[t,r]});break;case"Z":case"z":i.push({key:"Z",data:[]}),t=a,r=e}return i}function xs(l){let t=[],r="",a=0,e=0,i=0,o=0,s=0,h=0;for(let{key:n,data:c}of l){switch(n){case"M":t.push({key:"M",data:[...c]}),[a,e]=c,[i,o]=c;break;case"C":t.push({key:"C",data:[...c]}),a=c[4],e=c[5],s=c[2],h=c[3];break;case"L":t.push({key:"L",data:[...c]}),[a,e]=c;break;case"H":a=c[0],t.push({key:"L",data:[a,e]});break;case"V":e=c[0],t.push({key:"L",data:[a,e]});break;case"S":{let g=0,f=0;r==="C"||r==="S"?(g=a+(a-s),f=e+(e-h)):(g=a,f=e),t.push({key:"C",data:[g,f,...c]}),s=c[0],h=c[1],a=c[2],e=c[3];break}case"T":{let[g,f]=c,p=0,u=0;r==="Q"||r==="T"?(p=a+(a-s),u=e+(e-h)):(p=a,u=e);let y=a+2*(p-a)/3,m=e+2*(u-e)/3,d=g+2*(p-g)/3,x=f+2*(u-f)/3;t.push({key:"C",data:[y,m,d,x,g,f]}),s=p,h=u,a=g,e=f;break}case"Q":{let[g,f,p,u]=c,y=a+2*(g-a)/3,m=e+2*(f-e)/3,d=p+2*(g-p)/3,x=u+2*(f-u)/3;t.push({key:"C",data:[y,m,d,x,p,u]}),s=g,h=f,a=p,e=u;break}case"A":{let g=Math.abs(c[0]),f=Math.abs(c[1]),p=c[2],u=c[3],y=c[4],m=c[5],d=c[6];g===0||f===0?(t.push({key:"C",data:[a,e,m,d,m,d]}),a=m,e=d):(a!==m||e!==d)&&(bs(a,e,m,d,g,f,p,u,y).forEach(function(x){t.push({key:"C",data:x})}),a=m,e=d);break}case"Z":t.push({key:"Z",data:[]}),a=i,e=o}r=n}return t}function yt(l,t,r){return[l*Math.cos(r)-t*Math.sin(r),l*Math.sin(r)+t*Math.cos(r)]}function bs(l,t,r,a,e,i,o,s,h,n){let c=(g=o,Math.PI*g/180);var g;let f=[],p=0,u=0,y=0,m=0;if(n)[p,u,y,m]=n;else{[l,t]=yt(l,t,-c),[r,a]=yt(r,a,-c);let P=(l-r)/2,A=(t-a)/2,W=P*P/(e*e)+A*A/(i*i);W>1&&(W=Math.sqrt(W),e*=W,i*=W);let B=e*e,O=i*i,z=B*O-B*A*A-O*P*P,Z=B*A*A+O*P*P,tt=(s===h?-1:1)*Math.sqrt(Math.abs(z/Z));y=tt*e*A/i+(l+r)/2,m=tt*-i*P/e+(t+a)/2,p=Math.asin(parseFloat(((t-m)/i).toFixed(9))),u=Math.asin(parseFloat(((a-m)/i).toFixed(9))),lu&&(p-=2*Math.PI),!h&&u>p&&(u-=2*Math.PI)}let d=u-p;if(Math.abs(d)>120*Math.PI/180){let P=u,A=r,W=a;u=h&&u>p?p+120*Math.PI/180*1:p+120*Math.PI/180*-1,f=bs(r=y+e*Math.cos(u),a=m+i*Math.sin(u),A,W,e,i,o,0,h,[u,P,y,m])}d=u-p;let x=Math.cos(p),b=Math.sin(p),k=Math.cos(u),w=Math.sin(u),v=Math.tan(d/4),$=4/3*e*v,D=4/3*i*v,C=[l,t],R=[l+$*b,t-D*x],L=[r+$*w,a-D*k],E=[r,a];if(R[0]=2*C[0]-R[0],R[1]=2*C[1]-R[1],n)return[R,L,E].concat(f);{f=[R,L,E].concat(f);let P=[];for(let A=0;A2){let e=[];for(let i=0;i2*Math.PI&&(p=0,u=2*Math.PI);let y=2*Math.PI/h.curveStepCount,m=Math.min(y/2,(u-p)/2),d=ys(m,n,c,g,f,p,u,1,h);if(!h.disableMultiStroke){let x=ys(m,n,c,g,f,p,u,1.5,h);d.push(...x)}return o&&(s?d.push(...it(n,c,n+g*Math.cos(p),c+f*Math.sin(p),h),...it(n,c,n+g*Math.cos(u),c+f*Math.sin(u),h)):d.push({op:"lineTo",data:[n,c]},{op:"lineTo",data:[n+g*Math.cos(p),c+f*Math.sin(p)]})),{type:"path",ops:d}}function ps(l,t){let r=xs(ms(Jt(l))),a=[],e=[0,0],i=[0,0];for(let{key:o,data:s}of r)switch(o){case"M":i=[s[0],s[1]],e=[s[0],s[1]];break;case"L":a.push(...it(i[0],i[1],s[0],s[1],t)),i=[s[0],s[1]];break;case"C":{let[h,n,c,g,f,p]=s;a.push(...qe(h,n,c,g,f,p,i,t)),i=[f,p];break}case"Z":a.push(...it(i[0],i[1],e[0],e[1],t)),i=[e[0],e[1]]}return{type:"path",ops:a}}function Et(l,t){let r=[];for(let a of l)if(a.length){let e=t.maxRandomnessOffset||0,i=a.length;if(i>2){r.push({op:"move",data:[a[0][0]+_(e,t),a[0][1]+_(e,t)]});for(let o=1;o500?.4:-.0016668*h+1.233334;let c=e.maxRandomnessOffset||0;c*c*100>s&&(c=h/10);let g=c/2,f=.2+.2*Ms(e),p=e.bowing*e.maxRandomnessOffset*(a-t)/200,u=e.bowing*e.maxRandomnessOffset*(l-r)/200;p=_(p,e,n),u=_(u,e,n);let y=[],m=()=>_(g,e,n),d=()=>_(c,e,n),x=e.preserveVertices;return i&&(o?y.push({op:"move",data:[l+(x?0:m()),t+(x?0:m())]}):y.push({op:"move",data:[l+(x?0:_(c,e,n)),t+(x?0:_(c,e,n))]})),o?y.push({op:"bcurveTo",data:[p+l+(r-l)*f+m(),u+t+(a-t)*f+m(),p+l+2*(r-l)*f+m(),u+t+2*(a-t)*f+m(),r+(x?0:m()),a+(x?0:m())]}):y.push({op:"bcurveTo",data:[p+l+(r-l)*f+d(),u+t+(a-t)*f+d(),p+l+2*(r-l)*f+d(),u+t+2*(a-t)*f+d(),r+(x?0:d()),a+(x?0:d())]}),y}function St(l,t,r){if(!l.length)return[];let a=[];a.push([l[0][0]+_(t,r),l[0][1]+_(t,r)]),a.push([l[0][0]+_(t,r),l[0][1]+_(t,r)]);for(let e=1;e3){let i=[],o=1-r.curveTightness;e.push({op:"move",data:[l[1][0],l[1][1]]});for(let s=1;s+21&&e.push(s)):e.push(s),e.push(l[t+3])}else{let h=l[t+0],n=l[t+1],c=l[t+2],g=l[t+3],f=lt(h,n,.5),p=lt(n,c,.5),u=lt(c,g,.5),y=lt(f,p,.5),m=lt(p,u,.5),d=lt(y,m,.5);Vt([h,f,y,d],0,r,e),Vt([d,m,u,g],0,r,e)}var i,o;return e}function Ye(l,t){return Pt(l,0,l.length,t)}function Pt(l,t,r,a,e){let i=e||[],o=l[t],s=l[r-1],h=0,n=1;for(let c=t+1;ch&&(h=g,n=c)}return Math.sqrt(h)>a?(Pt(l,t,n+1,a,i),Pt(l,n,r,a,i)):(i.length||i.push(o),i.push(s)),i}function Ot(l,t=.15,r){let a=[],e=(l.length-1)/3;for(let i=0;i0?Pt(a,0,a.length,r):a}var K="none",ht=class{constructor(t){this.defaultOptions={maxRandomnessOffset:2,roughness:1,bowing:1,stroke:"#000",strokeWidth:1,curveTightness:0,curveFitting:.95,curveStepCount:9,fillStyle:"hachure",fillWeight:-1,hachureAngle:-41,hachureGap:-1,dashOffset:-1,dashGap:-1,zigzagOffset:-1,seed:0,disableMultiStroke:!1,disableMultiStrokeFill:!1,preserveVertices:!1,fillShapeRoughnessGain:.8},this.config=t||{},this.config.options&&(this.defaultOptions=this._o(this.config.options))}static newSeed(){return Math.floor(Math.random()*2**31)}_o(t){return t?Object.assign({},this.defaultOptions,t):this.defaultOptions}_d(t,r,a){return{shape:t,sets:r||[],options:a||this.defaultOptions}}line(t,r,a,e,i){let o=this._o(i);return this._d("line",[ws(t,r,a,e,o)],o)}rectangle(t,r,a,e,i){let o=this._o(i),s=[],h=Fe(t,r,a,e,o);if(o.fill){let n=[[t,r],[t+a,r],[t+a,r+e],[t,r+e]];o.fillStyle==="solid"?s.push(Et([n],o)):s.push(ot([n],o))}return o.stroke!==K&&s.push(h),this._d("rectangle",s,o)}ellipse(t,r,a,e,i){let o=this._o(i),s=[],h=Ss(a,e,o),n=Xt(t,r,o,h);if(o.fill)if(o.fillStyle==="solid"){let c=Xt(t,r,o,h).opset;c.type="fillPath",s.push(c)}else s.push(ot([n.estimatedPoints],o));return o.stroke!==K&&s.push(n.opset),this._d("ellipse",s,o)}circle(t,r,a,e){let i=this.ellipse(t,r,a,a,e);return i.shape="circle",i}linearPath(t,r){let a=this._o(r);return this._d("linearPath",[kt(t,!1,a)],a)}arc(t,r,a,e,i,o,s=!1,h){let n=this._o(h),c=[],g=gs(t,r,a,e,i,o,s,!0,n);if(s&&n.fill)if(n.fillStyle==="solid"){let f=Object.assign({},n);f.disableMultiStroke=!0;let p=gs(t,r,a,e,i,o,!0,!1,f);p.type="fillPath",c.push(p)}else c.push(function(f,p,u,y,m,d,x){let b=f,k=p,w=Math.abs(u/2),v=Math.abs(y/2);w+=_(.01*w,x),v+=_(.01*v,x);let $=m,D=d;for(;$<0;)$+=2*Math.PI,D+=2*Math.PI;D-$>2*Math.PI&&($=0,D=2*Math.PI);let C=(D-$)/x.curveStepCount,R=[];for(let L=$;L<=D;L+=C)R.push([b+w*Math.cos(L),k+v*Math.sin(L)]);return R.push([b+w*Math.cos(D),k+v*Math.sin(D)]),R.push([b,k]),ot([R],x)}(t,r,a,e,i,o,n));return n.stroke!==K&&c.push(g),this._d("arc",c,n)}curve(t,r){let a=this._o(r),e=[],i=hs(t,a);if(a.fill&&a.fill!==K)if(a.fillStyle==="solid"){let o=hs(t,Object.assign(Object.assign({},a),{disableMultiStroke:!0,roughness:a.roughness?a.roughness+a.fillShapeRoughnessGain:0}));e.push({type:"fillPath",ops:this._mergedShape(o.ops)})}else{let o=[],s=t;if(s.length){let h=typeof s[0][0]=="number"?[s]:s;for(let n of h)n.length<3?o.push(...n):n.length===3?o.push(...Ot(ds([n[0],n[0],n[1],n[2]]),10,(1+a.roughness)/2)):o.push(...Ot(ds(n),10,(1+a.roughness)/2))}o.length&&e.push(ot([o],a))}return a.stroke!==K&&e.push(i),this._d("curve",e,a)}polygon(t,r){let a=this._o(r),e=[],i=kt(t,!0,a);return a.fill&&(a.fillStyle==="solid"?e.push(Et([t],a)):e.push(ot([t],a))),a.stroke!==K&&e.push(i),this._d("polygon",e,a)}path(t,r){let a=this._o(r),e=[];if(!t)return this._d("path",e,a);t=(t||"").replace(/\n/g," ").replace(/(-\s)/g,"-").replace("/(ss)/g"," ");let i=a.fill&&a.fill!=="transparent"&&a.fill!==K,o=a.stroke!==K,s=!!(a.simplification&&a.simplification<1),h=function(c,g,f){let p=xs(ms(Jt(c))),u=[],y=[],m=[0,0],d=[],x=()=>{d.length>=4&&y.push(...Ot(d,g)),d=[]},b=()=>{x(),y.length&&(u.push(y),y=[])};for(let{key:w,data:v}of p)switch(w){case"M":b(),m=[v[0],v[1]],y.push(m);break;case"L":x(),y.push([v[0],v[1]]);break;case"C":if(!d.length){let $=y.length?y[y.length-1]:m;d.push([$[0],$[1]])}d.push([v[0],v[1]]),d.push([v[2],v[3]]),d.push([v[4],v[5]]);break;case"Z":x(),y.push([m[0],m[1]])}if(b(),!f)return u;let k=[];for(let w of u){let v=Ye(w,f);v.length&&k.push(v)}return k}(t,1,s?4-4*(a.simplification||1):(1+a.roughness)/2),n=ps(t,a);if(i)if(a.fillStyle==="solid")if(h.length===1){let c=ps(t,Object.assign(Object.assign({},a),{disableMultiStroke:!0,roughness:a.roughness?a.roughness+a.fillShapeRoughnessGain:0}));e.push({type:"fillPath",ops:this._mergedShape(c.ops)})}else e.push(Et(h,a));else e.push(ot(h,a));return o&&(s?h.forEach(c=>{e.push(kt(c,!1,a))}):e.push(n)),this._d("path",e,a)}opsToPath(t,r){let a="";for(let e of t.ops){let i=typeof r=="number"&&r>=0?e.data.map(o=>+o.toFixed(r)):e.data;switch(e.op){case"move":a+=`M${i[0]} ${i[1]} `;break;case"bcurveTo":a+=`C${i[0]} ${i[1]}, ${i[2]} ${i[3]}, ${i[4]} ${i[5]} `;break;case"lineTo":a+=`L${i[0]} ${i[1]} `}}return a.trim()}toPaths(t){let r=t.sets||[],a=t.options||this.defaultOptions,e=[];for(let i of r){let o=null;switch(i.type){case"path":o={d:this.opsToPath(i),stroke:a.stroke,strokeWidth:a.strokeWidth,fill:K};break;case"fillPath":o={d:this.opsToPath(i),stroke:K,strokeWidth:0,fill:a.fill||K};break;case"fillSketch":o=this.fillSketch(i,a)}o&&e.push(o)}return e}fillSketch(t,r){let a=r.fillWeight;return a<0&&(a=r.strokeWidth/2),{d:this.opsToPath(t),stroke:r.fill||K,strokeWidth:a,fill:K}}_mergedShape(t){return t.filter((r,a)=>a===0||r.op!=="move")}},Zt=class{constructor(t,r){this.canvas=t,this.ctx=this.canvas.getContext("2d"),this.gen=new ht(r)}draw(t){let r=t.sets||[],a=t.options||this.getDefaultOptions(),e=this.ctx,i=t.options.fixedDecimalPlaceDigits;for(let o of r)switch(o.type){case"path":e.save(),e.strokeStyle=a.stroke==="none"?"transparent":a.stroke,e.lineWidth=a.strokeWidth,a.strokeLineDash&&e.setLineDash(a.strokeLineDash),a.strokeLineDashOffset&&(e.lineDashOffset=a.strokeLineDashOffset),this._drawToContext(e,o,i),e.restore();break;case"fillPath":{e.save(),e.fillStyle=a.fill||"";let s=t.shape==="curve"||t.shape==="polygon"||t.shape==="path"?"evenodd":"nonzero";this._drawToContext(e,o,i,s),e.restore();break}case"fillSketch":this.fillSketch(e,o,a)}}fillSketch(t,r,a){let e=a.fillWeight;e<0&&(e=a.strokeWidth/2),t.save(),a.fillLineDash&&t.setLineDash(a.fillLineDash),a.fillLineDashOffset&&(t.lineDashOffset=a.fillLineDashOffset),t.strokeStyle=a.fill||"",t.lineWidth=e,this._drawToContext(t,r,a.fixedDecimalPlaceDigits),t.restore()}_drawToContext(t,r,a,e="nonzero"){t.beginPath();for(let i of r.ops){let o=typeof a=="number"&&a>=0?i.data.map(s=>+s.toFixed(a)):i.data;switch(i.op){case"move":t.moveTo(o[0],o[1]);break;case"bcurveTo":t.bezierCurveTo(o[0],o[1],o[2],o[3],o[4],o[5]);break;case"lineTo":t.lineTo(o[0],o[1])}}r.type==="fillPath"?t.fill(e):t.stroke()}get generator(){return this.gen}getDefaultOptions(){return this.gen.defaultOptions}line(t,r,a,e,i){let o=this.gen.line(t,r,a,e,i);return this.draw(o),o}rectangle(t,r,a,e,i){let o=this.gen.rectangle(t,r,a,e,i);return this.draw(o),o}ellipse(t,r,a,e,i){let o=this.gen.ellipse(t,r,a,e,i);return this.draw(o),o}circle(t,r,a,e){let i=this.gen.circle(t,r,a,e);return this.draw(i),i}linearPath(t,r){let a=this.gen.linearPath(t,r);return this.draw(a),a}polygon(t,r){let a=this.gen.polygon(t,r);return this.draw(a),a}arc(t,r,a,e,i,o,s=!1,h){let n=this.gen.arc(t,r,a,e,i,o,s,h);return this.draw(n),n}curve(t,r){let a=this.gen.curve(t,r);return this.draw(a),a}path(t,r){let a=this.gen.path(t,r);return this.draw(a),a}},Mt="http://www.w3.org/2000/svg",Qt=class{constructor(t,r){this.svg=t,this.gen=new ht(r)}draw(t){let r=t.sets||[],a=t.options||this.getDefaultOptions(),e=this.svg.ownerDocument||window.document,i=e.createElementNS(Mt,"g"),o=t.options.fixedDecimalPlaceDigits;for(let s of r){let h=null;switch(s.type){case"path":h=e.createElementNS(Mt,"path"),h.setAttribute("d",this.opsToPath(s,o)),h.setAttribute("stroke",a.stroke),h.setAttribute("stroke-width",a.strokeWidth+""),h.setAttribute("fill","none"),a.strokeLineDash&&h.setAttribute("stroke-dasharray",a.strokeLineDash.join(" ").trim()),a.strokeLineDashOffset&&h.setAttribute("stroke-dashoffset",`${a.strokeLineDashOffset}`);break;case"fillPath":h=e.createElementNS(Mt,"path"),h.setAttribute("d",this.opsToPath(s,o)),h.setAttribute("stroke","none"),h.setAttribute("stroke-width","0"),h.setAttribute("fill",a.fill||""),t.shape!=="curve"&&t.shape!=="polygon"||h.setAttribute("fill-rule","evenodd");break;case"fillSketch":h=this.fillSketch(e,s,a)}h&&i.appendChild(h)}return i}fillSketch(t,r,a){let e=a.fillWeight;e<0&&(e=a.strokeWidth/2);let i=t.createElementNS(Mt,"path");return i.setAttribute("d",this.opsToPath(r,a.fixedDecimalPlaceDigits)),i.setAttribute("stroke",a.fill||""),i.setAttribute("stroke-width",e+""),i.setAttribute("fill","none"),a.fillLineDash&&i.setAttribute("stroke-dasharray",a.fillLineDash.join(" ").trim()),a.fillLineDashOffset&&i.setAttribute("stroke-dashoffset",`${a.fillLineDashOffset}`),i}get generator(){return this.gen}getDefaultOptions(){return this.gen.defaultOptions}opsToPath(t,r){return this.gen.opsToPath(t,r)}line(t,r,a,e,i){let o=this.gen.line(t,r,a,e,i);return this.draw(o)}rectangle(t,r,a,e,i){let o=this.gen.rectangle(t,r,a,e,i);return this.draw(o)}ellipse(t,r,a,e,i){let o=this.gen.ellipse(t,r,a,e,i);return this.draw(o)}circle(t,r,a,e){let i=this.gen.circle(t,r,a,e);return this.draw(i)}linearPath(t,r){let a=this.gen.linearPath(t,r);return this.draw(a)}polygon(t,r){let a=this.gen.polygon(t,r);return this.draw(a)}arc(t,r,a,e,i,o,s=!1,h){let n=this.gen.arc(t,r,a,e,i,o,s,h);return this.draw(n)}curve(t,r){let a=this.gen.curve(t,r);return this.draw(a)}path(t,r){let a=this.gen.path(t,r);return this.draw(a)}},M={canvas:(l,t)=>new Zt(l,t),svg:(l,t)=>new Qt(l,t),generator:l=>new ht(l),newSeed:()=>ht.newSeed()};var G=S(async(l,t,r)=>{let a,e=t.useHtmlLabels||Q(X()?.htmlLabels);r?a=r:a="node default";let i=l.insert("g").attr("class",a).attr("id",t.domId||t.id),o=i.insert("g").attr("class","label").attr("style",J(t.labelStyle)),s;t.label===void 0?s="":s=typeof t.label=="string"?t.label:t.label[0];let h=await ct(o,Lt(ut(s),X()),{useHtmlLabels:e,width:t.width||X().flowchart?.wrappingWidth,cssClasses:"markdown-node-label",style:t.labelStyle,addSvgBackground:!!t.icon||!!t.img}),n=h.getBBox(),c=(t?.padding??0)/2;if(e){let g=h.children[0],f=Y(h),p=g.getElementsByTagName("img");if(p){let u=s.replace(/]*>/g,"").trim()==="";await Promise.all([...p].map(y=>new Promise(m=>{function d(){if(y.style.display="flex",y.style.flexDirection="column",u){let x=X().fontSize?X().fontSize:window.getComputedStyle(document.body).fontSize,b=5,[k=as.fontSize]=cs(x),w=k*b+"px";y.style.minWidth=w,y.style.maxWidth=w}else y.style.width="100%";m(y)}S(d,"setupImage"),setTimeout(()=>{y.complete&&d()}),y.addEventListener("error",d),y.addEventListener("load",d)})))}n=g.getBoundingClientRect(),f.attr("width",n.width),f.attr("height",n.height)}return e?o.attr("transform","translate("+-n.width/2+", "+-n.height/2+")"):o.attr("transform","translate(0, "+-n.height/2+")"),t.centerLabel&&o.attr("transform","translate("+-n.width/2+", "+-n.height/2+")"),o.insert("rect",":first-child"),{shapeSvg:i,bbox:n,halfPadding:c,label:o}},"labelHelper"),Ut=S(async(l,t,r)=>{let a=r.useHtmlLabels||Q(X()?.flowchart?.htmlLabels),e=l.insert("g").attr("class","label").attr("style",r.labelStyle||""),i=await ct(e,Lt(ut(t),X()),{useHtmlLabels:a,width:r.width||X()?.flowchart?.wrappingWidth,style:r.labelStyle,addSvgBackground:!!r.icon||!!r.img}),o=i.getBBox(),s=r.padding/2;if(Q(X()?.flowchart?.htmlLabels)){let h=i.children[0],n=Y(i);o=h.getBoundingClientRect(),n.attr("width",o.width),n.attr("height",o.height)}return a?e.attr("transform","translate("+-o.width/2+", "+-o.height/2+")"):e.attr("transform","translate(0, "+-o.height/2+")"),r.centerLabel&&e.attr("transform","translate("+-o.width/2+", "+-o.height/2+")"),e.insert("rect",":first-child"),{shapeSvg:l,bbox:o,halfPadding:s,label:e}},"insertLabel"),H=S((l,t)=>{let r=t.node().getBBox();l.width=r.width,l.height=r.height},"updateNodeBounds"),j=S((l,t)=>(l.look==="handDrawn"?"rough-node":"node")+" "+l.cssClasses+" "+(t||""),"getNodeClasses");function F(l){let t=l.map((r,a)=>`${a===0?"M":"L"}${r.x},${r.y}`);return t.push("Z"),t.join(" ")}S(F,"createPathFromPoints");function nt(l,t,r,a,e,i){let o=[],h=r-l,n=a-t,c=h/i,g=2*Math.PI/c,f=t+n/2;for(let p=0;p<=50;p++){let u=p/50,y=l+u*h,m=f+e*Math.sin(g*(y-l));o.push({x:y,y:m})}return o}S(nt,"generateFullSineWavePoints");function es(l,t,r,a,e,i){let o=[],s=e*Math.PI/180,c=(i*Math.PI/180-s)/(a-1);for(let g=0;g{var r=l.x,a=l.y,e=t.x-r,i=t.y-a,o=l.width/2,s=l.height/2,h,n;return Math.abs(i)*o>Math.abs(e)*s?(i<0&&(s=-s),h=i===0?0:s*e/i,n=s):(e<0&&(o=-o),h=o,n=e===0?0:o*i/e),{x:r+h,y:a+n}},"intersectRect"),gt=Ve;function ks(l,t){t&&l.attr("style",t)}S(ks,"applyStyle");async function vs(l){let t=Y(document.createElementNS("http://www.w3.org/2000/svg","foreignObject")),r=t.append("xhtml:div"),a=l.label;l.label&&At(l.label)&&(a=await rs(l.label.replace(is.lineBreakRegex,` +`),X()));let e=l.isNode?"nodeLabel":"edgeLabel";return r.html('"+a+""),ks(r,l.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"),t.node()}S(vs,"addHtmlLabel");var Ze=S(async(l,t,r,a)=>{let e=l||"";if(typeof e=="object"&&(e=e[0]),Q(X().flowchart.htmlLabels)){e=e.replace(/\\n|\n/g,"
    "),q.info("vertexText"+e);let i={isNode:a,label:ut(e).replace(/fa[blrs]?:fa-[\w-]+/g,s=>``),labelStyle:t&&t.replace("fill:","color:")};return await vs(i)}else{let i=document.createElementNS("http://www.w3.org/2000/svg","text");i.setAttribute("style",t.replace("color:","fill:"));let o=[];typeof e=="string"?o=e.split(/\\n|\n|/gi):Array.isArray(e)?o=e:o=[];for(let s of o){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=s.trim(),i.appendChild(h)}return i}},"createLabel"),Kt=Ze,at=S((l,t,r,a,e)=>["M",l+e,t,"H",l+r-e,"A",e,e,0,0,1,l+r,t+e,"V",t+a-e,"A",e,e,0,0,1,l+r-e,t+a,"H",l+e,"A",e,e,0,0,1,l,t+a-e,"V",t+e,"A",e,e,0,0,1,l+e,t,"Z"].join(" "),"createRoundedRectPathD"),Qe=S(l=>{let{handDrawnSeed:t}=X();return{fill:l,hachureAngle:120,hachureGap:4,fillWeight:2,roughness:.7,stroke:l,seed:t}},"solidStateFill"),pt=S(l=>{let t=Je([...l.cssCompiledStyles||[],...l.cssStyles||[]]);return{stylesMap:t,stylesArray:[...t]}},"compileStyles"),Je=S(l=>{let t=new Map;return l.forEach(r=>{let[a,e]=r.split(":");t.set(a.trim(),e?.trim())}),t},"styles2Map"),I=S(l=>{let{stylesArray:t}=pt(l),r=[],a=[],e=[],i=[];return t.forEach(o=>{let s=o[0];s==="color"||s==="font-size"||s==="font-family"||s==="font-weight"||s==="font-style"||s==="text-decoration"||s==="text-align"||s==="text-transform"||s==="line-height"||s==="letter-spacing"||s==="word-spacing"||s==="text-shadow"||s==="text-overflow"||s==="white-space"||s==="word-wrap"||s==="word-break"||s==="overflow-wrap"||s==="hyphens"?r.push(o.join(":")+" !important"):(a.push(o.join(":")+" !important"),s.includes("stroke")&&e.push(o.join(":")+" !important"),s==="fill"&&i.push(o.join(":")+" !important"))}),{labelStyles:r.join(";"),nodeStyles:a.join(";"),stylesArray:t,borderStyles:e,backgroundStyles:i}},"styles2String"),T=S((l,t)=>{let{themeVariables:r,handDrawnSeed:a}=X(),{nodeBorder:e,mainBkg:i}=r,{stylesMap:o}=pt(l);return Object.assign({roughness:.7,fill:o.get("fill")||i,fillStyle:"hachure",fillWeight:4,hachureGap:5.2,stroke:o.get("stroke")||e,seed:a,strokeWidth:o.get("stroke-width")?.replace("px","")||1.3,fillLineDash:[0,0]},t)},"userNodeOverrides"),$s=S(async(l,t)=>{q.info("Creating subgraph rect for ",t.id,t);let r=X(),{themeVariables:a,handDrawnSeed:e}=r,{clusterBkg:i,clusterBorder:o}=a,{labelStyles:s,nodeStyles:h,borderStyles:n,backgroundStyles:c}=I(t),g=l.insert("g").attr("class","cluster "+t.cssClasses).attr("id",t.id).attr("data-look",t.look),f=Q(r.flowchart.htmlLabels),p=g.insert("g").attr("class","cluster-label "),u=await ct(p,t.label,{style:t.labelStyle,useHtmlLabels:f,isNode:!0}),y=u.getBBox();if(Q(r.flowchart.htmlLabels)){let $=u.children[0],D=Y(u);y=$.getBoundingClientRect(),D.attr("width",y.width),D.attr("height",y.height)}let m=t.width<=y.width+t.padding?y.width+t.padding:t.width;t.width<=y.width+t.padding?t.diff=(m-t.width)/2-t.padding:t.diff=-t.padding;let d=t.height,x=t.x-m/2,b=t.y-d/2;q.trace("Data ",t,JSON.stringify(t));let k;if(t.look==="handDrawn"){let $=M.svg(g),D=T(t,{roughness:.7,fill:i,stroke:o,fillWeight:3,seed:e}),C=$.path(at(x,b,m,d,0),D);k=g.insert(()=>(q.debug("Rough node insert CXC",C),C),":first-child"),k.select("path:nth-child(2)").attr("style",n.join(";")),k.select("path").attr("style",c.join(";").replace("fill","stroke"))}else k=g.insert("rect",":first-child"),k.attr("style",h).attr("rx",t.rx).attr("ry",t.ry).attr("x",x).attr("y",b).attr("width",m).attr("height",d);let{subGraphTitleTopMargin:w}=Tt(r);if(p.attr("transform",`translate(${t.x-y.width/2}, ${t.y-t.height/2+w})`),s){let $=p.select("span");$&&$.attr("style",s)}let v=k.node().getBBox();return t.offsetX=0,t.width=v.width,t.height=v.height,t.offsetY=y.height-t.padding/2,t.intersect=function($){return gt(t,$)},{cluster:g,labelBBox:y}},"rect"),Ue=S((l,t)=>{let r=l.insert("g").attr("class","note-cluster").attr("id",t.id),a=r.insert("rect",":first-child"),e=0*t.padding,i=e/2;a.attr("rx",t.rx).attr("ry",t.ry).attr("x",t.x-t.width/2-i).attr("y",t.y-t.height/2-i).attr("width",t.width+e).attr("height",t.height+e).attr("fill","none");let o=a.node().getBBox();return t.width=o.width,t.height=o.height,t.intersect=function(s){return gt(t,s)},{cluster:r,labelBBox:{width:0,height:0}}},"noteGroup"),Ke=S(async(l,t)=>{let r=X(),{themeVariables:a,handDrawnSeed:e}=r,{altBackground:i,compositeBackground:o,compositeTitleBackground:s,nodeBorder:h}=a,n=l.insert("g").attr("class",t.cssClasses).attr("id",t.id).attr("data-id",t.id).attr("data-look",t.look),c=n.insert("g",":first-child"),g=n.insert("g").attr("class","cluster-label"),f=n.append("rect"),p=g.node().appendChild(await Kt(t.label,t.labelStyle,void 0,!0)),u=p.getBBox();if(Q(r.flowchart.htmlLabels)){let C=p.children[0],R=Y(p);u=C.getBoundingClientRect(),R.attr("width",u.width),R.attr("height",u.height)}let y=0*t.padding,m=y/2,d=(t.width<=u.width+t.padding?u.width+t.padding:t.width)+y;t.width<=u.width+t.padding?t.diff=(d-t.width)/2-t.padding:t.diff=-t.padding;let x=t.height+y,b=t.height+y-u.height-6,k=t.x-d/2,w=t.y-x/2;t.width=d;let v=t.y-t.height/2-m+u.height+2,$;if(t.look==="handDrawn"){let C=t.cssClasses.includes("statediagram-cluster-alt"),R=M.svg(n),L=t.rx||t.ry?R.path(at(k,w,d,x,10),{roughness:.7,fill:s,fillStyle:"solid",stroke:h,seed:e}):R.rectangle(k,w,d,x,{seed:e});$=n.insert(()=>L,":first-child");let E=R.rectangle(k,v,d,b,{fill:C?i:o,fillStyle:C?"hachure":"solid",stroke:h,seed:e});$=n.insert(()=>L,":first-child"),f=n.insert(()=>E)}else $=c.insert("rect",":first-child"),$.attr("class","outer").attr("x",k).attr("y",w).attr("width",d).attr("height",x).attr("data-look",t.look),f.attr("class","inner").attr("x",k).attr("y",v).attr("width",d).attr("height",b);g.attr("transform",`translate(${t.x-u.width/2}, ${w+1-(Q(r.flowchart.htmlLabels)?0:3)})`);let D=$.node().getBBox();return t.height=D.height,t.offsetX=0,t.offsetY=u.height-t.padding/2,t.labelBBox=u,t.intersect=function(C){return gt(t,C)},{cluster:n,labelBBox:u}},"roundedWithTitle"),ta=S(async(l,t)=>{q.info("Creating subgraph rect for ",t.id,t);let r=X(),{themeVariables:a,handDrawnSeed:e}=r,{clusterBkg:i,clusterBorder:o}=a,{labelStyles:s,nodeStyles:h,borderStyles:n,backgroundStyles:c}=I(t),g=l.insert("g").attr("class","cluster "+t.cssClasses).attr("id",t.id).attr("data-look",t.look),f=Q(r.flowchart.htmlLabels),p=g.insert("g").attr("class","cluster-label "),u=await ct(p,t.label,{style:t.labelStyle,useHtmlLabels:f,isNode:!0,width:t.width}),y=u.getBBox();if(Q(r.flowchart.htmlLabels)){let $=u.children[0],D=Y(u);y=$.getBoundingClientRect(),D.attr("width",y.width),D.attr("height",y.height)}let m=t.width<=y.width+t.padding?y.width+t.padding:t.width;t.width<=y.width+t.padding?t.diff=(m-t.width)/2-t.padding:t.diff=-t.padding;let d=t.height,x=t.x-m/2,b=t.y-d/2;q.trace("Data ",t,JSON.stringify(t));let k;if(t.look==="handDrawn"){let $=M.svg(g),D=T(t,{roughness:.7,fill:i,stroke:o,fillWeight:4,seed:e}),C=$.path(at(x,b,m,d,t.rx),D);k=g.insert(()=>(q.debug("Rough node insert CXC",C),C),":first-child"),k.select("path:nth-child(2)").attr("style",n.join(";")),k.select("path").attr("style",c.join(";").replace("fill","stroke"))}else k=g.insert("rect",":first-child"),k.attr("style",h).attr("rx",t.rx).attr("ry",t.ry).attr("x",x).attr("y",b).attr("width",m).attr("height",d);let{subGraphTitleTopMargin:w}=Tt(r);if(p.attr("transform",`translate(${t.x-y.width/2}, ${t.y-t.height/2+w})`),s){let $=p.select("span");$&&$.attr("style",s)}let v=k.node().getBBox();return t.offsetX=0,t.width=v.width,t.height=v.height,t.offsetY=y.height-t.padding/2,t.intersect=function($){return gt(t,$)},{cluster:g,labelBBox:y}},"kanbanSection"),sa=S((l,t)=>{let r=X(),{themeVariables:a,handDrawnSeed:e}=r,{nodeBorder:i}=a,o=l.insert("g").attr("class",t.cssClasses).attr("id",t.id).attr("data-look",t.look),s=o.insert("g",":first-child"),h=0*t.padding,n=t.width+h;t.diff=-t.padding;let c=t.height+h,g=t.x-n/2,f=t.y-c/2;t.width=n;let p;if(t.look==="handDrawn"){let m=M.svg(o).rectangle(g,f,n,c,{fill:"lightgrey",roughness:.5,strokeLineDash:[5],stroke:i,seed:e});p=o.insert(()=>m,":first-child")}else p=s.insert("rect",":first-child"),p.attr("class","divider").attr("x",g).attr("y",f).attr("width",n).attr("height",c).attr("data-look",t.look);let u=p.node().getBBox();return t.height=u.height,t.offsetX=0,t.offsetY=0,t.intersect=function(y){return gt(t,y)},{cluster:o,labelBBox:{}}},"divider"),ea=$s,aa={rect:$s,squareRect:ea,roundedWithTitle:Ke,noteGroup:Ue,divider:sa,kanbanSection:ta},Ds=new Map,Ta=S(async(l,t)=>{let r=t.shape||"rect",a=await aa[r](l,t);return Ds.set(t.id,a),a},"insertCluster"),Wa=S(()=>{Ds=new Map},"clear");function Ps(l,t){return l.intersect(t)}S(Ps,"intersectNode");var ra=Ps;function Cs(l,t,r,a){var e=l.x,i=l.y,o=e-a.x,s=i-a.y,h=Math.sqrt(t*t*s*s+r*r*o*o),n=Math.abs(t*r*o/h);a.x0}S(ts,"sameSign");var na=Rs;function Ls(l,t,r){let a=l.x,e=l.y,i=[],o=Number.POSITIVE_INFINITY,s=Number.POSITIVE_INFINITY;typeof t.forEach=="function"?t.forEach(function(c){o=Math.min(o,c.x),s=Math.min(s,c.y)}):(o=Math.min(o,t.x),s=Math.min(s,t.y));let h=a-l.width/2-o,n=e-l.height/2-s;for(let c=0;c1&&i.sort(function(c,g){let f=c.x-r.x,p=c.y-r.y,u=Math.sqrt(f*f+p*p),y=g.x-r.x,m=g.y-r.y,d=Math.sqrt(y*y+m*m);return uc,":first-child");return g.attr("class","anchor").attr("style",J(s)),H(t,g),t.intersect=function(f){return q.info("Circle intersect",t,o,f),N.circle(t,o,f)},i}S(As,"anchor");function ss(l,t,r,a,e,i,o){let h=(l+r)/2,n=(t+a)/2,c=Math.atan2(a-t,r-l),g=(r-l)/2,f=(a-t)/2,p=g/e,u=f/i,y=Math.sqrt(p**2+u**2);if(y>1)throw new Error("The given radii are too small to create an arc between the points.");let m=Math.sqrt(1-y**2),d=h+m*i*Math.sin(c)*(o?-1:1),x=n-m*e*Math.cos(c)*(o?-1:1),b=Math.atan2((t-x)/i,(l-d)/e),w=Math.atan2((a-x)/i,(r-d)/e)-b;o&&w<0&&(w+=2*Math.PI),!o&&w>0&&(w-=2*Math.PI);let v=[];for(let $=0;$<20;$++){let D=$/19,C=b+D*w,R=d+e*Math.cos(C),L=x+i*Math.sin(C);v.push({x:R,y:L})}return v}S(ss,"generateArcPoints");async function Ts(l,t){let{labelStyles:r,nodeStyles:a}=I(t);t.labelStyle=r;let{shapeSvg:e,bbox:i}=await G(l,t,j(t)),o=i.width+t.padding+20,s=i.height+t.padding,h=s/2,n=h/(2.5+s/50),{cssStyles:c}=t,g=[{x:o/2,y:-s/2},{x:-o/2,y:-s/2},...ss(-o/2,-s/2,-o/2,s/2,n,h,!1),{x:o/2,y:s/2},...ss(o/2,s/2,o/2,-s/2,n,h,!0)],f=M.svg(e),p=T(t,{});t.look!=="handDrawn"&&(p.roughness=0,p.fillStyle="solid");let u=F(g),y=f.path(u,p),m=e.insert(()=>y,":first-child");return m.attr("class","basic label-container"),c&&t.look!=="handDrawn"&&m.selectAll("path").attr("style",c),a&&t.look!=="handDrawn"&&m.selectAll("path").attr("style",a),m.attr("transform",`translate(${n/2}, 0)`),H(t,m),t.intersect=function(d){return N.polygon(t,g,d)},e}S(Ts,"bowTieRect");function rt(l,t,r,a){return l.insert("polygon",":first-child").attr("points",a.map(function(e){return e.x+","+e.y}).join(" ")).attr("class","label-container").attr("transform","translate("+-t/2+","+r/2+")")}S(rt,"insertPolygonShape");async function Ws(l,t){let{labelStyles:r,nodeStyles:a}=I(t);t.labelStyle=r;let{shapeSvg:e,bbox:i}=await G(l,t,j(t)),o=i.height+t.padding,s=12,h=i.width+t.padding+s,n=0,c=h,g=-o,f=0,p=[{x:n+s,y:g},{x:c,y:g},{x:c,y:f},{x:n,y:f},{x:n,y:g+s},{x:n+s,y:g}],u,{cssStyles:y}=t;if(t.look==="handDrawn"){let m=M.svg(e),d=T(t,{}),x=F(p),b=m.path(x,d);u=e.insert(()=>b,":first-child").attr("transform",`translate(${-h/2}, ${o/2})`),y&&u.attr("style",y)}else u=rt(e,h,o,p);return a&&u.attr("style",a),H(t,u),t.intersect=function(m){return N.polygon(t,p,m)},e}S(Ws,"card");function Hs(l,t){let{nodeStyles:r}=I(t);t.label="";let a=l.insert("g").attr("class",j(t)).attr("id",t.domId??t.id),{cssStyles:e}=t,i=Math.max(28,t.width??0),o=[{x:0,y:i/2},{x:i/2,y:0},{x:0,y:-i/2},{x:-i/2,y:0}],s=M.svg(a),h=T(t,{});t.look!=="handDrawn"&&(h.roughness=0,h.fillStyle="solid");let n=F(o),c=s.path(n,h),g=a.insert(()=>c,":first-child");return e&&t.look!=="handDrawn"&&g.selectAll("path").attr("style",e),r&&t.look!=="handDrawn"&&g.selectAll("path").attr("style",r),t.width=28,t.height=28,t.intersect=function(f){return N.polygon(t,o,f)},a}S(Hs,"choice");async function Is(l,t){let{labelStyles:r,nodeStyles:a}=I(t);t.labelStyle=r;let{shapeSvg:e,bbox:i,halfPadding:o}=await G(l,t,j(t)),s=i.width/2+o,h,{cssStyles:n}=t;if(t.look==="handDrawn"){let c=M.svg(e),g=T(t,{}),f=c.circle(0,0,s*2,g);h=e.insert(()=>f,":first-child"),h.attr("class","basic label-container").attr("style",J(n))}else h=e.insert("circle",":first-child").attr("class","basic label-container").attr("style",a).attr("r",s).attr("cx",0).attr("cy",0);return H(t,h),t.intersect=function(c){return q.info("Circle intersect",t,s,c),N.circle(t,s,c)},e}S(Is,"circle");function Es(l){let t=Math.cos(Math.PI/4),r=Math.sin(Math.PI/4),a=l*2,e={x:a/2*t,y:a/2*r},i={x:-(a/2)*t,y:a/2*r},o={x:-(a/2)*t,y:-(a/2)*r},s={x:a/2*t,y:-(a/2)*r};return`M ${i.x},${i.y} L ${s.x},${s.y} + M ${e.x},${e.y} L ${o.x},${o.y}`}S(Es,"createLine");function Os(l,t){let{labelStyles:r,nodeStyles:a}=I(t);t.labelStyle=r,t.label="";let e=l.insert("g").attr("class",j(t)).attr("id",t.domId??t.id),i=Math.max(30,t?.width??0),{cssStyles:o}=t,s=M.svg(e),h=T(t,{});t.look!=="handDrawn"&&(h.roughness=0,h.fillStyle="solid");let n=s.circle(0,0,i*2,h),c=Es(i),g=s.path(c,h),f=e.insert(()=>n,":first-child");return f.insert(()=>g),o&&t.look!=="handDrawn"&&f.selectAll("path").attr("style",o),a&&t.look!=="handDrawn"&&f.selectAll("path").attr("style",a),H(t,f),t.intersect=function(p){return q.info("crossedCircle intersect",t,{radius:i,point:p}),N.circle(t,i,p)},e}S(Os,"crossedCircle");function st(l,t,r,a=100,e=0,i=180){let o=[],s=e*Math.PI/180,c=(i*Math.PI/180-s)/(a-1);for(let g=0;gb,":first-child").attr("stroke-opacity",0),k.insert(()=>d,":first-child"),k.attr("class","text"),c&&t.look!=="handDrawn"&&k.selectAll("path").attr("style",c),a&&t.look!=="handDrawn"&&k.selectAll("path").attr("style",a),k.attr("transform",`translate(${n}, 0)`),o.attr("transform",`translate(${-s/2+n-(i.x-(i.left??0))},${-h/2+(t.padding??0)/2-(i.y-(i.top??0))})`),H(t,k),t.intersect=function(w){return N.polygon(t,f,w)},e}S(_s,"curlyBraceLeft");function et(l,t,r,a=100,e=0,i=180){let o=[],s=e*Math.PI/180,c=(i*Math.PI/180-s)/(a-1);for(let g=0;gb,":first-child").attr("stroke-opacity",0),k.insert(()=>d,":first-child"),k.attr("class","text"),c&&t.look!=="handDrawn"&&k.selectAll("path").attr("style",c),a&&t.look!=="handDrawn"&&k.selectAll("path").attr("style",a),k.attr("transform",`translate(${-n}, 0)`),o.attr("transform",`translate(${-s/2+(t.padding??0)/2-(i.x-(i.left??0))},${-h/2+(t.padding??0)/2-(i.y-(i.top??0))})`),H(t,k),t.intersect=function(w){return N.polygon(t,f,w)},e}S(zs,"curlyBraceRight");function V(l,t,r,a=100,e=0,i=180){let o=[],s=e*Math.PI/180,c=(i*Math.PI/180-s)/(a-1);for(let g=0;g$,":first-child").attr("stroke-opacity",0),D.insert(()=>x,":first-child"),D.insert(()=>w,":first-child"),D.attr("class","text"),c&&t.look!=="handDrawn"&&D.selectAll("path").attr("style",c),a&&t.look!=="handDrawn"&&D.selectAll("path").attr("style",a),D.attr("transform",`translate(${n-n/4}, 0)`),o.attr("transform",`translate(${-s/2+(t.padding??0)/2-(i.x-(i.left??0))},${-h/2+(t.padding??0)/2-(i.y-(i.top??0))})`),H(t,D),t.intersect=function(C){return N.polygon(t,p,C)},e}S(js,"curlyBraces");async function Gs(l,t){let{labelStyles:r,nodeStyles:a}=I(t);t.labelStyle=r;let{shapeSvg:e,bbox:i}=await G(l,t,j(t)),o=80,s=20,h=Math.max(o,(i.width+(t.padding??0)*2)*1.25,t?.width??0),n=Math.max(s,i.height+(t.padding??0)*2,t?.height??0),c=n/2,{cssStyles:g}=t,f=M.svg(e),p=T(t,{});t.look!=="handDrawn"&&(p.roughness=0,p.fillStyle="solid");let u=h,y=n,m=u-c,d=y/4,x=[{x:m,y:0},{x:d,y:0},{x:0,y:y/2},{x:d,y},{x:m,y},...es(-m,-y/2,c,50,270,90)],b=F(x),k=f.path(b,p),w=e.insert(()=>k,":first-child");return w.attr("class","basic label-container"),g&&t.look!=="handDrawn"&&w.selectChildren("path").attr("style",g),a&&t.look!=="handDrawn"&&w.selectChildren("path").attr("style",a),w.attr("transform",`translate(${-h/2}, ${-n/2})`),H(t,w),t.intersect=function(v){return N.polygon(t,x,v)},e}S(Gs,"curvedTrapezoid");var ca=S((l,t,r,a,e,i)=>[`M${l},${t+i}`,`a${e},${i} 0,0,0 ${r},0`,`a${e},${i} 0,0,0 ${-r},0`,`l0,${a}`,`a${e},${i} 0,0,0 ${r},0`,`l0,${-a}`].join(" "),"createCylinderPathD"),oa=S((l,t,r,a,e,i)=>[`M${l},${t+i}`,`M${l+r},${t+i}`,`a${e},${i} 0,0,0 ${-r},0`,`l0,${a}`,`a${e},${i} 0,0,0 ${r},0`,`l0,${-a}`].join(" "),"createOuterCylinderPathD"),ha=S((l,t,r,a,e,i)=>[`M${l-r/2},${-a/2}`,`a${e},${i} 0,0,0 ${r},0`].join(" "),"createInnerCylinderPathD");async function Fs(l,t){let{labelStyles:r,nodeStyles:a}=I(t);t.labelStyle=r;let{shapeSvg:e,bbox:i,label:o}=await G(l,t,j(t)),s=Math.max(i.width+t.padding,t.width??0),h=s/2,n=h/(2.5+s/50),c=Math.max(i.height+n+t.padding,t.height??0),g,{cssStyles:f}=t;if(t.look==="handDrawn"){let p=M.svg(e),u=oa(0,0,s,c,h,n),y=ha(0,n,s,c,h,n),m=p.path(u,T(t,{})),d=p.path(y,T(t,{fill:"none"}));g=e.insert(()=>d,":first-child"),g=e.insert(()=>m,":first-child"),g.attr("class","basic label-container"),f&&g.attr("style",f)}else{let p=ca(0,0,s,c,h,n);g=e.insert("path",":first-child").attr("d",p).attr("class","basic label-container").attr("style",J(f)).attr("style",a)}return g.attr("label-offset-y",n),g.attr("transform",`translate(${-s/2}, ${-(c/2+n)})`),H(t,g),o.attr("transform",`translate(${-(i.width/2)-(i.x-(i.left??0))}, ${-(i.height/2)+(t.padding??0)/1.5-(i.y-(i.top??0))})`),t.intersect=function(p){let u=N.rect(t,p),y=u.x-(t.x??0);if(h!=0&&(Math.abs(y)<(t.width??0)/2||Math.abs(y)==(t.width??0)/2&&Math.abs(u.y-(t.y??0))>(t.height??0)/2-n)){let m=n*n*(1-y*y/(h*h));m>0&&(m=Math.sqrt(m)),m=n-m,p.y-(t.y??0)>0&&(m=-m),u.y+=m}return u},e}S(Fs,"cylinder");async function qs(l,t){let{labelStyles:r,nodeStyles:a}=I(t);t.labelStyle=r;let{shapeSvg:e,bbox:i,label:o}=await G(l,t,j(t)),s=i.width+t.padding,h=i.height+t.padding,n=h*.2,c=-s/2,g=-h/2-n/2,{cssStyles:f}=t,p=M.svg(e),u=T(t,{});t.look!=="handDrawn"&&(u.roughness=0,u.fillStyle="solid");let y=[{x:c,y:g+n},{x:-c,y:g+n},{x:-c,y:-g},{x:c,y:-g},{x:c,y:g},{x:-c,y:g},{x:-c,y:g+n}],m=p.polygon(y.map(x=>[x.x,x.y]),u),d=e.insert(()=>m,":first-child");return d.attr("class","basic label-container"),f&&t.look!=="handDrawn"&&d.selectAll("path").attr("style",f),a&&t.look!=="handDrawn"&&d.selectAll("path").attr("style",a),o.attr("transform",`translate(${c+(t.padding??0)/2-(i.x-(i.left??0))}, ${g+n+(t.padding??0)/2-(i.y-(i.top??0))})`),H(t,d),t.intersect=function(x){return N.rect(t,x)},e}S(qs,"dividedRectangle");async function Xs(l,t){let{labelStyles:r,nodeStyles:a}=I(t);t.labelStyle=r;let{shapeSvg:e,bbox:i,halfPadding:o}=await G(l,t,j(t)),h=i.width/2+o+5,n=i.width/2+o,c,{cssStyles:g}=t;if(t.look==="handDrawn"){let f=M.svg(e),p=T(t,{roughness:.2,strokeWidth:2.5}),u=T(t,{roughness:.2,strokeWidth:1.5}),y=f.circle(0,0,h*2,p),m=f.circle(0,0,n*2,u);c=e.insert("g",":first-child"),c.attr("class",J(t.cssClasses)).attr("style",J(g)),c.node()?.appendChild(y),c.node()?.appendChild(m)}else{c=e.insert("g",":first-child");let f=c.insert("circle",":first-child"),p=c.insert("circle");c.attr("class","basic label-container").attr("style",a),f.attr("class","outer-circle").attr("style",a).attr("r",h).attr("cx",0).attr("cy",0),p.attr("class","inner-circle").attr("style",a).attr("r",n).attr("cx",0).attr("cy",0)}return H(t,c),t.intersect=function(f){return q.info("DoubleCircle intersect",t,h,f),N.circle(t,h,f)},e}S(Xs,"doublecircle");function Ys(l,t,{config:{themeVariables:r}}){let{labelStyles:a,nodeStyles:e}=I(t);t.label="",t.labelStyle=a;let i=l.insert("g").attr("class",j(t)).attr("id",t.domId??t.id),o=7,{cssStyles:s}=t,h=M.svg(i),{nodeBorder:n}=r,c=T(t,{fillStyle:"solid"});t.look!=="handDrawn"&&(c.roughness=0);let g=h.circle(0,0,o*2,c),f=i.insert(()=>g,":first-child");return f.selectAll("path").attr("style",`fill: ${n} !important;`),s&&s.length>0&&t.look!=="handDrawn"&&f.selectAll("path").attr("style",s),e&&t.look!=="handDrawn"&&f.selectAll("path").attr("style",e),H(t,f),t.intersect=function(p){return q.info("filledCircle intersect",t,{radius:o,point:p}),N.circle(t,o,p)},i}S(Ys,"filledCircle");async function Vs(l,t){let{labelStyles:r,nodeStyles:a}=I(t);t.labelStyle=r;let{shapeSvg:e,bbox:i,label:o}=await G(l,t,j(t)),s=i.width+(t.padding??0),h=s+i.height,n=s+i.height,c=[{x:0,y:-h},{x:n,y:-h},{x:n/2,y:0}],{cssStyles:g}=t,f=M.svg(e),p=T(t,{});t.look!=="handDrawn"&&(p.roughness=0,p.fillStyle="solid");let u=F(c),y=f.path(u,p),m=e.insert(()=>y,":first-child").attr("transform",`translate(${-h/2}, ${h/2})`);return g&&t.look!=="handDrawn"&&m.selectChildren("path").attr("style",g),a&&t.look!=="handDrawn"&&m.selectChildren("path").attr("style",a),t.width=s,t.height=h,H(t,m),o.attr("transform",`translate(${-i.width/2-(i.x-(i.left??0))}, ${-h/2+(t.padding??0)/2+(i.y-(i.top??0))})`),t.intersect=function(d){return q.info("Triangle intersect",t,c,d),N.polygon(t,c,d)},e}S(Vs,"flippedTriangle");function Zs(l,t,{dir:r,config:{state:a,themeVariables:e}}){let{nodeStyles:i}=I(t);t.label="";let o=l.insert("g").attr("class",j(t)).attr("id",t.domId??t.id),{cssStyles:s}=t,h=Math.max(70,t?.width??0),n=Math.max(10,t?.height??0);r==="LR"&&(h=Math.max(10,t?.width??0),n=Math.max(70,t?.height??0));let c=-1*h/2,g=-1*n/2,f=M.svg(o),p=T(t,{stroke:e.lineColor,fill:e.lineColor});t.look!=="handDrawn"&&(p.roughness=0,p.fillStyle="solid");let u=f.rectangle(c,g,h,n,p),y=o.insert(()=>u,":first-child");s&&t.look!=="handDrawn"&&y.selectAll("path").attr("style",s),i&&t.look!=="handDrawn"&&y.selectAll("path").attr("style",i),H(t,y);let m=a?.padding??0;return t.width&&t.height&&(t.width+=m/2||0,t.height+=m/2||0),t.intersect=function(d){return N.rect(t,d)},o}S(Zs,"forkJoin");async function Qs(l,t){let{labelStyles:r,nodeStyles:a}=I(t);t.labelStyle=r;let e=80,i=50,{shapeSvg:o,bbox:s}=await G(l,t,j(t)),h=Math.max(e,s.width+(t.padding??0)*2,t?.width??0),n=Math.max(i,s.height+(t.padding??0)*2,t?.height??0),c=n/2,{cssStyles:g}=t,f=M.svg(o),p=T(t,{});t.look!=="handDrawn"&&(p.roughness=0,p.fillStyle="solid");let u=[{x:-h/2,y:-n/2},{x:h/2-c,y:-n/2},...es(-h/2+c,0,c,50,90,270),{x:h/2-c,y:n/2},{x:-h/2,y:n/2}],y=F(u),m=f.path(y,p),d=o.insert(()=>m,":first-child");return d.attr("class","basic label-container"),g&&t.look!=="handDrawn"&&d.selectChildren("path").attr("style",g),a&&t.look!=="handDrawn"&&d.selectChildren("path").attr("style",a),H(t,d),t.intersect=function(x){return q.info("Pill intersect",t,{radius:c,point:x}),N.polygon(t,u,x)},o}S(Qs,"halfRoundedRectangle");var ga=S((l,t,r,a,e)=>[`M${l+e},${t}`,`L${l+r-e},${t}`,`L${l+r},${t-a/2}`,`L${l+r-e},${t-a}`,`L${l+e},${t-a}`,`L${l},${t-a/2}`,"Z"].join(" "),"createHexagonPathD");async function Js(l,t){let{labelStyles:r,nodeStyles:a}=I(t);t.labelStyle=r;let{shapeSvg:e,bbox:i}=await G(l,t,j(t)),o=4,s=i.height+t.padding,h=s/o,n=i.width+2*h+t.padding,c=[{x:h,y:0},{x:n-h,y:0},{x:n,y:-s/2},{x:n-h,y:-s},{x:h,y:-s},{x:0,y:-s/2}],g,{cssStyles:f}=t;if(t.look==="handDrawn"){let p=M.svg(e),u=T(t,{}),y=ga(0,0,n,s,h),m=p.path(y,u);g=e.insert(()=>m,":first-child").attr("transform",`translate(${-n/2}, ${s/2})`),f&&g.attr("style",f)}else g=rt(e,n,s,c);return a&&g.attr("style",a),t.width=n,t.height=s,H(t,g),t.intersect=function(p){return N.polygon(t,c,p)},e}S(Js,"hexagon");async function Us(l,t){let{labelStyles:r,nodeStyles:a}=I(t);t.label="",t.labelStyle=r;let{shapeSvg:e}=await G(l,t,j(t)),i=Math.max(30,t?.width??0),o=Math.max(30,t?.height??0),{cssStyles:s}=t,h=M.svg(e),n=T(t,{});t.look!=="handDrawn"&&(n.roughness=0,n.fillStyle="solid");let c=[{x:0,y:0},{x:i,y:0},{x:0,y:o},{x:i,y:o}],g=F(c),f=h.path(g,n),p=e.insert(()=>f,":first-child");return p.attr("class","basic label-container"),s&&t.look!=="handDrawn"&&p.selectChildren("path").attr("style",s),a&&t.look!=="handDrawn"&&p.selectChildren("path").attr("style",a),p.attr("transform",`translate(${-i/2}, ${-o/2})`),H(t,p),t.intersect=function(u){return q.info("Pill intersect",t,{points:c}),N.polygon(t,c,u)},e}S(Us,"hourglass");async function Ks(l,t,{config:{themeVariables:r,flowchart:a}}){let{labelStyles:e}=I(t);t.labelStyle=e;let i=t.assetHeight??48,o=t.assetWidth??48,s=Math.max(i,o),h=a?.wrappingWidth;t.width=Math.max(s,h??0);let{shapeSvg:n,bbox:c,label:g}=await G(l,t,"icon-shape default"),f=t.pos==="t",p=s,u=s,{nodeBorder:y}=r,{stylesMap:m}=pt(t),d=-u/2,x=-p/2,b=t.label?8:0,k=M.svg(n),w=T(t,{stroke:"none",fill:"none"});t.look!=="handDrawn"&&(w.roughness=0,w.fillStyle="solid");let v=k.rectangle(d,x,u,p,w),$=Math.max(u,c.width),D=p+c.height+b,C=k.rectangle(-$/2,-D/2,$,D,{...w,fill:"transparent",stroke:"none"}),R=n.insert(()=>v,":first-child"),L=n.insert(()=>C);if(t.icon){let E=n.append("g");E.html(`${await ft(t.icon,{height:s,width:s,fallbackPrefix:""})}`);let P=E.node().getBBox(),A=P.width,W=P.height,B=P.x,O=P.y;E.attr("transform",`translate(${-A/2-B},${f?c.height/2+b/2-W/2-O:-c.height/2-b/2-W/2-O})`),E.attr("style",`color: ${m.get("stroke")??y};`)}return g.attr("transform",`translate(${-c.width/2-(c.x-(c.left??0))},${f?-D/2:D/2-c.height})`),R.attr("transform",`translate(0,${f?c.height/2+b/2:-c.height/2-b/2})`),H(t,L),t.intersect=function(E){if(q.info("iconSquare intersect",t,E),!t.label)return N.rect(t,E);let P=t.x??0,A=t.y??0,W=t.height??0,B=[];return f?B=[{x:P-c.width/2,y:A-W/2},{x:P+c.width/2,y:A-W/2},{x:P+c.width/2,y:A-W/2+c.height+b},{x:P+u/2,y:A-W/2+c.height+b},{x:P+u/2,y:A+W/2},{x:P-u/2,y:A+W/2},{x:P-u/2,y:A-W/2+c.height+b},{x:P-c.width/2,y:A-W/2+c.height+b}]:B=[{x:P-u/2,y:A-W/2},{x:P+u/2,y:A-W/2},{x:P+u/2,y:A-W/2+p},{x:P+c.width/2,y:A-W/2+p},{x:P+c.width/2/2,y:A+W/2},{x:P-c.width/2,y:A+W/2},{x:P-c.width/2,y:A-W/2+p},{x:P-u/2,y:A-W/2+p}],N.polygon(t,B,E)},n}S(Ks,"icon");async function te(l,t,{config:{themeVariables:r,flowchart:a}}){let{labelStyles:e}=I(t);t.labelStyle=e;let i=t.assetHeight??48,o=t.assetWidth??48,s=Math.max(i,o),h=a?.wrappingWidth;t.width=Math.max(s,h??0);let{shapeSvg:n,bbox:c,label:g}=await G(l,t,"icon-shape default"),f=20,p=t.label?8:0,u=t.pos==="t",{nodeBorder:y,mainBkg:m}=r,{stylesMap:d}=pt(t),x=M.svg(n),b=T(t,{});t.look!=="handDrawn"&&(b.roughness=0,b.fillStyle="solid");let k=d.get("fill");b.stroke=k??m;let w=n.append("g");t.icon&&w.html(`${await ft(t.icon,{height:s,width:s,fallbackPrefix:""})}`);let v=w.node().getBBox(),$=v.width,D=v.height,C=v.x,R=v.y,L=Math.max($,D)*Math.SQRT2+f*2,E=x.circle(0,0,L,b),P=Math.max(L,c.width),A=L+c.height+p,W=x.rectangle(-P/2,-A/2,P,A,{...b,fill:"transparent",stroke:"none"}),B=n.insert(()=>E,":first-child"),O=n.insert(()=>W);return w.attr("transform",`translate(${-$/2-C},${u?c.height/2+p/2-D/2-R:-c.height/2-p/2-D/2-R})`),w.attr("style",`color: ${d.get("stroke")??y};`),g.attr("transform",`translate(${-c.width/2-(c.x-(c.left??0))},${u?-A/2:A/2-c.height})`),B.attr("transform",`translate(0,${u?c.height/2+p/2:-c.height/2-p/2})`),H(t,O),t.intersect=function(z){return q.info("iconSquare intersect",t,z),N.rect(t,z)},n}S(te,"iconCircle");async function se(l,t,{config:{themeVariables:r,flowchart:a}}){let{labelStyles:e}=I(t);t.labelStyle=e;let i=t.assetHeight??48,o=t.assetWidth??48,s=Math.max(i,o),h=a?.wrappingWidth;t.width=Math.max(s,h??0);let{shapeSvg:n,bbox:c,halfPadding:g,label:f}=await G(l,t,"icon-shape default"),p=t.pos==="t",u=s+g*2,y=s+g*2,{nodeBorder:m,mainBkg:d}=r,{stylesMap:x}=pt(t),b=-y/2,k=-u/2,w=t.label?8:0,v=M.svg(n),$=T(t,{});t.look!=="handDrawn"&&($.roughness=0,$.fillStyle="solid");let D=x.get("fill");$.stroke=D??d;let C=v.path(at(b,k,y,u,5),$),R=Math.max(y,c.width),L=u+c.height+w,E=v.rectangle(-R/2,-L/2,R,L,{...$,fill:"transparent",stroke:"none"}),P=n.insert(()=>C,":first-child").attr("class","icon-shape2"),A=n.insert(()=>E);if(t.icon){let W=n.append("g");W.html(`${await ft(t.icon,{height:s,width:s,fallbackPrefix:""})}`);let B=W.node().getBBox(),O=B.width,z=B.height,Z=B.x,tt=B.y;W.attr("transform",`translate(${-O/2-Z},${p?c.height/2+w/2-z/2-tt:-c.height/2-w/2-z/2-tt})`),W.attr("style",`color: ${x.get("stroke")??m};`)}return f.attr("transform",`translate(${-c.width/2-(c.x-(c.left??0))},${p?-L/2:L/2-c.height})`),P.attr("transform",`translate(0,${p?c.height/2+w/2:-c.height/2-w/2})`),H(t,A),t.intersect=function(W){if(q.info("iconSquare intersect",t,W),!t.label)return N.rect(t,W);let B=t.x??0,O=t.y??0,z=t.height??0,Z=[];return p?Z=[{x:B-c.width/2,y:O-z/2},{x:B+c.width/2,y:O-z/2},{x:B+c.width/2,y:O-z/2+c.height+w},{x:B+y/2,y:O-z/2+c.height+w},{x:B+y/2,y:O+z/2},{x:B-y/2,y:O+z/2},{x:B-y/2,y:O-z/2+c.height+w},{x:B-c.width/2,y:O-z/2+c.height+w}]:Z=[{x:B-y/2,y:O-z/2},{x:B+y/2,y:O-z/2},{x:B+y/2,y:O-z/2+u},{x:B+c.width/2,y:O-z/2+u},{x:B+c.width/2/2,y:O+z/2},{x:B-c.width/2,y:O+z/2},{x:B-c.width/2,y:O-z/2+u},{x:B-y/2,y:O-z/2+u}],N.polygon(t,Z,W)},n}S(se,"iconRounded");async function ee(l,t,{config:{themeVariables:r,flowchart:a}}){let{labelStyles:e}=I(t);t.labelStyle=e;let i=t.assetHeight??48,o=t.assetWidth??48,s=Math.max(i,o),h=a?.wrappingWidth;t.width=Math.max(s,h??0);let{shapeSvg:n,bbox:c,halfPadding:g,label:f}=await G(l,t,"icon-shape default"),p=t.pos==="t",u=s+g*2,y=s+g*2,{nodeBorder:m,mainBkg:d}=r,{stylesMap:x}=pt(t),b=-y/2,k=-u/2,w=t.label?8:0,v=M.svg(n),$=T(t,{});t.look!=="handDrawn"&&($.roughness=0,$.fillStyle="solid");let D=x.get("fill");$.stroke=D??d;let C=v.path(at(b,k,y,u,.1),$),R=Math.max(y,c.width),L=u+c.height+w,E=v.rectangle(-R/2,-L/2,R,L,{...$,fill:"transparent",stroke:"none"}),P=n.insert(()=>C,":first-child"),A=n.insert(()=>E);if(t.icon){let W=n.append("g");W.html(`${await ft(t.icon,{height:s,width:s,fallbackPrefix:""})}`);let B=W.node().getBBox(),O=B.width,z=B.height,Z=B.x,tt=B.y;W.attr("transform",`translate(${-O/2-Z},${p?c.height/2+w/2-z/2-tt:-c.height/2-w/2-z/2-tt})`),W.attr("style",`color: ${x.get("stroke")??m};`)}return f.attr("transform",`translate(${-c.width/2-(c.x-(c.left??0))},${p?-L/2:L/2-c.height})`),P.attr("transform",`translate(0,${p?c.height/2+w/2:-c.height/2-w/2})`),H(t,A),t.intersect=function(W){if(q.info("iconSquare intersect",t,W),!t.label)return N.rect(t,W);let B=t.x??0,O=t.y??0,z=t.height??0,Z=[];return p?Z=[{x:B-c.width/2,y:O-z/2},{x:B+c.width/2,y:O-z/2},{x:B+c.width/2,y:O-z/2+c.height+w},{x:B+y/2,y:O-z/2+c.height+w},{x:B+y/2,y:O+z/2},{x:B-y/2,y:O+z/2},{x:B-y/2,y:O-z/2+c.height+w},{x:B-c.width/2,y:O-z/2+c.height+w}]:Z=[{x:B-y/2,y:O-z/2},{x:B+y/2,y:O-z/2},{x:B+y/2,y:O-z/2+u},{x:B+c.width/2,y:O-z/2+u},{x:B+c.width/2/2,y:O+z/2},{x:B-c.width/2,y:O+z/2},{x:B-c.width/2,y:O-z/2+u},{x:B-y/2,y:O-z/2+u}],N.polygon(t,Z,W)},n}S(ee,"iconSquare");async function ae(l,t,{config:{flowchart:r}}){let a=new Image;a.src=t?.img??"",await a.decode();let e=Number(a.naturalWidth.toString().replace("px","")),i=Number(a.naturalHeight.toString().replace("px",""));t.imageAspectRatio=e/i;let{labelStyles:o}=I(t);t.labelStyle=o;let s=r?.wrappingWidth;t.defaultWidth=r?.wrappingWidth;let h=Math.max(t.label?s??0:0,t?.assetWidth??e),n=t.constraint==="on"&&t?.assetHeight?t.assetHeight*t.imageAspectRatio:h,c=t.constraint==="on"?n/t.imageAspectRatio:t?.assetHeight??i;t.width=Math.max(n,s??0);let{shapeSvg:g,bbox:f,label:p}=await G(l,t,"image-shape default"),u=t.pos==="t",y=-n/2,m=-c/2,d=t.label?8:0,x=M.svg(g),b=T(t,{});t.look!=="handDrawn"&&(b.roughness=0,b.fillStyle="solid");let k=x.rectangle(y,m,n,c,b),w=Math.max(n,f.width),v=c+f.height+d,$=x.rectangle(-w/2,-v/2,w,v,{...b,fill:"none",stroke:"none"}),D=g.insert(()=>k,":first-child"),C=g.insert(()=>$);if(t.img){let R=g.append("image");R.attr("href",t.img),R.attr("width",n),R.attr("height",c),R.attr("preserveAspectRatio","none"),R.attr("transform",`translate(${-n/2},${u?v/2-c:-v/2})`)}return p.attr("transform",`translate(${-f.width/2-(f.x-(f.left??0))},${u?-c/2-f.height/2-d/2:c/2-f.height/2+d/2})`),D.attr("transform",`translate(0,${u?f.height/2+d/2:-f.height/2-d/2})`),H(t,C),t.intersect=function(R){if(q.info("iconSquare intersect",t,R),!t.label)return N.rect(t,R);let L=t.x??0,E=t.y??0,P=t.height??0,A=[];return u?A=[{x:L-f.width/2,y:E-P/2},{x:L+f.width/2,y:E-P/2},{x:L+f.width/2,y:E-P/2+f.height+d},{x:L+n/2,y:E-P/2+f.height+d},{x:L+n/2,y:E+P/2},{x:L-n/2,y:E+P/2},{x:L-n/2,y:E-P/2+f.height+d},{x:L-f.width/2,y:E-P/2+f.height+d}]:A=[{x:L-n/2,y:E-P/2},{x:L+n/2,y:E-P/2},{x:L+n/2,y:E-P/2+c},{x:L+f.width/2,y:E-P/2+c},{x:L+f.width/2/2,y:E+P/2},{x:L-f.width/2,y:E+P/2},{x:L-f.width/2,y:E-P/2+c},{x:L-n/2,y:E-P/2+c}],N.polygon(t,A,R)},g}S(ae,"imageSquare");async function re(l,t){let{labelStyles:r,nodeStyles:a}=I(t);t.labelStyle=r;let{shapeSvg:e,bbox:i}=await G(l,t,j(t)),o=Math.max(i.width+(t.padding??0)*2,t?.width??0),s=Math.max(i.height+(t.padding??0)*2,t?.height??0),h=[{x:0,y:0},{x:o,y:0},{x:o+3*s/6,y:-s},{x:-3*s/6,y:-s}],n,{cssStyles:c}=t;if(t.look==="handDrawn"){let g=M.svg(e),f=T(t,{}),p=F(h),u=g.path(p,f);n=e.insert(()=>u,":first-child").attr("transform",`translate(${-o/2}, ${s/2})`),c&&n.attr("style",c)}else n=rt(e,o,s,h);return a&&n.attr("style",a),t.width=o,t.height=s,H(t,n),t.intersect=function(g){return N.polygon(t,h,g)},e}S(re,"inv_trapezoid");async function Bt(l,t,r){let{labelStyles:a,nodeStyles:e}=I(t);t.labelStyle=a;let{shapeSvg:i,bbox:o}=await G(l,t,j(t)),s=Math.max(o.width+r.labelPaddingX*2,t?.width||0),h=Math.max(o.height+r.labelPaddingY*2,t?.height||0),n=-s/2,c=-h/2,g,{rx:f,ry:p}=t,{cssStyles:u}=t;if(r?.rx&&r.ry&&(f=r.rx,p=r.ry),t.look==="handDrawn"){let y=M.svg(i),m=T(t,{}),d=f||p?y.path(at(n,c,s,h,f||0),m):y.rectangle(n,c,s,h,m);g=i.insert(()=>d,":first-child"),g.attr("class","basic label-container").attr("style",J(u))}else g=i.insert("rect",":first-child"),g.attr("class","basic label-container").attr("style",e).attr("rx",J(f)).attr("ry",J(p)).attr("x",n).attr("y",c).attr("width",s).attr("height",h);return H(t,g),t.intersect=function(y){return N.rect(t,y)},i}S(Bt,"drawRect");async function ie(l,t){let{shapeSvg:r,bbox:a,label:e}=await G(l,t,"label"),i=r.insert("rect",":first-child");return i.attr("width",.1).attr("height",.1),r.attr("class","label edgeLabel"),e.attr("transform",`translate(${-(a.width/2)-(a.x-(a.left??0))}, ${-(a.height/2)-(a.y-(a.top??0))})`),H(t,i),t.intersect=function(h){return N.rect(t,h)},r}S(ie,"labelRect");async function ne(l,t){let{labelStyles:r,nodeStyles:a}=I(t);t.labelStyle=r;let{shapeSvg:e,bbox:i}=await G(l,t,j(t)),o=Math.max(i.width+(t.padding??0),t?.width??0),s=Math.max(i.height+(t.padding??0),t?.height??0),h=[{x:0,y:0},{x:o+3*s/6,y:0},{x:o,y:-s},{x:-(3*s)/6,y:-s}],n,{cssStyles:c}=t;if(t.look==="handDrawn"){let g=M.svg(e),f=T(t,{}),p=F(h),u=g.path(p,f);n=e.insert(()=>u,":first-child").attr("transform",`translate(${-o/2}, ${s/2})`),c&&n.attr("style",c)}else n=rt(e,o,s,h);return a&&n.attr("style",a),t.width=o,t.height=s,H(t,n),t.intersect=function(g){return N.polygon(t,h,g)},e}S(ne,"lean_left");async function le(l,t){let{labelStyles:r,nodeStyles:a}=I(t);t.labelStyle=r;let{shapeSvg:e,bbox:i}=await G(l,t,j(t)),o=Math.max(i.width+(t.padding??0),t?.width??0),s=Math.max(i.height+(t.padding??0),t?.height??0),h=[{x:-3*s/6,y:0},{x:o,y:0},{x:o+3*s/6,y:-s},{x:0,y:-s}],n,{cssStyles:c}=t;if(t.look==="handDrawn"){let g=M.svg(e),f=T(t,{}),p=F(h),u=g.path(p,f);n=e.insert(()=>u,":first-child").attr("transform",`translate(${-o/2}, ${s/2})`),c&&n.attr("style",c)}else n=rt(e,o,s,h);return a&&n.attr("style",a),t.width=o,t.height=s,H(t,n),t.intersect=function(g){return N.polygon(t,h,g)},e}S(le,"lean_right");function ce(l,t){let{labelStyles:r,nodeStyles:a}=I(t);t.label="",t.labelStyle=r;let e=l.insert("g").attr("class",j(t)).attr("id",t.domId??t.id),{cssStyles:i}=t,o=Math.max(35,t?.width??0),s=Math.max(35,t?.height??0),h=7,n=[{x:o,y:0},{x:0,y:s+h/2},{x:o-2*h,y:s+h/2},{x:0,y:2*s},{x:o,y:s-h/2},{x:2*h,y:s-h/2}],c=M.svg(e),g=T(t,{});t.look!=="handDrawn"&&(g.roughness=0,g.fillStyle="solid");let f=F(n),p=c.path(f,g),u=e.insert(()=>p,":first-child");return i&&t.look!=="handDrawn"&&u.selectAll("path").attr("style",i),a&&t.look!=="handDrawn"&&u.selectAll("path").attr("style",a),u.attr("transform",`translate(-${o/2},${-s})`),H(t,u),t.intersect=function(y){return q.info("lightningBolt intersect",t,y),N.polygon(t,n,y)},e}S(ce,"lightningBolt");var pa=S((l,t,r,a,e,i,o)=>[`M${l},${t+i}`,`a${e},${i} 0,0,0 ${r},0`,`a${e},${i} 0,0,0 ${-r},0`,`l0,${a}`,`a${e},${i} 0,0,0 ${r},0`,`l0,${-a}`,`M${l},${t+i+o}`,`a${e},${i} 0,0,0 ${r},0`].join(" "),"createCylinderPathD"),fa=S((l,t,r,a,e,i,o)=>[`M${l},${t+i}`,`M${l+r},${t+i}`,`a${e},${i} 0,0,0 ${-r},0`,`l0,${a}`,`a${e},${i} 0,0,0 ${r},0`,`l0,${-a}`,`M${l},${t+i+o}`,`a${e},${i} 0,0,0 ${r},0`].join(" "),"createOuterCylinderPathD"),ua=S((l,t,r,a,e,i)=>[`M${l-r/2},${-a/2}`,`a${e},${i} 0,0,0 ${r},0`].join(" "),"createInnerCylinderPathD");async function oe(l,t){let{labelStyles:r,nodeStyles:a}=I(t);t.labelStyle=r;let{shapeSvg:e,bbox:i,label:o}=await G(l,t,j(t)),s=Math.max(i.width+(t.padding??0),t.width??0),h=s/2,n=h/(2.5+s/50),c=Math.max(i.height+n+(t.padding??0),t.height??0),g=c*.1,f,{cssStyles:p}=t;if(t.look==="handDrawn"){let u=M.svg(e),y=fa(0,0,s,c,h,n,g),m=ua(0,n,s,c,h,n),d=T(t,{}),x=u.path(y,d),b=u.path(m,d);e.insert(()=>b,":first-child").attr("class","line"),f=e.insert(()=>x,":first-child"),f.attr("class","basic label-container"),p&&f.attr("style",p)}else{let u=pa(0,0,s,c,h,n,g);f=e.insert("path",":first-child").attr("d",u).attr("class","basic label-container").attr("style",J(p)).attr("style",a)}return f.attr("label-offset-y",n),f.attr("transform",`translate(${-s/2}, ${-(c/2+n)})`),H(t,f),o.attr("transform",`translate(${-(i.width/2)-(i.x-(i.left??0))}, ${-(i.height/2)+n-(i.y-(i.top??0))})`),t.intersect=function(u){let y=N.rect(t,u),m=y.x-(t.x??0);if(h!=0&&(Math.abs(m)<(t.width??0)/2||Math.abs(m)==(t.width??0)/2&&Math.abs(y.y-(t.y??0))>(t.height??0)/2-n)){let d=n*n*(1-m*m/(h*h));d>0&&(d=Math.sqrt(d)),d=n-d,u.y-(t.y??0)>0&&(d=-d),y.y+=d}return y},e}S(oe,"linedCylinder");async function he(l,t){let{labelStyles:r,nodeStyles:a}=I(t);t.labelStyle=r;let{shapeSvg:e,bbox:i,label:o}=await G(l,t,j(t)),s=Math.max(i.width+(t.padding??0)*2,t?.width??0),h=Math.max(i.height+(t.padding??0)*2,t?.height??0),n=h/4,c=h+n,{cssStyles:g}=t,f=M.svg(e),p=T(t,{});t.look!=="handDrawn"&&(p.roughness=0,p.fillStyle="solid");let u=[{x:-s/2-s/2*.1,y:-c/2},{x:-s/2-s/2*.1,y:c/2},...nt(-s/2-s/2*.1,c/2,s/2+s/2*.1,c/2,n,.8),{x:s/2+s/2*.1,y:-c/2},{x:-s/2-s/2*.1,y:-c/2},{x:-s/2,y:-c/2},{x:-s/2,y:c/2*1.1},{x:-s/2,y:-c/2}],y=f.polygon(u.map(d=>[d.x,d.y]),p),m=e.insert(()=>y,":first-child");return m.attr("class","basic label-container"),g&&t.look!=="handDrawn"&&m.selectAll("path").attr("style",g),a&&t.look!=="handDrawn"&&m.selectAll("path").attr("style",a),m.attr("transform",`translate(0,${-n/2})`),o.attr("transform",`translate(${-s/2+(t.padding??0)+s/2*.1/2-(i.x-(i.left??0))},${-h/2+(t.padding??0)-n/2-(i.y-(i.top??0))})`),H(t,m),t.intersect=function(d){return N.polygon(t,u,d)},e}S(he,"linedWaveEdgedRect");async function ge(l,t){let{labelStyles:r,nodeStyles:a}=I(t);t.labelStyle=r;let{shapeSvg:e,bbox:i,label:o}=await G(l,t,j(t)),s=Math.max(i.width+(t.padding??0)*2,t?.width??0),h=Math.max(i.height+(t.padding??0)*2,t?.height??0),n=5,c=-s/2,g=-h/2,{cssStyles:f}=t,p=M.svg(e),u=T(t,{}),y=[{x:c-n,y:g+n},{x:c-n,y:g+h+n},{x:c+s-n,y:g+h+n},{x:c+s-n,y:g+h},{x:c+s,y:g+h},{x:c+s,y:g+h-n},{x:c+s+n,y:g+h-n},{x:c+s+n,y:g-n},{x:c+n,y:g-n},{x:c+n,y:g},{x:c,y:g},{x:c,y:g+n}],m=[{x:c,y:g+n},{x:c+s-n,y:g+n},{x:c+s-n,y:g+h},{x:c+s,y:g+h},{x:c+s,y:g},{x:c,y:g}];t.look!=="handDrawn"&&(u.roughness=0,u.fillStyle="solid");let d=F(y),x=p.path(d,u),b=F(m),k=p.path(b,{...u,fill:"none"}),w=e.insert(()=>k,":first-child");return w.insert(()=>x,":first-child"),w.attr("class","basic label-container"),f&&t.look!=="handDrawn"&&w.selectAll("path").attr("style",f),a&&t.look!=="handDrawn"&&w.selectAll("path").attr("style",a),o.attr("transform",`translate(${-(i.width/2)-n-(i.x-(i.left??0))}, ${-(i.height/2)+n-(i.y-(i.top??0))})`),H(t,w),t.intersect=function(v){return N.polygon(t,y,v)},e}S(ge,"multiRect");async function pe(l,t){let{labelStyles:r,nodeStyles:a}=I(t);t.labelStyle=r;let{shapeSvg:e,bbox:i,label:o}=await G(l,t,j(t)),s=Math.max(i.width+(t.padding??0)*2,t?.width??0),h=Math.max(i.height+(t.padding??0)*2,t?.height??0),n=h/4,c=h+n,g=-s/2,f=-c/2,p=5,{cssStyles:u}=t,y=nt(g-p,f+c+p,g+s-p,f+c+p,n,.8),m=y?.[y.length-1],d=[{x:g-p,y:f+p},{x:g-p,y:f+c+p},...y,{x:g+s-p,y:m.y-p},{x:g+s,y:m.y-p},{x:g+s,y:m.y-2*p},{x:g+s+p,y:m.y-2*p},{x:g+s+p,y:f-p},{x:g+p,y:f-p},{x:g+p,y:f},{x:g,y:f},{x:g,y:f+p}],x=[{x:g,y:f+p},{x:g+s-p,y:f+p},{x:g+s-p,y:m.y-p},{x:g+s,y:m.y-p},{x:g+s,y:f},{x:g,y:f}],b=M.svg(e),k=T(t,{});t.look!=="handDrawn"&&(k.roughness=0,k.fillStyle="solid");let w=F(d),v=b.path(w,k),$=F(x),D=b.path($,k),C=e.insert(()=>v,":first-child");return C.insert(()=>D),C.attr("class","basic label-container"),u&&t.look!=="handDrawn"&&C.selectAll("path").attr("style",u),a&&t.look!=="handDrawn"&&C.selectAll("path").attr("style",a),C.attr("transform",`translate(0,${-n/2})`),o.attr("transform",`translate(${-(i.width/2)-p-(i.x-(i.left??0))}, ${-(i.height/2)+p-n/2-(i.y-(i.top??0))})`),H(t,C),t.intersect=function(R){return N.polygon(t,d,R)},e}S(pe,"multiWaveEdgedRectangle");async function fe(l,t,{config:{themeVariables:r}}){let{labelStyles:a,nodeStyles:e}=I(t);t.labelStyle=a,t.useHtmlLabels||Rt().flowchart?.htmlLabels!==!1||(t.centerLabel=!0);let{shapeSvg:o,bbox:s}=await G(l,t,j(t)),h=Math.max(s.width+(t.padding??0)*2,t?.width??0),n=Math.max(s.height+(t.padding??0)*2,t?.height??0),c=-h/2,g=-n/2,{cssStyles:f}=t,p=M.svg(o),u=T(t,{fill:r.noteBkgColor,stroke:r.noteBorderColor});t.look!=="handDrawn"&&(u.roughness=0,u.fillStyle="solid");let y=p.rectangle(c,g,h,n,u),m=o.insert(()=>y,":first-child");return m.attr("class","basic label-container"),f&&t.look!=="handDrawn"&&m.selectAll("path").attr("style",f),e&&t.look!=="handDrawn"&&m.selectAll("path").attr("style",e),H(t,m),t.intersect=function(d){return N.rect(t,d)},o}S(fe,"note");var ya=S((l,t,r)=>[`M${l+r/2},${t}`,`L${l+r},${t-r/2}`,`L${l+r/2},${t-r}`,`L${l},${t-r/2}`,"Z"].join(" "),"createDecisionBoxPathD");async function ue(l,t){let{labelStyles:r,nodeStyles:a}=I(t);t.labelStyle=r;let{shapeSvg:e,bbox:i}=await G(l,t,j(t)),o=i.width+t.padding,s=i.height+t.padding,h=o+s,n=[{x:h/2,y:0},{x:h,y:-h/2},{x:h/2,y:-h},{x:0,y:-h/2}],c,{cssStyles:g}=t;if(t.look==="handDrawn"){let f=M.svg(e),p=T(t,{}),u=ya(0,0,h),y=f.path(u,p);c=e.insert(()=>y,":first-child").attr("transform",`translate(${-h/2}, ${h/2})`),g&&c.attr("style",g)}else c=rt(e,h,h,n);return a&&c.attr("style",a),H(t,c),t.intersect=function(f){return q.debug(`APA12 Intersect called SPLIT +point:`,f,` +node: +`,t,` +res:`,N.polygon(t,n,f)),N.polygon(t,n,f)},e}S(ue,"question");async function ye(l,t){let{labelStyles:r,nodeStyles:a}=I(t);t.labelStyle=r;let{shapeSvg:e,bbox:i,label:o}=await G(l,t,j(t)),s=Math.max(i.width+(t.padding??0),t?.width??0),h=Math.max(i.height+(t.padding??0),t?.height??0),n=-s/2,c=-h/2,g=c/2,f=[{x:n+g,y:c},{x:n,y:0},{x:n+g,y:-c},{x:-n,y:-c},{x:-n,y:c}],{cssStyles:p}=t,u=M.svg(e),y=T(t,{});t.look!=="handDrawn"&&(y.roughness=0,y.fillStyle="solid");let m=F(f),d=u.path(m,y),x=e.insert(()=>d,":first-child");return x.attr("class","basic label-container"),p&&t.look!=="handDrawn"&&x.selectAll("path").attr("style",p),a&&t.look!=="handDrawn"&&x.selectAll("path").attr("style",a),x.attr("transform",`translate(${-g/2},0)`),o.attr("transform",`translate(${-g/2-i.width/2-(i.x-(i.left??0))}, ${-(i.height/2)-(i.y-(i.top??0))})`),H(t,x),t.intersect=function(b){return N.polygon(t,f,b)},e}S(ye,"rect_left_inv_arrow");async function de(l,t){let{labelStyles:r,nodeStyles:a}=I(t);t.labelStyle=r;let e;t.cssClasses?e="node "+t.cssClasses:e="node default";let i=l.insert("g").attr("class",e).attr("id",t.domId||t.id),o=i.insert("g"),s=i.insert("g").attr("class","label").attr("style",a),h=t.description,n=t.label,c=s.node().appendChild(await Kt(n,t.labelStyle,!0,!0)),g={width:0,height:0};if(Q(X()?.flowchart?.htmlLabels)){let D=c.children[0],C=Y(c);g=D.getBoundingClientRect(),C.attr("width",g.width),C.attr("height",g.height)}q.info("Text 2",h);let f=h||[],p=c.getBBox(),u=s.node().appendChild(await Kt(f.join?f.join("
    "):f,t.labelStyle,!0,!0)),y=u.children[0],m=Y(u);g=y.getBoundingClientRect(),m.attr("width",g.width),m.attr("height",g.height);let d=(t.padding||0)/2;Y(u).attr("transform","translate( "+(g.width>p.width?0:(p.width-g.width)/2)+", "+(p.height+d+5)+")"),Y(c).attr("transform","translate( "+(g.width(q.debug("Rough node insert CXC",R),L),":first-child"),v=i.insert(()=>(q.debug("Rough node insert CXC",R),R),":first-child")}else v=o.insert("rect",":first-child"),$=o.insert("line"),v.attr("class","outer title-state").attr("style",a).attr("x",-g.width/2-d).attr("y",-g.height/2-d).attr("width",g.width+(t.padding||0)).attr("height",g.height+(t.padding||0)),$.attr("class","divider").attr("x1",-g.width/2-d).attr("x2",g.width/2+d).attr("y1",-g.height/2-d+p.height+d).attr("y2",-g.height/2-d+p.height+d);return H(t,v),t.intersect=function(D){return N.rect(t,D)},i}S(de,"rectWithTitle");async function me(l,t){let r={rx:5,ry:5,classes:"",labelPaddingX:(t?.padding||0)*1,labelPaddingY:(t?.padding||0)*1};return Bt(l,t,r)}S(me,"roundedRect");async function xe(l,t){let{labelStyles:r,nodeStyles:a}=I(t);t.labelStyle=r;let{shapeSvg:e,bbox:i,label:o}=await G(l,t,j(t)),s=t?.padding??0,h=Math.max(i.width+(t.padding??0)*2,t?.width??0),n=Math.max(i.height+(t.padding??0)*2,t?.height??0),c=-i.width/2-s,g=-i.height/2-s,{cssStyles:f}=t,p=M.svg(e),u=T(t,{});t.look!=="handDrawn"&&(u.roughness=0,u.fillStyle="solid");let y=[{x:c,y:g},{x:c+h+8,y:g},{x:c+h+8,y:g+n},{x:c-8,y:g+n},{x:c-8,y:g},{x:c,y:g},{x:c,y:g+n}],m=p.polygon(y.map(x=>[x.x,x.y]),u),d=e.insert(()=>m,":first-child");return d.attr("class","basic label-container").attr("style",J(f)),a&&t.look!=="handDrawn"&&d.selectAll("path").attr("style",a),f&&t.look!=="handDrawn"&&d.selectAll("path").attr("style",a),o.attr("transform",`translate(${-h/2+4+(t.padding??0)-(i.x-(i.left??0))},${-n/2+(t.padding??0)-(i.y-(i.top??0))})`),H(t,d),t.intersect=function(x){return N.rect(t,x)},e}S(xe,"shadedProcess");async function be(l,t){let{labelStyles:r,nodeStyles:a}=I(t);t.labelStyle=r;let{shapeSvg:e,bbox:i,label:o}=await G(l,t,j(t)),s=Math.max(i.width+(t.padding??0)*2,t?.width??0),h=Math.max(i.height+(t.padding??0)*2,t?.height??0),n=-s/2,c=-h/2,{cssStyles:g}=t,f=M.svg(e),p=T(t,{});t.look!=="handDrawn"&&(p.roughness=0,p.fillStyle="solid");let u=[{x:n,y:c},{x:n,y:c+h},{x:n+s,y:c+h},{x:n+s,y:c-h/2}],y=F(u),m=f.path(y,p),d=e.insert(()=>m,":first-child");return d.attr("class","basic label-container"),g&&t.look!=="handDrawn"&&d.selectChildren("path").attr("style",g),a&&t.look!=="handDrawn"&&d.selectChildren("path").attr("style",a),d.attr("transform",`translate(0, ${h/4})`),o.attr("transform",`translate(${-s/2+(t.padding??0)-(i.x-(i.left??0))}, ${-h/4+(t.padding??0)-(i.y-(i.top??0))})`),H(t,d),t.intersect=function(x){return N.polygon(t,u,x)},e}S(be,"slopedRect");async function we(l,t){let r={rx:0,ry:0,classes:"",labelPaddingX:(t?.padding||0)*2,labelPaddingY:(t?.padding||0)*1};return Bt(l,t,r)}S(we,"squareRect");async function Se(l,t){let{labelStyles:r,nodeStyles:a}=I(t);t.labelStyle=r;let{shapeSvg:e,bbox:i}=await G(l,t,j(t)),o=i.height+t.padding,s=i.width+o/4+t.padding,h,{cssStyles:n}=t;if(t.look==="handDrawn"){let c=M.svg(e),g=T(t,{}),f=at(-s/2,-o/2,s,o,o/2),p=c.path(f,g);h=e.insert(()=>p,":first-child"),h.attr("class","basic label-container").attr("style",J(n))}else h=e.insert("rect",":first-child"),h.attr("class","basic label-container").attr("style",a).attr("rx",o/2).attr("ry",o/2).attr("x",-s/2).attr("y",-o/2).attr("width",s).attr("height",o);return H(t,h),t.intersect=function(c){return N.rect(t,c)},e}S(Se,"stadium");async function Me(l,t){return Bt(l,t,{rx:5,ry:5,classes:"flowchart-node"})}S(Me,"state");function ke(l,t,{config:{themeVariables:r}}){let{labelStyles:a,nodeStyles:e}=I(t);t.labelStyle=a;let{cssStyles:i}=t,{lineColor:o,stateBorder:s,nodeBorder:h}=r,n=l.insert("g").attr("class","node default").attr("id",t.domId||t.id),c=M.svg(n),g=T(t,{});t.look!=="handDrawn"&&(g.roughness=0,g.fillStyle="solid");let f=c.circle(0,0,14,{...g,stroke:o,strokeWidth:2}),p=s??h,u=c.circle(0,0,5,{...g,fill:p,stroke:p,strokeWidth:2,fillStyle:"solid"}),y=n.insert(()=>f,":first-child");return y.insert(()=>u),i&&y.selectAll("path").attr("style",i),e&&y.selectAll("path").attr("style",e),H(t,y),t.intersect=function(m){return N.circle(t,7,m)},n}S(ke,"stateEnd");function ve(l,t,{config:{themeVariables:r}}){let{lineColor:a}=r,e=l.insert("g").attr("class","node default").attr("id",t.domId||t.id),i;if(t.look==="handDrawn"){let s=M.svg(e).circle(0,0,14,Qe(a));i=e.insert(()=>s),i.attr("class","state-start").attr("r",7).attr("width",14).attr("height",14)}else i=e.insert("circle",":first-child"),i.attr("class","state-start").attr("r",7).attr("width",14).attr("height",14);return H(t,i),t.intersect=function(o){return N.circle(t,7,o)},e}S(ve,"stateStart");async function $e(l,t){let{labelStyles:r,nodeStyles:a}=I(t);t.labelStyle=r;let{shapeSvg:e,bbox:i}=await G(l,t,j(t)),o=(t?.padding||0)/2,s=i.width+t.padding,h=i.height+t.padding,n=-i.width/2-o,c=-i.height/2-o,g=[{x:0,y:0},{x:s,y:0},{x:s,y:-h},{x:0,y:-h},{x:0,y:0},{x:-8,y:0},{x:s+8,y:0},{x:s+8,y:-h},{x:-8,y:-h},{x:-8,y:0}];if(t.look==="handDrawn"){let f=M.svg(e),p=T(t,{}),u=f.rectangle(n-8,c,s+16,h,p),y=f.line(n,c,n,c+h,p),m=f.line(n+s,c,n+s,c+h,p);e.insert(()=>y,":first-child"),e.insert(()=>m,":first-child");let d=e.insert(()=>u,":first-child"),{cssStyles:x}=t;d.attr("class","basic label-container").attr("style",J(x)),H(t,d)}else{let f=rt(e,s,h,g);a&&f.attr("style",a),H(t,f)}return t.intersect=function(f){return N.polygon(t,g,f)},e}S($e,"subroutine");async function De(l,t){let{labelStyles:r,nodeStyles:a}=I(t);t.labelStyle=r;let{shapeSvg:e,bbox:i}=await G(l,t,j(t)),o=Math.max(i.width+(t.padding??0)*2,t?.width??0),s=Math.max(i.height+(t.padding??0)*2,t?.height??0),h=-o/2,n=-s/2,c=.2*s,g=.2*s,{cssStyles:f}=t,p=M.svg(e),u=T(t,{}),y=[{x:h-c/2,y:n},{x:h+o+c/2,y:n},{x:h+o+c/2,y:n+s},{x:h-c/2,y:n+s}],m=[{x:h+o-c/2,y:n+s},{x:h+o+c/2,y:n+s},{x:h+o+c/2,y:n+s-g}];t.look!=="handDrawn"&&(u.roughness=0,u.fillStyle="solid");let d=F(y),x=p.path(d,u),b=F(m),k=p.path(b,{...u,fillStyle:"solid"}),w=e.insert(()=>k,":first-child");return w.insert(()=>x,":first-child"),w.attr("class","basic label-container"),f&&t.look!=="handDrawn"&&w.selectAll("path").attr("style",f),a&&t.look!=="handDrawn"&&w.selectAll("path").attr("style",a),H(t,w),t.intersect=function(v){return N.polygon(t,y,v)},e}S(De,"taggedRect");async function Pe(l,t){let{labelStyles:r,nodeStyles:a}=I(t);t.labelStyle=r;let{shapeSvg:e,bbox:i,label:o}=await G(l,t,j(t)),s=Math.max(i.width+(t.padding??0)*2,t?.width??0),h=Math.max(i.height+(t.padding??0)*2,t?.height??0),n=h/4,c=.2*s,g=.2*h,f=h+n,{cssStyles:p}=t,u=M.svg(e),y=T(t,{});t.look!=="handDrawn"&&(y.roughness=0,y.fillStyle="solid");let m=[{x:-s/2-s/2*.1,y:f/2},...nt(-s/2-s/2*.1,f/2,s/2+s/2*.1,f/2,n,.8),{x:s/2+s/2*.1,y:-f/2},{x:-s/2-s/2*.1,y:-f/2}],d=-s/2+s/2*.1,x=-f/2-g*.4,b=[{x:d+s-c,y:(x+h)*1.4},{x:d+s,y:x+h-g},{x:d+s,y:(x+h)*.9},...nt(d+s,(x+h)*1.3,d+s-c,(x+h)*1.5,-h*.03,.5)],k=F(m),w=u.path(k,y),v=F(b),$=u.path(v,{...y,fillStyle:"solid"}),D=e.insert(()=>$,":first-child");return D.insert(()=>w,":first-child"),D.attr("class","basic label-container"),p&&t.look!=="handDrawn"&&D.selectAll("path").attr("style",p),a&&t.look!=="handDrawn"&&D.selectAll("path").attr("style",a),D.attr("transform",`translate(0,${-n/2})`),o.attr("transform",`translate(${-s/2+(t.padding??0)-(i.x-(i.left??0))},${-h/2+(t.padding??0)-n/2-(i.y-(i.top??0))})`),H(t,D),t.intersect=function(C){return N.polygon(t,m,C)},e}S(Pe,"taggedWaveEdgedRectangle");async function Ce(l,t){let{labelStyles:r,nodeStyles:a}=I(t);t.labelStyle=r;let{shapeSvg:e,bbox:i}=await G(l,t,j(t)),o=Math.max(i.width+t.padding,t?.width||0),s=Math.max(i.height+t.padding,t?.height||0),h=-o/2,n=-s/2,c=e.insert("rect",":first-child");return c.attr("class","text").attr("style",a).attr("rx",0).attr("ry",0).attr("x",h).attr("y",n).attr("width",o).attr("height",s),H(t,c),t.intersect=function(g){return N.rect(t,g)},e}S(Ce,"text");var da=S((l,t,r,a,e,i)=>`M${l},${t} + a${e},${i} 0,0,1 0,${-a} + l${r},0 + a${e},${i} 0,0,1 0,${a} + M${r},${-a} + a${e},${i} 0,0,0 0,${a} + l${-r},0`,"createCylinderPathD"),ma=S((l,t,r,a,e,i)=>[`M${l},${t}`,`M${l+r},${t}`,`a${e},${i} 0,0,0 0,${-a}`,`l${-r},0`,`a${e},${i} 0,0,0 0,${a}`,`l${r},0`].join(" "),"createOuterCylinderPathD"),xa=S((l,t,r,a,e,i)=>[`M${l+r/2},${-a/2}`,`a${e},${i} 0,0,0 0,${a}`].join(" "),"createInnerCylinderPathD");async function Be(l,t){let{labelStyles:r,nodeStyles:a}=I(t);t.labelStyle=r;let{shapeSvg:e,bbox:i,label:o,halfPadding:s}=await G(l,t,j(t)),h=t.look==="neo"?s*2:s,n=i.height+h,c=n/2,g=c/(2.5+n/50),f=i.width+g+h,{cssStyles:p}=t,u;if(t.look==="handDrawn"){let y=M.svg(e),m=ma(0,0,f,n,g,c),d=xa(0,0,f,n,g,c),x=y.path(m,T(t,{})),b=y.path(d,T(t,{fill:"none"}));u=e.insert(()=>b,":first-child"),u=e.insert(()=>x,":first-child"),u.attr("class","basic label-container"),p&&u.attr("style",p)}else{let y=da(0,0,f,n,g,c);u=e.insert("path",":first-child").attr("d",y).attr("class","basic label-container").attr("style",J(p)).attr("style",a),u.attr("class","basic label-container"),p&&u.selectAll("path").attr("style",p),a&&u.selectAll("path").attr("style",a)}return u.attr("label-offset-x",g),u.attr("transform",`translate(${-f/2}, ${n/2} )`),o.attr("transform",`translate(${-(i.width/2)-g-(i.x-(i.left??0))}, ${-(i.height/2)-(i.y-(i.top??0))})`),H(t,u),t.intersect=function(y){let m=N.rect(t,y),d=m.y-(t.y??0);if(c!=0&&(Math.abs(d)<(t.height??0)/2||Math.abs(d)==(t.height??0)/2&&Math.abs(m.x-(t.x??0))>(t.width??0)/2-g)){let x=g*g*(1-d*d/(c*c));x!=0&&(x=Math.sqrt(Math.abs(x))),x=g-x,y.x-(t.x??0)>0&&(x=-x),m.x+=x}return m},e}S(Be,"tiltedCylinder");async function Ne(l,t){let{labelStyles:r,nodeStyles:a}=I(t);t.labelStyle=r;let{shapeSvg:e,bbox:i}=await G(l,t,j(t)),o=i.width+t.padding,s=i.height+t.padding,h=[{x:-3*s/6,y:0},{x:o+3*s/6,y:0},{x:o,y:-s},{x:0,y:-s}],n,{cssStyles:c}=t;if(t.look==="handDrawn"){let g=M.svg(e),f=T(t,{}),p=F(h),u=g.path(p,f);n=e.insert(()=>u,":first-child").attr("transform",`translate(${-o/2}, ${s/2})`),c&&n.attr("style",c)}else n=rt(e,o,s,h);return a&&n.attr("style",a),t.width=o,t.height=s,H(t,n),t.intersect=function(g){return N.polygon(t,h,g)},e}S(Ne,"trapezoid");async function Re(l,t){let{labelStyles:r,nodeStyles:a}=I(t);t.labelStyle=r;let{shapeSvg:e,bbox:i}=await G(l,t,j(t)),o=60,s=20,h=Math.max(o,i.width+(t.padding??0)*2,t?.width??0),n=Math.max(s,i.height+(t.padding??0)*2,t?.height??0),{cssStyles:c}=t,g=M.svg(e),f=T(t,{});t.look!=="handDrawn"&&(f.roughness=0,f.fillStyle="solid");let p=[{x:-h/2*.8,y:-n/2},{x:h/2*.8,y:-n/2},{x:h/2,y:-n/2*.6},{x:h/2,y:n/2},{x:-h/2,y:n/2},{x:-h/2,y:-n/2*.6}],u=F(p),y=g.path(u,f),m=e.insert(()=>y,":first-child");return m.attr("class","basic label-container"),c&&t.look!=="handDrawn"&&m.selectChildren("path").attr("style",c),a&&t.look!=="handDrawn"&&m.selectChildren("path").attr("style",a),H(t,m),t.intersect=function(d){return N.polygon(t,p,d)},e}S(Re,"trapezoidalPentagon");async function Le(l,t){let{labelStyles:r,nodeStyles:a}=I(t);t.labelStyle=r;let{shapeSvg:e,bbox:i,label:o}=await G(l,t,j(t)),s=Q(X().flowchart?.htmlLabels),h=i.width+(t.padding??0),n=h+i.height,c=h+i.height,g=[{x:0,y:0},{x:c,y:0},{x:c/2,y:-n}],{cssStyles:f}=t,p=M.svg(e),u=T(t,{});t.look!=="handDrawn"&&(u.roughness=0,u.fillStyle="solid");let y=F(g),m=p.path(y,u),d=e.insert(()=>m,":first-child").attr("transform",`translate(${-n/2}, ${n/2})`);return f&&t.look!=="handDrawn"&&d.selectChildren("path").attr("style",f),a&&t.look!=="handDrawn"&&d.selectChildren("path").attr("style",a),t.width=h,t.height=n,H(t,d),o.attr("transform",`translate(${-i.width/2-(i.x-(i.left??0))}, ${n/2-(i.height+(t.padding??0)/(s?2:1)-(i.y-(i.top??0)))})`),t.intersect=function(x){return q.info("Triangle intersect",t,g,x),N.polygon(t,g,x)},e}S(Le,"triangle");async function Ae(l,t){let{labelStyles:r,nodeStyles:a}=I(t);t.labelStyle=r;let{shapeSvg:e,bbox:i,label:o}=await G(l,t,j(t)),s=Math.max(i.width+(t.padding??0)*2,t?.width??0),h=Math.max(i.height+(t.padding??0)*2,t?.height??0),n=h/8,c=h+n,{cssStyles:g}=t,p=70-s,u=p>0?p/2:0,y=M.svg(e),m=T(t,{});t.look!=="handDrawn"&&(m.roughness=0,m.fillStyle="solid");let d=[{x:-s/2-u,y:c/2},...nt(-s/2-u,c/2,s/2+u,c/2,n,.8),{x:s/2+u,y:-c/2},{x:-s/2-u,y:-c/2}],x=F(d),b=y.path(x,m),k=e.insert(()=>b,":first-child");return k.attr("class","basic label-container"),g&&t.look!=="handDrawn"&&k.selectAll("path").attr("style",g),a&&t.look!=="handDrawn"&&k.selectAll("path").attr("style",a),k.attr("transform",`translate(0,${-n/2})`),o.attr("transform",`translate(${-s/2+(t.padding??0)-(i.x-(i.left??0))},${-h/2+(t.padding??0)-n-(i.y-(i.top??0))})`),H(t,k),t.intersect=function(w){return N.polygon(t,d,w)},e}S(Ae,"waveEdgedRectangle");async function Te(l,t){let{labelStyles:r,nodeStyles:a}=I(t);t.labelStyle=r;let{shapeSvg:e,bbox:i}=await G(l,t,j(t)),o=100,s=50,h=Math.max(i.width+(t.padding??0)*2,t?.width??0),n=Math.max(i.height+(t.padding??0)*2,t?.height??0),c=h/n,g=h,f=n;g>f*c?f=g/c:g=f*c,g=Math.max(g,o),f=Math.max(f,s);let p=Math.min(f*.2,f/4),u=f+p*2,{cssStyles:y}=t,m=M.svg(e),d=T(t,{});t.look!=="handDrawn"&&(d.roughness=0,d.fillStyle="solid");let x=[{x:-g/2,y:u/2},...nt(-g/2,u/2,g/2,u/2,p,1),{x:g/2,y:-u/2},...nt(g/2,-u/2,-g/2,-u/2,p,-1)],b=F(x),k=m.path(b,d),w=e.insert(()=>k,":first-child");return w.attr("class","basic label-container"),y&&t.look!=="handDrawn"&&w.selectAll("path").attr("style",y),a&&t.look!=="handDrawn"&&w.selectAll("path").attr("style",a),H(t,w),t.intersect=function(v){return N.polygon(t,x,v)},e}S(Te,"waveRectangle");async function We(l,t){let{labelStyles:r,nodeStyles:a}=I(t);t.labelStyle=r;let{shapeSvg:e,bbox:i,label:o}=await G(l,t,j(t)),s=Math.max(i.width+(t.padding??0)*2,t?.width??0),h=Math.max(i.height+(t.padding??0)*2,t?.height??0),n=5,c=-s/2,g=-h/2,{cssStyles:f}=t,p=M.svg(e),u=T(t,{}),y=[{x:c-n,y:g-n},{x:c-n,y:g+h},{x:c+s,y:g+h},{x:c+s,y:g-n}],m=`M${c-n},${g-n} L${c+s},${g-n} L${c+s},${g+h} L${c-n},${g+h} L${c-n},${g-n} + M${c-n},${g} L${c+s},${g} + M${c},${g-n} L${c},${g+h}`;t.look!=="handDrawn"&&(u.roughness=0,u.fillStyle="solid");let d=p.path(m,u),x=e.insert(()=>d,":first-child");return x.attr("transform",`translate(${n/2}, ${n/2})`),x.attr("class","basic label-container"),f&&t.look!=="handDrawn"&&x.selectAll("path").attr("style",f),a&&t.look!=="handDrawn"&&x.selectAll("path").attr("style",a),o.attr("transform",`translate(${-(i.width/2)+n/2-(i.x-(i.left??0))}, ${-(i.height/2)+n/2-(i.y-(i.top??0))})`),H(t,x),t.intersect=function(b){return N.polygon(t,y,b)},e}S(We,"windowPane");async function He(l,t,r,a,e=r.class.padding??12){let i=a?0:3,o=l.insert("g").attr("class",j(t)).attr("id",t.domId||t.id),s=null,h=null,n=null,c=null,g=0,f=0,p=0;if(s=o.insert("g").attr("class","annotation-group text"),t.annotations.length>0){let x=t.annotations[0];await bt(s,{text:`\xAB${x}\xBB`},0),g=s.node().getBBox().height}h=o.insert("g").attr("class","label-group text"),await bt(h,t,0,["font-weight: bolder"]);let u=h.node().getBBox();f=u.height,n=o.insert("g").attr("class","members-group text");let y=0;for(let x of t.members){let b=await bt(n,x,y,[x.parseClassifier()]);y+=b+i}p=n.node().getBBox().height,p<=0&&(p=e/2),c=o.insert("g").attr("class","methods-group text");let m=0;for(let x of t.methods){let b=await bt(c,x,m,[x.parseClassifier()]);m+=b+i}let d=o.node().getBBox();if(s!==null){let x=s.node().getBBox();s.attr("transform",`translate(${-x.width/2})`)}return h.attr("transform",`translate(${-u.width/2}, ${g})`),d=o.node().getBBox(),n.attr("transform",`translate(0, ${g+f+e*2})`),d=o.node().getBBox(),c.attr("transform",`translate(0, ${g+f+(p?p+e*4:e*2)})`),d=o.node().getBBox(),{shapeSvg:o,bbox:d}}S(He,"textHelper");async function bt(l,t,r,a=[]){let e=l.insert("g").attr("class","label").attr("style",a.join("; ")),i=Rt(),o="useHtmlLabels"in t?t.useHtmlLabels:Q(i.htmlLabels)??!0,s="";"text"in t?s=t.text:s=t.label,!o&&s.startsWith("\\")&&(s=s.substring(1)),At(s)&&(o=!0);let h=await ct(e,ns(ut(s)),{width:ls(s,i)+50,classes:"markdown-node-label",useHtmlLabels:o},i),n,c=1;if(o){let g=h.children[0],f=Y(h);c=g.innerHTML.split("
    ").length,g.innerHTML.includes("")&&(c+=g.innerHTML.split("").length-1);let p=g.getElementsByTagName("img");if(p){let u=s.replace(/]*>/g,"").trim()==="";await Promise.all([...p].map(y=>new Promise(m=>{function d(){if(y.style.display="flex",y.style.flexDirection="column",u){let x=i.fontSize?.toString()??window.getComputedStyle(document.body).fontSize,k=parseInt(x,10)*5+"px";y.style.minWidth=k,y.style.maxWidth=k}else y.style.width="100%";m(y)}S(d,"setupImage"),setTimeout(()=>{y.complete&&d()}),y.addEventListener("error",d),y.addEventListener("load",d)})))}n=g.getBoundingClientRect(),f.attr("width",n.width),f.attr("height",n.height)}else{a.includes("font-weight: bolder")&&Y(h).selectAll("tspan").attr("font-weight",""),c=h.children.length;let g=h.children[0];(h.textContent===""||h.textContent.includes(">"))&&(g.textContent=s[0]+s.substring(1).replaceAll(">",">").replaceAll("<","<").trim(),s[1]===" "&&(g.textContent=g.textContent[0]+" "+g.textContent.substring(1))),g.textContent==="undefined"&&(g.textContent=""),n=h.getBBox()}return e.attr("transform","translate(0,"+(-n.height/(2*c)+r)+")"),n.height}S(bt,"addText");async function Ie(l,t){let r=X(),a=r.class.padding??12,e=a,i=t.useHtmlLabels??Q(r.htmlLabels)??!0,o=t;o.annotations=o.annotations??[],o.members=o.members??[],o.methods=o.methods??[];let{shapeSvg:s,bbox:h}=await He(l,t,r,i,e),{labelStyles:n,nodeStyles:c}=I(t);t.labelStyle=n,t.cssStyles=o.styles||"";let g=o.styles?.join(";")||c||"";t.cssStyles||(t.cssStyles=g.replaceAll("!important","").split(";"));let f=o.members.length===0&&o.methods.length===0&&!r.class?.hideEmptyMembersBox,p=M.svg(s),u=T(t,{});t.look!=="handDrawn"&&(u.roughness=0,u.fillStyle="solid");let y=h.width,m=h.height;o.members.length===0&&o.methods.length===0?m+=e:o.members.length>0&&o.methods.length===0&&(m+=e*2);let d=-y/2,x=-m/2,b=p.rectangle(d-a,x-a-(f?a:o.members.length===0&&o.methods.length===0?-a/2:0),y+2*a,m+2*a+(f?a*2:o.members.length===0&&o.methods.length===0?-a:0),u),k=s.insert(()=>b,":first-child");k.attr("class","basic label-container");let w=k.node().getBBox();s.selectAll(".text").each((C,R,L)=>{let E=Y(L[R]),P=E.attr("transform"),A=0;if(P){let z=RegExp(/translate\(([^,]+),([^)]+)\)/).exec(P);z&&(A=parseFloat(z[2]))}let W=A+x+a-(f?a:o.members.length===0&&o.methods.length===0?-a/2:0);i||(W-=4);let B=d;(E.attr("class").includes("label-group")||E.attr("class").includes("annotation-group"))&&(B=-E.node()?.getBBox().width/2||0,s.selectAll("text").each(function(O,z,Z){window.getComputedStyle(Z[z]).textAnchor==="middle"&&(B=0)})),E.attr("transform",`translate(${B}, ${W})`)});let v=s.select(".annotation-group").node().getBBox().height-(f?a/2:0)||0,$=s.select(".label-group").node().getBBox().height-(f?a/2:0)||0,D=s.select(".members-group").node().getBBox().height-(f?a/2:0)||0;if(o.members.length>0||o.methods.length>0||f){let C=p.line(w.x,v+$+x+a,w.x+w.width,v+$+x+a,u);s.insert(()=>C).attr("class","divider").attr("style",g)}if(f||o.members.length>0||o.methods.length>0){let C=p.line(w.x,v+$+D+x+e*2+a,w.x+w.width,v+$+D+x+a+e*2,u);s.insert(()=>C).attr("class","divider").attr("style",g)}if(o.look!=="handDrawn"&&s.selectAll("path").attr("style",g),k.select(":nth-child(2)").attr("style",g),s.selectAll(".divider").select("path").attr("style",g),t.labelStyle?s.selectAll("span").attr("style",t.labelStyle):s.selectAll("span").attr("style",g),!i){let C=RegExp(/color\s*:\s*([^;]*)/),R=C.exec(g);if(R){let L=R[0].replace("color","fill");s.selectAll("tspan").attr("style",L)}else if(n){let L=C.exec(n);if(L){let E=L[0].replace("color","fill");s.selectAll("tspan").attr("style",E)}}}return H(t,k),t.intersect=function(C){return N.rect(t,C)},s}S(Ie,"classBox");var ba=S(l=>{switch(l){case"Very High":return"red";case"High":return"orange";case"Medium":return null;case"Low":return"blue";case"Very Low":return"lightblue"}},"colorFromPriority");async function Ee(l,t,{config:r}){let{labelStyles:a,nodeStyles:e}=I(t);t.labelStyle=a||"";let i=10,o=t.width;t.width=(t.width??200)-10;let{shapeSvg:s,bbox:h,label:n}=await G(l,t,j(t)),c=t.padding||10,g="",f;"ticket"in t&&t.ticket&&r?.kanban?.ticketBaseUrl&&(g=r?.kanban?.ticketBaseUrl.replace("#TICKET#",t.ticket),f=s.insert("svg:a",":first-child").attr("class","kanban-ticket-link").attr("xlink:href",g).attr("target","_blank"));let p={useHtmlLabels:t.useHtmlLabels,labelStyle:t.labelStyle||"",width:t.width,img:t.img,padding:t.padding||8,centerLabel:!1},u,y;f?{label:u,bbox:y}=await Ut(f,"ticket"in t&&t.ticket||"",p):{label:u,bbox:y}=await Ut(s,"ticket"in t&&t.ticket||"",p);let{label:m,bbox:d}=await Ut(s,"assigned"in t&&t.assigned||"",p);t.width=o;let x=10,b=t?.width||0,k=Math.max(y.height,d.height)/2,w=Math.max(h.height+x*2,t?.height||0)+k,v=-b/2,$=-w/2;n.attr("transform","translate("+(c-b/2)+", "+(-k-h.height/2)+")"),u.attr("transform","translate("+(c-b/2)+", "+(-k+h.height/2)+")"),m.attr("transform","translate("+(c+b/2-d.width-2*i)+", "+(-k+h.height/2)+")");let D,{rx:C,ry:R}=t,{cssStyles:L}=t;if(t.look==="handDrawn"){let E=M.svg(s),P=T(t,{}),A=C||R?E.path(at(v,$,b,w,C||0),P):E.rectangle(v,$,b,w,P);D=s.insert(()=>A,":first-child"),D.attr("class","basic label-container").attr("style",L||null)}else{D=s.insert("rect",":first-child"),D.attr("class","basic label-container __APA__").attr("style",e).attr("rx",C??5).attr("ry",R??5).attr("x",v).attr("y",$).attr("width",b).attr("height",w);let E="priority"in t&&t.priority;if(E){let P=s.append("line"),A=v+2,W=$+Math.floor((C??0)/2),B=$+w-Math.floor((C??0)/2);P.attr("x1",A).attr("y1",W).attr("x2",A).attr("y2",B).attr("stroke-width","4").attr("stroke",ba(E))}}return H(t,D),t.height=w,t.intersect=function(E){return N.rect(t,E)},s}S(Ee,"kanbanItem");var wa=[{semanticName:"Process",name:"Rectangle",shortName:"rect",description:"Standard process shape",aliases:["proc","process","rectangle"],internalAliases:["squareRect"],handler:we},{semanticName:"Event",name:"Rounded Rectangle",shortName:"rounded",description:"Represents an event",aliases:["event"],internalAliases:["roundedRect"],handler:me},{semanticName:"Terminal Point",name:"Stadium",shortName:"stadium",description:"Terminal point",aliases:["terminal","pill"],handler:Se},{semanticName:"Subprocess",name:"Framed Rectangle",shortName:"fr-rect",description:"Subprocess",aliases:["subprocess","subproc","framed-rectangle","subroutine"],handler:$e},{semanticName:"Database",name:"Cylinder",shortName:"cyl",description:"Database storage",aliases:["db","database","cylinder"],handler:Fs},{semanticName:"Start",name:"Circle",shortName:"circle",description:"Starting point",aliases:["circ"],handler:Is},{semanticName:"Decision",name:"Diamond",shortName:"diam",description:"Decision-making step",aliases:["decision","diamond","question"],handler:ue},{semanticName:"Prepare Conditional",name:"Hexagon",shortName:"hex",description:"Preparation or condition step",aliases:["hexagon","prepare"],handler:Js},{semanticName:"Data Input/Output",name:"Lean Right",shortName:"lean-r",description:"Represents input or output",aliases:["lean-right","in-out"],internalAliases:["lean_right"],handler:le},{semanticName:"Data Input/Output",name:"Lean Left",shortName:"lean-l",description:"Represents output or input",aliases:["lean-left","out-in"],internalAliases:["lean_left"],handler:ne},{semanticName:"Priority Action",name:"Trapezoid Base Bottom",shortName:"trap-b",description:"Priority action",aliases:["priority","trapezoid-bottom","trapezoid"],handler:Ne},{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:re},{semanticName:"Stop",name:"Double Circle",shortName:"dbl-circ",description:"Represents a stop point",aliases:["double-circle"],internalAliases:["doublecircle"],handler:Xs},{semanticName:"Text Block",name:"Text Block",shortName:"text",description:"Text block",handler:Ce},{semanticName:"Card",name:"Notched Rectangle",shortName:"notch-rect",description:"Represents a card",aliases:["card","notched-rectangle"],handler:Ws},{semanticName:"Lined/Shaded Process",name:"Lined Rectangle",shortName:"lin-rect",description:"Lined process shape",aliases:["lined-rectangle","lined-process","lin-proc","shaded-process"],handler:xe},{semanticName:"Start",name:"Small Circle",shortName:"sm-circ",description:"Small starting point",aliases:["start","small-circle"],internalAliases:["stateStart"],handler:ve},{semanticName:"Stop",name:"Framed Circle",shortName:"fr-circ",description:"Stop point",aliases:["stop","framed-circle"],internalAliases:["stateEnd"],handler:ke},{semanticName:"Fork/Join",name:"Filled Rectangle",shortName:"fork",description:"Fork or join in process flow",aliases:["join"],internalAliases:["forkJoin"],handler:Zs},{semanticName:"Collate",name:"Hourglass",shortName:"hourglass",description:"Represents a collate operation",aliases:["hourglass","collate"],handler:Us},{semanticName:"Comment",name:"Curly Brace",shortName:"brace",description:"Adds a comment",aliases:["comment","brace-l"],handler:_s},{semanticName:"Comment Right",name:"Curly Brace",shortName:"brace-r",description:"Adds a comment",handler:zs},{semanticName:"Comment with braces on both sides",name:"Curly Braces",shortName:"braces",description:"Adds a comment",handler:js},{semanticName:"Com Link",name:"Lightning Bolt",shortName:"bolt",description:"Communication link",aliases:["com-link","lightning-bolt"],handler:ce},{semanticName:"Document",name:"Document",shortName:"doc",description:"Represents a document",aliases:["doc","document"],handler:Ae},{semanticName:"Delay",name:"Half-Rounded Rectangle",shortName:"delay",description:"Represents a delay",aliases:["half-rounded-rectangle"],handler:Qs},{semanticName:"Direct Access Storage",name:"Horizontal Cylinder",shortName:"h-cyl",description:"Direct access storage",aliases:["das","horizontal-cylinder"],handler:Be},{semanticName:"Disk Storage",name:"Lined Cylinder",shortName:"lin-cyl",description:"Disk storage",aliases:["disk","lined-cylinder"],handler:oe},{semanticName:"Display",name:"Curved Trapezoid",shortName:"curv-trap",description:"Represents a display",aliases:["curved-trapezoid","display"],handler:Gs},{semanticName:"Divided Process",name:"Divided Rectangle",shortName:"div-rect",description:"Divided process shape",aliases:["div-proc","divided-rectangle","divided-process"],handler:qs},{semanticName:"Extract",name:"Triangle",shortName:"tri",description:"Extraction process",aliases:["extract","triangle"],handler:Le},{semanticName:"Internal Storage",name:"Window Pane",shortName:"win-pane",description:"Internal storage",aliases:["internal-storage","window-pane"],handler:We},{semanticName:"Junction",name:"Filled Circle",shortName:"f-circ",description:"Junction point",aliases:["junction","filled-circle"],handler:Ys},{semanticName:"Loop Limit",name:"Trapezoidal Pentagon",shortName:"notch-pent",description:"Loop limit step",aliases:["loop-limit","notched-pentagon"],handler:Re},{semanticName:"Manual File",name:"Flipped Triangle",shortName:"flip-tri",description:"Manual file operation",aliases:["manual-file","flipped-triangle"],handler:Vs},{semanticName:"Manual Input",name:"Sloped Rectangle",shortName:"sl-rect",description:"Manual input step",aliases:["manual-input","sloped-rectangle"],handler:be},{semanticName:"Multi-Document",name:"Stacked Document",shortName:"docs",description:"Multiple documents",aliases:["documents","st-doc","stacked-document"],handler:pe},{semanticName:"Multi-Process",name:"Stacked Rectangle",shortName:"st-rect",description:"Multiple processes",aliases:["procs","processes","stacked-rectangle"],handler:ge},{semanticName:"Stored Data",name:"Bow Tie Rectangle",shortName:"bow-rect",description:"Stored data",aliases:["stored-data","bow-tie-rectangle"],handler:Ts},{semanticName:"Summary",name:"Crossed Circle",shortName:"cross-circ",description:"Summary",aliases:["summary","crossed-circle"],handler:Os},{semanticName:"Tagged Document",name:"Tagged Document",shortName:"tag-doc",description:"Tagged document",aliases:["tag-doc","tagged-document"],handler:Pe},{semanticName:"Tagged Process",name:"Tagged Rectangle",shortName:"tag-rect",description:"Tagged process",aliases:["tagged-rectangle","tag-proc","tagged-process"],handler:De},{semanticName:"Paper Tape",name:"Flag",shortName:"flag",description:"Paper tape",aliases:["paper-tape"],handler:Te},{semanticName:"Odd",name:"Odd",shortName:"odd",description:"Odd shape",internalAliases:["rect_left_inv_arrow"],handler:ye},{semanticName:"Lined Document",name:"Lined Document",shortName:"lin-doc",description:"Lined document",aliases:["lined-document"],handler:he}],Sa=S(()=>{let t=[...Object.entries({state:Me,choice:Hs,note:fe,rectWithTitle:de,labelRect:ie,iconSquare:ee,iconCircle:te,icon:Ks,iconRounded:se,imageSquare:ae,anchor:As,kanbanItem:Ee,classBox:Ie}),...wa.flatMap(r=>[r.shortName,..."aliases"in r?r.aliases:[],..."internalAliases"in r?r.internalAliases:[]].map(e=>[e,r.handler]))];return Object.fromEntries(t)},"generateShapeMap"),Oe=Sa();function Ma(l){return l in Oe}S(Ma,"isValidShape");var Nt=new Map;async function ka(l,t,r){let a,e;t.shape==="rect"&&(t.rx&&t.ry?t.shape="roundedRect":t.shape="squareRect");let i=t.shape?Oe[t.shape]:void 0;if(!i)throw new Error(`No such shape: ${t.shape}. Please check your syntax.`);if(t.link){let o;r.config.securityLevel==="sandbox"?o="_top":t.linkTarget&&(o=t.linkTarget||"_blank"),a=l.insert("svg:a").attr("xlink:href",t.link).attr("target",o??null),e=await i(a,t,r)}else e=await i(l,t,r),a=e;return t.tooltip&&e.attr("title",t.tooltip),Nt.set(t.id,a),t.haveCallback&&a.attr("class",a.attr("class")+" clickable"),a}S(ka,"insertNode");var Or=S((l,t)=>{Nt.set(t.id,l)},"setNodeElem"),_r=S(()=>{Nt.clear()},"clear"),zr=S(l=>{let t=Nt.get(l.id);q.trace("Transforming node",l.diff,l,"translate("+(l.x-l.width/2-5)+", "+l.width/2+")");let r=8,a=l.diff||0;return l.clusterNode?t.attr("transform","translate("+(l.x+a-l.width/2)+", "+(l.y-l.height/2-r)+")"):t.attr("transform","translate("+l.x+", "+l.y+")"),a},"positionNode");export{M as a,G as b,H as c,Kt as d,Ta as e,Wa as f,Ma as g,ka as h,Or as i,_r as j,zr as k}; +//# sourceMappingURL=chunk-N6ME3NZU.min.js.map diff --git a/docs/_site/public/chunk-N6ME3NZU.min.js.map b/docs/_site/public/chunk-N6ME3NZU.min.js.map new file mode 100644 index 0000000..7813e20 --- /dev/null +++ b/docs/_site/public/chunk-N6ME3NZU.min.js.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": ["../../node_modules/roughjs/bundled/rough.esm.js", "../../node_modules/mermaid/dist/chunks/mermaid.core/chunk-7NZE2EM7.mjs"], + "sourcesContent": ["function t(t,e,s){if(t&&t.length){const[n,o]=e,a=Math.PI/180*s,h=Math.cos(a),r=Math.sin(a);for(const e of t){const[t,s]=e;e[0]=(t-n)*h-(s-o)*r+n,e[1]=(t-n)*r+(s-o)*h+o}}}function e(t,e){return t[0]===e[0]&&t[1]===e[1]}function s(s,n,o,a=1){const h=o,r=Math.max(n,.1),i=s[0]&&s[0][0]&&\"number\"==typeof s[0][0]?[s]:s,c=[0,0];if(h)for(const e of i)t(e,c,h);const l=function(t,s,n){const o=[];for(const s of t){const t=[...s];e(t[0],t[t.length-1])||t.push([t[0][0],t[0][1]]),t.length>2&&o.push(t)}const a=[];s=Math.max(s,.1);const h=[];for(const t of o)for(let e=0;et.ymine.ymin?1:t.xe.x?1:t.ymax===e.ymax?0:(t.ymax-e.ymax)/Math.abs(t.ymax-e.ymax))),!h.length)return a;let r=[],i=h[0].ymin,c=0;for(;r.length||h.length;){if(h.length){let t=-1;for(let e=0;ei);e++)t=e;h.splice(0,t+1).forEach((t=>{r.push({s:i,edge:t})}))}if(r=r.filter((t=>!(t.edge.ymax<=i))),r.sort(((t,e)=>t.edge.x===e.edge.x?0:(t.edge.x-e.edge.x)/Math.abs(t.edge.x-e.edge.x))),(1!==n||c%s==0)&&r.length>1)for(let t=0;t=r.length)break;const s=r[t].edge,n=r[e].edge;a.push([[Math.round(s.x),i],[Math.round(n.x),i]])}i+=n,r.forEach((t=>{t.edge.x=t.edge.x+n*t.edge.islope})),c++}return a}(i,r,a);if(h){for(const e of i)t(e,c,-h);!function(e,s,n){const o=[];e.forEach((t=>o.push(...t))),t(o,s,n)}(l,c,-h)}return l}function n(t,e){var n;const o=e.hachureAngle+90;let a=e.hachureGap;a<0&&(a=4*e.strokeWidth),a=Math.round(Math.max(a,.1));let h=1;return e.roughness>=1&&((null===(n=e.randomizer)||void 0===n?void 0:n.next())||Math.random())>.7&&(h=a),s(t,a,o,h||1)}class o{constructor(t){this.helper=t}fillPolygons(t,e){return this._fillPolygons(t,e)}_fillPolygons(t,e){const s=n(t,e);return{type:\"fillSketch\",ops:this.renderLines(s,e)}}renderLines(t,e){const s=[];for(const n of t)s.push(...this.helper.doubleLineOps(n[0][0],n[0][1],n[1][0],n[1][1],e));return s}}function a(t){const e=t[0],s=t[1];return Math.sqrt(Math.pow(e[0]-s[0],2)+Math.pow(e[1]-s[1],2))}class h extends o{fillPolygons(t,e){let s=e.hachureGap;s<0&&(s=4*e.strokeWidth),s=Math.max(s,.1);const o=n(t,Object.assign({},e,{hachureGap:s})),h=Math.PI/180*e.hachureAngle,r=[],i=.5*s*Math.cos(h),c=.5*s*Math.sin(h);for(const[t,e]of o)a([t,e])&&r.push([[t[0]-i,t[1]+c],[...e]],[[t[0]+i,t[1]-c],[...e]]);return{type:\"fillSketch\",ops:this.renderLines(r,e)}}}class r extends o{fillPolygons(t,e){const s=this._fillPolygons(t,e),n=Object.assign({},e,{hachureAngle:e.hachureAngle+90}),o=this._fillPolygons(t,n);return s.ops=s.ops.concat(o.ops),s}}class i{constructor(t){this.helper=t}fillPolygons(t,e){const s=n(t,e=Object.assign({},e,{hachureAngle:0}));return this.dotsOnLines(s,e)}dotsOnLines(t,e){const s=[];let n=e.hachureGap;n<0&&(n=4*e.strokeWidth),n=Math.max(n,.1);let o=e.fillWeight;o<0&&(o=e.strokeWidth/2);const h=n/4;for(const r of t){const t=a(r),i=t/n,c=Math.ceil(i)-1,l=t-c*n,u=(r[0][0]+r[1][0])/2-n/4,p=Math.min(r[0][1],r[1][1]);for(let t=0;t{const h=a(t),r=Math.floor(h/(s+n)),i=(h+n-r*(s+n))/2;let c=t[0],l=t[1];c[0]>l[0]&&(c=t[1],l=t[0]);const u=Math.atan((l[1]-c[1])/(l[0]-c[0]));for(let t=0;t{const o=a(t),h=Math.round(o/(2*e));let r=t[0],i=t[1];r[0]>i[0]&&(r=t[1],i=t[0]);const c=Math.atan((i[1]-r[1])/(i[0]-r[0]));for(let t=0;tn%2?t+s:t+e));a.push({key:\"C\",data:t}),e=t[4],s=t[5];break}case\"Q\":a.push({key:\"Q\",data:[...r]}),e=r[2],s=r[3];break;case\"q\":{const t=r.map(((t,n)=>n%2?t+s:t+e));a.push({key:\"Q\",data:t}),e=t[2],s=t[3];break}case\"A\":a.push({key:\"A\",data:[...r]}),e=r[5],s=r[6];break;case\"a\":e+=r[5],s+=r[6],a.push({key:\"A\",data:[r[0],r[1],r[2],r[3],r[4],e,s]});break;case\"H\":a.push({key:\"H\",data:[...r]}),e=r[0];break;case\"h\":e+=r[0],a.push({key:\"H\",data:[e]});break;case\"V\":a.push({key:\"V\",data:[...r]}),s=r[0];break;case\"v\":s+=r[0],a.push({key:\"V\",data:[s]});break;case\"S\":a.push({key:\"S\",data:[...r]}),e=r[2],s=r[3];break;case\"s\":{const t=r.map(((t,n)=>n%2?t+s:t+e));a.push({key:\"S\",data:t}),e=t[2],s=t[3];break}case\"T\":a.push({key:\"T\",data:[...r]}),e=r[0],s=r[1];break;case\"t\":e+=r[0],s+=r[1],a.push({key:\"T\",data:[e,s]});break;case\"Z\":case\"z\":a.push({key:\"Z\",data:[]}),e=n,s=o}return a}function m(t){const e=[];let s=\"\",n=0,o=0,a=0,h=0,r=0,i=0;for(const{key:c,data:l}of t){switch(c){case\"M\":e.push({key:\"M\",data:[...l]}),[n,o]=l,[a,h]=l;break;case\"C\":e.push({key:\"C\",data:[...l]}),n=l[4],o=l[5],r=l[2],i=l[3];break;case\"L\":e.push({key:\"L\",data:[...l]}),[n,o]=l;break;case\"H\":n=l[0],e.push({key:\"L\",data:[n,o]});break;case\"V\":o=l[0],e.push({key:\"L\",data:[n,o]});break;case\"S\":{let t=0,a=0;\"C\"===s||\"S\"===s?(t=n+(n-r),a=o+(o-i)):(t=n,a=o),e.push({key:\"C\",data:[t,a,...l]}),r=l[0],i=l[1],n=l[2],o=l[3];break}case\"T\":{const[t,a]=l;let h=0,c=0;\"Q\"===s||\"T\"===s?(h=n+(n-r),c=o+(o-i)):(h=n,c=o);const u=n+2*(h-n)/3,p=o+2*(c-o)/3,f=t+2*(h-t)/3,d=a+2*(c-a)/3;e.push({key:\"C\",data:[u,p,f,d,t,a]}),r=h,i=c,n=t,o=a;break}case\"Q\":{const[t,s,a,h]=l,c=n+2*(t-n)/3,u=o+2*(s-o)/3,p=a+2*(t-a)/3,f=h+2*(s-h)/3;e.push({key:\"C\",data:[c,u,p,f,a,h]}),r=t,i=s,n=a,o=h;break}case\"A\":{const t=Math.abs(l[0]),s=Math.abs(l[1]),a=l[2],h=l[3],r=l[4],i=l[5],c=l[6];if(0===t||0===s)e.push({key:\"C\",data:[n,o,i,c,i,c]}),n=i,o=c;else if(n!==i||o!==c){x(n,o,i,c,t,s,a,h,r).forEach((function(t){e.push({key:\"C\",data:t})})),n=i,o=c}break}case\"Z\":e.push({key:\"Z\",data:[]}),n=a,o=h}s=c}return e}function w(t,e,s){return[t*Math.cos(s)-e*Math.sin(s),t*Math.sin(s)+e*Math.cos(s)]}function x(t,e,s,n,o,a,h,r,i,c){const l=(u=h,Math.PI*u/180);var u;let p=[],f=0,d=0,g=0,M=0;if(c)[f,d,g,M]=c;else{[t,e]=w(t,e,-l),[s,n]=w(s,n,-l);const h=(t-s)/2,c=(e-n)/2;let u=h*h/(o*o)+c*c/(a*a);u>1&&(u=Math.sqrt(u),o*=u,a*=u);const p=o*o,k=a*a,b=p*k-p*c*c-k*h*h,y=p*c*c+k*h*h,m=(r===i?-1:1)*Math.sqrt(Math.abs(b/y));g=m*o*c/a+(t+s)/2,M=m*-a*h/o+(e+n)/2,f=Math.asin(parseFloat(((e-M)/a).toFixed(9))),d=Math.asin(parseFloat(((n-M)/a).toFixed(9))),td&&(f-=2*Math.PI),!i&&d>f&&(d-=2*Math.PI)}let k=d-f;if(Math.abs(k)>120*Math.PI/180){const t=d,e=s,r=n;d=i&&d>f?f+120*Math.PI/180*1:f+120*Math.PI/180*-1,p=x(s=g+o*Math.cos(d),n=M+a*Math.sin(d),e,r,o,a,h,0,i,[d,t,g,M])}k=d-f;const b=Math.cos(f),y=Math.sin(f),m=Math.cos(d),P=Math.sin(d),v=Math.tan(k/4),S=4/3*o*v,O=4/3*a*v,L=[t,e],T=[t+S*y,e-O*b],D=[s+S*P,n-O*m],A=[s,n];if(T[0]=2*L[0]-T[0],T[1]=2*L[1]-T[1],c)return[T,D,A].concat(p);{p=[T,D,A].concat(p);const t=[];for(let e=0;e2){const o=[];for(let e=0;e2*Math.PI&&(f=0,d=2*Math.PI);const g=2*Math.PI/i.curveStepCount,M=Math.min(g/2,(d-f)/2),k=V(M,c,l,u,p,f,d,1,i);if(!i.disableMultiStroke){const t=V(M,c,l,u,p,f,d,1.5,i);k.push(...t)}return h&&(r?k.push(...$(c,l,c+u*Math.cos(f),l+p*Math.sin(f),i),...$(c,l,c+u*Math.cos(d),l+p*Math.sin(d),i)):k.push({op:\"lineTo\",data:[c,l]},{op:\"lineTo\",data:[c+u*Math.cos(f),l+p*Math.sin(f)]})),{type:\"path\",ops:k}}function _(t,e){const s=m(y(b(t))),n=[];let o=[0,0],a=[0,0];for(const{key:t,data:h}of s)switch(t){case\"M\":a=[h[0],h[1]],o=[h[0],h[1]];break;case\"L\":n.push(...$(a[0],a[1],h[0],h[1],e)),a=[h[0],h[1]];break;case\"C\":{const[t,s,o,r,i,c]=h;n.push(...Z(t,s,o,r,i,c,a,e)),a=[i,c];break}case\"Z\":n.push(...$(a[0],a[1],o[0],o[1],e)),a=[o[0],o[1]]}return{type:\"path\",ops:n}}function I(t,e){const s=[];for(const n of t)if(n.length){const t=e.maxRandomnessOffset||0,o=n.length;if(o>2){s.push({op:\"move\",data:[n[0][0]+G(t,e),n[0][1]+G(t,e)]});for(let a=1;a500?.4:-.0016668*i+1.233334;let l=o.maxRandomnessOffset||0;l*l*100>r&&(l=i/10);const u=l/2,p=.2+.2*W(o);let f=o.bowing*o.maxRandomnessOffset*(n-e)/200,d=o.bowing*o.maxRandomnessOffset*(t-s)/200;f=G(f,o,c),d=G(d,o,c);const g=[],M=()=>G(u,o,c),k=()=>G(l,o,c),b=o.preserveVertices;return a&&(h?g.push({op:\"move\",data:[t+(b?0:M()),e+(b?0:M())]}):g.push({op:\"move\",data:[t+(b?0:G(l,o,c)),e+(b?0:G(l,o,c))]})),h?g.push({op:\"bcurveTo\",data:[f+t+(s-t)*p+M(),d+e+(n-e)*p+M(),f+t+2*(s-t)*p+M(),d+e+2*(n-e)*p+M(),s+(b?0:M()),n+(b?0:M())]}):g.push({op:\"bcurveTo\",data:[f+t+(s-t)*p+k(),d+e+(n-e)*p+k(),f+t+2*(s-t)*p+k(),d+e+2*(n-e)*p+k(),s+(b?0:k()),n+(b?0:k())]}),g}function j(t,e,s){if(!t.length)return[];const n=[];n.push([t[0][0]+G(e,s),t[0][1]+G(e,s)]),n.push([t[0][0]+G(e,s),t[0][1]+G(e,s)]);for(let o=1;o3){const a=[],h=1-s.curveTightness;o.push({op:\"move\",data:[t[1][0],t[1][1]]});for(let e=1;e+21&&o.push(s)}else o.push(s);o.push(t[e+3])}else{const n=.5,a=t[e+0],h=t[e+1],r=t[e+2],i=t[e+3],c=J(a,h,n),l=J(h,r,n),u=J(r,i,n),p=J(c,l,n),f=J(l,u,n),d=J(p,f,n);K([a,c,p,d],0,s,o),K([d,f,u,i],0,s,o)}var a,h;return o}function U(t,e){return X(t,0,t.length,e)}function X(t,e,s,n,o){const a=o||[],h=t[e],r=t[s-1];let i=0,c=1;for(let n=e+1;ni&&(i=e,c=n)}return Math.sqrt(i)>n?(X(t,e,c+1,n,a),X(t,c,s,n,a)):(a.length||a.push(h),a.push(r)),a}function Y(t,e=.15,s){const n=[],o=(t.length-1)/3;for(let s=0;s0?X(n,0,n.length,s):n}const tt=\"none\";class et{constructor(t){this.defaultOptions={maxRandomnessOffset:2,roughness:1,bowing:1,stroke:\"#000\",strokeWidth:1,curveTightness:0,curveFitting:.95,curveStepCount:9,fillStyle:\"hachure\",fillWeight:-1,hachureAngle:-41,hachureGap:-1,dashOffset:-1,dashGap:-1,zigzagOffset:-1,seed:0,disableMultiStroke:!1,disableMultiStrokeFill:!1,preserveVertices:!1,fillShapeRoughnessGain:.8},this.config=t||{},this.config.options&&(this.defaultOptions=this._o(this.config.options))}static newSeed(){return Math.floor(Math.random()*2**31)}_o(t){return t?Object.assign({},this.defaultOptions,t):this.defaultOptions}_d(t,e,s){return{shape:t,sets:e||[],options:s||this.defaultOptions}}line(t,e,s,n,o){const a=this._o(o);return this._d(\"line\",[v(t,e,s,n,a)],a)}rectangle(t,e,s,n,o){const a=this._o(o),h=[],r=O(t,e,s,n,a);if(a.fill){const o=[[t,e],[t+s,e],[t+s,e+n],[t,e+n]];\"solid\"===a.fillStyle?h.push(I([o],a)):h.push(C([o],a))}return a.stroke!==tt&&h.push(r),this._d(\"rectangle\",h,a)}ellipse(t,e,s,n,o){const a=this._o(o),h=[],r=T(s,n,a),i=D(t,e,a,r);if(a.fill)if(\"solid\"===a.fillStyle){const s=D(t,e,a,r).opset;s.type=\"fillPath\",h.push(s)}else h.push(C([i.estimatedPoints],a));return a.stroke!==tt&&h.push(i.opset),this._d(\"ellipse\",h,a)}circle(t,e,s,n){const o=this.ellipse(t,e,s,s,n);return o.shape=\"circle\",o}linearPath(t,e){const s=this._o(e);return this._d(\"linearPath\",[S(t,!1,s)],s)}arc(t,e,s,n,o,a,h=!1,r){const i=this._o(r),c=[],l=A(t,e,s,n,o,a,h,!0,i);if(h&&i.fill)if(\"solid\"===i.fillStyle){const h=Object.assign({},i);h.disableMultiStroke=!0;const r=A(t,e,s,n,o,a,!0,!1,h);r.type=\"fillPath\",c.push(r)}else c.push(function(t,e,s,n,o,a,h){const r=t,i=e;let c=Math.abs(s/2),l=Math.abs(n/2);c+=G(.01*c,h),l+=G(.01*l,h);let u=o,p=a;for(;u<0;)u+=2*Math.PI,p+=2*Math.PI;p-u>2*Math.PI&&(u=0,p=2*Math.PI);const f=(p-u)/h.curveStepCount,d=[];for(let t=u;t<=p;t+=f)d.push([r+c*Math.cos(t),i+l*Math.sin(t)]);return d.push([r+c*Math.cos(p),i+l*Math.sin(p)]),d.push([r,i]),C([d],h)}(t,e,s,n,o,a,i));return i.stroke!==tt&&c.push(l),this._d(\"arc\",c,i)}curve(t,e){const s=this._o(e),n=[],o=L(t,s);if(s.fill&&s.fill!==tt)if(\"solid\"===s.fillStyle){const e=L(t,Object.assign(Object.assign({},s),{disableMultiStroke:!0,roughness:s.roughness?s.roughness+s.fillShapeRoughnessGain:0}));n.push({type:\"fillPath\",ops:this._mergedShape(e.ops)})}else{const e=[],o=t;if(o.length){const t=\"number\"==typeof o[0][0]?[o]:o;for(const n of t)n.length<3?e.push(...n):3===n.length?e.push(...Y(H([n[0],n[0],n[1],n[2]]),10,(1+s.roughness)/2)):e.push(...Y(H(n),10,(1+s.roughness)/2))}e.length&&n.push(C([e],s))}return s.stroke!==tt&&n.push(o),this._d(\"curve\",n,s)}polygon(t,e){const s=this._o(e),n=[],o=S(t,!0,s);return s.fill&&(\"solid\"===s.fillStyle?n.push(I([t],s)):n.push(C([t],s))),s.stroke!==tt&&n.push(o),this._d(\"polygon\",n,s)}path(t,e){const s=this._o(e),n=[];if(!t)return this._d(\"path\",n,s);t=(t||\"\").replace(/\\n/g,\" \").replace(/(-\\s)/g,\"-\").replace(\"/(ss)/g\",\" \");const o=s.fill&&\"transparent\"!==s.fill&&s.fill!==tt,a=s.stroke!==tt,h=!!(s.simplification&&s.simplification<1),r=function(t,e,s){const n=m(y(b(t))),o=[];let a=[],h=[0,0],r=[];const i=()=>{r.length>=4&&a.push(...Y(r,e)),r=[]},c=()=>{i(),a.length&&(o.push(a),a=[])};for(const{key:t,data:e}of n)switch(t){case\"M\":c(),h=[e[0],e[1]],a.push(h);break;case\"L\":i(),a.push([e[0],e[1]]);break;case\"C\":if(!r.length){const t=a.length?a[a.length-1]:h;r.push([t[0],t[1]])}r.push([e[0],e[1]]),r.push([e[2],e[3]]),r.push([e[4],e[5]]);break;case\"Z\":i(),a.push([h[0],h[1]])}if(c(),!s)return o;const l=[];for(const t of o){const e=U(t,s);e.length&&l.push(e)}return l}(t,1,h?4-4*(s.simplification||1):(1+s.roughness)/2),i=_(t,s);if(o)if(\"solid\"===s.fillStyle)if(1===r.length){const e=_(t,Object.assign(Object.assign({},s),{disableMultiStroke:!0,roughness:s.roughness?s.roughness+s.fillShapeRoughnessGain:0}));n.push({type:\"fillPath\",ops:this._mergedShape(e.ops)})}else n.push(I(r,s));else n.push(C(r,s));return a&&(h?r.forEach((t=>{n.push(S(t,!1,s))})):n.push(i)),this._d(\"path\",n,s)}opsToPath(t,e){let s=\"\";for(const n of t.ops){const t=\"number\"==typeof e&&e>=0?n.data.map((t=>+t.toFixed(e))):n.data;switch(n.op){case\"move\":s+=`M${t[0]} ${t[1]} `;break;case\"bcurveTo\":s+=`C${t[0]} ${t[1]}, ${t[2]} ${t[3]}, ${t[4]} ${t[5]} `;break;case\"lineTo\":s+=`L${t[0]} ${t[1]} `}}return s.trim()}toPaths(t){const e=t.sets||[],s=t.options||this.defaultOptions,n=[];for(const t of e){let e=null;switch(t.type){case\"path\":e={d:this.opsToPath(t),stroke:s.stroke,strokeWidth:s.strokeWidth,fill:tt};break;case\"fillPath\":e={d:this.opsToPath(t),stroke:tt,strokeWidth:0,fill:s.fill||tt};break;case\"fillSketch\":e=this.fillSketch(t,s)}e&&n.push(e)}return n}fillSketch(t,e){let s=e.fillWeight;return s<0&&(s=e.strokeWidth/2),{d:this.opsToPath(t),stroke:e.fill||tt,strokeWidth:s,fill:tt}}_mergedShape(t){return t.filter(((t,e)=>0===e||\"move\"!==t.op))}}class st{constructor(t,e){this.canvas=t,this.ctx=this.canvas.getContext(\"2d\"),this.gen=new et(e)}draw(t){const e=t.sets||[],s=t.options||this.getDefaultOptions(),n=this.ctx,o=t.options.fixedDecimalPlaceDigits;for(const a of e)switch(a.type){case\"path\":n.save(),n.strokeStyle=\"none\"===s.stroke?\"transparent\":s.stroke,n.lineWidth=s.strokeWidth,s.strokeLineDash&&n.setLineDash(s.strokeLineDash),s.strokeLineDashOffset&&(n.lineDashOffset=s.strokeLineDashOffset),this._drawToContext(n,a,o),n.restore();break;case\"fillPath\":{n.save(),n.fillStyle=s.fill||\"\";const e=\"curve\"===t.shape||\"polygon\"===t.shape||\"path\"===t.shape?\"evenodd\":\"nonzero\";this._drawToContext(n,a,o,e),n.restore();break}case\"fillSketch\":this.fillSketch(n,a,s)}}fillSketch(t,e,s){let n=s.fillWeight;n<0&&(n=s.strokeWidth/2),t.save(),s.fillLineDash&&t.setLineDash(s.fillLineDash),s.fillLineDashOffset&&(t.lineDashOffset=s.fillLineDashOffset),t.strokeStyle=s.fill||\"\",t.lineWidth=n,this._drawToContext(t,e,s.fixedDecimalPlaceDigits),t.restore()}_drawToContext(t,e,s,n=\"nonzero\"){t.beginPath();for(const n of e.ops){const e=\"number\"==typeof s&&s>=0?n.data.map((t=>+t.toFixed(s))):n.data;switch(n.op){case\"move\":t.moveTo(e[0],e[1]);break;case\"bcurveTo\":t.bezierCurveTo(e[0],e[1],e[2],e[3],e[4],e[5]);break;case\"lineTo\":t.lineTo(e[0],e[1])}}\"fillPath\"===e.type?t.fill(n):t.stroke()}get generator(){return this.gen}getDefaultOptions(){return this.gen.defaultOptions}line(t,e,s,n,o){const a=this.gen.line(t,e,s,n,o);return this.draw(a),a}rectangle(t,e,s,n,o){const a=this.gen.rectangle(t,e,s,n,o);return this.draw(a),a}ellipse(t,e,s,n,o){const a=this.gen.ellipse(t,e,s,n,o);return this.draw(a),a}circle(t,e,s,n){const o=this.gen.circle(t,e,s,n);return this.draw(o),o}linearPath(t,e){const s=this.gen.linearPath(t,e);return this.draw(s),s}polygon(t,e){const s=this.gen.polygon(t,e);return this.draw(s),s}arc(t,e,s,n,o,a,h=!1,r){const i=this.gen.arc(t,e,s,n,o,a,h,r);return this.draw(i),i}curve(t,e){const s=this.gen.curve(t,e);return this.draw(s),s}path(t,e){const s=this.gen.path(t,e);return this.draw(s),s}}const nt=\"http://www.w3.org/2000/svg\";class ot{constructor(t,e){this.svg=t,this.gen=new et(e)}draw(t){const e=t.sets||[],s=t.options||this.getDefaultOptions(),n=this.svg.ownerDocument||window.document,o=n.createElementNS(nt,\"g\"),a=t.options.fixedDecimalPlaceDigits;for(const h of e){let e=null;switch(h.type){case\"path\":e=n.createElementNS(nt,\"path\"),e.setAttribute(\"d\",this.opsToPath(h,a)),e.setAttribute(\"stroke\",s.stroke),e.setAttribute(\"stroke-width\",s.strokeWidth+\"\"),e.setAttribute(\"fill\",\"none\"),s.strokeLineDash&&e.setAttribute(\"stroke-dasharray\",s.strokeLineDash.join(\" \").trim()),s.strokeLineDashOffset&&e.setAttribute(\"stroke-dashoffset\",`${s.strokeLineDashOffset}`);break;case\"fillPath\":e=n.createElementNS(nt,\"path\"),e.setAttribute(\"d\",this.opsToPath(h,a)),e.setAttribute(\"stroke\",\"none\"),e.setAttribute(\"stroke-width\",\"0\"),e.setAttribute(\"fill\",s.fill||\"\"),\"curve\"!==t.shape&&\"polygon\"!==t.shape||e.setAttribute(\"fill-rule\",\"evenodd\");break;case\"fillSketch\":e=this.fillSketch(n,h,s)}e&&o.appendChild(e)}return o}fillSketch(t,e,s){let n=s.fillWeight;n<0&&(n=s.strokeWidth/2);const o=t.createElementNS(nt,\"path\");return o.setAttribute(\"d\",this.opsToPath(e,s.fixedDecimalPlaceDigits)),o.setAttribute(\"stroke\",s.fill||\"\"),o.setAttribute(\"stroke-width\",n+\"\"),o.setAttribute(\"fill\",\"none\"),s.fillLineDash&&o.setAttribute(\"stroke-dasharray\",s.fillLineDash.join(\" \").trim()),s.fillLineDashOffset&&o.setAttribute(\"stroke-dashoffset\",`${s.fillLineDashOffset}`),o}get generator(){return this.gen}getDefaultOptions(){return this.gen.defaultOptions}opsToPath(t,e){return this.gen.opsToPath(t,e)}line(t,e,s,n,o){const a=this.gen.line(t,e,s,n,o);return this.draw(a)}rectangle(t,e,s,n,o){const a=this.gen.rectangle(t,e,s,n,o);return this.draw(a)}ellipse(t,e,s,n,o){const a=this.gen.ellipse(t,e,s,n,o);return this.draw(a)}circle(t,e,s,n){const o=this.gen.circle(t,e,s,n);return this.draw(o)}linearPath(t,e){const s=this.gen.linearPath(t,e);return this.draw(s)}polygon(t,e){const s=this.gen.polygon(t,e);return this.draw(s)}arc(t,e,s,n,o,a,h=!1,r){const i=this.gen.arc(t,e,s,n,o,a,h,r);return this.draw(i)}curve(t,e){const s=this.gen.curve(t,e);return this.draw(s)}path(t,e){const s=this.gen.path(t,e);return this.draw(s)}}var at={canvas:(t,e)=>new st(t,e),svg:(t,e)=>new ot(t,e),generator:t=>new et(t),newSeed:()=>et.newSeed()};export{at as default};\n", "import {\n getIconSVG\n} from \"./chunk-OPO4IU42.mjs\";\nimport {\n getSubGraphTitleMargins\n} from \"./chunk-3X56UNUX.mjs\";\nimport {\n createText\n} from \"./chunk-6JOS74DS.mjs\";\nimport {\n calculateTextWidth,\n decodeEntities,\n handleUndefinedAttr,\n parseFontSize\n} from \"./chunk-7DKRZKHE.mjs\";\nimport {\n __name,\n common_default,\n defaultConfig_default,\n evaluate,\n getConfig,\n getConfig2,\n hasKatex,\n log,\n renderKatex,\n sanitizeText,\n sanitizeText2\n} from \"./chunk-6DBFFHIP.mjs\";\n\n// src/rendering-util/rendering-elements/shapes/util.ts\nimport { select } from \"d3\";\nvar labelHelper = /* @__PURE__ */ __name(async (parent, node, _classes) => {\n let cssClasses;\n const useHtmlLabels = node.useHtmlLabels || evaluate(getConfig2()?.htmlLabels);\n if (!_classes) {\n cssClasses = \"node default\";\n } else {\n cssClasses = _classes;\n }\n const shapeSvg = parent.insert(\"g\").attr(\"class\", cssClasses).attr(\"id\", node.domId || node.id);\n const labelEl = shapeSvg.insert(\"g\").attr(\"class\", \"label\").attr(\"style\", handleUndefinedAttr(node.labelStyle));\n let label;\n if (node.label === void 0) {\n label = \"\";\n } else {\n label = typeof node.label === \"string\" ? node.label : node.label[0];\n }\n const text2 = await createText(labelEl, sanitizeText(decodeEntities(label), getConfig2()), {\n useHtmlLabels,\n width: node.width || getConfig2().flowchart?.wrappingWidth,\n // @ts-expect-error -- This is currently not used. Should this be `classes` instead?\n cssClasses: \"markdown-node-label\",\n style: node.labelStyle,\n addSvgBackground: !!node.icon || !!node.img\n });\n let bbox = text2.getBBox();\n const halfPadding = (node?.padding ?? 0) / 2;\n if (useHtmlLabels) {\n const div = text2.children[0];\n const dv = select(text2);\n const images = div.getElementsByTagName(\"img\");\n if (images) {\n const noImgText = label.replace(/]*>/g, \"\").trim() === \"\";\n await Promise.all(\n [...images].map(\n (img) => new Promise((res) => {\n function setupImage() {\n img.style.display = \"flex\";\n img.style.flexDirection = \"column\";\n if (noImgText) {\n const bodyFontSize = getConfig2().fontSize ? getConfig2().fontSize : window.getComputedStyle(document.body).fontSize;\n const enlargingFactor = 5;\n const [parsedBodyFontSize = defaultConfig_default.fontSize] = parseFontSize(bodyFontSize);\n const width = parsedBodyFontSize * enlargingFactor + \"px\";\n img.style.minWidth = width;\n img.style.maxWidth = width;\n } else {\n img.style.width = \"100%\";\n }\n res(img);\n }\n __name(setupImage, \"setupImage\");\n setTimeout(() => {\n if (img.complete) {\n setupImage();\n }\n });\n img.addEventListener(\"error\", setupImage);\n img.addEventListener(\"load\", setupImage);\n })\n )\n );\n }\n bbox = div.getBoundingClientRect();\n dv.attr(\"width\", bbox.width);\n dv.attr(\"height\", bbox.height);\n }\n if (useHtmlLabels) {\n labelEl.attr(\"transform\", \"translate(\" + -bbox.width / 2 + \", \" + -bbox.height / 2 + \")\");\n } else {\n labelEl.attr(\"transform\", \"translate(0, \" + -bbox.height / 2 + \")\");\n }\n if (node.centerLabel) {\n labelEl.attr(\"transform\", \"translate(\" + -bbox.width / 2 + \", \" + -bbox.height / 2 + \")\");\n }\n labelEl.insert(\"rect\", \":first-child\");\n return { shapeSvg, bbox, halfPadding, label: labelEl };\n}, \"labelHelper\");\nvar insertLabel = /* @__PURE__ */ __name(async (parent, label, options) => {\n const useHtmlLabels = options.useHtmlLabels || evaluate(getConfig2()?.flowchart?.htmlLabels);\n const labelEl = parent.insert(\"g\").attr(\"class\", \"label\").attr(\"style\", options.labelStyle || \"\");\n const text2 = await createText(labelEl, sanitizeText(decodeEntities(label), getConfig2()), {\n useHtmlLabels,\n width: options.width || getConfig2()?.flowchart?.wrappingWidth,\n style: options.labelStyle,\n addSvgBackground: !!options.icon || !!options.img\n });\n let bbox = text2.getBBox();\n const halfPadding = options.padding / 2;\n if (evaluate(getConfig2()?.flowchart?.htmlLabels)) {\n const div = text2.children[0];\n const dv = select(text2);\n bbox = div.getBoundingClientRect();\n dv.attr(\"width\", bbox.width);\n dv.attr(\"height\", bbox.height);\n }\n if (useHtmlLabels) {\n labelEl.attr(\"transform\", \"translate(\" + -bbox.width / 2 + \", \" + -bbox.height / 2 + \")\");\n } else {\n labelEl.attr(\"transform\", \"translate(0, \" + -bbox.height / 2 + \")\");\n }\n if (options.centerLabel) {\n labelEl.attr(\"transform\", \"translate(\" + -bbox.width / 2 + \", \" + -bbox.height / 2 + \")\");\n }\n labelEl.insert(\"rect\", \":first-child\");\n return { shapeSvg: parent, bbox, halfPadding, label: labelEl };\n}, \"insertLabel\");\nvar updateNodeBounds = /* @__PURE__ */ __name((node, element) => {\n const bbox = element.node().getBBox();\n node.width = bbox.width;\n node.height = bbox.height;\n}, \"updateNodeBounds\");\nvar getNodeClasses = /* @__PURE__ */ __name((node, extra) => (node.look === \"handDrawn\" ? \"rough-node\" : \"node\") + \" \" + node.cssClasses + \" \" + (extra || \"\"), \"getNodeClasses\");\nfunction createPathFromPoints(points) {\n const pointStrings = points.map((p, i) => `${i === 0 ? \"M\" : \"L\"}${p.x},${p.y}`);\n pointStrings.push(\"Z\");\n return pointStrings.join(\" \");\n}\n__name(createPathFromPoints, \"createPathFromPoints\");\nfunction generateFullSineWavePoints(x1, y1, x2, y2, amplitude, numCycles) {\n const points = [];\n const steps = 50;\n const deltaX = x2 - x1;\n const deltaY = y2 - y1;\n const cycleLength = deltaX / numCycles;\n const frequency = 2 * Math.PI / cycleLength;\n const midY = y1 + deltaY / 2;\n for (let i = 0; i <= steps; i++) {\n const t = i / steps;\n const x = x1 + t * deltaX;\n const y = midY + amplitude * Math.sin(frequency * (x - x1));\n points.push({ x, y });\n }\n return points;\n}\n__name(generateFullSineWavePoints, \"generateFullSineWavePoints\");\nfunction generateCirclePoints(centerX, centerY, radius, numPoints, startAngle, endAngle) {\n const points = [];\n const startAngleRad = startAngle * Math.PI / 180;\n const endAngleRad = endAngle * Math.PI / 180;\n const angleRange = endAngleRad - startAngleRad;\n const angleStep = angleRange / (numPoints - 1);\n for (let i = 0; i < numPoints; i++) {\n const angle = startAngleRad + i * angleStep;\n const x = centerX + radius * Math.cos(angle);\n const y = centerY + radius * Math.sin(angle);\n points.push({ x: -x, y: -y });\n }\n return points;\n}\n__name(generateCirclePoints, \"generateCirclePoints\");\n\n// src/rendering-util/rendering-elements/clusters.js\nimport { select as select3 } from \"d3\";\nimport rough from \"roughjs\";\n\n// src/rendering-util/rendering-elements/intersect/intersect-rect.js\nvar intersectRect = /* @__PURE__ */ __name((node, point) => {\n var x = node.x;\n var y = node.y;\n var dx = point.x - x;\n var dy = point.y - y;\n var w = node.width / 2;\n var h = node.height / 2;\n var sx, sy;\n if (Math.abs(dy) * w > Math.abs(dx) * h) {\n if (dy < 0) {\n h = -h;\n }\n sx = dy === 0 ? 0 : h * dx / dy;\n sy = h;\n } else {\n if (dx < 0) {\n w = -w;\n }\n sx = w;\n sy = dx === 0 ? 0 : w * dy / dx;\n }\n return { x: x + sx, y: y + sy };\n}, \"intersectRect\");\nvar intersect_rect_default = intersectRect;\n\n// src/rendering-util/rendering-elements/createLabel.js\nimport { select as select2 } from \"d3\";\nfunction applyStyle(dom, styleFn) {\n if (styleFn) {\n dom.attr(\"style\", styleFn);\n }\n}\n__name(applyStyle, \"applyStyle\");\nasync function addHtmlLabel(node) {\n const fo = select2(document.createElementNS(\"http://www.w3.org/2000/svg\", \"foreignObject\"));\n const div = fo.append(\"xhtml:div\");\n let label = node.label;\n if (node.label && hasKatex(node.label)) {\n label = await renderKatex(node.label.replace(common_default.lineBreakRegex, \"\\n\"), getConfig2());\n }\n const labelClass = node.isNode ? \"nodeLabel\" : \"edgeLabel\";\n div.html(\n '\" + label + \"\"\n );\n applyStyle(div, node.labelStyle);\n div.style(\"display\", \"inline-block\");\n div.style(\"padding-right\", \"1px\");\n div.style(\"white-space\", \"nowrap\");\n div.attr(\"xmlns\", \"http://www.w3.org/1999/xhtml\");\n return fo.node();\n}\n__name(addHtmlLabel, \"addHtmlLabel\");\nvar createLabel = /* @__PURE__ */ __name(async (_vertexText, style, isTitle, isNode) => {\n let vertexText = _vertexText || \"\";\n if (typeof vertexText === \"object\") {\n vertexText = vertexText[0];\n }\n if (evaluate(getConfig2().flowchart.htmlLabels)) {\n vertexText = vertexText.replace(/\\\\n|\\n/g, \"
    \");\n log.info(\"vertexText\" + vertexText);\n const node = {\n isNode,\n label: decodeEntities(vertexText).replace(\n /fa[blrs]?:fa-[\\w-]+/g,\n (s) => ``\n ),\n labelStyle: style ? style.replace(\"fill:\", \"color:\") : style\n };\n let vertexNode = await addHtmlLabel(node);\n return vertexNode;\n } else {\n const svgLabel = document.createElementNS(\"http://www.w3.org/2000/svg\", \"text\");\n svgLabel.setAttribute(\"style\", style.replace(\"color:\", \"fill:\"));\n let rows = [];\n if (typeof vertexText === \"string\") {\n rows = vertexText.split(/\\\\n|\\n|/gi);\n } else if (Array.isArray(vertexText)) {\n rows = vertexText;\n } else {\n rows = [];\n }\n for (const row of rows) {\n const tspan = document.createElementNS(\"http://www.w3.org/2000/svg\", \"tspan\");\n tspan.setAttributeNS(\"http://www.w3.org/XML/1998/namespace\", \"xml:space\", \"preserve\");\n tspan.setAttribute(\"dy\", \"1em\");\n tspan.setAttribute(\"x\", \"0\");\n if (isTitle) {\n tspan.setAttribute(\"class\", \"title-row\");\n } else {\n tspan.setAttribute(\"class\", \"row\");\n }\n tspan.textContent = row.trim();\n svgLabel.appendChild(tspan);\n }\n return svgLabel;\n }\n}, \"createLabel\");\nvar createLabel_default = createLabel;\n\n// src/rendering-util/rendering-elements/shapes/roundedRectPath.ts\nvar createRoundedRectPathD = /* @__PURE__ */ __name((x, y, totalWidth, totalHeight, radius) => [\n \"M\",\n x + radius,\n y,\n // Move to the first point\n \"H\",\n x + totalWidth - radius,\n // Draw horizontal line to the beginning of the right corner\n \"A\",\n radius,\n radius,\n 0,\n 0,\n 1,\n x + totalWidth,\n y + radius,\n // Draw arc to the right top corner\n \"V\",\n y + totalHeight - radius,\n // Draw vertical line down to the beginning of the right bottom corner\n \"A\",\n radius,\n radius,\n 0,\n 0,\n 1,\n x + totalWidth - radius,\n y + totalHeight,\n // Draw arc to the right bottom corner\n \"H\",\n x + radius,\n // Draw horizontal line to the beginning of the left bottom corner\n \"A\",\n radius,\n radius,\n 0,\n 0,\n 1,\n x,\n y + totalHeight - radius,\n // Draw arc to the left bottom corner\n \"V\",\n y + radius,\n // Draw vertical line up to the beginning of the left top corner\n \"A\",\n radius,\n radius,\n 0,\n 0,\n 1,\n x + radius,\n y,\n // Draw arc to the left top corner\n \"Z\"\n // Close the path\n].join(\" \"), \"createRoundedRectPathD\");\n\n// src/rendering-util/rendering-elements/shapes/handDrawnShapeStyles.ts\nvar solidStateFill = /* @__PURE__ */ __name((color) => {\n const { handDrawnSeed } = getConfig2();\n return {\n fill: color,\n hachureAngle: 120,\n // angle of hachure,\n hachureGap: 4,\n fillWeight: 2,\n roughness: 0.7,\n stroke: color,\n seed: handDrawnSeed\n };\n}, \"solidStateFill\");\nvar compileStyles = /* @__PURE__ */ __name((node) => {\n const stylesMap = styles2Map([...node.cssCompiledStyles || [], ...node.cssStyles || []]);\n return { stylesMap, stylesArray: [...stylesMap] };\n}, \"compileStyles\");\nvar styles2Map = /* @__PURE__ */ __name((styles) => {\n const styleMap = /* @__PURE__ */ new Map();\n styles.forEach((style) => {\n const [key, value] = style.split(\":\");\n styleMap.set(key.trim(), value?.trim());\n });\n return styleMap;\n}, \"styles2Map\");\nvar styles2String = /* @__PURE__ */ __name((node) => {\n const { stylesArray } = compileStyles(node);\n const labelStyles = [];\n const nodeStyles = [];\n const borderStyles = [];\n const backgroundStyles = [];\n stylesArray.forEach((style) => {\n const key = style[0];\n if (key === \"color\" || key === \"font-size\" || key === \"font-family\" || key === \"font-weight\" || key === \"font-style\" || key === \"text-decoration\" || key === \"text-align\" || key === \"text-transform\" || key === \"line-height\" || key === \"letter-spacing\" || key === \"word-spacing\" || key === \"text-shadow\" || key === \"text-overflow\" || key === \"white-space\" || key === \"word-wrap\" || key === \"word-break\" || key === \"overflow-wrap\" || key === \"hyphens\") {\n labelStyles.push(style.join(\":\") + \" !important\");\n } else {\n nodeStyles.push(style.join(\":\") + \" !important\");\n if (key.includes(\"stroke\")) {\n borderStyles.push(style.join(\":\") + \" !important\");\n }\n if (key === \"fill\") {\n backgroundStyles.push(style.join(\":\") + \" !important\");\n }\n }\n });\n return {\n labelStyles: labelStyles.join(\";\"),\n nodeStyles: nodeStyles.join(\";\"),\n stylesArray,\n borderStyles,\n backgroundStyles\n };\n}, \"styles2String\");\nvar userNodeOverrides = /* @__PURE__ */ __name((node, options) => {\n const { themeVariables, handDrawnSeed } = getConfig2();\n const { nodeBorder, mainBkg } = themeVariables;\n const { stylesMap } = compileStyles(node);\n const result = Object.assign(\n {\n roughness: 0.7,\n fill: stylesMap.get(\"fill\") || mainBkg,\n fillStyle: \"hachure\",\n // solid fill\n fillWeight: 4,\n hachureGap: 5.2,\n stroke: stylesMap.get(\"stroke\") || nodeBorder,\n seed: handDrawnSeed,\n strokeWidth: stylesMap.get(\"stroke-width\")?.replace(\"px\", \"\") || 1.3,\n fillLineDash: [0, 0]\n },\n options\n );\n return result;\n}, \"userNodeOverrides\");\n\n// src/rendering-util/rendering-elements/clusters.js\nvar rect = /* @__PURE__ */ __name(async (parent, node) => {\n log.info(\"Creating subgraph rect for \", node.id, node);\n const siteConfig = getConfig2();\n const { themeVariables, handDrawnSeed } = siteConfig;\n const { clusterBkg, clusterBorder } = themeVariables;\n const { labelStyles, nodeStyles, borderStyles, backgroundStyles } = styles2String(node);\n const shapeSvg = parent.insert(\"g\").attr(\"class\", \"cluster \" + node.cssClasses).attr(\"id\", node.id).attr(\"data-look\", node.look);\n const useHtmlLabels = evaluate(siteConfig.flowchart.htmlLabels);\n const labelEl = shapeSvg.insert(\"g\").attr(\"class\", \"cluster-label \");\n const text2 = await createText(labelEl, node.label, {\n style: node.labelStyle,\n useHtmlLabels,\n isNode: true\n });\n let bbox = text2.getBBox();\n if (evaluate(siteConfig.flowchart.htmlLabels)) {\n const div = text2.children[0];\n const dv = select3(text2);\n bbox = div.getBoundingClientRect();\n dv.attr(\"width\", bbox.width);\n dv.attr(\"height\", bbox.height);\n }\n const width = node.width <= bbox.width + node.padding ? bbox.width + node.padding : node.width;\n if (node.width <= bbox.width + node.padding) {\n node.diff = (width - node.width) / 2 - node.padding;\n } else {\n node.diff = -node.padding;\n }\n const height = node.height;\n const x = node.x - width / 2;\n const y = node.y - height / 2;\n log.trace(\"Data \", node, JSON.stringify(node));\n let rect2;\n if (node.look === \"handDrawn\") {\n const rc = rough.svg(shapeSvg);\n const options = userNodeOverrides(node, {\n roughness: 0.7,\n fill: clusterBkg,\n // fill: 'red',\n stroke: clusterBorder,\n fillWeight: 3,\n seed: handDrawnSeed\n });\n const roughNode = rc.path(createRoundedRectPathD(x, y, width, height, 0), options);\n rect2 = shapeSvg.insert(() => {\n log.debug(\"Rough node insert CXC\", roughNode);\n return roughNode;\n }, \":first-child\");\n rect2.select(\"path:nth-child(2)\").attr(\"style\", borderStyles.join(\";\"));\n rect2.select(\"path\").attr(\"style\", backgroundStyles.join(\";\").replace(\"fill\", \"stroke\"));\n } else {\n rect2 = shapeSvg.insert(\"rect\", \":first-child\");\n rect2.attr(\"style\", nodeStyles).attr(\"rx\", node.rx).attr(\"ry\", node.ry).attr(\"x\", x).attr(\"y\", y).attr(\"width\", width).attr(\"height\", height);\n }\n const { subGraphTitleTopMargin } = getSubGraphTitleMargins(siteConfig);\n labelEl.attr(\n \"transform\",\n // This puts the label on top of the box instead of inside it\n `translate(${node.x - bbox.width / 2}, ${node.y - node.height / 2 + subGraphTitleTopMargin})`\n );\n if (labelStyles) {\n const span = labelEl.select(\"span\");\n if (span) {\n span.attr(\"style\", labelStyles);\n }\n }\n const rectBox = rect2.node().getBBox();\n node.offsetX = 0;\n node.width = rectBox.width;\n node.height = rectBox.height;\n node.offsetY = bbox.height - node.padding / 2;\n node.intersect = function(point) {\n return intersect_rect_default(node, point);\n };\n return { cluster: shapeSvg, labelBBox: bbox };\n}, \"rect\");\nvar noteGroup = /* @__PURE__ */ __name((parent, node) => {\n const shapeSvg = parent.insert(\"g\").attr(\"class\", \"note-cluster\").attr(\"id\", node.id);\n const rect2 = shapeSvg.insert(\"rect\", \":first-child\");\n const padding = 0 * node.padding;\n const halfPadding = padding / 2;\n rect2.attr(\"rx\", node.rx).attr(\"ry\", node.ry).attr(\"x\", node.x - node.width / 2 - halfPadding).attr(\"y\", node.y - node.height / 2 - halfPadding).attr(\"width\", node.width + padding).attr(\"height\", node.height + padding).attr(\"fill\", \"none\");\n const rectBox = rect2.node().getBBox();\n node.width = rectBox.width;\n node.height = rectBox.height;\n node.intersect = function(point) {\n return intersect_rect_default(node, point);\n };\n return { cluster: shapeSvg, labelBBox: { width: 0, height: 0 } };\n}, \"noteGroup\");\nvar roundedWithTitle = /* @__PURE__ */ __name(async (parent, node) => {\n const siteConfig = getConfig2();\n const { themeVariables, handDrawnSeed } = siteConfig;\n const { altBackground, compositeBackground, compositeTitleBackground, nodeBorder } = themeVariables;\n const shapeSvg = parent.insert(\"g\").attr(\"class\", node.cssClasses).attr(\"id\", node.id).attr(\"data-id\", node.id).attr(\"data-look\", node.look);\n const outerRectG = shapeSvg.insert(\"g\", \":first-child\");\n const label = shapeSvg.insert(\"g\").attr(\"class\", \"cluster-label\");\n let innerRect = shapeSvg.append(\"rect\");\n const text2 = label.node().appendChild(await createLabel_default(node.label, node.labelStyle, void 0, true));\n let bbox = text2.getBBox();\n if (evaluate(siteConfig.flowchart.htmlLabels)) {\n const div = text2.children[0];\n const dv = select3(text2);\n bbox = div.getBoundingClientRect();\n dv.attr(\"width\", bbox.width);\n dv.attr(\"height\", bbox.height);\n }\n const padding = 0 * node.padding;\n const halfPadding = padding / 2;\n const width = (node.width <= bbox.width + node.padding ? bbox.width + node.padding : node.width) + padding;\n if (node.width <= bbox.width + node.padding) {\n node.diff = (width - node.width) / 2 - node.padding;\n } else {\n node.diff = -node.padding;\n }\n const height = node.height + padding;\n const innerHeight = node.height + padding - bbox.height - 6;\n const x = node.x - width / 2;\n const y = node.y - height / 2;\n node.width = width;\n const innerY = node.y - node.height / 2 - halfPadding + bbox.height + 2;\n let rect2;\n if (node.look === \"handDrawn\") {\n const isAlt = node.cssClasses.includes(\"statediagram-cluster-alt\");\n const rc = rough.svg(shapeSvg);\n const roughOuterNode = node.rx || node.ry ? rc.path(createRoundedRectPathD(x, y, width, height, 10), {\n roughness: 0.7,\n fill: compositeTitleBackground,\n fillStyle: \"solid\",\n stroke: nodeBorder,\n seed: handDrawnSeed\n }) : rc.rectangle(x, y, width, height, { seed: handDrawnSeed });\n rect2 = shapeSvg.insert(() => roughOuterNode, \":first-child\");\n const roughInnerNode = rc.rectangle(x, innerY, width, innerHeight, {\n fill: isAlt ? altBackground : compositeBackground,\n fillStyle: isAlt ? \"hachure\" : \"solid\",\n stroke: nodeBorder,\n seed: handDrawnSeed\n });\n rect2 = shapeSvg.insert(() => roughOuterNode, \":first-child\");\n innerRect = shapeSvg.insert(() => roughInnerNode);\n } else {\n rect2 = outerRectG.insert(\"rect\", \":first-child\");\n const outerRectClass = \"outer\";\n rect2.attr(\"class\", outerRectClass).attr(\"x\", x).attr(\"y\", y).attr(\"width\", width).attr(\"height\", height).attr(\"data-look\", node.look);\n innerRect.attr(\"class\", \"inner\").attr(\"x\", x).attr(\"y\", innerY).attr(\"width\", width).attr(\"height\", innerHeight);\n }\n label.attr(\n \"transform\",\n `translate(${node.x - bbox.width / 2}, ${y + 1 - (evaluate(siteConfig.flowchart.htmlLabels) ? 0 : 3)})`\n );\n const rectBox = rect2.node().getBBox();\n node.height = rectBox.height;\n node.offsetX = 0;\n node.offsetY = bbox.height - node.padding / 2;\n node.labelBBox = bbox;\n node.intersect = function(point) {\n return intersect_rect_default(node, point);\n };\n return { cluster: shapeSvg, labelBBox: bbox };\n}, \"roundedWithTitle\");\nvar kanbanSection = /* @__PURE__ */ __name(async (parent, node) => {\n log.info(\"Creating subgraph rect for \", node.id, node);\n const siteConfig = getConfig2();\n const { themeVariables, handDrawnSeed } = siteConfig;\n const { clusterBkg, clusterBorder } = themeVariables;\n const { labelStyles, nodeStyles, borderStyles, backgroundStyles } = styles2String(node);\n const shapeSvg = parent.insert(\"g\").attr(\"class\", \"cluster \" + node.cssClasses).attr(\"id\", node.id).attr(\"data-look\", node.look);\n const useHtmlLabels = evaluate(siteConfig.flowchart.htmlLabels);\n const labelEl = shapeSvg.insert(\"g\").attr(\"class\", \"cluster-label \");\n const text2 = await createText(labelEl, node.label, {\n style: node.labelStyle,\n useHtmlLabels,\n isNode: true,\n width: node.width\n });\n let bbox = text2.getBBox();\n if (evaluate(siteConfig.flowchart.htmlLabels)) {\n const div = text2.children[0];\n const dv = select3(text2);\n bbox = div.getBoundingClientRect();\n dv.attr(\"width\", bbox.width);\n dv.attr(\"height\", bbox.height);\n }\n const width = node.width <= bbox.width + node.padding ? bbox.width + node.padding : node.width;\n if (node.width <= bbox.width + node.padding) {\n node.diff = (width - node.width) / 2 - node.padding;\n } else {\n node.diff = -node.padding;\n }\n const height = node.height;\n const x = node.x - width / 2;\n const y = node.y - height / 2;\n log.trace(\"Data \", node, JSON.stringify(node));\n let rect2;\n if (node.look === \"handDrawn\") {\n const rc = rough.svg(shapeSvg);\n const options = userNodeOverrides(node, {\n roughness: 0.7,\n fill: clusterBkg,\n // fill: 'red',\n stroke: clusterBorder,\n fillWeight: 4,\n seed: handDrawnSeed\n });\n const roughNode = rc.path(createRoundedRectPathD(x, y, width, height, node.rx), options);\n rect2 = shapeSvg.insert(() => {\n log.debug(\"Rough node insert CXC\", roughNode);\n return roughNode;\n }, \":first-child\");\n rect2.select(\"path:nth-child(2)\").attr(\"style\", borderStyles.join(\";\"));\n rect2.select(\"path\").attr(\"style\", backgroundStyles.join(\";\").replace(\"fill\", \"stroke\"));\n } else {\n rect2 = shapeSvg.insert(\"rect\", \":first-child\");\n rect2.attr(\"style\", nodeStyles).attr(\"rx\", node.rx).attr(\"ry\", node.ry).attr(\"x\", x).attr(\"y\", y).attr(\"width\", width).attr(\"height\", height);\n }\n const { subGraphTitleTopMargin } = getSubGraphTitleMargins(siteConfig);\n labelEl.attr(\n \"transform\",\n // This puts the label on top of the box instead of inside it\n `translate(${node.x - bbox.width / 2}, ${node.y - node.height / 2 + subGraphTitleTopMargin})`\n );\n if (labelStyles) {\n const span = labelEl.select(\"span\");\n if (span) {\n span.attr(\"style\", labelStyles);\n }\n }\n const rectBox = rect2.node().getBBox();\n node.offsetX = 0;\n node.width = rectBox.width;\n node.height = rectBox.height;\n node.offsetY = bbox.height - node.padding / 2;\n node.intersect = function(point) {\n return intersect_rect_default(node, point);\n };\n return { cluster: shapeSvg, labelBBox: bbox };\n}, \"kanbanSection\");\nvar divider = /* @__PURE__ */ __name((parent, node) => {\n const siteConfig = getConfig2();\n const { themeVariables, handDrawnSeed } = siteConfig;\n const { nodeBorder } = themeVariables;\n const shapeSvg = parent.insert(\"g\").attr(\"class\", node.cssClasses).attr(\"id\", node.id).attr(\"data-look\", node.look);\n const outerRectG = shapeSvg.insert(\"g\", \":first-child\");\n const padding = 0 * node.padding;\n const width = node.width + padding;\n node.diff = -node.padding;\n const height = node.height + padding;\n const x = node.x - width / 2;\n const y = node.y - height / 2;\n node.width = width;\n let rect2;\n if (node.look === \"handDrawn\") {\n const rc = rough.svg(shapeSvg);\n const roughOuterNode = rc.rectangle(x, y, width, height, {\n fill: \"lightgrey\",\n roughness: 0.5,\n strokeLineDash: [5],\n stroke: nodeBorder,\n seed: handDrawnSeed\n });\n rect2 = shapeSvg.insert(() => roughOuterNode, \":first-child\");\n } else {\n rect2 = outerRectG.insert(\"rect\", \":first-child\");\n const outerRectClass = \"divider\";\n rect2.attr(\"class\", outerRectClass).attr(\"x\", x).attr(\"y\", y).attr(\"width\", width).attr(\"height\", height).attr(\"data-look\", node.look);\n }\n const rectBox = rect2.node().getBBox();\n node.height = rectBox.height;\n node.offsetX = 0;\n node.offsetY = 0;\n node.intersect = function(point) {\n return intersect_rect_default(node, point);\n };\n return { cluster: shapeSvg, labelBBox: {} };\n}, \"divider\");\nvar squareRect = rect;\nvar shapes = {\n rect,\n squareRect,\n roundedWithTitle,\n noteGroup,\n divider,\n kanbanSection\n};\nvar clusterElems = /* @__PURE__ */ new Map();\nvar insertCluster = /* @__PURE__ */ __name(async (elem, node) => {\n const shape = node.shape || \"rect\";\n const cluster = await shapes[shape](elem, node);\n clusterElems.set(node.id, cluster);\n return cluster;\n}, \"insertCluster\");\nvar clear = /* @__PURE__ */ __name(() => {\n clusterElems = /* @__PURE__ */ new Map();\n}, \"clear\");\n\n// src/rendering-util/rendering-elements/intersect/intersect-node.js\nfunction intersectNode(node, point) {\n return node.intersect(point);\n}\n__name(intersectNode, \"intersectNode\");\nvar intersect_node_default = intersectNode;\n\n// src/rendering-util/rendering-elements/intersect/intersect-ellipse.js\nfunction intersectEllipse(node, rx, ry, point) {\n var cx = node.x;\n var cy = node.y;\n var px = cx - point.x;\n var py = cy - point.y;\n var det = Math.sqrt(rx * rx * py * py + ry * ry * px * px);\n var dx = Math.abs(rx * ry * px / det);\n if (point.x < cx) {\n dx = -dx;\n }\n var dy = Math.abs(rx * ry * py / det);\n if (point.y < cy) {\n dy = -dy;\n }\n return { x: cx + dx, y: cy + dy };\n}\n__name(intersectEllipse, \"intersectEllipse\");\nvar intersect_ellipse_default = intersectEllipse;\n\n// src/rendering-util/rendering-elements/intersect/intersect-circle.js\nfunction intersectCircle(node, rx, point) {\n return intersect_ellipse_default(node, rx, rx, point);\n}\n__name(intersectCircle, \"intersectCircle\");\nvar intersect_circle_default = intersectCircle;\n\n// src/rendering-util/rendering-elements/intersect/intersect-line.js\nfunction intersectLine(p1, p2, q1, q2) {\n var a1, a2, b1, b2, c1, c2;\n var r1, r2, r3, r4;\n var denom, offset, num;\n var x, y;\n a1 = p2.y - p1.y;\n b1 = p1.x - p2.x;\n c1 = p2.x * p1.y - p1.x * p2.y;\n r3 = a1 * q1.x + b1 * q1.y + c1;\n r4 = a1 * q2.x + b1 * q2.y + c1;\n if (r3 !== 0 && r4 !== 0 && sameSign(r3, r4)) {\n return;\n }\n a2 = q2.y - q1.y;\n b2 = q1.x - q2.x;\n c2 = q2.x * q1.y - q1.x * q2.y;\n r1 = a2 * p1.x + b2 * p1.y + c2;\n r2 = a2 * p2.x + b2 * p2.y + c2;\n if (r1 !== 0 && r2 !== 0 && sameSign(r1, r2)) {\n return;\n }\n denom = a1 * b2 - a2 * b1;\n if (denom === 0) {\n return;\n }\n offset = Math.abs(denom / 2);\n num = b1 * c2 - b2 * c1;\n x = num < 0 ? (num - offset) / denom : (num + offset) / denom;\n num = a2 * c1 - a1 * c2;\n y = num < 0 ? (num - offset) / denom : (num + offset) / denom;\n return { x, y };\n}\n__name(intersectLine, \"intersectLine\");\nfunction sameSign(r1, r2) {\n return r1 * r2 > 0;\n}\n__name(sameSign, \"sameSign\");\nvar intersect_line_default = intersectLine;\n\n// src/rendering-util/rendering-elements/intersect/intersect-polygon.js\nfunction intersectPolygon(node, polyPoints, point) {\n let x1 = node.x;\n let y1 = node.y;\n let intersections = [];\n let minX = Number.POSITIVE_INFINITY;\n let minY = Number.POSITIVE_INFINITY;\n if (typeof polyPoints.forEach === \"function\") {\n polyPoints.forEach(function(entry) {\n minX = Math.min(minX, entry.x);\n minY = Math.min(minY, entry.y);\n });\n } else {\n minX = Math.min(minX, polyPoints.x);\n minY = Math.min(minY, polyPoints.y);\n }\n let left = x1 - node.width / 2 - minX;\n let top = y1 - node.height / 2 - minY;\n for (let i = 0; i < polyPoints.length; i++) {\n let p1 = polyPoints[i];\n let p2 = polyPoints[i < polyPoints.length - 1 ? i + 1 : 0];\n let intersect = intersect_line_default(\n node,\n point,\n { x: left + p1.x, y: top + p1.y },\n { x: left + p2.x, y: top + p2.y }\n );\n if (intersect) {\n intersections.push(intersect);\n }\n }\n if (!intersections.length) {\n return node;\n }\n if (intersections.length > 1) {\n intersections.sort(function(p, q) {\n let pdx = p.x - point.x;\n let pdy = p.y - point.y;\n let distp = Math.sqrt(pdx * pdx + pdy * pdy);\n let qdx = q.x - point.x;\n let qdy = q.y - point.y;\n let distq = Math.sqrt(qdx * qdx + qdy * qdy);\n return distp < distq ? -1 : distp === distq ? 0 : 1;\n });\n }\n return intersections[0];\n}\n__name(intersectPolygon, \"intersectPolygon\");\nvar intersect_polygon_default = intersectPolygon;\n\n// src/rendering-util/rendering-elements/intersect/index.js\nvar intersect_default = {\n node: intersect_node_default,\n circle: intersect_circle_default,\n ellipse: intersect_ellipse_default,\n polygon: intersect_polygon_default,\n rect: intersect_rect_default\n};\n\n// src/rendering-util/rendering-elements/shapes/anchor.ts\nimport rough2 from \"roughjs\";\nfunction anchor(parent, node) {\n const { labelStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const classes = getNodeClasses(node);\n let cssClasses = classes;\n if (!classes) {\n cssClasses = \"anchor\";\n }\n const shapeSvg = parent.insert(\"g\").attr(\"class\", cssClasses).attr(\"id\", node.domId || node.id);\n const radius = 1;\n const { cssStyles } = node;\n const rc = rough2.svg(shapeSvg);\n const options = userNodeOverrides(node, { fill: \"black\", stroke: \"none\", fillStyle: \"solid\" });\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n }\n const roughNode = rc.circle(0, 0, radius * 2, options);\n const circleElem = shapeSvg.insert(() => roughNode, \":first-child\");\n circleElem.attr(\"class\", \"anchor\").attr(\"style\", handleUndefinedAttr(cssStyles));\n updateNodeBounds(node, circleElem);\n node.intersect = function(point) {\n log.info(\"Circle intersect\", node, radius, point);\n return intersect_default.circle(node, radius, point);\n };\n return shapeSvg;\n}\n__name(anchor, \"anchor\");\n\n// src/rendering-util/rendering-elements/shapes/bowTieRect.ts\nimport rough3 from \"roughjs\";\nfunction generateArcPoints(x1, y1, x2, y2, rx, ry, clockwise) {\n const numPoints = 20;\n const midX = (x1 + x2) / 2;\n const midY = (y1 + y2) / 2;\n const angle = Math.atan2(y2 - y1, x2 - x1);\n const dx = (x2 - x1) / 2;\n const dy = (y2 - y1) / 2;\n const transformedX = dx / rx;\n const transformedY = dy / ry;\n const distance = Math.sqrt(transformedX ** 2 + transformedY ** 2);\n if (distance > 1) {\n throw new Error(\"The given radii are too small to create an arc between the points.\");\n }\n const scaledCenterDistance = Math.sqrt(1 - distance ** 2);\n const centerX = midX + scaledCenterDistance * ry * Math.sin(angle) * (clockwise ? -1 : 1);\n const centerY = midY - scaledCenterDistance * rx * Math.cos(angle) * (clockwise ? -1 : 1);\n const startAngle = Math.atan2((y1 - centerY) / ry, (x1 - centerX) / rx);\n const endAngle = Math.atan2((y2 - centerY) / ry, (x2 - centerX) / rx);\n let angleRange = endAngle - startAngle;\n if (clockwise && angleRange < 0) {\n angleRange += 2 * Math.PI;\n }\n if (!clockwise && angleRange > 0) {\n angleRange -= 2 * Math.PI;\n }\n const points = [];\n for (let i = 0; i < numPoints; i++) {\n const t = i / (numPoints - 1);\n const angle2 = startAngle + t * angleRange;\n const x = centerX + rx * Math.cos(angle2);\n const y = centerY + ry * Math.sin(angle2);\n points.push({ x, y });\n }\n return points;\n}\n__name(generateArcPoints, \"generateArcPoints\");\nasync function bowTieRect(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox } = await labelHelper(parent, node, getNodeClasses(node));\n const w = bbox.width + node.padding + 20;\n const h = bbox.height + node.padding;\n const ry = h / 2;\n const rx = ry / (2.5 + h / 50);\n const { cssStyles } = node;\n const points = [\n { x: w / 2, y: -h / 2 },\n { x: -w / 2, y: -h / 2 },\n ...generateArcPoints(-w / 2, -h / 2, -w / 2, h / 2, rx, ry, false),\n { x: w / 2, y: h / 2 },\n ...generateArcPoints(w / 2, h / 2, w / 2, -h / 2, rx, ry, true)\n ];\n const rc = rough3.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const bowTieRectPath = createPathFromPoints(points);\n const bowTieRectShapePath = rc.path(bowTieRectPath, options);\n const bowTieRectShape = shapeSvg.insert(() => bowTieRectShapePath, \":first-child\");\n bowTieRectShape.attr(\"class\", \"basic label-container\");\n if (cssStyles && node.look !== \"handDrawn\") {\n bowTieRectShape.selectAll(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n bowTieRectShape.selectAll(\"path\").attr(\"style\", nodeStyles);\n }\n bowTieRectShape.attr(\"transform\", `translate(${rx / 2}, 0)`);\n updateNodeBounds(node, bowTieRectShape);\n node.intersect = function(point) {\n const pos = intersect_default.polygon(node, points, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(bowTieRect, \"bowTieRect\");\n\n// src/rendering-util/rendering-elements/shapes/card.ts\nimport rough4 from \"roughjs\";\n\n// src/rendering-util/rendering-elements/shapes/insertPolygonShape.ts\nfunction insertPolygonShape(parent, w, h, points) {\n return parent.insert(\"polygon\", \":first-child\").attr(\n \"points\",\n points.map(function(d) {\n return d.x + \",\" + d.y;\n }).join(\" \")\n ).attr(\"class\", \"label-container\").attr(\"transform\", \"translate(\" + -w / 2 + \",\" + h / 2 + \")\");\n}\n__name(insertPolygonShape, \"insertPolygonShape\");\n\n// src/rendering-util/rendering-elements/shapes/card.ts\nasync function card(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox } = await labelHelper(parent, node, getNodeClasses(node));\n const h = bbox.height + node.padding;\n const padding = 12;\n const w = bbox.width + node.padding + padding;\n const left = 0;\n const right = w;\n const top = -h;\n const bottom = 0;\n const points = [\n { x: left + padding, y: top },\n { x: right, y: top },\n { x: right, y: bottom },\n { x: left, y: bottom },\n { x: left, y: top + padding },\n { x: left + padding, y: top }\n ];\n let polygon;\n const { cssStyles } = node;\n if (node.look === \"handDrawn\") {\n const rc = rough4.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n const pathData = createPathFromPoints(points);\n const roughNode = rc.path(pathData, options);\n polygon = shapeSvg.insert(() => roughNode, \":first-child\").attr(\"transform\", `translate(${-w / 2}, ${h / 2})`);\n if (cssStyles) {\n polygon.attr(\"style\", cssStyles);\n }\n } else {\n polygon = insertPolygonShape(shapeSvg, w, h, points);\n }\n if (nodeStyles) {\n polygon.attr(\"style\", nodeStyles);\n }\n updateNodeBounds(node, polygon);\n node.intersect = function(point) {\n return intersect_default.polygon(node, points, point);\n };\n return shapeSvg;\n}\n__name(card, \"card\");\n\n// src/rendering-util/rendering-elements/shapes/choice.ts\nimport rough5 from \"roughjs\";\nfunction choice(parent, node) {\n const { nodeStyles } = styles2String(node);\n node.label = \"\";\n const shapeSvg = parent.insert(\"g\").attr(\"class\", getNodeClasses(node)).attr(\"id\", node.domId ?? node.id);\n const { cssStyles } = node;\n const s = Math.max(28, node.width ?? 0);\n const points = [\n { x: 0, y: s / 2 },\n { x: s / 2, y: 0 },\n { x: 0, y: -s / 2 },\n { x: -s / 2, y: 0 }\n ];\n const rc = rough5.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const choicePath = createPathFromPoints(points);\n const roughNode = rc.path(choicePath, options);\n const choiceShape = shapeSvg.insert(() => roughNode, \":first-child\");\n if (cssStyles && node.look !== \"handDrawn\") {\n choiceShape.selectAll(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n choiceShape.selectAll(\"path\").attr(\"style\", nodeStyles);\n }\n node.width = 28;\n node.height = 28;\n node.intersect = function(point) {\n return intersect_default.polygon(node, points, point);\n };\n return shapeSvg;\n}\n__name(choice, \"choice\");\n\n// src/rendering-util/rendering-elements/shapes/circle.ts\nimport rough6 from \"roughjs\";\nasync function circle(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox, halfPadding } = await labelHelper(parent, node, getNodeClasses(node));\n const radius = bbox.width / 2 + halfPadding;\n let circleElem;\n const { cssStyles } = node;\n if (node.look === \"handDrawn\") {\n const rc = rough6.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n const roughNode = rc.circle(0, 0, radius * 2, options);\n circleElem = shapeSvg.insert(() => roughNode, \":first-child\");\n circleElem.attr(\"class\", \"basic label-container\").attr(\"style\", handleUndefinedAttr(cssStyles));\n } else {\n circleElem = shapeSvg.insert(\"circle\", \":first-child\").attr(\"class\", \"basic label-container\").attr(\"style\", nodeStyles).attr(\"r\", radius).attr(\"cx\", 0).attr(\"cy\", 0);\n }\n updateNodeBounds(node, circleElem);\n node.intersect = function(point) {\n log.info(\"Circle intersect\", node, radius, point);\n return intersect_default.circle(node, radius, point);\n };\n return shapeSvg;\n}\n__name(circle, \"circle\");\n\n// src/rendering-util/rendering-elements/shapes/crossedCircle.ts\nimport rough7 from \"roughjs\";\nfunction createLine(r) {\n const xAxis45 = Math.cos(Math.PI / 4);\n const yAxis45 = Math.sin(Math.PI / 4);\n const lineLength = r * 2;\n const pointQ1 = { x: lineLength / 2 * xAxis45, y: lineLength / 2 * yAxis45 };\n const pointQ2 = { x: -(lineLength / 2) * xAxis45, y: lineLength / 2 * yAxis45 };\n const pointQ3 = { x: -(lineLength / 2) * xAxis45, y: -(lineLength / 2) * yAxis45 };\n const pointQ4 = { x: lineLength / 2 * xAxis45, y: -(lineLength / 2) * yAxis45 };\n return `M ${pointQ2.x},${pointQ2.y} L ${pointQ4.x},${pointQ4.y}\n M ${pointQ1.x},${pointQ1.y} L ${pointQ3.x},${pointQ3.y}`;\n}\n__name(createLine, \"createLine\");\nfunction crossedCircle(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n node.label = \"\";\n const shapeSvg = parent.insert(\"g\").attr(\"class\", getNodeClasses(node)).attr(\"id\", node.domId ?? node.id);\n const radius = Math.max(30, node?.width ?? 0);\n const { cssStyles } = node;\n const rc = rough7.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const circleNode = rc.circle(0, 0, radius * 2, options);\n const linePath = createLine(radius);\n const lineNode = rc.path(linePath, options);\n const crossedCircle2 = shapeSvg.insert(() => circleNode, \":first-child\");\n crossedCircle2.insert(() => lineNode);\n if (cssStyles && node.look !== \"handDrawn\") {\n crossedCircle2.selectAll(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n crossedCircle2.selectAll(\"path\").attr(\"style\", nodeStyles);\n }\n updateNodeBounds(node, crossedCircle2);\n node.intersect = function(point) {\n log.info(\"crossedCircle intersect\", node, { radius, point });\n const pos = intersect_default.circle(node, radius, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(crossedCircle, \"crossedCircle\");\n\n// src/rendering-util/rendering-elements/shapes/curlyBraceLeft.ts\nimport rough8 from \"roughjs\";\nfunction generateCirclePoints2(centerX, centerY, radius, numPoints = 100, startAngle = 0, endAngle = 180) {\n const points = [];\n const startAngleRad = startAngle * Math.PI / 180;\n const endAngleRad = endAngle * Math.PI / 180;\n const angleRange = endAngleRad - startAngleRad;\n const angleStep = angleRange / (numPoints - 1);\n for (let i = 0; i < numPoints; i++) {\n const angle = startAngleRad + i * angleStep;\n const x = centerX + radius * Math.cos(angle);\n const y = centerY + radius * Math.sin(angle);\n points.push({ x: -x, y: -y });\n }\n return points;\n}\n__name(generateCirclePoints2, \"generateCirclePoints\");\nasync function curlyBraceLeft(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox, label } = await labelHelper(parent, node, getNodeClasses(node));\n const w = bbox.width + (node.padding ?? 0);\n const h = bbox.height + (node.padding ?? 0);\n const radius = Math.max(5, h * 0.1);\n const { cssStyles } = node;\n const points = [\n ...generateCirclePoints2(w / 2, -h / 2, radius, 30, -90, 0),\n { x: -w / 2 - radius, y: radius },\n ...generateCirclePoints2(w / 2 + radius * 2, -radius, radius, 20, -180, -270),\n ...generateCirclePoints2(w / 2 + radius * 2, radius, radius, 20, -90, -180),\n { x: -w / 2 - radius, y: -h / 2 },\n ...generateCirclePoints2(w / 2, h / 2, radius, 20, 0, 90)\n ];\n const rectPoints = [\n { x: w / 2, y: -h / 2 - radius },\n { x: -w / 2, y: -h / 2 - radius },\n ...generateCirclePoints2(w / 2, -h / 2, radius, 20, -90, 0),\n { x: -w / 2 - radius, y: -radius },\n ...generateCirclePoints2(w / 2 + w * 0.1, -radius, radius, 20, -180, -270),\n ...generateCirclePoints2(w / 2 + w * 0.1, radius, radius, 20, -90, -180),\n { x: -w / 2 - radius, y: h / 2 },\n ...generateCirclePoints2(w / 2, h / 2, radius, 20, 0, 90),\n { x: -w / 2, y: h / 2 + radius },\n { x: w / 2, y: h / 2 + radius }\n ];\n const rc = rough8.svg(shapeSvg);\n const options = userNodeOverrides(node, { fill: \"none\" });\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const curlyBraceLeftPath = createPathFromPoints(points);\n const newCurlyBracePath = curlyBraceLeftPath.replace(\"Z\", \"\");\n const curlyBraceLeftNode = rc.path(newCurlyBracePath, options);\n const rectPath = createPathFromPoints(rectPoints);\n const rectShape = rc.path(rectPath, { ...options });\n const curlyBraceLeftShape = shapeSvg.insert(\"g\", \":first-child\");\n curlyBraceLeftShape.insert(() => rectShape, \":first-child\").attr(\"stroke-opacity\", 0);\n curlyBraceLeftShape.insert(() => curlyBraceLeftNode, \":first-child\");\n curlyBraceLeftShape.attr(\"class\", \"text\");\n if (cssStyles && node.look !== \"handDrawn\") {\n curlyBraceLeftShape.selectAll(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n curlyBraceLeftShape.selectAll(\"path\").attr(\"style\", nodeStyles);\n }\n curlyBraceLeftShape.attr(\"transform\", `translate(${radius}, 0)`);\n label.attr(\n \"transform\",\n `translate(${-w / 2 + radius - (bbox.x - (bbox.left ?? 0))},${-h / 2 + (node.padding ?? 0) / 2 - (bbox.y - (bbox.top ?? 0))})`\n );\n updateNodeBounds(node, curlyBraceLeftShape);\n node.intersect = function(point) {\n const pos = intersect_default.polygon(node, rectPoints, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(curlyBraceLeft, \"curlyBraceLeft\");\n\n// src/rendering-util/rendering-elements/shapes/curlyBraceRight.ts\nimport rough9 from \"roughjs\";\nfunction generateCirclePoints3(centerX, centerY, radius, numPoints = 100, startAngle = 0, endAngle = 180) {\n const points = [];\n const startAngleRad = startAngle * Math.PI / 180;\n const endAngleRad = endAngle * Math.PI / 180;\n const angleRange = endAngleRad - startAngleRad;\n const angleStep = angleRange / (numPoints - 1);\n for (let i = 0; i < numPoints; i++) {\n const angle = startAngleRad + i * angleStep;\n const x = centerX + radius * Math.cos(angle);\n const y = centerY + radius * Math.sin(angle);\n points.push({ x, y });\n }\n return points;\n}\n__name(generateCirclePoints3, \"generateCirclePoints\");\nasync function curlyBraceRight(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox, label } = await labelHelper(parent, node, getNodeClasses(node));\n const w = bbox.width + (node.padding ?? 0);\n const h = bbox.height + (node.padding ?? 0);\n const radius = Math.max(5, h * 0.1);\n const { cssStyles } = node;\n const points = [\n ...generateCirclePoints3(w / 2, -h / 2, radius, 20, -90, 0),\n { x: w / 2 + radius, y: -radius },\n ...generateCirclePoints3(w / 2 + radius * 2, -radius, radius, 20, -180, -270),\n ...generateCirclePoints3(w / 2 + radius * 2, radius, radius, 20, -90, -180),\n { x: w / 2 + radius, y: h / 2 },\n ...generateCirclePoints3(w / 2, h / 2, radius, 20, 0, 90)\n ];\n const rectPoints = [\n { x: -w / 2, y: -h / 2 - radius },\n { x: w / 2, y: -h / 2 - radius },\n ...generateCirclePoints3(w / 2, -h / 2, radius, 20, -90, 0),\n { x: w / 2 + radius, y: -radius },\n ...generateCirclePoints3(w / 2 + radius * 2, -radius, radius, 20, -180, -270),\n ...generateCirclePoints3(w / 2 + radius * 2, radius, radius, 20, -90, -180),\n { x: w / 2 + radius, y: h / 2 },\n ...generateCirclePoints3(w / 2, h / 2, radius, 20, 0, 90),\n { x: w / 2, y: h / 2 + radius },\n { x: -w / 2, y: h / 2 + radius }\n ];\n const rc = rough9.svg(shapeSvg);\n const options = userNodeOverrides(node, { fill: \"none\" });\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const curlyBraceRightPath = createPathFromPoints(points);\n const newCurlyBracePath = curlyBraceRightPath.replace(\"Z\", \"\");\n const curlyBraceRightNode = rc.path(newCurlyBracePath, options);\n const rectPath = createPathFromPoints(rectPoints);\n const rectShape = rc.path(rectPath, { ...options });\n const curlyBraceRightShape = shapeSvg.insert(\"g\", \":first-child\");\n curlyBraceRightShape.insert(() => rectShape, \":first-child\").attr(\"stroke-opacity\", 0);\n curlyBraceRightShape.insert(() => curlyBraceRightNode, \":first-child\");\n curlyBraceRightShape.attr(\"class\", \"text\");\n if (cssStyles && node.look !== \"handDrawn\") {\n curlyBraceRightShape.selectAll(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n curlyBraceRightShape.selectAll(\"path\").attr(\"style\", nodeStyles);\n }\n curlyBraceRightShape.attr(\"transform\", `translate(${-radius}, 0)`);\n label.attr(\n \"transform\",\n `translate(${-w / 2 + (node.padding ?? 0) / 2 - (bbox.x - (bbox.left ?? 0))},${-h / 2 + (node.padding ?? 0) / 2 - (bbox.y - (bbox.top ?? 0))})`\n );\n updateNodeBounds(node, curlyBraceRightShape);\n node.intersect = function(point) {\n const pos = intersect_default.polygon(node, rectPoints, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(curlyBraceRight, \"curlyBraceRight\");\n\n// src/rendering-util/rendering-elements/shapes/curlyBraces.ts\nimport rough10 from \"roughjs\";\nfunction generateCirclePoints4(centerX, centerY, radius, numPoints = 100, startAngle = 0, endAngle = 180) {\n const points = [];\n const startAngleRad = startAngle * Math.PI / 180;\n const endAngleRad = endAngle * Math.PI / 180;\n const angleRange = endAngleRad - startAngleRad;\n const angleStep = angleRange / (numPoints - 1);\n for (let i = 0; i < numPoints; i++) {\n const angle = startAngleRad + i * angleStep;\n const x = centerX + radius * Math.cos(angle);\n const y = centerY + radius * Math.sin(angle);\n points.push({ x: -x, y: -y });\n }\n return points;\n}\n__name(generateCirclePoints4, \"generateCirclePoints\");\nasync function curlyBraces(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox, label } = await labelHelper(parent, node, getNodeClasses(node));\n const w = bbox.width + (node.padding ?? 0);\n const h = bbox.height + (node.padding ?? 0);\n const radius = Math.max(5, h * 0.1);\n const { cssStyles } = node;\n const leftCurlyBracePoints = [\n ...generateCirclePoints4(w / 2, -h / 2, radius, 30, -90, 0),\n { x: -w / 2 - radius, y: radius },\n ...generateCirclePoints4(w / 2 + radius * 2, -radius, radius, 20, -180, -270),\n ...generateCirclePoints4(w / 2 + radius * 2, radius, radius, 20, -90, -180),\n { x: -w / 2 - radius, y: -h / 2 },\n ...generateCirclePoints4(w / 2, h / 2, radius, 20, 0, 90)\n ];\n const rightCurlyBracePoints = [\n ...generateCirclePoints4(-w / 2 + radius + radius / 2, -h / 2, radius, 20, -90, -180),\n { x: w / 2 - radius / 2, y: radius },\n ...generateCirclePoints4(-w / 2 - radius / 2, -radius, radius, 20, 0, 90),\n ...generateCirclePoints4(-w / 2 - radius / 2, radius, radius, 20, -90, 0),\n { x: w / 2 - radius / 2, y: -radius },\n ...generateCirclePoints4(-w / 2 + radius + radius / 2, h / 2, radius, 30, -180, -270)\n ];\n const rectPoints = [\n { x: w / 2, y: -h / 2 - radius },\n { x: -w / 2, y: -h / 2 - radius },\n ...generateCirclePoints4(w / 2, -h / 2, radius, 20, -90, 0),\n { x: -w / 2 - radius, y: -radius },\n ...generateCirclePoints4(w / 2 + radius * 2, -radius, radius, 20, -180, -270),\n ...generateCirclePoints4(w / 2 + radius * 2, radius, radius, 20, -90, -180),\n { x: -w / 2 - radius, y: h / 2 },\n ...generateCirclePoints4(w / 2, h / 2, radius, 20, 0, 90),\n { x: -w / 2, y: h / 2 + radius },\n { x: w / 2 - radius - radius / 2, y: h / 2 + radius },\n ...generateCirclePoints4(-w / 2 + radius + radius / 2, -h / 2, radius, 20, -90, -180),\n { x: w / 2 - radius / 2, y: radius },\n ...generateCirclePoints4(-w / 2 - radius / 2, -radius, radius, 20, 0, 90),\n ...generateCirclePoints4(-w / 2 - radius / 2, radius, radius, 20, -90, 0),\n { x: w / 2 - radius / 2, y: -radius },\n ...generateCirclePoints4(-w / 2 + radius + radius / 2, h / 2, radius, 30, -180, -270)\n ];\n const rc = rough10.svg(shapeSvg);\n const options = userNodeOverrides(node, { fill: \"none\" });\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const leftCurlyBracePath = createPathFromPoints(leftCurlyBracePoints);\n const newLeftCurlyBracePath = leftCurlyBracePath.replace(\"Z\", \"\");\n const leftCurlyBraceNode = rc.path(newLeftCurlyBracePath, options);\n const rightCurlyBracePath = createPathFromPoints(rightCurlyBracePoints);\n const newRightCurlyBracePath = rightCurlyBracePath.replace(\"Z\", \"\");\n const rightCurlyBraceNode = rc.path(newRightCurlyBracePath, options);\n const rectPath = createPathFromPoints(rectPoints);\n const rectShape = rc.path(rectPath, { ...options });\n const curlyBracesShape = shapeSvg.insert(\"g\", \":first-child\");\n curlyBracesShape.insert(() => rectShape, \":first-child\").attr(\"stroke-opacity\", 0);\n curlyBracesShape.insert(() => leftCurlyBraceNode, \":first-child\");\n curlyBracesShape.insert(() => rightCurlyBraceNode, \":first-child\");\n curlyBracesShape.attr(\"class\", \"text\");\n if (cssStyles && node.look !== \"handDrawn\") {\n curlyBracesShape.selectAll(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n curlyBracesShape.selectAll(\"path\").attr(\"style\", nodeStyles);\n }\n curlyBracesShape.attr(\"transform\", `translate(${radius - radius / 4}, 0)`);\n label.attr(\n \"transform\",\n `translate(${-w / 2 + (node.padding ?? 0) / 2 - (bbox.x - (bbox.left ?? 0))},${-h / 2 + (node.padding ?? 0) / 2 - (bbox.y - (bbox.top ?? 0))})`\n );\n updateNodeBounds(node, curlyBracesShape);\n node.intersect = function(point) {\n const pos = intersect_default.polygon(node, rectPoints, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(curlyBraces, \"curlyBraces\");\n\n// src/rendering-util/rendering-elements/shapes/curvedTrapezoid.ts\nimport rough11 from \"roughjs\";\nasync function curvedTrapezoid(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox } = await labelHelper(parent, node, getNodeClasses(node));\n const minWidth = 80, minHeight = 20;\n const w = Math.max(minWidth, (bbox.width + (node.padding ?? 0) * 2) * 1.25, node?.width ?? 0);\n const h = Math.max(minHeight, bbox.height + (node.padding ?? 0) * 2, node?.height ?? 0);\n const radius = h / 2;\n const { cssStyles } = node;\n const rc = rough11.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const totalWidth = w, totalHeight = h;\n const rw = totalWidth - radius;\n const tw = totalHeight / 4;\n const points = [\n { x: rw, y: 0 },\n { x: tw, y: 0 },\n { x: 0, y: totalHeight / 2 },\n { x: tw, y: totalHeight },\n { x: rw, y: totalHeight },\n ...generateCirclePoints(-rw, -totalHeight / 2, radius, 50, 270, 90)\n ];\n const pathData = createPathFromPoints(points);\n const shapeNode = rc.path(pathData, options);\n const polygon = shapeSvg.insert(() => shapeNode, \":first-child\");\n polygon.attr(\"class\", \"basic label-container\");\n if (cssStyles && node.look !== \"handDrawn\") {\n polygon.selectChildren(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n polygon.selectChildren(\"path\").attr(\"style\", nodeStyles);\n }\n polygon.attr(\"transform\", `translate(${-w / 2}, ${-h / 2})`);\n updateNodeBounds(node, polygon);\n node.intersect = function(point) {\n const pos = intersect_default.polygon(node, points, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(curvedTrapezoid, \"curvedTrapezoid\");\n\n// src/rendering-util/rendering-elements/shapes/cylinder.ts\nimport rough12 from \"roughjs\";\nvar createCylinderPathD = /* @__PURE__ */ __name((x, y, width, height, rx, ry) => {\n return [\n `M${x},${y + ry}`,\n `a${rx},${ry} 0,0,0 ${width},0`,\n `a${rx},${ry} 0,0,0 ${-width},0`,\n `l0,${height}`,\n `a${rx},${ry} 0,0,0 ${width},0`,\n `l0,${-height}`\n ].join(\" \");\n}, \"createCylinderPathD\");\nvar createOuterCylinderPathD = /* @__PURE__ */ __name((x, y, width, height, rx, ry) => {\n return [\n `M${x},${y + ry}`,\n `M${x + width},${y + ry}`,\n `a${rx},${ry} 0,0,0 ${-width},0`,\n `l0,${height}`,\n `a${rx},${ry} 0,0,0 ${width},0`,\n `l0,${-height}`\n ].join(\" \");\n}, \"createOuterCylinderPathD\");\nvar createInnerCylinderPathD = /* @__PURE__ */ __name((x, y, width, height, rx, ry) => {\n return [`M${x - width / 2},${-height / 2}`, `a${rx},${ry} 0,0,0 ${width},0`].join(\" \");\n}, \"createInnerCylinderPathD\");\nasync function cylinder(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox, label } = await labelHelper(parent, node, getNodeClasses(node));\n const w = Math.max(bbox.width + node.padding, node.width ?? 0);\n const rx = w / 2;\n const ry = rx / (2.5 + w / 50);\n const h = Math.max(bbox.height + ry + node.padding, node.height ?? 0);\n let cylinder2;\n const { cssStyles } = node;\n if (node.look === \"handDrawn\") {\n const rc = rough12.svg(shapeSvg);\n const outerPathData = createOuterCylinderPathD(0, 0, w, h, rx, ry);\n const innerPathData = createInnerCylinderPathD(0, ry, w, h, rx, ry);\n const outerNode = rc.path(outerPathData, userNodeOverrides(node, {}));\n const innerLine = rc.path(innerPathData, userNodeOverrides(node, { fill: \"none\" }));\n cylinder2 = shapeSvg.insert(() => innerLine, \":first-child\");\n cylinder2 = shapeSvg.insert(() => outerNode, \":first-child\");\n cylinder2.attr(\"class\", \"basic label-container\");\n if (cssStyles) {\n cylinder2.attr(\"style\", cssStyles);\n }\n } else {\n const pathData = createCylinderPathD(0, 0, w, h, rx, ry);\n cylinder2 = shapeSvg.insert(\"path\", \":first-child\").attr(\"d\", pathData).attr(\"class\", \"basic label-container\").attr(\"style\", handleUndefinedAttr(cssStyles)).attr(\"style\", nodeStyles);\n }\n cylinder2.attr(\"label-offset-y\", ry);\n cylinder2.attr(\"transform\", `translate(${-w / 2}, ${-(h / 2 + ry)})`);\n updateNodeBounds(node, cylinder2);\n label.attr(\n \"transform\",\n `translate(${-(bbox.width / 2) - (bbox.x - (bbox.left ?? 0))}, ${-(bbox.height / 2) + (node.padding ?? 0) / 1.5 - (bbox.y - (bbox.top ?? 0))})`\n );\n node.intersect = function(point) {\n const pos = intersect_default.rect(node, point);\n const x = pos.x - (node.x ?? 0);\n if (rx != 0 && (Math.abs(x) < (node.width ?? 0) / 2 || Math.abs(x) == (node.width ?? 0) / 2 && Math.abs(pos.y - (node.y ?? 0)) > (node.height ?? 0) / 2 - ry)) {\n let y = ry * ry * (1 - x * x / (rx * rx));\n if (y > 0) {\n y = Math.sqrt(y);\n }\n y = ry - y;\n if (point.y - (node.y ?? 0) > 0) {\n y = -y;\n }\n pos.y += y;\n }\n return pos;\n };\n return shapeSvg;\n}\n__name(cylinder, \"cylinder\");\n\n// src/rendering-util/rendering-elements/shapes/dividedRect.ts\nimport rough13 from \"roughjs\";\nasync function dividedRectangle(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox, label } = await labelHelper(parent, node, getNodeClasses(node));\n const w = bbox.width + node.padding;\n const h = bbox.height + node.padding;\n const rectOffset = h * 0.2;\n const x = -w / 2;\n const y = -h / 2 - rectOffset / 2;\n const { cssStyles } = node;\n const rc = rough13.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const pts = [\n { x, y: y + rectOffset },\n { x: -x, y: y + rectOffset },\n { x: -x, y: -y },\n { x, y: -y },\n { x, y },\n { x: -x, y },\n { x: -x, y: y + rectOffset }\n ];\n const poly = rc.polygon(\n pts.map((p) => [p.x, p.y]),\n options\n );\n const polygon = shapeSvg.insert(() => poly, \":first-child\");\n polygon.attr(\"class\", \"basic label-container\");\n if (cssStyles && node.look !== \"handDrawn\") {\n polygon.selectAll(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n polygon.selectAll(\"path\").attr(\"style\", nodeStyles);\n }\n label.attr(\n \"transform\",\n `translate(${x + (node.padding ?? 0) / 2 - (bbox.x - (bbox.left ?? 0))}, ${y + rectOffset + (node.padding ?? 0) / 2 - (bbox.y - (bbox.top ?? 0))})`\n );\n updateNodeBounds(node, polygon);\n node.intersect = function(point) {\n const pos = intersect_default.rect(node, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(dividedRectangle, \"dividedRectangle\");\n\n// src/rendering-util/rendering-elements/shapes/doubleCircle.ts\nimport rough14 from \"roughjs\";\nasync function doublecircle(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox, halfPadding } = await labelHelper(parent, node, getNodeClasses(node));\n const gap = 5;\n const outerRadius = bbox.width / 2 + halfPadding + gap;\n const innerRadius = bbox.width / 2 + halfPadding;\n let circleGroup;\n const { cssStyles } = node;\n if (node.look === \"handDrawn\") {\n const rc = rough14.svg(shapeSvg);\n const outerOptions = userNodeOverrides(node, { roughness: 0.2, strokeWidth: 2.5 });\n const innerOptions = userNodeOverrides(node, { roughness: 0.2, strokeWidth: 1.5 });\n const outerRoughNode = rc.circle(0, 0, outerRadius * 2, outerOptions);\n const innerRoughNode = rc.circle(0, 0, innerRadius * 2, innerOptions);\n circleGroup = shapeSvg.insert(\"g\", \":first-child\");\n circleGroup.attr(\"class\", handleUndefinedAttr(node.cssClasses)).attr(\"style\", handleUndefinedAttr(cssStyles));\n circleGroup.node()?.appendChild(outerRoughNode);\n circleGroup.node()?.appendChild(innerRoughNode);\n } else {\n circleGroup = shapeSvg.insert(\"g\", \":first-child\");\n const outerCircle = circleGroup.insert(\"circle\", \":first-child\");\n const innerCircle = circleGroup.insert(\"circle\");\n circleGroup.attr(\"class\", \"basic label-container\").attr(\"style\", nodeStyles);\n outerCircle.attr(\"class\", \"outer-circle\").attr(\"style\", nodeStyles).attr(\"r\", outerRadius).attr(\"cx\", 0).attr(\"cy\", 0);\n innerCircle.attr(\"class\", \"inner-circle\").attr(\"style\", nodeStyles).attr(\"r\", innerRadius).attr(\"cx\", 0).attr(\"cy\", 0);\n }\n updateNodeBounds(node, circleGroup);\n node.intersect = function(point) {\n log.info(\"DoubleCircle intersect\", node, outerRadius, point);\n return intersect_default.circle(node, outerRadius, point);\n };\n return shapeSvg;\n}\n__name(doublecircle, \"doublecircle\");\n\n// src/rendering-util/rendering-elements/shapes/filledCircle.ts\nimport rough15 from \"roughjs\";\nfunction filledCircle(parent, node, { config: { themeVariables } }) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.label = \"\";\n node.labelStyle = labelStyles;\n const shapeSvg = parent.insert(\"g\").attr(\"class\", getNodeClasses(node)).attr(\"id\", node.domId ?? node.id);\n const radius = 7;\n const { cssStyles } = node;\n const rc = rough15.svg(shapeSvg);\n const { nodeBorder } = themeVariables;\n const options = userNodeOverrides(node, { fillStyle: \"solid\" });\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n }\n const circleNode = rc.circle(0, 0, radius * 2, options);\n const filledCircle2 = shapeSvg.insert(() => circleNode, \":first-child\");\n filledCircle2.selectAll(\"path\").attr(\"style\", `fill: ${nodeBorder} !important;`);\n if (cssStyles && cssStyles.length > 0 && node.look !== \"handDrawn\") {\n filledCircle2.selectAll(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n filledCircle2.selectAll(\"path\").attr(\"style\", nodeStyles);\n }\n updateNodeBounds(node, filledCircle2);\n node.intersect = function(point) {\n log.info(\"filledCircle intersect\", node, { radius, point });\n const pos = intersect_default.circle(node, radius, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(filledCircle, \"filledCircle\");\n\n// src/rendering-util/rendering-elements/shapes/flippedTriangle.ts\nimport rough16 from \"roughjs\";\nasync function flippedTriangle(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox, label } = await labelHelper(parent, node, getNodeClasses(node));\n const w = bbox.width + (node.padding ?? 0);\n const h = w + bbox.height;\n const tw = w + bbox.height;\n const points = [\n { x: 0, y: -h },\n { x: tw, y: -h },\n { x: tw / 2, y: 0 }\n ];\n const { cssStyles } = node;\n const rc = rough16.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const pathData = createPathFromPoints(points);\n const roughNode = rc.path(pathData, options);\n const flippedTriangle2 = shapeSvg.insert(() => roughNode, \":first-child\").attr(\"transform\", `translate(${-h / 2}, ${h / 2})`);\n if (cssStyles && node.look !== \"handDrawn\") {\n flippedTriangle2.selectChildren(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n flippedTriangle2.selectChildren(\"path\").attr(\"style\", nodeStyles);\n }\n node.width = w;\n node.height = h;\n updateNodeBounds(node, flippedTriangle2);\n label.attr(\n \"transform\",\n `translate(${-bbox.width / 2 - (bbox.x - (bbox.left ?? 0))}, ${-h / 2 + (node.padding ?? 0) / 2 + (bbox.y - (bbox.top ?? 0))})`\n );\n node.intersect = function(point) {\n log.info(\"Triangle intersect\", node, points, point);\n return intersect_default.polygon(node, points, point);\n };\n return shapeSvg;\n}\n__name(flippedTriangle, \"flippedTriangle\");\n\n// src/rendering-util/rendering-elements/shapes/forkJoin.ts\nimport rough17 from \"roughjs\";\nfunction forkJoin(parent, node, { dir, config: { state: state2, themeVariables } }) {\n const { nodeStyles } = styles2String(node);\n node.label = \"\";\n const shapeSvg = parent.insert(\"g\").attr(\"class\", getNodeClasses(node)).attr(\"id\", node.domId ?? node.id);\n const { cssStyles } = node;\n let width = Math.max(70, node?.width ?? 0);\n let height = Math.max(10, node?.height ?? 0);\n if (dir === \"LR\") {\n width = Math.max(10, node?.width ?? 0);\n height = Math.max(70, node?.height ?? 0);\n }\n const x = -1 * width / 2;\n const y = -1 * height / 2;\n const rc = rough17.svg(shapeSvg);\n const options = userNodeOverrides(node, {\n stroke: themeVariables.lineColor,\n fill: themeVariables.lineColor\n });\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const roughNode = rc.rectangle(x, y, width, height, options);\n const shape = shapeSvg.insert(() => roughNode, \":first-child\");\n if (cssStyles && node.look !== \"handDrawn\") {\n shape.selectAll(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n shape.selectAll(\"path\").attr(\"style\", nodeStyles);\n }\n updateNodeBounds(node, shape);\n const padding = state2?.padding ?? 0;\n if (node.width && node.height) {\n node.width += padding / 2 || 0;\n node.height += padding / 2 || 0;\n }\n node.intersect = function(point) {\n return intersect_default.rect(node, point);\n };\n return shapeSvg;\n}\n__name(forkJoin, \"forkJoin\");\n\n// src/rendering-util/rendering-elements/shapes/halfRoundedRectangle.ts\nimport rough18 from \"roughjs\";\nasync function halfRoundedRectangle(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const minWidth = 80, minHeight = 50;\n const { shapeSvg, bbox } = await labelHelper(parent, node, getNodeClasses(node));\n const w = Math.max(minWidth, bbox.width + (node.padding ?? 0) * 2, node?.width ?? 0);\n const h = Math.max(minHeight, bbox.height + (node.padding ?? 0) * 2, node?.height ?? 0);\n const radius = h / 2;\n const { cssStyles } = node;\n const rc = rough18.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const points = [\n { x: -w / 2, y: -h / 2 },\n { x: w / 2 - radius, y: -h / 2 },\n ...generateCirclePoints(-w / 2 + radius, 0, radius, 50, 90, 270),\n { x: w / 2 - radius, y: h / 2 },\n { x: -w / 2, y: h / 2 }\n ];\n const pathData = createPathFromPoints(points);\n const shapeNode = rc.path(pathData, options);\n const polygon = shapeSvg.insert(() => shapeNode, \":first-child\");\n polygon.attr(\"class\", \"basic label-container\");\n if (cssStyles && node.look !== \"handDrawn\") {\n polygon.selectChildren(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n polygon.selectChildren(\"path\").attr(\"style\", nodeStyles);\n }\n updateNodeBounds(node, polygon);\n node.intersect = function(point) {\n log.info(\"Pill intersect\", node, { radius, point });\n const pos = intersect_default.polygon(node, points, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(halfRoundedRectangle, \"halfRoundedRectangle\");\n\n// src/rendering-util/rendering-elements/shapes/hexagon.ts\nimport rough19 from \"roughjs\";\nvar createHexagonPathD = /* @__PURE__ */ __name((x, y, width, height, m) => {\n return [\n `M${x + m},${y}`,\n `L${x + width - m},${y}`,\n `L${x + width},${y - height / 2}`,\n `L${x + width - m},${y - height}`,\n `L${x + m},${y - height}`,\n `L${x},${y - height / 2}`,\n \"Z\"\n ].join(\" \");\n}, \"createHexagonPathD\");\nasync function hexagon(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox } = await labelHelper(parent, node, getNodeClasses(node));\n const f = 4;\n const h = bbox.height + node.padding;\n const m = h / f;\n const w = bbox.width + 2 * m + node.padding;\n const points = [\n { x: m, y: 0 },\n { x: w - m, y: 0 },\n { x: w, y: -h / 2 },\n { x: w - m, y: -h },\n { x: m, y: -h },\n { x: 0, y: -h / 2 }\n ];\n let polygon;\n const { cssStyles } = node;\n if (node.look === \"handDrawn\") {\n const rc = rough19.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n const pathData = createHexagonPathD(0, 0, w, h, m);\n const roughNode = rc.path(pathData, options);\n polygon = shapeSvg.insert(() => roughNode, \":first-child\").attr(\"transform\", `translate(${-w / 2}, ${h / 2})`);\n if (cssStyles) {\n polygon.attr(\"style\", cssStyles);\n }\n } else {\n polygon = insertPolygonShape(shapeSvg, w, h, points);\n }\n if (nodeStyles) {\n polygon.attr(\"style\", nodeStyles);\n }\n node.width = w;\n node.height = h;\n updateNodeBounds(node, polygon);\n node.intersect = function(point) {\n return intersect_default.polygon(node, points, point);\n };\n return shapeSvg;\n}\n__name(hexagon, \"hexagon\");\n\n// src/rendering-util/rendering-elements/shapes/hourglass.ts\nimport rough20 from \"roughjs\";\nasync function hourglass(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.label = \"\";\n node.labelStyle = labelStyles;\n const { shapeSvg } = await labelHelper(parent, node, getNodeClasses(node));\n const w = Math.max(30, node?.width ?? 0);\n const h = Math.max(30, node?.height ?? 0);\n const { cssStyles } = node;\n const rc = rough20.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const points = [\n { x: 0, y: 0 },\n { x: w, y: 0 },\n { x: 0, y: h },\n { x: w, y: h }\n ];\n const pathData = createPathFromPoints(points);\n const shapeNode = rc.path(pathData, options);\n const polygon = shapeSvg.insert(() => shapeNode, \":first-child\");\n polygon.attr(\"class\", \"basic label-container\");\n if (cssStyles && node.look !== \"handDrawn\") {\n polygon.selectChildren(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n polygon.selectChildren(\"path\").attr(\"style\", nodeStyles);\n }\n polygon.attr(\"transform\", `translate(${-w / 2}, ${-h / 2})`);\n updateNodeBounds(node, polygon);\n node.intersect = function(point) {\n log.info(\"Pill intersect\", node, { points });\n const pos = intersect_default.polygon(node, points, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(hourglass, \"hourglass\");\n\n// src/rendering-util/rendering-elements/shapes/icon.ts\nimport rough21 from \"roughjs\";\nasync function icon(parent, node, { config: { themeVariables, flowchart } }) {\n const { labelStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const assetHeight = node.assetHeight ?? 48;\n const assetWidth = node.assetWidth ?? 48;\n const iconSize = Math.max(assetHeight, assetWidth);\n const defaultWidth = flowchart?.wrappingWidth;\n node.width = Math.max(iconSize, defaultWidth ?? 0);\n const { shapeSvg, bbox, label } = await labelHelper(parent, node, \"icon-shape default\");\n const topLabel = node.pos === \"t\";\n const height = iconSize;\n const width = iconSize;\n const { nodeBorder } = themeVariables;\n const { stylesMap } = compileStyles(node);\n const x = -width / 2;\n const y = -height / 2;\n const labelPadding = node.label ? 8 : 0;\n const rc = rough21.svg(shapeSvg);\n const options = userNodeOverrides(node, { stroke: \"none\", fill: \"none\" });\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const iconNode = rc.rectangle(x, y, width, height, options);\n const outerWidth = Math.max(width, bbox.width);\n const outerHeight = height + bbox.height + labelPadding;\n const outerNode = rc.rectangle(-outerWidth / 2, -outerHeight / 2, outerWidth, outerHeight, {\n ...options,\n fill: \"transparent\",\n stroke: \"none\"\n });\n const iconShape = shapeSvg.insert(() => iconNode, \":first-child\");\n const outerShape = shapeSvg.insert(() => outerNode);\n if (node.icon) {\n const iconElem = shapeSvg.append(\"g\");\n iconElem.html(\n `${await getIconSVG(node.icon, {\n height: iconSize,\n width: iconSize,\n fallbackPrefix: \"\"\n })}`\n );\n const iconBBox = iconElem.node().getBBox();\n const iconWidth = iconBBox.width;\n const iconHeight = iconBBox.height;\n const iconX = iconBBox.x;\n const iconY = iconBBox.y;\n iconElem.attr(\n \"transform\",\n `translate(${-iconWidth / 2 - iconX},${topLabel ? bbox.height / 2 + labelPadding / 2 - iconHeight / 2 - iconY : -bbox.height / 2 - labelPadding / 2 - iconHeight / 2 - iconY})`\n );\n iconElem.attr(\"style\", `color: ${stylesMap.get(\"stroke\") ?? nodeBorder};`);\n }\n label.attr(\n \"transform\",\n `translate(${-bbox.width / 2 - (bbox.x - (bbox.left ?? 0))},${topLabel ? -outerHeight / 2 : outerHeight / 2 - bbox.height})`\n );\n iconShape.attr(\n \"transform\",\n `translate(${0},${topLabel ? bbox.height / 2 + labelPadding / 2 : -bbox.height / 2 - labelPadding / 2})`\n );\n updateNodeBounds(node, outerShape);\n node.intersect = function(point) {\n log.info(\"iconSquare intersect\", node, point);\n if (!node.label) {\n return intersect_default.rect(node, point);\n }\n const dx = node.x ?? 0;\n const dy = node.y ?? 0;\n const nodeHeight = node.height ?? 0;\n let points = [];\n if (topLabel) {\n points = [\n { x: dx - bbox.width / 2, y: dy - nodeHeight / 2 },\n { x: dx + bbox.width / 2, y: dy - nodeHeight / 2 },\n { x: dx + bbox.width / 2, y: dy - nodeHeight / 2 + bbox.height + labelPadding },\n { x: dx + width / 2, y: dy - nodeHeight / 2 + bbox.height + labelPadding },\n { x: dx + width / 2, y: dy + nodeHeight / 2 },\n { x: dx - width / 2, y: dy + nodeHeight / 2 },\n { x: dx - width / 2, y: dy - nodeHeight / 2 + bbox.height + labelPadding },\n { x: dx - bbox.width / 2, y: dy - nodeHeight / 2 + bbox.height + labelPadding }\n ];\n } else {\n points = [\n { x: dx - width / 2, y: dy - nodeHeight / 2 },\n { x: dx + width / 2, y: dy - nodeHeight / 2 },\n { x: dx + width / 2, y: dy - nodeHeight / 2 + height },\n { x: dx + bbox.width / 2, y: dy - nodeHeight / 2 + height },\n { x: dx + bbox.width / 2 / 2, y: dy + nodeHeight / 2 },\n { x: dx - bbox.width / 2, y: dy + nodeHeight / 2 },\n { x: dx - bbox.width / 2, y: dy - nodeHeight / 2 + height },\n { x: dx - width / 2, y: dy - nodeHeight / 2 + height }\n ];\n }\n const pos = intersect_default.polygon(node, points, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(icon, \"icon\");\n\n// src/rendering-util/rendering-elements/shapes/iconCircle.ts\nimport rough22 from \"roughjs\";\nasync function iconCircle(parent, node, { config: { themeVariables, flowchart } }) {\n const { labelStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const assetHeight = node.assetHeight ?? 48;\n const assetWidth = node.assetWidth ?? 48;\n const iconSize = Math.max(assetHeight, assetWidth);\n const defaultWidth = flowchart?.wrappingWidth;\n node.width = Math.max(iconSize, defaultWidth ?? 0);\n const { shapeSvg, bbox, label } = await labelHelper(parent, node, \"icon-shape default\");\n const padding = 20;\n const labelPadding = node.label ? 8 : 0;\n const topLabel = node.pos === \"t\";\n const { nodeBorder, mainBkg } = themeVariables;\n const { stylesMap } = compileStyles(node);\n const rc = rough22.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const fill = stylesMap.get(\"fill\");\n options.stroke = fill ?? mainBkg;\n const iconElem = shapeSvg.append(\"g\");\n if (node.icon) {\n iconElem.html(\n `${await getIconSVG(node.icon, {\n height: iconSize,\n width: iconSize,\n fallbackPrefix: \"\"\n })}`\n );\n }\n const iconBBox = iconElem.node().getBBox();\n const iconWidth = iconBBox.width;\n const iconHeight = iconBBox.height;\n const iconX = iconBBox.x;\n const iconY = iconBBox.y;\n const diameter = Math.max(iconWidth, iconHeight) * Math.SQRT2 + padding * 2;\n const iconNode = rc.circle(0, 0, diameter, options);\n const outerWidth = Math.max(diameter, bbox.width);\n const outerHeight = diameter + bbox.height + labelPadding;\n const outerNode = rc.rectangle(-outerWidth / 2, -outerHeight / 2, outerWidth, outerHeight, {\n ...options,\n fill: \"transparent\",\n stroke: \"none\"\n });\n const iconShape = shapeSvg.insert(() => iconNode, \":first-child\");\n const outerShape = shapeSvg.insert(() => outerNode);\n iconElem.attr(\n \"transform\",\n `translate(${-iconWidth / 2 - iconX},${topLabel ? bbox.height / 2 + labelPadding / 2 - iconHeight / 2 - iconY : -bbox.height / 2 - labelPadding / 2 - iconHeight / 2 - iconY})`\n );\n iconElem.attr(\"style\", `color: ${stylesMap.get(\"stroke\") ?? nodeBorder};`);\n label.attr(\n \"transform\",\n `translate(${-bbox.width / 2 - (bbox.x - (bbox.left ?? 0))},${topLabel ? -outerHeight / 2 : outerHeight / 2 - bbox.height})`\n );\n iconShape.attr(\n \"transform\",\n `translate(${0},${topLabel ? bbox.height / 2 + labelPadding / 2 : -bbox.height / 2 - labelPadding / 2})`\n );\n updateNodeBounds(node, outerShape);\n node.intersect = function(point) {\n log.info(\"iconSquare intersect\", node, point);\n const pos = intersect_default.rect(node, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(iconCircle, \"iconCircle\");\n\n// src/rendering-util/rendering-elements/shapes/iconRounded.ts\nimport rough23 from \"roughjs\";\nasync function iconRounded(parent, node, { config: { themeVariables, flowchart } }) {\n const { labelStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const assetHeight = node.assetHeight ?? 48;\n const assetWidth = node.assetWidth ?? 48;\n const iconSize = Math.max(assetHeight, assetWidth);\n const defaultWidth = flowchart?.wrappingWidth;\n node.width = Math.max(iconSize, defaultWidth ?? 0);\n const { shapeSvg, bbox, halfPadding, label } = await labelHelper(\n parent,\n node,\n \"icon-shape default\"\n );\n const topLabel = node.pos === \"t\";\n const height = iconSize + halfPadding * 2;\n const width = iconSize + halfPadding * 2;\n const { nodeBorder, mainBkg } = themeVariables;\n const { stylesMap } = compileStyles(node);\n const x = -width / 2;\n const y = -height / 2;\n const labelPadding = node.label ? 8 : 0;\n const rc = rough23.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const fill = stylesMap.get(\"fill\");\n options.stroke = fill ?? mainBkg;\n const iconNode = rc.path(createRoundedRectPathD(x, y, width, height, 5), options);\n const outerWidth = Math.max(width, bbox.width);\n const outerHeight = height + bbox.height + labelPadding;\n const outerNode = rc.rectangle(-outerWidth / 2, -outerHeight / 2, outerWidth, outerHeight, {\n ...options,\n fill: \"transparent\",\n stroke: \"none\"\n });\n const iconShape = shapeSvg.insert(() => iconNode, \":first-child\").attr(\"class\", \"icon-shape2\");\n const outerShape = shapeSvg.insert(() => outerNode);\n if (node.icon) {\n const iconElem = shapeSvg.append(\"g\");\n iconElem.html(\n `${await getIconSVG(node.icon, {\n height: iconSize,\n width: iconSize,\n fallbackPrefix: \"\"\n })}`\n );\n const iconBBox = iconElem.node().getBBox();\n const iconWidth = iconBBox.width;\n const iconHeight = iconBBox.height;\n const iconX = iconBBox.x;\n const iconY = iconBBox.y;\n iconElem.attr(\n \"transform\",\n `translate(${-iconWidth / 2 - iconX},${topLabel ? bbox.height / 2 + labelPadding / 2 - iconHeight / 2 - iconY : -bbox.height / 2 - labelPadding / 2 - iconHeight / 2 - iconY})`\n );\n iconElem.attr(\"style\", `color: ${stylesMap.get(\"stroke\") ?? nodeBorder};`);\n }\n label.attr(\n \"transform\",\n `translate(${-bbox.width / 2 - (bbox.x - (bbox.left ?? 0))},${topLabel ? -outerHeight / 2 : outerHeight / 2 - bbox.height})`\n );\n iconShape.attr(\n \"transform\",\n `translate(${0},${topLabel ? bbox.height / 2 + labelPadding / 2 : -bbox.height / 2 - labelPadding / 2})`\n );\n updateNodeBounds(node, outerShape);\n node.intersect = function(point) {\n log.info(\"iconSquare intersect\", node, point);\n if (!node.label) {\n return intersect_default.rect(node, point);\n }\n const dx = node.x ?? 0;\n const dy = node.y ?? 0;\n const nodeHeight = node.height ?? 0;\n let points = [];\n if (topLabel) {\n points = [\n { x: dx - bbox.width / 2, y: dy - nodeHeight / 2 },\n { x: dx + bbox.width / 2, y: dy - nodeHeight / 2 },\n { x: dx + bbox.width / 2, y: dy - nodeHeight / 2 + bbox.height + labelPadding },\n { x: dx + width / 2, y: dy - nodeHeight / 2 + bbox.height + labelPadding },\n { x: dx + width / 2, y: dy + nodeHeight / 2 },\n { x: dx - width / 2, y: dy + nodeHeight / 2 },\n { x: dx - width / 2, y: dy - nodeHeight / 2 + bbox.height + labelPadding },\n { x: dx - bbox.width / 2, y: dy - nodeHeight / 2 + bbox.height + labelPadding }\n ];\n } else {\n points = [\n { x: dx - width / 2, y: dy - nodeHeight / 2 },\n { x: dx + width / 2, y: dy - nodeHeight / 2 },\n { x: dx + width / 2, y: dy - nodeHeight / 2 + height },\n { x: dx + bbox.width / 2, y: dy - nodeHeight / 2 + height },\n { x: dx + bbox.width / 2 / 2, y: dy + nodeHeight / 2 },\n { x: dx - bbox.width / 2, y: dy + nodeHeight / 2 },\n { x: dx - bbox.width / 2, y: dy - nodeHeight / 2 + height },\n { x: dx - width / 2, y: dy - nodeHeight / 2 + height }\n ];\n }\n const pos = intersect_default.polygon(node, points, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(iconRounded, \"iconRounded\");\n\n// src/rendering-util/rendering-elements/shapes/iconSquare.ts\nimport rough24 from \"roughjs\";\nasync function iconSquare(parent, node, { config: { themeVariables, flowchart } }) {\n const { labelStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const assetHeight = node.assetHeight ?? 48;\n const assetWidth = node.assetWidth ?? 48;\n const iconSize = Math.max(assetHeight, assetWidth);\n const defaultWidth = flowchart?.wrappingWidth;\n node.width = Math.max(iconSize, defaultWidth ?? 0);\n const { shapeSvg, bbox, halfPadding, label } = await labelHelper(\n parent,\n node,\n \"icon-shape default\"\n );\n const topLabel = node.pos === \"t\";\n const height = iconSize + halfPadding * 2;\n const width = iconSize + halfPadding * 2;\n const { nodeBorder, mainBkg } = themeVariables;\n const { stylesMap } = compileStyles(node);\n const x = -width / 2;\n const y = -height / 2;\n const labelPadding = node.label ? 8 : 0;\n const rc = rough24.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const fill = stylesMap.get(\"fill\");\n options.stroke = fill ?? mainBkg;\n const iconNode = rc.path(createRoundedRectPathD(x, y, width, height, 0.1), options);\n const outerWidth = Math.max(width, bbox.width);\n const outerHeight = height + bbox.height + labelPadding;\n const outerNode = rc.rectangle(-outerWidth / 2, -outerHeight / 2, outerWidth, outerHeight, {\n ...options,\n fill: \"transparent\",\n stroke: \"none\"\n });\n const iconShape = shapeSvg.insert(() => iconNode, \":first-child\");\n const outerShape = shapeSvg.insert(() => outerNode);\n if (node.icon) {\n const iconElem = shapeSvg.append(\"g\");\n iconElem.html(\n `${await getIconSVG(node.icon, {\n height: iconSize,\n width: iconSize,\n fallbackPrefix: \"\"\n })}`\n );\n const iconBBox = iconElem.node().getBBox();\n const iconWidth = iconBBox.width;\n const iconHeight = iconBBox.height;\n const iconX = iconBBox.x;\n const iconY = iconBBox.y;\n iconElem.attr(\n \"transform\",\n `translate(${-iconWidth / 2 - iconX},${topLabel ? bbox.height / 2 + labelPadding / 2 - iconHeight / 2 - iconY : -bbox.height / 2 - labelPadding / 2 - iconHeight / 2 - iconY})`\n );\n iconElem.attr(\"style\", `color: ${stylesMap.get(\"stroke\") ?? nodeBorder};`);\n }\n label.attr(\n \"transform\",\n `translate(${-bbox.width / 2 - (bbox.x - (bbox.left ?? 0))},${topLabel ? -outerHeight / 2 : outerHeight / 2 - bbox.height})`\n );\n iconShape.attr(\n \"transform\",\n `translate(${0},${topLabel ? bbox.height / 2 + labelPadding / 2 : -bbox.height / 2 - labelPadding / 2})`\n );\n updateNodeBounds(node, outerShape);\n node.intersect = function(point) {\n log.info(\"iconSquare intersect\", node, point);\n if (!node.label) {\n return intersect_default.rect(node, point);\n }\n const dx = node.x ?? 0;\n const dy = node.y ?? 0;\n const nodeHeight = node.height ?? 0;\n let points = [];\n if (topLabel) {\n points = [\n { x: dx - bbox.width / 2, y: dy - nodeHeight / 2 },\n { x: dx + bbox.width / 2, y: dy - nodeHeight / 2 },\n { x: dx + bbox.width / 2, y: dy - nodeHeight / 2 + bbox.height + labelPadding },\n { x: dx + width / 2, y: dy - nodeHeight / 2 + bbox.height + labelPadding },\n { x: dx + width / 2, y: dy + nodeHeight / 2 },\n { x: dx - width / 2, y: dy + nodeHeight / 2 },\n { x: dx - width / 2, y: dy - nodeHeight / 2 + bbox.height + labelPadding },\n { x: dx - bbox.width / 2, y: dy - nodeHeight / 2 + bbox.height + labelPadding }\n ];\n } else {\n points = [\n { x: dx - width / 2, y: dy - nodeHeight / 2 },\n { x: dx + width / 2, y: dy - nodeHeight / 2 },\n { x: dx + width / 2, y: dy - nodeHeight / 2 + height },\n { x: dx + bbox.width / 2, y: dy - nodeHeight / 2 + height },\n { x: dx + bbox.width / 2 / 2, y: dy + nodeHeight / 2 },\n { x: dx - bbox.width / 2, y: dy + nodeHeight / 2 },\n { x: dx - bbox.width / 2, y: dy - nodeHeight / 2 + height },\n { x: dx - width / 2, y: dy - nodeHeight / 2 + height }\n ];\n }\n const pos = intersect_default.polygon(node, points, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(iconSquare, \"iconSquare\");\n\n// src/rendering-util/rendering-elements/shapes/imageSquare.ts\nimport rough25 from \"roughjs\";\nasync function imageSquare(parent, node, { config: { flowchart } }) {\n const img = new Image();\n img.src = node?.img ?? \"\";\n await img.decode();\n const imageNaturalWidth = Number(img.naturalWidth.toString().replace(\"px\", \"\"));\n const imageNaturalHeight = Number(img.naturalHeight.toString().replace(\"px\", \"\"));\n node.imageAspectRatio = imageNaturalWidth / imageNaturalHeight;\n const { labelStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const defaultWidth = flowchart?.wrappingWidth;\n node.defaultWidth = flowchart?.wrappingWidth;\n const imageRawWidth = Math.max(\n node.label ? defaultWidth ?? 0 : 0,\n node?.assetWidth ?? imageNaturalWidth\n );\n const imageWidth = node.constraint === \"on\" ? node?.assetHeight ? node.assetHeight * node.imageAspectRatio : imageRawWidth : imageRawWidth;\n const imageHeight = node.constraint === \"on\" ? imageWidth / node.imageAspectRatio : node?.assetHeight ?? imageNaturalHeight;\n node.width = Math.max(imageWidth, defaultWidth ?? 0);\n const { shapeSvg, bbox, label } = await labelHelper(parent, node, \"image-shape default\");\n const topLabel = node.pos === \"t\";\n const x = -imageWidth / 2;\n const y = -imageHeight / 2;\n const labelPadding = node.label ? 8 : 0;\n const rc = rough25.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const imageNode = rc.rectangle(x, y, imageWidth, imageHeight, options);\n const outerWidth = Math.max(imageWidth, bbox.width);\n const outerHeight = imageHeight + bbox.height + labelPadding;\n const outerNode = rc.rectangle(-outerWidth / 2, -outerHeight / 2, outerWidth, outerHeight, {\n ...options,\n fill: \"none\",\n stroke: \"none\"\n });\n const iconShape = shapeSvg.insert(() => imageNode, \":first-child\");\n const outerShape = shapeSvg.insert(() => outerNode);\n if (node.img) {\n const image = shapeSvg.append(\"image\");\n image.attr(\"href\", node.img);\n image.attr(\"width\", imageWidth);\n image.attr(\"height\", imageHeight);\n image.attr(\"preserveAspectRatio\", \"none\");\n image.attr(\n \"transform\",\n `translate(${-imageWidth / 2},${topLabel ? outerHeight / 2 - imageHeight : -outerHeight / 2})`\n );\n }\n label.attr(\n \"transform\",\n `translate(${-bbox.width / 2 - (bbox.x - (bbox.left ?? 0))},${topLabel ? -imageHeight / 2 - bbox.height / 2 - labelPadding / 2 : imageHeight / 2 - bbox.height / 2 + labelPadding / 2})`\n );\n iconShape.attr(\n \"transform\",\n `translate(${0},${topLabel ? bbox.height / 2 + labelPadding / 2 : -bbox.height / 2 - labelPadding / 2})`\n );\n updateNodeBounds(node, outerShape);\n node.intersect = function(point) {\n log.info(\"iconSquare intersect\", node, point);\n if (!node.label) {\n return intersect_default.rect(node, point);\n }\n const dx = node.x ?? 0;\n const dy = node.y ?? 0;\n const nodeHeight = node.height ?? 0;\n let points = [];\n if (topLabel) {\n points = [\n { x: dx - bbox.width / 2, y: dy - nodeHeight / 2 },\n { x: dx + bbox.width / 2, y: dy - nodeHeight / 2 },\n { x: dx + bbox.width / 2, y: dy - nodeHeight / 2 + bbox.height + labelPadding },\n { x: dx + imageWidth / 2, y: dy - nodeHeight / 2 + bbox.height + labelPadding },\n { x: dx + imageWidth / 2, y: dy + nodeHeight / 2 },\n { x: dx - imageWidth / 2, y: dy + nodeHeight / 2 },\n { x: dx - imageWidth / 2, y: dy - nodeHeight / 2 + bbox.height + labelPadding },\n { x: dx - bbox.width / 2, y: dy - nodeHeight / 2 + bbox.height + labelPadding }\n ];\n } else {\n points = [\n { x: dx - imageWidth / 2, y: dy - nodeHeight / 2 },\n { x: dx + imageWidth / 2, y: dy - nodeHeight / 2 },\n { x: dx + imageWidth / 2, y: dy - nodeHeight / 2 + imageHeight },\n { x: dx + bbox.width / 2, y: dy - nodeHeight / 2 + imageHeight },\n { x: dx + bbox.width / 2 / 2, y: dy + nodeHeight / 2 },\n { x: dx - bbox.width / 2, y: dy + nodeHeight / 2 },\n { x: dx - bbox.width / 2, y: dy - nodeHeight / 2 + imageHeight },\n { x: dx - imageWidth / 2, y: dy - nodeHeight / 2 + imageHeight }\n ];\n }\n const pos = intersect_default.polygon(node, points, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(imageSquare, \"imageSquare\");\n\n// src/rendering-util/rendering-elements/shapes/invertedTrapezoid.ts\nimport rough26 from \"roughjs\";\nasync function inv_trapezoid(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox } = await labelHelper(parent, node, getNodeClasses(node));\n const w = Math.max(bbox.width + (node.padding ?? 0) * 2, node?.width ?? 0);\n const h = Math.max(bbox.height + (node.padding ?? 0) * 2, node?.height ?? 0);\n const points = [\n { x: 0, y: 0 },\n { x: w, y: 0 },\n { x: w + 3 * h / 6, y: -h },\n { x: -3 * h / 6, y: -h }\n ];\n let polygon;\n const { cssStyles } = node;\n if (node.look === \"handDrawn\") {\n const rc = rough26.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n const pathData = createPathFromPoints(points);\n const roughNode = rc.path(pathData, options);\n polygon = shapeSvg.insert(() => roughNode, \":first-child\").attr(\"transform\", `translate(${-w / 2}, ${h / 2})`);\n if (cssStyles) {\n polygon.attr(\"style\", cssStyles);\n }\n } else {\n polygon = insertPolygonShape(shapeSvg, w, h, points);\n }\n if (nodeStyles) {\n polygon.attr(\"style\", nodeStyles);\n }\n node.width = w;\n node.height = h;\n updateNodeBounds(node, polygon);\n node.intersect = function(point) {\n return intersect_default.polygon(node, points, point);\n };\n return shapeSvg;\n}\n__name(inv_trapezoid, \"inv_trapezoid\");\n\n// src/rendering-util/rendering-elements/shapes/drawRect.ts\nimport rough27 from \"roughjs\";\nasync function drawRect(parent, node, options) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox } = await labelHelper(parent, node, getNodeClasses(node));\n const totalWidth = Math.max(bbox.width + options.labelPaddingX * 2, node?.width || 0);\n const totalHeight = Math.max(bbox.height + options.labelPaddingY * 2, node?.height || 0);\n const x = -totalWidth / 2;\n const y = -totalHeight / 2;\n let rect2;\n let { rx, ry } = node;\n const { cssStyles } = node;\n if (options?.rx && options.ry) {\n rx = options.rx;\n ry = options.ry;\n }\n if (node.look === \"handDrawn\") {\n const rc = rough27.svg(shapeSvg);\n const options2 = userNodeOverrides(node, {});\n const roughNode = rx || ry ? rc.path(createRoundedRectPathD(x, y, totalWidth, totalHeight, rx || 0), options2) : rc.rectangle(x, y, totalWidth, totalHeight, options2);\n rect2 = shapeSvg.insert(() => roughNode, \":first-child\");\n rect2.attr(\"class\", \"basic label-container\").attr(\"style\", handleUndefinedAttr(cssStyles));\n } else {\n rect2 = shapeSvg.insert(\"rect\", \":first-child\");\n rect2.attr(\"class\", \"basic label-container\").attr(\"style\", nodeStyles).attr(\"rx\", handleUndefinedAttr(rx)).attr(\"ry\", handleUndefinedAttr(ry)).attr(\"x\", x).attr(\"y\", y).attr(\"width\", totalWidth).attr(\"height\", totalHeight);\n }\n updateNodeBounds(node, rect2);\n node.intersect = function(point) {\n return intersect_default.rect(node, point);\n };\n return shapeSvg;\n}\n__name(drawRect, \"drawRect\");\n\n// src/rendering-util/rendering-elements/shapes/labelRect.ts\nasync function labelRect(parent, node) {\n const { shapeSvg, bbox, label } = await labelHelper(parent, node, \"label\");\n const rect2 = shapeSvg.insert(\"rect\", \":first-child\");\n const totalWidth = 0.1;\n const totalHeight = 0.1;\n rect2.attr(\"width\", totalWidth).attr(\"height\", totalHeight);\n shapeSvg.attr(\"class\", \"label edgeLabel\");\n label.attr(\n \"transform\",\n `translate(${-(bbox.width / 2) - (bbox.x - (bbox.left ?? 0))}, ${-(bbox.height / 2) - (bbox.y - (bbox.top ?? 0))})`\n );\n updateNodeBounds(node, rect2);\n node.intersect = function(point) {\n return intersect_default.rect(node, point);\n };\n return shapeSvg;\n}\n__name(labelRect, \"labelRect\");\n\n// src/rendering-util/rendering-elements/shapes/leanLeft.ts\nimport rough28 from \"roughjs\";\nasync function lean_left(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox } = await labelHelper(parent, node, getNodeClasses(node));\n const w = Math.max(bbox.width + (node.padding ?? 0), node?.width ?? 0);\n const h = Math.max(bbox.height + (node.padding ?? 0), node?.height ?? 0);\n const points = [\n { x: 0, y: 0 },\n { x: w + 3 * h / 6, y: 0 },\n { x: w, y: -h },\n { x: -(3 * h) / 6, y: -h }\n ];\n let polygon;\n const { cssStyles } = node;\n if (node.look === \"handDrawn\") {\n const rc = rough28.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n const pathData = createPathFromPoints(points);\n const roughNode = rc.path(pathData, options);\n polygon = shapeSvg.insert(() => roughNode, \":first-child\").attr(\"transform\", `translate(${-w / 2}, ${h / 2})`);\n if (cssStyles) {\n polygon.attr(\"style\", cssStyles);\n }\n } else {\n polygon = insertPolygonShape(shapeSvg, w, h, points);\n }\n if (nodeStyles) {\n polygon.attr(\"style\", nodeStyles);\n }\n node.width = w;\n node.height = h;\n updateNodeBounds(node, polygon);\n node.intersect = function(point) {\n return intersect_default.polygon(node, points, point);\n };\n return shapeSvg;\n}\n__name(lean_left, \"lean_left\");\n\n// src/rendering-util/rendering-elements/shapes/leanRight.ts\nimport rough29 from \"roughjs\";\nasync function lean_right(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox } = await labelHelper(parent, node, getNodeClasses(node));\n const w = Math.max(bbox.width + (node.padding ?? 0), node?.width ?? 0);\n const h = Math.max(bbox.height + (node.padding ?? 0), node?.height ?? 0);\n const points = [\n { x: -3 * h / 6, y: 0 },\n { x: w, y: 0 },\n { x: w + 3 * h / 6, y: -h },\n { x: 0, y: -h }\n ];\n let polygon;\n const { cssStyles } = node;\n if (node.look === \"handDrawn\") {\n const rc = rough29.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n const pathData = createPathFromPoints(points);\n const roughNode = rc.path(pathData, options);\n polygon = shapeSvg.insert(() => roughNode, \":first-child\").attr(\"transform\", `translate(${-w / 2}, ${h / 2})`);\n if (cssStyles) {\n polygon.attr(\"style\", cssStyles);\n }\n } else {\n polygon = insertPolygonShape(shapeSvg, w, h, points);\n }\n if (nodeStyles) {\n polygon.attr(\"style\", nodeStyles);\n }\n node.width = w;\n node.height = h;\n updateNodeBounds(node, polygon);\n node.intersect = function(point) {\n return intersect_default.polygon(node, points, point);\n };\n return shapeSvg;\n}\n__name(lean_right, \"lean_right\");\n\n// src/rendering-util/rendering-elements/shapes/lightningBolt.ts\nimport rough30 from \"roughjs\";\nfunction lightningBolt(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.label = \"\";\n node.labelStyle = labelStyles;\n const shapeSvg = parent.insert(\"g\").attr(\"class\", getNodeClasses(node)).attr(\"id\", node.domId ?? node.id);\n const { cssStyles } = node;\n const width = Math.max(35, node?.width ?? 0);\n const height = Math.max(35, node?.height ?? 0);\n const gap = 7;\n const points = [\n { x: width, y: 0 },\n { x: 0, y: height + gap / 2 },\n { x: width - 2 * gap, y: height + gap / 2 },\n { x: 0, y: 2 * height },\n { x: width, y: height - gap / 2 },\n { x: 2 * gap, y: height - gap / 2 }\n ];\n const rc = rough30.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const linePath = createPathFromPoints(points);\n const lineNode = rc.path(linePath, options);\n const lightningBolt2 = shapeSvg.insert(() => lineNode, \":first-child\");\n if (cssStyles && node.look !== \"handDrawn\") {\n lightningBolt2.selectAll(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n lightningBolt2.selectAll(\"path\").attr(\"style\", nodeStyles);\n }\n lightningBolt2.attr(\"transform\", `translate(-${width / 2},${-height})`);\n updateNodeBounds(node, lightningBolt2);\n node.intersect = function(point) {\n log.info(\"lightningBolt intersect\", node, point);\n const pos = intersect_default.polygon(node, points, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(lightningBolt, \"lightningBolt\");\n\n// src/rendering-util/rendering-elements/shapes/linedCylinder.ts\nimport rough31 from \"roughjs\";\nvar createCylinderPathD2 = /* @__PURE__ */ __name((x, y, width, height, rx, ry, outerOffset) => {\n return [\n `M${x},${y + ry}`,\n `a${rx},${ry} 0,0,0 ${width},0`,\n `a${rx},${ry} 0,0,0 ${-width},0`,\n `l0,${height}`,\n `a${rx},${ry} 0,0,0 ${width},0`,\n `l0,${-height}`,\n `M${x},${y + ry + outerOffset}`,\n `a${rx},${ry} 0,0,0 ${width},0`\n ].join(\" \");\n}, \"createCylinderPathD\");\nvar createOuterCylinderPathD2 = /* @__PURE__ */ __name((x, y, width, height, rx, ry, outerOffset) => {\n return [\n `M${x},${y + ry}`,\n `M${x + width},${y + ry}`,\n `a${rx},${ry} 0,0,0 ${-width},0`,\n `l0,${height}`,\n `a${rx},${ry} 0,0,0 ${width},0`,\n `l0,${-height}`,\n `M${x},${y + ry + outerOffset}`,\n `a${rx},${ry} 0,0,0 ${width},0`\n ].join(\" \");\n}, \"createOuterCylinderPathD\");\nvar createInnerCylinderPathD2 = /* @__PURE__ */ __name((x, y, width, height, rx, ry) => {\n return [`M${x - width / 2},${-height / 2}`, `a${rx},${ry} 0,0,0 ${width},0`].join(\" \");\n}, \"createInnerCylinderPathD\");\nasync function linedCylinder(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox, label } = await labelHelper(parent, node, getNodeClasses(node));\n const w = Math.max(bbox.width + (node.padding ?? 0), node.width ?? 0);\n const rx = w / 2;\n const ry = rx / (2.5 + w / 50);\n const h = Math.max(bbox.height + ry + (node.padding ?? 0), node.height ?? 0);\n const outerOffset = h * 0.1;\n let cylinder2;\n const { cssStyles } = node;\n if (node.look === \"handDrawn\") {\n const rc = rough31.svg(shapeSvg);\n const outerPathData = createOuterCylinderPathD2(0, 0, w, h, rx, ry, outerOffset);\n const innerPathData = createInnerCylinderPathD2(0, ry, w, h, rx, ry);\n const options = userNodeOverrides(node, {});\n const outerNode = rc.path(outerPathData, options);\n const innerLine = rc.path(innerPathData, options);\n const innerLineEl = shapeSvg.insert(() => innerLine, \":first-child\");\n innerLineEl.attr(\"class\", \"line\");\n cylinder2 = shapeSvg.insert(() => outerNode, \":first-child\");\n cylinder2.attr(\"class\", \"basic label-container\");\n if (cssStyles) {\n cylinder2.attr(\"style\", cssStyles);\n }\n } else {\n const pathData = createCylinderPathD2(0, 0, w, h, rx, ry, outerOffset);\n cylinder2 = shapeSvg.insert(\"path\", \":first-child\").attr(\"d\", pathData).attr(\"class\", \"basic label-container\").attr(\"style\", handleUndefinedAttr(cssStyles)).attr(\"style\", nodeStyles);\n }\n cylinder2.attr(\"label-offset-y\", ry);\n cylinder2.attr(\"transform\", `translate(${-w / 2}, ${-(h / 2 + ry)})`);\n updateNodeBounds(node, cylinder2);\n label.attr(\n \"transform\",\n `translate(${-(bbox.width / 2) - (bbox.x - (bbox.left ?? 0))}, ${-(bbox.height / 2) + ry - (bbox.y - (bbox.top ?? 0))})`\n );\n node.intersect = function(point) {\n const pos = intersect_default.rect(node, point);\n const x = pos.x - (node.x ?? 0);\n if (rx != 0 && (Math.abs(x) < (node.width ?? 0) / 2 || Math.abs(x) == (node.width ?? 0) / 2 && Math.abs(pos.y - (node.y ?? 0)) > (node.height ?? 0) / 2 - ry)) {\n let y = ry * ry * (1 - x * x / (rx * rx));\n if (y > 0) {\n y = Math.sqrt(y);\n }\n y = ry - y;\n if (point.y - (node.y ?? 0) > 0) {\n y = -y;\n }\n pos.y += y;\n }\n return pos;\n };\n return shapeSvg;\n}\n__name(linedCylinder, \"linedCylinder\");\n\n// src/rendering-util/rendering-elements/shapes/linedWaveEdgedRect.ts\nimport rough32 from \"roughjs\";\nasync function linedWaveEdgedRect(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox, label } = await labelHelper(parent, node, getNodeClasses(node));\n const w = Math.max(bbox.width + (node.padding ?? 0) * 2, node?.width ?? 0);\n const h = Math.max(bbox.height + (node.padding ?? 0) * 2, node?.height ?? 0);\n const waveAmplitude = h / 4;\n const finalH = h + waveAmplitude;\n const { cssStyles } = node;\n const rc = rough32.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const points = [\n { x: -w / 2 - w / 2 * 0.1, y: -finalH / 2 },\n { x: -w / 2 - w / 2 * 0.1, y: finalH / 2 },\n ...generateFullSineWavePoints(\n -w / 2 - w / 2 * 0.1,\n finalH / 2,\n w / 2 + w / 2 * 0.1,\n finalH / 2,\n waveAmplitude,\n 0.8\n ),\n { x: w / 2 + w / 2 * 0.1, y: -finalH / 2 },\n { x: -w / 2 - w / 2 * 0.1, y: -finalH / 2 },\n { x: -w / 2, y: -finalH / 2 },\n { x: -w / 2, y: finalH / 2 * 1.1 },\n { x: -w / 2, y: -finalH / 2 }\n ];\n const poly = rc.polygon(\n points.map((p) => [p.x, p.y]),\n options\n );\n const waveEdgeRect = shapeSvg.insert(() => poly, \":first-child\");\n waveEdgeRect.attr(\"class\", \"basic label-container\");\n if (cssStyles && node.look !== \"handDrawn\") {\n waveEdgeRect.selectAll(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n waveEdgeRect.selectAll(\"path\").attr(\"style\", nodeStyles);\n }\n waveEdgeRect.attr(\"transform\", `translate(0,${-waveAmplitude / 2})`);\n label.attr(\n \"transform\",\n `translate(${-w / 2 + (node.padding ?? 0) + w / 2 * 0.1 / 2 - (bbox.x - (bbox.left ?? 0))},${-h / 2 + (node.padding ?? 0) - waveAmplitude / 2 - (bbox.y - (bbox.top ?? 0))})`\n );\n updateNodeBounds(node, waveEdgeRect);\n node.intersect = function(point) {\n const pos = intersect_default.polygon(node, points, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(linedWaveEdgedRect, \"linedWaveEdgedRect\");\n\n// src/rendering-util/rendering-elements/shapes/multiRect.ts\nimport rough33 from \"roughjs\";\nasync function multiRect(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox, label } = await labelHelper(parent, node, getNodeClasses(node));\n const w = Math.max(bbox.width + (node.padding ?? 0) * 2, node?.width ?? 0);\n const h = Math.max(bbox.height + (node.padding ?? 0) * 2, node?.height ?? 0);\n const rectOffset = 5;\n const x = -w / 2;\n const y = -h / 2;\n const { cssStyles } = node;\n const rc = rough33.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n const outerPathPoints = [\n { x: x - rectOffset, y: y + rectOffset },\n { x: x - rectOffset, y: y + h + rectOffset },\n { x: x + w - rectOffset, y: y + h + rectOffset },\n { x: x + w - rectOffset, y: y + h },\n { x: x + w, y: y + h },\n { x: x + w, y: y + h - rectOffset },\n { x: x + w + rectOffset, y: y + h - rectOffset },\n { x: x + w + rectOffset, y: y - rectOffset },\n { x: x + rectOffset, y: y - rectOffset },\n { x: x + rectOffset, y },\n { x, y },\n { x, y: y + rectOffset }\n ];\n const innerPathPoints = [\n { x, y: y + rectOffset },\n { x: x + w - rectOffset, y: y + rectOffset },\n { x: x + w - rectOffset, y: y + h },\n { x: x + w, y: y + h },\n { x: x + w, y },\n { x, y }\n ];\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const outerPath = createPathFromPoints(outerPathPoints);\n const outerNode = rc.path(outerPath, options);\n const innerPath = createPathFromPoints(innerPathPoints);\n const innerNode = rc.path(innerPath, { ...options, fill: \"none\" });\n const multiRect2 = shapeSvg.insert(() => innerNode, \":first-child\");\n multiRect2.insert(() => outerNode, \":first-child\");\n multiRect2.attr(\"class\", \"basic label-container\");\n if (cssStyles && node.look !== \"handDrawn\") {\n multiRect2.selectAll(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n multiRect2.selectAll(\"path\").attr(\"style\", nodeStyles);\n }\n label.attr(\n \"transform\",\n `translate(${-(bbox.width / 2) - rectOffset - (bbox.x - (bbox.left ?? 0))}, ${-(bbox.height / 2) + rectOffset - (bbox.y - (bbox.top ?? 0))})`\n );\n updateNodeBounds(node, multiRect2);\n node.intersect = function(point) {\n const pos = intersect_default.polygon(node, outerPathPoints, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(multiRect, \"multiRect\");\n\n// src/rendering-util/rendering-elements/shapes/multiWaveEdgedRectangle.ts\nimport rough34 from \"roughjs\";\nasync function multiWaveEdgedRectangle(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox, label } = await labelHelper(parent, node, getNodeClasses(node));\n const w = Math.max(bbox.width + (node.padding ?? 0) * 2, node?.width ?? 0);\n const h = Math.max(bbox.height + (node.padding ?? 0) * 2, node?.height ?? 0);\n const waveAmplitude = h / 4;\n const finalH = h + waveAmplitude;\n const x = -w / 2;\n const y = -finalH / 2;\n const rectOffset = 5;\n const { cssStyles } = node;\n const wavePoints = generateFullSineWavePoints(\n x - rectOffset,\n y + finalH + rectOffset,\n x + w - rectOffset,\n y + finalH + rectOffset,\n waveAmplitude,\n 0.8\n );\n const lastWavePoint = wavePoints?.[wavePoints.length - 1];\n const outerPathPoints = [\n { x: x - rectOffset, y: y + rectOffset },\n { x: x - rectOffset, y: y + finalH + rectOffset },\n ...wavePoints,\n { x: x + w - rectOffset, y: lastWavePoint.y - rectOffset },\n { x: x + w, y: lastWavePoint.y - rectOffset },\n { x: x + w, y: lastWavePoint.y - 2 * rectOffset },\n { x: x + w + rectOffset, y: lastWavePoint.y - 2 * rectOffset },\n { x: x + w + rectOffset, y: y - rectOffset },\n { x: x + rectOffset, y: y - rectOffset },\n { x: x + rectOffset, y },\n { x, y },\n { x, y: y + rectOffset }\n ];\n const innerPathPoints = [\n { x, y: y + rectOffset },\n { x: x + w - rectOffset, y: y + rectOffset },\n { x: x + w - rectOffset, y: lastWavePoint.y - rectOffset },\n { x: x + w, y: lastWavePoint.y - rectOffset },\n { x: x + w, y },\n { x, y }\n ];\n const rc = rough34.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const outerPath = createPathFromPoints(outerPathPoints);\n const outerNode = rc.path(outerPath, options);\n const innerPath = createPathFromPoints(innerPathPoints);\n const innerNode = rc.path(innerPath, options);\n const shape = shapeSvg.insert(() => outerNode, \":first-child\");\n shape.insert(() => innerNode);\n shape.attr(\"class\", \"basic label-container\");\n if (cssStyles && node.look !== \"handDrawn\") {\n shape.selectAll(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n shape.selectAll(\"path\").attr(\"style\", nodeStyles);\n }\n shape.attr(\"transform\", `translate(0,${-waveAmplitude / 2})`);\n label.attr(\n \"transform\",\n `translate(${-(bbox.width / 2) - rectOffset - (bbox.x - (bbox.left ?? 0))}, ${-(bbox.height / 2) + rectOffset - waveAmplitude / 2 - (bbox.y - (bbox.top ?? 0))})`\n );\n updateNodeBounds(node, shape);\n node.intersect = function(point) {\n const pos = intersect_default.polygon(node, outerPathPoints, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(multiWaveEdgedRectangle, \"multiWaveEdgedRectangle\");\n\n// src/rendering-util/rendering-elements/shapes/note.ts\nimport rough35 from \"roughjs\";\nasync function note(parent, node, { config: { themeVariables } }) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const useHtmlLabels = node.useHtmlLabels || getConfig().flowchart?.htmlLabels !== false;\n if (!useHtmlLabels) {\n node.centerLabel = true;\n }\n const { shapeSvg, bbox } = await labelHelper(parent, node, getNodeClasses(node));\n const totalWidth = Math.max(bbox.width + (node.padding ?? 0) * 2, node?.width ?? 0);\n const totalHeight = Math.max(bbox.height + (node.padding ?? 0) * 2, node?.height ?? 0);\n const x = -totalWidth / 2;\n const y = -totalHeight / 2;\n const { cssStyles } = node;\n const rc = rough35.svg(shapeSvg);\n const options = userNodeOverrides(node, {\n fill: themeVariables.noteBkgColor,\n stroke: themeVariables.noteBorderColor\n });\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const noteShapeNode = rc.rectangle(x, y, totalWidth, totalHeight, options);\n const rect2 = shapeSvg.insert(() => noteShapeNode, \":first-child\");\n rect2.attr(\"class\", \"basic label-container\");\n if (cssStyles && node.look !== \"handDrawn\") {\n rect2.selectAll(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n rect2.selectAll(\"path\").attr(\"style\", nodeStyles);\n }\n updateNodeBounds(node, rect2);\n node.intersect = function(point) {\n return intersect_default.rect(node, point);\n };\n return shapeSvg;\n}\n__name(note, \"note\");\n\n// src/rendering-util/rendering-elements/shapes/question.ts\nimport rough36 from \"roughjs\";\nvar createDecisionBoxPathD = /* @__PURE__ */ __name((x, y, size) => {\n return [\n `M${x + size / 2},${y}`,\n `L${x + size},${y - size / 2}`,\n `L${x + size / 2},${y - size}`,\n `L${x},${y - size / 2}`,\n \"Z\"\n ].join(\" \");\n}, \"createDecisionBoxPathD\");\nasync function question(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox } = await labelHelper(parent, node, getNodeClasses(node));\n const w = bbox.width + node.padding;\n const h = bbox.height + node.padding;\n const s = w + h;\n const points = [\n { x: s / 2, y: 0 },\n { x: s, y: -s / 2 },\n { x: s / 2, y: -s },\n { x: 0, y: -s / 2 }\n ];\n let polygon;\n const { cssStyles } = node;\n if (node.look === \"handDrawn\") {\n const rc = rough36.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n const pathData = createDecisionBoxPathD(0, 0, s);\n const roughNode = rc.path(pathData, options);\n polygon = shapeSvg.insert(() => roughNode, \":first-child\").attr(\"transform\", `translate(${-s / 2}, ${s / 2})`);\n if (cssStyles) {\n polygon.attr(\"style\", cssStyles);\n }\n } else {\n polygon = insertPolygonShape(shapeSvg, s, s, points);\n }\n if (nodeStyles) {\n polygon.attr(\"style\", nodeStyles);\n }\n updateNodeBounds(node, polygon);\n node.intersect = function(point) {\n log.debug(\n \"APA12 Intersect called SPLIT\\npoint:\",\n point,\n \"\\nnode:\\n\",\n node,\n \"\\nres:\",\n intersect_default.polygon(node, points, point)\n );\n return intersect_default.polygon(node, points, point);\n };\n return shapeSvg;\n}\n__name(question, \"question\");\n\n// src/rendering-util/rendering-elements/shapes/rectLeftInvArrow.ts\nimport rough37 from \"roughjs\";\nasync function rect_left_inv_arrow(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox, label } = await labelHelper(parent, node, getNodeClasses(node));\n const w = Math.max(bbox.width + (node.padding ?? 0), node?.width ?? 0);\n const h = Math.max(bbox.height + (node.padding ?? 0), node?.height ?? 0);\n const x = -w / 2;\n const y = -h / 2;\n const notch = y / 2;\n const points = [\n { x: x + notch, y },\n { x, y: 0 },\n { x: x + notch, y: -y },\n { x: -x, y: -y },\n { x: -x, y }\n ];\n const { cssStyles } = node;\n const rc = rough37.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const pathData = createPathFromPoints(points);\n const roughNode = rc.path(pathData, options);\n const polygon = shapeSvg.insert(() => roughNode, \":first-child\");\n polygon.attr(\"class\", \"basic label-container\");\n if (cssStyles && node.look !== \"handDrawn\") {\n polygon.selectAll(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n polygon.selectAll(\"path\").attr(\"style\", nodeStyles);\n }\n polygon.attr(\"transform\", `translate(${-notch / 2},0)`);\n label.attr(\n \"transform\",\n `translate(${-notch / 2 - bbox.width / 2 - (bbox.x - (bbox.left ?? 0))}, ${-(bbox.height / 2) - (bbox.y - (bbox.top ?? 0))})`\n );\n updateNodeBounds(node, polygon);\n node.intersect = function(point) {\n return intersect_default.polygon(node, points, point);\n };\n return shapeSvg;\n}\n__name(rect_left_inv_arrow, \"rect_left_inv_arrow\");\n\n// src/rendering-util/rendering-elements/shapes/rectWithTitle.ts\nimport { select as select4 } from \"d3\";\nimport rough38 from \"roughjs\";\nasync function rectWithTitle(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n let classes;\n if (!node.cssClasses) {\n classes = \"node default\";\n } else {\n classes = \"node \" + node.cssClasses;\n }\n const shapeSvg = parent.insert(\"g\").attr(\"class\", classes).attr(\"id\", node.domId || node.id);\n const g = shapeSvg.insert(\"g\");\n const label = shapeSvg.insert(\"g\").attr(\"class\", \"label\").attr(\"style\", nodeStyles);\n const description = node.description;\n const title = node.label;\n const text2 = label.node().appendChild(await createLabel_default(title, node.labelStyle, true, true));\n let bbox = { width: 0, height: 0 };\n if (evaluate(getConfig2()?.flowchart?.htmlLabels)) {\n const div2 = text2.children[0];\n const dv2 = select4(text2);\n bbox = div2.getBoundingClientRect();\n dv2.attr(\"width\", bbox.width);\n dv2.attr(\"height\", bbox.height);\n }\n log.info(\"Text 2\", description);\n const textRows = description || [];\n const titleBox = text2.getBBox();\n const descr = label.node().appendChild(\n await createLabel_default(\n textRows.join ? textRows.join(\"
    \") : textRows,\n node.labelStyle,\n true,\n true\n )\n );\n const div = descr.children[0];\n const dv = select4(descr);\n bbox = div.getBoundingClientRect();\n dv.attr(\"width\", bbox.width);\n dv.attr(\"height\", bbox.height);\n const halfPadding = (node.padding || 0) / 2;\n select4(descr).attr(\n \"transform\",\n \"translate( \" + (bbox.width > titleBox.width ? 0 : (titleBox.width - bbox.width) / 2) + \", \" + (titleBox.height + halfPadding + 5) + \")\"\n );\n select4(text2).attr(\n \"transform\",\n \"translate( \" + (bbox.width < titleBox.width ? 0 : -(titleBox.width - bbox.width) / 2) + \", 0)\"\n );\n bbox = label.node().getBBox();\n label.attr(\n \"transform\",\n \"translate(\" + -bbox.width / 2 + \", \" + (-bbox.height / 2 - halfPadding + 3) + \")\"\n );\n const totalWidth = bbox.width + (node.padding || 0);\n const totalHeight = bbox.height + (node.padding || 0);\n const x = -bbox.width / 2 - halfPadding;\n const y = -bbox.height / 2 - halfPadding;\n let rect2;\n let innerLine;\n if (node.look === \"handDrawn\") {\n const rc = rough38.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n const roughNode = rc.path(\n createRoundedRectPathD(x, y, totalWidth, totalHeight, node.rx || 0),\n options\n );\n const roughLine = rc.line(\n -bbox.width / 2 - halfPadding,\n -bbox.height / 2 - halfPadding + titleBox.height + halfPadding,\n bbox.width / 2 + halfPadding,\n -bbox.height / 2 - halfPadding + titleBox.height + halfPadding,\n options\n );\n innerLine = shapeSvg.insert(() => {\n log.debug(\"Rough node insert CXC\", roughNode);\n return roughLine;\n }, \":first-child\");\n rect2 = shapeSvg.insert(() => {\n log.debug(\"Rough node insert CXC\", roughNode);\n return roughNode;\n }, \":first-child\");\n } else {\n rect2 = g.insert(\"rect\", \":first-child\");\n innerLine = g.insert(\"line\");\n rect2.attr(\"class\", \"outer title-state\").attr(\"style\", nodeStyles).attr(\"x\", -bbox.width / 2 - halfPadding).attr(\"y\", -bbox.height / 2 - halfPadding).attr(\"width\", bbox.width + (node.padding || 0)).attr(\"height\", bbox.height + (node.padding || 0));\n innerLine.attr(\"class\", \"divider\").attr(\"x1\", -bbox.width / 2 - halfPadding).attr(\"x2\", bbox.width / 2 + halfPadding).attr(\"y1\", -bbox.height / 2 - halfPadding + titleBox.height + halfPadding).attr(\"y2\", -bbox.height / 2 - halfPadding + titleBox.height + halfPadding);\n }\n updateNodeBounds(node, rect2);\n node.intersect = function(point) {\n return intersect_default.rect(node, point);\n };\n return shapeSvg;\n}\n__name(rectWithTitle, \"rectWithTitle\");\n\n// src/rendering-util/rendering-elements/shapes/roundedRect.ts\nasync function roundedRect(parent, node) {\n const options = {\n rx: 5,\n ry: 5,\n classes: \"\",\n labelPaddingX: (node?.padding || 0) * 1,\n labelPaddingY: (node?.padding || 0) * 1\n };\n return drawRect(parent, node, options);\n}\n__name(roundedRect, \"roundedRect\");\n\n// src/rendering-util/rendering-elements/shapes/shadedProcess.ts\nimport rough39 from \"roughjs\";\nasync function shadedProcess(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox, label } = await labelHelper(parent, node, getNodeClasses(node));\n const halfPadding = node?.padding ?? 0;\n const w = Math.max(bbox.width + (node.padding ?? 0) * 2, node?.width ?? 0);\n const h = Math.max(bbox.height + (node.padding ?? 0) * 2, node?.height ?? 0);\n const x = -bbox.width / 2 - halfPadding;\n const y = -bbox.height / 2 - halfPadding;\n const { cssStyles } = node;\n const rc = rough39.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const points = [\n { x, y },\n { x: x + w + 8, y },\n { x: x + w + 8, y: y + h },\n { x: x - 8, y: y + h },\n { x: x - 8, y },\n { x, y },\n { x, y: y + h }\n ];\n const roughNode = rc.polygon(\n points.map((p) => [p.x, p.y]),\n options\n );\n const rect2 = shapeSvg.insert(() => roughNode, \":first-child\");\n rect2.attr(\"class\", \"basic label-container\").attr(\"style\", handleUndefinedAttr(cssStyles));\n if (nodeStyles && node.look !== \"handDrawn\") {\n rect2.selectAll(\"path\").attr(\"style\", nodeStyles);\n }\n if (cssStyles && node.look !== \"handDrawn\") {\n rect2.selectAll(\"path\").attr(\"style\", nodeStyles);\n }\n label.attr(\n \"transform\",\n `translate(${-w / 2 + 4 + (node.padding ?? 0) - (bbox.x - (bbox.left ?? 0))},${-h / 2 + (node.padding ?? 0) - (bbox.y - (bbox.top ?? 0))})`\n );\n updateNodeBounds(node, rect2);\n node.intersect = function(point) {\n return intersect_default.rect(node, point);\n };\n return shapeSvg;\n}\n__name(shadedProcess, \"shadedProcess\");\n\n// src/rendering-util/rendering-elements/shapes/slopedRect.ts\nimport rough40 from \"roughjs\";\nasync function slopedRect(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox, label } = await labelHelper(parent, node, getNodeClasses(node));\n const w = Math.max(bbox.width + (node.padding ?? 0) * 2, node?.width ?? 0);\n const h = Math.max(bbox.height + (node.padding ?? 0) * 2, node?.height ?? 0);\n const x = -w / 2;\n const y = -h / 2;\n const { cssStyles } = node;\n const rc = rough40.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const points = [\n { x, y },\n { x, y: y + h },\n { x: x + w, y: y + h },\n { x: x + w, y: y - h / 2 }\n ];\n const pathData = createPathFromPoints(points);\n const shapeNode = rc.path(pathData, options);\n const polygon = shapeSvg.insert(() => shapeNode, \":first-child\");\n polygon.attr(\"class\", \"basic label-container\");\n if (cssStyles && node.look !== \"handDrawn\") {\n polygon.selectChildren(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n polygon.selectChildren(\"path\").attr(\"style\", nodeStyles);\n }\n polygon.attr(\"transform\", `translate(0, ${h / 4})`);\n label.attr(\n \"transform\",\n `translate(${-w / 2 + (node.padding ?? 0) - (bbox.x - (bbox.left ?? 0))}, ${-h / 4 + (node.padding ?? 0) - (bbox.y - (bbox.top ?? 0))})`\n );\n updateNodeBounds(node, polygon);\n node.intersect = function(point) {\n const pos = intersect_default.polygon(node, points, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(slopedRect, \"slopedRect\");\n\n// src/rendering-util/rendering-elements/shapes/squareRect.ts\nasync function squareRect2(parent, node) {\n const options = {\n rx: 0,\n ry: 0,\n classes: \"\",\n labelPaddingX: (node?.padding || 0) * 2,\n labelPaddingY: (node?.padding || 0) * 1\n };\n return drawRect(parent, node, options);\n}\n__name(squareRect2, \"squareRect\");\n\n// src/rendering-util/rendering-elements/shapes/stadium.ts\nimport rough41 from \"roughjs\";\nasync function stadium(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox } = await labelHelper(parent, node, getNodeClasses(node));\n const h = bbox.height + node.padding;\n const w = bbox.width + h / 4 + node.padding;\n let rect2;\n const { cssStyles } = node;\n if (node.look === \"handDrawn\") {\n const rc = rough41.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n const pathData = createRoundedRectPathD(-w / 2, -h / 2, w, h, h / 2);\n const roughNode = rc.path(pathData, options);\n rect2 = shapeSvg.insert(() => roughNode, \":first-child\");\n rect2.attr(\"class\", \"basic label-container\").attr(\"style\", handleUndefinedAttr(cssStyles));\n } else {\n rect2 = shapeSvg.insert(\"rect\", \":first-child\");\n rect2.attr(\"class\", \"basic label-container\").attr(\"style\", nodeStyles).attr(\"rx\", h / 2).attr(\"ry\", h / 2).attr(\"x\", -w / 2).attr(\"y\", -h / 2).attr(\"width\", w).attr(\"height\", h);\n }\n updateNodeBounds(node, rect2);\n node.intersect = function(point) {\n return intersect_default.rect(node, point);\n };\n return shapeSvg;\n}\n__name(stadium, \"stadium\");\n\n// src/rendering-util/rendering-elements/shapes/state.ts\nasync function state(parent, node) {\n const options = {\n rx: 5,\n ry: 5,\n classes: \"flowchart-node\"\n };\n return drawRect(parent, node, options);\n}\n__name(state, \"state\");\n\n// src/rendering-util/rendering-elements/shapes/stateEnd.ts\nimport rough42 from \"roughjs\";\nfunction stateEnd(parent, node, { config: { themeVariables } }) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { cssStyles } = node;\n const { lineColor, stateBorder, nodeBorder } = themeVariables;\n const shapeSvg = parent.insert(\"g\").attr(\"class\", \"node default\").attr(\"id\", node.domId || node.id);\n const rc = rough42.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const roughNode = rc.circle(0, 0, 14, {\n ...options,\n stroke: lineColor,\n strokeWidth: 2\n });\n const innerFill = stateBorder ?? nodeBorder;\n const roughInnerNode = rc.circle(0, 0, 5, {\n ...options,\n fill: innerFill,\n stroke: innerFill,\n strokeWidth: 2,\n fillStyle: \"solid\"\n });\n const circle2 = shapeSvg.insert(() => roughNode, \":first-child\");\n circle2.insert(() => roughInnerNode);\n if (cssStyles) {\n circle2.selectAll(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles) {\n circle2.selectAll(\"path\").attr(\"style\", nodeStyles);\n }\n updateNodeBounds(node, circle2);\n node.intersect = function(point) {\n return intersect_default.circle(node, 7, point);\n };\n return shapeSvg;\n}\n__name(stateEnd, \"stateEnd\");\n\n// src/rendering-util/rendering-elements/shapes/stateStart.ts\nimport rough43 from \"roughjs\";\nfunction stateStart(parent, node, { config: { themeVariables } }) {\n const { lineColor } = themeVariables;\n const shapeSvg = parent.insert(\"g\").attr(\"class\", \"node default\").attr(\"id\", node.domId || node.id);\n let circle2;\n if (node.look === \"handDrawn\") {\n const rc = rough43.svg(shapeSvg);\n const roughNode = rc.circle(0, 0, 14, solidStateFill(lineColor));\n circle2 = shapeSvg.insert(() => roughNode);\n circle2.attr(\"class\", \"state-start\").attr(\"r\", 7).attr(\"width\", 14).attr(\"height\", 14);\n } else {\n circle2 = shapeSvg.insert(\"circle\", \":first-child\");\n circle2.attr(\"class\", \"state-start\").attr(\"r\", 7).attr(\"width\", 14).attr(\"height\", 14);\n }\n updateNodeBounds(node, circle2);\n node.intersect = function(point) {\n return intersect_default.circle(node, 7, point);\n };\n return shapeSvg;\n}\n__name(stateStart, \"stateStart\");\n\n// src/rendering-util/rendering-elements/shapes/subroutine.ts\nimport rough44 from \"roughjs\";\nasync function subroutine(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox } = await labelHelper(parent, node, getNodeClasses(node));\n const halfPadding = (node?.padding || 0) / 2;\n const w = bbox.width + node.padding;\n const h = bbox.height + node.padding;\n const x = -bbox.width / 2 - halfPadding;\n const y = -bbox.height / 2 - halfPadding;\n const points = [\n { x: 0, y: 0 },\n { x: w, y: 0 },\n { x: w, y: -h },\n { x: 0, y: -h },\n { x: 0, y: 0 },\n { x: -8, y: 0 },\n { x: w + 8, y: 0 },\n { x: w + 8, y: -h },\n { x: -8, y: -h },\n { x: -8, y: 0 }\n ];\n if (node.look === \"handDrawn\") {\n const rc = rough44.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n const roughNode = rc.rectangle(x - 8, y, w + 16, h, options);\n const l1 = rc.line(x, y, x, y + h, options);\n const l2 = rc.line(x + w, y, x + w, y + h, options);\n shapeSvg.insert(() => l1, \":first-child\");\n shapeSvg.insert(() => l2, \":first-child\");\n const rect2 = shapeSvg.insert(() => roughNode, \":first-child\");\n const { cssStyles } = node;\n rect2.attr(\"class\", \"basic label-container\").attr(\"style\", handleUndefinedAttr(cssStyles));\n updateNodeBounds(node, rect2);\n } else {\n const el = insertPolygonShape(shapeSvg, w, h, points);\n if (nodeStyles) {\n el.attr(\"style\", nodeStyles);\n }\n updateNodeBounds(node, el);\n }\n node.intersect = function(point) {\n return intersect_default.polygon(node, points, point);\n };\n return shapeSvg;\n}\n__name(subroutine, \"subroutine\");\n\n// src/rendering-util/rendering-elements/shapes/taggedRect.ts\nimport rough45 from \"roughjs\";\nasync function taggedRect(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox } = await labelHelper(parent, node, getNodeClasses(node));\n const w = Math.max(bbox.width + (node.padding ?? 0) * 2, node?.width ?? 0);\n const h = Math.max(bbox.height + (node.padding ?? 0) * 2, node?.height ?? 0);\n const x = -w / 2;\n const y = -h / 2;\n const tagWidth = 0.2 * h;\n const tagHeight = 0.2 * h;\n const { cssStyles } = node;\n const rc = rough45.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n const rectPoints = [\n { x: x - tagWidth / 2, y },\n { x: x + w + tagWidth / 2, y },\n { x: x + w + tagWidth / 2, y: y + h },\n { x: x - tagWidth / 2, y: y + h }\n ];\n const tagPoints = [\n { x: x + w - tagWidth / 2, y: y + h },\n { x: x + w + tagWidth / 2, y: y + h },\n { x: x + w + tagWidth / 2, y: y + h - tagHeight }\n ];\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const rectPath = createPathFromPoints(rectPoints);\n const rectNode = rc.path(rectPath, options);\n const tagPath = createPathFromPoints(tagPoints);\n const tagNode = rc.path(tagPath, { ...options, fillStyle: \"solid\" });\n const taggedRect2 = shapeSvg.insert(() => tagNode, \":first-child\");\n taggedRect2.insert(() => rectNode, \":first-child\");\n taggedRect2.attr(\"class\", \"basic label-container\");\n if (cssStyles && node.look !== \"handDrawn\") {\n taggedRect2.selectAll(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n taggedRect2.selectAll(\"path\").attr(\"style\", nodeStyles);\n }\n updateNodeBounds(node, taggedRect2);\n node.intersect = function(point) {\n const pos = intersect_default.polygon(node, rectPoints, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(taggedRect, \"taggedRect\");\n\n// src/rendering-util/rendering-elements/shapes/taggedWaveEdgedRectangle.ts\nimport rough46 from \"roughjs\";\nasync function taggedWaveEdgedRectangle(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox, label } = await labelHelper(parent, node, getNodeClasses(node));\n const w = Math.max(bbox.width + (node.padding ?? 0) * 2, node?.width ?? 0);\n const h = Math.max(bbox.height + (node.padding ?? 0) * 2, node?.height ?? 0);\n const waveAmplitude = h / 4;\n const tagWidth = 0.2 * w;\n const tagHeight = 0.2 * h;\n const finalH = h + waveAmplitude;\n const { cssStyles } = node;\n const rc = rough46.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const points = [\n { x: -w / 2 - w / 2 * 0.1, y: finalH / 2 },\n ...generateFullSineWavePoints(\n -w / 2 - w / 2 * 0.1,\n finalH / 2,\n w / 2 + w / 2 * 0.1,\n finalH / 2,\n waveAmplitude,\n 0.8\n ),\n { x: w / 2 + w / 2 * 0.1, y: -finalH / 2 },\n { x: -w / 2 - w / 2 * 0.1, y: -finalH / 2 }\n ];\n const x = -w / 2 + w / 2 * 0.1;\n const y = -finalH / 2 - tagHeight * 0.4;\n const tagPoints = [\n { x: x + w - tagWidth, y: (y + h) * 1.4 },\n { x: x + w, y: y + h - tagHeight },\n { x: x + w, y: (y + h) * 0.9 },\n ...generateFullSineWavePoints(\n x + w,\n (y + h) * 1.3,\n x + w - tagWidth,\n (y + h) * 1.5,\n -h * 0.03,\n 0.5\n )\n ];\n const waveEdgeRectPath = createPathFromPoints(points);\n const waveEdgeRectNode = rc.path(waveEdgeRectPath, options);\n const taggedWaveEdgeRectPath = createPathFromPoints(tagPoints);\n const taggedWaveEdgeRectNode = rc.path(taggedWaveEdgeRectPath, {\n ...options,\n fillStyle: \"solid\"\n });\n const waveEdgeRect = shapeSvg.insert(() => taggedWaveEdgeRectNode, \":first-child\");\n waveEdgeRect.insert(() => waveEdgeRectNode, \":first-child\");\n waveEdgeRect.attr(\"class\", \"basic label-container\");\n if (cssStyles && node.look !== \"handDrawn\") {\n waveEdgeRect.selectAll(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n waveEdgeRect.selectAll(\"path\").attr(\"style\", nodeStyles);\n }\n waveEdgeRect.attr(\"transform\", `translate(0,${-waveAmplitude / 2})`);\n label.attr(\n \"transform\",\n `translate(${-w / 2 + (node.padding ?? 0) - (bbox.x - (bbox.left ?? 0))},${-h / 2 + (node.padding ?? 0) - waveAmplitude / 2 - (bbox.y - (bbox.top ?? 0))})`\n );\n updateNodeBounds(node, waveEdgeRect);\n node.intersect = function(point) {\n const pos = intersect_default.polygon(node, points, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(taggedWaveEdgedRectangle, \"taggedWaveEdgedRectangle\");\n\n// src/rendering-util/rendering-elements/shapes/text.ts\nasync function text(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox } = await labelHelper(parent, node, getNodeClasses(node));\n const totalWidth = Math.max(bbox.width + node.padding, node?.width || 0);\n const totalHeight = Math.max(bbox.height + node.padding, node?.height || 0);\n const x = -totalWidth / 2;\n const y = -totalHeight / 2;\n const rect2 = shapeSvg.insert(\"rect\", \":first-child\");\n rect2.attr(\"class\", \"text\").attr(\"style\", nodeStyles).attr(\"rx\", 0).attr(\"ry\", 0).attr(\"x\", x).attr(\"y\", y).attr(\"width\", totalWidth).attr(\"height\", totalHeight);\n updateNodeBounds(node, rect2);\n node.intersect = function(point) {\n return intersect_default.rect(node, point);\n };\n return shapeSvg;\n}\n__name(text, \"text\");\n\n// src/rendering-util/rendering-elements/shapes/tiltedCylinder.ts\nimport rough47 from \"roughjs\";\nvar createCylinderPathD3 = /* @__PURE__ */ __name((x, y, width, height, rx, ry) => {\n return `M${x},${y}\n a${rx},${ry} 0,0,1 ${0},${-height}\n l${width},${0}\n a${rx},${ry} 0,0,1 ${0},${height}\n M${width},${-height}\n a${rx},${ry} 0,0,0 ${0},${height}\n l${-width},${0}`;\n}, \"createCylinderPathD\");\nvar createOuterCylinderPathD3 = /* @__PURE__ */ __name((x, y, width, height, rx, ry) => {\n return [\n `M${x},${y}`,\n `M${x + width},${y}`,\n `a${rx},${ry} 0,0,0 ${0},${-height}`,\n `l${-width},0`,\n `a${rx},${ry} 0,0,0 ${0},${height}`,\n `l${width},0`\n ].join(\" \");\n}, \"createOuterCylinderPathD\");\nvar createInnerCylinderPathD3 = /* @__PURE__ */ __name((x, y, width, height, rx, ry) => {\n return [`M${x + width / 2},${-height / 2}`, `a${rx},${ry} 0,0,0 0,${height}`].join(\" \");\n}, \"createInnerCylinderPathD\");\nasync function tiltedCylinder(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox, label, halfPadding } = await labelHelper(\n parent,\n node,\n getNodeClasses(node)\n );\n const labelPadding = node.look === \"neo\" ? halfPadding * 2 : halfPadding;\n const h = bbox.height + labelPadding;\n const ry = h / 2;\n const rx = ry / (2.5 + h / 50);\n const w = bbox.width + rx + labelPadding;\n const { cssStyles } = node;\n let cylinder2;\n if (node.look === \"handDrawn\") {\n const rc = rough47.svg(shapeSvg);\n const outerPathData = createOuterCylinderPathD3(0, 0, w, h, rx, ry);\n const innerPathData = createInnerCylinderPathD3(0, 0, w, h, rx, ry);\n const outerNode = rc.path(outerPathData, userNodeOverrides(node, {}));\n const innerLine = rc.path(innerPathData, userNodeOverrides(node, { fill: \"none\" }));\n cylinder2 = shapeSvg.insert(() => innerLine, \":first-child\");\n cylinder2 = shapeSvg.insert(() => outerNode, \":first-child\");\n cylinder2.attr(\"class\", \"basic label-container\");\n if (cssStyles) {\n cylinder2.attr(\"style\", cssStyles);\n }\n } else {\n const pathData = createCylinderPathD3(0, 0, w, h, rx, ry);\n cylinder2 = shapeSvg.insert(\"path\", \":first-child\").attr(\"d\", pathData).attr(\"class\", \"basic label-container\").attr(\"style\", handleUndefinedAttr(cssStyles)).attr(\"style\", nodeStyles);\n cylinder2.attr(\"class\", \"basic label-container\");\n if (cssStyles) {\n cylinder2.selectAll(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles) {\n cylinder2.selectAll(\"path\").attr(\"style\", nodeStyles);\n }\n }\n cylinder2.attr(\"label-offset-x\", rx);\n cylinder2.attr(\"transform\", `translate(${-w / 2}, ${h / 2} )`);\n label.attr(\n \"transform\",\n `translate(${-(bbox.width / 2) - rx - (bbox.x - (bbox.left ?? 0))}, ${-(bbox.height / 2) - (bbox.y - (bbox.top ?? 0))})`\n );\n updateNodeBounds(node, cylinder2);\n node.intersect = function(point) {\n const pos = intersect_default.rect(node, point);\n const y = pos.y - (node.y ?? 0);\n if (ry != 0 && (Math.abs(y) < (node.height ?? 0) / 2 || Math.abs(y) == (node.height ?? 0) / 2 && Math.abs(pos.x - (node.x ?? 0)) > (node.width ?? 0) / 2 - rx)) {\n let x = rx * rx * (1 - y * y / (ry * ry));\n if (x != 0) {\n x = Math.sqrt(Math.abs(x));\n }\n x = rx - x;\n if (point.x - (node.x ?? 0) > 0) {\n x = -x;\n }\n pos.x += x;\n }\n return pos;\n };\n return shapeSvg;\n}\n__name(tiltedCylinder, \"tiltedCylinder\");\n\n// src/rendering-util/rendering-elements/shapes/trapezoid.ts\nimport rough48 from \"roughjs\";\nasync function trapezoid(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox } = await labelHelper(parent, node, getNodeClasses(node));\n const w = bbox.width + node.padding;\n const h = bbox.height + node.padding;\n const points = [\n { x: -3 * h / 6, y: 0 },\n { x: w + 3 * h / 6, y: 0 },\n { x: w, y: -h },\n { x: 0, y: -h }\n ];\n let polygon;\n const { cssStyles } = node;\n if (node.look === \"handDrawn\") {\n const rc = rough48.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n const pathData = createPathFromPoints(points);\n const roughNode = rc.path(pathData, options);\n polygon = shapeSvg.insert(() => roughNode, \":first-child\").attr(\"transform\", `translate(${-w / 2}, ${h / 2})`);\n if (cssStyles) {\n polygon.attr(\"style\", cssStyles);\n }\n } else {\n polygon = insertPolygonShape(shapeSvg, w, h, points);\n }\n if (nodeStyles) {\n polygon.attr(\"style\", nodeStyles);\n }\n node.width = w;\n node.height = h;\n updateNodeBounds(node, polygon);\n node.intersect = function(point) {\n return intersect_default.polygon(node, points, point);\n };\n return shapeSvg;\n}\n__name(trapezoid, \"trapezoid\");\n\n// src/rendering-util/rendering-elements/shapes/trapezoidalPentagon.ts\nimport rough49 from \"roughjs\";\nasync function trapezoidalPentagon(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox } = await labelHelper(parent, node, getNodeClasses(node));\n const minWidth = 60, minHeight = 20;\n const w = Math.max(minWidth, bbox.width + (node.padding ?? 0) * 2, node?.width ?? 0);\n const h = Math.max(minHeight, bbox.height + (node.padding ?? 0) * 2, node?.height ?? 0);\n const { cssStyles } = node;\n const rc = rough49.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const points = [\n { x: -w / 2 * 0.8, y: -h / 2 },\n { x: w / 2 * 0.8, y: -h / 2 },\n { x: w / 2, y: -h / 2 * 0.6 },\n { x: w / 2, y: h / 2 },\n { x: -w / 2, y: h / 2 },\n { x: -w / 2, y: -h / 2 * 0.6 }\n ];\n const pathData = createPathFromPoints(points);\n const shapeNode = rc.path(pathData, options);\n const polygon = shapeSvg.insert(() => shapeNode, \":first-child\");\n polygon.attr(\"class\", \"basic label-container\");\n if (cssStyles && node.look !== \"handDrawn\") {\n polygon.selectChildren(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n polygon.selectChildren(\"path\").attr(\"style\", nodeStyles);\n }\n updateNodeBounds(node, polygon);\n node.intersect = function(point) {\n const pos = intersect_default.polygon(node, points, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(trapezoidalPentagon, \"trapezoidalPentagon\");\n\n// src/rendering-util/rendering-elements/shapes/triangle.ts\nimport rough50 from \"roughjs\";\nasync function triangle(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox, label } = await labelHelper(parent, node, getNodeClasses(node));\n const useHtmlLabels = evaluate(getConfig2().flowchart?.htmlLabels);\n const w = bbox.width + (node.padding ?? 0);\n const h = w + bbox.height;\n const tw = w + bbox.height;\n const points = [\n { x: 0, y: 0 },\n { x: tw, y: 0 },\n { x: tw / 2, y: -h }\n ];\n const { cssStyles } = node;\n const rc = rough50.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const pathData = createPathFromPoints(points);\n const roughNode = rc.path(pathData, options);\n const polygon = shapeSvg.insert(() => roughNode, \":first-child\").attr(\"transform\", `translate(${-h / 2}, ${h / 2})`);\n if (cssStyles && node.look !== \"handDrawn\") {\n polygon.selectChildren(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n polygon.selectChildren(\"path\").attr(\"style\", nodeStyles);\n }\n node.width = w;\n node.height = h;\n updateNodeBounds(node, polygon);\n label.attr(\n \"transform\",\n `translate(${-bbox.width / 2 - (bbox.x - (bbox.left ?? 0))}, ${h / 2 - (bbox.height + (node.padding ?? 0) / (useHtmlLabels ? 2 : 1) - (bbox.y - (bbox.top ?? 0)))})`\n );\n node.intersect = function(point) {\n log.info(\"Triangle intersect\", node, points, point);\n return intersect_default.polygon(node, points, point);\n };\n return shapeSvg;\n}\n__name(triangle, \"triangle\");\n\n// src/rendering-util/rendering-elements/shapes/waveEdgedRectangle.ts\nimport rough51 from \"roughjs\";\nasync function waveEdgedRectangle(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox, label } = await labelHelper(parent, node, getNodeClasses(node));\n const w = Math.max(bbox.width + (node.padding ?? 0) * 2, node?.width ?? 0);\n const h = Math.max(bbox.height + (node.padding ?? 0) * 2, node?.height ?? 0);\n const waveAmplitude = h / 8;\n const finalH = h + waveAmplitude;\n const { cssStyles } = node;\n const minWidth = 70;\n const widthDif = minWidth - w;\n const extraW = widthDif > 0 ? widthDif / 2 : 0;\n const rc = rough51.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const points = [\n { x: -w / 2 - extraW, y: finalH / 2 },\n ...generateFullSineWavePoints(\n -w / 2 - extraW,\n finalH / 2,\n w / 2 + extraW,\n finalH / 2,\n waveAmplitude,\n 0.8\n ),\n { x: w / 2 + extraW, y: -finalH / 2 },\n { x: -w / 2 - extraW, y: -finalH / 2 }\n ];\n const waveEdgeRectPath = createPathFromPoints(points);\n const waveEdgeRectNode = rc.path(waveEdgeRectPath, options);\n const waveEdgeRect = shapeSvg.insert(() => waveEdgeRectNode, \":first-child\");\n waveEdgeRect.attr(\"class\", \"basic label-container\");\n if (cssStyles && node.look !== \"handDrawn\") {\n waveEdgeRect.selectAll(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n waveEdgeRect.selectAll(\"path\").attr(\"style\", nodeStyles);\n }\n waveEdgeRect.attr(\"transform\", `translate(0,${-waveAmplitude / 2})`);\n label.attr(\n \"transform\",\n `translate(${-w / 2 + (node.padding ?? 0) - (bbox.x - (bbox.left ?? 0))},${-h / 2 + (node.padding ?? 0) - waveAmplitude - (bbox.y - (bbox.top ?? 0))})`\n );\n updateNodeBounds(node, waveEdgeRect);\n node.intersect = function(point) {\n const pos = intersect_default.polygon(node, points, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(waveEdgedRectangle, \"waveEdgedRectangle\");\n\n// src/rendering-util/rendering-elements/shapes/waveRectangle.ts\nimport rough52 from \"roughjs\";\nasync function waveRectangle(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox } = await labelHelper(parent, node, getNodeClasses(node));\n const minWidth = 100;\n const minHeight = 50;\n const baseWidth = Math.max(bbox.width + (node.padding ?? 0) * 2, node?.width ?? 0);\n const baseHeight = Math.max(bbox.height + (node.padding ?? 0) * 2, node?.height ?? 0);\n const aspectRatio = baseWidth / baseHeight;\n let w = baseWidth;\n let h = baseHeight;\n if (w > h * aspectRatio) {\n h = w / aspectRatio;\n } else {\n w = h * aspectRatio;\n }\n w = Math.max(w, minWidth);\n h = Math.max(h, minHeight);\n const waveAmplitude = Math.min(h * 0.2, h / 4);\n const finalH = h + waveAmplitude * 2;\n const { cssStyles } = node;\n const rc = rough52.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const points = [\n { x: -w / 2, y: finalH / 2 },\n ...generateFullSineWavePoints(-w / 2, finalH / 2, w / 2, finalH / 2, waveAmplitude, 1),\n { x: w / 2, y: -finalH / 2 },\n ...generateFullSineWavePoints(w / 2, -finalH / 2, -w / 2, -finalH / 2, waveAmplitude, -1)\n ];\n const waveRectPath = createPathFromPoints(points);\n const waveRectNode = rc.path(waveRectPath, options);\n const waveRect = shapeSvg.insert(() => waveRectNode, \":first-child\");\n waveRect.attr(\"class\", \"basic label-container\");\n if (cssStyles && node.look !== \"handDrawn\") {\n waveRect.selectAll(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n waveRect.selectAll(\"path\").attr(\"style\", nodeStyles);\n }\n updateNodeBounds(node, waveRect);\n node.intersect = function(point) {\n const pos = intersect_default.polygon(node, points, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(waveRectangle, \"waveRectangle\");\n\n// src/rendering-util/rendering-elements/shapes/windowPane.ts\nimport rough53 from \"roughjs\";\nasync function windowPane(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox, label } = await labelHelper(parent, node, getNodeClasses(node));\n const w = Math.max(bbox.width + (node.padding ?? 0) * 2, node?.width ?? 0);\n const h = Math.max(bbox.height + (node.padding ?? 0) * 2, node?.height ?? 0);\n const rectOffset = 5;\n const x = -w / 2;\n const y = -h / 2;\n const { cssStyles } = node;\n const rc = rough53.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n const outerPathPoints = [\n { x: x - rectOffset, y: y - rectOffset },\n { x: x - rectOffset, y: y + h },\n { x: x + w, y: y + h },\n { x: x + w, y: y - rectOffset }\n ];\n const path = `M${x - rectOffset},${y - rectOffset} L${x + w},${y - rectOffset} L${x + w},${y + h} L${x - rectOffset},${y + h} L${x - rectOffset},${y - rectOffset}\n M${x - rectOffset},${y} L${x + w},${y}\n M${x},${y - rectOffset} L${x},${y + h}`;\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const no = rc.path(path, options);\n const windowPane2 = shapeSvg.insert(() => no, \":first-child\");\n windowPane2.attr(\"transform\", `translate(${rectOffset / 2}, ${rectOffset / 2})`);\n windowPane2.attr(\"class\", \"basic label-container\");\n if (cssStyles && node.look !== \"handDrawn\") {\n windowPane2.selectAll(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n windowPane2.selectAll(\"path\").attr(\"style\", nodeStyles);\n }\n label.attr(\n \"transform\",\n `translate(${-(bbox.width / 2) + rectOffset / 2 - (bbox.x - (bbox.left ?? 0))}, ${-(bbox.height / 2) + rectOffset / 2 - (bbox.y - (bbox.top ?? 0))})`\n );\n updateNodeBounds(node, windowPane2);\n node.intersect = function(point) {\n const pos = intersect_default.polygon(node, outerPathPoints, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(windowPane, \"windowPane\");\n\n// src/rendering-util/rendering-elements/shapes/classBox.ts\nimport { select as select6 } from \"d3\";\nimport rough54 from \"roughjs\";\n\n// src/diagrams/class/shapeUtil.ts\nimport { select as select5 } from \"d3\";\nasync function textHelper(parent, node, config, useHtmlLabels, GAP = config.class.padding ?? 12) {\n const TEXT_PADDING = !useHtmlLabels ? 3 : 0;\n const shapeSvg = parent.insert(\"g\").attr(\"class\", getNodeClasses(node)).attr(\"id\", node.domId || node.id);\n let annotationGroup = null;\n let labelGroup = null;\n let membersGroup = null;\n let methodsGroup = null;\n let annotationGroupHeight = 0;\n let labelGroupHeight = 0;\n let membersGroupHeight = 0;\n annotationGroup = shapeSvg.insert(\"g\").attr(\"class\", \"annotation-group text\");\n if (node.annotations.length > 0) {\n const annotation = node.annotations[0];\n await addText(annotationGroup, { text: `\\xAB${annotation}\\xBB` }, 0);\n const annotationGroupBBox = annotationGroup.node().getBBox();\n annotationGroupHeight = annotationGroupBBox.height;\n }\n labelGroup = shapeSvg.insert(\"g\").attr(\"class\", \"label-group text\");\n await addText(labelGroup, node, 0, [\"font-weight: bolder\"]);\n const labelGroupBBox = labelGroup.node().getBBox();\n labelGroupHeight = labelGroupBBox.height;\n membersGroup = shapeSvg.insert(\"g\").attr(\"class\", \"members-group text\");\n let yOffset = 0;\n for (const member of node.members) {\n const height = await addText(membersGroup, member, yOffset, [member.parseClassifier()]);\n yOffset += height + TEXT_PADDING;\n }\n membersGroupHeight = membersGroup.node().getBBox().height;\n if (membersGroupHeight <= 0) {\n membersGroupHeight = GAP / 2;\n }\n methodsGroup = shapeSvg.insert(\"g\").attr(\"class\", \"methods-group text\");\n let methodsYOffset = 0;\n for (const method of node.methods) {\n const height = await addText(methodsGroup, method, methodsYOffset, [method.parseClassifier()]);\n methodsYOffset += height + TEXT_PADDING;\n }\n let bbox = shapeSvg.node().getBBox();\n if (annotationGroup !== null) {\n const annotationGroupBBox = annotationGroup.node().getBBox();\n annotationGroup.attr(\"transform\", `translate(${-annotationGroupBBox.width / 2})`);\n }\n labelGroup.attr(\"transform\", `translate(${-labelGroupBBox.width / 2}, ${annotationGroupHeight})`);\n bbox = shapeSvg.node().getBBox();\n membersGroup.attr(\n \"transform\",\n `translate(${0}, ${annotationGroupHeight + labelGroupHeight + GAP * 2})`\n );\n bbox = shapeSvg.node().getBBox();\n methodsGroup.attr(\n \"transform\",\n `translate(${0}, ${annotationGroupHeight + labelGroupHeight + (membersGroupHeight ? membersGroupHeight + GAP * 4 : GAP * 2)})`\n );\n bbox = shapeSvg.node().getBBox();\n return { shapeSvg, bbox };\n}\n__name(textHelper, \"textHelper\");\nasync function addText(parentGroup, node, yOffset, styles = []) {\n const textEl = parentGroup.insert(\"g\").attr(\"class\", \"label\").attr(\"style\", styles.join(\"; \"));\n const config = getConfig();\n let useHtmlLabels = \"useHtmlLabels\" in node ? node.useHtmlLabels : evaluate(config.htmlLabels) ?? true;\n let textContent = \"\";\n if (\"text\" in node) {\n textContent = node.text;\n } else {\n textContent = node.label;\n }\n if (!useHtmlLabels && textContent.startsWith(\"\\\\\")) {\n textContent = textContent.substring(1);\n }\n if (hasKatex(textContent)) {\n useHtmlLabels = true;\n }\n const text2 = await createText(\n textEl,\n sanitizeText2(decodeEntities(textContent)),\n {\n width: calculateTextWidth(textContent, config) + 50,\n // Add room for error when splitting text into multiple lines\n classes: \"markdown-node-label\",\n useHtmlLabels\n },\n config\n );\n let bbox;\n let numberOfLines = 1;\n if (!useHtmlLabels) {\n if (styles.includes(\"font-weight: bolder\")) {\n select5(text2).selectAll(\"tspan\").attr(\"font-weight\", \"\");\n }\n numberOfLines = text2.children.length;\n const textChild = text2.children[0];\n if (text2.textContent === \"\" || text2.textContent.includes(\">\")) {\n textChild.textContent = textContent[0] + textContent.substring(1).replaceAll(\">\", \">\").replaceAll(\"<\", \"<\").trim();\n const preserveSpace = textContent[1] === \" \";\n if (preserveSpace) {\n textChild.textContent = textChild.textContent[0] + \" \" + textChild.textContent.substring(1);\n }\n }\n if (textChild.textContent === \"undefined\") {\n textChild.textContent = \"\";\n }\n bbox = text2.getBBox();\n } else {\n const div = text2.children[0];\n const dv = select5(text2);\n numberOfLines = div.innerHTML.split(\"
    \").length;\n if (div.innerHTML.includes(\"\")) {\n numberOfLines += div.innerHTML.split(\"\").length - 1;\n }\n const images = div.getElementsByTagName(\"img\");\n if (images) {\n const noImgText = textContent.replace(/]*>/g, \"\").trim() === \"\";\n await Promise.all(\n [...images].map(\n (img) => new Promise((res) => {\n function setupImage() {\n img.style.display = \"flex\";\n img.style.flexDirection = \"column\";\n if (noImgText) {\n const bodyFontSize = config.fontSize?.toString() ?? window.getComputedStyle(document.body).fontSize;\n const enlargingFactor = 5;\n const width = parseInt(bodyFontSize, 10) * enlargingFactor + \"px\";\n img.style.minWidth = width;\n img.style.maxWidth = width;\n } else {\n img.style.width = \"100%\";\n }\n res(img);\n }\n __name(setupImage, \"setupImage\");\n setTimeout(() => {\n if (img.complete) {\n setupImage();\n }\n });\n img.addEventListener(\"error\", setupImage);\n img.addEventListener(\"load\", setupImage);\n })\n )\n );\n }\n bbox = div.getBoundingClientRect();\n dv.attr(\"width\", bbox.width);\n dv.attr(\"height\", bbox.height);\n }\n textEl.attr(\"transform\", \"translate(0,\" + (-bbox.height / (2 * numberOfLines) + yOffset) + \")\");\n return bbox.height;\n}\n__name(addText, \"addText\");\n\n// src/rendering-util/rendering-elements/shapes/classBox.ts\nasync function classBox(parent, node) {\n const config = getConfig2();\n const PADDING = config.class.padding ?? 12;\n const GAP = PADDING;\n const useHtmlLabels = node.useHtmlLabels ?? evaluate(config.htmlLabels) ?? true;\n const classNode = node;\n classNode.annotations = classNode.annotations ?? [];\n classNode.members = classNode.members ?? [];\n classNode.methods = classNode.methods ?? [];\n const { shapeSvg, bbox } = await textHelper(parent, node, config, useHtmlLabels, GAP);\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n node.cssStyles = classNode.styles || \"\";\n const styles = classNode.styles?.join(\";\") || nodeStyles || \"\";\n if (!node.cssStyles) {\n node.cssStyles = styles.replaceAll(\"!important\", \"\").split(\";\");\n }\n const renderExtraBox = classNode.members.length === 0 && classNode.methods.length === 0 && !config.class?.hideEmptyMembersBox;\n const rc = rough54.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const w = bbox.width;\n let h = bbox.height;\n if (classNode.members.length === 0 && classNode.methods.length === 0) {\n h += GAP;\n } else if (classNode.members.length > 0 && classNode.methods.length === 0) {\n h += GAP * 2;\n }\n const x = -w / 2;\n const y = -h / 2;\n const roughRect = rc.rectangle(\n x - PADDING,\n y - PADDING - (renderExtraBox ? PADDING : classNode.members.length === 0 && classNode.methods.length === 0 ? -PADDING / 2 : 0),\n w + 2 * PADDING,\n h + 2 * PADDING + (renderExtraBox ? PADDING * 2 : classNode.members.length === 0 && classNode.methods.length === 0 ? -PADDING : 0),\n options\n );\n const rect2 = shapeSvg.insert(() => roughRect, \":first-child\");\n rect2.attr(\"class\", \"basic label-container\");\n const rectBBox = rect2.node().getBBox();\n shapeSvg.selectAll(\".text\").each((_, i, nodes) => {\n const text2 = select6(nodes[i]);\n const transform = text2.attr(\"transform\");\n let translateY = 0;\n if (transform) {\n const regex = RegExp(/translate\\(([^,]+),([^)]+)\\)/);\n const translate = regex.exec(transform);\n if (translate) {\n translateY = parseFloat(translate[2]);\n }\n }\n let newTranslateY = translateY + y + PADDING - (renderExtraBox ? PADDING : classNode.members.length === 0 && classNode.methods.length === 0 ? -PADDING / 2 : 0);\n if (!useHtmlLabels) {\n newTranslateY -= 4;\n }\n let newTranslateX = x;\n if (text2.attr(\"class\").includes(\"label-group\") || text2.attr(\"class\").includes(\"annotation-group\")) {\n newTranslateX = -text2.node()?.getBBox().width / 2 || 0;\n shapeSvg.selectAll(\"text\").each(function(_2, i2, nodes2) {\n if (window.getComputedStyle(nodes2[i2]).textAnchor === \"middle\") {\n newTranslateX = 0;\n }\n });\n }\n text2.attr(\"transform\", `translate(${newTranslateX}, ${newTranslateY})`);\n });\n const annotationGroupHeight = shapeSvg.select(\".annotation-group\").node().getBBox().height - (renderExtraBox ? PADDING / 2 : 0) || 0;\n const labelGroupHeight = shapeSvg.select(\".label-group\").node().getBBox().height - (renderExtraBox ? PADDING / 2 : 0) || 0;\n const membersGroupHeight = shapeSvg.select(\".members-group\").node().getBBox().height - (renderExtraBox ? PADDING / 2 : 0) || 0;\n if (classNode.members.length > 0 || classNode.methods.length > 0 || renderExtraBox) {\n const roughLine = rc.line(\n rectBBox.x,\n annotationGroupHeight + labelGroupHeight + y + PADDING,\n rectBBox.x + rectBBox.width,\n annotationGroupHeight + labelGroupHeight + y + PADDING,\n options\n );\n const line = shapeSvg.insert(() => roughLine);\n line.attr(\"class\", \"divider\").attr(\"style\", styles);\n }\n if (renderExtraBox || classNode.members.length > 0 || classNode.methods.length > 0) {\n const roughLine = rc.line(\n rectBBox.x,\n annotationGroupHeight + labelGroupHeight + membersGroupHeight + y + GAP * 2 + PADDING,\n rectBBox.x + rectBBox.width,\n annotationGroupHeight + labelGroupHeight + membersGroupHeight + y + PADDING + GAP * 2,\n options\n );\n const line = shapeSvg.insert(() => roughLine);\n line.attr(\"class\", \"divider\").attr(\"style\", styles);\n }\n if (classNode.look !== \"handDrawn\") {\n shapeSvg.selectAll(\"path\").attr(\"style\", styles);\n }\n rect2.select(\":nth-child(2)\").attr(\"style\", styles);\n shapeSvg.selectAll(\".divider\").select(\"path\").attr(\"style\", styles);\n if (node.labelStyle) {\n shapeSvg.selectAll(\"span\").attr(\"style\", node.labelStyle);\n } else {\n shapeSvg.selectAll(\"span\").attr(\"style\", styles);\n }\n if (!useHtmlLabels) {\n const colorRegex = RegExp(/color\\s*:\\s*([^;]*)/);\n const match = colorRegex.exec(styles);\n if (match) {\n const colorStyle = match[0].replace(\"color\", \"fill\");\n shapeSvg.selectAll(\"tspan\").attr(\"style\", colorStyle);\n } else if (labelStyles) {\n const match2 = colorRegex.exec(labelStyles);\n if (match2) {\n const colorStyle = match2[0].replace(\"color\", \"fill\");\n shapeSvg.selectAll(\"tspan\").attr(\"style\", colorStyle);\n }\n }\n }\n updateNodeBounds(node, rect2);\n node.intersect = function(point) {\n return intersect_default.rect(node, point);\n };\n return shapeSvg;\n}\n__name(classBox, \"classBox\");\n\n// src/rendering-util/rendering-elements/shapes/kanbanItem.ts\nimport rough55 from \"roughjs\";\nvar colorFromPriority = /* @__PURE__ */ __name((priority) => {\n switch (priority) {\n case \"Very High\":\n return \"red\";\n case \"High\":\n return \"orange\";\n case \"Medium\":\n return null;\n case \"Low\":\n return \"blue\";\n case \"Very Low\":\n return \"lightblue\";\n }\n}, \"colorFromPriority\");\nasync function kanbanItem(parent, kanbanNode, { config }) {\n const { labelStyles, nodeStyles } = styles2String(kanbanNode);\n kanbanNode.labelStyle = labelStyles || \"\";\n const labelPaddingX = 10;\n const orgWidth = kanbanNode.width;\n kanbanNode.width = (kanbanNode.width ?? 200) - 10;\n const {\n shapeSvg,\n bbox,\n label: labelElTitle\n } = await labelHelper(parent, kanbanNode, getNodeClasses(kanbanNode));\n const padding = kanbanNode.padding || 10;\n let ticketUrl = \"\";\n let link;\n if (\"ticket\" in kanbanNode && kanbanNode.ticket && config?.kanban?.ticketBaseUrl) {\n ticketUrl = config?.kanban?.ticketBaseUrl.replace(\"#TICKET#\", kanbanNode.ticket);\n link = shapeSvg.insert(\"svg:a\", \":first-child\").attr(\"class\", \"kanban-ticket-link\").attr(\"xlink:href\", ticketUrl).attr(\"target\", \"_blank\");\n }\n const options = {\n useHtmlLabels: kanbanNode.useHtmlLabels,\n labelStyle: kanbanNode.labelStyle || \"\",\n width: kanbanNode.width,\n img: kanbanNode.img,\n padding: kanbanNode.padding || 8,\n centerLabel: false\n };\n let labelEl, bbox2;\n if (link) {\n ({ label: labelEl, bbox: bbox2 } = await insertLabel(\n link,\n \"ticket\" in kanbanNode && kanbanNode.ticket || \"\",\n options\n ));\n } else {\n ({ label: labelEl, bbox: bbox2 } = await insertLabel(\n shapeSvg,\n \"ticket\" in kanbanNode && kanbanNode.ticket || \"\",\n options\n ));\n }\n const { label: labelElAssigned, bbox: bboxAssigned } = await insertLabel(\n shapeSvg,\n \"assigned\" in kanbanNode && kanbanNode.assigned || \"\",\n options\n );\n kanbanNode.width = orgWidth;\n const labelPaddingY = 10;\n const totalWidth = kanbanNode?.width || 0;\n const heightAdj = Math.max(bbox2.height, bboxAssigned.height) / 2;\n const totalHeight = Math.max(bbox.height + labelPaddingY * 2, kanbanNode?.height || 0) + heightAdj;\n const x = -totalWidth / 2;\n const y = -totalHeight / 2;\n labelElTitle.attr(\n \"transform\",\n \"translate(\" + (padding - totalWidth / 2) + \", \" + (-heightAdj - bbox.height / 2) + \")\"\n );\n labelEl.attr(\n \"transform\",\n \"translate(\" + (padding - totalWidth / 2) + \", \" + (-heightAdj + bbox.height / 2) + \")\"\n );\n labelElAssigned.attr(\n \"transform\",\n \"translate(\" + (padding + totalWidth / 2 - bboxAssigned.width - 2 * labelPaddingX) + \", \" + (-heightAdj + bbox.height / 2) + \")\"\n );\n let rect2;\n const { rx, ry } = kanbanNode;\n const { cssStyles } = kanbanNode;\n if (kanbanNode.look === \"handDrawn\") {\n const rc = rough55.svg(shapeSvg);\n const options2 = userNodeOverrides(kanbanNode, {});\n const roughNode = rx || ry ? rc.path(createRoundedRectPathD(x, y, totalWidth, totalHeight, rx || 0), options2) : rc.rectangle(x, y, totalWidth, totalHeight, options2);\n rect2 = shapeSvg.insert(() => roughNode, \":first-child\");\n rect2.attr(\"class\", \"basic label-container\").attr(\"style\", cssStyles ? cssStyles : null);\n } else {\n rect2 = shapeSvg.insert(\"rect\", \":first-child\");\n rect2.attr(\"class\", \"basic label-container __APA__\").attr(\"style\", nodeStyles).attr(\"rx\", rx ?? 5).attr(\"ry\", ry ?? 5).attr(\"x\", x).attr(\"y\", y).attr(\"width\", totalWidth).attr(\"height\", totalHeight);\n const priority = \"priority\" in kanbanNode && kanbanNode.priority;\n if (priority) {\n const line = shapeSvg.append(\"line\");\n const lineX = x + 2;\n const y1 = y + Math.floor((rx ?? 0) / 2);\n const y2 = y + totalHeight - Math.floor((rx ?? 0) / 2);\n line.attr(\"x1\", lineX).attr(\"y1\", y1).attr(\"x2\", lineX).attr(\"y2\", y2).attr(\"stroke-width\", \"4\").attr(\"stroke\", colorFromPriority(priority));\n }\n }\n updateNodeBounds(kanbanNode, rect2);\n kanbanNode.height = totalHeight;\n kanbanNode.intersect = function(point) {\n return intersect_default.rect(kanbanNode, point);\n };\n return shapeSvg;\n}\n__name(kanbanItem, \"kanbanItem\");\n\n// src/rendering-util/rendering-elements/shapes.ts\nvar shapesDefs = [\n {\n semanticName: \"Process\",\n name: \"Rectangle\",\n shortName: \"rect\",\n description: \"Standard process shape\",\n aliases: [\"proc\", \"process\", \"rectangle\"],\n internalAliases: [\"squareRect\"],\n handler: squareRect2\n },\n {\n semanticName: \"Event\",\n name: \"Rounded Rectangle\",\n shortName: \"rounded\",\n description: \"Represents an event\",\n aliases: [\"event\"],\n internalAliases: [\"roundedRect\"],\n handler: roundedRect\n },\n {\n semanticName: \"Terminal Point\",\n name: \"Stadium\",\n shortName: \"stadium\",\n description: \"Terminal point\",\n aliases: [\"terminal\", \"pill\"],\n handler: stadium\n },\n {\n semanticName: \"Subprocess\",\n name: \"Framed Rectangle\",\n shortName: \"fr-rect\",\n description: \"Subprocess\",\n aliases: [\"subprocess\", \"subproc\", \"framed-rectangle\", \"subroutine\"],\n handler: subroutine\n },\n {\n semanticName: \"Database\",\n name: \"Cylinder\",\n shortName: \"cyl\",\n description: \"Database storage\",\n aliases: [\"db\", \"database\", \"cylinder\"],\n handler: cylinder\n },\n {\n semanticName: \"Start\",\n name: \"Circle\",\n shortName: \"circle\",\n description: \"Starting point\",\n aliases: [\"circ\"],\n handler: circle\n },\n {\n semanticName: \"Decision\",\n name: \"Diamond\",\n shortName: \"diam\",\n description: \"Decision-making step\",\n aliases: [\"decision\", \"diamond\", \"question\"],\n handler: question\n },\n {\n semanticName: \"Prepare Conditional\",\n name: \"Hexagon\",\n shortName: \"hex\",\n description: \"Preparation or condition step\",\n aliases: [\"hexagon\", \"prepare\"],\n handler: hexagon\n },\n {\n semanticName: \"Data Input/Output\",\n name: \"Lean Right\",\n shortName: \"lean-r\",\n description: \"Represents input or output\",\n aliases: [\"lean-right\", \"in-out\"],\n internalAliases: [\"lean_right\"],\n handler: lean_right\n },\n {\n semanticName: \"Data Input/Output\",\n name: \"Lean Left\",\n shortName: \"lean-l\",\n description: \"Represents output or input\",\n aliases: [\"lean-left\", \"out-in\"],\n internalAliases: [\"lean_left\"],\n handler: lean_left\n },\n {\n semanticName: \"Priority Action\",\n name: \"Trapezoid Base Bottom\",\n shortName: \"trap-b\",\n description: \"Priority action\",\n aliases: [\"priority\", \"trapezoid-bottom\", \"trapezoid\"],\n handler: trapezoid\n },\n {\n semanticName: \"Manual Operation\",\n name: \"Trapezoid Base Top\",\n shortName: \"trap-t\",\n description: \"Represents a manual task\",\n aliases: [\"manual\", \"trapezoid-top\", \"inv-trapezoid\"],\n internalAliases: [\"inv_trapezoid\"],\n handler: inv_trapezoid\n },\n {\n semanticName: \"Stop\",\n name: \"Double Circle\",\n shortName: \"dbl-circ\",\n description: \"Represents a stop point\",\n aliases: [\"double-circle\"],\n internalAliases: [\"doublecircle\"],\n handler: doublecircle\n },\n {\n semanticName: \"Text Block\",\n name: \"Text Block\",\n shortName: \"text\",\n description: \"Text block\",\n handler: text\n },\n {\n semanticName: \"Card\",\n name: \"Notched Rectangle\",\n shortName: \"notch-rect\",\n description: \"Represents a card\",\n aliases: [\"card\", \"notched-rectangle\"],\n handler: card\n },\n {\n semanticName: \"Lined/Shaded Process\",\n name: \"Lined Rectangle\",\n shortName: \"lin-rect\",\n description: \"Lined process shape\",\n aliases: [\"lined-rectangle\", \"lined-process\", \"lin-proc\", \"shaded-process\"],\n handler: shadedProcess\n },\n {\n semanticName: \"Start\",\n name: \"Small Circle\",\n shortName: \"sm-circ\",\n description: \"Small starting point\",\n aliases: [\"start\", \"small-circle\"],\n internalAliases: [\"stateStart\"],\n handler: stateStart\n },\n {\n semanticName: \"Stop\",\n name: \"Framed Circle\",\n shortName: \"fr-circ\",\n description: \"Stop point\",\n aliases: [\"stop\", \"framed-circle\"],\n internalAliases: [\"stateEnd\"],\n handler: stateEnd\n },\n {\n semanticName: \"Fork/Join\",\n name: \"Filled Rectangle\",\n shortName: \"fork\",\n description: \"Fork or join in process flow\",\n aliases: [\"join\"],\n internalAliases: [\"forkJoin\"],\n handler: forkJoin\n },\n {\n semanticName: \"Collate\",\n name: \"Hourglass\",\n shortName: \"hourglass\",\n description: \"Represents a collate operation\",\n aliases: [\"hourglass\", \"collate\"],\n handler: hourglass\n },\n {\n semanticName: \"Comment\",\n name: \"Curly Brace\",\n shortName: \"brace\",\n description: \"Adds a comment\",\n aliases: [\"comment\", \"brace-l\"],\n handler: curlyBraceLeft\n },\n {\n semanticName: \"Comment Right\",\n name: \"Curly Brace\",\n shortName: \"brace-r\",\n description: \"Adds a comment\",\n handler: curlyBraceRight\n },\n {\n semanticName: \"Comment with braces on both sides\",\n name: \"Curly Braces\",\n shortName: \"braces\",\n description: \"Adds a comment\",\n handler: curlyBraces\n },\n {\n semanticName: \"Com Link\",\n name: \"Lightning Bolt\",\n shortName: \"bolt\",\n description: \"Communication link\",\n aliases: [\"com-link\", \"lightning-bolt\"],\n handler: lightningBolt\n },\n {\n semanticName: \"Document\",\n name: \"Document\",\n shortName: \"doc\",\n description: \"Represents a document\",\n aliases: [\"doc\", \"document\"],\n handler: waveEdgedRectangle\n },\n {\n semanticName: \"Delay\",\n name: \"Half-Rounded Rectangle\",\n shortName: \"delay\",\n description: \"Represents a delay\",\n aliases: [\"half-rounded-rectangle\"],\n handler: halfRoundedRectangle\n },\n {\n semanticName: \"Direct Access Storage\",\n name: \"Horizontal Cylinder\",\n shortName: \"h-cyl\",\n description: \"Direct access storage\",\n aliases: [\"das\", \"horizontal-cylinder\"],\n handler: tiltedCylinder\n },\n {\n semanticName: \"Disk Storage\",\n name: \"Lined Cylinder\",\n shortName: \"lin-cyl\",\n description: \"Disk storage\",\n aliases: [\"disk\", \"lined-cylinder\"],\n handler: linedCylinder\n },\n {\n semanticName: \"Display\",\n name: \"Curved Trapezoid\",\n shortName: \"curv-trap\",\n description: \"Represents a display\",\n aliases: [\"curved-trapezoid\", \"display\"],\n handler: curvedTrapezoid\n },\n {\n semanticName: \"Divided Process\",\n name: \"Divided Rectangle\",\n shortName: \"div-rect\",\n description: \"Divided process shape\",\n aliases: [\"div-proc\", \"divided-rectangle\", \"divided-process\"],\n handler: dividedRectangle\n },\n {\n semanticName: \"Extract\",\n name: \"Triangle\",\n shortName: \"tri\",\n description: \"Extraction process\",\n aliases: [\"extract\", \"triangle\"],\n handler: triangle\n },\n {\n semanticName: \"Internal Storage\",\n name: \"Window Pane\",\n shortName: \"win-pane\",\n description: \"Internal storage\",\n aliases: [\"internal-storage\", \"window-pane\"],\n handler: windowPane\n },\n {\n semanticName: \"Junction\",\n name: \"Filled Circle\",\n shortName: \"f-circ\",\n description: \"Junction point\",\n aliases: [\"junction\", \"filled-circle\"],\n handler: filledCircle\n },\n {\n semanticName: \"Loop Limit\",\n name: \"Trapezoidal Pentagon\",\n shortName: \"notch-pent\",\n description: \"Loop limit step\",\n aliases: [\"loop-limit\", \"notched-pentagon\"],\n handler: trapezoidalPentagon\n },\n {\n semanticName: \"Manual File\",\n name: \"Flipped Triangle\",\n shortName: \"flip-tri\",\n description: \"Manual file operation\",\n aliases: [\"manual-file\", \"flipped-triangle\"],\n handler: flippedTriangle\n },\n {\n semanticName: \"Manual Input\",\n name: \"Sloped Rectangle\",\n shortName: \"sl-rect\",\n description: \"Manual input step\",\n aliases: [\"manual-input\", \"sloped-rectangle\"],\n handler: slopedRect\n },\n {\n semanticName: \"Multi-Document\",\n name: \"Stacked Document\",\n shortName: \"docs\",\n description: \"Multiple documents\",\n aliases: [\"documents\", \"st-doc\", \"stacked-document\"],\n handler: multiWaveEdgedRectangle\n },\n {\n semanticName: \"Multi-Process\",\n name: \"Stacked Rectangle\",\n shortName: \"st-rect\",\n description: \"Multiple processes\",\n aliases: [\"procs\", \"processes\", \"stacked-rectangle\"],\n handler: multiRect\n },\n {\n semanticName: \"Stored Data\",\n name: \"Bow Tie Rectangle\",\n shortName: \"bow-rect\",\n description: \"Stored data\",\n aliases: [\"stored-data\", \"bow-tie-rectangle\"],\n handler: bowTieRect\n },\n {\n semanticName: \"Summary\",\n name: \"Crossed Circle\",\n shortName: \"cross-circ\",\n description: \"Summary\",\n aliases: [\"summary\", \"crossed-circle\"],\n handler: crossedCircle\n },\n {\n semanticName: \"Tagged Document\",\n name: \"Tagged Document\",\n shortName: \"tag-doc\",\n description: \"Tagged document\",\n aliases: [\"tag-doc\", \"tagged-document\"],\n handler: taggedWaveEdgedRectangle\n },\n {\n semanticName: \"Tagged Process\",\n name: \"Tagged Rectangle\",\n shortName: \"tag-rect\",\n description: \"Tagged process\",\n aliases: [\"tagged-rectangle\", \"tag-proc\", \"tagged-process\"],\n handler: taggedRect\n },\n {\n semanticName: \"Paper Tape\",\n name: \"Flag\",\n shortName: \"flag\",\n description: \"Paper tape\",\n aliases: [\"paper-tape\"],\n handler: waveRectangle\n },\n {\n semanticName: \"Odd\",\n name: \"Odd\",\n shortName: \"odd\",\n description: \"Odd shape\",\n internalAliases: [\"rect_left_inv_arrow\"],\n handler: rect_left_inv_arrow\n },\n {\n semanticName: \"Lined Document\",\n name: \"Lined Document\",\n shortName: \"lin-doc\",\n description: \"Lined document\",\n aliases: [\"lined-document\"],\n handler: linedWaveEdgedRect\n }\n];\nvar generateShapeMap = /* @__PURE__ */ __name(() => {\n const undocumentedShapes = {\n // States\n state,\n choice,\n note,\n // Rectangles\n rectWithTitle,\n labelRect,\n // Icons\n iconSquare,\n iconCircle,\n icon,\n iconRounded,\n imageSquare,\n anchor,\n // Kanban diagram\n kanbanItem,\n // class diagram\n classBox\n };\n const entries = [\n ...Object.entries(undocumentedShapes),\n ...shapesDefs.flatMap((shape) => {\n const aliases = [\n shape.shortName,\n ...\"aliases\" in shape ? shape.aliases : [],\n ...\"internalAliases\" in shape ? shape.internalAliases : []\n ];\n return aliases.map((alias) => [alias, shape.handler]);\n })\n ];\n return Object.fromEntries(entries);\n}, \"generateShapeMap\");\nvar shapes2 = generateShapeMap();\nfunction isValidShape(shape) {\n return shape in shapes2;\n}\n__name(isValidShape, \"isValidShape\");\n\n// src/rendering-util/rendering-elements/nodes.ts\nvar nodeElems = /* @__PURE__ */ new Map();\nasync function insertNode(elem, node, renderOptions) {\n let newEl;\n let el;\n if (node.shape === \"rect\") {\n if (node.rx && node.ry) {\n node.shape = \"roundedRect\";\n } else {\n node.shape = \"squareRect\";\n }\n }\n const shapeHandler = node.shape ? shapes2[node.shape] : void 0;\n if (!shapeHandler) {\n throw new Error(`No such shape: ${node.shape}. Please check your syntax.`);\n }\n if (node.link) {\n let target;\n if (renderOptions.config.securityLevel === \"sandbox\") {\n target = \"_top\";\n } else if (node.linkTarget) {\n target = node.linkTarget || \"_blank\";\n }\n newEl = elem.insert(\"svg:a\").attr(\"xlink:href\", node.link).attr(\"target\", target ?? null);\n el = await shapeHandler(newEl, node, renderOptions);\n } else {\n el = await shapeHandler(elem, node, renderOptions);\n newEl = el;\n }\n if (node.tooltip) {\n el.attr(\"title\", node.tooltip);\n }\n nodeElems.set(node.id, newEl);\n if (node.haveCallback) {\n newEl.attr(\"class\", newEl.attr(\"class\") + \" clickable\");\n }\n return newEl;\n}\n__name(insertNode, \"insertNode\");\nvar setNodeElem = /* @__PURE__ */ __name((elem, node) => {\n nodeElems.set(node.id, elem);\n}, \"setNodeElem\");\nvar clear2 = /* @__PURE__ */ __name(() => {\n nodeElems.clear();\n}, \"clear\");\nvar positionNode = /* @__PURE__ */ __name((node) => {\n const el = nodeElems.get(node.id);\n log.trace(\n \"Transforming node\",\n node.diff,\n node,\n \"translate(\" + (node.x - node.width / 2 - 5) + \", \" + node.width / 2 + \")\"\n );\n const padding = 8;\n const diff = node.diff || 0;\n if (node.clusterNode) {\n el.attr(\n \"transform\",\n \"translate(\" + (node.x + diff - node.width / 2) + \", \" + (node.y - node.height / 2 - padding) + \")\"\n );\n } else {\n el.attr(\"transform\", \"translate(\" + node.x + \", \" + node.y + \")\");\n }\n return diff;\n}, \"positionNode\");\n\nexport {\n labelHelper,\n updateNodeBounds,\n createLabel_default,\n isValidShape,\n insertCluster,\n clear,\n insertNode,\n setNodeElem,\n clear2,\n positionNode\n};\n"], + "mappings": "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", + "names": ["t", "e", "s", "n", "o", "a", "h", "r", "i", "c", "l", "u", "p", "f", "d", "g", "M", "k", "b", "y", "m", "x", "w", "P", "S", "O", "L", "T", "D", "A", "G", "E", "$", "v", "j", "z", "F", "q", "V", "_", "Z", "I", "C", "W", "R", "Q", "H", "N", "B", "J", "K", "U", "X", "Y", "tt", "et", "st", "nt", "ot", "at", "labelHelper", "__name", "parent", "node", "_classes", "cssClasses", "useHtmlLabels", "evaluate", "getConfig2", "shapeSvg", "labelEl", "handleUndefinedAttr", "label", "text2", "createText", "sanitizeText", "decodeEntities", "bbox", "halfPadding", "div", "dv", "select_default", "images", "noImgText", "img", "res", "setupImage", "bodyFontSize", "enlargingFactor", "parsedBodyFontSize", "defaultConfig_default", "parseFontSize", "width", "insertLabel", "options", "updateNodeBounds", "element", "getNodeClasses", "extra", "createPathFromPoints", "points", "pointStrings", "p", "i", "generateFullSineWavePoints", "x1", "y1", "x2", "y2", "amplitude", "numCycles", "deltaX", "deltaY", "cycleLength", "frequency", "midY", "t", "x", "y", "generateCirclePoints", "centerX", "centerY", "radius", "numPoints", "startAngle", "endAngle", "startAngleRad", "angleStep", "angle", "intersectRect", "point", "dx", "dy", "w", "h", "sx", "sy", "intersect_rect_default", "applyStyle", "dom", "styleFn", "addHtmlLabel", "fo", "hasKatex", "renderKatex", "common_default", "labelClass", "createLabel", "_vertexText", "style", "isTitle", "isNode", "vertexText", "log", "svgLabel", "rows", "row", "tspan", "createLabel_default", "createRoundedRectPathD", "totalWidth", "totalHeight", "solidStateFill", "color", "handDrawnSeed", "compileStyles", "stylesMap", "styles2Map", "styles", "styleMap", "key", "value", "styles2String", "stylesArray", "labelStyles", "nodeStyles", "borderStyles", "backgroundStyles", "userNodeOverrides", "themeVariables", "nodeBorder", "mainBkg", "rect", "siteConfig", "clusterBkg", "clusterBorder", "height", "rect2", "rc", "at", "roughNode", "subGraphTitleTopMargin", "getSubGraphTitleMargins", "span", "rectBox", "noteGroup", "padding", "roundedWithTitle", "altBackground", "compositeBackground", "compositeTitleBackground", "outerRectG", "innerRect", "innerHeight", "innerY", "isAlt", "roughOuterNode", "roughInnerNode", "kanbanSection", "divider", "squareRect", "shapes", "clusterElems", "insertCluster", "elem", "shape", "cluster", "clear", "intersectNode", "intersect_node_default", "intersectEllipse", "rx", "ry", "cx", "cy", "px", "py", "det", "intersect_ellipse_default", "intersectCircle", "intersect_circle_default", "intersectLine", "p1", "p2", "q1", "q2", "a1", "a2", "b1", "b2", "c1", "c2", "r1", "r2", "r3", "r4", "denom", "offset", "num", "sameSign", "intersect_line_default", "intersectPolygon", "polyPoints", "intersections", "minX", "minY", "entry", "left", "top", "intersect", "q", "pdx", "pdy", "distp", "qdx", "qdy", "distq", "intersect_polygon_default", "intersect_default", "anchor", "classes", "cssStyles", "circleElem", "generateArcPoints", "clockwise", "midX", "transformedX", "transformedY", "distance", "scaledCenterDistance", "angleRange", "angle2", "bowTieRect", "bowTieRectPath", "bowTieRectShapePath", "bowTieRectShape", "insertPolygonShape", "d", "card", "right", "bottom", "polygon", "pathData", "choice", "s", "choicePath", "choiceShape", "circle", "createLine", "r", "xAxis45", "yAxis45", "lineLength", "pointQ1", "pointQ2", "pointQ3", "pointQ4", "crossedCircle", "circleNode", "linePath", "lineNode", "crossedCircle2", "generateCirclePoints2", "curlyBraceLeft", "rectPoints", "newCurlyBracePath", "curlyBraceLeftNode", "rectPath", "rectShape", "curlyBraceLeftShape", "generateCirclePoints3", "curlyBraceRight", "curlyBraceRightNode", "curlyBraceRightShape", "generateCirclePoints4", "curlyBraces", "leftCurlyBracePoints", "rightCurlyBracePoints", "newLeftCurlyBracePath", "leftCurlyBraceNode", "newRightCurlyBracePath", "rightCurlyBraceNode", "curlyBracesShape", "curvedTrapezoid", "minWidth", "minHeight", "rw", "tw", "shapeNode", "createCylinderPathD", "createOuterCylinderPathD", "createInnerCylinderPathD", "cylinder", "cylinder2", "outerPathData", "innerPathData", "outerNode", "innerLine", "pos", "dividedRectangle", "rectOffset", "pts", "poly", "doublecircle", "outerRadius", "innerRadius", "circleGroup", "outerOptions", "innerOptions", "outerRoughNode", "innerRoughNode", "outerCircle", "innerCircle", "filledCircle", "filledCircle2", "flippedTriangle", "flippedTriangle2", "forkJoin", "dir", "state2", "halfRoundedRectangle", "createHexagonPathD", "m", "hexagon", "f", "hourglass", "icon", "flowchart", "assetHeight", "assetWidth", "iconSize", "defaultWidth", "topLabel", "labelPadding", "iconNode", "outerWidth", "outerHeight", "iconShape", "outerShape", "iconElem", "getIconSVG", "iconBBox", "iconWidth", "iconHeight", "iconX", "iconY", "nodeHeight", "iconCircle", "fill", "diameter", "iconRounded", "iconSquare", "imageSquare", "imageNaturalWidth", "imageNaturalHeight", "imageRawWidth", "imageWidth", "imageHeight", "imageNode", "image", "inv_trapezoid", "drawRect", "options2", "labelRect", "lean_left", "lean_right", "lightningBolt", "gap", "lightningBolt2", "createCylinderPathD2", "outerOffset", "createOuterCylinderPathD2", "createInnerCylinderPathD2", "linedCylinder", "linedWaveEdgedRect", "waveAmplitude", "finalH", "waveEdgeRect", "multiRect", "outerPathPoints", "innerPathPoints", "outerPath", "innerPath", "innerNode", "multiRect2", "multiWaveEdgedRectangle", "wavePoints", "lastWavePoint", "note", "getConfig", "noteShapeNode", "createDecisionBoxPathD", "size", "question", "rect_left_inv_arrow", "notch", "rectWithTitle", "g", "description", "title", "div2", "dv2", "textRows", "titleBox", "descr", "roughLine", "roundedRect", "shadedProcess", "slopedRect", "squareRect2", "stadium", "state", "stateEnd", "lineColor", "stateBorder", "innerFill", "circle2", "stateStart", "subroutine", "l1", "l2", "el", "taggedRect", "tagWidth", "tagHeight", "tagPoints", "rectNode", "tagPath", "tagNode", "taggedRect2", "taggedWaveEdgedRectangle", "waveEdgeRectPath", "waveEdgeRectNode", "taggedWaveEdgeRectPath", "taggedWaveEdgeRectNode", "text", "createCylinderPathD3", "createOuterCylinderPathD3", "createInnerCylinderPathD3", "tiltedCylinder", "trapezoid", "trapezoidalPentagon", "triangle", "waveEdgedRectangle", "widthDif", "extraW", "waveRectangle", "baseWidth", "baseHeight", "aspectRatio", "waveRectPath", "waveRectNode", "waveRect", "windowPane", "path", "no", "windowPane2", "textHelper", "config", "GAP", "TEXT_PADDING", "annotationGroup", "labelGroup", "membersGroup", "methodsGroup", "annotationGroupHeight", "labelGroupHeight", "membersGroupHeight", "annotation", "addText", "labelGroupBBox", "yOffset", "member", "methodsYOffset", "method", "annotationGroupBBox", "parentGroup", "textEl", "textContent", "sanitizeText3", "calculateTextWidth", "numberOfLines", "textChild", "classBox", "PADDING", "classNode", "renderExtraBox", "roughRect", "rectBBox", "_", "nodes", "transform", "translateY", "translate", "newTranslateY", "newTranslateX", "_2", "i2", "nodes2", "colorRegex", "match", "colorStyle", "match2", "colorFromPriority", "priority", "kanbanItem", "kanbanNode", "labelPaddingX", "orgWidth", "labelElTitle", "ticketUrl", "link", "bbox2", "labelElAssigned", "bboxAssigned", "labelPaddingY", "heightAdj", "line", "lineX", "shapesDefs", "generateShapeMap", "entries", "alias", "shapes2", "isValidShape", "nodeElems", "insertNode", "renderOptions", "newEl", "shapeHandler", "target", "setNodeElem", "clear2", "positionNode", "diff"] +} diff --git a/docs/_site/public/chunk-OSRY5VT3.min.js b/docs/_site/public/chunk-OSRY5VT3.min.js new file mode 100644 index 0000000..3a86c6b --- /dev/null +++ b/docs/_site/public/chunk-OSRY5VT3.min.js @@ -0,0 +1,2 @@ +var h=Object.create;var f=Object.defineProperty;var i=Object.getOwnPropertyDescriptor;var j=Object.getOwnPropertyNames;var k=Object.getPrototypeOf,l=Object.prototype.hasOwnProperty;var m=(b,a)=>()=>(a||b((a={exports:{}}).exports,a),a.exports),n=(b,a)=>{for(var c in a)f(b,c,{get:a[c],enumerable:!0})},e=(b,a,c,g)=>{if(a&&typeof a=="object"||typeof a=="function")for(let d of j(a))!l.call(b,d)&&d!==c&&f(b,d,{get:()=>a[d],enumerable:!(g=i(a,d))||g.enumerable});return b},o=(b,a,c)=>(e(b,a,"default"),c&&e(c,a,"default")),p=(b,a,c)=>(c=b!=null?h(k(b)):{},e(a||!b||!b.__esModule?f(c,"default",{value:b,enumerable:!0}):c,b));export{m as a,n as b,o as c,p as d}; +//# sourceMappingURL=chunk-OSRY5VT3.min.js.map diff --git a/docs/_site/public/chunk-OSRY5VT3.min.js.map b/docs/_site/public/chunk-OSRY5VT3.min.js.map new file mode 100644 index 0000000..9865211 --- /dev/null +++ b/docs/_site/public/chunk-OSRY5VT3.min.js.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": [], + "sourcesContent": [], + "mappings": "", + "names": [] +} diff --git a/docs/_site/public/chunk-OZ2RCKQJ.min.js b/docs/_site/public/chunk-OZ2RCKQJ.min.js new file mode 100644 index 0000000..159aff6 --- /dev/null +++ b/docs/_site/public/chunk-OZ2RCKQJ.min.js @@ -0,0 +1,2 @@ +import{a as o,b as c,c as t,d as n,e as k,f as e,g as i,i as u,n as d,o as l}from"./chunk-BIJFJY5F.min.js";var m=class extends l{static{e(this,"PacketTokenBuilder")}constructor(){super(["packet-beta"])}},v={parser:{TokenBuilder:e(()=>new m,"TokenBuilder"),ValueConverter:e(()=>new d,"ValueConverter")}};function p(s=n){let r=t(c(s),i),a=t(o({shared:r}),u,v);return r.ServiceRegistry.register(a),{shared:r,Packet:a}}e(p,"createPacketServices");export{v as a,p as b}; +//# sourceMappingURL=chunk-OZ2RCKQJ.min.js.map diff --git a/docs/_site/public/chunk-OZ2RCKQJ.min.js.map b/docs/_site/public/chunk-OZ2RCKQJ.min.js.map new file mode 100644 index 0000000..9aa7362 --- /dev/null +++ b/docs/_site/public/chunk-OZ2RCKQJ.min.js.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": ["../../node_modules/@mermaid-js/parser/dist/chunks/mermaid-parser.core/chunk-EQFLFMNE.mjs"], + "sourcesContent": ["import {\n AbstractMermaidTokenBuilder,\n CommonValueConverter,\n MermaidGeneratedSharedModule,\n PacketGeneratedModule,\n __name\n} from \"./chunk-Y27MQZ3U.mjs\";\n\n// src/language/packet/module.ts\nimport {\n EmptyFileSystem,\n createDefaultCoreModule,\n createDefaultSharedCoreModule,\n inject\n} from \"langium\";\n\n// src/language/packet/tokenBuilder.ts\nvar PacketTokenBuilder = class extends AbstractMermaidTokenBuilder {\n static {\n __name(this, \"PacketTokenBuilder\");\n }\n constructor() {\n super([\"packet-beta\"]);\n }\n};\n\n// src/language/packet/module.ts\nvar PacketModule = {\n parser: {\n TokenBuilder: /* @__PURE__ */ __name(() => new PacketTokenBuilder(), \"TokenBuilder\"),\n ValueConverter: /* @__PURE__ */ __name(() => new CommonValueConverter(), \"ValueConverter\")\n }\n};\nfunction createPacketServices(context = EmptyFileSystem) {\n const shared = inject(\n createDefaultSharedCoreModule(context),\n MermaidGeneratedSharedModule\n );\n const Packet = inject(\n createDefaultCoreModule({ shared }),\n PacketGeneratedModule,\n PacketModule\n );\n shared.ServiceRegistry.register(Packet);\n return { shared, Packet };\n}\n__name(createPacketServices, \"createPacketServices\");\n\nexport {\n PacketModule,\n createPacketServices\n};\n"], + "mappings": "2GAiBA,IAAIA,EAAqB,cAAcC,CAA4B,CACjE,MAAO,CACLC,EAAO,KAAM,oBAAoB,CACnC,CACA,aAAc,CACZ,MAAM,CAAC,aAAa,CAAC,CACvB,CACF,EAGIC,EAAe,CACjB,OAAQ,CACN,aAA8BD,EAAO,IAAM,IAAIF,EAAsB,cAAc,EACnF,eAAgCE,EAAO,IAAM,IAAIE,EAAwB,gBAAgB,CAC3F,CACF,EACA,SAASC,EAAqBC,EAAUC,EAAiB,CACvD,IAAMC,EAASC,EACbC,EAA8BJ,CAAO,EACrCK,CACF,EACMC,EAASH,EACbI,EAAwB,CAAE,OAAAL,CAAO,CAAC,EAClCM,EACAX,CACF,EACA,OAAAK,EAAO,gBAAgB,SAASI,CAAM,EAC/B,CAAE,OAAAJ,EAAQ,OAAAI,CAAO,CAC1B,CACAV,EAAOG,EAAsB,sBAAsB", + "names": ["PacketTokenBuilder", "AbstractMermaidTokenBuilder", "__name", "PacketModule", "CommonValueConverter", "createPacketServices", "context", "EmptyFileSystem", "shared", "inject", "createDefaultSharedCoreModule", "MermaidGeneratedSharedModule", "Packet", "createDefaultCoreModule", "PacketGeneratedModule"] +} diff --git a/docs/_site/public/chunk-PDS7545E.min.js b/docs/_site/public/chunk-PDS7545E.min.js new file mode 100644 index 0000000..24a0117 --- /dev/null +++ b/docs/_site/public/chunk-PDS7545E.min.js @@ -0,0 +1,2 @@ +import{a as o,b as n,c as a,d as s,e as m,f as e,g as u,j as d,m as c,o as l}from"./chunk-BIJFJY5F.min.js";var v=class extends l{static{e(this,"PieTokenBuilder")}constructor(){super(["pie","showData"])}},C=class extends c{static{e(this,"PieValueConverter")}runCustomConverter(t,r,i){if(t.name==="PIE_SECTION_LABEL")return r.replace(/"/g,"").trim()}},P={parser:{TokenBuilder:e(()=>new v,"TokenBuilder"),ValueConverter:e(()=>new C,"ValueConverter")}};function p(t=s){let r=a(n(t),u),i=a(o({shared:r}),d,P);return r.ServiceRegistry.register(i),{shared:r,Pie:i}}e(p,"createPieServices");export{P as a,p as b}; +//# sourceMappingURL=chunk-PDS7545E.min.js.map diff --git a/docs/_site/public/chunk-PDS7545E.min.js.map b/docs/_site/public/chunk-PDS7545E.min.js.map new file mode 100644 index 0000000..85bed1f --- /dev/null +++ b/docs/_site/public/chunk-PDS7545E.min.js.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": ["../../node_modules/@mermaid-js/parser/dist/chunks/mermaid-parser.core/chunk-BI6EQKOQ.mjs"], + "sourcesContent": ["import {\n AbstractMermaidTokenBuilder,\n AbstractMermaidValueConverter,\n MermaidGeneratedSharedModule,\n PieGeneratedModule,\n __name\n} from \"./chunk-Y27MQZ3U.mjs\";\n\n// src/language/pie/module.ts\nimport {\n EmptyFileSystem,\n createDefaultCoreModule,\n createDefaultSharedCoreModule,\n inject\n} from \"langium\";\n\n// src/language/pie/tokenBuilder.ts\nvar PieTokenBuilder = class extends AbstractMermaidTokenBuilder {\n static {\n __name(this, \"PieTokenBuilder\");\n }\n constructor() {\n super([\"pie\", \"showData\"]);\n }\n};\n\n// src/language/pie/valueConverter.ts\nvar PieValueConverter = class extends AbstractMermaidValueConverter {\n static {\n __name(this, \"PieValueConverter\");\n }\n runCustomConverter(rule, input, _cstNode) {\n if (rule.name !== \"PIE_SECTION_LABEL\") {\n return void 0;\n }\n return input.replace(/\"/g, \"\").trim();\n }\n};\n\n// src/language/pie/module.ts\nvar PieModule = {\n parser: {\n TokenBuilder: /* @__PURE__ */ __name(() => new PieTokenBuilder(), \"TokenBuilder\"),\n ValueConverter: /* @__PURE__ */ __name(() => new PieValueConverter(), \"ValueConverter\")\n }\n};\nfunction createPieServices(context = EmptyFileSystem) {\n const shared = inject(\n createDefaultSharedCoreModule(context),\n MermaidGeneratedSharedModule\n );\n const Pie = inject(\n createDefaultCoreModule({ shared }),\n PieGeneratedModule,\n PieModule\n );\n shared.ServiceRegistry.register(Pie);\n return { shared, Pie };\n}\n__name(createPieServices, \"createPieServices\");\n\nexport {\n PieModule,\n createPieServices\n};\n"], + "mappings": "2GAiBA,IAAIA,EAAkB,cAAcC,CAA4B,CAC9D,MAAO,CACLC,EAAO,KAAM,iBAAiB,CAChC,CACA,aAAc,CACZ,MAAM,CAAC,MAAO,UAAU,CAAC,CAC3B,CACF,EAGIC,EAAoB,cAAcC,CAA8B,CAClE,MAAO,CACLF,EAAO,KAAM,mBAAmB,CAClC,CACA,mBAAmBG,EAAMC,EAAOC,EAAU,CACxC,GAAIF,EAAK,OAAS,oBAGlB,OAAOC,EAAM,QAAQ,KAAM,EAAE,EAAE,KAAK,CACtC,CACF,EAGIE,EAAY,CACd,OAAQ,CACN,aAA8BN,EAAO,IAAM,IAAIF,EAAmB,cAAc,EAChF,eAAgCE,EAAO,IAAM,IAAIC,EAAqB,gBAAgB,CACxF,CACF,EACA,SAASM,EAAkBC,EAAUC,EAAiB,CACpD,IAAMC,EAASC,EACbC,EAA8BJ,CAAO,EACrCK,CACF,EACMC,EAAMH,EACVI,EAAwB,CAAE,OAAAL,CAAO,CAAC,EAClCM,EACAV,CACF,EACA,OAAAI,EAAO,gBAAgB,SAASI,CAAG,EAC5B,CAAE,OAAAJ,EAAQ,IAAAI,CAAI,CACvB,CACAd,EAAOO,EAAmB,mBAAmB", + "names": ["PieTokenBuilder", "AbstractMermaidTokenBuilder", "__name", "PieValueConverter", "AbstractMermaidValueConverter", "rule", "input", "_cstNode", "PieModule", "createPieServices", "context", "EmptyFileSystem", "shared", "inject", "createDefaultSharedCoreModule", "MermaidGeneratedSharedModule", "Pie", "createDefaultCoreModule", "PieGeneratedModule"] +} diff --git a/docs/_site/public/chunk-PYPO7LRM.min.js b/docs/_site/public/chunk-PYPO7LRM.min.js new file mode 100644 index 0000000..fe5163d --- /dev/null +++ b/docs/_site/public/chunk-PYPO7LRM.min.js @@ -0,0 +1,3 @@ +import{a as mt}from"./chunk-CM5D5KZN.min.js";import{Ea as F,Ha as _,Ia as A,Ja as N,Ka as R,La as H,Ma as D,N as $,Na as O,Oa as j,Pa as z,Qa as U,Ra as k,Sa as G,Ta as J,Ua as X,Va as Y,Wa as q,Xa as Z,Ya as K,Za as Q,h as s,ia as L,j as f,m,p as E,s as b,w as I}from"./chunk-U3SD26FK.min.js";import{T as V,k as w}from"./chunk-CXRPJJJE.min.js";import{d as gt}from"./chunk-OSRY5VT3.min.js";var nt=gt(mt(),1);var vt="\u200B",yt={curveBasis:N,curveBasisClosed:R,curveBasisOpen:H,curveBumpX:_,curveBumpY:A,curveBundle:D,curveCardinalClosed:j,curveCardinalOpen:z,curveCardinal:O,curveCatmullRomClosed:k,curveCatmullRomOpen:G,curveCatmullRom:U,curveLinear:F,curveLinearClosed:J,curveMonotoneX:X,curveMonotoneY:Y,curveNatural:q,curveStep:Z,curveStepAfter:Q,curveStepBefore:K},xt=/\s*(?:(\w+)(?=:):|(\w+))\s*(?:(\w+)|((?:(?!}%{2}).|\r?\n)*))?\s*(?:}%{2})?/gi,pt=s(function(e,t){let r=rt(e,/(?:init\b)|(?:initialize\b)/),n={};if(Array.isArray(r)){let a=r.map(l=>l.args);I(a),n=b(n,[...a])}else n=r.args;if(!n)return;let i=E(e,t),o="config";return n[o]!==void 0&&(i==="flowchart-v2"&&(i="flowchart"),n[i]=n[o],delete n[o]),n},"detectInit"),rt=s(function(e,t=null){try{let r=new RegExp(`[%]{2}(?![{]${xt.source})(?=[}][%]{2}).* +`,"ig");e=e.trim().replace(r,"").replace(/'/gm,'"'),f.debug(`Detecting diagram directive${t!==null?" type:"+t:""} based on the text:${e}`);let n,i=[];for(;(n=m.exec(e))!==null;)if(n.index===m.lastIndex&&m.lastIndex++,n&&!t||t&&n[1]?.match(t)||t&&n[2]?.match(t)){let o=n[1]?n[1]:n[2],a=n[3]?n[3].trim():n[4]?JSON.parse(n[4].trim()):null;i.push({type:o,args:a})}return i.length===0?{type:e,args:null}:i.length===1?i[0]:i}catch(r){return f.error(`ERROR: ${r.message} - Unable to parse directive type: '${t}' based on the text: '${e}'`),{type:void 0,args:null}}},"detectDirective"),Ht=s(function(e){return e.replace(m,"")},"removeDirectives"),$t=s(function(e,t){for(let[r,n]of t.entries())if(n.match(e))return r;return-1},"isSubstringInArray");function it(e,t){if(!e)return t;let r=`curve${e.charAt(0).toUpperCase()+e.slice(1)}`;return yt[r]??t}s(it,"interpolateToCurve");function ot(e,t){let r=e.trim();if(r)return t.securityLevel!=="loose"?(0,nt.sanitizeUrl)(r):r}s(ot,"formatUrl");var wt=s((e,...t)=>{let r=e.split("."),n=r.length-1,i=r[n],o=window;for(let a=0;a{r+=B(i,t),t=i});let n=r/2;return S(e,n)}s(at,"traverseEdge");function st(e){return e.length===1?e[0]:at(e)}s(st,"calcLabelPosition");var tt=s((e,t=2)=>{let r=Math.pow(10,t);return Math.round(e*r)/r},"roundNumber"),S=s((e,t)=>{let r,n=t;for(let i of e){if(r){let o=B(i,r);if(o=1)return{x:i.x,y:i.y};if(a>0&&a<1)return{x:tt((1-a)*r.x+a*i.x,5),y:tt((1-a)*r.y+a*i.y,5)}}}r=i}throw new Error("Could not find a suitable point for the given distance")},"calculatePoint"),Mt=s((e,t,r)=>{f.info(`our points ${JSON.stringify(t)}`),t[0]!==r&&(t=t.reverse());let i=S(t,25),o=e?10:5,a=Math.atan2(t[0].y-i.y,t[0].x-i.x),l={x:0,y:0};return l.x=Math.sin(a)*o+(t[0].x+i.x)/2,l.y=-Math.cos(a)*o+(t[0].y+i.y)/2,l},"calcCardinalityPosition");function ct(e,t,r){let n=structuredClone(r);f.info("our points",n),t!=="start_left"&&t!=="start_right"&&n.reverse();let i=25+e,o=S(n,i),a=10+e*.5,l=Math.atan2(n[0].y-o.y,n[0].x-o.x),c={x:0,y:0};return t==="start_left"?(c.x=Math.sin(l+Math.PI)*a+(n[0].x+o.x)/2,c.y=-Math.cos(l+Math.PI)*a+(n[0].y+o.y)/2):t==="end_right"?(c.x=Math.sin(l-Math.PI)*a+(n[0].x+o.x)/2-5,c.y=-Math.cos(l-Math.PI)*a+(n[0].y+o.y)/2-5):t==="end_left"?(c.x=Math.sin(l)*a+(n[0].x+o.x)/2-5,c.y=-Math.cos(l)*a+(n[0].y+o.y)/2-5):(c.x=Math.sin(l)*a+(n[0].x+o.x)/2,c.y=-Math.cos(l)*a+(n[0].y+o.y)/2),c}s(ct,"calcTerminalLabelPosition");function lt(e){let t="",r="";for(let n of e)n!==void 0&&(n.startsWith("color:")||n.startsWith("text-align:")?r=r+n+";":t=t+n+";");return{style:t,labelStyle:r}}s(lt,"getStylesFromArray");var et=0,bt=s(()=>(et++,"id-"+Math.random().toString(36).substr(2,12)+"-"+et),"generateId");function ut(e){let t="",r="0123456789abcdef",n=r.length;for(let i=0;iut(e.length),"random"),St=s(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"),Wt=s(function(e,t){let r=t.text.replace($.lineBreakRegex," "),[,n]=T(t.fontSize),i=e.append("text");i.attr("x",t.x),i.attr("y",t.y),i.style("text-anchor",t.anchor),i.style("font-family",t.fontFamily),i.style("font-size",n),i.style("font-weight",t.fontWeight),i.attr("fill",t.fill),t.class!==void 0&&i.attr("class",t.class);let o=i.append("tspan");return o.attr("x",t.x+t.textMargin*2),o.attr("fill",t.fill),o.text(r),i},"drawSimpleText"),Tt=w((e,t,r)=>{if(!e||(r=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial",joinWith:"
    "},r),$.lineBreakRegex.test(e)))return e;let n=e.split(" ").filter(Boolean),i=[],o="";return n.forEach((a,l)=>{let c=v(`${a} `,r),u=v(o,r);if(c>t){let{hyphenatedStrings:g,remainingWord:h}=Ct(a,t,"-",r);i.push(o,...g),o=h}else u+c>=t?(i.push(o),o=a):o=[o,a].filter(Boolean).join(" ");l+1===n.length&&i.push(o)}),i.filter(a=>a!=="").join(r.joinWith)},(e,t,r)=>`${e}${t}${r.fontSize}${r.fontWeight}${r.fontFamily}${r.joinWith}`),Ct=w((e,t,r="-",n)=>{n=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial",margin:0},n);let i=[...e],o=[],a="";return i.forEach((l,c)=>{let u=`${a}${l}`;if(v(u,n)>=t){let x=c+1,g=i.length===x,h=`${u}${r}`;o.push(g?u:h),a=""}else a=u}),{hyphenatedStrings:o,remainingWord:a}},(e,t,r="-",n)=>`${e}${t}${r}${n.fontSize}${n.fontWeight}${n.fontFamily}`);function ht(e,t){return W(e,t).height}s(ht,"calculateTextHeight");function v(e,t){return W(e,t).width}s(v,"calculateTextWidth");var W=w((e,t)=>{let{fontSize:r=12,fontFamily:n="Arial",fontWeight:i=400}=t;if(!e)return{width:0,height:0};let[,o]=T(r),a=["sans-serif",n],l=e.split($.lineBreakRegex),c=[],u=L("body");if(!u.remove)return{width:0,height:0,lineHeight:0};let y=u.append("svg");for(let g of a){let h=0,d={width:0,height:0,lineHeight:0};for(let ft of l){let C=St();C.text=ft||vt;let P=Wt(y,C).style("font-size",o).style("font-weight",i).style("font-family",g),p=(P._groups||P)[0][0].getBBox();if(p.width===0&&p.height===0)throw new Error("svg element not in render tree");d.width=Math.round(Math.max(d.width,p.width)),h=Math.round(p.height),d.height+=h,d.lineHeight=Math.round(Math.max(d.lineHeight,h))}c.push(d)}y.remove();let x=isNaN(c[1].height)||isNaN(c[1].width)||isNaN(c[1].lineHeight)||c[0].height>c[1].height&&c[0].width>c[1].width&&c[0].lineHeight>c[1].lineHeight?0:1;return c[x]},(e,t)=>`${e}${t.fontSize}${t.fontWeight}${t.fontFamily}`),Pt=class{constructor(e=!1,t){this.count=0,this.count=t?t.length:0,this.next=e?()=>this.count++:()=>Date.now()}static{s(this,"InitIDGenerator")}},M,Et=s(function(e){return M=M||document.createElement("div"),e=escape(e).replace(/%26/g,"&").replace(/%23/g,"#").replace(/%3B/g,";"),M.innerHTML=e,unescape(M.textContent)},"entityDecode");function It(e){return"str"in e}s(It,"isDetailedError");var Lt=s((e,t,r,n)=>{if(!n)return;let i=e.node()?.getBBox();i&&e.append("text").text(n).attr("text-anchor","middle").attr("x",i.x+i.width/2).attr("y",-r).attr("class",t)},"insertTitle"),T=s(e=>{if(typeof e=="number")return[e,e+"px"];let t=parseInt(e??"",10);return Number.isNaN(t)?[void 0,void 0]:e===String(t)?[t,e+"px"]:[t,e]},"parseFontSize");function dt(e,t){return V({},e,t)}s(dt,"cleanAndMerge");var Dt={assignWithDepth:b,wrapLabel:Tt,calculateTextHeight:ht,calculateTextWidth:v,calculateTextDimensions:W,cleanAndMerge:dt,detectInit:pt,detectDirective:rt,isSubstringInArray:$t,interpolateToCurve:it,calcLabelPosition:st,calcCardinalityPosition:Mt,calcTerminalLabelPosition:ct,formatUrl:ot,getStylesFromArray:lt,generateId:bt,random:Bt,runFunc:wt,entityDecode:Et,insertTitle:Lt,parseFontSize:T,InitIDGenerator:Pt},Ot=s(function(e){let t=e;return t=t.replace(/style.*:\S*#.*;/g,function(r){return r.substring(0,r.length-1)}),t=t.replace(/classDef.*:\S*#.*;/g,function(r){return r.substring(0,r.length-1)}),t=t.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"}),t},"encodeEntities"),jt=s(function(e){return e.replace(/fl°°/g,"&#").replace(/fl°/g,"&").replace(/¶ß/g,";")},"decodeEntities"),zt=s((e,t,{counter:r=0,prefix:n,suffix:i})=>`${n?`${n}_`:""}${e}_${t}_${r}${i?`_${i}`:""}`,"getEdgeId");function Ft(e){return e??null}s(Ft,"handleUndefinedAttr");export{vt as a,Ht as b,it as c,lt as d,bt as e,Bt as f,Tt as g,ht as h,v as i,It as j,T as k,dt as l,Dt as m,Ot as n,jt as o,zt as p,Ft as q}; +//# sourceMappingURL=chunk-PYPO7LRM.min.js.map diff --git a/docs/_site/public/chunk-PYPO7LRM.min.js.map b/docs/_site/public/chunk-PYPO7LRM.min.js.map new file mode 100644 index 0000000..9eba194 --- /dev/null +++ b/docs/_site/public/chunk-PYPO7LRM.min.js.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": ["../../node_modules/mermaid/dist/chunks/mermaid.core/chunk-7DKRZKHE.mjs"], + "sourcesContent": ["import {\n __name,\n assignWithDepth_default,\n common_default,\n detectType,\n directiveRegex,\n log,\n sanitizeDirective\n} from \"./chunk-6DBFFHIP.mjs\";\n\n// src/utils.ts\nimport { sanitizeUrl } from \"@braintree/sanitize-url\";\nimport {\n curveBasis,\n curveBasisClosed,\n curveBasisOpen,\n curveBumpX,\n curveBumpY,\n curveBundle,\n curveCardinalClosed,\n curveCardinalOpen,\n curveCardinal,\n curveCatmullRomClosed,\n curveCatmullRomOpen,\n curveCatmullRom,\n curveLinear,\n curveLinearClosed,\n curveMonotoneX,\n curveMonotoneY,\n curveNatural,\n curveStep,\n curveStepAfter,\n curveStepBefore,\n select\n} from \"d3\";\nimport memoize from \"lodash-es/memoize.js\";\nimport merge from \"lodash-es/merge.js\";\nvar ZERO_WIDTH_SPACE = \"\\u200B\";\nvar d3CurveTypes = {\n curveBasis,\n curveBasisClosed,\n curveBasisOpen,\n curveBumpX,\n curveBumpY,\n curveBundle,\n curveCardinalClosed,\n curveCardinalOpen,\n curveCardinal,\n curveCatmullRomClosed,\n curveCatmullRomOpen,\n curveCatmullRom,\n curveLinear,\n curveLinearClosed,\n curveMonotoneX,\n curveMonotoneY,\n curveNatural,\n curveStep,\n curveStepAfter,\n curveStepBefore\n};\nvar directiveWithoutOpen = /\\s*(?:(\\w+)(?=:):|(\\w+))\\s*(?:(\\w+)|((?:(?!}%{2}).|\\r?\\n)*))?\\s*(?:}%{2})?/gi;\nvar detectInit = /* @__PURE__ */ __name(function(text, config) {\n const inits = detectDirective(text, /(?:init\\b)|(?:initialize\\b)/);\n let results = {};\n if (Array.isArray(inits)) {\n const args = inits.map((init) => init.args);\n sanitizeDirective(args);\n results = assignWithDepth_default(results, [...args]);\n } else {\n results = inits.args;\n }\n if (!results) {\n return;\n }\n let type = detectType(text, config);\n const prop = \"config\";\n if (results[prop] !== void 0) {\n if (type === \"flowchart-v2\") {\n type = \"flowchart\";\n }\n results[type] = results[prop];\n delete results[prop];\n }\n return results;\n}, \"detectInit\");\nvar detectDirective = /* @__PURE__ */ __name(function(text, type = null) {\n try {\n const commentWithoutDirectives = new RegExp(\n `[%]{2}(?![{]${directiveWithoutOpen.source})(?=[}][%]{2}).*\n`,\n \"ig\"\n );\n text = text.trim().replace(commentWithoutDirectives, \"\").replace(/'/gm, '\"');\n log.debug(\n `Detecting diagram directive${type !== null ? \" type:\" + type : \"\"} based on the text:${text}`\n );\n let match;\n const result = [];\n while ((match = directiveRegex.exec(text)) !== null) {\n if (match.index === directiveRegex.lastIndex) {\n directiveRegex.lastIndex++;\n }\n if (match && !type || type && match[1]?.match(type) || type && match[2]?.match(type)) {\n const type2 = match[1] ? match[1] : match[2];\n const args = match[3] ? match[3].trim() : match[4] ? JSON.parse(match[4].trim()) : null;\n result.push({ type: type2, args });\n }\n }\n if (result.length === 0) {\n return { type: text, args: null };\n }\n return result.length === 1 ? result[0] : result;\n } catch (error) {\n log.error(\n `ERROR: ${error.message} - Unable to parse directive type: '${type}' based on the text: '${text}'`\n );\n return { type: void 0, args: null };\n }\n}, \"detectDirective\");\nvar removeDirectives = /* @__PURE__ */ __name(function(text) {\n return text.replace(directiveRegex, \"\");\n}, \"removeDirectives\");\nvar isSubstringInArray = /* @__PURE__ */ __name(function(str, arr) {\n for (const [i, element] of arr.entries()) {\n if (element.match(str)) {\n return i;\n }\n }\n return -1;\n}, \"isSubstringInArray\");\nfunction interpolateToCurve(interpolate, defaultCurve) {\n if (!interpolate) {\n return defaultCurve;\n }\n const curveName = `curve${interpolate.charAt(0).toUpperCase() + interpolate.slice(1)}`;\n return d3CurveTypes[curveName] ?? defaultCurve;\n}\n__name(interpolateToCurve, \"interpolateToCurve\");\nfunction formatUrl(linkStr, config) {\n const url = linkStr.trim();\n if (!url) {\n return void 0;\n }\n if (config.securityLevel !== \"loose\") {\n return sanitizeUrl(url);\n }\n return url;\n}\n__name(formatUrl, \"formatUrl\");\nvar runFunc = /* @__PURE__ */ __name((functionName, ...params) => {\n const arrPaths = functionName.split(\".\");\n const len = arrPaths.length - 1;\n const fnName = arrPaths[len];\n let obj = window;\n for (let i = 0; i < len; i++) {\n obj = obj[arrPaths[i]];\n if (!obj) {\n log.error(`Function name: ${functionName} not found in window`);\n return;\n }\n }\n obj[fnName](...params);\n}, \"runFunc\");\nfunction distance(p1, p2) {\n if (!p1 || !p2) {\n return 0;\n }\n return Math.sqrt(Math.pow(p2.x - p1.x, 2) + Math.pow(p2.y - p1.y, 2));\n}\n__name(distance, \"distance\");\nfunction traverseEdge(points) {\n let prevPoint;\n let totalDistance = 0;\n points.forEach((point) => {\n totalDistance += distance(point, prevPoint);\n prevPoint = point;\n });\n const remainingDistance = totalDistance / 2;\n return calculatePoint(points, remainingDistance);\n}\n__name(traverseEdge, \"traverseEdge\");\nfunction calcLabelPosition(points) {\n if (points.length === 1) {\n return points[0];\n }\n return traverseEdge(points);\n}\n__name(calcLabelPosition, \"calcLabelPosition\");\nvar roundNumber = /* @__PURE__ */ __name((num, precision = 2) => {\n const factor = Math.pow(10, precision);\n return Math.round(num * factor) / factor;\n}, \"roundNumber\");\nvar calculatePoint = /* @__PURE__ */ __name((points, distanceToTraverse) => {\n let prevPoint = void 0;\n let remainingDistance = distanceToTraverse;\n for (const point of points) {\n if (prevPoint) {\n const vectorDistance = distance(point, prevPoint);\n if (vectorDistance < remainingDistance) {\n remainingDistance -= vectorDistance;\n } else {\n const distanceRatio = remainingDistance / vectorDistance;\n if (distanceRatio <= 0) {\n return prevPoint;\n }\n if (distanceRatio >= 1) {\n return { x: point.x, y: point.y };\n }\n if (distanceRatio > 0 && distanceRatio < 1) {\n return {\n x: roundNumber((1 - distanceRatio) * prevPoint.x + distanceRatio * point.x, 5),\n y: roundNumber((1 - distanceRatio) * prevPoint.y + distanceRatio * point.y, 5)\n };\n }\n }\n }\n prevPoint = point;\n }\n throw new Error(\"Could not find a suitable point for the given distance\");\n}, \"calculatePoint\");\nvar calcCardinalityPosition = /* @__PURE__ */ __name((isRelationTypePresent, points, initialPosition) => {\n log.info(`our points ${JSON.stringify(points)}`);\n if (points[0] !== initialPosition) {\n points = points.reverse();\n }\n const distanceToCardinalityPoint = 25;\n const center = calculatePoint(points, distanceToCardinalityPoint);\n const d = isRelationTypePresent ? 10 : 5;\n const angle = Math.atan2(points[0].y - center.y, points[0].x - center.x);\n const cardinalityPosition = { x: 0, y: 0 };\n cardinalityPosition.x = Math.sin(angle) * d + (points[0].x + center.x) / 2;\n cardinalityPosition.y = -Math.cos(angle) * d + (points[0].y + center.y) / 2;\n return cardinalityPosition;\n}, \"calcCardinalityPosition\");\nfunction calcTerminalLabelPosition(terminalMarkerSize, position, _points) {\n const points = structuredClone(_points);\n log.info(\"our points\", points);\n if (position !== \"start_left\" && position !== \"start_right\") {\n points.reverse();\n }\n const distanceToCardinalityPoint = 25 + terminalMarkerSize;\n const center = calculatePoint(points, distanceToCardinalityPoint);\n const d = 10 + terminalMarkerSize * 0.5;\n const angle = Math.atan2(points[0].y - center.y, points[0].x - center.x);\n const cardinalityPosition = { x: 0, y: 0 };\n if (position === \"start_left\") {\n cardinalityPosition.x = Math.sin(angle + Math.PI) * d + (points[0].x + center.x) / 2;\n cardinalityPosition.y = -Math.cos(angle + Math.PI) * d + (points[0].y + center.y) / 2;\n } else if (position === \"end_right\") {\n cardinalityPosition.x = Math.sin(angle - Math.PI) * d + (points[0].x + center.x) / 2 - 5;\n cardinalityPosition.y = -Math.cos(angle - Math.PI) * d + (points[0].y + center.y) / 2 - 5;\n } else if (position === \"end_left\") {\n cardinalityPosition.x = Math.sin(angle) * d + (points[0].x + center.x) / 2 - 5;\n cardinalityPosition.y = -Math.cos(angle) * d + (points[0].y + center.y) / 2 - 5;\n } else {\n cardinalityPosition.x = Math.sin(angle) * d + (points[0].x + center.x) / 2;\n cardinalityPosition.y = -Math.cos(angle) * d + (points[0].y + center.y) / 2;\n }\n return cardinalityPosition;\n}\n__name(calcTerminalLabelPosition, \"calcTerminalLabelPosition\");\nfunction getStylesFromArray(arr) {\n let style = \"\";\n let labelStyle = \"\";\n for (const element of arr) {\n if (element !== void 0) {\n if (element.startsWith(\"color:\") || element.startsWith(\"text-align:\")) {\n labelStyle = labelStyle + element + \";\";\n } else {\n style = style + element + \";\";\n }\n }\n }\n return { style, labelStyle };\n}\n__name(getStylesFromArray, \"getStylesFromArray\");\nvar cnt = 0;\nvar generateId = /* @__PURE__ */ __name(() => {\n cnt++;\n return \"id-\" + Math.random().toString(36).substr(2, 12) + \"-\" + cnt;\n}, \"generateId\");\nfunction makeRandomHex(length) {\n let result = \"\";\n const characters = \"0123456789abcdef\";\n const charactersLength = characters.length;\n for (let i = 0; i < length; i++) {\n result += characters.charAt(Math.floor(Math.random() * charactersLength));\n }\n return result;\n}\n__name(makeRandomHex, \"makeRandomHex\");\nvar random = /* @__PURE__ */ __name((options) => {\n return makeRandomHex(options.length);\n}, \"random\");\nvar getTextObj = /* @__PURE__ */ __name(function() {\n return {\n x: 0,\n y: 0,\n fill: void 0,\n anchor: \"start\",\n style: \"#666\",\n width: 100,\n height: 100,\n textMargin: 0,\n rx: 0,\n ry: 0,\n valign: void 0,\n text: \"\"\n };\n}, \"getTextObj\");\nvar drawSimpleText = /* @__PURE__ */ __name(function(elem, textData) {\n const nText = textData.text.replace(common_default.lineBreakRegex, \" \");\n const [, _fontSizePx] = parseFontSize(textData.fontSize);\n const textElem = elem.append(\"text\");\n textElem.attr(\"x\", textData.x);\n textElem.attr(\"y\", textData.y);\n textElem.style(\"text-anchor\", textData.anchor);\n textElem.style(\"font-family\", textData.fontFamily);\n textElem.style(\"font-size\", _fontSizePx);\n textElem.style(\"font-weight\", textData.fontWeight);\n textElem.attr(\"fill\", textData.fill);\n if (textData.class !== void 0) {\n textElem.attr(\"class\", textData.class);\n }\n const span = textElem.append(\"tspan\");\n span.attr(\"x\", textData.x + textData.textMargin * 2);\n span.attr(\"fill\", textData.fill);\n span.text(nText);\n return textElem;\n}, \"drawSimpleText\");\nvar wrapLabel = memoize(\n (label, maxWidth, config) => {\n if (!label) {\n return label;\n }\n config = Object.assign(\n { fontSize: 12, fontWeight: 400, fontFamily: \"Arial\", joinWith: \"
    \" },\n config\n );\n if (common_default.lineBreakRegex.test(label)) {\n return label;\n }\n const words = label.split(\" \").filter(Boolean);\n const completedLines = [];\n let nextLine = \"\";\n words.forEach((word, index) => {\n const wordLength = calculateTextWidth(`${word} `, config);\n const nextLineLength = calculateTextWidth(nextLine, config);\n if (wordLength > maxWidth) {\n const { hyphenatedStrings, remainingWord } = breakString(word, maxWidth, \"-\", config);\n completedLines.push(nextLine, ...hyphenatedStrings);\n nextLine = remainingWord;\n } else if (nextLineLength + wordLength >= maxWidth) {\n completedLines.push(nextLine);\n nextLine = word;\n } else {\n nextLine = [nextLine, word].filter(Boolean).join(\" \");\n }\n const currentWord = index + 1;\n const isLastWord = currentWord === words.length;\n if (isLastWord) {\n completedLines.push(nextLine);\n }\n });\n return completedLines.filter((line) => line !== \"\").join(config.joinWith);\n },\n (label, maxWidth, config) => `${label}${maxWidth}${config.fontSize}${config.fontWeight}${config.fontFamily}${config.joinWith}`\n);\nvar breakString = memoize(\n (word, maxWidth, hyphenCharacter = \"-\", config) => {\n config = Object.assign(\n { fontSize: 12, fontWeight: 400, fontFamily: \"Arial\", margin: 0 },\n config\n );\n const characters = [...word];\n const lines = [];\n let currentLine = \"\";\n characters.forEach((character, index) => {\n const nextLine = `${currentLine}${character}`;\n const lineWidth = calculateTextWidth(nextLine, config);\n if (lineWidth >= maxWidth) {\n const currentCharacter = index + 1;\n const isLastLine = characters.length === currentCharacter;\n const hyphenatedNextLine = `${nextLine}${hyphenCharacter}`;\n lines.push(isLastLine ? nextLine : hyphenatedNextLine);\n currentLine = \"\";\n } else {\n currentLine = nextLine;\n }\n });\n return { hyphenatedStrings: lines, remainingWord: currentLine };\n },\n (word, maxWidth, hyphenCharacter = \"-\", config) => `${word}${maxWidth}${hyphenCharacter}${config.fontSize}${config.fontWeight}${config.fontFamily}`\n);\nfunction calculateTextHeight(text, config) {\n return calculateTextDimensions(text, config).height;\n}\n__name(calculateTextHeight, \"calculateTextHeight\");\nfunction calculateTextWidth(text, config) {\n return calculateTextDimensions(text, config).width;\n}\n__name(calculateTextWidth, \"calculateTextWidth\");\nvar calculateTextDimensions = memoize(\n (text, config) => {\n const { fontSize = 12, fontFamily = \"Arial\", fontWeight = 400 } = config;\n if (!text) {\n return { width: 0, height: 0 };\n }\n const [, _fontSizePx] = parseFontSize(fontSize);\n const fontFamilies = [\"sans-serif\", fontFamily];\n const lines = text.split(common_default.lineBreakRegex);\n const dims = [];\n const body = select(\"body\");\n if (!body.remove) {\n return { width: 0, height: 0, lineHeight: 0 };\n }\n const g = body.append(\"svg\");\n for (const fontFamily2 of fontFamilies) {\n let cHeight = 0;\n const dim = { width: 0, height: 0, lineHeight: 0 };\n for (const line of lines) {\n const textObj = getTextObj();\n textObj.text = line || ZERO_WIDTH_SPACE;\n const textElem = drawSimpleText(g, textObj).style(\"font-size\", _fontSizePx).style(\"font-weight\", fontWeight).style(\"font-family\", fontFamily2);\n const bBox = (textElem._groups || textElem)[0][0].getBBox();\n if (bBox.width === 0 && bBox.height === 0) {\n throw new Error(\"svg element not in render tree\");\n }\n dim.width = Math.round(Math.max(dim.width, bBox.width));\n cHeight = Math.round(bBox.height);\n dim.height += cHeight;\n dim.lineHeight = Math.round(Math.max(dim.lineHeight, cHeight));\n }\n dims.push(dim);\n }\n g.remove();\n const index = isNaN(dims[1].height) || isNaN(dims[1].width) || isNaN(dims[1].lineHeight) || dims[0].height > dims[1].height && dims[0].width > dims[1].width && dims[0].lineHeight > dims[1].lineHeight ? 0 : 1;\n return dims[index];\n },\n (text, config) => `${text}${config.fontSize}${config.fontWeight}${config.fontFamily}`\n);\nvar InitIDGenerator = class {\n constructor(deterministic = false, seed) {\n this.count = 0;\n this.count = seed ? seed.length : 0;\n this.next = deterministic ? () => this.count++ : () => Date.now();\n }\n static {\n __name(this, \"InitIDGenerator\");\n }\n};\nvar decoder;\nvar entityDecode = /* @__PURE__ */ __name(function(html) {\n decoder = decoder || document.createElement(\"div\");\n html = escape(html).replace(/%26/g, \"&\").replace(/%23/g, \"#\").replace(/%3B/g, \";\");\n decoder.innerHTML = html;\n return unescape(decoder.textContent);\n}, \"entityDecode\");\nfunction isDetailedError(error) {\n return \"str\" in error;\n}\n__name(isDetailedError, \"isDetailedError\");\nvar insertTitle = /* @__PURE__ */ __name((parent, cssClass, titleTopMargin, title) => {\n if (!title) {\n return;\n }\n const bounds = parent.node()?.getBBox();\n if (!bounds) {\n return;\n }\n parent.append(\"text\").text(title).attr(\"text-anchor\", \"middle\").attr(\"x\", bounds.x + bounds.width / 2).attr(\"y\", -titleTopMargin).attr(\"class\", cssClass);\n}, \"insertTitle\");\nvar parseFontSize = /* @__PURE__ */ __name((fontSize) => {\n if (typeof fontSize === \"number\") {\n return [fontSize, fontSize + \"px\"];\n }\n const fontSizeNumber = parseInt(fontSize ?? \"\", 10);\n if (Number.isNaN(fontSizeNumber)) {\n return [void 0, void 0];\n } else if (fontSize === String(fontSizeNumber)) {\n return [fontSizeNumber, fontSize + \"px\"];\n } else {\n return [fontSizeNumber, fontSize];\n }\n}, \"parseFontSize\");\nfunction cleanAndMerge(defaultData, data) {\n return merge({}, defaultData, data);\n}\n__name(cleanAndMerge, \"cleanAndMerge\");\nvar utils_default = {\n assignWithDepth: assignWithDepth_default,\n wrapLabel,\n calculateTextHeight,\n calculateTextWidth,\n calculateTextDimensions,\n cleanAndMerge,\n detectInit,\n detectDirective,\n isSubstringInArray,\n interpolateToCurve,\n calcLabelPosition,\n calcCardinalityPosition,\n calcTerminalLabelPosition,\n formatUrl,\n getStylesFromArray,\n generateId,\n random,\n runFunc,\n entityDecode,\n insertTitle,\n parseFontSize,\n InitIDGenerator\n};\nvar encodeEntities = /* @__PURE__ */ __name(function(text) {\n let txt = text;\n txt = txt.replace(/style.*:\\S*#.*;/g, function(s) {\n return s.substring(0, s.length - 1);\n });\n txt = txt.replace(/classDef.*:\\S*#.*;/g, function(s) {\n return s.substring(0, s.length - 1);\n });\n txt = txt.replace(/#\\w+;/g, function(s) {\n const innerTxt = s.substring(1, s.length - 1);\n const isInt = /^\\+?\\d+$/.test(innerTxt);\n if (isInt) {\n return \"\\uFB02\\xB0\\xB0\" + innerTxt + \"\\xB6\\xDF\";\n } else {\n return \"\\uFB02\\xB0\" + innerTxt + \"\\xB6\\xDF\";\n }\n });\n return txt;\n}, \"encodeEntities\");\nvar decodeEntities = /* @__PURE__ */ __name(function(text) {\n return text.replace(/\uFB02\u00B0\u00B0/g, \"&#\").replace(/\uFB02\u00B0/g, \"&\").replace(/\u00B6\u00DF/g, \";\");\n}, \"decodeEntities\");\nvar getEdgeId = /* @__PURE__ */ __name((from, to, {\n counter = 0,\n prefix,\n suffix\n}) => {\n return `${prefix ? `${prefix}_` : \"\"}${from}_${to}_${counter}${suffix ? `_${suffix}` : \"\"}`;\n}, \"getEdgeId\");\nfunction handleUndefinedAttr(attrValue) {\n return attrValue ?? null;\n}\n__name(handleUndefinedAttr, \"handleUndefinedAttr\");\n\nexport {\n ZERO_WIDTH_SPACE,\n removeDirectives,\n interpolateToCurve,\n getStylesFromArray,\n generateId,\n random,\n wrapLabel,\n calculateTextHeight,\n calculateTextWidth,\n isDetailedError,\n parseFontSize,\n cleanAndMerge,\n utils_default,\n encodeEntities,\n decodeEntities,\n getEdgeId,\n handleUndefinedAttr\n};\n"], + "mappings": "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", + "names": ["import_sanitize_url", "ZERO_WIDTH_SPACE", "d3CurveTypes", "basis_default", "basisClosed_default", "basisOpen_default", "bumpX", "bumpY", "bundle_default", "cardinalClosed_default", "cardinalOpen_default", "cardinal_default", "catmullRomClosed_default", "catmullRomOpen_default", "catmullRom_default", "linear_default", "linearClosed_default", "monotoneX", "monotoneY", "natural_default", "step_default", "stepAfter", "stepBefore", "directiveWithoutOpen", "detectInit", "__name", "text", "config", "inits", "detectDirective", "results", "args", "init", "sanitizeDirective", "assignWithDepth_default", "type", "detectType", "prop", "commentWithoutDirectives", "log", "match", "result", "directiveRegex", "type2", "error", "removeDirectives", "isSubstringInArray", "str", "arr", "i", "element", "interpolateToCurve", "interpolate", "defaultCurve", "curveName", "formatUrl", "linkStr", "url", "runFunc", "functionName", "params", "arrPaths", "len", "fnName", "obj", "distance", "p1", "p2", "traverseEdge", "points", "prevPoint", "totalDistance", "point", "remainingDistance", "calculatePoint", "calcLabelPosition", "roundNumber", "num", "precision", "factor", "distanceToTraverse", "vectorDistance", "distanceRatio", "calcCardinalityPosition", "isRelationTypePresent", "initialPosition", "center", "d", "angle", "cardinalityPosition", "calcTerminalLabelPosition", "terminalMarkerSize", "position", "_points", "distanceToCardinalityPoint", "getStylesFromArray", "style", "labelStyle", "cnt", "generateId", "makeRandomHex", "length", "characters", "charactersLength", "random", "options", "getTextObj", "drawSimpleText", "elem", "textData", "nText", "common_default", "_fontSizePx", "parseFontSize", "textElem", "span", "wrapLabel", "memoize_default", "label", "maxWidth", "words", "completedLines", "nextLine", "word", "index", "wordLength", "calculateTextWidth", "nextLineLength", "hyphenatedStrings", "remainingWord", "breakString", "line", "hyphenCharacter", "lines", "currentLine", "character", "currentCharacter", "isLastLine", "hyphenatedNextLine", "calculateTextHeight", "calculateTextDimensions", "fontSize", "fontFamily", "fontWeight", "fontFamilies", "dims", "body", "select_default", "g", "fontFamily2", "cHeight", "dim", "textObj", "bBox", "InitIDGenerator", "deterministic", "seed", "decoder", "entityDecode", "html", "isDetailedError", "insertTitle", "parent", "cssClass", "titleTopMargin", "title", "bounds", "fontSizeNumber", "cleanAndMerge", "defaultData", "data", "merge_default", "utils_default", "encodeEntities", "txt", "s", "innerTxt", "decodeEntities", "getEdgeId", "from", "to", "counter", "prefix", "suffix", "handleUndefinedAttr", "attrValue"] +} diff --git a/docs/_site/public/chunk-TLYS76Q7.min.js b/docs/_site/public/chunk-TLYS76Q7.min.js new file mode 100644 index 0000000..d9ac788 --- /dev/null +++ b/docs/_site/public/chunk-TLYS76Q7.min.js @@ -0,0 +1,5 @@ +import{a as O}from"./chunk-CLIYZZ5Y.min.js";import{a as U,d as w}from"./chunk-N6ME3NZU.min.js";import{a as H}from"./chunk-V55NTXQN.min.js";import{d as Y}from"./chunk-AUO2PXKS.min.js";import{m as u}from"./chunk-PYPO7LRM.min.js";import{Fa as R,I as W,Ja as X,Z as y,h as d,ia as T,j as f}from"./chunk-U3SD26FK.min.js";var G=d((r,t,a,i,o)=>{t.arrowTypeStart&&A(r,"start",t.arrowTypeStart,a,i,o),t.arrowTypeEnd&&A(r,"end",t.arrowTypeEnd,a,i,o)},"addEdgeMarkers"),P={arrow_cross:"cross",arrow_point:"point",arrow_barb:"barb",arrow_circle:"circle",aggregation:"aggregation",extension:"extension",composition:"composition",dependency:"dependency",lollipop:"lollipop"},A=d((r,t,a,i,o,l)=>{let s=P[a];if(!s){f.warn(`Unknown arrow type: ${a}`);return}let n=t==="start"?"Start":"End";r.attr(`marker-${t}`,`url(${i}#${o}_${l}-${s}${n})`)},"addEdgeMarker"),_=new Map,k=new Map,gt=d(()=>{_.clear(),k.clear()},"clear"),M=d(r=>r?r.reduce((a,i)=>a+";"+i,""):"","getLabelStyles"),ut=d(async(r,t)=>{let a=W(y().flowchart.htmlLabels),i=await Y(r,t.label,{style:M(t.labelStyle),useHtmlLabels:a,addSvgBackground:!0,isNode:!1});f.info("abc82",t,t.labelType);let o=r.insert("g").attr("class","edgeLabel"),l=o.insert("g").attr("class","label");l.node().appendChild(i);let s=i.getBBox();if(a){let e=i.children[0],h=T(i);s=e.getBoundingClientRect(),h.attr("width",s.width),h.attr("height",s.height)}l.attr("transform","translate("+-s.width/2+", "+-s.height/2+")"),_.set(t.id,o),t.width=s.width,t.height=s.height;let n;if(t.startLabelLeft){let e=await w(t.startLabelLeft,M(t.labelStyle)),h=r.insert("g").attr("class","edgeTerminals"),p=h.insert("g").attr("class","inner");n=p.node().appendChild(e);let c=e.getBBox();p.attr("transform","translate("+-c.width/2+", "+-c.height/2+")"),k.get(t.id)||k.set(t.id,{}),k.get(t.id).startLeft=h,v(n,t.startLabelLeft)}if(t.startLabelRight){let e=await w(t.startLabelRight,M(t.labelStyle)),h=r.insert("g").attr("class","edgeTerminals"),p=h.insert("g").attr("class","inner");n=h.node().appendChild(e),p.node().appendChild(e);let c=e.getBBox();p.attr("transform","translate("+-c.width/2+", "+-c.height/2+")"),k.get(t.id)||k.set(t.id,{}),k.get(t.id).startRight=h,v(n,t.startLabelRight)}if(t.endLabelLeft){let e=await w(t.endLabelLeft,M(t.labelStyle)),h=r.insert("g").attr("class","edgeTerminals"),p=h.insert("g").attr("class","inner");n=p.node().appendChild(e);let c=e.getBBox();p.attr("transform","translate("+-c.width/2+", "+-c.height/2+")"),h.node().appendChild(e),k.get(t.id)||k.set(t.id,{}),k.get(t.id).endLeft=h,v(n,t.endLabelLeft)}if(t.endLabelRight){let e=await w(t.endLabelRight,M(t.labelStyle)),h=r.insert("g").attr("class","edgeTerminals"),p=h.insert("g").attr("class","inner");n=p.node().appendChild(e);let c=e.getBBox();p.attr("transform","translate("+-c.width/2+", "+-c.height/2+")"),h.node().appendChild(e),k.get(t.id)||k.set(t.id,{}),k.get(t.id).endRight=h,v(n,t.endLabelRight)}return i},"insertEdgeLabel");function v(r,t){y().flowchart.htmlLabels&&r&&(r.style.width=t.length*9+"px",r.style.height="12px")}d(v,"setTerminalWidth");var Lt=d((r,t)=>{f.debug("Moving label abc88 ",r.id,r.label,_.get(r.id),t);let a=t.updatedPath?t.updatedPath:t.originalPath,i=y(),{subGraphTitleTotalMargin:o}=H(i);if(r.label){let l=_.get(r.id),s=r.x,n=r.y;if(a){let e=u.calcLabelPosition(a);f.debug("Moving label "+r.label+" from (",s,",",n,") to (",e.x,",",e.y,") abc88"),t.updatedPath&&(s=e.x,n=e.y)}l.attr("transform",`translate(${s}, ${n+o/2})`)}if(r.startLabelLeft){let l=k.get(r.id).startLeft,s=r.x,n=r.y;if(a){let e=u.calcTerminalLabelPosition(r.arrowTypeStart?10:0,"start_left",a);s=e.x,n=e.y}l.attr("transform",`translate(${s}, ${n})`)}if(r.startLabelRight){let l=k.get(r.id).startRight,s=r.x,n=r.y;if(a){let e=u.calcTerminalLabelPosition(r.arrowTypeStart?10:0,"start_right",a);s=e.x,n=e.y}l.attr("transform",`translate(${s}, ${n})`)}if(r.endLabelLeft){let l=k.get(r.id).endLeft,s=r.x,n=r.y;if(a){let e=u.calcTerminalLabelPosition(r.arrowTypeEnd?10:0,"end_left",a);s=e.x,n=e.y}l.attr("transform",`translate(${s}, ${n})`)}if(r.endLabelRight){let l=k.get(r.id).endRight,s=r.x,n=r.y;if(a){let e=u.calcTerminalLabelPosition(r.arrowTypeEnd?10:0,"end_right",a);s=e.x,n=e.y}l.attr("transform",`translate(${s}, ${n})`)}},"positionEdgeLabel"),V=d((r,t)=>{let a=r.x,i=r.y,o=Math.abs(t.x-a),l=Math.abs(t.y-i),s=r.width/2,n=r.height/2;return o>=s||l>=n},"outsideNode"),D=d((r,t,a)=>{f.debug(`intersection calc abc89: + outsidePoint: ${JSON.stringify(t)} + insidePoint : ${JSON.stringify(a)} + node : x:${r.x} y:${r.y} w:${r.width} h:${r.height}`);let i=r.x,o=r.y,l=Math.abs(i-a.x),s=r.width/2,n=a.xMath.abs(i-t.x)*e){let c=a.y{f.warn("abc88 cutPathAtIntersect",r,t);let a=[],i=r[0],o=!1;return r.forEach(l=>{if(f.info("abc88 checking point",l,t),!V(t,l)&&!o){let s=D(t,i,l);f.debug("abc88 inside",l,i,s),f.debug("abc88 intersection",s,t);let n=!1;a.forEach(e=>{n=n||e.x===s.x&&e.y===s.y}),a.some(e=>e.x===s.x&&e.y===s.y)?f.warn("abc88 no intersect",s,a):a.push(s),o=!0}else f.warn("abc88 outside",l,i),i=l,o||a.push(l)}),f.debug("returning points",a),a},"cutPathAtIntersect");function q(r){let t=[],a=[];for(let i=1;i5&&Math.abs(l.y-o.y)>5||o.y===l.y&&l.x===s.x&&Math.abs(l.x-o.x)>5&&Math.abs(l.y-s.y)>5)&&(t.push(l),a.push(i))}return{cornerPoints:t,cornerPointPositions:a}}d(q,"extractCornerPoints");var N=d(function(r,t,a){let i=t.x-r.x,o=t.y-r.y,l=Math.sqrt(i*i+o*o),s=a/l;return{x:t.x-s*i,y:t.y-s*o}},"findAdjacentPoint"),K=d(function(r){let{cornerPointPositions:t}=q(r),a=[];for(let i=0;i10&&Math.abs(l.y-o.y)>=10){f.debug("Corner point fixing",Math.abs(l.x-o.x),Math.abs(l.y-o.y));let m=5;s.x===n.x?x={x:h<0?n.x-m+c:n.x+m-c,y:p<0?n.y-c:n.y+c}:x={x:h<0?n.x-c:n.x+c,y:p<0?n.y-m+c:n.y+m-c}}else f.debug("Corner point skipping fixing",Math.abs(l.x-o.x),Math.abs(l.y-o.y));a.push(x,e)}else a.push(r[i]);return a},"fixCorners"),wt=d(function(r,t,a,i,o,l,s){let{handDrawnSeed:n}=y(),e=t.points,h=!1,p=o;var c=l;c.intersect&&p.intersect&&(e=e.slice(1,t.points.length-1),e.unshift(p.intersect(e[0])),f.debug("Last point APA12",t.start,"-->",t.end,e[e.length-1],c,c.intersect(e[e.length-1])),e.push(c.intersect(e[e.length-1]))),t.toCluster&&(f.info("to cluster abc88",a.get(t.toCluster)),e=Z(t.points,a.get(t.toCluster).node),h=!0),t.fromCluster&&(f.debug("from cluster abc88",a.get(t.fromCluster),JSON.stringify(e,null,2)),e=Z(e.reverse(),a.get(t.fromCluster).node).reverse(),h=!0);let x=e.filter(L=>!Number.isNaN(L.y));x=K(x);let m=X;t.curve&&(m=t.curve);let{x:I,y:j}=O(t),J=R().x(I).y(j).curve(m),b;switch(t.thickness){case"normal":b="edge-thickness-normal";break;case"thick":b="edge-thickness-thick";break;case"invisible":b="edge-thickness-invisible";break;default:b="edge-thickness-normal"}switch(t.pattern){case"solid":b+=" edge-pattern-solid";break;case"dotted":b+=" edge-pattern-dotted";break;case"dashed":b+=" edge-pattern-dashed";break;default:b+=" edge-pattern-solid"}let g,B=J(x),E=Array.isArray(t.style)?t.style:[t.style];if(t.look==="handDrawn"){let L=U.svg(r);Object.assign([],x);let C=L.path(B,{roughness:.3,seed:n});b+=" transition",g=T(C).select("path").attr("id",t.id).attr("class"," "+b+(t.classes?" "+t.classes:"")).attr("style",E?E.reduce((z,F)=>z+";"+F,""):"");let Q=g.attr("d");g.attr("d",Q),r.node().appendChild(g.node())}else g=r.append("path").attr("d",B).attr("id",t.id).attr("class"," "+b+(t.classes?" "+t.classes:"")).attr("style",E?E.reduce((L,C)=>L+";"+C,""):"");let S="";(y().flowchart.arrowMarkerAbsolute||y().state.arrowMarkerAbsolute)&&(S=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,S=S.replace(/\(/g,"\\(").replace(/\)/g,"\\)")),f.info("arrowTypeStart",t.arrowTypeStart),f.info("arrowTypeEnd",t.arrowTypeEnd),G(g,t,S,s,i);let $={};return h&&($.updatedPath=e),$.originalPath=t.points,$},"insertEdge"),tt=d((r,t,a,i)=>{t.forEach(o=>{ht[o](r,a,i)})},"insertMarkers"),rt=d((r,t,a)=>{f.trace("Making markers for ",a),r.append("defs").append("marker").attr("id",a+"_"+t+"-extensionStart").attr("class","marker extension "+t).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 1,7 L18,13 V 1 Z"),r.append("defs").append("marker").attr("id",a+"_"+t+"-extensionEnd").attr("class","marker extension "+t).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 1,1 V 13 L18,7 Z")},"extension"),at=d((r,t,a)=>{r.append("defs").append("marker").attr("id",a+"_"+t+"-compositionStart").attr("class","marker composition "+t).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),r.append("defs").append("marker").attr("id",a+"_"+t+"-compositionEnd").attr("class","marker composition "+t).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z")},"composition"),et=d((r,t,a)=>{r.append("defs").append("marker").attr("id",a+"_"+t+"-aggregationStart").attr("class","marker aggregation "+t).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),r.append("defs").append("marker").attr("id",a+"_"+t+"-aggregationEnd").attr("class","marker aggregation "+t).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z")},"aggregation"),st=d((r,t,a)=>{r.append("defs").append("marker").attr("id",a+"_"+t+"-dependencyStart").attr("class","marker dependency "+t).attr("refX",6).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 5,7 L9,13 L1,7 L9,1 Z"),r.append("defs").append("marker").attr("id",a+"_"+t+"-dependencyEnd").attr("class","marker dependency "+t).attr("refX",13).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z")},"dependency"),nt=d((r,t,a)=>{r.append("defs").append("marker").attr("id",a+"_"+t+"-lollipopStart").attr("class","marker lollipop "+t).attr("refX",13).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("circle").attr("stroke","black").attr("fill","transparent").attr("cx",7).attr("cy",7).attr("r",6),r.append("defs").append("marker").attr("id",a+"_"+t+"-lollipopEnd").attr("class","marker lollipop "+t).attr("refX",1).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("circle").attr("stroke","black").attr("fill","transparent").attr("cx",7).attr("cy",7).attr("r",6)},"lollipop"),it=d((r,t,a)=>{r.append("marker").attr("id",a+"_"+t+"-pointEnd").attr("class","marker "+t).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"),r.append("marker").attr("id",a+"_"+t+"-pointStart").attr("class","marker "+t).attr("viewBox","0 0 10 10").attr("refX",4.5).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",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"),lt=d((r,t,a)=>{r.append("marker").attr("id",a+"_"+t+"-circleEnd").attr("class","marker "+t).attr("viewBox","0 0 10 10").attr("refX",11).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("circle").attr("cx","5").attr("cy","5").attr("r","5").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0"),r.append("marker").attr("id",a+"_"+t+"-circleStart").attr("class","marker "+t).attr("viewBox","0 0 10 10").attr("refX",-1).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("circle").attr("cx","5").attr("cy","5").attr("r","5").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0")},"circle"),ot=d((r,t,a)=>{r.append("marker").attr("id",a+"_"+t+"-crossEnd").attr("class","marker cross "+t).attr("viewBox","0 0 11 11").attr("refX",12).attr("refY",5.2).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("path").attr("d","M 1,1 l 9,9 M 10,1 l -9,9").attr("class","arrowMarkerPath").style("stroke-width",2).style("stroke-dasharray","1,0"),r.append("marker").attr("id",a+"_"+t+"-crossStart").attr("class","marker cross "+t).attr("viewBox","0 0 11 11").attr("refX",-1).attr("refY",5.2).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("path").attr("d","M 1,1 l 9,9 M 10,1 l -9,9").attr("class","arrowMarkerPath").style("stroke-width",2).style("stroke-dasharray","1,0")},"cross"),ct=d((r,t,a)=>{r.append("defs").append("marker").attr("id",a+"_"+t+"-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"),ht={extension:rt,composition:at,aggregation:et,dependency:st,lollipop:nt,point:it,circle:lt,cross:ot,barb:ct},Mt=tt;export{gt as a,ut as b,Lt as c,wt as d,Mt as e}; +//# sourceMappingURL=chunk-TLYS76Q7.min.js.map diff --git a/docs/_site/public/chunk-TLYS76Q7.min.js.map b/docs/_site/public/chunk-TLYS76Q7.min.js.map new file mode 100644 index 0000000..727d7d0 --- /dev/null +++ b/docs/_site/public/chunk-TLYS76Q7.min.js.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": ["../../node_modules/mermaid/dist/chunks/mermaid.core/chunk-66SQ7PYY.mjs"], + "sourcesContent": ["import {\n createLabel_default\n} from \"./chunk-7NZE2EM7.mjs\";\nimport {\n getLineFunctionsWithOffset\n} from \"./chunk-3JNJP5BE.mjs\";\nimport {\n getSubGraphTitleMargins\n} from \"./chunk-3X56UNUX.mjs\";\nimport {\n createText\n} from \"./chunk-6JOS74DS.mjs\";\nimport {\n utils_default\n} from \"./chunk-7DKRZKHE.mjs\";\nimport {\n __name,\n evaluate,\n getConfig2 as getConfig,\n log\n} from \"./chunk-6DBFFHIP.mjs\";\n\n// src/rendering-util/rendering-elements/edges.js\nimport { curveBasis, line, select } from \"d3\";\nimport rough from \"roughjs\";\n\n// src/rendering-util/rendering-elements/edgeMarker.ts\nvar addEdgeMarkers = /* @__PURE__ */ __name((svgPath, edge, url, id, diagramType) => {\n if (edge.arrowTypeStart) {\n addEdgeMarker(svgPath, \"start\", edge.arrowTypeStart, url, id, diagramType);\n }\n if (edge.arrowTypeEnd) {\n addEdgeMarker(svgPath, \"end\", edge.arrowTypeEnd, url, id, diagramType);\n }\n}, \"addEdgeMarkers\");\nvar arrowTypesMap = {\n arrow_cross: \"cross\",\n arrow_point: \"point\",\n arrow_barb: \"barb\",\n arrow_circle: \"circle\",\n aggregation: \"aggregation\",\n extension: \"extension\",\n composition: \"composition\",\n dependency: \"dependency\",\n lollipop: \"lollipop\"\n};\nvar addEdgeMarker = /* @__PURE__ */ __name((svgPath, position, arrowType, url, id, diagramType) => {\n const endMarkerType = arrowTypesMap[arrowType];\n if (!endMarkerType) {\n log.warn(`Unknown arrow type: ${arrowType}`);\n return;\n }\n const suffix = position === \"start\" ? \"Start\" : \"End\";\n svgPath.attr(`marker-${position}`, `url(${url}#${id}_${diagramType}-${endMarkerType}${suffix})`);\n}, \"addEdgeMarker\");\n\n// src/rendering-util/rendering-elements/edges.js\nvar edgeLabels = /* @__PURE__ */ new Map();\nvar terminalLabels = /* @__PURE__ */ new Map();\nvar clear = /* @__PURE__ */ __name(() => {\n edgeLabels.clear();\n terminalLabels.clear();\n}, \"clear\");\nvar getLabelStyles = /* @__PURE__ */ __name((styleArray) => {\n let styles = styleArray ? styleArray.reduce((acc, style) => acc + \";\" + style, \"\") : \"\";\n return styles;\n}, \"getLabelStyles\");\nvar insertEdgeLabel = /* @__PURE__ */ __name(async (elem, edge) => {\n let useHtmlLabels = evaluate(getConfig().flowchart.htmlLabels);\n const labelElement = await createText(elem, edge.label, {\n style: getLabelStyles(edge.labelStyle),\n useHtmlLabels,\n addSvgBackground: true,\n isNode: false\n });\n log.info(\"abc82\", edge, edge.labelType);\n const edgeLabel = elem.insert(\"g\").attr(\"class\", \"edgeLabel\");\n const label = edgeLabel.insert(\"g\").attr(\"class\", \"label\");\n label.node().appendChild(labelElement);\n let bbox = labelElement.getBBox();\n if (useHtmlLabels) {\n const div = labelElement.children[0];\n const dv = select(labelElement);\n bbox = div.getBoundingClientRect();\n dv.attr(\"width\", bbox.width);\n dv.attr(\"height\", bbox.height);\n }\n label.attr(\"transform\", \"translate(\" + -bbox.width / 2 + \", \" + -bbox.height / 2 + \")\");\n edgeLabels.set(edge.id, edgeLabel);\n edge.width = bbox.width;\n edge.height = bbox.height;\n let fo;\n if (edge.startLabelLeft) {\n const startLabelElement = await createLabel_default(\n edge.startLabelLeft,\n getLabelStyles(edge.labelStyle)\n );\n const startEdgeLabelLeft = elem.insert(\"g\").attr(\"class\", \"edgeTerminals\");\n const inner = startEdgeLabelLeft.insert(\"g\").attr(\"class\", \"inner\");\n fo = inner.node().appendChild(startLabelElement);\n const slBox = startLabelElement.getBBox();\n inner.attr(\"transform\", \"translate(\" + -slBox.width / 2 + \", \" + -slBox.height / 2 + \")\");\n if (!terminalLabels.get(edge.id)) {\n terminalLabels.set(edge.id, {});\n }\n terminalLabels.get(edge.id).startLeft = startEdgeLabelLeft;\n setTerminalWidth(fo, edge.startLabelLeft);\n }\n if (edge.startLabelRight) {\n const startLabelElement = await createLabel_default(\n edge.startLabelRight,\n getLabelStyles(edge.labelStyle)\n );\n const startEdgeLabelRight = elem.insert(\"g\").attr(\"class\", \"edgeTerminals\");\n const inner = startEdgeLabelRight.insert(\"g\").attr(\"class\", \"inner\");\n fo = startEdgeLabelRight.node().appendChild(startLabelElement);\n inner.node().appendChild(startLabelElement);\n const slBox = startLabelElement.getBBox();\n inner.attr(\"transform\", \"translate(\" + -slBox.width / 2 + \", \" + -slBox.height / 2 + \")\");\n if (!terminalLabels.get(edge.id)) {\n terminalLabels.set(edge.id, {});\n }\n terminalLabels.get(edge.id).startRight = startEdgeLabelRight;\n setTerminalWidth(fo, edge.startLabelRight);\n }\n if (edge.endLabelLeft) {\n const endLabelElement = await createLabel_default(edge.endLabelLeft, getLabelStyles(edge.labelStyle));\n const endEdgeLabelLeft = elem.insert(\"g\").attr(\"class\", \"edgeTerminals\");\n const inner = endEdgeLabelLeft.insert(\"g\").attr(\"class\", \"inner\");\n fo = inner.node().appendChild(endLabelElement);\n const slBox = endLabelElement.getBBox();\n inner.attr(\"transform\", \"translate(\" + -slBox.width / 2 + \", \" + -slBox.height / 2 + \")\");\n endEdgeLabelLeft.node().appendChild(endLabelElement);\n if (!terminalLabels.get(edge.id)) {\n terminalLabels.set(edge.id, {});\n }\n terminalLabels.get(edge.id).endLeft = endEdgeLabelLeft;\n setTerminalWidth(fo, edge.endLabelLeft);\n }\n if (edge.endLabelRight) {\n const endLabelElement = await createLabel_default(edge.endLabelRight, getLabelStyles(edge.labelStyle));\n const endEdgeLabelRight = elem.insert(\"g\").attr(\"class\", \"edgeTerminals\");\n const inner = endEdgeLabelRight.insert(\"g\").attr(\"class\", \"inner\");\n fo = inner.node().appendChild(endLabelElement);\n const slBox = endLabelElement.getBBox();\n inner.attr(\"transform\", \"translate(\" + -slBox.width / 2 + \", \" + -slBox.height / 2 + \")\");\n endEdgeLabelRight.node().appendChild(endLabelElement);\n if (!terminalLabels.get(edge.id)) {\n terminalLabels.set(edge.id, {});\n }\n terminalLabels.get(edge.id).endRight = endEdgeLabelRight;\n setTerminalWidth(fo, edge.endLabelRight);\n }\n return labelElement;\n}, \"insertEdgeLabel\");\nfunction setTerminalWidth(fo, value) {\n if (getConfig().flowchart.htmlLabels && fo) {\n fo.style.width = value.length * 9 + \"px\";\n fo.style.height = \"12px\";\n }\n}\n__name(setTerminalWidth, \"setTerminalWidth\");\nvar positionEdgeLabel = /* @__PURE__ */ __name((edge, paths) => {\n log.debug(\"Moving label abc88 \", edge.id, edge.label, edgeLabels.get(edge.id), paths);\n let path = paths.updatedPath ? paths.updatedPath : paths.originalPath;\n const siteConfig = getConfig();\n const { subGraphTitleTotalMargin } = getSubGraphTitleMargins(siteConfig);\n if (edge.label) {\n const el = edgeLabels.get(edge.id);\n let x = edge.x;\n let y = edge.y;\n if (path) {\n const pos = utils_default.calcLabelPosition(path);\n log.debug(\n \"Moving label \" + edge.label + \" from (\",\n x,\n \",\",\n y,\n \") to (\",\n pos.x,\n \",\",\n pos.y,\n \") abc88\"\n );\n if (paths.updatedPath) {\n x = pos.x;\n y = pos.y;\n }\n }\n el.attr(\"transform\", `translate(${x}, ${y + subGraphTitleTotalMargin / 2})`);\n }\n if (edge.startLabelLeft) {\n const el = terminalLabels.get(edge.id).startLeft;\n let x = edge.x;\n let y = edge.y;\n if (path) {\n const pos = utils_default.calcTerminalLabelPosition(edge.arrowTypeStart ? 10 : 0, \"start_left\", path);\n x = pos.x;\n y = pos.y;\n }\n el.attr(\"transform\", `translate(${x}, ${y})`);\n }\n if (edge.startLabelRight) {\n const el = terminalLabels.get(edge.id).startRight;\n let x = edge.x;\n let y = edge.y;\n if (path) {\n const pos = utils_default.calcTerminalLabelPosition(\n edge.arrowTypeStart ? 10 : 0,\n \"start_right\",\n path\n );\n x = pos.x;\n y = pos.y;\n }\n el.attr(\"transform\", `translate(${x}, ${y})`);\n }\n if (edge.endLabelLeft) {\n const el = terminalLabels.get(edge.id).endLeft;\n let x = edge.x;\n let y = edge.y;\n if (path) {\n const pos = utils_default.calcTerminalLabelPosition(edge.arrowTypeEnd ? 10 : 0, \"end_left\", path);\n x = pos.x;\n y = pos.y;\n }\n el.attr(\"transform\", `translate(${x}, ${y})`);\n }\n if (edge.endLabelRight) {\n const el = terminalLabels.get(edge.id).endRight;\n let x = edge.x;\n let y = edge.y;\n if (path) {\n const pos = utils_default.calcTerminalLabelPosition(edge.arrowTypeEnd ? 10 : 0, \"end_right\", path);\n x = pos.x;\n y = pos.y;\n }\n el.attr(\"transform\", `translate(${x}, ${y})`);\n }\n}, \"positionEdgeLabel\");\nvar outsideNode = /* @__PURE__ */ __name((node, point2) => {\n const x = node.x;\n const y = node.y;\n const dx = Math.abs(point2.x - x);\n const dy = Math.abs(point2.y - y);\n const w = node.width / 2;\n const h = node.height / 2;\n return dx >= w || dy >= h;\n}, \"outsideNode\");\nvar intersection = /* @__PURE__ */ __name((node, outsidePoint, insidePoint) => {\n log.debug(`intersection calc abc89:\n outsidePoint: ${JSON.stringify(outsidePoint)}\n insidePoint : ${JSON.stringify(insidePoint)}\n node : x:${node.x} y:${node.y} w:${node.width} h:${node.height}`);\n const x = node.x;\n const y = node.y;\n const dx = Math.abs(x - insidePoint.x);\n const w = node.width / 2;\n let r = insidePoint.x < outsidePoint.x ? w - dx : w + dx;\n const h = node.height / 2;\n const Q = Math.abs(outsidePoint.y - insidePoint.y);\n const R = Math.abs(outsidePoint.x - insidePoint.x);\n if (Math.abs(y - outsidePoint.y) * w > Math.abs(x - outsidePoint.x) * h) {\n let q = insidePoint.y < outsidePoint.y ? outsidePoint.y - h - y : y - h - outsidePoint.y;\n r = R * q / Q;\n const res = {\n x: insidePoint.x < outsidePoint.x ? insidePoint.x + r : insidePoint.x - R + r,\n y: insidePoint.y < outsidePoint.y ? insidePoint.y + Q - q : insidePoint.y - Q + q\n };\n if (r === 0) {\n res.x = outsidePoint.x;\n res.y = outsidePoint.y;\n }\n if (R === 0) {\n res.x = outsidePoint.x;\n }\n if (Q === 0) {\n res.y = outsidePoint.y;\n }\n log.debug(`abc89 top/bottom calc, Q ${Q}, q ${q}, R ${R}, r ${r}`, res);\n return res;\n } else {\n if (insidePoint.x < outsidePoint.x) {\n r = outsidePoint.x - w - x;\n } else {\n r = x - w - outsidePoint.x;\n }\n let q = Q * r / R;\n let _x = insidePoint.x < outsidePoint.x ? insidePoint.x + R - r : insidePoint.x - R + r;\n let _y = insidePoint.y < outsidePoint.y ? insidePoint.y + q : insidePoint.y - q;\n log.debug(`sides calc abc89, Q ${Q}, q ${q}, R ${R}, r ${r}`, { _x, _y });\n if (r === 0) {\n _x = outsidePoint.x;\n _y = outsidePoint.y;\n }\n if (R === 0) {\n _x = outsidePoint.x;\n }\n if (Q === 0) {\n _y = outsidePoint.y;\n }\n return { x: _x, y: _y };\n }\n}, \"intersection\");\nvar cutPathAtIntersect = /* @__PURE__ */ __name((_points, boundaryNode) => {\n log.warn(\"abc88 cutPathAtIntersect\", _points, boundaryNode);\n let points = [];\n let lastPointOutside = _points[0];\n let isInside = false;\n _points.forEach((point2) => {\n log.info(\"abc88 checking point\", point2, boundaryNode);\n if (!outsideNode(boundaryNode, point2) && !isInside) {\n const inter = intersection(boundaryNode, lastPointOutside, point2);\n log.debug(\"abc88 inside\", point2, lastPointOutside, inter);\n log.debug(\"abc88 intersection\", inter, boundaryNode);\n let pointPresent = false;\n points.forEach((p) => {\n pointPresent = pointPresent || p.x === inter.x && p.y === inter.y;\n });\n if (!points.some((e) => e.x === inter.x && e.y === inter.y)) {\n points.push(inter);\n } else {\n log.warn(\"abc88 no intersect\", inter, points);\n }\n isInside = true;\n } else {\n log.warn(\"abc88 outside\", point2, lastPointOutside);\n lastPointOutside = point2;\n if (!isInside) {\n points.push(point2);\n }\n }\n });\n log.debug(\"returning points\", points);\n return points;\n}, \"cutPathAtIntersect\");\nfunction extractCornerPoints(points) {\n const cornerPoints = [];\n const cornerPointPositions = [];\n for (let i = 1; i < points.length - 1; i++) {\n const prev = points[i - 1];\n const curr = points[i];\n const next = points[i + 1];\n if (prev.x === curr.x && curr.y === next.y && Math.abs(curr.x - next.x) > 5 && Math.abs(curr.y - prev.y) > 5) {\n cornerPoints.push(curr);\n cornerPointPositions.push(i);\n } else if (prev.y === curr.y && curr.x === next.x && Math.abs(curr.x - prev.x) > 5 && Math.abs(curr.y - next.y) > 5) {\n cornerPoints.push(curr);\n cornerPointPositions.push(i);\n }\n }\n return { cornerPoints, cornerPointPositions };\n}\n__name(extractCornerPoints, \"extractCornerPoints\");\nvar findAdjacentPoint = /* @__PURE__ */ __name(function(pointA, pointB, distance) {\n const xDiff = pointB.x - pointA.x;\n const yDiff = pointB.y - pointA.y;\n const length = Math.sqrt(xDiff * xDiff + yDiff * yDiff);\n const ratio = distance / length;\n return { x: pointB.x - ratio * xDiff, y: pointB.y - ratio * yDiff };\n}, \"findAdjacentPoint\");\nvar fixCorners = /* @__PURE__ */ __name(function(lineData) {\n const { cornerPointPositions } = extractCornerPoints(lineData);\n const newLineData = [];\n for (let i = 0; i < lineData.length; i++) {\n if (cornerPointPositions.includes(i)) {\n const prevPoint = lineData[i - 1];\n const nextPoint = lineData[i + 1];\n const cornerPoint = lineData[i];\n const newPrevPoint = findAdjacentPoint(prevPoint, cornerPoint, 5);\n const newNextPoint = findAdjacentPoint(nextPoint, cornerPoint, 5);\n const xDiff = newNextPoint.x - newPrevPoint.x;\n const yDiff = newNextPoint.y - newPrevPoint.y;\n newLineData.push(newPrevPoint);\n const a = Math.sqrt(2) * 2;\n let newCornerPoint = { x: cornerPoint.x, y: cornerPoint.y };\n if (Math.abs(nextPoint.x - prevPoint.x) > 10 && Math.abs(nextPoint.y - prevPoint.y) >= 10) {\n log.debug(\n \"Corner point fixing\",\n Math.abs(nextPoint.x - prevPoint.x),\n Math.abs(nextPoint.y - prevPoint.y)\n );\n const r = 5;\n if (cornerPoint.x === newPrevPoint.x) {\n newCornerPoint = {\n x: xDiff < 0 ? newPrevPoint.x - r + a : newPrevPoint.x + r - a,\n y: yDiff < 0 ? newPrevPoint.y - a : newPrevPoint.y + a\n };\n } else {\n newCornerPoint = {\n x: xDiff < 0 ? newPrevPoint.x - a : newPrevPoint.x + a,\n y: yDiff < 0 ? newPrevPoint.y - r + a : newPrevPoint.y + r - a\n };\n }\n } else {\n log.debug(\n \"Corner point skipping fixing\",\n Math.abs(nextPoint.x - prevPoint.x),\n Math.abs(nextPoint.y - prevPoint.y)\n );\n }\n newLineData.push(newCornerPoint, newNextPoint);\n } else {\n newLineData.push(lineData[i]);\n }\n }\n return newLineData;\n}, \"fixCorners\");\nvar insertEdge = /* @__PURE__ */ __name(function(elem, edge, clusterDb, diagramType, startNode, endNode, id) {\n const { handDrawnSeed } = getConfig();\n let points = edge.points;\n let pointsHasChanged = false;\n const tail = startNode;\n var head = endNode;\n if (head.intersect && tail.intersect) {\n points = points.slice(1, edge.points.length - 1);\n points.unshift(tail.intersect(points[0]));\n log.debug(\n \"Last point APA12\",\n edge.start,\n \"-->\",\n edge.end,\n points[points.length - 1],\n head,\n head.intersect(points[points.length - 1])\n );\n points.push(head.intersect(points[points.length - 1]));\n }\n if (edge.toCluster) {\n log.info(\"to cluster abc88\", clusterDb.get(edge.toCluster));\n points = cutPathAtIntersect(edge.points, clusterDb.get(edge.toCluster).node);\n pointsHasChanged = true;\n }\n if (edge.fromCluster) {\n log.debug(\n \"from cluster abc88\",\n clusterDb.get(edge.fromCluster),\n JSON.stringify(points, null, 2)\n );\n points = cutPathAtIntersect(points.reverse(), clusterDb.get(edge.fromCluster).node).reverse();\n pointsHasChanged = true;\n }\n let lineData = points.filter((p) => !Number.isNaN(p.y));\n lineData = fixCorners(lineData);\n let curve = curveBasis;\n if (edge.curve) {\n curve = edge.curve;\n }\n const { x, y } = getLineFunctionsWithOffset(edge);\n const lineFunction = line().x(x).y(y).curve(curve);\n let strokeClasses;\n switch (edge.thickness) {\n case \"normal\":\n strokeClasses = \"edge-thickness-normal\";\n break;\n case \"thick\":\n strokeClasses = \"edge-thickness-thick\";\n break;\n case \"invisible\":\n strokeClasses = \"edge-thickness-invisible\";\n break;\n default:\n strokeClasses = \"edge-thickness-normal\";\n }\n switch (edge.pattern) {\n case \"solid\":\n strokeClasses += \" edge-pattern-solid\";\n break;\n case \"dotted\":\n strokeClasses += \" edge-pattern-dotted\";\n break;\n case \"dashed\":\n strokeClasses += \" edge-pattern-dashed\";\n break;\n default:\n strokeClasses += \" edge-pattern-solid\";\n }\n let svgPath;\n let linePath = lineFunction(lineData);\n const edgeStyles = Array.isArray(edge.style) ? edge.style : [edge.style];\n if (edge.look === \"handDrawn\") {\n const rc = rough.svg(elem);\n Object.assign([], lineData);\n const svgPathNode = rc.path(linePath, {\n roughness: 0.3,\n seed: handDrawnSeed\n });\n strokeClasses += \" transition\";\n svgPath = select(svgPathNode).select(\"path\").attr(\"id\", edge.id).attr(\"class\", \" \" + strokeClasses + (edge.classes ? \" \" + edge.classes : \"\")).attr(\"style\", edgeStyles ? edgeStyles.reduce((acc, style) => acc + \";\" + style, \"\") : \"\");\n let d = svgPath.attr(\"d\");\n svgPath.attr(\"d\", d);\n elem.node().appendChild(svgPath.node());\n } else {\n svgPath = elem.append(\"path\").attr(\"d\", linePath).attr(\"id\", edge.id).attr(\"class\", \" \" + strokeClasses + (edge.classes ? \" \" + edge.classes : \"\")).attr(\"style\", edgeStyles ? edgeStyles.reduce((acc, style) => acc + \";\" + style, \"\") : \"\");\n }\n let url = \"\";\n if (getConfig().flowchart.arrowMarkerAbsolute || getConfig().state.arrowMarkerAbsolute) {\n url = window.location.protocol + \"//\" + window.location.host + window.location.pathname + window.location.search;\n url = url.replace(/\\(/g, \"\\\\(\").replace(/\\)/g, \"\\\\)\");\n }\n log.info(\"arrowTypeStart\", edge.arrowTypeStart);\n log.info(\"arrowTypeEnd\", edge.arrowTypeEnd);\n addEdgeMarkers(svgPath, edge, url, id, diagramType);\n let paths = {};\n if (pointsHasChanged) {\n paths.updatedPath = points;\n }\n paths.originalPath = edge.points;\n return paths;\n}, \"insertEdge\");\n\n// src/rendering-util/rendering-elements/markers.js\nvar insertMarkers = /* @__PURE__ */ __name((elem, markerArray, type, id) => {\n markerArray.forEach((markerName) => {\n markers[markerName](elem, type, id);\n });\n}, \"insertMarkers\");\nvar extension = /* @__PURE__ */ __name((elem, type, id) => {\n log.trace(\"Making markers for \", id);\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-extensionStart\").attr(\"class\", \"marker extension \" + type).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\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-extensionEnd\").attr(\"class\", \"marker extension \" + type).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\");\n}, \"extension\");\nvar composition = /* @__PURE__ */ __name((elem, type, id) => {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-compositionStart\").attr(\"class\", \"marker composition \" + type).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\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-compositionEnd\").attr(\"class\", \"marker composition \" + type).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\");\n}, \"composition\");\nvar aggregation = /* @__PURE__ */ __name((elem, type, id) => {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-aggregationStart\").attr(\"class\", \"marker aggregation \" + type).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\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-aggregationEnd\").attr(\"class\", \"marker aggregation \" + type).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\");\n}, \"aggregation\");\nvar dependency = /* @__PURE__ */ __name((elem, type, id) => {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-dependencyStart\").attr(\"class\", \"marker dependency \" + type).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\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-dependencyEnd\").attr(\"class\", \"marker dependency \" + type).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\");\n}, \"dependency\");\nvar lollipop = /* @__PURE__ */ __name((elem, type, id) => {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-lollipopStart\").attr(\"class\", \"marker lollipop \" + type).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);\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-lollipopEnd\").attr(\"class\", \"marker lollipop \" + type).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);\n}, \"lollipop\");\nvar point = /* @__PURE__ */ __name((elem, type, id) => {\n elem.append(\"marker\").attr(\"id\", id + \"_\" + type + \"-pointEnd\").attr(\"class\", \"marker \" + type).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\");\n elem.append(\"marker\").attr(\"id\", id + \"_\" + type + \"-pointStart\").attr(\"class\", \"marker \" + type).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\");\n}, \"point\");\nvar circle = /* @__PURE__ */ __name((elem, type, id) => {\n elem.append(\"marker\").attr(\"id\", id + \"_\" + type + \"-circleEnd\").attr(\"class\", \"marker \" + type).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\");\n elem.append(\"marker\").attr(\"id\", id + \"_\" + type + \"-circleStart\").attr(\"class\", \"marker \" + type).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\");\n}, \"circle\");\nvar cross = /* @__PURE__ */ __name((elem, type, id) => {\n elem.append(\"marker\").attr(\"id\", id + \"_\" + type + \"-crossEnd\").attr(\"class\", \"marker cross \" + type).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\");\n elem.append(\"marker\").attr(\"id\", id + \"_\" + type + \"-crossStart\").attr(\"class\", \"marker cross \" + type).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\");\n}, \"cross\");\nvar barb = /* @__PURE__ */ __name((elem, type, id) => {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-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\");\n}, \"barb\");\nvar markers = {\n extension,\n composition,\n aggregation,\n dependency,\n lollipop,\n point,\n circle,\n cross,\n barb\n};\nvar markers_default = insertMarkers;\n\nexport {\n clear,\n insertEdgeLabel,\n positionEdgeLabel,\n insertEdge,\n markers_default\n};\n"], + "mappings": "4TA2BA,IAAIA,EAAiCC,EAAO,CAACC,EAASC,EAAMC,EAAKC,EAAIC,IAAgB,CAC/EH,EAAK,gBACPI,EAAcL,EAAS,QAASC,EAAK,eAAgBC,EAAKC,EAAIC,CAAW,EAEvEH,EAAK,cACPI,EAAcL,EAAS,MAAOC,EAAK,aAAcC,EAAKC,EAAIC,CAAW,CAEzE,EAAG,gBAAgB,EACfE,EAAgB,CAClB,YAAa,QACb,YAAa,QACb,WAAY,OACZ,aAAc,SACd,YAAa,cACb,UAAW,YACX,YAAa,cACb,WAAY,aACZ,SAAU,UACZ,EACID,EAAgCN,EAAO,CAACC,EAASO,EAAUC,EAAWN,EAAKC,EAAIC,IAAgB,CACjG,IAAMK,EAAgBH,EAAcE,CAAS,EAC7C,GAAI,CAACC,EAAe,CAClBC,EAAI,KAAK,uBAAuBF,CAAS,EAAE,EAC3C,MACF,CACA,IAAMG,EAASJ,IAAa,QAAU,QAAU,MAChDP,EAAQ,KAAK,UAAUO,CAAQ,GAAI,OAAOL,CAAG,IAAIC,CAAE,IAAIC,CAAW,IAAIK,CAAa,GAAGE,CAAM,GAAG,CACjG,EAAG,eAAe,EAGdC,EAA6B,IAAI,IACjCC,EAAiC,IAAI,IACrCC,GAAwBf,EAAO,IAAM,CACvCa,EAAW,MAAM,EACjBC,EAAe,MAAM,CACvB,EAAG,OAAO,EACNE,EAAiChB,EAAQiB,GAC9BA,EAAaA,EAAW,OAAO,CAACC,EAAKC,IAAUD,EAAM,IAAMC,EAAO,EAAE,EAAI,GAEpF,gBAAgB,EACfC,GAAkCpB,EAAO,MAAOqB,EAAMnB,IAAS,CACjE,IAAIoB,EAAgBC,EAASC,EAAU,EAAE,UAAU,UAAU,EACvDC,EAAe,MAAMC,EAAWL,EAAMnB,EAAK,MAAO,CACtD,MAAOc,EAAed,EAAK,UAAU,EACrC,cAAAoB,EACA,iBAAkB,GAClB,OAAQ,EACV,CAAC,EACDX,EAAI,KAAK,QAAST,EAAMA,EAAK,SAAS,EACtC,IAAMyB,EAAYN,EAAK,OAAO,GAAG,EAAE,KAAK,QAAS,WAAW,EACtDO,EAAQD,EAAU,OAAO,GAAG,EAAE,KAAK,QAAS,OAAO,EACzDC,EAAM,KAAK,EAAE,YAAYH,CAAY,EACrC,IAAII,EAAOJ,EAAa,QAAQ,EAChC,GAAIH,EAAe,CACjB,IAAMQ,EAAML,EAAa,SAAS,CAAC,EAC7BM,EAAKC,EAAOP,CAAY,EAC9BI,EAAOC,EAAI,sBAAsB,EACjCC,EAAG,KAAK,QAASF,EAAK,KAAK,EAC3BE,EAAG,KAAK,SAAUF,EAAK,MAAM,CAC/B,CACAD,EAAM,KAAK,YAAa,aAAe,CAACC,EAAK,MAAQ,EAAI,KAAO,CAACA,EAAK,OAAS,EAAI,GAAG,EACtFhB,EAAW,IAAIX,EAAK,GAAIyB,CAAS,EACjCzB,EAAK,MAAQ2B,EAAK,MAClB3B,EAAK,OAAS2B,EAAK,OACnB,IAAII,EACJ,GAAI/B,EAAK,eAAgB,CACvB,IAAMgC,EAAoB,MAAMC,EAC9BjC,EAAK,eACLc,EAAed,EAAK,UAAU,CAChC,EACMkC,EAAqBf,EAAK,OAAO,GAAG,EAAE,KAAK,QAAS,eAAe,EACnEgB,EAAQD,EAAmB,OAAO,GAAG,EAAE,KAAK,QAAS,OAAO,EAClEH,EAAKI,EAAM,KAAK,EAAE,YAAYH,CAAiB,EAC/C,IAAMI,EAAQJ,EAAkB,QAAQ,EACxCG,EAAM,KAAK,YAAa,aAAe,CAACC,EAAM,MAAQ,EAAI,KAAO,CAACA,EAAM,OAAS,EAAI,GAAG,EACnFxB,EAAe,IAAIZ,EAAK,EAAE,GAC7BY,EAAe,IAAIZ,EAAK,GAAI,CAAC,CAAC,EAEhCY,EAAe,IAAIZ,EAAK,EAAE,EAAE,UAAYkC,EACxCG,EAAiBN,EAAI/B,EAAK,cAAc,CAC1C,CACA,GAAIA,EAAK,gBAAiB,CACxB,IAAMgC,EAAoB,MAAMC,EAC9BjC,EAAK,gBACLc,EAAed,EAAK,UAAU,CAChC,EACMsC,EAAsBnB,EAAK,OAAO,GAAG,EAAE,KAAK,QAAS,eAAe,EACpEgB,EAAQG,EAAoB,OAAO,GAAG,EAAE,KAAK,QAAS,OAAO,EACnEP,EAAKO,EAAoB,KAAK,EAAE,YAAYN,CAAiB,EAC7DG,EAAM,KAAK,EAAE,YAAYH,CAAiB,EAC1C,IAAMI,EAAQJ,EAAkB,QAAQ,EACxCG,EAAM,KAAK,YAAa,aAAe,CAACC,EAAM,MAAQ,EAAI,KAAO,CAACA,EAAM,OAAS,EAAI,GAAG,EACnFxB,EAAe,IAAIZ,EAAK,EAAE,GAC7BY,EAAe,IAAIZ,EAAK,GAAI,CAAC,CAAC,EAEhCY,EAAe,IAAIZ,EAAK,EAAE,EAAE,WAAasC,EACzCD,EAAiBN,EAAI/B,EAAK,eAAe,CAC3C,CACA,GAAIA,EAAK,aAAc,CACrB,IAAMuC,EAAkB,MAAMN,EAAoBjC,EAAK,aAAcc,EAAed,EAAK,UAAU,CAAC,EAC9FwC,EAAmBrB,EAAK,OAAO,GAAG,EAAE,KAAK,QAAS,eAAe,EACjEgB,EAAQK,EAAiB,OAAO,GAAG,EAAE,KAAK,QAAS,OAAO,EAChET,EAAKI,EAAM,KAAK,EAAE,YAAYI,CAAe,EAC7C,IAAMH,EAAQG,EAAgB,QAAQ,EACtCJ,EAAM,KAAK,YAAa,aAAe,CAACC,EAAM,MAAQ,EAAI,KAAO,CAACA,EAAM,OAAS,EAAI,GAAG,EACxFI,EAAiB,KAAK,EAAE,YAAYD,CAAe,EAC9C3B,EAAe,IAAIZ,EAAK,EAAE,GAC7BY,EAAe,IAAIZ,EAAK,GAAI,CAAC,CAAC,EAEhCY,EAAe,IAAIZ,EAAK,EAAE,EAAE,QAAUwC,EACtCH,EAAiBN,EAAI/B,EAAK,YAAY,CACxC,CACA,GAAIA,EAAK,cAAe,CACtB,IAAMuC,EAAkB,MAAMN,EAAoBjC,EAAK,cAAec,EAAed,EAAK,UAAU,CAAC,EAC/FyC,EAAoBtB,EAAK,OAAO,GAAG,EAAE,KAAK,QAAS,eAAe,EAClEgB,EAAQM,EAAkB,OAAO,GAAG,EAAE,KAAK,QAAS,OAAO,EACjEV,EAAKI,EAAM,KAAK,EAAE,YAAYI,CAAe,EAC7C,IAAMH,EAAQG,EAAgB,QAAQ,EACtCJ,EAAM,KAAK,YAAa,aAAe,CAACC,EAAM,MAAQ,EAAI,KAAO,CAACA,EAAM,OAAS,EAAI,GAAG,EACxFK,EAAkB,KAAK,EAAE,YAAYF,CAAe,EAC/C3B,EAAe,IAAIZ,EAAK,EAAE,GAC7BY,EAAe,IAAIZ,EAAK,GAAI,CAAC,CAAC,EAEhCY,EAAe,IAAIZ,EAAK,EAAE,EAAE,SAAWyC,EACvCJ,EAAiBN,EAAI/B,EAAK,aAAa,CACzC,CACA,OAAOuB,CACT,EAAG,iBAAiB,EACpB,SAASc,EAAiBN,EAAIW,EAAO,CAC/BpB,EAAU,EAAE,UAAU,YAAcS,IACtCA,EAAG,MAAM,MAAQW,EAAM,OAAS,EAAI,KACpCX,EAAG,MAAM,OAAS,OAEtB,CACAjC,EAAOuC,EAAkB,kBAAkB,EAC3C,IAAIM,GAAoC7C,EAAO,CAACE,EAAM4C,IAAU,CAC9DnC,EAAI,MAAM,sBAAuBT,EAAK,GAAIA,EAAK,MAAOW,EAAW,IAAIX,EAAK,EAAE,EAAG4C,CAAK,EACpF,IAAIC,EAAOD,EAAM,YAAcA,EAAM,YAAcA,EAAM,aACnDE,EAAaxB,EAAU,EACvB,CAAE,yBAAAyB,CAAyB,EAAIC,EAAwBF,CAAU,EACvE,GAAI9C,EAAK,MAAO,CACd,IAAMiD,EAAKtC,EAAW,IAAIX,EAAK,EAAE,EAC7BkD,EAAIlD,EAAK,EACTmD,EAAInD,EAAK,EACb,GAAI6C,EAAM,CACR,IAAMO,EAAMC,EAAc,kBAAkBR,CAAI,EAChDpC,EAAI,MACF,gBAAkBT,EAAK,MAAQ,UAC/BkD,EACA,IACAC,EACA,SACAC,EAAI,EACJ,IACAA,EAAI,EACJ,SACF,EACIR,EAAM,cACRM,EAAIE,EAAI,EACRD,EAAIC,EAAI,EAEZ,CACAH,EAAG,KAAK,YAAa,aAAaC,CAAC,KAAKC,EAAIJ,EAA2B,CAAC,GAAG,CAC7E,CACA,GAAI/C,EAAK,eAAgB,CACvB,IAAMiD,EAAKrC,EAAe,IAAIZ,EAAK,EAAE,EAAE,UACnCkD,EAAIlD,EAAK,EACTmD,EAAInD,EAAK,EACb,GAAI6C,EAAM,CACR,IAAMO,EAAMC,EAAc,0BAA0BrD,EAAK,eAAiB,GAAK,EAAG,aAAc6C,CAAI,EACpGK,EAAIE,EAAI,EACRD,EAAIC,EAAI,CACV,CACAH,EAAG,KAAK,YAAa,aAAaC,CAAC,KAAKC,CAAC,GAAG,CAC9C,CACA,GAAInD,EAAK,gBAAiB,CACxB,IAAMiD,EAAKrC,EAAe,IAAIZ,EAAK,EAAE,EAAE,WACnCkD,EAAIlD,EAAK,EACTmD,EAAInD,EAAK,EACb,GAAI6C,EAAM,CACR,IAAMO,EAAMC,EAAc,0BACxBrD,EAAK,eAAiB,GAAK,EAC3B,cACA6C,CACF,EACAK,EAAIE,EAAI,EACRD,EAAIC,EAAI,CACV,CACAH,EAAG,KAAK,YAAa,aAAaC,CAAC,KAAKC,CAAC,GAAG,CAC9C,CACA,GAAInD,EAAK,aAAc,CACrB,IAAMiD,EAAKrC,EAAe,IAAIZ,EAAK,EAAE,EAAE,QACnCkD,EAAIlD,EAAK,EACTmD,EAAInD,EAAK,EACb,GAAI6C,EAAM,CACR,IAAMO,EAAMC,EAAc,0BAA0BrD,EAAK,aAAe,GAAK,EAAG,WAAY6C,CAAI,EAChGK,EAAIE,EAAI,EACRD,EAAIC,EAAI,CACV,CACAH,EAAG,KAAK,YAAa,aAAaC,CAAC,KAAKC,CAAC,GAAG,CAC9C,CACA,GAAInD,EAAK,cAAe,CACtB,IAAMiD,EAAKrC,EAAe,IAAIZ,EAAK,EAAE,EAAE,SACnCkD,EAAIlD,EAAK,EACTmD,EAAInD,EAAK,EACb,GAAI6C,EAAM,CACR,IAAMO,EAAMC,EAAc,0BAA0BrD,EAAK,aAAe,GAAK,EAAG,YAAa6C,CAAI,EACjGK,EAAIE,EAAI,EACRD,EAAIC,EAAI,CACV,CACAH,EAAG,KAAK,YAAa,aAAaC,CAAC,KAAKC,CAAC,GAAG,CAC9C,CACF,EAAG,mBAAmB,EAClBG,EAA8BxD,EAAO,CAACyD,EAAMC,IAAW,CACzD,IAAMN,EAAIK,EAAK,EACTJ,EAAII,EAAK,EACTE,EAAK,KAAK,IAAID,EAAO,EAAIN,CAAC,EAC1BQ,EAAK,KAAK,IAAIF,EAAO,EAAIL,CAAC,EAC1BQ,EAAIJ,EAAK,MAAQ,EACjBK,EAAIL,EAAK,OAAS,EACxB,OAAOE,GAAME,GAAKD,GAAME,CAC1B,EAAG,aAAa,EACZC,EAA+B/D,EAAO,CAACyD,EAAMO,EAAcC,IAAgB,CAC7EtD,EAAI,MAAM;AAAA,kBACM,KAAK,UAAUqD,CAAY,CAAC;AAAA,kBAC5B,KAAK,UAAUC,CAAW,CAAC;AAAA,oBACzBR,EAAK,CAAC,MAAMA,EAAK,CAAC,MAAMA,EAAK,KAAK,MAAMA,EAAK,MAAM,EAAE,EACvE,IAAML,EAAIK,EAAK,EACTJ,EAAII,EAAK,EACTE,EAAK,KAAK,IAAIP,EAAIa,EAAY,CAAC,EAC/BJ,EAAIJ,EAAK,MAAQ,EACnBS,EAAID,EAAY,EAAID,EAAa,EAAIH,EAAIF,EAAKE,EAAIF,EAChDG,EAAIL,EAAK,OAAS,EAClBU,EAAI,KAAK,IAAIH,EAAa,EAAIC,EAAY,CAAC,EAC3CG,EAAI,KAAK,IAAIJ,EAAa,EAAIC,EAAY,CAAC,EACjD,GAAI,KAAK,IAAIZ,EAAIW,EAAa,CAAC,EAAIH,EAAI,KAAK,IAAIT,EAAIY,EAAa,CAAC,EAAIF,EAAG,CACvE,IAAIO,EAAIJ,EAAY,EAAID,EAAa,EAAIA,EAAa,EAAIF,EAAIT,EAAIA,EAAIS,EAAIE,EAAa,EACvFE,EAAIE,EAAIC,EAAIF,EACZ,IAAMG,EAAM,CACV,EAAGL,EAAY,EAAID,EAAa,EAAIC,EAAY,EAAIC,EAAID,EAAY,EAAIG,EAAIF,EAC5E,EAAGD,EAAY,EAAID,EAAa,EAAIC,EAAY,EAAIE,EAAIE,EAAIJ,EAAY,EAAIE,EAAIE,CAClF,EACA,OAAIH,IAAM,IACRI,EAAI,EAAIN,EAAa,EACrBM,EAAI,EAAIN,EAAa,GAEnBI,IAAM,IACRE,EAAI,EAAIN,EAAa,GAEnBG,IAAM,IACRG,EAAI,EAAIN,EAAa,GAEvBrD,EAAI,MAAM,4BAA4BwD,CAAC,OAAOE,CAAC,OAAOD,CAAC,OAAOF,CAAC,GAAII,CAAG,EAC/DA,CACT,KAAO,CACDL,EAAY,EAAID,EAAa,EAC/BE,EAAIF,EAAa,EAAIH,EAAIT,EAEzBc,EAAId,EAAIS,EAAIG,EAAa,EAE3B,IAAIK,EAAIF,EAAID,EAAIE,EACZG,EAAKN,EAAY,EAAID,EAAa,EAAIC,EAAY,EAAIG,EAAIF,EAAID,EAAY,EAAIG,EAAIF,EAClFM,EAAKP,EAAY,EAAID,EAAa,EAAIC,EAAY,EAAII,EAAIJ,EAAY,EAAII,EAC9E,OAAA1D,EAAI,MAAM,uBAAuBwD,CAAC,OAAOE,CAAC,OAAOD,CAAC,OAAOF,CAAC,GAAI,CAAE,GAAAK,EAAI,GAAAC,CAAG,CAAC,EACpEN,IAAM,IACRK,EAAKP,EAAa,EAClBQ,EAAKR,EAAa,GAEhBI,IAAM,IACRG,EAAKP,EAAa,GAEhBG,IAAM,IACRK,EAAKR,EAAa,GAEb,CAAEO,EAAO,EAAGC,CAAG,CACxB,CACF,EAAG,cAAc,EACbC,EAAqCzE,EAAO,CAAC0E,EAASC,IAAiB,CACzEhE,EAAI,KAAK,2BAA4B+D,EAASC,CAAY,EAC1D,IAAIC,EAAS,CAAC,EACVC,EAAmBH,EAAQ,CAAC,EAC5BI,EAAW,GACf,OAAAJ,EAAQ,QAAShB,GAAW,CAE1B,GADA/C,EAAI,KAAK,uBAAwB+C,EAAQiB,CAAY,EACjD,CAACnB,EAAYmB,EAAcjB,CAAM,GAAK,CAACoB,EAAU,CACnD,IAAMC,EAAQhB,EAAaY,EAAcE,EAAkBnB,CAAM,EACjE/C,EAAI,MAAM,eAAgB+C,EAAQmB,EAAkBE,CAAK,EACzDpE,EAAI,MAAM,qBAAsBoE,EAAOJ,CAAY,EACnD,IAAIK,EAAe,GACnBJ,EAAO,QAASK,GAAM,CACpBD,EAAeA,GAAgBC,EAAE,IAAMF,EAAM,GAAKE,EAAE,IAAMF,EAAM,CAClE,CAAC,EACIH,EAAO,KAAM,GAAM,EAAE,IAAMG,EAAM,GAAK,EAAE,IAAMA,EAAM,CAAC,EAGxDpE,EAAI,KAAK,qBAAsBoE,EAAOH,CAAM,EAF5CA,EAAO,KAAKG,CAAK,EAInBD,EAAW,EACb,MACEnE,EAAI,KAAK,gBAAiB+C,EAAQmB,CAAgB,EAClDA,EAAmBnB,EACdoB,GACHF,EAAO,KAAKlB,CAAM,CAGxB,CAAC,EACD/C,EAAI,MAAM,mBAAoBiE,CAAM,EAC7BA,CACT,EAAG,oBAAoB,EACvB,SAASM,EAAoBN,EAAQ,CACnC,IAAMO,EAAe,CAAC,EAChBC,EAAuB,CAAC,EAC9B,QAAS,EAAI,EAAG,EAAIR,EAAO,OAAS,EAAG,IAAK,CAC1C,IAAMS,EAAOT,EAAO,EAAI,CAAC,EACnBU,EAAOV,EAAO,CAAC,EACfW,EAAOX,EAAO,EAAI,CAAC,GACrBS,EAAK,IAAMC,EAAK,GAAKA,EAAK,IAAMC,EAAK,GAAK,KAAK,IAAID,EAAK,EAAIC,EAAK,CAAC,EAAI,GAAK,KAAK,IAAID,EAAK,EAAID,EAAK,CAAC,EAAI,GAGhGA,EAAK,IAAMC,EAAK,GAAKA,EAAK,IAAMC,EAAK,GAAK,KAAK,IAAID,EAAK,EAAID,EAAK,CAAC,EAAI,GAAK,KAAK,IAAIC,EAAK,EAAIC,EAAK,CAAC,EAAI,KAChHJ,EAAa,KAAKG,CAAI,EACtBF,EAAqB,KAAK,CAAC,EAE/B,CACA,MAAO,CAAE,aAAAD,EAAc,qBAAAC,CAAqB,CAC9C,CACApF,EAAOkF,EAAqB,qBAAqB,EACjD,IAAIM,EAAoCxF,EAAO,SAASyF,EAAQC,EAAQC,EAAU,CAChF,IAAMC,EAAQF,EAAO,EAAID,EAAO,EAC1BI,EAAQH,EAAO,EAAID,EAAO,EAC1BK,EAAS,KAAK,KAAKF,EAAQA,EAAQC,EAAQA,CAAK,EAChDE,EAAQJ,EAAWG,EACzB,MAAO,CAAE,EAAGJ,EAAO,EAAIK,EAAQH,EAAO,EAAGF,EAAO,EAAIK,EAAQF,CAAM,CACpE,EAAG,mBAAmB,EAClBG,EAA6BhG,EAAO,SAASiG,EAAU,CACzD,GAAM,CAAE,qBAAAb,CAAqB,EAAIF,EAAoBe,CAAQ,EACvDC,EAAc,CAAC,EACrB,QAAS,EAAI,EAAG,EAAID,EAAS,OAAQ,IACnC,GAAIb,EAAqB,SAAS,CAAC,EAAG,CACpC,IAAMe,EAAYF,EAAS,EAAI,CAAC,EAC1BG,EAAYH,EAAS,EAAI,CAAC,EAC1BI,EAAcJ,EAAS,CAAC,EACxBK,EAAed,EAAkBW,EAAWE,EAAa,CAAC,EAC1DE,EAAef,EAAkBY,EAAWC,EAAa,CAAC,EAC1DT,EAAQW,EAAa,EAAID,EAAa,EACtCT,EAAQU,EAAa,EAAID,EAAa,EAC5CJ,EAAY,KAAKI,CAAY,EAC7B,IAAME,EAAI,KAAK,KAAK,CAAC,EAAI,EACrBC,EAAiB,CAAE,EAAGJ,EAAY,EAAG,EAAGA,EAAY,CAAE,EAC1D,GAAI,KAAK,IAAID,EAAU,EAAID,EAAU,CAAC,EAAI,IAAM,KAAK,IAAIC,EAAU,EAAID,EAAU,CAAC,GAAK,GAAI,CACzFxF,EAAI,MACF,sBACA,KAAK,IAAIyF,EAAU,EAAID,EAAU,CAAC,EAClC,KAAK,IAAIC,EAAU,EAAID,EAAU,CAAC,CACpC,EACA,IAAMjC,EAAI,EACNmC,EAAY,IAAMC,EAAa,EACjCG,EAAiB,CACf,EAAGb,EAAQ,EAAIU,EAAa,EAAIpC,EAAIsC,EAAIF,EAAa,EAAIpC,EAAIsC,EAC7D,EAAGX,EAAQ,EAAIS,EAAa,EAAIE,EAAIF,EAAa,EAAIE,CACvD,EAEAC,EAAiB,CACf,EAAGb,EAAQ,EAAIU,EAAa,EAAIE,EAAIF,EAAa,EAAIE,EACrD,EAAGX,EAAQ,EAAIS,EAAa,EAAIpC,EAAIsC,EAAIF,EAAa,EAAIpC,EAAIsC,CAC/D,CAEJ,MACE7F,EAAI,MACF,+BACA,KAAK,IAAIyF,EAAU,EAAID,EAAU,CAAC,EAClC,KAAK,IAAIC,EAAU,EAAID,EAAU,CAAC,CACpC,EAEFD,EAAY,KAAKO,EAAgBF,CAAY,CAC/C,MACEL,EAAY,KAAKD,EAAS,CAAC,CAAC,EAGhC,OAAOC,CACT,EAAG,YAAY,EACXQ,GAA6B1G,EAAO,SAASqB,EAAMnB,EAAMyG,EAAWtG,EAAauG,EAAWC,EAASzG,EAAI,CAC3G,GAAM,CAAE,cAAA0G,CAAc,EAAItF,EAAU,EAChCoD,EAAS1E,EAAK,OACd6G,EAAmB,GACjBC,EAAOJ,EACb,IAAIK,EAAOJ,EACPI,EAAK,WAAaD,EAAK,YACzBpC,EAASA,EAAO,MAAM,EAAG1E,EAAK,OAAO,OAAS,CAAC,EAC/C0E,EAAO,QAAQoC,EAAK,UAAUpC,EAAO,CAAC,CAAC,CAAC,EACxCjE,EAAI,MACF,mBACAT,EAAK,MACL,MACAA,EAAK,IACL0E,EAAOA,EAAO,OAAS,CAAC,EACxBqC,EACAA,EAAK,UAAUrC,EAAOA,EAAO,OAAS,CAAC,CAAC,CAC1C,EACAA,EAAO,KAAKqC,EAAK,UAAUrC,EAAOA,EAAO,OAAS,CAAC,CAAC,CAAC,GAEnD1E,EAAK,YACPS,EAAI,KAAK,mBAAoBgG,EAAU,IAAIzG,EAAK,SAAS,CAAC,EAC1D0E,EAASH,EAAmBvE,EAAK,OAAQyG,EAAU,IAAIzG,EAAK,SAAS,EAAE,IAAI,EAC3E6G,EAAmB,IAEjB7G,EAAK,cACPS,EAAI,MACF,qBACAgG,EAAU,IAAIzG,EAAK,WAAW,EAC9B,KAAK,UAAU0E,EAAQ,KAAM,CAAC,CAChC,EACAA,EAASH,EAAmBG,EAAO,QAAQ,EAAG+B,EAAU,IAAIzG,EAAK,WAAW,EAAE,IAAI,EAAE,QAAQ,EAC5F6G,EAAmB,IAErB,IAAId,EAAWrB,EAAO,OAAQK,GAAM,CAAC,OAAO,MAAMA,EAAE,CAAC,CAAC,EACtDgB,EAAWD,EAAWC,CAAQ,EAC9B,IAAIiB,EAAQC,EACRjH,EAAK,QACPgH,EAAQhH,EAAK,OAEf,GAAM,CAAE,EAAAkD,EAAG,EAAAC,CAAE,EAAI+D,EAA2BlH,CAAI,EAC1CmH,EAAeC,EAAK,EAAE,EAAElE,CAAC,EAAE,EAAEC,CAAC,EAAE,MAAM6D,CAAK,EAC7CK,EACJ,OAAQrH,EAAK,UAAW,CACtB,IAAK,SACHqH,EAAgB,wBAChB,MACF,IAAK,QACHA,EAAgB,uBAChB,MACF,IAAK,YACHA,EAAgB,2BAChB,MACF,QACEA,EAAgB,uBACpB,CACA,OAAQrH,EAAK,QAAS,CACpB,IAAK,QACHqH,GAAiB,sBACjB,MACF,IAAK,SACHA,GAAiB,uBACjB,MACF,IAAK,SACHA,GAAiB,uBACjB,MACF,QACEA,GAAiB,qBACrB,CACA,IAAItH,EACAuH,EAAWH,EAAapB,CAAQ,EAC9BwB,EAAa,MAAM,QAAQvH,EAAK,KAAK,EAAIA,EAAK,MAAQ,CAACA,EAAK,KAAK,EACvE,GAAIA,EAAK,OAAS,YAAa,CAC7B,IAAMwH,EAAKC,EAAM,IAAItG,CAAI,EACzB,OAAO,OAAO,CAAC,EAAG4E,CAAQ,EAC1B,IAAM2B,EAAcF,EAAG,KAAKF,EAAU,CACpC,UAAW,GACX,KAAMV,CACR,CAAC,EACDS,GAAiB,cACjBtH,EAAU+B,EAAO4F,CAAW,EAAE,OAAO,MAAM,EAAE,KAAK,KAAM1H,EAAK,EAAE,EAAE,KAAK,QAAS,IAAMqH,GAAiBrH,EAAK,QAAU,IAAMA,EAAK,QAAU,GAAG,EAAE,KAAK,QAASuH,EAAaA,EAAW,OAAO,CAACvG,EAAKC,IAAUD,EAAM,IAAMC,EAAO,EAAE,EAAI,EAAE,EACvO,IAAI0G,EAAI5H,EAAQ,KAAK,GAAG,EACxBA,EAAQ,KAAK,IAAK4H,CAAC,EACnBxG,EAAK,KAAK,EAAE,YAAYpB,EAAQ,KAAK,CAAC,CACxC,MACEA,EAAUoB,EAAK,OAAO,MAAM,EAAE,KAAK,IAAKmG,CAAQ,EAAE,KAAK,KAAMtH,EAAK,EAAE,EAAE,KAAK,QAAS,IAAMqH,GAAiBrH,EAAK,QAAU,IAAMA,EAAK,QAAU,GAAG,EAAE,KAAK,QAASuH,EAAaA,EAAW,OAAO,CAACvG,EAAKC,IAAUD,EAAM,IAAMC,EAAO,EAAE,EAAI,EAAE,EAE9O,IAAIhB,EAAM,IACNqB,EAAU,EAAE,UAAU,qBAAuBA,EAAU,EAAE,MAAM,uBACjErB,EAAM,OAAO,SAAS,SAAW,KAAO,OAAO,SAAS,KAAO,OAAO,SAAS,SAAW,OAAO,SAAS,OAC1GA,EAAMA,EAAI,QAAQ,MAAO,KAAK,EAAE,QAAQ,MAAO,KAAK,GAEtDQ,EAAI,KAAK,iBAAkBT,EAAK,cAAc,EAC9CS,EAAI,KAAK,eAAgBT,EAAK,YAAY,EAC1CH,EAAeE,EAASC,EAAMC,EAAKC,EAAIC,CAAW,EAClD,IAAIyC,EAAQ,CAAC,EACb,OAAIiE,IACFjE,EAAM,YAAc8B,GAEtB9B,EAAM,aAAe5C,EAAK,OACnB4C,CACT,EAAG,YAAY,EAGXgF,GAAgC9H,EAAO,CAACqB,EAAM0G,EAAaC,EAAM5H,IAAO,CAC1E2H,EAAY,QAASE,GAAe,CAClCC,GAAQD,CAAU,EAAE5G,EAAM2G,EAAM5H,CAAE,CACpC,CAAC,CACH,EAAG,eAAe,EACd+H,GAA4BnI,EAAO,CAACqB,EAAM2G,EAAM5H,IAAO,CACzDO,EAAI,MAAM,sBAAuBP,CAAE,EACnCiB,EAAK,OAAO,MAAM,EAAE,OAAO,QAAQ,EAAE,KAAK,KAAMjB,EAAK,IAAM4H,EAAO,iBAAiB,EAAE,KAAK,QAAS,oBAAsBA,CAAI,EAAE,KAAK,OAAQ,EAAE,EAAE,KAAK,OAAQ,CAAC,EAAE,KAAK,cAAe,GAAG,EAAE,KAAK,eAAgB,GAAG,EAAE,KAAK,SAAU,MAAM,EAAE,OAAO,MAAM,EAAE,KAAK,IAAK,oBAAoB,EACvR3G,EAAK,OAAO,MAAM,EAAE,OAAO,QAAQ,EAAE,KAAK,KAAMjB,EAAK,IAAM4H,EAAO,eAAe,EAAE,KAAK,QAAS,oBAAsBA,CAAI,EAAE,KAAK,OAAQ,CAAC,EAAE,KAAK,OAAQ,CAAC,EAAE,KAAK,cAAe,EAAE,EAAE,KAAK,eAAgB,EAAE,EAAE,KAAK,SAAU,MAAM,EAAE,OAAO,MAAM,EAAE,KAAK,IAAK,oBAAoB,CACpR,EAAG,WAAW,EACVI,GAA8BpI,EAAO,CAACqB,EAAM2G,EAAM5H,IAAO,CAC3DiB,EAAK,OAAO,MAAM,EAAE,OAAO,QAAQ,EAAE,KAAK,KAAMjB,EAAK,IAAM4H,EAAO,mBAAmB,EAAE,KAAK,QAAS,sBAAwBA,CAAI,EAAE,KAAK,OAAQ,EAAE,EAAE,KAAK,OAAQ,CAAC,EAAE,KAAK,cAAe,GAAG,EAAE,KAAK,eAAgB,GAAG,EAAE,KAAK,SAAU,MAAM,EAAE,OAAO,MAAM,EAAE,KAAK,IAAK,0BAA0B,EACjS3G,EAAK,OAAO,MAAM,EAAE,OAAO,QAAQ,EAAE,KAAK,KAAMjB,EAAK,IAAM4H,EAAO,iBAAiB,EAAE,KAAK,QAAS,sBAAwBA,CAAI,EAAE,KAAK,OAAQ,CAAC,EAAE,KAAK,OAAQ,CAAC,EAAE,KAAK,cAAe,EAAE,EAAE,KAAK,eAAgB,EAAE,EAAE,KAAK,SAAU,MAAM,EAAE,OAAO,MAAM,EAAE,KAAK,IAAK,0BAA0B,CAC9R,EAAG,aAAa,EACZK,GAA8BrI,EAAO,CAACqB,EAAM2G,EAAM5H,IAAO,CAC3DiB,EAAK,OAAO,MAAM,EAAE,OAAO,QAAQ,EAAE,KAAK,KAAMjB,EAAK,IAAM4H,EAAO,mBAAmB,EAAE,KAAK,QAAS,sBAAwBA,CAAI,EAAE,KAAK,OAAQ,EAAE,EAAE,KAAK,OAAQ,CAAC,EAAE,KAAK,cAAe,GAAG,EAAE,KAAK,eAAgB,GAAG,EAAE,KAAK,SAAU,MAAM,EAAE,OAAO,MAAM,EAAE,KAAK,IAAK,0BAA0B,EACjS3G,EAAK,OAAO,MAAM,EAAE,OAAO,QAAQ,EAAE,KAAK,KAAMjB,EAAK,IAAM4H,EAAO,iBAAiB,EAAE,KAAK,QAAS,sBAAwBA,CAAI,EAAE,KAAK,OAAQ,CAAC,EAAE,KAAK,OAAQ,CAAC,EAAE,KAAK,cAAe,EAAE,EAAE,KAAK,eAAgB,EAAE,EAAE,KAAK,SAAU,MAAM,EAAE,OAAO,MAAM,EAAE,KAAK,IAAK,0BAA0B,CAC9R,EAAG,aAAa,EACZM,GAA6BtI,EAAO,CAACqB,EAAM2G,EAAM5H,IAAO,CAC1DiB,EAAK,OAAO,MAAM,EAAE,OAAO,QAAQ,EAAE,KAAK,KAAMjB,EAAK,IAAM4H,EAAO,kBAAkB,EAAE,KAAK,QAAS,qBAAuBA,CAAI,EAAE,KAAK,OAAQ,CAAC,EAAE,KAAK,OAAQ,CAAC,EAAE,KAAK,cAAe,GAAG,EAAE,KAAK,eAAgB,GAAG,EAAE,KAAK,SAAU,MAAM,EAAE,OAAO,MAAM,EAAE,KAAK,IAAK,yBAAyB,EAC7R3G,EAAK,OAAO,MAAM,EAAE,OAAO,QAAQ,EAAE,KAAK,KAAMjB,EAAK,IAAM4H,EAAO,gBAAgB,EAAE,KAAK,QAAS,qBAAuBA,CAAI,EAAE,KAAK,OAAQ,EAAE,EAAE,KAAK,OAAQ,CAAC,EAAE,KAAK,cAAe,EAAE,EAAE,KAAK,eAAgB,EAAE,EAAE,KAAK,SAAU,MAAM,EAAE,OAAO,MAAM,EAAE,KAAK,IAAK,2BAA2B,CAC9R,EAAG,YAAY,EACXO,GAA2BvI,EAAO,CAACqB,EAAM2G,EAAM5H,IAAO,CACxDiB,EAAK,OAAO,MAAM,EAAE,OAAO,QAAQ,EAAE,KAAK,KAAMjB,EAAK,IAAM4H,EAAO,gBAAgB,EAAE,KAAK,QAAS,mBAAqBA,CAAI,EAAE,KAAK,OAAQ,EAAE,EAAE,KAAK,OAAQ,CAAC,EAAE,KAAK,cAAe,GAAG,EAAE,KAAK,eAAgB,GAAG,EAAE,KAAK,SAAU,MAAM,EAAE,OAAO,QAAQ,EAAE,KAAK,SAAU,OAAO,EAAE,KAAK,OAAQ,aAAa,EAAE,KAAK,KAAM,CAAC,EAAE,KAAK,KAAM,CAAC,EAAE,KAAK,IAAK,CAAC,EACpV3G,EAAK,OAAO,MAAM,EAAE,OAAO,QAAQ,EAAE,KAAK,KAAMjB,EAAK,IAAM4H,EAAO,cAAc,EAAE,KAAK,QAAS,mBAAqBA,CAAI,EAAE,KAAK,OAAQ,CAAC,EAAE,KAAK,OAAQ,CAAC,EAAE,KAAK,cAAe,GAAG,EAAE,KAAK,eAAgB,GAAG,EAAE,KAAK,SAAU,MAAM,EAAE,OAAO,QAAQ,EAAE,KAAK,SAAU,OAAO,EAAE,KAAK,OAAQ,aAAa,EAAE,KAAK,KAAM,CAAC,EAAE,KAAK,KAAM,CAAC,EAAE,KAAK,IAAK,CAAC,CACnV,EAAG,UAAU,EACTQ,GAAwBxI,EAAO,CAACqB,EAAM2G,EAAM5H,IAAO,CACrDiB,EAAK,OAAO,QAAQ,EAAE,KAAK,KAAMjB,EAAK,IAAM4H,EAAO,WAAW,EAAE,KAAK,QAAS,UAAYA,CAAI,EAAE,KAAK,UAAW,WAAW,EAAE,KAAK,OAAQ,CAAC,EAAE,KAAK,OAAQ,CAAC,EAAE,KAAK,cAAe,gBAAgB,EAAE,KAAK,cAAe,CAAC,EAAE,KAAK,eAAgB,CAAC,EAAE,KAAK,SAAU,MAAM,EAAE,OAAO,MAAM,EAAE,KAAK,IAAK,uBAAuB,EAAE,KAAK,QAAS,iBAAiB,EAAE,MAAM,eAAgB,CAAC,EAAE,MAAM,mBAAoB,KAAK,EACpZ3G,EAAK,OAAO,QAAQ,EAAE,KAAK,KAAMjB,EAAK,IAAM4H,EAAO,aAAa,EAAE,KAAK,QAAS,UAAYA,CAAI,EAAE,KAAK,UAAW,WAAW,EAAE,KAAK,OAAQ,GAAG,EAAE,KAAK,OAAQ,CAAC,EAAE,KAAK,cAAe,gBAAgB,EAAE,KAAK,cAAe,CAAC,EAAE,KAAK,eAAgB,CAAC,EAAE,KAAK,SAAU,MAAM,EAAE,OAAO,MAAM,EAAE,KAAK,IAAK,wBAAwB,EAAE,KAAK,QAAS,iBAAiB,EAAE,MAAM,eAAgB,CAAC,EAAE,MAAM,mBAAoB,KAAK,CAC3Z,EAAG,OAAO,EACNS,GAAyBzI,EAAO,CAACqB,EAAM2G,EAAM5H,IAAO,CACtDiB,EAAK,OAAO,QAAQ,EAAE,KAAK,KAAMjB,EAAK,IAAM4H,EAAO,YAAY,EAAE,KAAK,QAAS,UAAYA,CAAI,EAAE,KAAK,UAAW,WAAW,EAAE,KAAK,OAAQ,EAAE,EAAE,KAAK,OAAQ,CAAC,EAAE,KAAK,cAAe,gBAAgB,EAAE,KAAK,cAAe,EAAE,EAAE,KAAK,eAAgB,EAAE,EAAE,KAAK,SAAU,MAAM,EAAE,OAAO,QAAQ,EAAE,KAAK,KAAM,GAAG,EAAE,KAAK,KAAM,GAAG,EAAE,KAAK,IAAK,GAAG,EAAE,KAAK,QAAS,iBAAiB,EAAE,MAAM,eAAgB,CAAC,EAAE,MAAM,mBAAoB,KAAK,EACta3G,EAAK,OAAO,QAAQ,EAAE,KAAK,KAAMjB,EAAK,IAAM4H,EAAO,cAAc,EAAE,KAAK,QAAS,UAAYA,CAAI,EAAE,KAAK,UAAW,WAAW,EAAE,KAAK,OAAQ,EAAE,EAAE,KAAK,OAAQ,CAAC,EAAE,KAAK,cAAe,gBAAgB,EAAE,KAAK,cAAe,EAAE,EAAE,KAAK,eAAgB,EAAE,EAAE,KAAK,SAAU,MAAM,EAAE,OAAO,QAAQ,EAAE,KAAK,KAAM,GAAG,EAAE,KAAK,KAAM,GAAG,EAAE,KAAK,IAAK,GAAG,EAAE,KAAK,QAAS,iBAAiB,EAAE,MAAM,eAAgB,CAAC,EAAE,MAAM,mBAAoB,KAAK,CAC1a,EAAG,QAAQ,EACPU,GAAwB1I,EAAO,CAACqB,EAAM2G,EAAM5H,IAAO,CACrDiB,EAAK,OAAO,QAAQ,EAAE,KAAK,KAAMjB,EAAK,IAAM4H,EAAO,WAAW,EAAE,KAAK,QAAS,gBAAkBA,CAAI,EAAE,KAAK,UAAW,WAAW,EAAE,KAAK,OAAQ,EAAE,EAAE,KAAK,OAAQ,GAAG,EAAE,KAAK,cAAe,gBAAgB,EAAE,KAAK,cAAe,EAAE,EAAE,KAAK,eAAgB,EAAE,EAAE,KAAK,SAAU,MAAM,EAAE,OAAO,MAAM,EAAE,KAAK,IAAK,2BAA2B,EAAE,KAAK,QAAS,iBAAiB,EAAE,MAAM,eAAgB,CAAC,EAAE,MAAM,mBAAoB,KAAK,EACna3G,EAAK,OAAO,QAAQ,EAAE,KAAK,KAAMjB,EAAK,IAAM4H,EAAO,aAAa,EAAE,KAAK,QAAS,gBAAkBA,CAAI,EAAE,KAAK,UAAW,WAAW,EAAE,KAAK,OAAQ,EAAE,EAAE,KAAK,OAAQ,GAAG,EAAE,KAAK,cAAe,gBAAgB,EAAE,KAAK,cAAe,EAAE,EAAE,KAAK,eAAgB,EAAE,EAAE,KAAK,SAAU,MAAM,EAAE,OAAO,MAAM,EAAE,KAAK,IAAK,2BAA2B,EAAE,KAAK,QAAS,iBAAiB,EAAE,MAAM,eAAgB,CAAC,EAAE,MAAM,mBAAoB,KAAK,CACva,EAAG,OAAO,EACNW,GAAuB3I,EAAO,CAACqB,EAAM2G,EAAM5H,IAAO,CACpDiB,EAAK,OAAO,MAAM,EAAE,OAAO,QAAQ,EAAE,KAAK,KAAMjB,EAAK,IAAM4H,EAAO,UAAU,EAAE,KAAK,OAAQ,EAAE,EAAE,KAAK,OAAQ,CAAC,EAAE,KAAK,cAAe,EAAE,EAAE,KAAK,eAAgB,EAAE,EAAE,KAAK,cAAe,gBAAgB,EAAE,KAAK,SAAU,MAAM,EAAE,OAAO,MAAM,EAAE,KAAK,IAAK,2BAA2B,CACnR,EAAG,MAAM,EACLE,GAAU,CACZ,UAAAC,GACA,YAAAC,GACA,YAAAC,GACA,WAAAC,GACA,SAAAC,GACA,MAAAC,GACA,OAAAC,GACA,MAAAC,GACA,KAAAC,EACF,EACIC,GAAkBd", + "names": ["addEdgeMarkers", "__name", "svgPath", "edge", "url", "id", "diagramType", "addEdgeMarker", "arrowTypesMap", "position", "arrowType", "endMarkerType", "log", "suffix", "edgeLabels", "terminalLabels", "clear", "getLabelStyles", "styleArray", "acc", "style", "insertEdgeLabel", "elem", "useHtmlLabels", "evaluate", "getConfig2", "labelElement", "createText", "edgeLabel", "label", "bbox", "div", "dv", "select_default", "fo", "startLabelElement", "createLabel_default", "startEdgeLabelLeft", "inner", "slBox", "setTerminalWidth", "startEdgeLabelRight", "endLabelElement", "endEdgeLabelLeft", "endEdgeLabelRight", "value", "positionEdgeLabel", "paths", "path", "siteConfig", "subGraphTitleTotalMargin", "getSubGraphTitleMargins", "el", "x", "y", "pos", "utils_default", "outsideNode", "node", "point2", "dx", "dy", "w", "h", "intersection", "outsidePoint", "insidePoint", "r", "Q", "R", "q", "res", "_x", "_y", "cutPathAtIntersect", "_points", "boundaryNode", "points", "lastPointOutside", "isInside", "inter", "pointPresent", "p", "extractCornerPoints", "cornerPoints", "cornerPointPositions", "prev", "curr", "next", "findAdjacentPoint", "pointA", "pointB", "distance", "xDiff", "yDiff", "length", "ratio", "fixCorners", "lineData", "newLineData", "prevPoint", "nextPoint", "cornerPoint", "newPrevPoint", "newNextPoint", "a", "newCornerPoint", "insertEdge", "clusterDb", "startNode", "endNode", "handDrawnSeed", "pointsHasChanged", "tail", "head", "curve", "basis_default", "getLineFunctionsWithOffset", "lineFunction", "line_default", "strokeClasses", "linePath", "edgeStyles", "rc", "at", "svgPathNode", "d", "insertMarkers", "markerArray", "type", "markerName", "markers", "extension", "composition", "aggregation", "dependency", "lollipop", "point", "circle", "cross", "barb", "markers_default"] +} diff --git a/docs/_site/public/chunk-U3SD26FK.min.js b/docs/_site/public/chunk-U3SD26FK.min.js new file mode 100644 index 0000000..806dc01 --- /dev/null +++ b/docs/_site/public/chunk-U3SD26FK.min.js @@ -0,0 +1,65 @@ +import{a as zc,d as qc}from"./chunk-OSRY5VT3.min.js";var ya=zc((Fo,Lo)=>{(function(t,e){typeof Fo=="object"&&typeof Lo<"u"?Lo.exports=e():typeof define=="function"&&define.amd?define(e):(t=typeof globalThis<"u"?globalThis:t||self).dayjs=e()})(Fo,function(){"use strict";var t=1e3,e=6e4,r=36e5,i="millisecond",o="second",n="minute",a="hour",s="day",h="week",l="month",c="quarter",d="year",u="date",p="Invalid Date",T=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,M=/\[([^\]]+)]|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,$={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:function(k){var g=["th","st","nd","rd"],x=k%100;return"["+k+(g[(x-20)%10]||g[x]||g[0])+"]"}},q=function(k,g,x){var L=String(k);return!L||L.length>=g?k:""+Array(g+1-L.length).join(x)+k},G={s:q,z:function(k){var g=-k.utcOffset(),x=Math.abs(g),L=Math.floor(x/60),S=x%60;return(g<=0?"+":"-")+q(L,2,"0")+":"+q(S,2,"0")},m:function k(g,x){if(g.date()1)return k(O[0])}else{var U=g.name;F[U]=g,S=U}return!L&&S&&(E=S),S||!L&&E},j=function(k,g){if(w(k))return k.clone();var x=typeof g=="object"?g:{};return x.date=k,x.args=arguments,new rt(x)},W=G;W.l=X,W.i=w,W.w=function(k,g){return j(k,{locale:g.$L,utc:g.$u,x:g.$x,$offset:g.$offset})};var rt=function(){function k(x){this.$L=X(x.locale,null,!0),this.parse(x),this.$x=this.$x||x.x||{},this[P]=!0}var g=k.prototype;return g.parse=function(x){this.$d=function(L){var S=L.date,N=L.utc;if(S===null)return new Date(NaN);if(W.u(S))return new Date;if(S instanceof Date)return new Date(S);if(typeof S=="string"&&!/Z$/i.test(S)){var O=S.match(T);if(O){var U=O[2]-1||0,et=(O[7]||"0").substring(0,3);return N?new Date(Date.UTC(O[1],U,O[3]||1,O[4]||0,O[5]||0,O[6]||0,et)):new Date(O[1],U,O[3]||1,O[4]||0,O[5]||0,O[6]||0,et)}}return new Date(S)}(x),this.init()},g.init=function(){var x=this.$d;this.$y=x.getFullYear(),this.$M=x.getMonth(),this.$D=x.getDate(),this.$W=x.getDay(),this.$H=x.getHours(),this.$m=x.getMinutes(),this.$s=x.getSeconds(),this.$ms=x.getMilliseconds()},g.$utils=function(){return W},g.isValid=function(){return this.$d.toString()!==p},g.isSame=function(x,L){var S=j(x);return this.startOf(L)<=S&&S<=this.endOf(L)},g.isAfter=function(x,L){return j(x)t>=255?255:t<0?0:t,g:t=>t>=255?255:t<0?0:t,b:t=>t>=255?255:t<0?0:t,h:t=>t%360,s:t=>t>=100?100:t<0?0:t,l:t=>t>=100?100:t<0?0:t,a:t=>t>=1?1:t<0?0:t},toLinear:t=>{let e=t/255;return t>.03928?Math.pow((e+.055)/1.055,2.4):e/12.92},hue2rgb:(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),hsl2rgb:({h:t,s:e,l:r},i)=>{if(!e)return r*2.55;t/=360,e/=100,r/=100;let o=r<.5?r*(1+e):r+e-r*e,n=2*r-o;switch(i){case"r":return ci.hue2rgb(n,o,t+.3333333333333333)*255;case"g":return ci.hue2rgb(n,o,t)*255;case"b":return ci.hue2rgb(n,o,t-.3333333333333333)*255}},rgb2hsl:({r:t,g:e,b:r},i)=>{t/=255,e/=255,r/=255;let o=Math.max(t,e,r),n=Math.min(t,e,r),a=(o+n)/2;if(i==="l")return a*100;if(o===n)return 0;let s=o-n,h=a>.5?s/(2-o-n):s/(o+n);if(i==="s")return h*100;switch(o){case t:return((e-r)/s+(ee>r?Math.min(e,Math.max(r,t)):Math.min(r,Math.max(e,t)),round:t=>Math.round(t*1e10)/1e10},_a=Pc;var $c={dec2hex:t=>{let e=Math.round(t).toString(16);return e.length>1?e:`0${e}`}},ba=$c;var Wc={channel:Ca,lang:_a,unit:ba},R=Wc;var ie={};for(let t=0;t<=255;t++)ie[t]=R.unit.dec2hex(t);var ct={ALL:0,RGB:1,HSL:2};var Mo=class{constructor(){this.type=ct.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=ct.ALL}is(e){return this.type===e}},Ta=Mo;var Ao=class{constructor(e,r){this.color=r,this.changed=!1,this.data=e,this.type=new Ta}set(e,r){return this.color=r,this.changed=!1,this.data=e,this.type.type=ct.ALL,this}_ensureHSL(){let e=this.data,{h:r,s:i,l:o}=e;r===void 0&&(e.h=R.channel.rgb2hsl(e,"h")),i===void 0&&(e.s=R.channel.rgb2hsl(e,"s")),o===void 0&&(e.l=R.channel.rgb2hsl(e,"l"))}_ensureRGB(){let e=this.data,{r,g:i,b:o}=e;r===void 0&&(e.r=R.channel.hsl2rgb(e,"r")),i===void 0&&(e.g=R.channel.hsl2rgb(e,"g")),o===void 0&&(e.b=R.channel.hsl2rgb(e,"b"))}get r(){let e=this.data,r=e.r;return!this.type.is(ct.HSL)&&r!==void 0?r:(this._ensureHSL(),R.channel.hsl2rgb(e,"r"))}get g(){let e=this.data,r=e.g;return!this.type.is(ct.HSL)&&r!==void 0?r:(this._ensureHSL(),R.channel.hsl2rgb(e,"g"))}get b(){let e=this.data,r=e.b;return!this.type.is(ct.HSL)&&r!==void 0?r:(this._ensureHSL(),R.channel.hsl2rgb(e,"b"))}get h(){let e=this.data,r=e.h;return!this.type.is(ct.RGB)&&r!==void 0?r:(this._ensureRGB(),R.channel.rgb2hsl(e,"h"))}get s(){let e=this.data,r=e.s;return!this.type.is(ct.RGB)&&r!==void 0?r:(this._ensureRGB(),R.channel.rgb2hsl(e,"s"))}get l(){let e=this.data,r=e.l;return!this.type.is(ct.RGB)&&r!==void 0?r:(this._ensureRGB(),R.channel.rgb2hsl(e,"l"))}get a(){return this.data.a}set r(e){this.type.set(ct.RGB),this.changed=!0,this.data.r=e}set g(e){this.type.set(ct.RGB),this.changed=!0,this.data.g=e}set b(e){this.type.set(ct.RGB),this.changed=!0,this.data.b=e}set h(e){this.type.set(ct.HSL),this.changed=!0,this.data.h=e}set s(e){this.type.set(ct.HSL),this.changed=!0,this.data.s=e}set l(e){this.type.set(ct.HSL),this.changed=!0,this.data.l=e}set a(e){this.changed=!0,this.data.a=e}},ka=Ao;var Hc=new ka({r:0,g:0,b:0,a:0},"transparent"),me=Hc;var Sa={re:/^#((?:[a-f0-9]{2}){2,4}|[a-f0-9]{3})$/i,parse:t=>{if(t.charCodeAt(0)!==35)return;let e=t.match(Sa.re);if(!e)return;let r=e[1],i=parseInt(r,16),o=r.length,n=o%4===0,a=o>4,s=a?1:17,h=a?8:4,l=n?0:-1,c=a?255:15;return me.set({r:(i>>h*(l+3)&c)*s,g:(i>>h*(l+2)&c)*s,b:(i>>h*(l+1)&c)*s,a:n?(i&c)*s/255:1},t)},stringify:t=>{let{r:e,g:r,b:i,a:o}=t;return o<1?`#${ie[Math.round(e)]}${ie[Math.round(r)]}${ie[Math.round(i)]}${ie[Math.round(o*255)]}`:`#${ie[Math.round(e)]}${ie[Math.round(r)]}${ie[Math.round(i)]}`}},ve=Sa;var ui={re:/^hsla?\(\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?(?:deg|grad|rad|turn)?)\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?%)\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?%)(?:\s*?(?:,|\/)\s*?\+?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?(%)?))?\s*?\)$/i,hueRe:/^(.+?)(deg|grad|rad|turn)$/i,_hue2deg:t=>{let e=t.match(ui.hueRe);if(e){let[,r,i]=e;switch(i){case"grad":return R.channel.clamp.h(parseFloat(r)*.9);case"rad":return R.channel.clamp.h(parseFloat(r)*180/Math.PI);case"turn":return R.channel.clamp.h(parseFloat(r)*360)}}return R.channel.clamp.h(parseFloat(t))},parse:t=>{let e=t.charCodeAt(0);if(e!==104&&e!==72)return;let r=t.match(ui.re);if(!r)return;let[,i,o,n,a,s]=r;return me.set({h:ui._hue2deg(i),s:R.channel.clamp.s(parseFloat(o)),l:R.channel.clamp.l(parseFloat(n)),a:a?R.channel.clamp.a(s?parseFloat(a)/100:parseFloat(a)):1},t)},stringify:t=>{let{h:e,s:r,l:i,a:o}=t;return o<1?`hsla(${R.lang.round(e)}, ${R.lang.round(r)}%, ${R.lang.round(i)}%, ${o})`:`hsl(${R.lang.round(e)}, ${R.lang.round(r)}%, ${R.lang.round(i)}%)`}},Tr=ui;var fi={colors:{aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyanaqua:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",rebeccapurple:"#663399",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",transparent:"#00000000",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"},parse:t=>{t=t.toLowerCase();let e=fi.colors[t];if(e)return ve.parse(e)},stringify:t=>{let e=ve.stringify(t);for(let r in fi.colors)if(fi.colors[r]===e)return r}},Eo=fi;var va={re:/^rgba?\(\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))(?:\s*?(?:,|\/)\s*?\+?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?)))?\s*?\)$/i,parse:t=>{let e=t.charCodeAt(0);if(e!==114&&e!==82)return;let r=t.match(va.re);if(!r)return;let[,i,o,n,a,s,h,l,c]=r;return me.set({r:R.channel.clamp.r(o?parseFloat(i)*2.55:parseFloat(i)),g:R.channel.clamp.g(a?parseFloat(n)*2.55:parseFloat(n)),b:R.channel.clamp.b(h?parseFloat(s)*2.55:parseFloat(s)),a:l?R.channel.clamp.a(c?parseFloat(l)/100:parseFloat(l)):1},t)},stringify:t=>{let{r:e,g:r,b:i,a:o}=t;return o<1?`rgba(${R.lang.round(e)}, ${R.lang.round(r)}, ${R.lang.round(i)}, ${R.lang.round(o)})`:`rgb(${R.lang.round(e)}, ${R.lang.round(r)}, ${R.lang.round(i)})`}},kr=va;var Uc={format:{keyword:Eo,hex:ve,rgb:kr,rgba:kr,hsl:Tr,hsla:Tr},parse:t=>{if(typeof t!="string")return t;let e=ve.parse(t)||kr.parse(t)||Tr.parse(t)||Eo.parse(t);if(e)return e;throw new Error(`Unsupported color format: "${t}"`)},stringify:t=>!t.changed&&t.color?t.color:t.type.is(ct.HSL)||t.data.r===void 0?Tr.stringify(t):t.a<1||!Number.isInteger(t.r)||!Number.isInteger(t.g)||!Number.isInteger(t.b)?kr.stringify(t):ve.stringify(t)},ut=Uc;var Yc=(t,e)=>{let r=ut.parse(t);for(let i in e)r[i]=R.channel.clamp[i](e[i]);return ut.stringify(r)},mi=Yc;var Gc=(t,e,r=0,i=1)=>{if(typeof t!="number")return mi(t,{a:e});let o=me.set({r:R.channel.clamp.r(t),g:R.channel.clamp.g(e),b:R.channel.clamp.b(r),a:R.channel.clamp.a(i)});return ut.stringify(o)},oe=Gc;var Vc=(t,e)=>R.lang.round(ut.parse(t)[e]),Xc=Vc;var jc=t=>{let{r:e,g:r,b:i}=ut.parse(t),o=.2126*R.channel.toLinear(e)+.7152*R.channel.toLinear(r)+.0722*R.channel.toLinear(i);return R.lang.round(o)},wa=jc;var Zc=t=>wa(t)>=.5,Ba=Zc;var Kc=t=>!Ba(t),Wt=Kc;var Qc=(t,e,r)=>{let i=ut.parse(t),o=i[e],n=R.channel.clamp[e](o+r);return o!==n&&(i[e]=n),ut.stringify(i)},di=Qc;var Jc=(t,e)=>di(t,"l",e),A=Jc;var tu=(t,e)=>di(t,"l",-e),I=tu;var eu=(t,e)=>{let r=ut.parse(t),i={};for(let o in e)e[o]&&(i[o]=r[o]+e[o]);return mi(t,i)},m=eu;var ru=(t,e,r=50)=>{let{r:i,g:o,b:n,a}=ut.parse(t),{r:s,g:h,b:l,a:c}=ut.parse(e),d=r/100,u=d*2-1,p=a-c,M=((u*p===-1?u:(u+p)/(1+u*p))+1)/2,$=1-M,q=i*M+s*$,G=o*M+h*$,E=n*M+l*$,F=a*d+c*(1-d);return oe(q,G,E,F)},Fa=ru;var iu=(t,e=100)=>{let r=ut.parse(t);return r.r=255-r.r,r.g=255-r.g,r.b=255-r.b,Fa(r,t,e)},b=iu;var{entries:za,setPrototypeOf:La,isFrozen:ou,getPrototypeOf:nu,getOwnPropertyDescriptor:au}=Object,{freeze:Mt,seal:qt,create:qa}=Object,{apply:zo,construct:qo}=typeof Reflect<"u"&&Reflect;Mt||(Mt=function(e){return e});qt||(qt=function(e){return e});zo||(zo=function(e,r,i){return e.apply(r,i)});qo||(qo=function(e,r){return new e(...r)});var pi=At(Array.prototype.forEach),su=At(Array.prototype.lastIndexOf),Ma=At(Array.prototype.pop),Sr=At(Array.prototype.push),lu=At(Array.prototype.splice),xi=At(String.prototype.toLowerCase),Do=At(String.prototype.toString),Aa=At(String.prototype.match),vr=At(String.prototype.replace),hu=At(String.prototype.indexOf),cu=At(String.prototype.trim),Ht=At(Object.prototype.hasOwnProperty),Lt=At(RegExp.prototype.test),wr=uu(TypeError);function At(t){return function(e){for(var r=arguments.length,i=new Array(r>1?r-1:0),o=1;o2&&arguments[2]!==void 0?arguments[2]:xi;La&&La(t,null);let i=e.length;for(;i--;){let o=e[i];if(typeof o=="string"){let n=r(o);n!==o&&(ou(e)||(e[i]=n),o=n)}t[o]=!0}return t}function fu(t){for(let e=0;e/gm),xu=qt(/\$\{[\w\W]*/gm),yu=qt(/^data-[\-\w.\u00B7-\uFFFF]+$/),Cu=qt(/^aria-[\-\w]+$/),Pa=qt(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),_u=qt(/^(?:\w+script|data):/i),bu=qt(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),$a=qt(/^html$/i),Tu=qt(/^[a-z][.\w]*(-[.\w]+)+$/i),Na=Object.freeze({__proto__:null,ARIA_ATTR:Cu,ATTR_WHITESPACE:bu,CUSTOM_ELEMENT:Tu,DATA_ATTR:yu,DOCTYPE_NAME:$a,ERB_EXPR:gu,IS_ALLOWED_URI:Pa,IS_SCRIPT_OR_DATA:_u,MUSTACHE_EXPR:pu,TMPLIT_EXPR:xu}),Fr={element:1,attribute:2,text:3,cdataSection:4,entityReference:5,entityNode:6,progressingInstruction:7,comment:8,document:9,documentType:10,documentFragment:11,notation:12},ku=function(){return typeof window>"u"?null:window},Su=function(e,r){if(typeof e!="object"||typeof e.createPolicy!="function")return null;let i=null,o="data-tt-policy-suffix";r&&r.hasAttribute(o)&&(i=r.getAttribute(o));let n="dompurify"+(i?"#"+i:"");try{return e.createPolicy(n,{createHTML(a){return a},createScriptURL(a){return a}})}catch{return console.warn("TrustedTypes policy "+n+" could not be created."),null}},Ra=function(){return{afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}};function Wa(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:ku(),e=z=>Wa(z);if(e.version="3.2.4",e.removed=[],!t||!t.document||t.document.nodeType!==Fr.document||!t.Element)return e.isSupported=!1,e;let{document:r}=t,i=r,o=i.currentScript,{DocumentFragment:n,HTMLTemplateElement:a,Node:s,Element:h,NodeFilter:l,NamedNodeMap:c=t.NamedNodeMap||t.MozNamedAttrMap,HTMLFormElement:d,DOMParser:u,trustedTypes:p}=t,T=h.prototype,M=Br(T,"cloneNode"),$=Br(T,"remove"),q=Br(T,"nextSibling"),G=Br(T,"childNodes"),E=Br(T,"parentNode");if(typeof a=="function"){let z=r.createElement("template");z.content&&z.content.ownerDocument&&(r=z.content.ownerDocument)}let F,P="",{implementation:w,createNodeIterator:X,createDocumentFragment:j,getElementsByTagName:W}=r,{importNode:rt}=i,B=Ra();e.isSupported=typeof za=="function"&&typeof E=="function"&&w&&w.createHTMLDocument!==void 0;let{MUSTACHE_EXPR:k,ERB_EXPR:g,TMPLIT_EXPR:x,DATA_ATTR:L,ARIA_ATTR:S,IS_SCRIPT_OR_DATA:N,ATTR_WHITESPACE:O,CUSTOM_ELEMENT:U}=Na,{IS_ALLOWED_URI:et}=Na,Y=null,nt=K({},[...Ea,...Oo,...Io,...No,...Da]),Q=null,Bt=K({},[...Oa,...Ro,...Ia,...gi]),Z=Object.seal(qa(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}})),xt=null,yt=null,lt=!0,v=!0,H=!1,V=!0,C=!1,mt=!0,J=!1,Ct=!1,_t=!1,Ot=!1,Se=!1,oi=!1,ta=!0,ea=!1,Mc="user-content-",To=!0,Cr=!1,Ge={},Ve=null,ra=K({},["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"]),ia=null,oa=K({},["audio","video","img","source","image","track"]),ko=null,na=K({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),ni="http://www.w3.org/1998/Math/MathML",ai="http://www.w3.org/2000/svg",ee="http://www.w3.org/1999/xhtml",Xe=ee,So=!1,vo=null,Ac=K({},[ni,ai,ee],Do),si=K({},["mi","mo","mn","ms","mtext"]),li=K({},["annotation-xml"]),Ec=K({},["title","style","font","a","script"]),_r=null,Dc=["application/xhtml+xml","text/html"],Oc="text/html",dt=null,je=null,Ic=r.createElement("form"),aa=function(f){return f instanceof RegExp||f instanceof Function},wo=function(){let f=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(!(je&&je===f)){if((!f||typeof f!="object")&&(f={}),f=we(f),_r=Dc.indexOf(f.PARSER_MEDIA_TYPE)===-1?Oc:f.PARSER_MEDIA_TYPE,dt=_r==="application/xhtml+xml"?Do:xi,Y=Ht(f,"ALLOWED_TAGS")?K({},f.ALLOWED_TAGS,dt):nt,Q=Ht(f,"ALLOWED_ATTR")?K({},f.ALLOWED_ATTR,dt):Bt,vo=Ht(f,"ALLOWED_NAMESPACES")?K({},f.ALLOWED_NAMESPACES,Do):Ac,ko=Ht(f,"ADD_URI_SAFE_ATTR")?K(we(na),f.ADD_URI_SAFE_ATTR,dt):na,ia=Ht(f,"ADD_DATA_URI_TAGS")?K(we(oa),f.ADD_DATA_URI_TAGS,dt):oa,Ve=Ht(f,"FORBID_CONTENTS")?K({},f.FORBID_CONTENTS,dt):ra,xt=Ht(f,"FORBID_TAGS")?K({},f.FORBID_TAGS,dt):{},yt=Ht(f,"FORBID_ATTR")?K({},f.FORBID_ATTR,dt):{},Ge=Ht(f,"USE_PROFILES")?f.USE_PROFILES:!1,lt=f.ALLOW_ARIA_ATTR!==!1,v=f.ALLOW_DATA_ATTR!==!1,H=f.ALLOW_UNKNOWN_PROTOCOLS||!1,V=f.ALLOW_SELF_CLOSE_IN_ATTR!==!1,C=f.SAFE_FOR_TEMPLATES||!1,mt=f.SAFE_FOR_XML!==!1,J=f.WHOLE_DOCUMENT||!1,Ot=f.RETURN_DOM||!1,Se=f.RETURN_DOM_FRAGMENT||!1,oi=f.RETURN_TRUSTED_TYPE||!1,_t=f.FORCE_BODY||!1,ta=f.SANITIZE_DOM!==!1,ea=f.SANITIZE_NAMED_PROPS||!1,To=f.KEEP_CONTENT!==!1,Cr=f.IN_PLACE||!1,et=f.ALLOWED_URI_REGEXP||Pa,Xe=f.NAMESPACE||ee,si=f.MATHML_TEXT_INTEGRATION_POINTS||si,li=f.HTML_INTEGRATION_POINTS||li,Z=f.CUSTOM_ELEMENT_HANDLING||{},f.CUSTOM_ELEMENT_HANDLING&&aa(f.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(Z.tagNameCheck=f.CUSTOM_ELEMENT_HANDLING.tagNameCheck),f.CUSTOM_ELEMENT_HANDLING&&aa(f.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(Z.attributeNameCheck=f.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),f.CUSTOM_ELEMENT_HANDLING&&typeof f.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements=="boolean"&&(Z.allowCustomizedBuiltInElements=f.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),C&&(v=!1),Se&&(Ot=!0),Ge&&(Y=K({},Da),Q=[],Ge.html===!0&&(K(Y,Ea),K(Q,Oa)),Ge.svg===!0&&(K(Y,Oo),K(Q,Ro),K(Q,gi)),Ge.svgFilters===!0&&(K(Y,Io),K(Q,Ro),K(Q,gi)),Ge.mathMl===!0&&(K(Y,No),K(Q,Ia),K(Q,gi))),f.ADD_TAGS&&(Y===nt&&(Y=we(Y)),K(Y,f.ADD_TAGS,dt)),f.ADD_ATTR&&(Q===Bt&&(Q=we(Q)),K(Q,f.ADD_ATTR,dt)),f.ADD_URI_SAFE_ATTR&&K(ko,f.ADD_URI_SAFE_ATTR,dt),f.FORBID_CONTENTS&&(Ve===ra&&(Ve=we(Ve)),K(Ve,f.FORBID_CONTENTS,dt)),To&&(Y["#text"]=!0),J&&K(Y,["html","head","body"]),Y.table&&(K(Y,["tbody"]),delete xt.tbody),f.TRUSTED_TYPES_POLICY){if(typeof f.TRUSTED_TYPES_POLICY.createHTML!="function")throw wr('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if(typeof f.TRUSTED_TYPES_POLICY.createScriptURL!="function")throw wr('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');F=f.TRUSTED_TYPES_POLICY,P=F.createHTML("")}else F===void 0&&(F=Su(p,o)),F!==null&&typeof P=="string"&&(P=F.createHTML(""));Mt&&Mt(f),je=f}},sa=K({},[...Oo,...Io,...mu]),la=K({},[...No,...du]),Nc=function(f){let _=E(f);(!_||!_.tagName)&&(_={namespaceURI:Xe,tagName:"template"});let D=xi(f.tagName),at=xi(_.tagName);return vo[f.namespaceURI]?f.namespaceURI===ai?_.namespaceURI===ee?D==="svg":_.namespaceURI===ni?D==="svg"&&(at==="annotation-xml"||si[at]):!!sa[D]:f.namespaceURI===ni?_.namespaceURI===ee?D==="math":_.namespaceURI===ai?D==="math"&&li[at]:!!la[D]:f.namespaceURI===ee?_.namespaceURI===ai&&!li[at]||_.namespaceURI===ni&&!si[at]?!1:!la[D]&&(Ec[D]||!sa[D]):!!(_r==="application/xhtml+xml"&&vo[f.namespaceURI]):!1},Xt=function(f){Sr(e.removed,{element:f});try{E(f).removeChild(f)}catch{$(f)}},hi=function(f,_){try{Sr(e.removed,{attribute:_.getAttributeNode(f),from:_})}catch{Sr(e.removed,{attribute:null,from:_})}if(_.removeAttribute(f),f==="is")if(Ot||Se)try{Xt(_)}catch{}else try{_.setAttribute(f,"")}catch{}},ha=function(f){let _=null,D=null;if(_t)f=""+f;else{let bt=Aa(f,/^[\r\n\t ]+/);D=bt&&bt[0]}_r==="application/xhtml+xml"&&Xe===ee&&(f=''+f+"");let at=F?F.createHTML(f):f;if(Xe===ee)try{_=new u().parseFromString(at,_r)}catch{}if(!_||!_.documentElement){_=w.createDocument(Xe,"template",null);try{_.documentElement.innerHTML=So?P:at}catch{}}let wt=_.body||_.documentElement;return f&&D&&wt.insertBefore(r.createTextNode(D),wt.childNodes[0]||null),Xe===ee?W.call(_,J?"html":"body")[0]:J?_.documentElement:wt},ca=function(f){return X.call(f.ownerDocument||f,f,l.SHOW_ELEMENT|l.SHOW_COMMENT|l.SHOW_TEXT|l.SHOW_PROCESSING_INSTRUCTION|l.SHOW_CDATA_SECTION,null)},Bo=function(f){return f instanceof d&&(typeof f.nodeName!="string"||typeof f.textContent!="string"||typeof f.removeChild!="function"||!(f.attributes instanceof c)||typeof f.removeAttribute!="function"||typeof f.setAttribute!="function"||typeof f.namespaceURI!="string"||typeof f.insertBefore!="function"||typeof f.hasChildNodes!="function")},ua=function(f){return typeof s=="function"&&f instanceof s};function re(z,f,_){pi(z,D=>{D.call(e,f,_,je)})}let fa=function(f){let _=null;if(re(B.beforeSanitizeElements,f,null),Bo(f))return Xt(f),!0;let D=dt(f.nodeName);if(re(B.uponSanitizeElement,f,{tagName:D,allowedTags:Y}),f.hasChildNodes()&&!ua(f.firstElementChild)&&Lt(/<[/\w]/g,f.innerHTML)&&Lt(/<[/\w]/g,f.textContent)||f.nodeType===Fr.progressingInstruction||mt&&f.nodeType===Fr.comment&&Lt(/<[/\w]/g,f.data))return Xt(f),!0;if(!Y[D]||xt[D]){if(!xt[D]&&da(D)&&(Z.tagNameCheck instanceof RegExp&&Lt(Z.tagNameCheck,D)||Z.tagNameCheck instanceof Function&&Z.tagNameCheck(D)))return!1;if(To&&!Ve[D]){let at=E(f)||f.parentNode,wt=G(f)||f.childNodes;if(wt&&at){let bt=wt.length;for(let It=bt-1;It>=0;--It){let jt=M(wt[It],!0);jt.__removalCount=(f.__removalCount||0)+1,at.insertBefore(jt,q(f))}}}return Xt(f),!0}return f instanceof h&&!Nc(f)||(D==="noscript"||D==="noembed"||D==="noframes")&&Lt(/<\/no(script|embed|frames)/i,f.innerHTML)?(Xt(f),!0):(C&&f.nodeType===Fr.text&&(_=f.textContent,pi([k,g,x],at=>{_=vr(_,at," ")}),f.textContent!==_&&(Sr(e.removed,{element:f.cloneNode()}),f.textContent=_)),re(B.afterSanitizeElements,f,null),!1)},ma=function(f,_,D){if(ta&&(_==="id"||_==="name")&&(D in r||D in Ic))return!1;if(!(v&&!yt[_]&&Lt(L,_))){if(!(lt&&Lt(S,_))){if(!Q[_]||yt[_]){if(!(da(f)&&(Z.tagNameCheck instanceof RegExp&&Lt(Z.tagNameCheck,f)||Z.tagNameCheck instanceof Function&&Z.tagNameCheck(f))&&(Z.attributeNameCheck instanceof RegExp&&Lt(Z.attributeNameCheck,_)||Z.attributeNameCheck instanceof Function&&Z.attributeNameCheck(_))||_==="is"&&Z.allowCustomizedBuiltInElements&&(Z.tagNameCheck instanceof RegExp&&Lt(Z.tagNameCheck,D)||Z.tagNameCheck instanceof Function&&Z.tagNameCheck(D))))return!1}else if(!ko[_]){if(!Lt(et,vr(D,O,""))){if(!((_==="src"||_==="xlink:href"||_==="href")&&f!=="script"&&hu(D,"data:")===0&&ia[f])){if(!(H&&!Lt(N,vr(D,O,"")))){if(D)return!1}}}}}}return!0},da=function(f){return f!=="annotation-xml"&&Aa(f,U)},pa=function(f){re(B.beforeSanitizeAttributes,f,null);let{attributes:_}=f;if(!_||Bo(f))return;let D={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:Q,forceKeepAttr:void 0},at=_.length;for(;at--;){let wt=_[at],{name:bt,namespaceURI:It,value:jt}=wt,br=dt(bt),Ft=bt==="value"?jt:cu(jt);if(D.attrName=br,D.attrValue=Ft,D.keepAttr=!0,D.forceKeepAttr=void 0,re(B.uponSanitizeAttribute,f,D),Ft=D.attrValue,ea&&(br==="id"||br==="name")&&(hi(bt,f),Ft=Mc+Ft),mt&&Lt(/((--!?|])>)|<\/(style|title)/i,Ft)){hi(bt,f);continue}if(D.forceKeepAttr||(hi(bt,f),!D.keepAttr))continue;if(!V&&Lt(/\/>/i,Ft)){hi(bt,f);continue}C&&pi([k,g,x],xa=>{Ft=vr(Ft,xa," ")});let ga=dt(f.nodeName);if(ma(ga,br,Ft)){if(F&&typeof p=="object"&&typeof p.getAttributeType=="function"&&!It)switch(p.getAttributeType(ga,br)){case"TrustedHTML":{Ft=F.createHTML(Ft);break}case"TrustedScriptURL":{Ft=F.createScriptURL(Ft);break}}try{It?f.setAttributeNS(It,bt,Ft):f.setAttribute(bt,Ft),Bo(f)?Xt(f):Ma(e.removed)}catch{}}}re(B.afterSanitizeAttributes,f,null)},Rc=function z(f){let _=null,D=ca(f);for(re(B.beforeSanitizeShadowDOM,f,null);_=D.nextNode();)re(B.uponSanitizeShadowNode,_,null),fa(_),pa(_),_.content instanceof n&&z(_.content);re(B.afterSanitizeShadowDOM,f,null)};return e.sanitize=function(z){let f=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},_=null,D=null,at=null,wt=null;if(So=!z,So&&(z=""),typeof z!="string"&&!ua(z))if(typeof z.toString=="function"){if(z=z.toString(),typeof z!="string")throw wr("dirty is not a string, aborting")}else throw wr("toString is not a function");if(!e.isSupported)return z;if(Ct||wo(f),e.removed=[],typeof z=="string"&&(Cr=!1),Cr){if(z.nodeName){let jt=dt(z.nodeName);if(!Y[jt]||xt[jt])throw wr("root node is forbidden and cannot be sanitized in-place")}}else if(z instanceof s)_=ha(""),D=_.ownerDocument.importNode(z,!0),D.nodeType===Fr.element&&D.nodeName==="BODY"||D.nodeName==="HTML"?_=D:_.appendChild(D);else{if(!Ot&&!C&&!J&&z.indexOf("<")===-1)return F&&oi?F.createHTML(z):z;if(_=ha(z),!_)return Ot?null:oi?P:""}_&&_t&&Xt(_.firstChild);let bt=ca(Cr?z:_);for(;at=bt.nextNode();)fa(at),pa(at),at.content instanceof n&&Rc(at.content);if(Cr)return z;if(Ot){if(Se)for(wt=j.call(_.ownerDocument);_.firstChild;)wt.appendChild(_.firstChild);else wt=_;return(Q.shadowroot||Q.shadowrootmode)&&(wt=rt.call(i,wt,!0)),wt}let It=J?_.outerHTML:_.innerHTML;return J&&Y["!doctype"]&&_.ownerDocument&&_.ownerDocument.doctype&&_.ownerDocument.doctype.name&&Lt($a,_.ownerDocument.doctype.name)&&(It=" +`+It),C&&pi([k,g,x],jt=>{It=vr(It,jt," ")}),F&&oi?F.createHTML(It):It},e.setConfig=function(){let z=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};wo(z),Ct=!0},e.clearConfig=function(){je=null,Ct=!1},e.isValidAttribute=function(z,f,_){je||wo({});let D=dt(z),at=dt(f);return ma(D,at,_)},e.addHook=function(z,f){typeof f=="function"&&Sr(B[z],f)},e.removeHook=function(z,f){if(f!==void 0){let _=su(B[z],f);return _===-1?void 0:lu(B[z],_,1)[0]}return Ma(B[z])},e.removeHooks=function(z){B[z]=[]},e.removeAllHooks=function(){B=Ra()},e}var Ze=Wa();var ja=qc(ya(),1);var Xa=Object.defineProperty,y=(t,e)=>Xa(t,"name",{value:e,configurable:!0}),vu=(t,e)=>{for(var r in e)Xa(t,r,{get:e[r],enumerable:!0})},ne={trace:0,debug:1,info:2,warn:3,error:4,fatal:5},it={trace:y((...t)=>{},"trace"),debug:y((...t)=>{},"debug"),info:y((...t)=>{},"info"),warn:y((...t)=>{},"warn"),error:y((...t)=>{},"error"),fatal:y((...t)=>{},"fatal")},wu=y(function(t="fatal"){let e=ne.fatal;typeof t=="string"?t.toLowerCase()in ne&&(e=ne[t]):typeof t=="number"&&(e=t),it.trace=()=>{},it.debug=()=>{},it.info=()=>{},it.warn=()=>{},it.error=()=>{},it.fatal=()=>{},e<=ne.fatal&&(it.fatal=console.error?console.error.bind(console,Pt("FATAL"),"color: orange"):console.log.bind(console,"\x1B[35m",Pt("FATAL"))),e<=ne.error&&(it.error=console.error?console.error.bind(console,Pt("ERROR"),"color: orange"):console.log.bind(console,"\x1B[31m",Pt("ERROR"))),e<=ne.warn&&(it.warn=console.warn?console.warn.bind(console,Pt("WARN"),"color: orange"):console.log.bind(console,"\x1B[33m",Pt("WARN"))),e<=ne.info&&(it.info=console.info?console.info.bind(console,Pt("INFO"),"color: lightblue"):console.log.bind(console,"\x1B[34m",Pt("INFO"))),e<=ne.debug&&(it.debug=console.debug?console.debug.bind(console,Pt("DEBUG"),"color: lightgreen"):console.log.bind(console,"\x1B[32m",Pt("DEBUG"))),e<=ne.trace&&(it.trace=console.debug?console.debug.bind(console,Pt("TRACE"),"color: lightgreen"):console.log.bind(console,"\x1B[32m",Pt("TRACE")))},"setLogLevel"),Pt=y(t=>`%c${(0,ja.default)().format("ss.SSS")} : ${t} : `,"format"),Bu=/^-{3}\s*[\n\r](.*?)[\n\r]-{3}\s*[\n\r]+/s,Fu=/%{2}{\s*(?:(\w+)\s*:|(\w+))\s*(?:(\w+)|((?:(?!}%{2}).|\r?\n)*))?\s*(?:}%{2})?/gi,Lu=/\s*%%.*\n/gm,Mu=class extends Error{static{y(this,"UnknownDiagramError")}constructor(t){super(t),this.name="UnknownDiagramError"}},Ci={},B0=y(function(t,e){t=t.replace(Bu,"").replace(Fu,"").replace(Lu,` +`);for(let[r,{detector:i}]of Object.entries(Ci))if(i(t,e))return r;throw new Mu(`No diagram type detected matching given configuration for text: ${t}`)},"detectType"),F0=y((...t)=>{for(let{id:e,detector:r,loader:i}of t)Za(e,r,i)},"registerLazyLoadedDiagrams"),Za=y((t,e,r)=>{Ci[t]&&it.warn(`Detector with key ${t} already exists. Overwriting.`),Ci[t]={detector:e,loader:r},it.debug(`Detector with key ${t} added${r?" with loader":""}`)},"addDetector"),L0=y(t=>Ci[t].loader,"getDiagramLoader"),Po=y((t,e,{depth:r=2,clobber:i=!1}={})=>{let o={depth:r,clobber:i};return Array.isArray(e)&&!Array.isArray(t)?(e.forEach(n=>Po(t,n,o)),t):Array.isArray(e)&&Array.isArray(t)?(e.forEach(n=>{t.includes(n)||t.push(n)}),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(n=>{typeof e[n]=="object"&&(t[n]===void 0||typeof t[n]=="object")?(t[n]===void 0&&(t[n]=Array.isArray(e[n])?[]:{}),t[n]=Po(t[n],e[n],{depth:r-1,clobber:i})):(i||typeof t[n]!="object"&&typeof e[n]!="object")&&(t[n]=e[n])}),t)},"assignWithDepth"),Rt=Po,bi="#ffffff",Ti="#f2f2f2",Et=y((t,e)=>e?m(t,{s:-40,l:10}):m(t,{s:-40,l:-10}),"mkBorder"),Au=class{static{y(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||m(this.primaryColor,{h:-120}),this.tertiaryColor=this.tertiaryColor||m(this.primaryColor,{h:180,l:5}),this.primaryBorderColor=this.primaryBorderColor||Et(this.primaryColor,this.darkMode),this.secondaryBorderColor=this.secondaryBorderColor||Et(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=this.tertiaryBorderColor||Et(this.tertiaryColor,this.darkMode),this.noteBorderColor=this.noteBorderColor||Et(this.noteBkgColor,this.darkMode),this.noteBkgColor=this.noteBkgColor||"#fff5ad",this.noteTextColor=this.noteTextColor||"#333",this.secondaryTextColor=this.secondaryTextColor||b(this.secondaryColor),this.tertiaryTextColor=this.tertiaryTextColor||b(this.tertiaryColor),this.lineColor=this.lineColor||b(this.background),this.arrowheadColor=this.arrowheadColor||b(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?I(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||I(this.secondaryColor,10),this.activationBkgColor=this.activationBkgColor||this.secondaryColor,this.sequenceNumberColor=this.sequenceNumberColor||b(this.lineColor),this.sectionBkgColor=this.sectionBkgColor||this.tertiaryColor,this.altSectionBkgColor=this.altSectionBkgColor||"white",this.sectionBkgColor=this.sectionBkgColor||this.secondaryColor,this.sectionBkgColor2=this.sectionBkgColor2||this.primaryColor,this.excludeBkgColor=this.excludeBkgColor||"#eeeeee",this.taskBorderColor=this.taskBorderColor||this.primaryBorderColor,this.taskBkgColor=this.taskBkgColor||this.primaryColor,this.activeTaskBorderColor=this.activeTaskBorderColor||this.primaryColor,this.activeTaskBkgColor=this.activeTaskBkgColor||A(this.primaryColor,23),this.gridColor=this.gridColor||"lightgrey",this.doneTaskBkgColor=this.doneTaskBkgColor||"lightgrey",this.doneTaskBorderColor=this.doneTaskBorderColor||"grey",this.critBorderColor=this.critBorderColor||"#ff8888",this.critBkgColor=this.critBkgColor||"red",this.todayLineColor=this.todayLineColor||"red",this.taskTextColor=this.taskTextColor||this.textColor,this.taskTextOutsideColor=this.taskTextOutsideColor||this.textColor,this.taskTextLightColor=this.taskTextLightColor||this.textColor,this.taskTextColor=this.taskTextColor||this.primaryTextColor,this.taskTextDarkColor=this.taskTextDarkColor||this.textColor,this.taskTextClickableColor=this.taskTextClickableColor||"#003163",this.personBorder=this.personBorder||this.primaryBorderColor,this.personBkg=this.personBkg||this.mainBkg,this.transitionColor=this.transitionColor||this.lineColor,this.transitionLabelColor=this.transitionLabelColor||this.textColor,this.stateLabelColor=this.stateLabelColor||this.stateBkg||this.primaryTextColor,this.stateBkg=this.stateBkg||this.mainBkg,this.labelBackgroundColor=this.labelBackgroundColor||this.stateBkg,this.compositeBackground=this.compositeBackground||this.background||this.tertiaryColor,this.altBackground=this.altBackground||this.tertiaryColor,this.compositeTitleBackground=this.compositeTitleBackground||this.mainBkg,this.compositeBorder=this.compositeBorder||this.nodeBorder,this.innerEndBackground=this.nodeBorder,this.errorBkgColor=this.errorBkgColor||this.tertiaryColor,this.errorTextColor=this.errorTextColor||this.tertiaryTextColor,this.transitionColor=this.transitionColor||this.lineColor,this.specialStateColor=this.lineColor,this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||m(this.primaryColor,{h:30}),this.cScale4=this.cScale4||m(this.primaryColor,{h:60}),this.cScale5=this.cScale5||m(this.primaryColor,{h:90}),this.cScale6=this.cScale6||m(this.primaryColor,{h:120}),this.cScale7=this.cScale7||m(this.primaryColor,{h:150}),this.cScale8=this.cScale8||m(this.primaryColor,{h:210,l:150}),this.cScale9=this.cScale9||m(this.primaryColor,{h:270}),this.cScale10=this.cScale10||m(this.primaryColor,{h:300}),this.cScale11=this.cScale11||m(this.primaryColor,{h:330}),this.darkMode)for(let e=0;e{this[r]=t[r]}),this.updateColors(),e.forEach(r=>{this[r]=t[r]})}},Eu=y(t=>{let e=new Au;return e.calculate(t),e},"getThemeVariables"),Du=class{static{y(this,"Theme")}constructor(){this.background="#333",this.primaryColor="#1f2020",this.secondaryColor=A(this.primaryColor,16),this.tertiaryColor=m(this.primaryColor,{h:-160}),this.primaryBorderColor=b(this.background),this.secondaryBorderColor=Et(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=Et(this.tertiaryColor,this.darkMode),this.primaryTextColor=b(this.primaryColor),this.secondaryTextColor=b(this.secondaryColor),this.tertiaryTextColor=b(this.tertiaryColor),this.lineColor=b(this.background),this.textColor=b(this.background),this.mainBkg="#1f2020",this.secondBkg="calculated",this.mainContrastColor="lightgrey",this.darkTextColor=A(b("#323D47"),10),this.lineColor="calculated",this.border1="#ccc",this.border2=oe(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=I("#EAE8D9",30),this.altSectionBkgColor="calculated",this.sectionBkgColor2="#EAE8D9",this.excludeBkgColor=I(this.sectionBkgColor,10),this.taskBorderColor=oe(255,255,255,70),this.taskBkgColor="calculated",this.taskTextColor="calculated",this.taskTextLightColor="calculated",this.taskTextOutsideColor="calculated",this.taskTextClickableColor="#003163",this.activeTaskBorderColor=oe(255,255,255,50),this.activeTaskBkgColor="#81B1DB",this.gridColor="calculated",this.doneTaskBkgColor="calculated",this.doneTaskBorderColor="grey",this.critBorderColor="#E83737",this.critBkgColor="#E83737",this.taskTextDarkColor="calculated",this.todayLineColor="#DB5757",this.personBorder=this.primaryBorderColor,this.personBkg=this.mainBkg,this.archEdgeColor="calculated",this.archEdgeArrowColor="calculated",this.archEdgeWidth="3",this.archGroupBorderColor=this.primaryBorderColor,this.archGroupBorderWidth="2px",this.labelColor="calculated",this.errorBkgColor="#a44141",this.errorTextColor="#ddd"}updateColors(){this.secondBkg=A(this.mainBkg,16),this.lineColor=this.mainContrastColor,this.arrowheadColor=this.mainContrastColor,this.nodeBkg=this.mainBkg,this.nodeBorder=this.border1,this.clusterBkg=this.secondBkg,this.clusterBorder=this.border2,this.defaultLinkColor=this.lineColor,this.edgeLabelBackground=A(this.labelBackground,25),this.actorBorder=this.border1,this.actorBkg=this.mainBkg,this.actorTextColor=this.mainContrastColor,this.actorLineColor=this.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=A(this.mainBkg,23),this.taskTextColor=this.darkTextColor,this.taskTextLightColor=this.mainContrastColor,this.taskTextOutsideColor=this.taskTextLightColor,this.gridColor=this.mainContrastColor,this.doneTaskBkgColor=this.mainContrastColor,this.taskTextDarkColor=this.darkTextColor,this.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=m(this.primaryColor,{h:64}),this.fillType3=m(this.secondaryColor,{h:64}),this.fillType4=m(this.primaryColor,{h:-64}),this.fillType5=m(this.secondaryColor,{h:-64}),this.fillType6=m(this.primaryColor,{h:128}),this.fillType7=m(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||m(this.primaryColor,{h:30}),this.cScale4=this.cScale4||m(this.primaryColor,{h:60}),this.cScale5=this.cScale5||m(this.primaryColor,{h:90}),this.cScale6=this.cScale6||m(this.primaryColor,{h:120}),this.cScale7=this.cScale7||m(this.primaryColor,{h:150}),this.cScale8=this.cScale8||m(this.primaryColor,{h:210}),this.cScale9=this.cScale9||m(this.primaryColor,{h:270}),this.cScale10=this.cScale10||m(this.primaryColor,{h:300}),this.cScale11=this.cScale11||m(this.primaryColor,{h:330});for(let t=0;t{this[r]=t[r]}),this.updateColors(),e.forEach(r=>{this[r]=t[r]})}},Ou=y(t=>{let e=new Du;return e.calculate(t),e},"getThemeVariables"),Iu=class{static{y(this,"Theme")}constructor(){this.background="#f4f4f4",this.primaryColor="#ECECFF",this.secondaryColor=m(this.primaryColor,{h:120}),this.secondaryColor="#ffffde",this.tertiaryColor=m(this.primaryColor,{h:-160}),this.primaryBorderColor=Et(this.primaryColor,this.darkMode),this.secondaryBorderColor=Et(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=Et(this.tertiaryColor,this.darkMode),this.primaryTextColor=b(this.primaryColor),this.secondaryTextColor=b(this.secondaryColor),this.tertiaryTextColor=b(this.tertiaryColor),this.lineColor=b(this.background),this.textColor=b(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.sectionBkgColor=oe(102,102,255,.49),this.altSectionBkgColor="white",this.sectionBkgColor2="#fff400",this.taskBorderColor="#534fbc",this.taskBkgColor="#8a90dd",this.taskTextLightColor="white",this.taskTextColor="calculated",this.taskTextDarkColor="black",this.taskTextOutsideColor="calculated",this.taskTextClickableColor="#003163",this.activeTaskBorderColor="#534fbc",this.activeTaskBkgColor="#bfc7ff",this.gridColor="lightgrey",this.doneTaskBkgColor="lightgrey",this.doneTaskBorderColor="grey",this.critBorderColor="#ff8888",this.critBkgColor="red",this.todayLineColor="red",this.personBorder=this.primaryBorderColor,this.personBkg=this.mainBkg,this.archEdgeColor="calculated",this.archEdgeArrowColor="calculated",this.archEdgeWidth="3",this.archGroupBorderColor=this.primaryBorderColor,this.archGroupBorderWidth="2px",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||m(this.primaryColor,{h:30}),this.cScale4=this.cScale4||m(this.primaryColor,{h:60}),this.cScale5=this.cScale5||m(this.primaryColor,{h:90}),this.cScale6=this.cScale6||m(this.primaryColor,{h:120}),this.cScale7=this.cScale7||m(this.primaryColor,{h:150}),this.cScale8=this.cScale8||m(this.primaryColor,{h:210}),this.cScale9=this.cScale9||m(this.primaryColor,{h:270}),this.cScale10=this.cScale10||m(this.primaryColor,{h:300}),this.cScale11=this.cScale11||m(this.primaryColor,{h:330}),this.cScalePeer1=this.cScalePeer1||I(this.secondaryColor,45),this.cScalePeer2=this.cScalePeer2||I(this.tertiaryColor,40);for(let t=0;t{this[r]=t[r]}),this.updateColors(),e.forEach(r=>{this[r]=t[r]})}},Nu=y(t=>{let e=new Iu;return e.calculate(t),e},"getThemeVariables"),Ru=class{static{y(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=A("#cde498",10),this.primaryBorderColor=Et(this.primaryColor,this.darkMode),this.secondaryBorderColor=Et(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=Et(this.tertiaryColor,this.darkMode),this.primaryTextColor=b(this.primaryColor),this.secondaryTextColor=b(this.secondaryColor),this.tertiaryTextColor=b(this.primaryColor),this.lineColor=b(this.background),this.textColor=b(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.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=I(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||m(this.primaryColor,{h:30}),this.cScale4=this.cScale4||m(this.primaryColor,{h:60}),this.cScale5=this.cScale5||m(this.primaryColor,{h:90}),this.cScale6=this.cScale6||m(this.primaryColor,{h:120}),this.cScale7=this.cScale7||m(this.primaryColor,{h:150}),this.cScale8=this.cScale8||m(this.primaryColor,{h:210}),this.cScale9=this.cScale9||m(this.primaryColor,{h:270}),this.cScale10=this.cScale10||m(this.primaryColor,{h:300}),this.cScale11=this.cScale11||m(this.primaryColor,{h:330}),this.cScalePeer1=this.cScalePeer1||I(this.secondaryColor,45),this.cScalePeer2=this.cScalePeer2||I(this.tertiaryColor,40);for(let t=0;t{this[r]=t[r]}),this.updateColors(),e.forEach(r=>{this[r]=t[r]})}},zu=y(t=>{let e=new Ru;return e.calculate(t),e},"getThemeVariables"),qu=class{static{y(this,"Theme")}constructor(){this.primaryColor="#eee",this.contrast="#707070",this.secondaryColor=A(this.contrast,55),this.background="#ffffff",this.tertiaryColor=m(this.primaryColor,{h:-160}),this.primaryBorderColor=Et(this.primaryColor,this.darkMode),this.secondaryBorderColor=Et(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=Et(this.tertiaryColor,this.darkMode),this.primaryTextColor=b(this.primaryColor),this.secondaryTextColor=b(this.secondaryColor),this.tertiaryTextColor=b(this.tertiaryColor),this.lineColor=b(this.background),this.textColor=b(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.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.secondBkg=A(this.contrast,55),this.border2=this.contrast,this.actorBorder=A(this.border1,23),this.actorBkg=this.mainBkg,this.actorTextColor=this.text,this.actorLineColor=this.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 t=0;t{this[r]=t[r]}),this.updateColors(),e.forEach(r=>{this[r]=t[r]})}},Pu=y(t=>{let e=new qu;return e.calculate(t),e},"getThemeVariables"),Ke={base:{getThemeVariables:Eu},dark:{getThemeVariables:Ou},default:{getThemeVariables:Nu},forest:{getThemeVariables:zu},neutral:{getThemeVariables:Pu}},de={flowchart:{useMaxWidth:!0,titleTopMargin:25,subGraphTitleMargin:{top:0,bottom:0},diagramPadding:8,htmlLabels:!0,nodeSpacing:50,rankSpacing:50,curve:"basis",padding:15,defaultRenderer:"dagre-wrapper",wrappingWidth:200},sequence:{useMaxWidth:!0,hideUnusedParticipants:!1,activationWidth:10,diagramMarginX:50,diagramMarginY:10,actorMargin:50,width:150,height:65,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,messageAlign:"center",mirrorActors:!0,forceMenus:!1,bottomMarginAdj:1,rightAngles:!1,showSequenceNumbers:!1,actorFontSize:14,actorFontFamily:'"Open Sans", sans-serif',actorFontWeight:400,noteFontSize:14,noteFontFamily:'"trebuchet ms", verdana, arial, sans-serif',noteFontWeight:400,noteAlign:"center",messageFontSize:16,messageFontFamily:'"trebuchet ms", verdana, arial, sans-serif',messageFontWeight:400,wrap:!1,wrapPadding:10,labelBoxWidth:50,labelBoxHeight:20},gantt:{useMaxWidth:!0,titleTopMargin:25,barHeight:20,barGap:4,topPadding:50,rightPadding:75,leftPadding:75,gridLineStartPadding:35,fontSize:11,sectionFontSize:11,numberSectionStyles:4,axisFormat:"%Y-%m-%d",topAxis:!1,displayMode:"",weekday:"sunday"},journey:{useMaxWidth:!0,diagramMarginX:50,diagramMarginY:10,leftMargin:150,width:150,height:50,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,messageAlign:"center",bottomMarginAdj:1,rightAngles:!1,taskFontSize:14,taskFontFamily:'"Open Sans", sans-serif',taskMargin:50,activationWidth:10,textPlacement:"fo",actorColours:["#8FBC8F","#7CFC00","#00FFFF","#20B2AA","#B0E0E6","#FFFFE0"],sectionFills:["#191970","#8B008B","#4B0082","#2F4F4F","#800000","#8B4513","#00008B"],sectionColours:["#fff"]},class:{useMaxWidth:!0,titleTopMargin:25,arrowMarkerAbsolute:!1,dividerMargin:10,padding:5,textHeight:10,defaultRenderer:"dagre-wrapper",htmlLabels:!1,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,stroke:"gray",fill:"honeydew",fontSize:12},pie:{useMaxWidth:!0,textPosition:.75},quadrantChart:{useMaxWidth:!0,chartWidth:500,chartHeight:500,titleFontSize:20,titlePadding:10,quadrantPadding:5,xAxisLabelPadding:5,yAxisLabelPadding:5,xAxisLabelFontSize:16,yAxisLabelFontSize:16,quadrantLabelFontSize:16,quadrantTextTopPadding:5,pointTextPadding:5,pointLabelFontSize:12,pointRadius:5,xAxisPosition:"top",yAxisPosition:"left",quadrantInternalBorderStrokeWidth:1,quadrantExternalBorderStrokeWidth:2},xyChart:{useMaxWidth:!0,width:700,height:500,titleFontSize:20,titlePadding:10,showTitle:!0,xAxis:{$ref:"#/$defs/XYChartAxisConfig",showLabel:!0,labelFontSize:14,labelPadding:5,showTitle:!0,titleFontSize:16,titlePadding:5,showTick:!0,tickLength:5,tickWidth:2,showAxisLine:!0,axisLineWidth:2},yAxis:{$ref:"#/$defs/XYChartAxisConfig",showLabel:!0,labelFontSize:14,labelPadding:5,showTitle:!0,titleFontSize:16,titlePadding:5,showTick:!0,tickLength:5,tickWidth:2,showAxisLine:!0,axisLineWidth:2},chartOrientation:"vertical",plotReservedSpacePercent:50},requirement:{useMaxWidth:!0,rect_fill:"#f9f9f9",text_color:"#333",rect_border_size:"0.5px",rect_border_color:"#bbb",rect_min_width:200,rect_min_height:200,fontSize:14,rect_padding:10,line_height:20},mindmap:{useMaxWidth:!0,padding:10,maxNodeWidth:200},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},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},Ka={...de,deterministicIDSeed:void 0,elk:{mergeEdges:!1,nodePlacementStrategy:"BRANDES_KOEPF"},themeCSS:void 0,themeVariables:Ke.default.getThemeVariables(),sequence:{...de.sequence,messageFont:y(function(){return{fontFamily:this.messageFontFamily,fontSize:this.messageFontSize,fontWeight:this.messageFontWeight}},"messageFont"),noteFont:y(function(){return{fontFamily:this.noteFontFamily,fontSize:this.noteFontSize,fontWeight:this.noteFontWeight}},"noteFont"),actorFont:y(function(){return{fontFamily:this.actorFontFamily,fontSize:this.actorFontSize,fontWeight:this.actorFontWeight}},"actorFont")},class:{hideEmptyMembersBox:!1},gantt:{...de.gantt,tickInterval:void 0,useWidth:void 0},c4:{...de.c4,useWidth:void 0,personFont:y(function(){return{fontFamily:this.personFontFamily,fontSize:this.personFontSize,fontWeight:this.personFontWeight}},"personFont"),external_personFont:y(function(){return{fontFamily:this.external_personFontFamily,fontSize:this.external_personFontSize,fontWeight:this.external_personFontWeight}},"external_personFont"),systemFont:y(function(){return{fontFamily:this.systemFontFamily,fontSize:this.systemFontSize,fontWeight:this.systemFontWeight}},"systemFont"),external_systemFont:y(function(){return{fontFamily:this.external_systemFontFamily,fontSize:this.external_systemFontSize,fontWeight:this.external_systemFontWeight}},"external_systemFont"),system_dbFont:y(function(){return{fontFamily:this.system_dbFontFamily,fontSize:this.system_dbFontSize,fontWeight:this.system_dbFontWeight}},"system_dbFont"),external_system_dbFont:y(function(){return{fontFamily:this.external_system_dbFontFamily,fontSize:this.external_system_dbFontSize,fontWeight:this.external_system_dbFontWeight}},"external_system_dbFont"),system_queueFont:y(function(){return{fontFamily:this.system_queueFontFamily,fontSize:this.system_queueFontSize,fontWeight:this.system_queueFontWeight}},"system_queueFont"),external_system_queueFont:y(function(){return{fontFamily:this.external_system_queueFontFamily,fontSize:this.external_system_queueFontSize,fontWeight:this.external_system_queueFontWeight}},"external_system_queueFont"),containerFont:y(function(){return{fontFamily:this.containerFontFamily,fontSize:this.containerFontSize,fontWeight:this.containerFontWeight}},"containerFont"),external_containerFont:y(function(){return{fontFamily:this.external_containerFontFamily,fontSize:this.external_containerFontSize,fontWeight:this.external_containerFontWeight}},"external_containerFont"),container_dbFont:y(function(){return{fontFamily:this.container_dbFontFamily,fontSize:this.container_dbFontSize,fontWeight:this.container_dbFontWeight}},"container_dbFont"),external_container_dbFont:y(function(){return{fontFamily:this.external_container_dbFontFamily,fontSize:this.external_container_dbFontSize,fontWeight:this.external_container_dbFontWeight}},"external_container_dbFont"),container_queueFont:y(function(){return{fontFamily:this.container_queueFontFamily,fontSize:this.container_queueFontSize,fontWeight:this.container_queueFontWeight}},"container_queueFont"),external_container_queueFont:y(function(){return{fontFamily:this.external_container_queueFontFamily,fontSize:this.external_container_queueFontSize,fontWeight:this.external_container_queueFontWeight}},"external_container_queueFont"),componentFont:y(function(){return{fontFamily:this.componentFontFamily,fontSize:this.componentFontSize,fontWeight:this.componentFontWeight}},"componentFont"),external_componentFont:y(function(){return{fontFamily:this.external_componentFontFamily,fontSize:this.external_componentFontSize,fontWeight:this.external_componentFontWeight}},"external_componentFont"),component_dbFont:y(function(){return{fontFamily:this.component_dbFontFamily,fontSize:this.component_dbFontSize,fontWeight:this.component_dbFontWeight}},"component_dbFont"),external_component_dbFont:y(function(){return{fontFamily:this.external_component_dbFontFamily,fontSize:this.external_component_dbFontSize,fontWeight:this.external_component_dbFontWeight}},"external_component_dbFont"),component_queueFont:y(function(){return{fontFamily:this.component_queueFontFamily,fontSize:this.component_queueFontSize,fontWeight:this.component_queueFontWeight}},"component_queueFont"),external_component_queueFont:y(function(){return{fontFamily:this.external_component_queueFontFamily,fontSize:this.external_component_queueFontSize,fontWeight:this.external_component_queueFontWeight}},"external_component_queueFont"),boundaryFont:y(function(){return{fontFamily:this.boundaryFontFamily,fontSize:this.boundaryFontSize,fontWeight:this.boundaryFontWeight}},"boundaryFont"),messageFont:y(function(){return{fontFamily:this.messageFontFamily,fontSize:this.messageFontSize,fontWeight:this.messageFontWeight}},"messageFont")},pie:{...de.pie,useWidth:984},xyChart:{...de.xyChart,useWidth:void 0},requirement:{...de.requirement,useWidth:void 0},packet:{...de.packet}},Qa=y((t,e="")=>Object.keys(t).reduce((r,i)=>Array.isArray(t[i])?r:typeof t[i]=="object"&&t[i]!==null?[...r,e+i,...Qa(t[i],"")]:[...r,e+i],[]),"keyify"),$u=new Set(Qa(Ka,"")),Wu=Ka,$o=y(t=>{if(it.debug("sanitizeDirective called with",t),!(typeof t!="object"||t==null)){if(Array.isArray(t)){t.forEach(e=>$o(e));return}for(let e of Object.keys(t)){if(it.debug("Checking key",e),e.startsWith("__")||e.includes("proto")||e.includes("constr")||!$u.has(e)||t[e]==null){it.debug("sanitize deleting key: ",e),delete t[e];continue}if(typeof t[e]=="object"){it.debug("sanitizing object",e),$o(t[e]);continue}let r=["themeCSS","fontFamily","altFontFamily"];for(let i of r)e.includes(i)&&(it.debug("sanitizing css option",e),t[e]=Hu(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]="")}it.debug("After sanitization",t)}},"sanitizeDirective"),Hu=y(t=>{let e=0,r=0;for(let i of t){if(e{let r=Rt({},t),i={};for(let o of e)ts(o),i=Rt(i,o);if(r=Rt(r,i),i.theme&&i.theme in Ke){let o=Rt({},Ja),n=Rt(o.themeVariables||{},i.themeVariables);r.theme&&r.theme in Ke&&(r.themeVariables=Ke[r.theme].getThemeVariables(n))}return Lr=r,es(Lr),Lr},"updateCurrentConfig"),N0=y(t=>(Nt=Rt({},ki),Nt=Rt(Nt,t),t.theme&&Ke[t.theme]&&(Nt.themeVariables=Ke[t.theme].getThemeVariables(t.themeVariables)),Si(Nt,Qe),Nt),"setSiteConfig"),R0=y(t=>{Ja=Rt({},t)},"saveConfigFromInitialize"),z0=y(t=>(Nt=Rt(Nt,t),Si(Nt,Qe),Nt),"updateSiteConfig"),q0=y(()=>Rt({},Nt),"getSiteConfig"),Uu=y(t=>(es(t),Rt(Lr,t),Uo()),"setConfig"),Uo=y(()=>Rt({},Lr),"getConfig"),ts=y(t=>{t&&(["secure",...Nt.secure??[]].forEach(e=>{Object.hasOwn(t,e)&&(it.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"&&ts(t[e])}))},"sanitize"),P0=y(t=>{$o(t),t.fontFamily&&!t.themeVariables?.fontFamily&&(t.themeVariables={...t.themeVariables,fontFamily:t.fontFamily}),Qe.push(t),Si(Nt,Qe)},"addDirective"),$0=y((t=Nt)=>{Qe=[],Si(t,Qe)},"reset"),Yu={LAZY_LOAD_DEPRECATED:"The configuration options lazyLoadedDiagrams and loadExternalDiagramsAtStartup are deprecated. Please use registerExternalDiagrams instead."},Ha={},Gu=y(t=>{Ha[t]||(it.warn(Yu[t]),Ha[t]=!0)},"issueWarning"),es=y(t=>{t&&(t.lazyLoadedDiagrams||t.loadExternalDiagramsAtStartup)&&Gu("LAZY_LOAD_DEPRECATED")},"checkConfig"),Ar=//gi,Vu=y(t=>t?os(t).replace(/\\n/g,"#br#").split("#br#"):[""],"getRows"),Xu=(()=>{let t=!1;return()=>{t||(rs(),t=!0)}})();function rs(){let t="data-temp-href-target";Ze.addHook("beforeSanitizeAttributes",e=>{e instanceof Element&&e.tagName==="A"&&e.hasAttribute("target")&&e.setAttribute(t,e.getAttribute("target")??"")}),Ze.addHook("afterSanitizeAttributes",e=>{e instanceof Element&&e.tagName==="A"&&e.hasAttribute(t)&&(e.setAttribute("target",e.getAttribute(t)??""),e.removeAttribute(t),e.getAttribute("target")==="_blank"&&e.setAttribute("rel","noopener"))})}y(rs,"setupDompurifyHooks");var is=y(t=>(Xu(),Ze.sanitize(t)),"removeScript"),Ua=y((t,e)=>{if(e.flowchart?.htmlLabels!==!1){let r=e.securityLevel;r==="antiscript"||r==="strict"?t=is(t):r!=="loose"&&(t=os(t),t=t.replace(//g,">"),t=t.replace(/=/g,"="),t=Qu(t))}return t},"sanitizeMore"),Mr=y((t,e)=>t&&(e.dompurifyConfig?t=Ze.sanitize(Ua(t,e),e.dompurifyConfig).toString():t=Ze.sanitize(Ua(t,e),{FORBID_TAGS:["style"]}).toString(),t),"sanitizeText"),ju=y((t,e)=>typeof t=="string"?Mr(t,e):t.flat().map(r=>Mr(r,e)),"sanitizeTextOrArray"),Zu=y(t=>Ar.test(t),"hasBreaks"),Ku=y(t=>t.split(Ar),"splitBreaks"),Qu=y(t=>t.replace(/#br#/g,"
    "),"placeholderToBreak"),os=y(t=>t.replace(Ar,"#br#"),"breakToPlaceholder"),Ju=y(t=>{let e="";return t&&(e=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,e=e.replaceAll(/\(/g,"\\("),e=e.replaceAll(/\)/g,"\\)")),e},"getUrl"),tf=y(t=>!(t===!1||["false","null","0"].includes(String(t).trim().toLowerCase())),"evaluate"),ef=y(function(...t){let e=t.filter(r=>!isNaN(r));return Math.max(...e)},"getMax"),rf=y(function(...t){let e=t.filter(r=>!isNaN(r));return Math.min(...e)},"getMin"),H0=y(function(t){let e=t.split(/(,)/),r=[];for(let i=0;i0&&i+1Math.max(0,t.split(e).length-1),"countOccurrence"),of=y((t,e)=>{let r=Wo(t,"~"),i=Wo(e,"~");return r===1&&i===1},"shouldCombineSets"),nf=y(t=>{let e=Wo(t,"~"),r=!1;if(e<=1)return t;e%2!==0&&t.startsWith("~")&&(t=t.substring(1),r=!0);let i=[...t],o=i.indexOf("~"),n=i.lastIndexOf("~");for(;o!==-1&&n!==-1&&o!==n;)i[o]="<",i[n]=">",o=i.indexOf("~"),n=i.lastIndexOf("~");return r&&i.unshift("~"),i.join("")},"processSet"),Ya=y(()=>window.MathMLElement!==void 0,"isMathMLSupported"),Ho=/\$\$(.*)\$\$/g,Ga=y(t=>(t.match(Ho)?.length??0)>0,"hasKatex"),U0=y(async(t,e)=>{t=await af(t,e);let r=document.createElement("div");r.innerHTML=t,r.id="katex-temp",r.style.visibility="hidden",r.style.position="absolute",r.style.top="0",document.querySelector("body")?.insertAdjacentElement("beforeend",r);let o={width:r.clientWidth,height:r.clientHeight};return r.remove(),o},"calculateMathMLDimensions"),af=y(async(t,e)=>{if(!Ga(t))return t;if(!(Ya()||e.legacyMathML||e.forceLegacyMathML))return t.replace(Ho,"MathML is unsupported in this environment.");let{default:r}=await import("./katex-ROPKEHCO.min.js"),i=e.forceLegacyMathML||!Ya()&&e.legacyMathML?"htmlAndMathml":"mathml";return t.split(Ar).map(o=>Ga(o)?`
    ${o}
    `:`
    ${o}
    `).join("").replace(Ho,(o,n)=>r.renderToString(n,{throwOnError:!0,displayMode:!0,output:i}).replace(/\n/g," ").replace(//g,""))},"renderKatex"),Y0={getRows:Vu,sanitizeText:Mr,sanitizeTextOrArray:ju,hasBreaks:Zu,splitBreaks:Ku,lineBreakRegex:Ar,removeScript:is,getUrl:Ju,evaluate:tf,getMax:ef,getMin:rf},sf=y(function(t,e){for(let r of e)t.attr(r[0],r[1])},"d3Attrs"),lf=y(function(t,e,r){let i=new Map;return r?(i.set("width","100%"),i.set("style",`max-width: ${e}px;`)):(i.set("height",t),i.set("width",e)),i},"calculateSvgSizeAttrs"),hf=y(function(t,e,r,i){let o=lf(e,r,i);sf(t,o)},"configureSvgSize"),cf=y(function(t,e,r,i){let o=e.node().getBBox(),n=o.width,a=o.height;it.info(`SVG bounds: ${n}x${a}`,o);let s=0,h=0;it.info(`Graph bounds: ${s}x${h}`,t),s=n+r*2,h=a+r*2,it.info(`Calculated bounds: ${s}x${h}`),hf(e,h,s,i);let l=`${o.x-r} ${o.y-r} ${o.width+2*r} ${o.height+2*r}`;e.attr("viewBox",l)},"setupGraphViewbox"),yi={},uf=y((t,e,r)=>{let i="";return t in yi&&yi[t]?i=yi[t](r):it.warn(`No theme found for ${t}`),` & { + font-family: ${r.fontFamily}; + font-size: ${r.fontSize}; + fill: ${r.textColor} + } + + /* 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 + } + + ${i} + + ${e} +`},"getStyles"),ff=y((t,e)=>{e!==void 0&&(yi[t]=e)},"addStylesForDiagram"),G0=uf,ns={};vu(ns,{clear:()=>mf,getAccDescription:()=>xf,getAccTitle:()=>pf,getDiagramTitle:()=>Cf,setAccDescription:()=>gf,setAccTitle:()=>df,setDiagramTitle:()=>yf});var Yo="",Go="",Vo="",Xo=y(t=>Mr(t,Uo()),"sanitizeText"),mf=y(()=>{Yo="",Vo="",Go=""},"clear"),df=y(t=>{Yo=Xo(t).replace(/^\s+/g,"")},"setAccTitle"),pf=y(()=>Yo,"getAccTitle"),gf=y(t=>{Vo=Xo(t).replace(/\n\s+/g,` +`)},"setAccDescription"),xf=y(()=>Vo,"getAccDescription"),yf=y(t=>{Go=Xo(t)},"setDiagramTitle"),Cf=y(()=>Go,"getDiagramTitle"),Va=it,_f=wu,as=Uo,V0=Uu,X0=ki,bf=y(t=>Mr(t,as()),"sanitizeText"),Tf=cf,kf=y(()=>ns,"getCommonDb"),_i={},j0=y((t,e,r)=>{_i[t]&&Va.warn(`Diagram with id ${t} already registered. Overwriting.`),_i[t]=e,r&&Za(t,r),ff(t,e.styles),e.injectUtils?.(Va,_f,as,bf,Tf,kf(),()=>{})},"registerDiagram"),Z0=y(t=>{if(t in _i)return _i[t];throw new Sf(t)},"getDiagram"),Sf=class extends Error{static{y(this,"DiagramNotFoundError")}constructor(t){super(`Diagram ${t} not found.`)}};function ss(t,e){let r;if(e===void 0)for(let i of t)i!=null&&(r=i)&&(r=i);else{let i=-1;for(let o of t)(o=e(o,++i,t))!=null&&(r=o)&&(r=o)}return r}function ls(t,e){let r;if(e===void 0)for(let i of t)i!=null&&(r>i||r===void 0&&i>=i)&&(r=i);else{let i=-1;for(let o of t)(o=e(o,++i,t))!=null&&(r>o||r===void 0&&o>=o)&&(r=o)}return r}function Be(t,e){return t==null||e==null?NaN:te?1:t>=e?0:NaN}function jo(t,e){return t==null||e==null?NaN:et?1:e>=t?0:NaN}function Fe(t){let e,r,i;t.length!==2?(e=Be,r=(s,h)=>Be(t(s),h),i=(s,h)=>t(s)-h):(e=t===Be||t===jo?t:vf,r=t,i=t);function o(s,h,l=0,c=s.length){if(l>>1;r(s[d],h)<0?l=d+1:c=d}while(l>>1;r(s[d],h)<=0?l=d+1:c=d}while(ll&&i(s[d-1],h)>-i(s[d],h)?d-1:d}return{left:o,center:a,right:n}}function vf(){return 0}function Zo(t){return t===null?NaN:+t}var hs=Fe(Be),cs=hs.right,wf=hs.left,Bf=Fe(Zo).center,Ko=cs;var Je=class extends Map{constructor(e,r=Mf){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:r}}),e!=null)for(let[i,o]of e)this.set(i,o)}get(e){return super.get(us(this,e))}has(e){return super.has(us(this,e))}set(e,r){return super.set(Ff(this,e),r)}delete(e){return super.delete(Lf(this,e))}};function us({_intern:t,_key:e},r){let i=e(r);return t.has(i)?t.get(i):r}function Ff({_intern:t,_key:e},r){let i=e(r);return t.has(i)?t.get(i):(t.set(i,r),r)}function Lf({_intern:t,_key:e},r){let i=e(r);return t.has(i)&&(r=t.get(i),t.delete(i)),r}function Mf(t){return t!==null&&typeof t=="object"?t.valueOf():t}var Af=Math.sqrt(50),Ef=Math.sqrt(10),Df=Math.sqrt(2);function vi(t,e,r){let i=(e-t)/Math.max(0,r),o=Math.floor(Math.log10(i)),n=i/Math.pow(10,o),a=n>=Af?10:n>=Ef?5:n>=Df?2:1,s,h,l;return o<0?(l=Math.pow(10,-o)/a,s=Math.round(t*l),h=Math.round(e*l),s/le&&--h,l=-l):(l=Math.pow(10,o)*a,s=Math.round(t/l),h=Math.round(e/l),s*le&&--h),h0))return[];if(t===e)return[t];let i=e=o))return[];let s=n-o+1,h=new Array(s);if(i)if(a<0)for(let l=0;l+t(e)}function Rf(t,e){return e=Math.max(0,t.bandwidth()-e*2)/2,t.round()&&(e=Math.round(e)),r=>+t(r)+e}function zf(){return!this.__axis}function ds(t,e){var r=[],i=null,o=null,n=6,a=6,s=3,h=typeof window<"u"&&window.devicePixelRatio>1?0:.5,l=t===Li||t===Fi?-1:1,c=t===Fi||t===Qo?"x":"y",d=t===Li||t===Jo?Of:If;function u(p){var T=i??(e.ticks?e.ticks.apply(e,r):e.domain()),M=o??(e.tickFormat?e.tickFormat.apply(e,r):fs),$=Math.max(n,0)+s,q=e.range(),G=+q[0]+h,E=+q[q.length-1]+h,F=(e.bandwidth?Rf:Nf)(e.copy(),h),P=p.selection?p.selection():p,w=P.selectAll(".domain").data([null]),X=P.selectAll(".tick").data(T,e).order(),j=X.exit(),W=X.enter().append("g").attr("class","tick"),rt=X.select("line"),B=X.select("text");w=w.merge(w.enter().insert("path",".tick").attr("class","domain").attr("stroke","currentColor")),X=X.merge(W),rt=rt.merge(W.append("line").attr("stroke","currentColor").attr(c+"2",l*n)),B=B.merge(W.append("text").attr("fill","currentColor").attr(c,l*$).attr("dy",t===Li?"0em":t===Jo?"0.71em":"0.32em")),p!==P&&(w=w.transition(p),X=X.transition(p),rt=rt.transition(p),B=B.transition(p),j=j.transition(p).attr("opacity",ms).attr("transform",function(k){return isFinite(k=F(k))?d(k+h):this.getAttribute("transform")}),W.attr("opacity",ms).attr("transform",function(k){var g=this.parentNode.__axis;return d((g&&isFinite(g=g(k))?g:F(k))+h)})),j.remove(),w.attr("d",t===Fi||t===Qo?a?"M"+l*a+","+G+"H"+h+"V"+E+"H"+l*a:"M"+h+","+G+"V"+E:a?"M"+G+","+l*a+"V"+h+"H"+E+"V"+l*a:"M"+G+","+h+"H"+E),X.attr("opacity",1).attr("transform",function(k){return d(F(k)+h)}),rt.attr(c+"2",l*n),B.attr(c,l*$).text(M),P.filter(zf).attr("fill","none").attr("font-size",10).attr("font-family","sans-serif").attr("text-anchor",t===Qo?"start":t===Fi?"end":"middle"),P.each(function(){this.__axis=F})}return u.scale=function(p){return arguments.length?(e=p,u):e},u.ticks=function(){return r=Array.from(arguments),u},u.tickArguments=function(p){return arguments.length?(r=p==null?[]:Array.from(p),u):r.slice()},u.tickValues=function(p){return arguments.length?(i=p==null?null:Array.from(p),u):i&&i.slice()},u.tickFormat=function(p){return arguments.length?(o=p,u):o},u.tickSize=function(p){return arguments.length?(n=a=+p,u):n},u.tickSizeInner=function(p){return arguments.length?(n=+p,u):n},u.tickSizeOuter=function(p){return arguments.length?(a=+p,u):a},u.tickPadding=function(p){return arguments.length?(s=+p,u):s},u.offset=function(p){return arguments.length?(h=+p,u):h},u}function qf(t){return ds(Li,t)}function Pf(t){return ds(Jo,t)}function $f(){}function Le(t){return t==null?$f:function(){return this.querySelector(t)}}function ps(t){typeof t!="function"&&(t=Le(t));for(var e=this._groups,r=e.length,i=new Array(r),o=0;o=E&&(E=G+1);!(P=$[E])&&++E=0;)(a=i[o])&&(n&&a.compareDocumentPosition(n)^4&&n.parentNode.insertBefore(a,n),n=a);return this}function Bs(t){t||(t=tm);function e(d,u){return d&&u?t(d.__data__,u.__data__):!d-!u}for(var r=this._groups,i=r.length,o=new Array(i),n=0;ne?1:t>=e?0:NaN}function Fs(){var t=arguments[0];return arguments[0]=this,t.apply(null,arguments),this}function Ls(){return Array.from(this)}function Ms(){for(var t=this._groups,e=0,r=t.length;e=0&&(e=t.slice(0,r))!=="xmlns"&&(t=t.slice(r+1)),en.hasOwnProperty(e)?{space:en[e],local:t}:t}function em(t){return function(){this.removeAttribute(t)}}function rm(t){return function(){this.removeAttributeNS(t.space,t.local)}}function im(t,e){return function(){this.setAttribute(t,e)}}function om(t,e){return function(){this.setAttributeNS(t.space,t.local,e)}}function nm(t,e){return function(){var r=e.apply(this,arguments);r==null?this.removeAttribute(t):this.setAttribute(t,r)}}function am(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 Os(t,e){var r=ae(t);if(arguments.length<2){var i=this.node();return r.local?i.getAttributeNS(r.space,r.local):i.getAttribute(r)}return this.each((e==null?r.local?rm:em:typeof e=="function"?r.local?am:nm:r.local?om:im)(r,e))}function Di(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}function sm(t){return function(){this.style.removeProperty(t)}}function lm(t,e,r){return function(){this.style.setProperty(t,e,r)}}function hm(t,e,r){return function(){var i=e.apply(this,arguments);i==null?this.style.removeProperty(t):this.style.setProperty(t,i,r)}}function Is(t,e,r){return arguments.length>1?this.each((e==null?sm:typeof e=="function"?hm:lm)(t,e,r??"")):pe(this.node(),t)}function pe(t,e){return t.style.getPropertyValue(e)||Di(t).getComputedStyle(t,null).getPropertyValue(e)}function cm(t){return function(){delete this[t]}}function um(t,e){return function(){this[t]=e}}function fm(t,e){return function(){var r=e.apply(this,arguments);r==null?delete this[t]:this[t]=r}}function Ns(t,e){return arguments.length>1?this.each((e==null?cm:typeof e=="function"?fm:um)(t,e)):this.node()[t]}function Rs(t){return t.trim().split(/^|\s+/)}function rn(t){return t.classList||new zs(t)}function zs(t){this._node=t,this._names=Rs(t.getAttribute("class")||"")}zs.prototype={add:function(t){var e=this._names.indexOf(t);e<0&&(this._names.push(t),this._node.setAttribute("class",this._names.join(" ")))},remove:function(t){var e=this._names.indexOf(t);e>=0&&(this._names.splice(e,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(t){return this._names.indexOf(t)>=0}};function qs(t,e){for(var r=rn(t),i=-1,o=e.length;++i=0&&(r=e.slice(i+1),e=e.slice(0,i)),{type:e,name:r}})}function Em(t){return function(){var e=this.__on;if(e){for(var r=0,i=-1,o=e.length,n;r>8&15|e>>4&240,e>>4&15|e&240,(e&15)<<4|e&15,1):r===8?Ii(e>>24&255,e>>16&255,e>>8&255,(e&255)/255):r===4?Ii(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=qm.exec(t))?new Tt(e[1],e[2],e[3],1):(e=Pm.exec(t))?new Tt(e[1]*255/100,e[2]*255/100,e[3]*255/100,1):(e=$m.exec(t))?Ii(e[1],e[2],e[3],e[4]):(e=Wm.exec(t))?Ii(e[1]*255/100,e[2]*255/100,e[3]*255/100,e[4]):(e=Hm.exec(t))?ll(e[1],e[2]/100,e[3]/100,1):(e=Um.exec(t))?ll(e[1],e[2]/100,e[3]/100,e[4]):rl.hasOwnProperty(t)?nl(rl[t]):t==="transparent"?new Tt(NaN,NaN,NaN,0):null}function nl(t){return new Tt(t>>16&255,t>>8&255,t&255,1)}function Ii(t,e,r,i){return i<=0&&(t=e=r=NaN),new Tt(t,e,r,i)}function an(t){return t instanceof ge||(t=Yt(t)),t?(t=t.rgb(),new Tt(t.r,t.g,t.b,t.opacity)):new Tt}function ir(t,e,r,i){return arguments.length===1?an(t):new Tt(t,e,r,i??1)}function Tt(t,e,r,i){this.r=+t,this.g=+e,this.b=+r,this.opacity=+i}Me(Tt,ir,er(ge,{brighter(t){return t=t==null?Ri:Math.pow(Ri,t),new Tt(this.r*t,this.g*t,this.b*t,this.opacity)},darker(t){return t=t==null?Nr:Math.pow(Nr,t),new Tt(this.r*t,this.g*t,this.b*t,this.opacity)},rgb(){return this},clamp(){return new Tt(Ee(this.r),Ee(this.g),Ee(this.b),zi(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:al,formatHex:al,formatHex8:Vm,formatRgb:sl,toString:sl}));function al(){return`#${Ae(this.r)}${Ae(this.g)}${Ae(this.b)}`}function Vm(){return`#${Ae(this.r)}${Ae(this.g)}${Ae(this.b)}${Ae((isNaN(this.opacity)?1:this.opacity)*255)}`}function sl(){let t=zi(this.opacity);return`${t===1?"rgb(":"rgba("}${Ee(this.r)}, ${Ee(this.g)}, ${Ee(this.b)}${t===1?")":`, ${t})`}`}function zi(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function Ee(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function Ae(t){return t=Ee(t),(t<16?"0":"")+t.toString(16)}function ll(t,e,r,i){return i<=0?t=e=r=NaN:r<=0||r>=1?t=e=NaN:e<=0&&(t=NaN),new Ut(t,e,r,i)}function cl(t){if(t instanceof Ut)return new Ut(t.h,t.s,t.l,t.opacity);if(t instanceof ge||(t=Yt(t)),!t)return new Ut;if(t instanceof Ut)return t;t=t.rgb();var e=t.r/255,r=t.g/255,i=t.b/255,o=Math.min(e,r,i),n=Math.max(e,r,i),a=NaN,s=n-o,h=(n+o)/2;return s?(e===n?a=(r-i)/s+(r0&&h<1?0:a,new Ut(a,s,h,t.opacity)}function ul(t,e,r,i){return arguments.length===1?cl(t):new Ut(t,e,r,i??1)}function Ut(t,e,r,i){this.h=+t,this.s=+e,this.l=+r,this.opacity=+i}Me(Ut,ul,er(ge,{brighter(t){return t=t==null?Ri:Math.pow(Ri,t),new Ut(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=t==null?Nr:Math.pow(Nr,t),new Ut(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,i=r+(r<.5?r:1-r)*e,o=2*r-i;return new Tt(nn(t>=240?t-240:t+120,o,i),nn(t,o,i),nn(t<120?t+240:t-120,o,i),this.opacity)},clamp(){return new Ut(hl(this.h),Ni(this.s),Ni(this.l),zi(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=zi(this.opacity);return`${t===1?"hsl(":"hsla("}${hl(this.h)}, ${Ni(this.s)*100}%, ${Ni(this.l)*100}%${t===1?")":`, ${t})`}`}}));function hl(t){return t=(t||0)%360,t<0?t+360:t}function Ni(t){return Math.max(0,Math.min(1,t||0))}function nn(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 fl=Math.PI/180,ml=180/Math.PI;var qi=18,dl=.96422,pl=1,gl=.82521,xl=4/29,or=6/29,yl=3*or*or,Xm=or*or*or;function Cl(t){if(t instanceof Kt)return new Kt(t.l,t.a,t.b,t.opacity);if(t instanceof le)return _l(t);t instanceof Tt||(t=an(t));var e=cn(t.r),r=cn(t.g),i=cn(t.b),o=sn((.2225045*e+.7168786*r+.0606169*i)/pl),n,a;return e===r&&r===i?n=a=o:(n=sn((.4360747*e+.3850649*r+.1430804*i)/dl),a=sn((.0139322*e+.0971045*r+.7141733*i)/gl)),new Kt(116*o-16,500*(n-o),200*(o-a),t.opacity)}function un(t,e,r,i){return arguments.length===1?Cl(t):new Kt(t,e,r,i??1)}function Kt(t,e,r,i){this.l=+t,this.a=+e,this.b=+r,this.opacity=+i}Me(Kt,un,er(ge,{brighter(t){return new Kt(this.l+qi*(t??1),this.a,this.b,this.opacity)},darker(t){return new Kt(this.l-qi*(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=dl*ln(e),t=pl*ln(t),r=gl*ln(r),new Tt(hn(3.1338561*e-1.6168667*t-.4906146*r),hn(-.9787684*e+1.9161415*t+.033454*r),hn(.0719453*e-.2289914*t+1.4052427*r),this.opacity)}}));function sn(t){return t>Xm?Math.pow(t,1/3):t/yl+xl}function ln(t){return t>or?t*t*t:yl*(t-xl)}function hn(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function cn(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function jm(t){if(t instanceof le)return new le(t.h,t.c,t.l,t.opacity);if(t instanceof Kt||(t=Cl(t)),t.a===0&&t.b===0)return new le(NaN,0()=>t;function bl(t,e){return function(r){return t+r*e}}function Zm(t,e,r){return t=Math.pow(t,r),e=Math.pow(e,r)-t,r=1/r,function(i){return Math.pow(t+i*e,r)}}function Tl(t,e){var r=e-t;return r?bl(t,r>180||r<-180?r-360*Math.round(r/360):r):nr(isNaN(t)?e:t)}function kl(t){return(t=+t)==1?he:function(e,r){return r-e?Zm(e,r,t):nr(isNaN(e)?r:e)}}function he(t,e){var r=e-t;return r?bl(t,r):nr(isNaN(t)?e:t)}function Sl(t){return function(e,r){var i=t((e=zr(e)).h,(r=zr(r)).h),o=he(e.c,r.c),n=he(e.l,r.l),a=he(e.opacity,r.opacity);return function(s){return e.h=i(s),e.c=o(s),e.l=n(s),e.opacity=a(s),e+""}}}var Km=Sl(Tl),Qm=Sl(he);function fn(t,e,r,i,o){var n=t*t,a=n*t;return((1-3*t+3*n-a)*e+(4-6*n+3*a)*r+(1+3*t+3*n-3*a)*i+a*o)/6}function vl(t){var e=t.length-1;return function(r){var i=r<=0?r=0:r>=1?(r=1,e-1):Math.floor(r*e),o=t[i],n=t[i+1],a=i>0?t[i-1]:2*o-n,s=ir&&(n=e.slice(r,n),s[a]?s[a]+=n:s[++a]=n),(i=i[0])===(o=o[0])?s[a]?s[a]+=o:s[++a]=o:(s[++a]=null,h.push({i:a,x:kt(i,o)})),r=mn.lastIndex;return r180?c+=360:c-l>180&&(l+=360),u.push({i:d.push(o(d)+"rotate(",null,i)-2,x:kt(l,c)})):c&&d.push(o(d)+"rotate("+c+i)}function s(l,c,d,u){l!==c?u.push({i:d.push(o(d)+"skewX(",null,i)-2,x:kt(l,c)}):c&&d.push(o(d)+"skewX("+c+i)}function h(l,c,d,u,p,T){if(l!==d||c!==u){var M=p.push(o(p)+"scale(",null,",",null,")");T.push({i:M-4,x:kt(l,d)},{i:M-2,x:kt(c,u)})}else(d!==1||u!==1)&&p.push(o(p)+"scale("+d+","+u+")")}return function(l,c){var d=[],u=[];return l=t(l),c=t(c),n(l.translateX,l.translateY,c.translateX,c.translateY,d,u),a(l.rotate,c.rotate,d,u),s(l.skewX,c.skewX,d,u),h(l.scaleX,l.scaleY,c.scaleX,c.scaleY,d,u),l=c=null,function(p){for(var T=-1,M=u.length,$;++Te&&(r=t,t=e,e=r),function(i){return Math.max(t,Math.min(e,i))}}function od(t,e,r){var i=t[0],o=t[1],n=e[0],a=e[1];return o2?nd:od,h=l=null,d}function d(u){return u==null||isNaN(u=+u)?n:(h||(h=s(t.map(i),e,r)))(i(a(u)))}return d.invert=function(u){return a(o((l||(l=s(e,t.map(i),kt)))(u)))},d.domain=function(u){return arguments.length?(t=Array.from(u,Tn),c()):t.slice()},d.range=function(u){return arguments.length?(e=Array.from(u),c()):e.slice()},d.rangeRound=function(u){return e=Array.from(u),r=pn,c()},d.clamp=function(u){return arguments.length?(a=u?!0:ar,c()):a!==ar},d.interpolate=function(u){return arguments.length?(r=u,c()):r},d.unknown=function(u){return arguments.length?(n=u,d):n},function(u,p){return i=u,o=p,c()}}function $r(){return ad()(ar,ar)}function zl(t){return Math.abs(t=Math.round(t))>=1e21?t.toLocaleString("en").replace(/,/g,""):t.toString(10)}function Ie(t,e){if((r=(t=e?t.toExponential(e-1):t.toExponential()).indexOf("e"))<0)return null;var r,i=t.slice(0,r);return[i.length>1?i[0]+i.slice(2):i,+t.slice(r+1)]}function Qt(t){return t=Ie(Math.abs(t)),t?t[1]:NaN}function ql(t,e){return function(r,i){for(var o=r.length,n=[],a=0,s=t[0],h=0;o>0&&s>0&&(h+s+1>i&&(s=Math.max(1,i-h)),n.push(r.substring(o-=s,o+s)),!((h+=s+1)>i));)s=t[a=(a+1)%t.length];return n.reverse().join(e)}}function Pl(t){return function(e){return e.replace(/[0-9]/g,function(r){return t[+r]})}}var sd=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function ye(t){if(!(e=sd.exec(t)))throw new Error("invalid format: "+t);var e;return new Hi({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]})}ye.prototype=Hi.prototype;function Hi(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+""}Hi.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 $l(t){t:for(var e=t.length,r=1,i=-1,o;r0&&(i=0);break}return i>0?t.slice(0,i)+t.slice(o+1):t}var Sn;function Wl(t,e){var r=Ie(t,e);if(!r)return t+"";var i=r[0],o=r[1],n=o-(Sn=Math.max(-8,Math.min(8,Math.floor(o/3)))*3)+1,a=i.length;return n===a?i:n>a?i+new Array(n-a+1).join("0"):n>0?i.slice(0,n)+"."+i.slice(n):"0."+new Array(1-n).join("0")+Ie(t,Math.max(0,e+n-1))[0]}function vn(t,e){var r=Ie(t,e);if(!r)return t+"";var i=r[0],o=r[1];return o<0?"0."+new Array(-o).join("0")+i:i.length>o+1?i.slice(0,o+1)+"."+i.slice(o+1):i+new Array(o-i.length+2).join("0")}var wn={"%":(t,e)=>(t*100).toFixed(e),b:t=>Math.round(t).toString(2),c:t=>t+"",d:zl,e:(t,e)=>t.toExponential(e),f:(t,e)=>t.toFixed(e),g:(t,e)=>t.toPrecision(e),o:t=>Math.round(t).toString(8),p:(t,e)=>vn(t*100,e),r:vn,s:Wl,X:t=>Math.round(t).toString(16).toUpperCase(),x:t=>Math.round(t).toString(16)};function Bn(t){return t}var Hl=Array.prototype.map,Ul=["y","z","a","f","p","n","\xB5","m","","k","M","G","T","P","E","Z","Y"];function Yl(t){var e=t.grouping===void 0||t.thousands===void 0?Bn:ql(Hl.call(t.grouping,Number),t.thousands+""),r=t.currency===void 0?"":t.currency[0]+"",i=t.currency===void 0?"":t.currency[1]+"",o=t.decimal===void 0?".":t.decimal+"",n=t.numerals===void 0?Bn:Pl(Hl.call(t.numerals,String)),a=t.percent===void 0?"%":t.percent+"",s=t.minus===void 0?"\u2212":t.minus+"",h=t.nan===void 0?"NaN":t.nan+"";function l(d){d=ye(d);var u=d.fill,p=d.align,T=d.sign,M=d.symbol,$=d.zero,q=d.width,G=d.comma,E=d.precision,F=d.trim,P=d.type;P==="n"?(G=!0,P="g"):wn[P]||(E===void 0&&(E=12),F=!0,P="g"),($||u==="0"&&p==="=")&&($=!0,u="0",p="=");var w=M==="$"?r:M==="#"&&/[boxX]/.test(P)?"0"+P.toLowerCase():"",X=M==="$"?i:/[%p]/.test(P)?a:"",j=wn[P],W=/[defgprs%]/.test(P);E=E===void 0?6:/[gprs]/.test(P)?Math.max(1,Math.min(21,E)):Math.max(0,Math.min(20,E));function rt(B){var k=w,g=X,x,L,S;if(P==="c")g=j(B)+g,B="";else{B=+B;var N=B<0||1/B<0;if(B=isNaN(B)?h:j(Math.abs(B),E),F&&(B=$l(B)),N&&+B==0&&T!=="+"&&(N=!1),k=(N?T==="("?T:s:T==="-"||T==="("?"":T)+k,g=(P==="s"?Ul[8+Sn/3]:"")+g+(N&&T==="("?")":""),W){for(x=-1,L=B.length;++xS||S>57){g=(S===46?o+B.slice(x+1):B.slice(x))+g,B=B.slice(0,x);break}}}G&&!$&&(B=e(B,1/0));var O=k.length+B.length+g.length,U=O>1)+k+B+g+U.slice(O);break;default:B=U+k+B+g;break}return n(B)}return rt.toString=function(){return d+""},rt}function c(d,u){var p=l((d=ye(d),d.type="f",d)),T=Math.max(-8,Math.min(8,Math.floor(Qt(u)/3)))*3,M=Math.pow(10,-T),$=Ul[8+T/3];return function(q){return p(M*q)+$}}return{format:l,formatPrefix:c}}var Ui,Yi,Gi;Fn({thousands:",",grouping:[3],currency:["$",""]});function Fn(t){return Ui=Yl(t),Yi=Ui.format,Gi=Ui.formatPrefix,Ui}function Ln(t){return Math.max(0,-Qt(Math.abs(t)))}function Mn(t,e){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(Qt(e)/3)))*3-Qt(Math.abs(t)))}function An(t,e){return t=Math.abs(t),e=Math.abs(e)-t,Math.max(0,Qt(e)-Qt(t))+1}function En(t,e,r,i){var o=tr(t,e,r),n;switch(i=ye(i??",f"),i.type){case"s":{var a=Math.max(Math.abs(t),Math.abs(e));return i.precision==null&&!isNaN(n=Mn(o,a))&&(i.precision=n),Gi(i,a)}case"":case"e":case"g":case"p":case"r":{i.precision==null&&!isNaN(n=An(o,Math.max(Math.abs(t),Math.abs(e))))&&(i.precision=n-(i.type==="e"));break}case"f":case"%":{i.precision==null&&!isNaN(n=Ln(o))&&(i.precision=n-(i.type==="%")*2);break}}return Yi(i)}function ld(t){var e=t.domain;return t.ticks=function(r){var i=e();return wi(i[0],i[i.length-1],r??10)},t.tickFormat=function(r,i){var o=e();return En(o[0],o[o.length-1],r??10,i)},t.nice=function(r){r==null&&(r=10);var i=e(),o=0,n=i.length-1,a=i[o],s=i[n],h,l,c=10;for(s0;){if(l=Er(a,s,r),l===h)return i[o]=a,i[n]=s,e(i);if(l>0)a=Math.floor(a/l)*l,s=Math.ceil(s/l)*l;else if(l<0)a=Math.ceil(a*l)/l,s=Math.floor(s*l)/l;else break;h=l}return t},t}function Dn(){var t=$r();return t.copy=function(){return Wi(t,Dn())},xe.apply(t,arguments),ld(t)}var On=new Date,In=new Date;function ot(t,e,r,i){function o(n){return t(n=arguments.length===0?new Date:new Date(+n)),n}return o.floor=n=>(t(n=new Date(+n)),n),o.ceil=n=>(t(n=new Date(n-1)),e(n,1),t(n),n),o.round=n=>{let a=o(n),s=o.ceil(n);return n-a(e(n=new Date(+n),a==null?1:Math.floor(a)),n),o.range=(n,a,s)=>{let h=[];if(n=o.ceil(n),s=s==null?1:Math.floor(s),!(n0))return h;let l;do h.push(l=new Date(+n)),e(n,s),t(n);while(lot(a=>{if(a>=a)for(;t(a),!n(a);)a.setTime(a-1)},(a,s)=>{if(a>=a)if(s<0)for(;++s<=0;)for(;e(a,-1),!n(a););else for(;--s>=0;)for(;e(a,1),!n(a););}),r&&(o.count=(n,a)=>(On.setTime(+n),In.setTime(+a),t(On),t(In),Math.floor(r(On,In))),o.every=n=>(n=Math.floor(n),!isFinite(n)||!(n>0)?null:n>1?o.filter(i?a=>i(a)%n===0:a=>o.count(0,a)%n===0):o)),o}var Ne=ot(()=>{},(t,e)=>{t.setTime(+t+e)},(t,e)=>e-t);Ne.every=t=>(t=Math.floor(t),!isFinite(t)||!(t>0)?null:t>1?ot(e=>{e.setTime(Math.floor(e/t)*t)},(e,r)=>{e.setTime(+e+r*t)},(e,r)=>(r-e)/t):Ne);var Gl=Ne.range;var Jt=ot(t=>{t.setTime(t-t.getMilliseconds())},(t,e)=>{t.setTime(+t+e*1e3)},(t,e)=>(e-t)/1e3,t=>t.getUTCSeconds()),Vl=Jt.range;var sr=ot(t=>{t.setTime(t-t.getMilliseconds()-t.getSeconds()*1e3)},(t,e)=>{t.setTime(+t+e*6e4)},(t,e)=>(e-t)/6e4,t=>t.getMinutes()),hd=sr.range,Vi=ot(t=>{t.setUTCSeconds(0,0)},(t,e)=>{t.setTime(+t+e*6e4)},(t,e)=>(e-t)/6e4,t=>t.getUTCMinutes()),cd=Vi.range;var lr=ot(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()),ud=lr.range,Xi=ot(t=>{t.setUTCMinutes(0,0,0)},(t,e)=>{t.setTime(+t+e*36e5)},(t,e)=>(e-t)/36e5,t=>t.getUTCHours()),fd=Xi.range;var ce=ot(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),md=ce.range,Hr=ot(t=>{t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCDate(t.getUTCDate()+e)},(t,e)=>(e-t)/864e5,t=>t.getUTCDate()-1),dd=Hr.range,ji=ot(t=>{t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCDate(t.getUTCDate()+e)},(t,e)=>(e-t)/864e5,t=>Math.floor(t/864e5)),pd=ji.range;function qe(t){return ot(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)}var ue=qe(0),hr=qe(1),jl=qe(2),Zl=qe(3),Ce=qe(4),Kl=qe(5),Ql=qe(6),Jl=ue.range,gd=hr.range,xd=jl.range,yd=Zl.range,Cd=Ce.range,_d=Kl.range,bd=Ql.range;function Pe(t){return ot(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 $e=Pe(0),cr=Pe(1),th=Pe(2),eh=Pe(3),_e=Pe(4),rh=Pe(5),ih=Pe(6),oh=$e.range,Td=cr.range,kd=th.range,Sd=eh.range,vd=_e.range,wd=rh.range,Bd=ih.range;var ur=ot(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()),Fd=ur.range,Zi=ot(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()),Ld=Zi.range;var zt=ot(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());zt.every=t=>!isFinite(t=Math.floor(t))||!(t>0)?null:ot(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)});var Md=zt.range,Gt=ot(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());Gt.every=t=>!isFinite(t=Math.floor(t))||!(t>0)?null:ot(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)});var Ad=Gt.range;function ah(t,e,r,i,o,n){let a=[[Jt,1,1e3],[Jt,5,5*1e3],[Jt,15,15*1e3],[Jt,30,30*1e3],[n,1,6e4],[n,5,5*6e4],[n,15,15*6e4],[n,30,30*6e4],[o,1,36e5],[o,3,3*36e5],[o,6,6*36e5],[o,12,12*36e5],[i,1,864e5],[i,2,2*864e5],[r,1,6048e5],[e,1,2592e6],[e,3,3*2592e6],[t,1,31536e6]];function s(l,c,d){let u=c$).right(a,u);if(p===a.length)return t.every(tr(l/31536e6,c/31536e6,d));if(p===0)return Ne.every(Math.max(tr(l,c,d),1));let[T,M]=a[u/a[p-1][2]53)return null;"w"in C||(C.w=1),"Z"in C?(J=qn(Ur(C.y,0,1)),Ct=J.getUTCDay(),J=Ct>4||Ct===0?cr.ceil(J):cr(J),J=Hr.offset(J,(C.V-1)*7),C.y=J.getUTCFullYear(),C.m=J.getUTCMonth(),C.d=J.getUTCDate()+(C.w+6)%7):(J=zn(Ur(C.y,0,1)),Ct=J.getDay(),J=Ct>4||Ct===0?hr.ceil(J):hr(J),J=ce.offset(J,(C.V-1)*7),C.y=J.getFullYear(),C.m=J.getMonth(),C.d=J.getDate()+(C.w+6)%7)}else("W"in C||"U"in C)&&("w"in C||(C.w="u"in C?C.u%7:"W"in C?1:0),Ct="Z"in C?qn(Ur(C.y,0,1)).getUTCDay():zn(Ur(C.y,0,1)).getDay(),C.m=0,C.d="W"in C?(C.w+6)%7+C.W*7-(Ct+5)%7:C.w+C.U*7-(Ct+6)%7);return"Z"in C?(C.H+=C.Z/100|0,C.M+=C.Z%100,qn(C)):zn(C)}}function j(v,H,V,C){for(var mt=0,J=H.length,Ct=V.length,_t,Ot;mt=Ct)return-1;if(_t=H.charCodeAt(mt++),_t===37){if(_t=H.charAt(mt++),Ot=P[_t in sh?H.charAt(mt++):_t],!Ot||(C=Ot(v,V,C))<0)return-1}else if(_t!=V.charCodeAt(C++))return-1}return C}function W(v,H,V){var C=l.exec(H.slice(V));return C?(v.p=c.get(C[0].toLowerCase()),V+C[0].length):-1}function rt(v,H,V){var C=p.exec(H.slice(V));return C?(v.w=T.get(C[0].toLowerCase()),V+C[0].length):-1}function B(v,H,V){var C=d.exec(H.slice(V));return C?(v.w=u.get(C[0].toLowerCase()),V+C[0].length):-1}function k(v,H,V){var C=q.exec(H.slice(V));return C?(v.m=G.get(C[0].toLowerCase()),V+C[0].length):-1}function g(v,H,V){var C=M.exec(H.slice(V));return C?(v.m=$.get(C[0].toLowerCase()),V+C[0].length):-1}function x(v,H,V){return j(v,e,H,V)}function L(v,H,V){return j(v,r,H,V)}function S(v,H,V){return j(v,i,H,V)}function N(v){return a[v.getDay()]}function O(v){return n[v.getDay()]}function U(v){return h[v.getMonth()]}function et(v){return s[v.getMonth()]}function Y(v){return o[+(v.getHours()>=12)]}function nt(v){return 1+~~(v.getMonth()/3)}function Q(v){return a[v.getUTCDay()]}function Bt(v){return n[v.getUTCDay()]}function Z(v){return h[v.getUTCMonth()]}function xt(v){return s[v.getUTCMonth()]}function yt(v){return o[+(v.getUTCHours()>=12)]}function lt(v){return 1+~~(v.getUTCMonth()/3)}return{format:function(v){var H=w(v+="",E);return H.toString=function(){return v},H},parse:function(v){var H=X(v+="",!1);return H.toString=function(){return v},H},utcFormat:function(v){var H=w(v+="",F);return H.toString=function(){return v},H},utcParse:function(v){var H=X(v+="",!0);return H.toString=function(){return v},H}}}var sh={"-":"",_:" ",0:"0"},pt=/^\s*\d+/,Id=/^%/,Nd=/[\\^$*+?|[\]().{}]/g;function tt(t,e,r){var i=t<0?"-":"",o=(i?-t:t)+"",n=o.length;return i+(n[e.toLowerCase(),r]))}function zd(t,e,r){var i=pt.exec(e.slice(r,r+1));return i?(t.w=+i[0],r+i[0].length):-1}function qd(t,e,r){var i=pt.exec(e.slice(r,r+1));return i?(t.u=+i[0],r+i[0].length):-1}function Pd(t,e,r){var i=pt.exec(e.slice(r,r+2));return i?(t.U=+i[0],r+i[0].length):-1}function $d(t,e,r){var i=pt.exec(e.slice(r,r+2));return i?(t.V=+i[0],r+i[0].length):-1}function Wd(t,e,r){var i=pt.exec(e.slice(r,r+2));return i?(t.W=+i[0],r+i[0].length):-1}function lh(t,e,r){var i=pt.exec(e.slice(r,r+4));return i?(t.y=+i[0],r+i[0].length):-1}function hh(t,e,r){var i=pt.exec(e.slice(r,r+2));return i?(t.y=+i[0]+(+i[0]>68?1900:2e3),r+i[0].length):-1}function Hd(t,e,r){var i=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(e.slice(r,r+6));return i?(t.Z=i[1]?0:-(i[2]+(i[3]||"00")),r+i[0].length):-1}function Ud(t,e,r){var i=pt.exec(e.slice(r,r+1));return i?(t.q=i[0]*3-3,r+i[0].length):-1}function Yd(t,e,r){var i=pt.exec(e.slice(r,r+2));return i?(t.m=i[0]-1,r+i[0].length):-1}function ch(t,e,r){var i=pt.exec(e.slice(r,r+2));return i?(t.d=+i[0],r+i[0].length):-1}function Gd(t,e,r){var i=pt.exec(e.slice(r,r+3));return i?(t.m=0,t.d=+i[0],r+i[0].length):-1}function uh(t,e,r){var i=pt.exec(e.slice(r,r+2));return i?(t.H=+i[0],r+i[0].length):-1}function Vd(t,e,r){var i=pt.exec(e.slice(r,r+2));return i?(t.M=+i[0],r+i[0].length):-1}function Xd(t,e,r){var i=pt.exec(e.slice(r,r+2));return i?(t.S=+i[0],r+i[0].length):-1}function jd(t,e,r){var i=pt.exec(e.slice(r,r+3));return i?(t.L=+i[0],r+i[0].length):-1}function Zd(t,e,r){var i=pt.exec(e.slice(r,r+6));return i?(t.L=Math.floor(i[0]/1e3),r+i[0].length):-1}function Kd(t,e,r){var i=Id.exec(e.slice(r,r+1));return i?r+i[0].length:-1}function Qd(t,e,r){var i=pt.exec(e.slice(r));return i?(t.Q=+i[0],r+i[0].length):-1}function Jd(t,e,r){var i=pt.exec(e.slice(r));return i?(t.s=+i[0],r+i[0].length):-1}function fh(t,e){return tt(t.getDate(),e,2)}function tp(t,e){return tt(t.getHours(),e,2)}function ep(t,e){return tt(t.getHours()%12||12,e,2)}function rp(t,e){return tt(1+ce.count(zt(t),t),e,3)}function xh(t,e){return tt(t.getMilliseconds(),e,3)}function ip(t,e){return xh(t,e)+"000"}function op(t,e){return tt(t.getMonth()+1,e,2)}function np(t,e){return tt(t.getMinutes(),e,2)}function ap(t,e){return tt(t.getSeconds(),e,2)}function sp(t){var e=t.getDay();return e===0?7:e}function lp(t,e){return tt(ue.count(zt(t)-1,t),e,2)}function yh(t){var e=t.getDay();return e>=4||e===0?Ce(t):Ce.ceil(t)}function hp(t,e){return t=yh(t),tt(Ce.count(zt(t),t)+(zt(t).getDay()===4),e,2)}function cp(t){return t.getDay()}function up(t,e){return tt(hr.count(zt(t)-1,t),e,2)}function fp(t,e){return tt(t.getFullYear()%100,e,2)}function mp(t,e){return t=yh(t),tt(t.getFullYear()%100,e,2)}function dp(t,e){return tt(t.getFullYear()%1e4,e,4)}function pp(t,e){var r=t.getDay();return t=r>=4||r===0?Ce(t):Ce.ceil(t),tt(t.getFullYear()%1e4,e,4)}function gp(t){var e=t.getTimezoneOffset();return(e>0?"-":(e*=-1,"+"))+tt(e/60|0,"0",2)+tt(e%60,"0",2)}function mh(t,e){return tt(t.getUTCDate(),e,2)}function xp(t,e){return tt(t.getUTCHours(),e,2)}function yp(t,e){return tt(t.getUTCHours()%12||12,e,2)}function Cp(t,e){return tt(1+Hr.count(Gt(t),t),e,3)}function Ch(t,e){return tt(t.getUTCMilliseconds(),e,3)}function _p(t,e){return Ch(t,e)+"000"}function bp(t,e){return tt(t.getUTCMonth()+1,e,2)}function Tp(t,e){return tt(t.getUTCMinutes(),e,2)}function kp(t,e){return tt(t.getUTCSeconds(),e,2)}function Sp(t){var e=t.getUTCDay();return e===0?7:e}function vp(t,e){return tt($e.count(Gt(t)-1,t),e,2)}function _h(t){var e=t.getUTCDay();return e>=4||e===0?_e(t):_e.ceil(t)}function wp(t,e){return t=_h(t),tt(_e.count(Gt(t),t)+(Gt(t).getUTCDay()===4),e,2)}function Bp(t){return t.getUTCDay()}function Fp(t,e){return tt(cr.count(Gt(t)-1,t),e,2)}function Lp(t,e){return tt(t.getUTCFullYear()%100,e,2)}function Mp(t,e){return t=_h(t),tt(t.getUTCFullYear()%100,e,2)}function Ap(t,e){return tt(t.getUTCFullYear()%1e4,e,4)}function Ep(t,e){var r=t.getUTCDay();return t=r>=4||r===0?_e(t):_e.ceil(t),tt(t.getUTCFullYear()%1e4,e,4)}function Dp(){return"+0000"}function dh(){return"%"}function ph(t){return+t}function gh(t){return Math.floor(+t/1e3)}var fr,Ki,bh,Th,kh;$n({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});function $n(t){return fr=Pn(t),Ki=fr.format,bh=fr.parse,Th=fr.utcFormat,kh=fr.utcParse,fr}function Wn(t,e){t=t.slice();var r=0,i=t.length-1,o=t[r],n=t[i],a;return n1?0:t<-1?mr:Math.acos(t)}function Un(t){return t>=1?Vr:t<=-1?-Vr:Math.asin(t)}var Yn=Math.PI,Gn=2*Yn,He=1e-6,Rp=Gn-He;function Lh(t){this._+=t[0];for(let e=1,r=t.length;e=0))throw new Error(`invalid digits: ${t}`);if(e>15)return Lh;let r=10**e;return function(i){this._+=i[0];for(let o=1,n=i.length;oHe)if(!(Math.abs(d*h-l*c)>He)||!n)this._append`L${this._x1=e},${this._y1=r}`;else{let p=i-a,T=o-s,M=h*h+l*l,$=p*p+T*T,q=Math.sqrt(M),G=Math.sqrt(u),E=n*Math.tan((Yn-Math.acos((M+u-$)/(2*q*G)))/2),F=E/G,P=E/q;Math.abs(F-1)>He&&this._append`L${e+F*c},${r+F*d}`,this._append`A${n},${n},0,0,${+(d*p>c*T)},${this._x1=e+P*h},${this._y1=r+P*l}`}}arc(e,r,i,o,n,a){if(e=+e,r=+r,i=+i,a=!!a,i<0)throw new Error(`negative radius: ${i}`);let s=i*Math.cos(o),h=i*Math.sin(o),l=e+s,c=r+h,d=1^a,u=a?o-n:n-o;this._x1===null?this._append`M${l},${c}`:(Math.abs(this._x1-l)>He||Math.abs(this._y1-c)>He)&&this._append`L${l},${c}`,i&&(u<0&&(u=u%Gn+Gn),u>Rp?this._append`A${i},${i},0,1,${d},${e-s},${r-h}A${i},${i},0,1,${d},${this._x1=l},${this._y1=c}`:u>He&&this._append`A${i},${i},0,${+(u>=Yn)},${d},${this._x1=e+i*Math.cos(n)},${this._y1=r+i*Math.sin(n)}`)}rect(e,r,i,o){this._append`M${this._x0=this._x1=+e},${this._y0=this._y1=+r}h${i=+i}v${+o}h${-i}Z`}toString(){return this._}};function Mh(){return new Ue}Mh.prototype=Ue.prototype;function Ji(t){let e=3;return t.digits=function(r){if(!arguments.length)return e;if(r==null)e=null;else{let i=Math.floor(r);if(!(i>=0))throw new RangeError(`invalid digits: ${r}`);e=i}return t},()=>new Ue(e)}function qp(t){return t.innerRadius}function Pp(t){return t.outerRadius}function $p(t){return t.startAngle}function Wp(t){return t.endAngle}function Hp(t){return t&&t.padAngle}function Up(t,e,r,i,o,n,a,s){var h=r-t,l=i-e,c=a-o,d=s-n,u=d*h-c*l;if(!(u*ux*x+L*L&&(j=rt,W=B),{cx:j,cy:W,x01:-c,y01:-d,x11:j*(o/P-1),y11:W*(o/P-1)}}function Yp(){var t=qp,e=Pp,r=st(0),i=null,o=$p,n=Wp,a=Hp,s=null,h=Ji(l);function l(){var c,d,u=+t.apply(this,arguments),p=+e.apply(this,arguments),T=o.apply(this,arguments)-Vr,M=n.apply(this,arguments)-Vr,$=Hn(M-T),q=M>T;if(s||(s=c=h()),pgt))s.moveTo(0,0);else if($>dr-gt)s.moveTo(p*be(T),p*Vt(T)),s.arc(0,0,p,T,M,!q),u>gt&&(s.moveTo(u*be(M),u*Vt(M)),s.arc(0,0,u,M,T,q));else{var G=T,E=M,F=T,P=M,w=$,X=$,j=a.apply(this,arguments)/2,W=j>gt&&(i?+i.apply(this,arguments):We(u*u+p*p)),rt=Qi(Hn(p-u)/2,+r.apply(this,arguments)),B=rt,k=rt,g,x;if(W>gt){var L=Un(W/u*Vt(j)),S=Un(W/p*Vt(j));(w-=L*2)>gt?(L*=q?1:-1,F+=L,P-=L):(w=0,F=P=(T+M)/2),(X-=S*2)>gt?(S*=q?1:-1,G+=S,E-=S):(X=0,G=E=(T+M)/2)}var N=p*be(G),O=p*Vt(G),U=u*be(P),et=u*Vt(P);if(rt>gt){var Y=p*be(E),nt=p*Vt(E),Q=u*be(F),Bt=u*Vt(F),Z;if($gt?k>gt?(g=to(Q,Bt,N,O,p,k,q),x=to(Y,nt,U,et,p,k,q),s.moveTo(g.cx+g.x01,g.cy+g.y01),kgt)||!(w>gt)?s.lineTo(U,et):B>gt?(g=to(U,et,Y,nt,u,-B,q),x=to(N,O,Q,Bt,u,-B,q),s.lineTo(g.cx+g.x01,g.cy+g.y01),Bt?1:e>=t?0:NaN}function Ih(t){return t}function Vp(){var t=Ih,e=Oh,r=null,i=st(0),o=st(dr),n=st(0);function a(s){var h,l=(s=eo(s)).length,c,d,u=0,p=new Array(l),T=new Array(l),M=+i.apply(this,arguments),$=Math.min(dr,Math.max(-dr,o.apply(this,arguments)-M)),q,G=Math.min(Math.abs($)/l,n.apply(this,arguments)),E=G*($<0?-1:1),F;for(h=0;h0&&(u+=F);for(e!=null?p.sort(function(P,w){return e(T[P],T[w])}):r!=null&&p.sort(function(P,w){return r(s[P],s[w])}),h=0,d=u?($-l*E)/u:0;h0?F*d:0)+E,T[c]={data:s[c],index:h,value:F,startAngle:M,endAngle:q,padAngle:G};return T}return a.value=function(s){return arguments.length?(t=typeof s=="function"?s:st(+s),a):t},a.sortValues=function(s){return arguments.length?(e=s,r=null,a):e},a.sort=function(s){return arguments.length?(r=s,e=null,a):r},a.startAngle=function(s){return arguments.length?(i=typeof s=="function"?s:st(+s),a):i},a.endAngle=function(s){return arguments.length?(o=typeof s=="function"?s:st(+s),a):o},a.padAngle=function(s){return arguments.length?(n=typeof s=="function"?s:st(+s),a):n},a}function pr(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 Xr(t){this._context=t}Xr.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:pr(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:pr(this,t,e);break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}};function Xp(t){return new Xr(t)}var ro=class{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}};function jp(t){return new ro(t,!0)}function Zp(t){return new ro(t,!1)}function $t(){}function Nh(t){this._context=t}Nh.prototype={areaStart:$t,areaEnd:$t,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x2,this._y2),this._context.closePath();break}case 2:{this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break}case 3:{this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4);break}}},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._x2=t,this._y2=e;break;case 1:this._point=2,this._x3=t,this._y3=e;break;case 2:this._point=3,this._x4=t,this._y4=e,this._context.moveTo((this._x0+4*this._x1+t)/6,(this._y0+4*this._y1+e)/6);break;default:pr(this,t,e);break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}};function Kp(t){return new Nh(t)}function Rh(t){this._context=t}Rh.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var r=(this._x0+4*this._x1+t)/6,i=(this._y0+4*this._y1+e)/6;this._line?this._context.lineTo(r,i):this._context.moveTo(r,i);break;case 3:this._point=4;default:pr(this,t,e);break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}};function Qp(t){return new Rh(t)}function zh(t,e){this._basis=new Xr(t),this._beta=e}zh.prototype={lineStart:function(){this._x=[],this._y=[],this._basis.lineStart()},lineEnd:function(){var t=this._x,e=this._y,r=t.length-1;if(r>0)for(var i=t[0],o=e[0],n=t[r]-i,a=e[r]-o,s=-1,h;++s<=r;)h=s/r,this._basis.point(this._beta*t[s]+(1-this._beta)*(i+h*n),this._beta*e[s]+(1-this._beta)*(o+h*a));this._x=this._y=null,this._basis.lineEnd()},point:function(t,e){this._x.push(+t),this._y.push(+e)}};var Jp=function t(e){function r(i){return e===1?new Xr(i):new zh(i,e)}return r.beta=function(i){return t(+i)},r}(.85);function gr(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 io(t,e){this._context=t,this._k=(1-e)/6}io.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:gr(this,this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2,this._x1=t,this._y1=e;break;case 2:this._point=3;default:gr(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}};var tg=function t(e){function r(i){return new io(i,e)}return r.tension=function(i){return t(+i)},r}(0);function oo(t,e){this._context=t,this._k=(1-e)/6}oo.prototype={areaStart:$t,areaEnd:$t,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x3,this._y3),this._context.closePath();break}case 2:{this._context.lineTo(this._x3,this._y3),this._context.closePath();break}case 3:{this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5);break}}},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._x3=t,this._y3=e;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=e);break;case 2:this._point=3,this._x5=t,this._y5=e;break;default:gr(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}};var eg=function t(e){function r(i){return new oo(i,e)}return r.tension=function(i){return t(+i)},r}(0);function no(t,e){this._context=t,this._k=(1-e)/6}no.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:gr(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}};var rg=function t(e){function r(i){return new no(i,e)}return r.tension=function(i){return t(+i)},r}(0);function jr(t,e,r){var i=t._x1,o=t._y1,n=t._x2,a=t._y2;if(t._l01_a>gt){var s=2*t._l01_2a+3*t._l01_a*t._l12_a+t._l12_2a,h=3*t._l01_a*(t._l01_a+t._l12_a);i=(i*s-t._x0*t._l12_2a+t._x2*t._l01_2a)/h,o=(o*s-t._y0*t._l12_2a+t._y2*t._l01_2a)/h}if(t._l23_a>gt){var l=2*t._l23_2a+3*t._l23_a*t._l12_a+t._l12_2a,c=3*t._l23_a*(t._l23_a+t._l12_a);n=(n*l+t._x1*t._l23_2a-e*t._l12_2a)/c,a=(a*l+t._y1*t._l23_2a-r*t._l12_2a)/c}t._context.bezierCurveTo(i,o,n,a,t._x2,t._y2)}function qh(t,e){this._context=t,this._alpha=e}qh.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:this.point(this._x2,this._y2);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){if(t=+t,e=+e,this._point){var r=this._x2-t,i=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(r*r+i*i,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:jr(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}};var ig=function t(e){function r(i){return e?new qh(i,e):new io(i,0)}return r.alpha=function(i){return t(+i)},r}(.5);function Ph(t,e){this._context=t,this._alpha=e}Ph.prototype={areaStart:$t,areaEnd:$t,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x3,this._y3),this._context.closePath();break}case 2:{this._context.lineTo(this._x3,this._y3),this._context.closePath();break}case 3:{this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5);break}}},point:function(t,e){if(t=+t,e=+e,this._point){var r=this._x2-t,i=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(r*r+i*i,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:jr(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}};var og=function t(e){function r(i){return e?new Ph(i,e):new oo(i,0)}return r.alpha=function(i){return t(+i)},r}(.5);function $h(t,e){this._context=t,this._alpha=e}$h.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){if(t=+t,e=+e,this._point){var r=this._x2-t,i=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(r*r+i*i,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:jr(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}};var ng=function t(e){function r(i){return e?new $h(i,e):new no(i,0)}return r.alpha=function(i){return t(+i)},r}(.5);function Wh(t){this._context=t}Wh.prototype={areaStart:$t,areaEnd:$t,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(t,e){t=+t,e=+e,this._point?this._context.lineTo(t,e):(this._point=1,this._context.moveTo(t,e))}};function ag(t){return new Wh(t)}function Hh(t){return t<0?-1:1}function Uh(t,e,r){var i=t._x1-t._x0,o=e-t._x1,n=(t._y1-t._y0)/(i||o<0&&-0),a=(r-t._y1)/(o||i<0&&-0),s=(n*o+a*i)/(i+o);return(Hh(n)+Hh(a))*Math.min(Math.abs(n),Math.abs(a),.5*Math.abs(s))||0}function Yh(t,e){var r=t._x1-t._x0;return r?(3*(t._y1-t._y0)/r-e)/2:e}function Xn(t,e,r){var i=t._x0,o=t._y0,n=t._x1,a=t._y1,s=(n-i)/3;t._context.bezierCurveTo(i+s,o+s*e,n-s,a-s*r,n,a)}function ao(t){this._context=t}ao.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:Xn(this,this._t0,Yh(this,this._t0));break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){var 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,Xn(this,Yh(this,r=Uh(this,t,e)),r);break;default:Xn(this,this._t0,r=Uh(this,t,e));break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e,this._t0=r}}};function Gh(t){this._context=new Vh(t)}(Gh.prototype=Object.create(ao.prototype)).point=function(t,e){ao.prototype.point.call(this,e,t)};function Vh(t){this._context=t}Vh.prototype={moveTo:function(t,e){this._context.moveTo(e,t)},closePath:function(){this._context.closePath()},lineTo:function(t,e){this._context.lineTo(e,t)},bezierCurveTo:function(t,e,r,i,o,n){this._context.bezierCurveTo(e,t,i,r,n,o)}};function sg(t){return new ao(t)}function lg(t){return new Gh(t)}function jh(t){this._context=t}jh.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var t=this._x,e=this._y,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 i=Xh(t),o=Xh(e),n=0,a=1;a=0;--e)o[e]=(a[e]-o[e+1])/n[e];for(n[r-1]=(t[r]+o[r-1])/2,e=0;e=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;default:{if(this._t<=0)this._context.lineTo(this._x,e),this._context.lineTo(t,e);else{var 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}};function cg(t){return new so(t,.5)}function ug(t){return new so(t,0)}function fg(t){return new so(t,1)}var mg={value:()=>{}};function Kh(){for(var t=0,e=arguments.length,r={},i;t=0&&(i=r.slice(o+1),r=r.slice(0,o)),r&&!e.hasOwnProperty(r))throw new Error("unknown type: "+r);return{type:r,name:i}})}lo.prototype=Kh.prototype={constructor:lo,on:function(t,e){var r=this._,i=dg(t+"",r),o,n=-1,a=i.length;if(arguments.length<2){for(;++n0)for(var r=new Array(o),i=0,o,n;i=0&&t._call.call(void 0,e),t=t._next;--xr}function Qh(){Ye=(co=Jr.now())+uo,xr=Kr=0;try{ec()}finally{xr=0,yg(),Ye=0}}function xg(){var t=Jr.now(),e=t-co;e>Jh&&(uo-=e,co=t)}function yg(){for(var t,e=ho,r,i=1/0;e;)e._call?(i>e._time&&(i=e._time),t=e,e=e._next):(r=e._next,e._next=null,e=t?t._next=r:ho=r);Qr=t,Zn(i)}function Zn(t){if(!xr){Kr&&(Kr=clearTimeout(Kr));var e=t-Ye;e>24?(t<1/0&&(Kr=setTimeout(Qh,t-Jr.now()-uo)),Zr&&(Zr=clearInterval(Zr))):(Zr||(co=Jr.now(),Zr=setInterval(xg,Jh)),xr=1,tc(Qh))}}function mo(t,e,r){var i=new ti;return e=e==null?0:+e,i.restart(o=>{i.stop(),t(o+e)},e,r),i}var Cg=jn("start","end","cancel","interrupt"),_g=[],oc=0,rc=1,go=2,po=3,ic=4,xo=5,ri=6;function Te(t,e,r,i,o,n){var a=t.__transition;if(!a)t.__transition={};else if(r in a)return;bg(t,r,{name:e,index:i,group:o,on:Cg,tween:_g,time:n.time,delay:n.delay,duration:n.duration,ease:n.ease,timer:null,state:oc})}function ii(t,e){var r=ft(t,e);if(r.state>oc)throw new Error("too late; already scheduled");return r}function vt(t,e){var r=ft(t,e);if(r.state>po)throw new Error("too late; already running");return r}function ft(t,e){var r=t.__transition;if(!r||!(r=r[e]))throw new Error("transition not found");return r}function bg(t,e,r){var i=t.__transition,o;i[e]=r,r.timer=fo(n,0,r.time);function n(l){r.state=rc,r.timer.restart(a,r.delay,r.time),r.delay<=l&&a(l-r.delay)}function a(l){var c,d,u,p;if(r.state!==rc)return h();for(c in i)if(p=i[c],p.name===r.name){if(p.state===po)return mo(a);p.state===ic?(p.state=ri,p.timer.stop(),p.on.call("interrupt",t,t.__data__,p.index,p.group),delete i[c]):+cgo&&i.state=0&&(e=e.slice(0,r)),!e||e==="start"})}function $g(t,e,r){var i,o,n=Pg(e)?ii:vt;return function(){var a=n(this,t),s=a.on;s!==i&&(o=(i=s).copy()).on(e,r),a.on=o}}function pc(t,e){var r=this._id;return arguments.length<2?ft(this.node(),r).on.on(t):this.each($g(r,t,e))}function Wg(t){return function(){var e=this.parentNode;for(var r in this.__transition)if(+r!==t)return;e&&e.removeChild(this)}}function gc(){return this.on("end.remove",Wg(this._id))}function xc(t){var e=this._name,r=this._id;typeof t!="function"&&(t=Le(t));for(var i=this._groups,o=i.length,n=new Array(o),a=0;a=e?t:\"\"+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+m(r,2,\"0\")+\":\"+m(i,2,\"0\")},m:function t(e,n){if(e.date()1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(g=i),i||!r&&g},O=function(t,e){if(S(t))return t.clone();var n=\"object\"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},b=v;b.l=w,b.i=S,b.w=function(t,e){return O(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=w(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[p]=!0}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(b.u(e))return new Date;if(e instanceof Date)return new Date(e);if(\"string\"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||\"0\").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return b},m.isValid=function(){return!(this.$d.toString()===l)},m.isSame=function(t,e){var n=O(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return O(t) r >= 255 ? 255 : (r < 0 ? 0 : r),\n g: (g) => g >= 255 ? 255 : (g < 0 ? 0 : g),\n b: (b) => b >= 255 ? 255 : (b < 0 ? 0 : b),\n h: (h) => h % 360,\n s: (s) => s >= 100 ? 100 : (s < 0 ? 0 : s),\n l: (l) => l >= 100 ? 100 : (l < 0 ? 0 : l),\n a: (a) => a >= 1 ? 1 : (a < 0 ? 0 : a)\n },\n /* CONVERSION */\n //SOURCE: https://planetcalc.com/7779\n toLinear: (c) => {\n const n = c / 255;\n return c > .03928 ? Math.pow(((n + .055) / 1.055), 2.4) : n / 12.92;\n },\n //SOURCE: https://gist.github.com/mjackson/5311256\n hue2rgb: (p, q, t) => {\n if (t < 0)\n t += 1;\n if (t > 1)\n t -= 1;\n if (t < 1 / 6)\n return p + (q - p) * 6 * t;\n if (t < 1 / 2)\n return q;\n if (t < 2 / 3)\n return p + (q - p) * (2 / 3 - t) * 6;\n return p;\n },\n hsl2rgb: ({ h, s, l }, channel) => {\n if (!s)\n return l * 2.55; // Achromatic\n h /= 360;\n s /= 100;\n l /= 100;\n const q = (l < .5) ? l * (1 + s) : (l + s) - (l * s);\n const p = 2 * l - q;\n switch (channel) {\n case 'r': return Channel.hue2rgb(p, q, h + 1 / 3) * 255;\n case 'g': return Channel.hue2rgb(p, q, h) * 255;\n case 'b': return Channel.hue2rgb(p, q, h - 1 / 3) * 255;\n }\n },\n rgb2hsl: ({ r, g, b }, channel) => {\n r /= 255;\n g /= 255;\n b /= 255;\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n const l = (max + min) / 2;\n if (channel === 'l')\n return l * 100;\n if (max === min)\n return 0; // Achromatic\n const d = max - min;\n const s = (l > .5) ? d / (2 - max - min) : d / (max + min);\n if (channel === 's')\n return s * 100;\n switch (max) {\n case r: return ((g - b) / d + (g < b ? 6 : 0)) * 60;\n case g: return ((b - r) / d + 2) * 60;\n case b: return ((r - g) / d + 4) * 60;\n default: return -1; //TSC: TypeScript is stupid and complains if there isn't this useless default statement\n }\n }\n};\n/* EXPORT */\nexport default Channel;\n", "/* MAIN */\nconst Lang = {\n /* API */\n clamp: (number, lower, upper) => {\n if (lower > upper)\n return Math.min(lower, Math.max(upper, number));\n return Math.min(upper, Math.max(lower, number));\n },\n round: (number) => {\n return Math.round(number * 10000000000) / 10000000000;\n }\n};\n/* EXPORT */\nexport default Lang;\n", "/* MAIN */\nconst Unit = {\n /* API */\n dec2hex: (dec) => {\n const hex = Math.round(dec).toString(16);\n return hex.length > 1 ? hex : `0${hex}`;\n }\n};\n/* EXPORT */\nexport default Unit;\n", "/* IMPORT */\nimport channel from './channel.js';\nimport lang from './lang.js';\nimport unit from './unit.js';\n/* MAIN */\nconst Utils = {\n channel,\n lang,\n unit\n};\n/* EXPORT */\nexport default Utils;\n", "/* IMPORT */\nimport _ from './utils/index.js';\n/* MAIN */\nconst DEC2HEX = {};\nfor (let i = 0; i <= 255; i++)\n DEC2HEX[i] = _.unit.dec2hex(i); // Populating dynamically, striking a balance between code size and performance\nconst TYPE = {\n ALL: 0,\n RGB: 1,\n HSL: 2\n};\n/* EXPORT */\nexport { DEC2HEX, TYPE };\n", "/* IMPORT */\nimport { TYPE } from '../constants.js';\n/* MAIN */\nclass Type {\n constructor() {\n /* VARIABLES */\n this.type = TYPE.ALL;\n }\n /* API */\n get() {\n return this.type;\n }\n set(type) {\n if (this.type && this.type !== type)\n throw new Error('Cannot change both RGB and HSL channels at the same time');\n this.type = type;\n }\n reset() {\n this.type = TYPE.ALL;\n }\n is(type) {\n return this.type === type;\n }\n}\n/* EXPORT */\nexport default Type;\n", "/* IMPORT */\nimport _ from '../utils/index.js';\nimport Type from './type.js';\nimport { TYPE } from '../constants.js';\n/* MAIN */\nclass Channels {\n /* CONSTRUCTOR */\n constructor(data, color) {\n this.color = color;\n this.changed = false;\n this.data = data; //TSC\n this.type = new Type();\n }\n /* API */\n set(data, color) {\n this.color = color;\n this.changed = false;\n this.data = data; //TSC\n this.type.type = TYPE.ALL;\n return this;\n }\n /* HELPERS */\n _ensureHSL() {\n const data = this.data;\n const { h, s, l } = data;\n if (h === undefined)\n data.h = _.channel.rgb2hsl(data, 'h');\n if (s === undefined)\n data.s = _.channel.rgb2hsl(data, 's');\n if (l === undefined)\n data.l = _.channel.rgb2hsl(data, 'l');\n }\n _ensureRGB() {\n const data = this.data;\n const { r, g, b } = data;\n if (r === undefined)\n data.r = _.channel.hsl2rgb(data, 'r');\n if (g === undefined)\n data.g = _.channel.hsl2rgb(data, 'g');\n if (b === undefined)\n data.b = _.channel.hsl2rgb(data, 'b');\n }\n /* GETTERS */\n get r() {\n const data = this.data;\n const r = data.r;\n if (!this.type.is(TYPE.HSL) && r !== undefined)\n return r;\n this._ensureHSL();\n return _.channel.hsl2rgb(data, 'r');\n }\n get g() {\n const data = this.data;\n const g = data.g;\n if (!this.type.is(TYPE.HSL) && g !== undefined)\n return g;\n this._ensureHSL();\n return _.channel.hsl2rgb(data, 'g');\n }\n get b() {\n const data = this.data;\n const b = data.b;\n if (!this.type.is(TYPE.HSL) && b !== undefined)\n return b;\n this._ensureHSL();\n return _.channel.hsl2rgb(data, 'b');\n }\n get h() {\n const data = this.data;\n const h = data.h;\n if (!this.type.is(TYPE.RGB) && h !== undefined)\n return h;\n this._ensureRGB();\n return _.channel.rgb2hsl(data, 'h');\n }\n get s() {\n const data = this.data;\n const s = data.s;\n if (!this.type.is(TYPE.RGB) && s !== undefined)\n return s;\n this._ensureRGB();\n return _.channel.rgb2hsl(data, 's');\n }\n get l() {\n const data = this.data;\n const l = data.l;\n if (!this.type.is(TYPE.RGB) && l !== undefined)\n return l;\n this._ensureRGB();\n return _.channel.rgb2hsl(data, 'l');\n }\n get a() {\n return this.data.a;\n }\n /* SETTERS */\n set r(r) {\n this.type.set(TYPE.RGB);\n this.changed = true;\n this.data.r = r;\n }\n set g(g) {\n this.type.set(TYPE.RGB);\n this.changed = true;\n this.data.g = g;\n }\n set b(b) {\n this.type.set(TYPE.RGB);\n this.changed = true;\n this.data.b = b;\n }\n set h(h) {\n this.type.set(TYPE.HSL);\n this.changed = true;\n this.data.h = h;\n }\n set s(s) {\n this.type.set(TYPE.HSL);\n this.changed = true;\n this.data.s = s;\n }\n set l(l) {\n this.type.set(TYPE.HSL);\n this.changed = true;\n this.data.l = l;\n }\n set a(a) {\n this.changed = true;\n this.data.a = a;\n }\n}\n/* EXPORT */\nexport default Channels;\n", "/* IMPORT */\nimport Channels from './/index.js';\n/* MAIN */\nconst channels = new Channels({ r: 0, g: 0, b: 0, a: 0 }, 'transparent');\n/* EXPORT */\nexport default channels;\n", "/* IMPORT */\nimport _ from '../utils/index.js';\nimport ChannelsReusable from '../channels/reusable.js';\nimport { DEC2HEX } from '../constants.js';\n/* MAIN */\nconst Hex = {\n /* VARIABLES */\n re: /^#((?:[a-f0-9]{2}){2,4}|[a-f0-9]{3})$/i,\n /* API */\n parse: (color) => {\n if (color.charCodeAt(0) !== 35)\n return; // '#'\n const match = color.match(Hex.re);\n if (!match)\n return;\n const hex = match[1];\n const dec = parseInt(hex, 16);\n const length = hex.length;\n const hasAlpha = length % 4 === 0;\n const isFullLength = length > 4;\n const multiplier = isFullLength ? 1 : 17;\n const bits = isFullLength ? 8 : 4;\n const bitsOffset = hasAlpha ? 0 : -1;\n const mask = isFullLength ? 255 : 15;\n return ChannelsReusable.set({\n r: ((dec >> (bits * (bitsOffset + 3))) & mask) * multiplier,\n g: ((dec >> (bits * (bitsOffset + 2))) & mask) * multiplier,\n b: ((dec >> (bits * (bitsOffset + 1))) & mask) * multiplier,\n a: hasAlpha ? (dec & mask) * multiplier / 255 : 1\n }, color);\n },\n stringify: (channels) => {\n const { r, g, b, a } = channels;\n if (a < 1) { // #RRGGBBAA\n return `#${DEC2HEX[Math.round(r)]}${DEC2HEX[Math.round(g)]}${DEC2HEX[Math.round(b)]}${DEC2HEX[Math.round(a * 255)]}`;\n }\n else { // #RRGGBB\n return `#${DEC2HEX[Math.round(r)]}${DEC2HEX[Math.round(g)]}${DEC2HEX[Math.round(b)]}`;\n }\n }\n};\n/* EXPORT */\nexport default Hex;\n", "/* IMPORT */\nimport _ from '../utils/index.js';\nimport ChannelsReusable from '../channels/reusable.js';\n/* MAIN */\nconst HSL = {\n /* VARIABLES */\n 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,\n hueRe: /^(.+?)(deg|grad|rad|turn)$/i,\n /* HELPERS */\n _hue2deg: (hue) => {\n const match = hue.match(HSL.hueRe);\n if (match) {\n const [, number, unit] = match;\n switch (unit) {\n case 'grad': return _.channel.clamp.h(parseFloat(number) * .9);\n case 'rad': return _.channel.clamp.h(parseFloat(number) * 180 / Math.PI);\n case 'turn': return _.channel.clamp.h(parseFloat(number) * 360);\n }\n }\n return _.channel.clamp.h(parseFloat(hue));\n },\n /* API */\n parse: (color) => {\n const charCode = color.charCodeAt(0);\n if (charCode !== 104 && charCode !== 72)\n return; // 'h'/'H'\n const match = color.match(HSL.re);\n if (!match)\n return;\n const [, h, s, l, a, isAlphaPercentage] = match;\n return ChannelsReusable.set({\n h: HSL._hue2deg(h),\n s: _.channel.clamp.s(parseFloat(s)),\n l: _.channel.clamp.l(parseFloat(l)),\n a: a ? _.channel.clamp.a(isAlphaPercentage ? parseFloat(a) / 100 : parseFloat(a)) : 1\n }, color);\n },\n stringify: (channels) => {\n const { h, s, l, a } = channels;\n if (a < 1) { // HSLA\n return `hsla(${_.lang.round(h)}, ${_.lang.round(s)}%, ${_.lang.round(l)}%, ${a})`;\n }\n else { // HSL\n return `hsl(${_.lang.round(h)}, ${_.lang.round(s)}%, ${_.lang.round(l)}%)`;\n }\n }\n};\n/* EXPORT */\nexport default HSL;\n", "/* IMPORT */\nimport Hex from './hex.js';\n/* MAIN */\nconst Keyword = {\n /* VARIABLES */\n colors: {\n aliceblue: '#f0f8ff',\n antiquewhite: '#faebd7',\n aqua: '#00ffff',\n aquamarine: '#7fffd4',\n azure: '#f0ffff',\n beige: '#f5f5dc',\n bisque: '#ffe4c4',\n black: '#000000',\n blanchedalmond: '#ffebcd',\n blue: '#0000ff',\n blueviolet: '#8a2be2',\n brown: '#a52a2a',\n burlywood: '#deb887',\n cadetblue: '#5f9ea0',\n chartreuse: '#7fff00',\n chocolate: '#d2691e',\n coral: '#ff7f50',\n cornflowerblue: '#6495ed',\n cornsilk: '#fff8dc',\n crimson: '#dc143c',\n cyanaqua: '#00ffff',\n darkblue: '#00008b',\n darkcyan: '#008b8b',\n darkgoldenrod: '#b8860b',\n darkgray: '#a9a9a9',\n darkgreen: '#006400',\n darkgrey: '#a9a9a9',\n darkkhaki: '#bdb76b',\n darkmagenta: '#8b008b',\n darkolivegreen: '#556b2f',\n darkorange: '#ff8c00',\n darkorchid: '#9932cc',\n darkred: '#8b0000',\n darksalmon: '#e9967a',\n darkseagreen: '#8fbc8f',\n darkslateblue: '#483d8b',\n darkslategray: '#2f4f4f',\n darkslategrey: '#2f4f4f',\n darkturquoise: '#00ced1',\n darkviolet: '#9400d3',\n deeppink: '#ff1493',\n deepskyblue: '#00bfff',\n dimgray: '#696969',\n dimgrey: '#696969',\n dodgerblue: '#1e90ff',\n firebrick: '#b22222',\n floralwhite: '#fffaf0',\n forestgreen: '#228b22',\n fuchsia: '#ff00ff',\n gainsboro: '#dcdcdc',\n ghostwhite: '#f8f8ff',\n gold: '#ffd700',\n goldenrod: '#daa520',\n gray: '#808080',\n green: '#008000',\n greenyellow: '#adff2f',\n grey: '#808080',\n honeydew: '#f0fff0',\n hotpink: '#ff69b4',\n indianred: '#cd5c5c',\n indigo: '#4b0082',\n ivory: '#fffff0',\n khaki: '#f0e68c',\n lavender: '#e6e6fa',\n lavenderblush: '#fff0f5',\n lawngreen: '#7cfc00',\n lemonchiffon: '#fffacd',\n lightblue: '#add8e6',\n lightcoral: '#f08080',\n lightcyan: '#e0ffff',\n lightgoldenrodyellow: '#fafad2',\n lightgray: '#d3d3d3',\n lightgreen: '#90ee90',\n lightgrey: '#d3d3d3',\n lightpink: '#ffb6c1',\n lightsalmon: '#ffa07a',\n lightseagreen: '#20b2aa',\n lightskyblue: '#87cefa',\n lightslategray: '#778899',\n lightslategrey: '#778899',\n lightsteelblue: '#b0c4de',\n lightyellow: '#ffffe0',\n lime: '#00ff00',\n limegreen: '#32cd32',\n linen: '#faf0e6',\n magenta: '#ff00ff',\n maroon: '#800000',\n mediumaquamarine: '#66cdaa',\n mediumblue: '#0000cd',\n mediumorchid: '#ba55d3',\n mediumpurple: '#9370db',\n mediumseagreen: '#3cb371',\n mediumslateblue: '#7b68ee',\n mediumspringgreen: '#00fa9a',\n mediumturquoise: '#48d1cc',\n mediumvioletred: '#c71585',\n midnightblue: '#191970',\n mintcream: '#f5fffa',\n mistyrose: '#ffe4e1',\n moccasin: '#ffe4b5',\n navajowhite: '#ffdead',\n navy: '#000080',\n oldlace: '#fdf5e6',\n olive: '#808000',\n olivedrab: '#6b8e23',\n orange: '#ffa500',\n orangered: '#ff4500',\n orchid: '#da70d6',\n palegoldenrod: '#eee8aa',\n palegreen: '#98fb98',\n paleturquoise: '#afeeee',\n palevioletred: '#db7093',\n papayawhip: '#ffefd5',\n peachpuff: '#ffdab9',\n peru: '#cd853f',\n pink: '#ffc0cb',\n plum: '#dda0dd',\n powderblue: '#b0e0e6',\n purple: '#800080',\n rebeccapurple: '#663399',\n red: '#ff0000',\n rosybrown: '#bc8f8f',\n royalblue: '#4169e1',\n saddlebrown: '#8b4513',\n salmon: '#fa8072',\n sandybrown: '#f4a460',\n seagreen: '#2e8b57',\n seashell: '#fff5ee',\n sienna: '#a0522d',\n silver: '#c0c0c0',\n skyblue: '#87ceeb',\n slateblue: '#6a5acd',\n slategray: '#708090',\n slategrey: '#708090',\n snow: '#fffafa',\n springgreen: '#00ff7f',\n tan: '#d2b48c',\n teal: '#008080',\n thistle: '#d8bfd8',\n transparent: '#00000000',\n turquoise: '#40e0d0',\n violet: '#ee82ee',\n wheat: '#f5deb3',\n white: '#ffffff',\n whitesmoke: '#f5f5f5',\n yellow: '#ffff00',\n yellowgreen: '#9acd32'\n },\n /* API */\n parse: (color) => {\n color = color.toLowerCase();\n const hex = Keyword.colors[color];\n if (!hex)\n return;\n return Hex.parse(hex);\n },\n stringify: (channels) => {\n const hex = Hex.stringify(channels);\n for (const name in Keyword.colors) {\n if (Keyword.colors[name] === hex)\n return name;\n }\n return;\n }\n};\n/* EXPORT */\nexport default Keyword;\n", "/* IMPORT */\nimport _ from '../utils/index.js';\nimport ChannelsReusable from '../channels/reusable.js';\n/* MAIN */\nconst RGB = {\n /* VARIABLES */\n 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,\n /* API */\n parse: (color) => {\n const charCode = color.charCodeAt(0);\n if (charCode !== 114 && charCode !== 82)\n return; // 'r'/'R'\n const match = color.match(RGB.re);\n if (!match)\n return;\n const [, r, isRedPercentage, g, isGreenPercentage, b, isBluePercentage, a, isAlphaPercentage] = match;\n return ChannelsReusable.set({\n r: _.channel.clamp.r(isRedPercentage ? parseFloat(r) * 2.55 : parseFloat(r)),\n g: _.channel.clamp.g(isGreenPercentage ? parseFloat(g) * 2.55 : parseFloat(g)),\n b: _.channel.clamp.b(isBluePercentage ? parseFloat(b) * 2.55 : parseFloat(b)),\n a: a ? _.channel.clamp.a(isAlphaPercentage ? parseFloat(a) / 100 : parseFloat(a)) : 1\n }, color);\n },\n stringify: (channels) => {\n const { r, g, b, a } = channels;\n if (a < 1) { // RGBA\n return `rgba(${_.lang.round(r)}, ${_.lang.round(g)}, ${_.lang.round(b)}, ${_.lang.round(a)})`;\n }\n else { // RGB\n return `rgb(${_.lang.round(r)}, ${_.lang.round(g)}, ${_.lang.round(b)})`;\n }\n }\n};\n/* EXPORT */\nexport default RGB;\n", "/* IMPORT */\nimport _ from '../utils/index.js';\nimport Hex from './hex.js';\nimport HSL from './hsl.js';\nimport Keyword from './keyword.js';\nimport RGB from './rgb.js';\nimport { TYPE } from '../constants.js';\n/* MAIN */\nconst Color = {\n /* VARIABLES */\n format: {\n keyword: Keyword,\n hex: Hex,\n rgb: RGB,\n rgba: RGB,\n hsl: HSL,\n hsla: HSL\n },\n /* API */\n parse: (color) => {\n if (typeof color !== 'string')\n return color;\n const channels = Hex.parse(color) || RGB.parse(color) || HSL.parse(color) || Keyword.parse(color); // Color providers ordered with performance in mind\n if (channels)\n return channels;\n throw new Error(`Unsupported color format: \"${color}\"`);\n },\n stringify: (channels) => {\n // SASS returns a keyword if possible, but we avoid doing that as it's slower and doesn't really add any value\n if (!channels.changed && channels.color)\n return channels.color;\n if (channels.type.is(TYPE.HSL) || channels.data.r === undefined) {\n return HSL.stringify(channels);\n }\n else if (channels.a < 1 || !Number.isInteger(channels.r) || !Number.isInteger(channels.g) || !Number.isInteger(channels.b)) {\n return RGB.stringify(channels);\n }\n else {\n return Hex.stringify(channels);\n }\n }\n};\n/* EXPORT */\nexport default Color;\n", "/* IMPORT */\nimport _ from '../utils/index.js';\nimport Color from '../color/index.js';\n/* MAIN */\nconst change = (color, channels) => {\n const ch = Color.parse(color);\n for (const c in channels) {\n ch[c] = _.channel.clamp[c](channels[c]);\n }\n return Color.stringify(ch);\n};\n/* EXPORT */\nexport default change;\n", "/* IMPORT */\nimport _ from '../utils/index.js';\nimport ChannelsReusable from '../channels/reusable.js';\nimport Color from '../color/index.js';\nimport change from './change.js';\n/* MAIN */\nconst rgba = (r, g, b = 0, a = 1) => {\n if (typeof r !== 'number')\n return change(r, { a: g });\n const channels = ChannelsReusable.set({\n r: _.channel.clamp.r(r),\n g: _.channel.clamp.g(g),\n b: _.channel.clamp.b(b),\n a: _.channel.clamp.a(a)\n });\n return Color.stringify(channels);\n};\n/* EXPORT */\nexport default rgba;\n", "/* IMPORT */\nimport _ from '../utils/index.js';\nimport Color from '../color/index.js';\n/* MAIN */\nconst channel = (color, channel) => {\n return _.lang.round(Color.parse(color)[channel]);\n};\n/* EXPORT */\nexport default channel;\n", "/* IMPORT */\nimport _ from '../utils/index.js';\nimport Color from '../color/index.js';\n/* MAIN */\n//SOURCE: https://planetcalc.com/7779\nconst luminance = (color) => {\n const { r, g, b } = Color.parse(color);\n const luminance = .2126 * _.channel.toLinear(r) + .7152 * _.channel.toLinear(g) + .0722 * _.channel.toLinear(b);\n return _.lang.round(luminance);\n};\n/* EXPORT */\nexport default luminance;\n", "/* IMPORT */\nimport luminance from './luminance.js';\n/* MAIN */\nconst isLight = (color) => {\n return luminance(color) >= .5;\n};\n/* EXPORT */\nexport default isLight;\n", "/* IMPORT */\nimport isLight from './is_light.js';\n/* MAIN */\nconst isDark = (color) => {\n return !isLight(color);\n};\n/* EXPORT */\nexport default isDark;\n", "/* IMPORT */\nimport _ from '../utils/index.js';\nimport Color from '../color/index.js';\n/* MAIN */\nconst adjustChannel = (color, channel, amount) => {\n const channels = Color.parse(color);\n const amountCurrent = channels[channel];\n const amountNext = _.channel.clamp[channel](amountCurrent + amount);\n if (amountCurrent !== amountNext)\n channels[channel] = amountNext;\n return Color.stringify(channels);\n};\n/* EXPORT */\nexport default adjustChannel;\n", "/* IMPORT */\nimport adjustChannel from './adjust_channel.js';\n/* MAIN */\nconst lighten = (color, amount) => {\n return adjustChannel(color, 'l', amount);\n};\n/* EXPORT */\nexport default lighten;\n", "/* IMPORT */\nimport adjustChannel from './adjust_channel.js';\n/* MAIN */\nconst darken = (color, amount) => {\n return adjustChannel(color, 'l', -amount);\n};\n/* EXPORT */\nexport default darken;\n", "/* IMPORT */\nimport Color from '../color/index.js';\nimport change from './change.js';\n/* MAIN */\nconst adjust = (color, channels) => {\n const ch = Color.parse(color);\n const changes = {};\n for (const c in channels) {\n if (!channels[c])\n continue;\n changes[c] = ch[c] + channels[c];\n }\n return change(color, changes);\n};\n/* EXPORT */\nexport default adjust;\n", "/* IMPORT */\nimport Color from '../color/index.js';\nimport rgba from './rgba.js';\n/* MAIN */\n//SOURCE: https://github.com/sass/dart-sass/blob/7457d2e9e7e623d9844ffd037a070cf32d39c348/lib/src/functions/color.dart#L718-L756\nconst mix = (color1, color2, weight = 50) => {\n const { r: r1, g: g1, b: b1, a: a1 } = Color.parse(color1);\n const { r: r2, g: g2, b: b2, a: a2 } = Color.parse(color2);\n const weightScale = weight / 100;\n const weightNormalized = (weightScale * 2) - 1;\n const alphaDelta = a1 - a2;\n const weight1combined = ((weightNormalized * alphaDelta) === -1) ? weightNormalized : (weightNormalized + alphaDelta) / (1 + weightNormalized * alphaDelta);\n const weight1 = (weight1combined + 1) / 2;\n const weight2 = 1 - weight1;\n const r = (r1 * weight1) + (r2 * weight2);\n const g = (g1 * weight1) + (g2 * weight2);\n const b = (b1 * weight1) + (b2 * weight2);\n const a = (a1 * weightScale) + (a2 * (1 - weightScale));\n return rgba(r, g, b, a);\n};\n/* EXPORT */\nexport default mix;\n", "/* IMPORT */\nimport Color from '../color/index.js';\nimport mix from './mix.js';\n/* MAIN */\nconst invert = (color, weight = 100) => {\n const inverse = Color.parse(color);\n inverse.r = 255 - inverse.r;\n inverse.g = 255 - inverse.g;\n inverse.b = 255 - inverse.b;\n return mix(inverse, color, weight);\n};\n/* EXPORT */\nexport default invert;\n", "/*! @license DOMPurify 3.2.4 | (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.4/LICENSE */\n\nconst {\n entries,\n setPrototypeOf,\n isFrozen,\n getPrototypeOf,\n getOwnPropertyDescriptor\n} = Object;\nlet {\n freeze,\n seal,\n create\n} = Object; // eslint-disable-line import/no-mutable-exports\nlet {\n apply,\n construct\n} = typeof Reflect !== 'undefined' && Reflect;\nif (!freeze) {\n freeze = function freeze(x) {\n return x;\n };\n}\nif (!seal) {\n seal = function seal(x) {\n return x;\n };\n}\nif (!apply) {\n apply = function apply(fun, thisValue, args) {\n return fun.apply(thisValue, args);\n };\n}\nif (!construct) {\n construct = function construct(Func, args) {\n return new Func(...args);\n };\n}\nconst arrayForEach = unapply(Array.prototype.forEach);\nconst arrayLastIndexOf = unapply(Array.prototype.lastIndexOf);\nconst arrayPop = unapply(Array.prototype.pop);\nconst arrayPush = unapply(Array.prototype.push);\nconst arraySplice = unapply(Array.prototype.splice);\nconst stringToLowerCase = unapply(String.prototype.toLowerCase);\nconst stringToString = unapply(String.prototype.toString);\nconst stringMatch = unapply(String.prototype.match);\nconst stringReplace = unapply(String.prototype.replace);\nconst stringIndexOf = unapply(String.prototype.indexOf);\nconst stringTrim = unapply(String.prototype.trim);\nconst objectHasOwnProperty = unapply(Object.prototype.hasOwnProperty);\nconst regExpTest = unapply(RegExp.prototype.test);\nconst typeErrorCreate = unconstruct(TypeError);\n/**\n * Creates a new function that calls the given function with a specified thisArg and arguments.\n *\n * @param func - The function to be wrapped and called.\n * @returns A new function that calls the given function with a specified thisArg and arguments.\n */\nfunction unapply(func) {\n return function (thisArg) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n return apply(func, thisArg, args);\n };\n}\n/**\n * Creates a new function that constructs an instance of the given constructor function with the provided arguments.\n *\n * @param func - The constructor function to be wrapped and called.\n * @returns A new function that constructs an instance of the given constructor function with the provided arguments.\n */\nfunction unconstruct(func) {\n return function () {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n return construct(func, args);\n };\n}\n/**\n * Add properties to a lookup table\n *\n * @param set - The set to which elements will be added.\n * @param array - The array containing elements to be added to the set.\n * @param transformCaseFunc - An optional function to transform the case of each element before adding to the set.\n * @returns The modified set with added elements.\n */\nfunction addToSet(set, array) {\n let transformCaseFunc = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : stringToLowerCase;\n if (setPrototypeOf) {\n // Make 'in' and truthy checks like Boolean(set.constructor)\n // independent of any properties defined on Object.prototype.\n // Prevent prototype setters from intercepting set as a this value.\n setPrototypeOf(set, null);\n }\n let l = array.length;\n while (l--) {\n let element = array[l];\n if (typeof element === 'string') {\n const lcElement = transformCaseFunc(element);\n if (lcElement !== element) {\n // Config presets (e.g. tags.js, attrs.js) are immutable.\n if (!isFrozen(array)) {\n array[l] = lcElement;\n }\n element = lcElement;\n }\n }\n set[element] = true;\n }\n return set;\n}\n/**\n * Clean up an array to harden against CSPP\n *\n * @param array - The array to be cleaned.\n * @returns The cleaned version of the array\n */\nfunction cleanArray(array) {\n for (let index = 0; index < array.length; index++) {\n const isPropertyExist = objectHasOwnProperty(array, index);\n if (!isPropertyExist) {\n array[index] = null;\n }\n }\n return array;\n}\n/**\n * Shallow clone an object\n *\n * @param object - The object to be cloned.\n * @returns A new object that copies the original.\n */\nfunction clone(object) {\n const newObject = create(null);\n for (const [property, value] of entries(object)) {\n const isPropertyExist = objectHasOwnProperty(object, property);\n if (isPropertyExist) {\n if (Array.isArray(value)) {\n newObject[property] = cleanArray(value);\n } else if (value && typeof value === 'object' && value.constructor === Object) {\n newObject[property] = clone(value);\n } else {\n newObject[property] = value;\n }\n }\n }\n return newObject;\n}\n/**\n * This method automatically checks if the prop is function or getter and behaves accordingly.\n *\n * @param object - The object to look up the getter function in its prototype chain.\n * @param prop - The property name for which to find the getter function.\n * @returns The getter function found in the prototype chain or a fallback function.\n */\nfunction lookupGetter(object, prop) {\n while (object !== null) {\n const desc = getOwnPropertyDescriptor(object, prop);\n if (desc) {\n if (desc.get) {\n return unapply(desc.get);\n }\n if (typeof desc.value === 'function') {\n return unapply(desc.value);\n }\n }\n object = getPrototypeOf(object);\n }\n function fallbackValue() {\n return null;\n }\n return fallbackValue;\n}\n\nconst html$1 = freeze(['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']);\nconst svg$1 = freeze(['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']);\nconst svgFilters = freeze(['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']);\n// List of SVG elements that are disallowed by default.\n// We still need to know them so that we can do namespace\n// checks properly in case one wants to add them to\n// allow-list.\nconst svgDisallowed = freeze(['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']);\nconst mathMl$1 = freeze(['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']);\n// Similarly to SVG, we want to know all MathML elements,\n// even those that we disallow by default.\nconst mathMlDisallowed = freeze(['maction', 'maligngroup', 'malignmark', 'mlongdiv', 'mscarries', 'mscarry', 'msgroup', 'mstack', 'msline', 'msrow', 'semantics', 'annotation', 'annotation-xml', 'mprescripts', 'none']);\nconst text = freeze(['#text']);\n\nconst html = freeze(['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']);\nconst svg = freeze(['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']);\nconst mathMl = freeze(['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']);\nconst xml = freeze(['xlink:href', 'xml:id', 'xlink:title', 'xml:space', 'xmlns:xlink']);\n\n// eslint-disable-next-line unicorn/better-regex\nconst MUSTACHE_EXPR = seal(/\\{\\{[\\w\\W]*|[\\w\\W]*\\}\\}/gm); // Specify template detection regex for SAFE_FOR_TEMPLATES mode\nconst ERB_EXPR = seal(/<%[\\w\\W]*|[\\w\\W]*%>/gm);\nconst TMPLIT_EXPR = seal(/\\$\\{[\\w\\W]*/gm); // eslint-disable-line unicorn/better-regex\nconst DATA_ATTR = seal(/^data-[\\-\\w.\\u00B7-\\uFFFF]+$/); // eslint-disable-line no-useless-escape\nconst ARIA_ATTR = seal(/^aria-[\\-\\w]+$/); // eslint-disable-line no-useless-escape\nconst IS_ALLOWED_URI = seal(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\\-]+(?:[^a-z+.\\-:]|$))/i // eslint-disable-line no-useless-escape\n);\nconst IS_SCRIPT_OR_DATA = seal(/^(?:\\w+script|data):/i);\nconst ATTR_WHITESPACE = seal(/[\\u0000-\\u0020\\u00A0\\u1680\\u180E\\u2000-\\u2029\\u205F\\u3000]/g // eslint-disable-line no-control-regex\n);\nconst DOCTYPE_NAME = seal(/^html$/i);\nconst CUSTOM_ELEMENT = seal(/^[a-z][.\\w]*(-[.\\w]+)+$/i);\n\nvar EXPRESSIONS = /*#__PURE__*/Object.freeze({\n __proto__: null,\n ARIA_ATTR: ARIA_ATTR,\n ATTR_WHITESPACE: ATTR_WHITESPACE,\n CUSTOM_ELEMENT: CUSTOM_ELEMENT,\n DATA_ATTR: DATA_ATTR,\n DOCTYPE_NAME: DOCTYPE_NAME,\n ERB_EXPR: ERB_EXPR,\n IS_ALLOWED_URI: IS_ALLOWED_URI,\n IS_SCRIPT_OR_DATA: IS_SCRIPT_OR_DATA,\n MUSTACHE_EXPR: MUSTACHE_EXPR,\n TMPLIT_EXPR: TMPLIT_EXPR\n});\n\n/* eslint-disable @typescript-eslint/indent */\n// https://developer.mozilla.org/en-US/docs/Web/API/Node/nodeType\nconst NODE_TYPE = {\n element: 1,\n attribute: 2,\n text: 3,\n cdataSection: 4,\n entityReference: 5,\n // Deprecated\n entityNode: 6,\n // Deprecated\n progressingInstruction: 7,\n comment: 8,\n document: 9,\n documentType: 10,\n documentFragment: 11,\n notation: 12 // Deprecated\n};\nconst getGlobal = function getGlobal() {\n return typeof window === 'undefined' ? null : window;\n};\n/**\n * Creates a no-op policy for internal use only.\n * Don't export this function outside this module!\n * @param trustedTypes The policy factory.\n * @param purifyHostElement The Script element used to load DOMPurify (to determine policy name suffix).\n * @return The policy created (or null, if Trusted Types\n * are not supported or creating the policy failed).\n */\nconst _createTrustedTypesPolicy = function _createTrustedTypesPolicy(trustedTypes, purifyHostElement) {\n if (typeof trustedTypes !== 'object' || typeof trustedTypes.createPolicy !== 'function') {\n return null;\n }\n // Allow the callers to control the unique policy name\n // by adding a data-tt-policy-suffix to the script element with the DOMPurify.\n // Policy creation with duplicate names throws in Trusted Types.\n let suffix = null;\n const ATTR_NAME = 'data-tt-policy-suffix';\n if (purifyHostElement && purifyHostElement.hasAttribute(ATTR_NAME)) {\n suffix = purifyHostElement.getAttribute(ATTR_NAME);\n }\n const policyName = 'dompurify' + (suffix ? '#' + suffix : '');\n try {\n return trustedTypes.createPolicy(policyName, {\n createHTML(html) {\n return html;\n },\n createScriptURL(scriptUrl) {\n return scriptUrl;\n }\n });\n } catch (_) {\n // Policy creation failed (most likely another DOMPurify script has\n // already run). Skip creating the policy, as this will only cause errors\n // if TT are enforced.\n console.warn('TrustedTypes policy ' + policyName + ' could not be created.');\n return null;\n }\n};\nconst _createHooksMap = function _createHooksMap() {\n return {\n afterSanitizeAttributes: [],\n afterSanitizeElements: [],\n afterSanitizeShadowDOM: [],\n beforeSanitizeAttributes: [],\n beforeSanitizeElements: [],\n beforeSanitizeShadowDOM: [],\n uponSanitizeAttribute: [],\n uponSanitizeElement: [],\n uponSanitizeShadowNode: []\n };\n};\nfunction createDOMPurify() {\n let window = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getGlobal();\n const DOMPurify = root => createDOMPurify(root);\n DOMPurify.version = '3.2.4';\n DOMPurify.removed = [];\n if (!window || !window.document || window.document.nodeType !== NODE_TYPE.document || !window.Element) {\n // Not running in a browser, provide a factory function\n // so that you can pass your own Window\n DOMPurify.isSupported = false;\n return DOMPurify;\n }\n let {\n document\n } = window;\n const originalDocument = document;\n const currentScript = originalDocument.currentScript;\n const {\n DocumentFragment,\n HTMLTemplateElement,\n Node,\n Element,\n NodeFilter,\n NamedNodeMap = window.NamedNodeMap || window.MozNamedAttrMap,\n HTMLFormElement,\n DOMParser,\n trustedTypes\n } = window;\n const ElementPrototype = Element.prototype;\n const cloneNode = lookupGetter(ElementPrototype, 'cloneNode');\n const remove = lookupGetter(ElementPrototype, 'remove');\n const getNextSibling = lookupGetter(ElementPrototype, 'nextSibling');\n const getChildNodes = lookupGetter(ElementPrototype, 'childNodes');\n const getParentNode = lookupGetter(ElementPrototype, 'parentNode');\n // As per issue #47, the web-components registry is inherited by a\n // new document created via createHTMLDocument. As per the spec\n // (http://w3c.github.io/webcomponents/spec/custom/#creating-and-passing-registries)\n // a new empty registry is used when creating a template contents owner\n // document, so we use that as our parent document to ensure nothing\n // is inherited.\n if (typeof HTMLTemplateElement === 'function') {\n const template = document.createElement('template');\n if (template.content && template.content.ownerDocument) {\n document = template.content.ownerDocument;\n }\n }\n let trustedTypesPolicy;\n let emptyHTML = '';\n const {\n implementation,\n createNodeIterator,\n createDocumentFragment,\n getElementsByTagName\n } = document;\n const {\n importNode\n } = originalDocument;\n let hooks = _createHooksMap();\n /**\n * Expose whether this browser supports running the full DOMPurify.\n */\n DOMPurify.isSupported = typeof entries === 'function' && typeof getParentNode === 'function' && implementation && implementation.createHTMLDocument !== undefined;\n const {\n MUSTACHE_EXPR,\n ERB_EXPR,\n TMPLIT_EXPR,\n DATA_ATTR,\n ARIA_ATTR,\n IS_SCRIPT_OR_DATA,\n ATTR_WHITESPACE,\n CUSTOM_ELEMENT\n } = EXPRESSIONS;\n let {\n IS_ALLOWED_URI: IS_ALLOWED_URI$1\n } = EXPRESSIONS;\n /**\n * We consider the elements and attributes below to be safe. Ideally\n * don't add any new ones but feel free to remove unwanted ones.\n */\n /* allowed element names */\n let ALLOWED_TAGS = null;\n const DEFAULT_ALLOWED_TAGS = addToSet({}, [...html$1, ...svg$1, ...svgFilters, ...mathMl$1, ...text]);\n /* Allowed attribute names */\n let ALLOWED_ATTR = null;\n const DEFAULT_ALLOWED_ATTR = addToSet({}, [...html, ...svg, ...mathMl, ...xml]);\n /*\n * Configure how DOMPurify should handle custom elements and their attributes as well as customized built-in elements.\n * @property {RegExp|Function|null} tagNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any custom elements)\n * @property {RegExp|Function|null} attributeNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any attributes not on the allow list)\n * @property {boolean} allowCustomizedBuiltInElements allow custom elements derived from built-ins if they pass CUSTOM_ELEMENT_HANDLING.tagNameCheck. Default: `false`.\n */\n let CUSTOM_ELEMENT_HANDLING = Object.seal(create(null, {\n tagNameCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null\n },\n attributeNameCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null\n },\n allowCustomizedBuiltInElements: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: false\n }\n }));\n /* Explicitly forbidden tags (overrides ALLOWED_TAGS/ADD_TAGS) */\n let FORBID_TAGS = null;\n /* Explicitly forbidden attributes (overrides ALLOWED_ATTR/ADD_ATTR) */\n let FORBID_ATTR = null;\n /* Decide if ARIA attributes are okay */\n let ALLOW_ARIA_ATTR = true;\n /* Decide if custom data attributes are okay */\n let ALLOW_DATA_ATTR = true;\n /* Decide if unknown protocols are okay */\n let ALLOW_UNKNOWN_PROTOCOLS = false;\n /* Decide if self-closing tags in attributes are allowed.\n * Usually removed due to a mXSS issue in jQuery 3.0 */\n let ALLOW_SELF_CLOSE_IN_ATTR = true;\n /* Output should be safe for common template engines.\n * This means, DOMPurify removes data attributes, mustaches and ERB\n */\n let SAFE_FOR_TEMPLATES = false;\n /* Output should be safe even for XML used within HTML and alike.\n * This means, DOMPurify removes comments when containing risky content.\n */\n let SAFE_FOR_XML = true;\n /* Decide if document with ... should be returned */\n let WHOLE_DOCUMENT = false;\n /* Track whether config is already set on this instance of DOMPurify. */\n let SET_CONFIG = false;\n /* Decide if all elements (e.g. style, script) must be children of\n * document.body. By default, browsers might move them to document.head */\n let FORCE_BODY = false;\n /* Decide if a DOM `HTMLBodyElement` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported).\n * If `WHOLE_DOCUMENT` is enabled a `HTMLHtmlElement` will be returned instead\n */\n let RETURN_DOM = false;\n /* Decide if a DOM `DocumentFragment` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported) */\n let RETURN_DOM_FRAGMENT = false;\n /* Try to return a Trusted Type object instead of a string, return a string in\n * case Trusted Types are not supported */\n let RETURN_TRUSTED_TYPE = false;\n /* Output should be free from DOM clobbering attacks?\n * This sanitizes markups named with colliding, clobberable built-in DOM APIs.\n */\n let SANITIZE_DOM = true;\n /* Achieve full DOM Clobbering protection by isolating the namespace of named\n * properties and JS variables, mitigating attacks that abuse the HTML/DOM spec rules.\n *\n * HTML/DOM spec rules that enable DOM Clobbering:\n * - Named Access on Window (\u00A77.3.3)\n * - DOM Tree Accessors (\u00A73.1.5)\n * - Form Element Parent-Child Relations (\u00A74.10.3)\n * - Iframe srcdoc / Nested WindowProxies (\u00A74.8.5)\n * - HTMLCollection (\u00A74.2.10.2)\n *\n * Namespace isolation is implemented by prefixing `id` and `name` attributes\n * with a constant string, i.e., `user-content-`\n */\n let SANITIZE_NAMED_PROPS = false;\n const SANITIZE_NAMED_PROPS_PREFIX = 'user-content-';\n /* Keep element content when removing element? */\n let KEEP_CONTENT = true;\n /* If a `Node` is passed to sanitize(), then performs sanitization in-place instead\n * of importing it into a new Document and returning a sanitized copy */\n let IN_PLACE = false;\n /* Allow usage of profiles like html, svg and mathMl */\n let USE_PROFILES = {};\n /* Tags to ignore content of when KEEP_CONTENT is true */\n let FORBID_CONTENTS = null;\n const DEFAULT_FORBID_CONTENTS = addToSet({}, ['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']);\n /* Tags that are safe for data: URIs */\n let DATA_URI_TAGS = null;\n const DEFAULT_DATA_URI_TAGS = addToSet({}, ['audio', 'video', 'img', 'source', 'image', 'track']);\n /* Attributes safe for values like \"javascript:\" */\n let URI_SAFE_ATTRIBUTES = null;\n const DEFAULT_URI_SAFE_ATTRIBUTES = addToSet({}, ['alt', 'class', 'for', 'id', 'label', 'name', 'pattern', 'placeholder', 'role', 'summary', 'title', 'value', 'style', 'xmlns']);\n const MATHML_NAMESPACE = 'http://www.w3.org/1998/Math/MathML';\n const SVG_NAMESPACE = 'http://www.w3.org/2000/svg';\n const HTML_NAMESPACE = 'http://www.w3.org/1999/xhtml';\n /* Document namespace */\n let NAMESPACE = HTML_NAMESPACE;\n let IS_EMPTY_INPUT = false;\n /* Allowed XHTML+XML namespaces */\n let ALLOWED_NAMESPACES = null;\n const DEFAULT_ALLOWED_NAMESPACES = addToSet({}, [MATHML_NAMESPACE, SVG_NAMESPACE, HTML_NAMESPACE], stringToString);\n let MATHML_TEXT_INTEGRATION_POINTS = addToSet({}, ['mi', 'mo', 'mn', 'ms', 'mtext']);\n let HTML_INTEGRATION_POINTS = addToSet({}, ['annotation-xml']);\n // Certain elements are allowed in both SVG and HTML\n // namespace. We need to specify them explicitly\n // so that they don't get erroneously deleted from\n // HTML namespace.\n const COMMON_SVG_AND_HTML_ELEMENTS = addToSet({}, ['title', 'style', 'font', 'a', 'script']);\n /* Parsing of strict XHTML documents */\n let PARSER_MEDIA_TYPE = null;\n const SUPPORTED_PARSER_MEDIA_TYPES = ['application/xhtml+xml', 'text/html'];\n const DEFAULT_PARSER_MEDIA_TYPE = 'text/html';\n let transformCaseFunc = null;\n /* Keep a reference to config to pass to hooks */\n let CONFIG = null;\n /* Ideally, do not touch anything below this line */\n /* ______________________________________________ */\n const formElement = document.createElement('form');\n const isRegexOrFunction = function isRegexOrFunction(testValue) {\n return testValue instanceof RegExp || testValue instanceof Function;\n };\n /**\n * _parseConfig\n *\n * @param cfg optional config literal\n */\n // eslint-disable-next-line complexity\n const _parseConfig = function _parseConfig() {\n let cfg = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n if (CONFIG && CONFIG === cfg) {\n return;\n }\n /* Shield configuration object from tampering */\n if (!cfg || typeof cfg !== 'object') {\n cfg = {};\n }\n /* Shield configuration object from prototype pollution */\n cfg = clone(cfg);\n PARSER_MEDIA_TYPE =\n // eslint-disable-next-line unicorn/prefer-includes\n SUPPORTED_PARSER_MEDIA_TYPES.indexOf(cfg.PARSER_MEDIA_TYPE) === -1 ? DEFAULT_PARSER_MEDIA_TYPE : cfg.PARSER_MEDIA_TYPE;\n // HTML tags and attributes are not case-sensitive, converting to lowercase. Keeping XHTML as is.\n transformCaseFunc = PARSER_MEDIA_TYPE === 'application/xhtml+xml' ? stringToString : stringToLowerCase;\n /* Set configuration parameters */\n ALLOWED_TAGS = objectHasOwnProperty(cfg, 'ALLOWED_TAGS') ? addToSet({}, cfg.ALLOWED_TAGS, transformCaseFunc) : DEFAULT_ALLOWED_TAGS;\n ALLOWED_ATTR = objectHasOwnProperty(cfg, 'ALLOWED_ATTR') ? addToSet({}, cfg.ALLOWED_ATTR, transformCaseFunc) : DEFAULT_ALLOWED_ATTR;\n ALLOWED_NAMESPACES = objectHasOwnProperty(cfg, 'ALLOWED_NAMESPACES') ? addToSet({}, cfg.ALLOWED_NAMESPACES, stringToString) : DEFAULT_ALLOWED_NAMESPACES;\n URI_SAFE_ATTRIBUTES = objectHasOwnProperty(cfg, 'ADD_URI_SAFE_ATTR') ? addToSet(clone(DEFAULT_URI_SAFE_ATTRIBUTES), cfg.ADD_URI_SAFE_ATTR, transformCaseFunc) : DEFAULT_URI_SAFE_ATTRIBUTES;\n DATA_URI_TAGS = objectHasOwnProperty(cfg, 'ADD_DATA_URI_TAGS') ? addToSet(clone(DEFAULT_DATA_URI_TAGS), cfg.ADD_DATA_URI_TAGS, transformCaseFunc) : DEFAULT_DATA_URI_TAGS;\n FORBID_CONTENTS = objectHasOwnProperty(cfg, 'FORBID_CONTENTS') ? addToSet({}, cfg.FORBID_CONTENTS, transformCaseFunc) : DEFAULT_FORBID_CONTENTS;\n FORBID_TAGS = objectHasOwnProperty(cfg, 'FORBID_TAGS') ? addToSet({}, cfg.FORBID_TAGS, transformCaseFunc) : {};\n FORBID_ATTR = objectHasOwnProperty(cfg, 'FORBID_ATTR') ? addToSet({}, cfg.FORBID_ATTR, transformCaseFunc) : {};\n USE_PROFILES = objectHasOwnProperty(cfg, 'USE_PROFILES') ? cfg.USE_PROFILES : false;\n ALLOW_ARIA_ATTR = cfg.ALLOW_ARIA_ATTR !== false; // Default true\n ALLOW_DATA_ATTR = cfg.ALLOW_DATA_ATTR !== false; // Default true\n ALLOW_UNKNOWN_PROTOCOLS = cfg.ALLOW_UNKNOWN_PROTOCOLS || false; // Default false\n ALLOW_SELF_CLOSE_IN_ATTR = cfg.ALLOW_SELF_CLOSE_IN_ATTR !== false; // Default true\n SAFE_FOR_TEMPLATES = cfg.SAFE_FOR_TEMPLATES || false; // Default false\n SAFE_FOR_XML = cfg.SAFE_FOR_XML !== false; // Default true\n WHOLE_DOCUMENT = cfg.WHOLE_DOCUMENT || false; // Default false\n RETURN_DOM = cfg.RETURN_DOM || false; // Default false\n RETURN_DOM_FRAGMENT = cfg.RETURN_DOM_FRAGMENT || false; // Default false\n RETURN_TRUSTED_TYPE = cfg.RETURN_TRUSTED_TYPE || false; // Default false\n FORCE_BODY = cfg.FORCE_BODY || false; // Default false\n SANITIZE_DOM = cfg.SANITIZE_DOM !== false; // Default true\n SANITIZE_NAMED_PROPS = cfg.SANITIZE_NAMED_PROPS || false; // Default false\n KEEP_CONTENT = cfg.KEEP_CONTENT !== false; // Default true\n IN_PLACE = cfg.IN_PLACE || false; // Default false\n IS_ALLOWED_URI$1 = cfg.ALLOWED_URI_REGEXP || IS_ALLOWED_URI;\n NAMESPACE = cfg.NAMESPACE || HTML_NAMESPACE;\n MATHML_TEXT_INTEGRATION_POINTS = cfg.MATHML_TEXT_INTEGRATION_POINTS || MATHML_TEXT_INTEGRATION_POINTS;\n HTML_INTEGRATION_POINTS = cfg.HTML_INTEGRATION_POINTS || HTML_INTEGRATION_POINTS;\n CUSTOM_ELEMENT_HANDLING = cfg.CUSTOM_ELEMENT_HANDLING || {};\n if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck)) {\n CUSTOM_ELEMENT_HANDLING.tagNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck;\n }\n if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)) {\n CUSTOM_ELEMENT_HANDLING.attributeNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck;\n }\n if (cfg.CUSTOM_ELEMENT_HANDLING && typeof cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements === 'boolean') {\n CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements = cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements;\n }\n if (SAFE_FOR_TEMPLATES) {\n ALLOW_DATA_ATTR = false;\n }\n if (RETURN_DOM_FRAGMENT) {\n RETURN_DOM = true;\n }\n /* Parse profile info */\n if (USE_PROFILES) {\n ALLOWED_TAGS = addToSet({}, text);\n ALLOWED_ATTR = [];\n if (USE_PROFILES.html === true) {\n addToSet(ALLOWED_TAGS, html$1);\n addToSet(ALLOWED_ATTR, html);\n }\n if (USE_PROFILES.svg === true) {\n addToSet(ALLOWED_TAGS, svg$1);\n addToSet(ALLOWED_ATTR, svg);\n addToSet(ALLOWED_ATTR, xml);\n }\n if (USE_PROFILES.svgFilters === true) {\n addToSet(ALLOWED_TAGS, svgFilters);\n addToSet(ALLOWED_ATTR, svg);\n addToSet(ALLOWED_ATTR, xml);\n }\n if (USE_PROFILES.mathMl === true) {\n addToSet(ALLOWED_TAGS, mathMl$1);\n addToSet(ALLOWED_ATTR, mathMl);\n addToSet(ALLOWED_ATTR, xml);\n }\n }\n /* Merge configuration parameters */\n if (cfg.ADD_TAGS) {\n if (ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS) {\n ALLOWED_TAGS = clone(ALLOWED_TAGS);\n }\n addToSet(ALLOWED_TAGS, cfg.ADD_TAGS, transformCaseFunc);\n }\n if (cfg.ADD_ATTR) {\n if (ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR) {\n ALLOWED_ATTR = clone(ALLOWED_ATTR);\n }\n addToSet(ALLOWED_ATTR, cfg.ADD_ATTR, transformCaseFunc);\n }\n if (cfg.ADD_URI_SAFE_ATTR) {\n addToSet(URI_SAFE_ATTRIBUTES, cfg.ADD_URI_SAFE_ATTR, transformCaseFunc);\n }\n if (cfg.FORBID_CONTENTS) {\n if (FORBID_CONTENTS === DEFAULT_FORBID_CONTENTS) {\n FORBID_CONTENTS = clone(FORBID_CONTENTS);\n }\n addToSet(FORBID_CONTENTS, cfg.FORBID_CONTENTS, transformCaseFunc);\n }\n /* Add #text in case KEEP_CONTENT is set to true */\n if (KEEP_CONTENT) {\n ALLOWED_TAGS['#text'] = true;\n }\n /* Add html, head and body to ALLOWED_TAGS in case WHOLE_DOCUMENT is true */\n if (WHOLE_DOCUMENT) {\n addToSet(ALLOWED_TAGS, ['html', 'head', 'body']);\n }\n /* Add tbody to ALLOWED_TAGS in case tables are permitted, see #286, #365 */\n if (ALLOWED_TAGS.table) {\n addToSet(ALLOWED_TAGS, ['tbody']);\n delete FORBID_TAGS.tbody;\n }\n if (cfg.TRUSTED_TYPES_POLICY) {\n if (typeof cfg.TRUSTED_TYPES_POLICY.createHTML !== 'function') {\n throw typeErrorCreate('TRUSTED_TYPES_POLICY configuration option must provide a \"createHTML\" hook.');\n }\n if (typeof cfg.TRUSTED_TYPES_POLICY.createScriptURL !== 'function') {\n throw typeErrorCreate('TRUSTED_TYPES_POLICY configuration option must provide a \"createScriptURL\" hook.');\n }\n // Overwrite existing TrustedTypes policy.\n trustedTypesPolicy = cfg.TRUSTED_TYPES_POLICY;\n // Sign local variables required by `sanitize`.\n emptyHTML = trustedTypesPolicy.createHTML('');\n } else {\n // Uninitialized policy, attempt to initialize the internal dompurify policy.\n if (trustedTypesPolicy === undefined) {\n trustedTypesPolicy = _createTrustedTypesPolicy(trustedTypes, currentScript);\n }\n // If creating the internal policy succeeded sign internal variables.\n if (trustedTypesPolicy !== null && typeof emptyHTML === 'string') {\n emptyHTML = trustedTypesPolicy.createHTML('');\n }\n }\n // Prevent further manipulation of configuration.\n // Not available in IE8, Safari 5, etc.\n if (freeze) {\n freeze(cfg);\n }\n CONFIG = cfg;\n };\n /* Keep track of all possible SVG and MathML tags\n * so that we can perform the namespace checks\n * correctly. */\n const ALL_SVG_TAGS = addToSet({}, [...svg$1, ...svgFilters, ...svgDisallowed]);\n const ALL_MATHML_TAGS = addToSet({}, [...mathMl$1, ...mathMlDisallowed]);\n /**\n * @param element a DOM element whose namespace is being checked\n * @returns Return false if the element has a\n * namespace that a spec-compliant parser would never\n * return. Return true otherwise.\n */\n const _checkValidNamespace = function _checkValidNamespace(element) {\n let parent = getParentNode(element);\n // In JSDOM, if we're inside shadow DOM, then parentNode\n // can be null. We just simulate parent in this case.\n if (!parent || !parent.tagName) {\n parent = {\n namespaceURI: NAMESPACE,\n tagName: 'template'\n };\n }\n const tagName = stringToLowerCase(element.tagName);\n const parentTagName = stringToLowerCase(parent.tagName);\n if (!ALLOWED_NAMESPACES[element.namespaceURI]) {\n return false;\n }\n if (element.namespaceURI === SVG_NAMESPACE) {\n // The only way to switch from HTML namespace to SVG\n // is via . If it happens via any other tag, then\n // it should be killed.\n if (parent.namespaceURI === HTML_NAMESPACE) {\n return tagName === 'svg';\n }\n // The only way to switch from MathML to SVG is via`\n // svg if parent is either or MathML\n // text integration points.\n if (parent.namespaceURI === MATHML_NAMESPACE) {\n return tagName === 'svg' && (parentTagName === 'annotation-xml' || MATHML_TEXT_INTEGRATION_POINTS[parentTagName]);\n }\n // We only allow elements that are defined in SVG\n // spec. All others are disallowed in SVG namespace.\n return Boolean(ALL_SVG_TAGS[tagName]);\n }\n if (element.namespaceURI === MATHML_NAMESPACE) {\n // The only way to switch from HTML namespace to MathML\n // is via . If it happens via any other tag, then\n // it should be killed.\n if (parent.namespaceURI === HTML_NAMESPACE) {\n return tagName === 'math';\n }\n // The only way to switch from SVG to MathML is via\n // and HTML integration points\n if (parent.namespaceURI === SVG_NAMESPACE) {\n return tagName === 'math' && HTML_INTEGRATION_POINTS[parentTagName];\n }\n // We only allow elements that are defined in MathML\n // spec. All others are disallowed in MathML namespace.\n return Boolean(ALL_MATHML_TAGS[tagName]);\n }\n if (element.namespaceURI === HTML_NAMESPACE) {\n // The only way to switch from SVG to HTML is via\n // HTML integration points, and from MathML to HTML\n // is via MathML text integration points\n if (parent.namespaceURI === SVG_NAMESPACE && !HTML_INTEGRATION_POINTS[parentTagName]) {\n return false;\n }\n if (parent.namespaceURI === MATHML_NAMESPACE && !MATHML_TEXT_INTEGRATION_POINTS[parentTagName]) {\n return false;\n }\n // We disallow tags that are specific for MathML\n // or SVG and should never appear in HTML namespace\n return !ALL_MATHML_TAGS[tagName] && (COMMON_SVG_AND_HTML_ELEMENTS[tagName] || !ALL_SVG_TAGS[tagName]);\n }\n // For XHTML and XML documents that support custom namespaces\n if (PARSER_MEDIA_TYPE === 'application/xhtml+xml' && ALLOWED_NAMESPACES[element.namespaceURI]) {\n return true;\n }\n // The code should never reach this place (this means\n // that the element somehow got namespace that is not\n // HTML, SVG, MathML or allowed via ALLOWED_NAMESPACES).\n // Return false just in case.\n return false;\n };\n /**\n * _forceRemove\n *\n * @param node a DOM node\n */\n const _forceRemove = function _forceRemove(node) {\n arrayPush(DOMPurify.removed, {\n element: node\n });\n try {\n // eslint-disable-next-line unicorn/prefer-dom-node-remove\n getParentNode(node).removeChild(node);\n } catch (_) {\n remove(node);\n }\n };\n /**\n * _removeAttribute\n *\n * @param name an Attribute name\n * @param element a DOM node\n */\n const _removeAttribute = function _removeAttribute(name, element) {\n try {\n arrayPush(DOMPurify.removed, {\n attribute: element.getAttributeNode(name),\n from: element\n });\n } catch (_) {\n arrayPush(DOMPurify.removed, {\n attribute: null,\n from: element\n });\n }\n element.removeAttribute(name);\n // We void attribute values for unremovable \"is\" attributes\n if (name === 'is') {\n if (RETURN_DOM || RETURN_DOM_FRAGMENT) {\n try {\n _forceRemove(element);\n } catch (_) {}\n } else {\n try {\n element.setAttribute(name, '');\n } catch (_) {}\n }\n }\n };\n /**\n * _initDocument\n *\n * @param dirty - a string of dirty markup\n * @return a DOM, filled with the dirty markup\n */\n const _initDocument = function _initDocument(dirty) {\n /* Create a HTML document */\n let doc = null;\n let leadingWhitespace = null;\n if (FORCE_BODY) {\n dirty = '' + dirty;\n } else {\n /* If FORCE_BODY isn't used, leading whitespace needs to be preserved manually */\n const matches = stringMatch(dirty, /^[\\r\\n\\t ]+/);\n leadingWhitespace = matches && matches[0];\n }\n if (PARSER_MEDIA_TYPE === 'application/xhtml+xml' && NAMESPACE === HTML_NAMESPACE) {\n // Root of XHTML doc must contain xmlns declaration (see https://www.w3.org/TR/xhtml1/normative.html#strict)\n dirty = '' + dirty + '';\n }\n const dirtyPayload = trustedTypesPolicy ? trustedTypesPolicy.createHTML(dirty) : dirty;\n /*\n * Use the DOMParser API by default, fallback later if needs be\n * DOMParser not work for svg when has multiple root element.\n */\n if (NAMESPACE === HTML_NAMESPACE) {\n try {\n doc = new DOMParser().parseFromString(dirtyPayload, PARSER_MEDIA_TYPE);\n } catch (_) {}\n }\n /* Use createHTMLDocument in case DOMParser is not available */\n if (!doc || !doc.documentElement) {\n doc = implementation.createDocument(NAMESPACE, 'template', null);\n try {\n doc.documentElement.innerHTML = IS_EMPTY_INPUT ? emptyHTML : dirtyPayload;\n } catch (_) {\n // Syntax error if dirtyPayload is invalid xml\n }\n }\n const body = doc.body || doc.documentElement;\n if (dirty && leadingWhitespace) {\n body.insertBefore(document.createTextNode(leadingWhitespace), body.childNodes[0] || null);\n }\n /* Work on whole document or just its body */\n if (NAMESPACE === HTML_NAMESPACE) {\n return getElementsByTagName.call(doc, WHOLE_DOCUMENT ? 'html' : 'body')[0];\n }\n return WHOLE_DOCUMENT ? doc.documentElement : body;\n };\n /**\n * Creates a NodeIterator object that you can use to traverse filtered lists of nodes or elements in a document.\n *\n * @param root The root element or node to start traversing on.\n * @return The created NodeIterator\n */\n const _createNodeIterator = function _createNodeIterator(root) {\n return createNodeIterator.call(root.ownerDocument || root, root,\n // eslint-disable-next-line no-bitwise\n NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_COMMENT | NodeFilter.SHOW_TEXT | NodeFilter.SHOW_PROCESSING_INSTRUCTION | NodeFilter.SHOW_CDATA_SECTION, null);\n };\n /**\n * _isClobbered\n *\n * @param element element to check for clobbering attacks\n * @return true if clobbered, false if safe\n */\n const _isClobbered = function _isClobbered(element) {\n return element instanceof HTMLFormElement && (typeof element.nodeName !== 'string' || typeof element.textContent !== 'string' || typeof element.removeChild !== 'function' || !(element.attributes instanceof NamedNodeMap) || typeof element.removeAttribute !== 'function' || typeof element.setAttribute !== 'function' || typeof element.namespaceURI !== 'string' || typeof element.insertBefore !== 'function' || typeof element.hasChildNodes !== 'function');\n };\n /**\n * Checks whether the given object is a DOM node.\n *\n * @param value object to check whether it's a DOM node\n * @return true is object is a DOM node\n */\n const _isNode = function _isNode(value) {\n return typeof Node === 'function' && value instanceof Node;\n };\n function _executeHooks(hooks, currentNode, data) {\n arrayForEach(hooks, hook => {\n hook.call(DOMPurify, currentNode, data, CONFIG);\n });\n }\n /**\n * _sanitizeElements\n *\n * @protect nodeName\n * @protect textContent\n * @protect removeChild\n * @param currentNode to check for permission to exist\n * @return true if node was killed, false if left alive\n */\n const _sanitizeElements = function _sanitizeElements(currentNode) {\n let content = null;\n /* Execute a hook if present */\n _executeHooks(hooks.beforeSanitizeElements, currentNode, null);\n /* Check if element is clobbered or can clobber */\n if (_isClobbered(currentNode)) {\n _forceRemove(currentNode);\n return true;\n }\n /* Now let's check the element's type and name */\n const tagName = transformCaseFunc(currentNode.nodeName);\n /* Execute a hook if present */\n _executeHooks(hooks.uponSanitizeElement, currentNode, {\n tagName,\n allowedTags: ALLOWED_TAGS\n });\n /* Detect mXSS attempts abusing namespace confusion */\n if (currentNode.hasChildNodes() && !_isNode(currentNode.firstElementChild) && regExpTest(/<[/\\w]/g, currentNode.innerHTML) && regExpTest(/<[/\\w]/g, currentNode.textContent)) {\n _forceRemove(currentNode);\n return true;\n }\n /* Remove any occurrence of processing instructions */\n if (currentNode.nodeType === NODE_TYPE.progressingInstruction) {\n _forceRemove(currentNode);\n return true;\n }\n /* Remove any kind of possibly harmful comments */\n if (SAFE_FOR_XML && currentNode.nodeType === NODE_TYPE.comment && regExpTest(/<[/\\w]/g, currentNode.data)) {\n _forceRemove(currentNode);\n return true;\n }\n /* Remove element if anything forbids its presence */\n if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {\n /* Check if we have a custom element to handle */\n if (!FORBID_TAGS[tagName] && _isBasicCustomElement(tagName)) {\n if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, tagName)) {\n return false;\n }\n if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(tagName)) {\n return false;\n }\n }\n /* Keep content except for bad-listed elements */\n if (KEEP_CONTENT && !FORBID_CONTENTS[tagName]) {\n const parentNode = getParentNode(currentNode) || currentNode.parentNode;\n const childNodes = getChildNodes(currentNode) || currentNode.childNodes;\n if (childNodes && parentNode) {\n const childCount = childNodes.length;\n for (let i = childCount - 1; i >= 0; --i) {\n const childClone = cloneNode(childNodes[i], true);\n childClone.__removalCount = (currentNode.__removalCount || 0) + 1;\n parentNode.insertBefore(childClone, getNextSibling(currentNode));\n }\n }\n }\n _forceRemove(currentNode);\n return true;\n }\n /* Check whether element has a valid namespace */\n if (currentNode instanceof Element && !_checkValidNamespace(currentNode)) {\n _forceRemove(currentNode);\n return true;\n }\n /* Make sure that older browsers don't get fallback-tag mXSS */\n if ((tagName === 'noscript' || tagName === 'noembed' || tagName === 'noframes') && regExpTest(/<\\/no(script|embed|frames)/i, currentNode.innerHTML)) {\n _forceRemove(currentNode);\n return true;\n }\n /* Sanitize element content to be template-safe */\n if (SAFE_FOR_TEMPLATES && currentNode.nodeType === NODE_TYPE.text) {\n /* Get the element's text content */\n content = currentNode.textContent;\n arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], expr => {\n content = stringReplace(content, expr, ' ');\n });\n if (currentNode.textContent !== content) {\n arrayPush(DOMPurify.removed, {\n element: currentNode.cloneNode()\n });\n currentNode.textContent = content;\n }\n }\n /* Execute a hook if present */\n _executeHooks(hooks.afterSanitizeElements, currentNode, null);\n return false;\n };\n /**\n * _isValidAttribute\n *\n * @param lcTag Lowercase tag name of containing element.\n * @param lcName Lowercase attribute name.\n * @param value Attribute value.\n * @return Returns true if `value` is valid, otherwise false.\n */\n // eslint-disable-next-line complexity\n const _isValidAttribute = function _isValidAttribute(lcTag, lcName, value) {\n /* Make sure attribute cannot clobber */\n if (SANITIZE_DOM && (lcName === 'id' || lcName === 'name') && (value in document || value in formElement)) {\n return false;\n }\n /* Allow valid data-* attributes: At least one character after \"-\"\n (https://html.spec.whatwg.org/multipage/dom.html#embedding-custom-non-visible-data-with-the-data-*-attributes)\n XML-compatible (https://html.spec.whatwg.org/multipage/infrastructure.html#xml-compatible and http://www.w3.org/TR/xml/#d0e804)\n We don't need to check the value; it's always URI safe. */\n if (ALLOW_DATA_ATTR && !FORBID_ATTR[lcName] && regExpTest(DATA_ATTR, lcName)) ; else if (ALLOW_ARIA_ATTR && regExpTest(ARIA_ATTR, lcName)) ; else if (!ALLOWED_ATTR[lcName] || FORBID_ATTR[lcName]) {\n if (\n // First condition does a very basic check if a) it's basically a valid custom element tagname AND\n // b) if the tagName passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck\n // and c) if the attribute name passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.attributeNameCheck\n _isBasicCustomElement(lcTag) && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, lcTag) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(lcTag)) && (CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.attributeNameCheck, lcName) || CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.attributeNameCheck(lcName)) ||\n // Alternative, second condition checks if it's an `is`-attribute, AND\n // the value passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck\n lcName === 'is' && CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, value) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(value))) ; else {\n return false;\n }\n /* Check value is safe. First, is attr inert? If so, is safe */\n } else if (URI_SAFE_ATTRIBUTES[lcName]) ; else if (regExpTest(IS_ALLOWED_URI$1, stringReplace(value, ATTR_WHITESPACE, ''))) ; else if ((lcName === 'src' || lcName === 'xlink:href' || lcName === 'href') && lcTag !== 'script' && stringIndexOf(value, 'data:') === 0 && DATA_URI_TAGS[lcTag]) ; else if (ALLOW_UNKNOWN_PROTOCOLS && !regExpTest(IS_SCRIPT_OR_DATA, stringReplace(value, ATTR_WHITESPACE, ''))) ; else if (value) {\n return false;\n } else ;\n return true;\n };\n /**\n * _isBasicCustomElement\n * checks if at least one dash is included in tagName, and it's not the first char\n * for more sophisticated checking see https://github.com/sindresorhus/validate-element-name\n *\n * @param tagName name of the tag of the node to sanitize\n * @returns Returns true if the tag name meets the basic criteria for a custom element, otherwise false.\n */\n const _isBasicCustomElement = function _isBasicCustomElement(tagName) {\n return tagName !== 'annotation-xml' && stringMatch(tagName, CUSTOM_ELEMENT);\n };\n /**\n * _sanitizeAttributes\n *\n * @protect attributes\n * @protect nodeName\n * @protect removeAttribute\n * @protect setAttribute\n *\n * @param currentNode to sanitize\n */\n const _sanitizeAttributes = function _sanitizeAttributes(currentNode) {\n /* Execute a hook if present */\n _executeHooks(hooks.beforeSanitizeAttributes, currentNode, null);\n const {\n attributes\n } = currentNode;\n /* Check if we have attributes; if not we might have a text node */\n if (!attributes || _isClobbered(currentNode)) {\n return;\n }\n const hookEvent = {\n attrName: '',\n attrValue: '',\n keepAttr: true,\n allowedAttributes: ALLOWED_ATTR,\n forceKeepAttr: undefined\n };\n let l = attributes.length;\n /* Go backwards over all attributes; safely remove bad ones */\n while (l--) {\n const attr = attributes[l];\n const {\n name,\n namespaceURI,\n value: attrValue\n } = attr;\n const lcName = transformCaseFunc(name);\n let value = name === 'value' ? attrValue : stringTrim(attrValue);\n /* Execute a hook if present */\n hookEvent.attrName = lcName;\n hookEvent.attrValue = value;\n hookEvent.keepAttr = true;\n hookEvent.forceKeepAttr = undefined; // Allows developers to see this is a property they can set\n _executeHooks(hooks.uponSanitizeAttribute, currentNode, hookEvent);\n value = hookEvent.attrValue;\n /* Full DOM Clobbering protection via namespace isolation,\n * Prefix id and name attributes with `user-content-`\n */\n if (SANITIZE_NAMED_PROPS && (lcName === 'id' || lcName === 'name')) {\n // Remove the attribute with this value\n _removeAttribute(name, currentNode);\n // Prefix the value and later re-create the attribute with the sanitized value\n value = SANITIZE_NAMED_PROPS_PREFIX + value;\n }\n /* Work around a security issue with comments inside attributes */\n if (SAFE_FOR_XML && regExpTest(/((--!?|])>)|<\\/(style|title)/i, value)) {\n _removeAttribute(name, currentNode);\n continue;\n }\n /* Did the hooks approve of the attribute? */\n if (hookEvent.forceKeepAttr) {\n continue;\n }\n /* Remove attribute */\n _removeAttribute(name, currentNode);\n /* Did the hooks approve of the attribute? */\n if (!hookEvent.keepAttr) {\n continue;\n }\n /* Work around a security issue in jQuery 3.0 */\n if (!ALLOW_SELF_CLOSE_IN_ATTR && regExpTest(/\\/>/i, value)) {\n _removeAttribute(name, currentNode);\n continue;\n }\n /* Sanitize attribute content to be template-safe */\n if (SAFE_FOR_TEMPLATES) {\n arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], expr => {\n value = stringReplace(value, expr, ' ');\n });\n }\n /* Is `value` valid for this attribute? */\n const lcTag = transformCaseFunc(currentNode.nodeName);\n if (!_isValidAttribute(lcTag, lcName, value)) {\n continue;\n }\n /* Handle attributes that require Trusted Types */\n if (trustedTypesPolicy && typeof trustedTypes === 'object' && typeof trustedTypes.getAttributeType === 'function') {\n if (namespaceURI) ; else {\n switch (trustedTypes.getAttributeType(lcTag, lcName)) {\n case 'TrustedHTML':\n {\n value = trustedTypesPolicy.createHTML(value);\n break;\n }\n case 'TrustedScriptURL':\n {\n value = trustedTypesPolicy.createScriptURL(value);\n break;\n }\n }\n }\n }\n /* Handle invalid data-* attribute set by try-catching it */\n try {\n if (namespaceURI) {\n currentNode.setAttributeNS(namespaceURI, name, value);\n } else {\n /* Fallback to setAttribute() for browser-unrecognized namespaces e.g. \"x-schema\". */\n currentNode.setAttribute(name, value);\n }\n if (_isClobbered(currentNode)) {\n _forceRemove(currentNode);\n } else {\n arrayPop(DOMPurify.removed);\n }\n } catch (_) {}\n }\n /* Execute a hook if present */\n _executeHooks(hooks.afterSanitizeAttributes, currentNode, null);\n };\n /**\n * _sanitizeShadowDOM\n *\n * @param fragment to iterate over recursively\n */\n const _sanitizeShadowDOM = function _sanitizeShadowDOM(fragment) {\n let shadowNode = null;\n const shadowIterator = _createNodeIterator(fragment);\n /* Execute a hook if present */\n _executeHooks(hooks.beforeSanitizeShadowDOM, fragment, null);\n while (shadowNode = shadowIterator.nextNode()) {\n /* Execute a hook if present */\n _executeHooks(hooks.uponSanitizeShadowNode, shadowNode, null);\n /* Sanitize tags and elements */\n _sanitizeElements(shadowNode);\n /* Check attributes next */\n _sanitizeAttributes(shadowNode);\n /* Deep shadow DOM detected */\n if (shadowNode.content instanceof DocumentFragment) {\n _sanitizeShadowDOM(shadowNode.content);\n }\n }\n /* Execute a hook if present */\n _executeHooks(hooks.afterSanitizeShadowDOM, fragment, null);\n };\n // eslint-disable-next-line complexity\n DOMPurify.sanitize = function (dirty) {\n let cfg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n let body = null;\n let importedNode = null;\n let currentNode = null;\n let returnNode = null;\n /* Make sure we have a string to sanitize.\n DO NOT return early, as this will return the wrong type if\n the user has requested a DOM object rather than a string */\n IS_EMPTY_INPUT = !dirty;\n if (IS_EMPTY_INPUT) {\n dirty = '';\n }\n /* Stringify, in case dirty is an object */\n if (typeof dirty !== 'string' && !_isNode(dirty)) {\n if (typeof dirty.toString === 'function') {\n dirty = dirty.toString();\n if (typeof dirty !== 'string') {\n throw typeErrorCreate('dirty is not a string, aborting');\n }\n } else {\n throw typeErrorCreate('toString is not a function');\n }\n }\n /* Return dirty HTML if DOMPurify cannot run */\n if (!DOMPurify.isSupported) {\n return dirty;\n }\n /* Assign config vars */\n if (!SET_CONFIG) {\n _parseConfig(cfg);\n }\n /* Clean up removed elements */\n DOMPurify.removed = [];\n /* Check if dirty is correctly typed for IN_PLACE */\n if (typeof dirty === 'string') {\n IN_PLACE = false;\n }\n if (IN_PLACE) {\n /* Do some early pre-sanitization to avoid unsafe root nodes */\n if (dirty.nodeName) {\n const tagName = transformCaseFunc(dirty.nodeName);\n if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {\n throw typeErrorCreate('root node is forbidden and cannot be sanitized in-place');\n }\n }\n } else if (dirty instanceof Node) {\n /* If dirty is a DOM element, append to an empty document to avoid\n elements being stripped by the parser */\n body = _initDocument('');\n importedNode = body.ownerDocument.importNode(dirty, true);\n if (importedNode.nodeType === NODE_TYPE.element && importedNode.nodeName === 'BODY') {\n /* Node is already a body, use as is */\n body = importedNode;\n } else if (importedNode.nodeName === 'HTML') {\n body = importedNode;\n } else {\n // eslint-disable-next-line unicorn/prefer-dom-node-append\n body.appendChild(importedNode);\n }\n } else {\n /* Exit directly if we have nothing to do */\n if (!RETURN_DOM && !SAFE_FOR_TEMPLATES && !WHOLE_DOCUMENT &&\n // eslint-disable-next-line unicorn/prefer-includes\n dirty.indexOf('<') === -1) {\n return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(dirty) : dirty;\n }\n /* Initialize the document to work on */\n body = _initDocument(dirty);\n /* Check we have a DOM node from the data */\n if (!body) {\n return RETURN_DOM ? null : RETURN_TRUSTED_TYPE ? emptyHTML : '';\n }\n }\n /* Remove first element node (ours) if FORCE_BODY is set */\n if (body && FORCE_BODY) {\n _forceRemove(body.firstChild);\n }\n /* Get node iterator */\n const nodeIterator = _createNodeIterator(IN_PLACE ? dirty : body);\n /* Now start iterating over the created document */\n while (currentNode = nodeIterator.nextNode()) {\n /* Sanitize tags and elements */\n _sanitizeElements(currentNode);\n /* Check attributes next */\n _sanitizeAttributes(currentNode);\n /* Shadow DOM detected, sanitize it */\n if (currentNode.content instanceof DocumentFragment) {\n _sanitizeShadowDOM(currentNode.content);\n }\n }\n /* If we sanitized `dirty` in-place, return it. */\n if (IN_PLACE) {\n return dirty;\n }\n /* Return sanitized string or DOM */\n if (RETURN_DOM) {\n if (RETURN_DOM_FRAGMENT) {\n returnNode = createDocumentFragment.call(body.ownerDocument);\n while (body.firstChild) {\n // eslint-disable-next-line unicorn/prefer-dom-node-append\n returnNode.appendChild(body.firstChild);\n }\n } else {\n returnNode = body;\n }\n if (ALLOWED_ATTR.shadowroot || ALLOWED_ATTR.shadowrootmode) {\n /*\n AdoptNode() is not used because internal state is not reset\n (e.g. the past names map of a HTMLFormElement), this is safe\n in theory but we would rather not risk another attack vector.\n The state that is cloned by importNode() is explicitly defined\n by the specs.\n */\n returnNode = importNode.call(originalDocument, returnNode, true);\n }\n return returnNode;\n }\n let serializedHTML = WHOLE_DOCUMENT ? body.outerHTML : body.innerHTML;\n /* Serialize doctype if allowed */\n if (WHOLE_DOCUMENT && ALLOWED_TAGS['!doctype'] && body.ownerDocument && body.ownerDocument.doctype && body.ownerDocument.doctype.name && regExpTest(DOCTYPE_NAME, body.ownerDocument.doctype.name)) {\n serializedHTML = '\\n' + serializedHTML;\n }\n /* Sanitize final string template-safe */\n if (SAFE_FOR_TEMPLATES) {\n arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], expr => {\n serializedHTML = stringReplace(serializedHTML, expr, ' ');\n });\n }\n return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(serializedHTML) : serializedHTML;\n };\n DOMPurify.setConfig = function () {\n let cfg = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n _parseConfig(cfg);\n SET_CONFIG = true;\n };\n DOMPurify.clearConfig = function () {\n CONFIG = null;\n SET_CONFIG = false;\n };\n DOMPurify.isValidAttribute = function (tag, attr, value) {\n /* Initialize shared config vars if necessary. */\n if (!CONFIG) {\n _parseConfig({});\n }\n const lcTag = transformCaseFunc(tag);\n const lcName = transformCaseFunc(attr);\n return _isValidAttribute(lcTag, lcName, value);\n };\n DOMPurify.addHook = function (entryPoint, hookFunction) {\n if (typeof hookFunction !== 'function') {\n return;\n }\n arrayPush(hooks[entryPoint], hookFunction);\n };\n DOMPurify.removeHook = function (entryPoint, hookFunction) {\n if (hookFunction !== undefined) {\n const index = arrayLastIndexOf(hooks[entryPoint], hookFunction);\n return index === -1 ? undefined : arraySplice(hooks[entryPoint], index, 1)[0];\n }\n return arrayPop(hooks[entryPoint]);\n };\n DOMPurify.removeHooks = function (entryPoint) {\n hooks[entryPoint] = [];\n };\n DOMPurify.removeAllHooks = function () {\n hooks = _createHooksMap();\n };\n return DOMPurify;\n}\nvar purify = createDOMPurify();\n\nexport { purify as default };\n//# sourceMappingURL=purify.es.mjs.map\n", "var __defProp = Object.defineProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\n\n// src/logger.ts\nimport dayjs from \"dayjs\";\nvar LEVELS = {\n trace: 0,\n debug: 1,\n info: 2,\n warn: 3,\n error: 4,\n fatal: 5\n};\nvar log = {\n trace: /* @__PURE__ */ __name((..._args) => {\n }, \"trace\"),\n debug: /* @__PURE__ */ __name((..._args) => {\n }, \"debug\"),\n info: /* @__PURE__ */ __name((..._args) => {\n }, \"info\"),\n warn: /* @__PURE__ */ __name((..._args) => {\n }, \"warn\"),\n error: /* @__PURE__ */ __name((..._args) => {\n }, \"error\"),\n fatal: /* @__PURE__ */ __name((..._args) => {\n }, \"fatal\")\n};\nvar setLogLevel = /* @__PURE__ */ __name(function(level = \"fatal\") {\n let numericLevel = LEVELS.fatal;\n if (typeof level === \"string\") {\n if (level.toLowerCase() in LEVELS) {\n numericLevel = LEVELS[level];\n }\n } else if (typeof level === \"number\") {\n numericLevel = level;\n }\n log.trace = () => {\n };\n log.debug = () => {\n };\n log.info = () => {\n };\n log.warn = () => {\n };\n log.error = () => {\n };\n log.fatal = () => {\n };\n if (numericLevel <= LEVELS.fatal) {\n log.fatal = console.error ? console.error.bind(console, format(\"FATAL\"), \"color: orange\") : console.log.bind(console, \"\\x1B[35m\", format(\"FATAL\"));\n }\n if (numericLevel <= LEVELS.error) {\n log.error = console.error ? console.error.bind(console, format(\"ERROR\"), \"color: orange\") : console.log.bind(console, \"\\x1B[31m\", format(\"ERROR\"));\n }\n if (numericLevel <= LEVELS.warn) {\n log.warn = console.warn ? console.warn.bind(console, format(\"WARN\"), \"color: orange\") : console.log.bind(console, `\\x1B[33m`, format(\"WARN\"));\n }\n if (numericLevel <= LEVELS.info) {\n log.info = console.info ? console.info.bind(console, format(\"INFO\"), \"color: lightblue\") : console.log.bind(console, \"\\x1B[34m\", format(\"INFO\"));\n }\n if (numericLevel <= LEVELS.debug) {\n log.debug = console.debug ? console.debug.bind(console, format(\"DEBUG\"), \"color: lightgreen\") : console.log.bind(console, \"\\x1B[32m\", format(\"DEBUG\"));\n }\n if (numericLevel <= LEVELS.trace) {\n log.trace = console.debug ? console.debug.bind(console, format(\"TRACE\"), \"color: lightgreen\") : console.log.bind(console, \"\\x1B[32m\", format(\"TRACE\"));\n }\n}, \"setLogLevel\");\nvar format = /* @__PURE__ */ __name((level) => {\n const time = dayjs().format(\"ss.SSS\");\n return `%c${time} : ${level} : `;\n}, \"format\");\n\n// src/diagram-api/regexes.ts\nvar frontMatterRegex = /^-{3}\\s*[\\n\\r](.*?)[\\n\\r]-{3}\\s*[\\n\\r]+/s;\nvar directiveRegex = /%{2}{\\s*(?:(\\w+)\\s*:|(\\w+))\\s*(?:(\\w+)|((?:(?!}%{2}).|\\r?\\n)*))?\\s*(?:}%{2})?/gi;\nvar anyCommentRegex = /\\s*%%.*\\n/gm;\n\n// src/errors.ts\nvar UnknownDiagramError = class extends Error {\n static {\n __name(this, \"UnknownDiagramError\");\n }\n constructor(message) {\n super(message);\n this.name = \"UnknownDiagramError\";\n }\n};\n\n// src/diagram-api/detectType.ts\nvar detectors = {};\nvar detectType = /* @__PURE__ */ __name(function(text, config2) {\n text = text.replace(frontMatterRegex, \"\").replace(directiveRegex, \"\").replace(anyCommentRegex, \"\\n\");\n for (const [key, { detector }] of Object.entries(detectors)) {\n const diagram = detector(text, config2);\n if (diagram) {\n return key;\n }\n }\n throw new UnknownDiagramError(\n `No diagram type detected matching given configuration for text: ${text}`\n );\n}, \"detectType\");\nvar registerLazyLoadedDiagrams = /* @__PURE__ */ __name((...diagrams2) => {\n for (const { id, detector, loader } of diagrams2) {\n addDetector(id, detector, loader);\n }\n}, \"registerLazyLoadedDiagrams\");\nvar addDetector = /* @__PURE__ */ __name((key, detector, loader) => {\n if (detectors[key]) {\n log.warn(`Detector with key ${key} already exists. Overwriting.`);\n }\n detectors[key] = { detector, loader };\n log.debug(`Detector with key ${key} added${loader ? \" with loader\" : \"\"}`);\n}, \"addDetector\");\nvar getDiagramLoader = /* @__PURE__ */ __name((key) => {\n return detectors[key].loader;\n}, \"getDiagramLoader\");\n\n// src/assignWithDepth.ts\nvar assignWithDepth = /* @__PURE__ */ __name((dst, src, { depth = 2, clobber = false } = {}) => {\n const config2 = { depth, clobber };\n if (Array.isArray(src) && !Array.isArray(dst)) {\n src.forEach((s) => assignWithDepth(dst, s, config2));\n return dst;\n } else if (Array.isArray(src) && Array.isArray(dst)) {\n src.forEach((s) => {\n if (!dst.includes(s)) {\n dst.push(s);\n }\n });\n return dst;\n }\n if (dst === void 0 || depth <= 0) {\n if (dst !== void 0 && dst !== null && typeof dst === \"object\" && typeof src === \"object\") {\n return Object.assign(dst, src);\n } else {\n return src;\n }\n }\n if (src !== void 0 && typeof dst === \"object\" && typeof src === \"object\") {\n Object.keys(src).forEach((key) => {\n if (typeof src[key] === \"object\" && (dst[key] === void 0 || typeof dst[key] === \"object\")) {\n if (dst[key] === void 0) {\n dst[key] = Array.isArray(src[key]) ? [] : {};\n }\n dst[key] = assignWithDepth(dst[key], src[key], { depth: depth - 1, clobber });\n } else if (clobber || typeof dst[key] !== \"object\" && typeof src[key] !== \"object\") {\n dst[key] = src[key];\n }\n });\n }\n return dst;\n}, \"assignWithDepth\");\nvar assignWithDepth_default = assignWithDepth;\n\n// src/themes/theme-base.js\nimport { adjust as adjust2, darken, invert, isDark, lighten } from \"khroma\";\n\n// src/themes/erDiagram-oldHardcodedValues.ts\nvar oldAttributeBackgroundColorOdd = \"#ffffff\";\nvar oldAttributeBackgroundColorEven = \"#f2f2f2\";\n\n// src/themes/theme-helpers.js\nimport { adjust } from \"khroma\";\nvar mkBorder = /* @__PURE__ */ __name((col, darkMode) => darkMode ? adjust(col, { s: -40, l: 10 }) : adjust(col, { s: -40, l: -10 }), \"mkBorder\");\n\n// src/themes/theme-base.js\nvar Theme = class {\n static {\n __name(this, \"Theme\");\n }\n constructor() {\n this.background = \"#f4f4f4\";\n this.primaryColor = \"#fff4dd\";\n this.noteBkgColor = \"#fff5ad\";\n this.noteTextColor = \"#333\";\n this.THEME_COLOR_LIMIT = 12;\n this.fontFamily = '\"trebuchet ms\", verdana, arial, sans-serif';\n this.fontSize = \"16px\";\n }\n updateColors() {\n this.primaryTextColor = this.primaryTextColor || (this.darkMode ? \"#eee\" : \"#333\");\n this.secondaryColor = this.secondaryColor || adjust2(this.primaryColor, { h: -120 });\n this.tertiaryColor = this.tertiaryColor || adjust2(this.primaryColor, { h: 180, l: 5 });\n this.primaryBorderColor = this.primaryBorderColor || mkBorder(this.primaryColor, this.darkMode);\n this.secondaryBorderColor = this.secondaryBorderColor || mkBorder(this.secondaryColor, this.darkMode);\n this.tertiaryBorderColor = this.tertiaryBorderColor || mkBorder(this.tertiaryColor, this.darkMode);\n this.noteBorderColor = this.noteBorderColor || mkBorder(this.noteBkgColor, this.darkMode);\n this.noteBkgColor = this.noteBkgColor || \"#fff5ad\";\n this.noteTextColor = this.noteTextColor || \"#333\";\n this.secondaryTextColor = this.secondaryTextColor || invert(this.secondaryColor);\n this.tertiaryTextColor = this.tertiaryTextColor || invert(this.tertiaryColor);\n this.lineColor = this.lineColor || invert(this.background);\n this.arrowheadColor = this.arrowheadColor || invert(this.background);\n this.textColor = this.textColor || this.primaryTextColor;\n this.border2 = this.border2 || this.tertiaryBorderColor;\n this.nodeBkg = this.nodeBkg || this.primaryColor;\n this.mainBkg = this.mainBkg || this.primaryColor;\n this.nodeBorder = this.nodeBorder || this.primaryBorderColor;\n this.clusterBkg = this.clusterBkg || this.tertiaryColor;\n this.clusterBorder = this.clusterBorder || this.tertiaryBorderColor;\n this.defaultLinkColor = this.defaultLinkColor || this.lineColor;\n this.titleColor = this.titleColor || this.tertiaryTextColor;\n this.edgeLabelBackground = this.edgeLabelBackground || (this.darkMode ? darken(this.secondaryColor, 30) : this.secondaryColor);\n this.nodeTextColor = this.nodeTextColor || this.primaryTextColor;\n this.actorBorder = this.actorBorder || this.primaryBorderColor;\n this.actorBkg = this.actorBkg || this.mainBkg;\n this.actorTextColor = this.actorTextColor || this.primaryTextColor;\n this.actorLineColor = this.actorLineColor || this.actorBorder;\n this.labelBoxBkgColor = this.labelBoxBkgColor || this.actorBkg;\n this.signalColor = this.signalColor || this.textColor;\n this.signalTextColor = this.signalTextColor || this.textColor;\n this.labelBoxBorderColor = this.labelBoxBorderColor || this.actorBorder;\n this.labelTextColor = this.labelTextColor || this.actorTextColor;\n this.loopTextColor = this.loopTextColor || this.actorTextColor;\n this.activationBorderColor = this.activationBorderColor || darken(this.secondaryColor, 10);\n this.activationBkgColor = this.activationBkgColor || this.secondaryColor;\n this.sequenceNumberColor = this.sequenceNumberColor || invert(this.lineColor);\n this.sectionBkgColor = this.sectionBkgColor || this.tertiaryColor;\n this.altSectionBkgColor = this.altSectionBkgColor || \"white\";\n this.sectionBkgColor = this.sectionBkgColor || this.secondaryColor;\n this.sectionBkgColor2 = this.sectionBkgColor2 || this.primaryColor;\n this.excludeBkgColor = this.excludeBkgColor || \"#eeeeee\";\n this.taskBorderColor = this.taskBorderColor || this.primaryBorderColor;\n this.taskBkgColor = this.taskBkgColor || this.primaryColor;\n this.activeTaskBorderColor = this.activeTaskBorderColor || this.primaryColor;\n this.activeTaskBkgColor = this.activeTaskBkgColor || lighten(this.primaryColor, 23);\n this.gridColor = this.gridColor || \"lightgrey\";\n this.doneTaskBkgColor = this.doneTaskBkgColor || \"lightgrey\";\n this.doneTaskBorderColor = this.doneTaskBorderColor || \"grey\";\n this.critBorderColor = this.critBorderColor || \"#ff8888\";\n this.critBkgColor = this.critBkgColor || \"red\";\n this.todayLineColor = this.todayLineColor || \"red\";\n this.taskTextColor = this.taskTextColor || this.textColor;\n this.taskTextOutsideColor = this.taskTextOutsideColor || this.textColor;\n this.taskTextLightColor = this.taskTextLightColor || this.textColor;\n this.taskTextColor = this.taskTextColor || this.primaryTextColor;\n this.taskTextDarkColor = this.taskTextDarkColor || this.textColor;\n this.taskTextClickableColor = this.taskTextClickableColor || \"#003163\";\n this.personBorder = this.personBorder || this.primaryBorderColor;\n this.personBkg = this.personBkg || this.mainBkg;\n this.transitionColor = this.transitionColor || this.lineColor;\n this.transitionLabelColor = this.transitionLabelColor || this.textColor;\n this.stateLabelColor = this.stateLabelColor || this.stateBkg || this.primaryTextColor;\n this.stateBkg = this.stateBkg || this.mainBkg;\n this.labelBackgroundColor = this.labelBackgroundColor || this.stateBkg;\n this.compositeBackground = this.compositeBackground || this.background || this.tertiaryColor;\n this.altBackground = this.altBackground || this.tertiaryColor;\n this.compositeTitleBackground = this.compositeTitleBackground || this.mainBkg;\n this.compositeBorder = this.compositeBorder || this.nodeBorder;\n this.innerEndBackground = this.nodeBorder;\n this.errorBkgColor = this.errorBkgColor || this.tertiaryColor;\n this.errorTextColor = this.errorTextColor || this.tertiaryTextColor;\n this.transitionColor = this.transitionColor || this.lineColor;\n this.specialStateColor = this.lineColor;\n this.cScale0 = this.cScale0 || this.primaryColor;\n this.cScale1 = this.cScale1 || this.secondaryColor;\n this.cScale2 = this.cScale2 || this.tertiaryColor;\n this.cScale3 = this.cScale3 || adjust2(this.primaryColor, { h: 30 });\n this.cScale4 = this.cScale4 || adjust2(this.primaryColor, { h: 60 });\n this.cScale5 = this.cScale5 || adjust2(this.primaryColor, { h: 90 });\n this.cScale6 = this.cScale6 || adjust2(this.primaryColor, { h: 120 });\n this.cScale7 = this.cScale7 || adjust2(this.primaryColor, { h: 150 });\n this.cScale8 = this.cScale8 || adjust2(this.primaryColor, { h: 210, l: 150 });\n this.cScale9 = this.cScale9 || adjust2(this.primaryColor, { h: 270 });\n this.cScale10 = this.cScale10 || adjust2(this.primaryColor, { h: 300 });\n this.cScale11 = this.cScale11 || adjust2(this.primaryColor, { h: 330 });\n if (this.darkMode) {\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n this[\"cScale\" + i] = darken(this[\"cScale\" + i], 75);\n }\n } else {\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n this[\"cScale\" + i] = darken(this[\"cScale\" + i], 25);\n }\n }\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n this[\"cScaleInv\" + i] = this[\"cScaleInv\" + i] || invert(this[\"cScale\" + i]);\n }\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n if (this.darkMode) {\n this[\"cScalePeer\" + i] = this[\"cScalePeer\" + i] || lighten(this[\"cScale\" + i], 10);\n } else {\n this[\"cScalePeer\" + i] = this[\"cScalePeer\" + i] || darken(this[\"cScale\" + i], 10);\n }\n }\n this.scaleLabelColor = this.scaleLabelColor || this.labelTextColor;\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n this[\"cScaleLabel\" + i] = this[\"cScaleLabel\" + i] || this.scaleLabelColor;\n }\n const multiplier = this.darkMode ? -4 : -1;\n for (let i = 0; i < 5; i++) {\n this[\"surface\" + i] = this[\"surface\" + i] || adjust2(this.mainBkg, { h: 180, s: -15, l: multiplier * (5 + i * 3) });\n this[\"surfacePeer\" + i] = this[\"surfacePeer\" + i] || adjust2(this.mainBkg, { h: 180, s: -15, l: multiplier * (8 + i * 3) });\n }\n this.classText = this.classText || this.textColor;\n this.fillType0 = this.fillType0 || this.primaryColor;\n this.fillType1 = this.fillType1 || this.secondaryColor;\n this.fillType2 = this.fillType2 || adjust2(this.primaryColor, { h: 64 });\n this.fillType3 = this.fillType3 || adjust2(this.secondaryColor, { h: 64 });\n this.fillType4 = this.fillType4 || adjust2(this.primaryColor, { h: -64 });\n this.fillType5 = this.fillType5 || adjust2(this.secondaryColor, { h: -64 });\n this.fillType6 = this.fillType6 || adjust2(this.primaryColor, { h: 128 });\n this.fillType7 = this.fillType7 || adjust2(this.secondaryColor, { h: 128 });\n this.pie1 = this.pie1 || this.primaryColor;\n this.pie2 = this.pie2 || this.secondaryColor;\n this.pie3 = this.pie3 || this.tertiaryColor;\n this.pie4 = this.pie4 || adjust2(this.primaryColor, { l: -10 });\n this.pie5 = this.pie5 || adjust2(this.secondaryColor, { l: -10 });\n this.pie6 = this.pie6 || adjust2(this.tertiaryColor, { l: -10 });\n this.pie7 = this.pie7 || adjust2(this.primaryColor, { h: 60, l: -10 });\n this.pie8 = this.pie8 || adjust2(this.primaryColor, { h: -60, l: -10 });\n this.pie9 = this.pie9 || adjust2(this.primaryColor, { h: 120, l: 0 });\n this.pie10 = this.pie10 || adjust2(this.primaryColor, { h: 60, l: -20 });\n this.pie11 = this.pie11 || adjust2(this.primaryColor, { h: -60, l: -20 });\n this.pie12 = this.pie12 || adjust2(this.primaryColor, { h: 120, l: -10 });\n this.pieTitleTextSize = this.pieTitleTextSize || \"25px\";\n this.pieTitleTextColor = this.pieTitleTextColor || this.taskTextDarkColor;\n this.pieSectionTextSize = this.pieSectionTextSize || \"17px\";\n this.pieSectionTextColor = this.pieSectionTextColor || this.textColor;\n this.pieLegendTextSize = this.pieLegendTextSize || \"17px\";\n this.pieLegendTextColor = this.pieLegendTextColor || this.taskTextDarkColor;\n this.pieStrokeColor = this.pieStrokeColor || \"black\";\n this.pieStrokeWidth = this.pieStrokeWidth || \"2px\";\n this.pieOuterStrokeWidth = this.pieOuterStrokeWidth || \"2px\";\n this.pieOuterStrokeColor = this.pieOuterStrokeColor || \"black\";\n this.pieOpacity = this.pieOpacity || \"0.7\";\n this.archEdgeColor = this.archEdgeColor || \"#777\";\n this.archEdgeArrowColor = this.archEdgeArrowColor || \"#777\";\n this.archEdgeWidth = this.archEdgeWidth || \"3\";\n this.archGroupBorderColor = this.archGroupBorderColor || \"#000\";\n this.archGroupBorderWidth = this.archGroupBorderWidth || \"2px\";\n this.quadrant1Fill = this.quadrant1Fill || this.primaryColor;\n this.quadrant2Fill = this.quadrant2Fill || adjust2(this.primaryColor, { r: 5, g: 5, b: 5 });\n this.quadrant3Fill = this.quadrant3Fill || adjust2(this.primaryColor, { r: 10, g: 10, b: 10 });\n this.quadrant4Fill = this.quadrant4Fill || adjust2(this.primaryColor, { r: 15, g: 15, b: 15 });\n this.quadrant1TextFill = this.quadrant1TextFill || this.primaryTextColor;\n this.quadrant2TextFill = this.quadrant2TextFill || adjust2(this.primaryTextColor, { r: -5, g: -5, b: -5 });\n this.quadrant3TextFill = this.quadrant3TextFill || adjust2(this.primaryTextColor, { r: -10, g: -10, b: -10 });\n this.quadrant4TextFill = this.quadrant4TextFill || adjust2(this.primaryTextColor, { r: -15, g: -15, b: -15 });\n this.quadrantPointFill = this.quadrantPointFill || isDark(this.quadrant1Fill) ? lighten(this.quadrant1Fill) : darken(this.quadrant1Fill);\n this.quadrantPointTextFill = this.quadrantPointTextFill || this.primaryTextColor;\n this.quadrantXAxisTextFill = this.quadrantXAxisTextFill || this.primaryTextColor;\n this.quadrantYAxisTextFill = this.quadrantYAxisTextFill || this.primaryTextColor;\n this.quadrantInternalBorderStrokeFill = this.quadrantInternalBorderStrokeFill || this.primaryBorderColor;\n this.quadrantExternalBorderStrokeFill = this.quadrantExternalBorderStrokeFill || this.primaryBorderColor;\n this.quadrantTitleFill = this.quadrantTitleFill || this.primaryTextColor;\n this.xyChart = {\n backgroundColor: this.xyChart?.backgroundColor || this.background,\n titleColor: this.xyChart?.titleColor || this.primaryTextColor,\n xAxisTitleColor: this.xyChart?.xAxisTitleColor || this.primaryTextColor,\n xAxisLabelColor: this.xyChart?.xAxisLabelColor || this.primaryTextColor,\n xAxisTickColor: this.xyChart?.xAxisTickColor || this.primaryTextColor,\n xAxisLineColor: this.xyChart?.xAxisLineColor || this.primaryTextColor,\n yAxisTitleColor: this.xyChart?.yAxisTitleColor || this.primaryTextColor,\n yAxisLabelColor: this.xyChart?.yAxisLabelColor || this.primaryTextColor,\n yAxisTickColor: this.xyChart?.yAxisTickColor || this.primaryTextColor,\n yAxisLineColor: this.xyChart?.yAxisLineColor || this.primaryTextColor,\n plotColorPalette: this.xyChart?.plotColorPalette || \"#FFF4DD,#FFD8B1,#FFA07A,#ECEFF1,#D6DBDF,#C3E0A8,#FFB6A4,#FFD74D,#738FA7,#FFFFF0\"\n };\n this.requirementBackground = this.requirementBackground || this.primaryColor;\n this.requirementBorderColor = this.requirementBorderColor || this.primaryBorderColor;\n this.requirementBorderSize = this.requirementBorderSize || \"1\";\n this.requirementTextColor = this.requirementTextColor || this.primaryTextColor;\n this.relationColor = this.relationColor || this.lineColor;\n this.relationLabelBackground = this.relationLabelBackground || (this.darkMode ? darken(this.secondaryColor, 30) : this.secondaryColor);\n this.relationLabelColor = this.relationLabelColor || this.actorTextColor;\n this.git0 = this.git0 || this.primaryColor;\n this.git1 = this.git1 || this.secondaryColor;\n this.git2 = this.git2 || this.tertiaryColor;\n this.git3 = this.git3 || adjust2(this.primaryColor, { h: -30 });\n this.git4 = this.git4 || adjust2(this.primaryColor, { h: -60 });\n this.git5 = this.git5 || adjust2(this.primaryColor, { h: -90 });\n this.git6 = this.git6 || adjust2(this.primaryColor, { h: 60 });\n this.git7 = this.git7 || adjust2(this.primaryColor, { h: 120 });\n if (this.darkMode) {\n this.git0 = lighten(this.git0, 25);\n this.git1 = lighten(this.git1, 25);\n this.git2 = lighten(this.git2, 25);\n this.git3 = lighten(this.git3, 25);\n this.git4 = lighten(this.git4, 25);\n this.git5 = lighten(this.git5, 25);\n this.git6 = lighten(this.git6, 25);\n this.git7 = lighten(this.git7, 25);\n } else {\n this.git0 = darken(this.git0, 25);\n this.git1 = darken(this.git1, 25);\n this.git2 = darken(this.git2, 25);\n this.git3 = darken(this.git3, 25);\n this.git4 = darken(this.git4, 25);\n this.git5 = darken(this.git5, 25);\n this.git6 = darken(this.git6, 25);\n this.git7 = darken(this.git7, 25);\n }\n this.gitInv0 = this.gitInv0 || invert(this.git0);\n this.gitInv1 = this.gitInv1 || invert(this.git1);\n this.gitInv2 = this.gitInv2 || invert(this.git2);\n this.gitInv3 = this.gitInv3 || invert(this.git3);\n this.gitInv4 = this.gitInv4 || invert(this.git4);\n this.gitInv5 = this.gitInv5 || invert(this.git5);\n this.gitInv6 = this.gitInv6 || invert(this.git6);\n this.gitInv7 = this.gitInv7 || invert(this.git7);\n this.branchLabelColor = this.branchLabelColor || (this.darkMode ? \"black\" : this.labelTextColor);\n this.gitBranchLabel0 = this.gitBranchLabel0 || this.branchLabelColor;\n this.gitBranchLabel1 = this.gitBranchLabel1 || this.branchLabelColor;\n this.gitBranchLabel2 = this.gitBranchLabel2 || this.branchLabelColor;\n this.gitBranchLabel3 = this.gitBranchLabel3 || this.branchLabelColor;\n this.gitBranchLabel4 = this.gitBranchLabel4 || this.branchLabelColor;\n this.gitBranchLabel5 = this.gitBranchLabel5 || this.branchLabelColor;\n this.gitBranchLabel6 = this.gitBranchLabel6 || this.branchLabelColor;\n this.gitBranchLabel7 = this.gitBranchLabel7 || this.branchLabelColor;\n this.tagLabelColor = this.tagLabelColor || this.primaryTextColor;\n this.tagLabelBackground = this.tagLabelBackground || this.primaryColor;\n this.tagLabelBorder = this.tagBorder || this.primaryBorderColor;\n this.tagLabelFontSize = this.tagLabelFontSize || \"10px\";\n this.commitLabelColor = this.commitLabelColor || this.secondaryTextColor;\n this.commitLabelBackground = this.commitLabelBackground || this.secondaryColor;\n this.commitLabelFontSize = this.commitLabelFontSize || \"10px\";\n this.attributeBackgroundColorOdd = this.attributeBackgroundColorOdd || oldAttributeBackgroundColorOdd;\n this.attributeBackgroundColorEven = this.attributeBackgroundColorEven || oldAttributeBackgroundColorEven;\n }\n calculate(overrides) {\n if (typeof overrides !== \"object\") {\n this.updateColors();\n return;\n }\n const keys = Object.keys(overrides);\n keys.forEach((k) => {\n this[k] = overrides[k];\n });\n this.updateColors();\n keys.forEach((k) => {\n this[k] = overrides[k];\n });\n }\n};\nvar getThemeVariables = /* @__PURE__ */ __name((userOverrides) => {\n const theme = new Theme();\n theme.calculate(userOverrides);\n return theme;\n}, \"getThemeVariables\");\n\n// src/themes/theme-dark.js\nimport { adjust as adjust3, darken as darken2, invert as invert2, isDark as isDark2, lighten as lighten2, rgba } from \"khroma\";\nvar Theme2 = class {\n static {\n __name(this, \"Theme\");\n }\n constructor() {\n this.background = \"#333\";\n this.primaryColor = \"#1f2020\";\n this.secondaryColor = lighten2(this.primaryColor, 16);\n this.tertiaryColor = adjust3(this.primaryColor, { h: -160 });\n this.primaryBorderColor = invert2(this.background);\n this.secondaryBorderColor = mkBorder(this.secondaryColor, this.darkMode);\n this.tertiaryBorderColor = mkBorder(this.tertiaryColor, this.darkMode);\n this.primaryTextColor = invert2(this.primaryColor);\n this.secondaryTextColor = invert2(this.secondaryColor);\n this.tertiaryTextColor = invert2(this.tertiaryColor);\n this.lineColor = invert2(this.background);\n this.textColor = invert2(this.background);\n this.mainBkg = \"#1f2020\";\n this.secondBkg = \"calculated\";\n this.mainContrastColor = \"lightgrey\";\n this.darkTextColor = lighten2(invert2(\"#323D47\"), 10);\n this.lineColor = \"calculated\";\n this.border1 = \"#ccc\";\n this.border2 = rgba(255, 255, 255, 0.25);\n this.arrowheadColor = \"calculated\";\n this.fontFamily = '\"trebuchet ms\", verdana, arial, sans-serif';\n this.fontSize = \"16px\";\n this.labelBackground = \"#181818\";\n this.textColor = \"#ccc\";\n this.THEME_COLOR_LIMIT = 12;\n this.nodeBkg = \"calculated\";\n this.nodeBorder = \"calculated\";\n this.clusterBkg = \"calculated\";\n this.clusterBorder = \"calculated\";\n this.defaultLinkColor = \"calculated\";\n this.titleColor = \"#F9FFFE\";\n this.edgeLabelBackground = \"calculated\";\n this.actorBorder = \"calculated\";\n this.actorBkg = \"calculated\";\n this.actorTextColor = \"calculated\";\n this.actorLineColor = \"calculated\";\n this.signalColor = \"calculated\";\n this.signalTextColor = \"calculated\";\n this.labelBoxBkgColor = \"calculated\";\n this.labelBoxBorderColor = \"calculated\";\n this.labelTextColor = \"calculated\";\n this.loopTextColor = \"calculated\";\n this.noteBorderColor = \"calculated\";\n this.noteBkgColor = \"#fff5ad\";\n this.noteTextColor = \"calculated\";\n this.activationBorderColor = \"calculated\";\n this.activationBkgColor = \"calculated\";\n this.sequenceNumberColor = \"black\";\n this.sectionBkgColor = darken2(\"#EAE8D9\", 30);\n this.altSectionBkgColor = \"calculated\";\n this.sectionBkgColor2 = \"#EAE8D9\";\n this.excludeBkgColor = darken2(this.sectionBkgColor, 10);\n this.taskBorderColor = rgba(255, 255, 255, 70);\n this.taskBkgColor = \"calculated\";\n this.taskTextColor = \"calculated\";\n this.taskTextLightColor = \"calculated\";\n this.taskTextOutsideColor = \"calculated\";\n this.taskTextClickableColor = \"#003163\";\n this.activeTaskBorderColor = rgba(255, 255, 255, 50);\n this.activeTaskBkgColor = \"#81B1DB\";\n this.gridColor = \"calculated\";\n this.doneTaskBkgColor = \"calculated\";\n this.doneTaskBorderColor = \"grey\";\n this.critBorderColor = \"#E83737\";\n this.critBkgColor = \"#E83737\";\n this.taskTextDarkColor = \"calculated\";\n this.todayLineColor = \"#DB5757\";\n this.personBorder = this.primaryBorderColor;\n this.personBkg = this.mainBkg;\n this.archEdgeColor = \"calculated\";\n this.archEdgeArrowColor = \"calculated\";\n this.archEdgeWidth = \"3\";\n this.archGroupBorderColor = this.primaryBorderColor;\n this.archGroupBorderWidth = \"2px\";\n this.labelColor = \"calculated\";\n this.errorBkgColor = \"#a44141\";\n this.errorTextColor = \"#ddd\";\n }\n updateColors() {\n this.secondBkg = lighten2(this.mainBkg, 16);\n this.lineColor = this.mainContrastColor;\n this.arrowheadColor = this.mainContrastColor;\n this.nodeBkg = this.mainBkg;\n this.nodeBorder = this.border1;\n this.clusterBkg = this.secondBkg;\n this.clusterBorder = this.border2;\n this.defaultLinkColor = this.lineColor;\n this.edgeLabelBackground = lighten2(this.labelBackground, 25);\n this.actorBorder = this.border1;\n this.actorBkg = this.mainBkg;\n this.actorTextColor = this.mainContrastColor;\n this.actorLineColor = this.actorBorder;\n this.signalColor = this.mainContrastColor;\n this.signalTextColor = this.mainContrastColor;\n this.labelBoxBkgColor = this.actorBkg;\n this.labelBoxBorderColor = this.actorBorder;\n this.labelTextColor = this.mainContrastColor;\n this.loopTextColor = this.mainContrastColor;\n this.noteBorderColor = this.secondaryBorderColor;\n this.noteBkgColor = this.secondBkg;\n this.noteTextColor = this.secondaryTextColor;\n this.activationBorderColor = this.border1;\n this.activationBkgColor = this.secondBkg;\n this.altSectionBkgColor = this.background;\n this.taskBkgColor = lighten2(this.mainBkg, 23);\n this.taskTextColor = this.darkTextColor;\n this.taskTextLightColor = this.mainContrastColor;\n this.taskTextOutsideColor = this.taskTextLightColor;\n this.gridColor = this.mainContrastColor;\n this.doneTaskBkgColor = this.mainContrastColor;\n this.taskTextDarkColor = this.darkTextColor;\n this.archEdgeColor = this.lineColor;\n this.archEdgeArrowColor = this.lineColor;\n this.transitionColor = this.transitionColor || this.lineColor;\n this.transitionLabelColor = this.transitionLabelColor || this.textColor;\n this.stateLabelColor = this.stateLabelColor || this.stateBkg || this.primaryTextColor;\n this.stateBkg = this.stateBkg || this.mainBkg;\n this.labelBackgroundColor = this.labelBackgroundColor || this.stateBkg;\n this.compositeBackground = this.compositeBackground || this.background || this.tertiaryColor;\n this.altBackground = this.altBackground || \"#555\";\n this.compositeTitleBackground = this.compositeTitleBackground || this.mainBkg;\n this.compositeBorder = this.compositeBorder || this.nodeBorder;\n this.innerEndBackground = this.primaryBorderColor;\n this.specialStateColor = \"#f4f4f4\";\n this.errorBkgColor = this.errorBkgColor || this.tertiaryColor;\n this.errorTextColor = this.errorTextColor || this.tertiaryTextColor;\n this.fillType0 = this.primaryColor;\n this.fillType1 = this.secondaryColor;\n this.fillType2 = adjust3(this.primaryColor, { h: 64 });\n this.fillType3 = adjust3(this.secondaryColor, { h: 64 });\n this.fillType4 = adjust3(this.primaryColor, { h: -64 });\n this.fillType5 = adjust3(this.secondaryColor, { h: -64 });\n this.fillType6 = adjust3(this.primaryColor, { h: 128 });\n this.fillType7 = adjust3(this.secondaryColor, { h: 128 });\n this.cScale1 = this.cScale1 || \"#0b0000\";\n this.cScale2 = this.cScale2 || \"#4d1037\";\n this.cScale3 = this.cScale3 || \"#3f5258\";\n this.cScale4 = this.cScale4 || \"#4f2f1b\";\n this.cScale5 = this.cScale5 || \"#6e0a0a\";\n this.cScale6 = this.cScale6 || \"#3b0048\";\n this.cScale7 = this.cScale7 || \"#995a01\";\n this.cScale8 = this.cScale8 || \"#154706\";\n this.cScale9 = this.cScale9 || \"#161722\";\n this.cScale10 = this.cScale10 || \"#00296f\";\n this.cScale11 = this.cScale11 || \"#01629c\";\n this.cScale12 = this.cScale12 || \"#010029\";\n this.cScale0 = this.cScale0 || this.primaryColor;\n this.cScale1 = this.cScale1 || this.secondaryColor;\n this.cScale2 = this.cScale2 || this.tertiaryColor;\n this.cScale3 = this.cScale3 || adjust3(this.primaryColor, { h: 30 });\n this.cScale4 = this.cScale4 || adjust3(this.primaryColor, { h: 60 });\n this.cScale5 = this.cScale5 || adjust3(this.primaryColor, { h: 90 });\n this.cScale6 = this.cScale6 || adjust3(this.primaryColor, { h: 120 });\n this.cScale7 = this.cScale7 || adjust3(this.primaryColor, { h: 150 });\n this.cScale8 = this.cScale8 || adjust3(this.primaryColor, { h: 210 });\n this.cScale9 = this.cScale9 || adjust3(this.primaryColor, { h: 270 });\n this.cScale10 = this.cScale10 || adjust3(this.primaryColor, { h: 300 });\n this.cScale11 = this.cScale11 || adjust3(this.primaryColor, { h: 330 });\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n this[\"cScaleInv\" + i] = this[\"cScaleInv\" + i] || invert2(this[\"cScale\" + i]);\n }\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n this[\"cScalePeer\" + i] = this[\"cScalePeer\" + i] || lighten2(this[\"cScale\" + i], 10);\n }\n for (let i = 0; i < 5; i++) {\n this[\"surface\" + i] = this[\"surface\" + i] || adjust3(this.mainBkg, { h: 30, s: -30, l: -(-10 + i * 4) });\n this[\"surfacePeer\" + i] = this[\"surfacePeer\" + i] || adjust3(this.mainBkg, { h: 30, s: -30, l: -(-7 + i * 4) });\n }\n this.scaleLabelColor = this.scaleLabelColor || (this.darkMode ? \"black\" : this.labelTextColor);\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n this[\"cScaleLabel\" + i] = this[\"cScaleLabel\" + i] || this.scaleLabelColor;\n }\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n this[\"pie\" + i] = this[\"cScale\" + i];\n }\n this.pieTitleTextSize = this.pieTitleTextSize || \"25px\";\n this.pieTitleTextColor = this.pieTitleTextColor || this.taskTextDarkColor;\n this.pieSectionTextSize = this.pieSectionTextSize || \"17px\";\n this.pieSectionTextColor = this.pieSectionTextColor || this.textColor;\n this.pieLegendTextSize = this.pieLegendTextSize || \"17px\";\n this.pieLegendTextColor = this.pieLegendTextColor || this.taskTextDarkColor;\n this.pieStrokeColor = this.pieStrokeColor || \"black\";\n this.pieStrokeWidth = this.pieStrokeWidth || \"2px\";\n this.pieOuterStrokeWidth = this.pieOuterStrokeWidth || \"2px\";\n this.pieOuterStrokeColor = this.pieOuterStrokeColor || \"black\";\n this.pieOpacity = this.pieOpacity || \"0.7\";\n this.quadrant1Fill = this.quadrant1Fill || this.primaryColor;\n this.quadrant2Fill = this.quadrant2Fill || adjust3(this.primaryColor, { r: 5, g: 5, b: 5 });\n this.quadrant3Fill = this.quadrant3Fill || adjust3(this.primaryColor, { r: 10, g: 10, b: 10 });\n this.quadrant4Fill = this.quadrant4Fill || adjust3(this.primaryColor, { r: 15, g: 15, b: 15 });\n this.quadrant1TextFill = this.quadrant1TextFill || this.primaryTextColor;\n this.quadrant2TextFill = this.quadrant2TextFill || adjust3(this.primaryTextColor, { r: -5, g: -5, b: -5 });\n this.quadrant3TextFill = this.quadrant3TextFill || adjust3(this.primaryTextColor, { r: -10, g: -10, b: -10 });\n this.quadrant4TextFill = this.quadrant4TextFill || adjust3(this.primaryTextColor, { r: -15, g: -15, b: -15 });\n this.quadrantPointFill = this.quadrantPointFill || isDark2(this.quadrant1Fill) ? lighten2(this.quadrant1Fill) : darken2(this.quadrant1Fill);\n this.quadrantPointTextFill = this.quadrantPointTextFill || this.primaryTextColor;\n this.quadrantXAxisTextFill = this.quadrantXAxisTextFill || this.primaryTextColor;\n this.quadrantYAxisTextFill = this.quadrantYAxisTextFill || this.primaryTextColor;\n this.quadrantInternalBorderStrokeFill = this.quadrantInternalBorderStrokeFill || this.primaryBorderColor;\n this.quadrantExternalBorderStrokeFill = this.quadrantExternalBorderStrokeFill || this.primaryBorderColor;\n this.quadrantTitleFill = this.quadrantTitleFill || this.primaryTextColor;\n this.xyChart = {\n backgroundColor: this.xyChart?.backgroundColor || this.background,\n titleColor: this.xyChart?.titleColor || this.primaryTextColor,\n xAxisTitleColor: this.xyChart?.xAxisTitleColor || this.primaryTextColor,\n xAxisLabelColor: this.xyChart?.xAxisLabelColor || this.primaryTextColor,\n xAxisTickColor: this.xyChart?.xAxisTickColor || this.primaryTextColor,\n xAxisLineColor: this.xyChart?.xAxisLineColor || this.primaryTextColor,\n yAxisTitleColor: this.xyChart?.yAxisTitleColor || this.primaryTextColor,\n yAxisLabelColor: this.xyChart?.yAxisLabelColor || this.primaryTextColor,\n yAxisTickColor: this.xyChart?.yAxisTickColor || this.primaryTextColor,\n yAxisLineColor: this.xyChart?.yAxisLineColor || this.primaryTextColor,\n plotColorPalette: this.xyChart?.plotColorPalette || \"#3498db,#2ecc71,#e74c3c,#f1c40f,#bdc3c7,#ffffff,#34495e,#9b59b6,#1abc9c,#e67e22\"\n };\n this.packet = {\n startByteColor: this.primaryTextColor,\n endByteColor: this.primaryTextColor,\n labelColor: this.primaryTextColor,\n titleColor: this.primaryTextColor,\n blockStrokeColor: this.primaryTextColor,\n blockFillColor: this.background\n };\n this.classText = this.primaryTextColor;\n this.requirementBackground = this.requirementBackground || this.primaryColor;\n this.requirementBorderColor = this.requirementBorderColor || this.primaryBorderColor;\n this.requirementBorderSize = this.requirementBorderSize || \"1\";\n this.requirementTextColor = this.requirementTextColor || this.primaryTextColor;\n this.relationColor = this.relationColor || this.lineColor;\n this.relationLabelBackground = this.relationLabelBackground || (this.darkMode ? darken2(this.secondaryColor, 30) : this.secondaryColor);\n this.relationLabelColor = this.relationLabelColor || this.actorTextColor;\n this.git0 = lighten2(this.secondaryColor, 20);\n this.git1 = lighten2(this.pie2 || this.secondaryColor, 20);\n this.git2 = lighten2(this.pie3 || this.tertiaryColor, 20);\n this.git3 = lighten2(this.pie4 || adjust3(this.primaryColor, { h: -30 }), 20);\n this.git4 = lighten2(this.pie5 || adjust3(this.primaryColor, { h: -60 }), 20);\n this.git5 = lighten2(this.pie6 || adjust3(this.primaryColor, { h: -90 }), 10);\n this.git6 = lighten2(this.pie7 || adjust3(this.primaryColor, { h: 60 }), 10);\n this.git7 = lighten2(this.pie8 || adjust3(this.primaryColor, { h: 120 }), 20);\n this.gitInv0 = this.gitInv0 || invert2(this.git0);\n this.gitInv1 = this.gitInv1 || invert2(this.git1);\n this.gitInv2 = this.gitInv2 || invert2(this.git2);\n this.gitInv3 = this.gitInv3 || invert2(this.git3);\n this.gitInv4 = this.gitInv4 || invert2(this.git4);\n this.gitInv5 = this.gitInv5 || invert2(this.git5);\n this.gitInv6 = this.gitInv6 || invert2(this.git6);\n this.gitInv7 = this.gitInv7 || invert2(this.git7);\n this.gitBranchLabel0 = this.gitBranchLabel0 || invert2(this.labelTextColor);\n this.gitBranchLabel1 = this.gitBranchLabel1 || this.labelTextColor;\n this.gitBranchLabel2 = this.gitBranchLabel2 || this.labelTextColor;\n this.gitBranchLabel3 = this.gitBranchLabel3 || invert2(this.labelTextColor);\n this.gitBranchLabel4 = this.gitBranchLabel4 || this.labelTextColor;\n this.gitBranchLabel5 = this.gitBranchLabel5 || this.labelTextColor;\n this.gitBranchLabel6 = this.gitBranchLabel6 || this.labelTextColor;\n this.gitBranchLabel7 = this.gitBranchLabel7 || this.labelTextColor;\n this.tagLabelColor = this.tagLabelColor || this.primaryTextColor;\n this.tagLabelBackground = this.tagLabelBackground || this.primaryColor;\n this.tagLabelBorder = this.tagBorder || this.primaryBorderColor;\n this.tagLabelFontSize = this.tagLabelFontSize || \"10px\";\n this.commitLabelColor = this.commitLabelColor || this.secondaryTextColor;\n this.commitLabelBackground = this.commitLabelBackground || this.secondaryColor;\n this.commitLabelFontSize = this.commitLabelFontSize || \"10px\";\n this.attributeBackgroundColorOdd = this.attributeBackgroundColorOdd || lighten2(this.background, 12);\n this.attributeBackgroundColorEven = this.attributeBackgroundColorEven || lighten2(this.background, 2);\n this.nodeBorder = this.nodeBorder || \"#999\";\n }\n calculate(overrides) {\n if (typeof overrides !== \"object\") {\n this.updateColors();\n return;\n }\n const keys = Object.keys(overrides);\n keys.forEach((k) => {\n this[k] = overrides[k];\n });\n this.updateColors();\n keys.forEach((k) => {\n this[k] = overrides[k];\n });\n }\n};\nvar getThemeVariables2 = /* @__PURE__ */ __name((userOverrides) => {\n const theme = new Theme2();\n theme.calculate(userOverrides);\n return theme;\n}, \"getThemeVariables\");\n\n// src/themes/theme-default.js\nimport { invert as invert3, lighten as lighten3, rgba as rgba2, adjust as adjust4, darken as darken3, isDark as isDark3 } from \"khroma\";\nvar Theme3 = class {\n static {\n __name(this, \"Theme\");\n }\n constructor() {\n this.background = \"#f4f4f4\";\n this.primaryColor = \"#ECECFF\";\n this.secondaryColor = adjust4(this.primaryColor, { h: 120 });\n this.secondaryColor = \"#ffffde\";\n this.tertiaryColor = adjust4(this.primaryColor, { h: -160 });\n this.primaryBorderColor = mkBorder(this.primaryColor, this.darkMode);\n this.secondaryBorderColor = mkBorder(this.secondaryColor, this.darkMode);\n this.tertiaryBorderColor = mkBorder(this.tertiaryColor, this.darkMode);\n this.primaryTextColor = invert3(this.primaryColor);\n this.secondaryTextColor = invert3(this.secondaryColor);\n this.tertiaryTextColor = invert3(this.tertiaryColor);\n this.lineColor = invert3(this.background);\n this.textColor = invert3(this.background);\n this.background = \"white\";\n this.mainBkg = \"#ECECFF\";\n this.secondBkg = \"#ffffde\";\n this.lineColor = \"#333333\";\n this.border1 = \"#9370DB\";\n this.border2 = \"#aaaa33\";\n this.arrowheadColor = \"#333333\";\n this.fontFamily = '\"trebuchet ms\", verdana, arial, sans-serif';\n this.fontSize = \"16px\";\n this.labelBackground = \"rgba(232,232,232, 0.8)\";\n this.textColor = \"#333\";\n this.THEME_COLOR_LIMIT = 12;\n this.nodeBkg = \"calculated\";\n this.nodeBorder = \"calculated\";\n this.clusterBkg = \"calculated\";\n this.clusterBorder = \"calculated\";\n this.defaultLinkColor = \"calculated\";\n this.titleColor = \"calculated\";\n this.edgeLabelBackground = \"calculated\";\n this.actorBorder = \"calculated\";\n this.actorBkg = \"calculated\";\n this.actorTextColor = \"black\";\n this.actorLineColor = \"calculated\";\n this.signalColor = \"calculated\";\n this.signalTextColor = \"calculated\";\n this.labelBoxBkgColor = \"calculated\";\n this.labelBoxBorderColor = \"calculated\";\n this.labelTextColor = \"calculated\";\n this.loopTextColor = \"calculated\";\n this.noteBorderColor = \"calculated\";\n this.noteBkgColor = \"#fff5ad\";\n this.noteTextColor = \"calculated\";\n this.activationBorderColor = \"#666\";\n this.activationBkgColor = \"#f4f4f4\";\n this.sequenceNumberColor = \"white\";\n this.sectionBkgColor = \"calculated\";\n this.altSectionBkgColor = \"calculated\";\n this.sectionBkgColor2 = \"calculated\";\n this.excludeBkgColor = \"#eeeeee\";\n this.taskBorderColor = \"calculated\";\n this.taskBkgColor = \"calculated\";\n this.taskTextLightColor = \"calculated\";\n this.taskTextColor = this.taskTextLightColor;\n this.taskTextDarkColor = \"calculated\";\n this.taskTextOutsideColor = this.taskTextDarkColor;\n this.taskTextClickableColor = \"calculated\";\n this.activeTaskBorderColor = \"calculated\";\n this.activeTaskBkgColor = \"calculated\";\n this.gridColor = \"calculated\";\n this.doneTaskBkgColor = \"calculated\";\n this.doneTaskBorderColor = \"calculated\";\n this.critBorderColor = \"calculated\";\n this.critBkgColor = \"calculated\";\n this.todayLineColor = \"calculated\";\n this.sectionBkgColor = rgba2(102, 102, 255, 0.49);\n this.altSectionBkgColor = \"white\";\n this.sectionBkgColor2 = \"#fff400\";\n this.taskBorderColor = \"#534fbc\";\n this.taskBkgColor = \"#8a90dd\";\n this.taskTextLightColor = \"white\";\n this.taskTextColor = \"calculated\";\n this.taskTextDarkColor = \"black\";\n this.taskTextOutsideColor = \"calculated\";\n this.taskTextClickableColor = \"#003163\";\n this.activeTaskBorderColor = \"#534fbc\";\n this.activeTaskBkgColor = \"#bfc7ff\";\n this.gridColor = \"lightgrey\";\n this.doneTaskBkgColor = \"lightgrey\";\n this.doneTaskBorderColor = \"grey\";\n this.critBorderColor = \"#ff8888\";\n this.critBkgColor = \"red\";\n this.todayLineColor = \"red\";\n this.personBorder = this.primaryBorderColor;\n this.personBkg = this.mainBkg;\n this.archEdgeColor = \"calculated\";\n this.archEdgeArrowColor = \"calculated\";\n this.archEdgeWidth = \"3\";\n this.archGroupBorderColor = this.primaryBorderColor;\n this.archGroupBorderWidth = \"2px\";\n this.labelColor = \"black\";\n this.errorBkgColor = \"#552222\";\n this.errorTextColor = \"#552222\";\n this.updateColors();\n }\n updateColors() {\n this.cScale0 = this.cScale0 || this.primaryColor;\n this.cScale1 = this.cScale1 || this.secondaryColor;\n this.cScale2 = this.cScale2 || this.tertiaryColor;\n this.cScale3 = this.cScale3 || adjust4(this.primaryColor, { h: 30 });\n this.cScale4 = this.cScale4 || adjust4(this.primaryColor, { h: 60 });\n this.cScale5 = this.cScale5 || adjust4(this.primaryColor, { h: 90 });\n this.cScale6 = this.cScale6 || adjust4(this.primaryColor, { h: 120 });\n this.cScale7 = this.cScale7 || adjust4(this.primaryColor, { h: 150 });\n this.cScale8 = this.cScale8 || adjust4(this.primaryColor, { h: 210 });\n this.cScale9 = this.cScale9 || adjust4(this.primaryColor, { h: 270 });\n this.cScale10 = this.cScale10 || adjust4(this.primaryColor, { h: 300 });\n this.cScale11 = this.cScale11 || adjust4(this.primaryColor, { h: 330 });\n this[\"cScalePeer1\"] = this[\"cScalePeer1\"] || darken3(this.secondaryColor, 45);\n this[\"cScalePeer2\"] = this[\"cScalePeer2\"] || darken3(this.tertiaryColor, 40);\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n this[\"cScale\" + i] = darken3(this[\"cScale\" + i], 10);\n this[\"cScalePeer\" + i] = this[\"cScalePeer\" + i] || darken3(this[\"cScale\" + i], 25);\n }\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n this[\"cScaleInv\" + i] = this[\"cScaleInv\" + i] || adjust4(this[\"cScale\" + i], { h: 180 });\n }\n for (let i = 0; i < 5; i++) {\n this[\"surface\" + i] = this[\"surface\" + i] || adjust4(this.mainBkg, { h: 30, l: -(5 + i * 5) });\n this[\"surfacePeer\" + i] = this[\"surfacePeer\" + i] || adjust4(this.mainBkg, { h: 30, l: -(7 + i * 5) });\n }\n this.scaleLabelColor = this.scaleLabelColor !== \"calculated\" && this.scaleLabelColor ? this.scaleLabelColor : this.labelTextColor;\n if (this.labelTextColor !== \"calculated\") {\n this.cScaleLabel0 = this.cScaleLabel0 || invert3(this.labelTextColor);\n this.cScaleLabel3 = this.cScaleLabel3 || invert3(this.labelTextColor);\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n this[\"cScaleLabel\" + i] = this[\"cScaleLabel\" + i] || this.labelTextColor;\n }\n }\n this.nodeBkg = this.mainBkg;\n this.nodeBorder = this.border1;\n this.clusterBkg = this.secondBkg;\n this.clusterBorder = this.border2;\n this.defaultLinkColor = this.lineColor;\n this.titleColor = this.textColor;\n this.edgeLabelBackground = this.labelBackground;\n this.actorBorder = lighten3(this.border1, 23);\n this.actorBkg = this.mainBkg;\n this.labelBoxBkgColor = this.actorBkg;\n this.signalColor = this.textColor;\n this.signalTextColor = this.textColor;\n this.labelBoxBorderColor = this.actorBorder;\n this.labelTextColor = this.actorTextColor;\n this.loopTextColor = this.actorTextColor;\n this.noteBorderColor = this.border2;\n this.noteTextColor = this.actorTextColor;\n this.actorLineColor = this.actorBorder;\n this.taskTextColor = this.taskTextLightColor;\n this.taskTextOutsideColor = this.taskTextDarkColor;\n this.archEdgeColor = this.lineColor;\n this.archEdgeArrowColor = this.lineColor;\n this.transitionColor = this.transitionColor || this.lineColor;\n this.transitionLabelColor = this.transitionLabelColor || this.textColor;\n this.stateLabelColor = this.stateLabelColor || this.stateBkg || this.primaryTextColor;\n this.stateBkg = this.stateBkg || this.mainBkg;\n this.labelBackgroundColor = this.labelBackgroundColor || this.stateBkg;\n this.compositeBackground = this.compositeBackground || this.background || this.tertiaryColor;\n this.altBackground = this.altBackground || \"#f0f0f0\";\n this.compositeTitleBackground = this.compositeTitleBackground || this.mainBkg;\n this.compositeBorder = this.compositeBorder || this.nodeBorder;\n this.innerEndBackground = this.nodeBorder;\n this.specialStateColor = this.lineColor;\n this.errorBkgColor = this.errorBkgColor || this.tertiaryColor;\n this.errorTextColor = this.errorTextColor || this.tertiaryTextColor;\n this.transitionColor = this.transitionColor || this.lineColor;\n this.classText = this.primaryTextColor;\n this.fillType0 = this.primaryColor;\n this.fillType1 = this.secondaryColor;\n this.fillType2 = adjust4(this.primaryColor, { h: 64 });\n this.fillType3 = adjust4(this.secondaryColor, { h: 64 });\n this.fillType4 = adjust4(this.primaryColor, { h: -64 });\n this.fillType5 = adjust4(this.secondaryColor, { h: -64 });\n this.fillType6 = adjust4(this.primaryColor, { h: 128 });\n this.fillType7 = adjust4(this.secondaryColor, { h: 128 });\n this.pie1 = this.pie1 || this.primaryColor;\n this.pie2 = this.pie2 || this.secondaryColor;\n this.pie3 = this.pie3 || adjust4(this.tertiaryColor, { l: -40 });\n this.pie4 = this.pie4 || adjust4(this.primaryColor, { l: -10 });\n this.pie5 = this.pie5 || adjust4(this.secondaryColor, { l: -30 });\n this.pie6 = this.pie6 || adjust4(this.tertiaryColor, { l: -20 });\n this.pie7 = this.pie7 || adjust4(this.primaryColor, { h: 60, l: -20 });\n this.pie8 = this.pie8 || adjust4(this.primaryColor, { h: -60, l: -40 });\n this.pie9 = this.pie9 || adjust4(this.primaryColor, { h: 120, l: -40 });\n this.pie10 = this.pie10 || adjust4(this.primaryColor, { h: 60, l: -40 });\n this.pie11 = this.pie11 || adjust4(this.primaryColor, { h: -90, l: -40 });\n this.pie12 = this.pie12 || adjust4(this.primaryColor, { h: 120, l: -30 });\n this.pieTitleTextSize = this.pieTitleTextSize || \"25px\";\n this.pieTitleTextColor = this.pieTitleTextColor || this.taskTextDarkColor;\n this.pieSectionTextSize = this.pieSectionTextSize || \"17px\";\n this.pieSectionTextColor = this.pieSectionTextColor || this.textColor;\n this.pieLegendTextSize = this.pieLegendTextSize || \"17px\";\n this.pieLegendTextColor = this.pieLegendTextColor || this.taskTextDarkColor;\n this.pieStrokeColor = this.pieStrokeColor || \"black\";\n this.pieStrokeWidth = this.pieStrokeWidth || \"2px\";\n this.pieOuterStrokeWidth = this.pieOuterStrokeWidth || \"2px\";\n this.pieOuterStrokeColor = this.pieOuterStrokeColor || \"black\";\n this.pieOpacity = this.pieOpacity || \"0.7\";\n this.quadrant1Fill = this.quadrant1Fill || this.primaryColor;\n this.quadrant2Fill = this.quadrant2Fill || adjust4(this.primaryColor, { r: 5, g: 5, b: 5 });\n this.quadrant3Fill = this.quadrant3Fill || adjust4(this.primaryColor, { r: 10, g: 10, b: 10 });\n this.quadrant4Fill = this.quadrant4Fill || adjust4(this.primaryColor, { r: 15, g: 15, b: 15 });\n this.quadrant1TextFill = this.quadrant1TextFill || this.primaryTextColor;\n this.quadrant2TextFill = this.quadrant2TextFill || adjust4(this.primaryTextColor, { r: -5, g: -5, b: -5 });\n this.quadrant3TextFill = this.quadrant3TextFill || adjust4(this.primaryTextColor, { r: -10, g: -10, b: -10 });\n this.quadrant4TextFill = this.quadrant4TextFill || adjust4(this.primaryTextColor, { r: -15, g: -15, b: -15 });\n this.quadrantPointFill = this.quadrantPointFill || isDark3(this.quadrant1Fill) ? lighten3(this.quadrant1Fill) : darken3(this.quadrant1Fill);\n this.quadrantPointTextFill = this.quadrantPointTextFill || this.primaryTextColor;\n this.quadrantXAxisTextFill = this.quadrantXAxisTextFill || this.primaryTextColor;\n this.quadrantYAxisTextFill = this.quadrantYAxisTextFill || this.primaryTextColor;\n this.quadrantInternalBorderStrokeFill = this.quadrantInternalBorderStrokeFill || this.primaryBorderColor;\n this.quadrantExternalBorderStrokeFill = this.quadrantExternalBorderStrokeFill || this.primaryBorderColor;\n this.quadrantTitleFill = this.quadrantTitleFill || this.primaryTextColor;\n this.xyChart = {\n backgroundColor: this.xyChart?.backgroundColor || this.background,\n titleColor: this.xyChart?.titleColor || this.primaryTextColor,\n xAxisTitleColor: this.xyChart?.xAxisTitleColor || this.primaryTextColor,\n xAxisLabelColor: this.xyChart?.xAxisLabelColor || this.primaryTextColor,\n xAxisTickColor: this.xyChart?.xAxisTickColor || this.primaryTextColor,\n xAxisLineColor: this.xyChart?.xAxisLineColor || this.primaryTextColor,\n yAxisTitleColor: this.xyChart?.yAxisTitleColor || this.primaryTextColor,\n yAxisLabelColor: this.xyChart?.yAxisLabelColor || this.primaryTextColor,\n yAxisTickColor: this.xyChart?.yAxisTickColor || this.primaryTextColor,\n yAxisLineColor: this.xyChart?.yAxisLineColor || this.primaryTextColor,\n plotColorPalette: this.xyChart?.plotColorPalette || \"#ECECFF,#8493A6,#FFC3A0,#DCDDE1,#B8E994,#D1A36F,#C3CDE6,#FFB6C1,#496078,#F8F3E3\"\n };\n this.requirementBackground = this.requirementBackground || this.primaryColor;\n this.requirementBorderColor = this.requirementBorderColor || this.primaryBorderColor;\n this.requirementBorderSize = this.requirementBorderSize || \"1\";\n this.requirementTextColor = this.requirementTextColor || this.primaryTextColor;\n this.relationColor = this.relationColor || this.lineColor;\n this.relationLabelBackground = this.relationLabelBackground || this.labelBackground;\n this.relationLabelColor = this.relationLabelColor || this.actorTextColor;\n this.git0 = this.git0 || this.primaryColor;\n this.git1 = this.git1 || this.secondaryColor;\n this.git2 = this.git2 || this.tertiaryColor;\n this.git3 = this.git3 || adjust4(this.primaryColor, { h: -30 });\n this.git4 = this.git4 || adjust4(this.primaryColor, { h: -60 });\n this.git5 = this.git5 || adjust4(this.primaryColor, { h: -90 });\n this.git6 = this.git6 || adjust4(this.primaryColor, { h: 60 });\n this.git7 = this.git7 || adjust4(this.primaryColor, { h: 120 });\n if (this.darkMode) {\n this.git0 = lighten3(this.git0, 25);\n this.git1 = lighten3(this.git1, 25);\n this.git2 = lighten3(this.git2, 25);\n this.git3 = lighten3(this.git3, 25);\n this.git4 = lighten3(this.git4, 25);\n this.git5 = lighten3(this.git5, 25);\n this.git6 = lighten3(this.git6, 25);\n this.git7 = lighten3(this.git7, 25);\n } else {\n this.git0 = darken3(this.git0, 25);\n this.git1 = darken3(this.git1, 25);\n this.git2 = darken3(this.git2, 25);\n this.git3 = darken3(this.git3, 25);\n this.git4 = darken3(this.git4, 25);\n this.git5 = darken3(this.git5, 25);\n this.git6 = darken3(this.git6, 25);\n this.git7 = darken3(this.git7, 25);\n }\n this.gitInv0 = this.gitInv0 || darken3(invert3(this.git0), 25);\n this.gitInv1 = this.gitInv1 || invert3(this.git1);\n this.gitInv2 = this.gitInv2 || invert3(this.git2);\n this.gitInv3 = this.gitInv3 || invert3(this.git3);\n this.gitInv4 = this.gitInv4 || invert3(this.git4);\n this.gitInv5 = this.gitInv5 || invert3(this.git5);\n this.gitInv6 = this.gitInv6 || invert3(this.git6);\n this.gitInv7 = this.gitInv7 || invert3(this.git7);\n this.gitBranchLabel0 = this.gitBranchLabel0 || invert3(this.labelTextColor);\n this.gitBranchLabel1 = this.gitBranchLabel1 || this.labelTextColor;\n this.gitBranchLabel2 = this.gitBranchLabel2 || this.labelTextColor;\n this.gitBranchLabel3 = this.gitBranchLabel3 || invert3(this.labelTextColor);\n this.gitBranchLabel4 = this.gitBranchLabel4 || this.labelTextColor;\n this.gitBranchLabel5 = this.gitBranchLabel5 || this.labelTextColor;\n this.gitBranchLabel6 = this.gitBranchLabel6 || this.labelTextColor;\n this.gitBranchLabel7 = this.gitBranchLabel7 || this.labelTextColor;\n this.tagLabelColor = this.tagLabelColor || this.primaryTextColor;\n this.tagLabelBackground = this.tagLabelBackground || this.primaryColor;\n this.tagLabelBorder = this.tagBorder || this.primaryBorderColor;\n this.tagLabelFontSize = this.tagLabelFontSize || \"10px\";\n this.commitLabelColor = this.commitLabelColor || this.secondaryTextColor;\n this.commitLabelBackground = this.commitLabelBackground || this.secondaryColor;\n this.commitLabelFontSize = this.commitLabelFontSize || \"10px\";\n this.attributeBackgroundColorOdd = this.attributeBackgroundColorOdd || oldAttributeBackgroundColorOdd;\n this.attributeBackgroundColorEven = this.attributeBackgroundColorEven || oldAttributeBackgroundColorEven;\n }\n calculate(overrides) {\n if (typeof overrides !== \"object\") {\n this.updateColors();\n return;\n }\n const keys = Object.keys(overrides);\n keys.forEach((k) => {\n this[k] = overrides[k];\n });\n this.updateColors();\n keys.forEach((k) => {\n this[k] = overrides[k];\n });\n }\n};\nvar getThemeVariables3 = /* @__PURE__ */ __name((userOverrides) => {\n const theme = new Theme3();\n theme.calculate(userOverrides);\n return theme;\n}, \"getThemeVariables\");\n\n// src/themes/theme-forest.js\nimport { adjust as adjust5, darken as darken4, invert as invert4, isDark as isDark4, lighten as lighten4 } from \"khroma\";\nvar Theme4 = class {\n static {\n __name(this, \"Theme\");\n }\n constructor() {\n this.background = \"#f4f4f4\";\n this.primaryColor = \"#cde498\";\n this.secondaryColor = \"#cdffb2\";\n this.background = \"white\";\n this.mainBkg = \"#cde498\";\n this.secondBkg = \"#cdffb2\";\n this.lineColor = \"green\";\n this.border1 = \"#13540c\";\n this.border2 = \"#6eaa49\";\n this.arrowheadColor = \"green\";\n this.fontFamily = '\"trebuchet ms\", verdana, arial, sans-serif';\n this.fontSize = \"16px\";\n this.tertiaryColor = lighten4(\"#cde498\", 10);\n this.primaryBorderColor = mkBorder(this.primaryColor, this.darkMode);\n this.secondaryBorderColor = mkBorder(this.secondaryColor, this.darkMode);\n this.tertiaryBorderColor = mkBorder(this.tertiaryColor, this.darkMode);\n this.primaryTextColor = invert4(this.primaryColor);\n this.secondaryTextColor = invert4(this.secondaryColor);\n this.tertiaryTextColor = invert4(this.primaryColor);\n this.lineColor = invert4(this.background);\n this.textColor = invert4(this.background);\n this.THEME_COLOR_LIMIT = 12;\n this.nodeBkg = \"calculated\";\n this.nodeBorder = \"calculated\";\n this.clusterBkg = \"calculated\";\n this.clusterBorder = \"calculated\";\n this.defaultLinkColor = \"calculated\";\n this.titleColor = \"#333\";\n this.edgeLabelBackground = \"#e8e8e8\";\n this.actorBorder = \"calculated\";\n this.actorBkg = \"calculated\";\n this.actorTextColor = \"black\";\n this.actorLineColor = \"calculated\";\n this.signalColor = \"#333\";\n this.signalTextColor = \"#333\";\n this.labelBoxBkgColor = \"calculated\";\n this.labelBoxBorderColor = \"#326932\";\n this.labelTextColor = \"calculated\";\n this.loopTextColor = \"calculated\";\n this.noteBorderColor = \"calculated\";\n this.noteBkgColor = \"#fff5ad\";\n this.noteTextColor = \"calculated\";\n this.activationBorderColor = \"#666\";\n this.activationBkgColor = \"#f4f4f4\";\n this.sequenceNumberColor = \"white\";\n this.sectionBkgColor = \"#6eaa49\";\n this.altSectionBkgColor = \"white\";\n this.sectionBkgColor2 = \"#6eaa49\";\n this.excludeBkgColor = \"#eeeeee\";\n this.taskBorderColor = \"calculated\";\n this.taskBkgColor = \"#487e3a\";\n this.taskTextLightColor = \"white\";\n this.taskTextColor = \"calculated\";\n this.taskTextDarkColor = \"black\";\n this.taskTextOutsideColor = \"calculated\";\n this.taskTextClickableColor = \"#003163\";\n this.activeTaskBorderColor = \"calculated\";\n this.activeTaskBkgColor = \"calculated\";\n this.gridColor = \"lightgrey\";\n this.doneTaskBkgColor = \"lightgrey\";\n this.doneTaskBorderColor = \"grey\";\n this.critBorderColor = \"#ff8888\";\n this.critBkgColor = \"red\";\n this.todayLineColor = \"red\";\n this.personBorder = this.primaryBorderColor;\n this.personBkg = this.mainBkg;\n this.archEdgeColor = \"calculated\";\n this.archEdgeArrowColor = \"calculated\";\n this.archEdgeWidth = \"3\";\n this.archGroupBorderColor = this.primaryBorderColor;\n this.archGroupBorderWidth = \"2px\";\n this.labelColor = \"black\";\n this.errorBkgColor = \"#552222\";\n this.errorTextColor = \"#552222\";\n }\n updateColors() {\n this.actorBorder = darken4(this.mainBkg, 20);\n this.actorBkg = this.mainBkg;\n this.labelBoxBkgColor = this.actorBkg;\n this.labelTextColor = this.actorTextColor;\n this.loopTextColor = this.actorTextColor;\n this.noteBorderColor = this.border2;\n this.noteTextColor = this.actorTextColor;\n this.actorLineColor = this.actorBorder;\n this.cScale0 = this.cScale0 || this.primaryColor;\n this.cScale1 = this.cScale1 || this.secondaryColor;\n this.cScale2 = this.cScale2 || this.tertiaryColor;\n this.cScale3 = this.cScale3 || adjust5(this.primaryColor, { h: 30 });\n this.cScale4 = this.cScale4 || adjust5(this.primaryColor, { h: 60 });\n this.cScale5 = this.cScale5 || adjust5(this.primaryColor, { h: 90 });\n this.cScale6 = this.cScale6 || adjust5(this.primaryColor, { h: 120 });\n this.cScale7 = this.cScale7 || adjust5(this.primaryColor, { h: 150 });\n this.cScale8 = this.cScale8 || adjust5(this.primaryColor, { h: 210 });\n this.cScale9 = this.cScale9 || adjust5(this.primaryColor, { h: 270 });\n this.cScale10 = this.cScale10 || adjust5(this.primaryColor, { h: 300 });\n this.cScale11 = this.cScale11 || adjust5(this.primaryColor, { h: 330 });\n this[\"cScalePeer1\"] = this[\"cScalePeer1\"] || darken4(this.secondaryColor, 45);\n this[\"cScalePeer2\"] = this[\"cScalePeer2\"] || darken4(this.tertiaryColor, 40);\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n this[\"cScale\" + i] = darken4(this[\"cScale\" + i], 10);\n this[\"cScalePeer\" + i] = this[\"cScalePeer\" + i] || darken4(this[\"cScale\" + i], 25);\n }\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n this[\"cScaleInv\" + i] = this[\"cScaleInv\" + i] || adjust5(this[\"cScale\" + i], { h: 180 });\n }\n this.scaleLabelColor = this.scaleLabelColor !== \"calculated\" && this.scaleLabelColor ? this.scaleLabelColor : this.labelTextColor;\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n this[\"cScaleLabel\" + i] = this[\"cScaleLabel\" + i] || this.scaleLabelColor;\n }\n for (let i = 0; i < 5; i++) {\n this[\"surface\" + i] = this[\"surface\" + i] || adjust5(this.mainBkg, { h: 30, s: -30, l: -(5 + i * 5) });\n this[\"surfacePeer\" + i] = this[\"surfacePeer\" + i] || adjust5(this.mainBkg, { h: 30, s: -30, l: -(8 + i * 5) });\n }\n this.nodeBkg = this.mainBkg;\n this.nodeBorder = this.border1;\n this.clusterBkg = this.secondBkg;\n this.clusterBorder = this.border2;\n this.defaultLinkColor = this.lineColor;\n this.taskBorderColor = this.border1;\n this.taskTextColor = this.taskTextLightColor;\n this.taskTextOutsideColor = this.taskTextDarkColor;\n this.activeTaskBorderColor = this.taskBorderColor;\n this.activeTaskBkgColor = this.mainBkg;\n this.archEdgeColor = this.lineColor;\n this.archEdgeArrowColor = this.lineColor;\n this.transitionColor = this.transitionColor || this.lineColor;\n this.transitionLabelColor = this.transitionLabelColor || this.textColor;\n this.stateLabelColor = this.stateLabelColor || this.stateBkg || this.primaryTextColor;\n this.stateBkg = this.stateBkg || this.mainBkg;\n this.labelBackgroundColor = this.labelBackgroundColor || this.stateBkg;\n this.compositeBackground = this.compositeBackground || this.background || this.tertiaryColor;\n this.altBackground = this.altBackground || \"#f0f0f0\";\n this.compositeTitleBackground = this.compositeTitleBackground || this.mainBkg;\n this.compositeBorder = this.compositeBorder || this.nodeBorder;\n this.innerEndBackground = this.primaryBorderColor;\n this.specialStateColor = this.lineColor;\n this.errorBkgColor = this.errorBkgColor || this.tertiaryColor;\n this.errorTextColor = this.errorTextColor || this.tertiaryTextColor;\n this.transitionColor = this.transitionColor || this.lineColor;\n this.classText = this.primaryTextColor;\n this.fillType0 = this.primaryColor;\n this.fillType1 = this.secondaryColor;\n this.fillType2 = adjust5(this.primaryColor, { h: 64 });\n this.fillType3 = adjust5(this.secondaryColor, { h: 64 });\n this.fillType4 = adjust5(this.primaryColor, { h: -64 });\n this.fillType5 = adjust5(this.secondaryColor, { h: -64 });\n this.fillType6 = adjust5(this.primaryColor, { h: 128 });\n this.fillType7 = adjust5(this.secondaryColor, { h: 128 });\n this.pie1 = this.pie1 || this.primaryColor;\n this.pie2 = this.pie2 || this.secondaryColor;\n this.pie3 = this.pie3 || this.tertiaryColor;\n this.pie4 = this.pie4 || adjust5(this.primaryColor, { l: -30 });\n this.pie5 = this.pie5 || adjust5(this.secondaryColor, { l: -30 });\n this.pie6 = this.pie6 || adjust5(this.tertiaryColor, { h: 40, l: -40 });\n this.pie7 = this.pie7 || adjust5(this.primaryColor, { h: 60, l: -10 });\n this.pie8 = this.pie8 || adjust5(this.primaryColor, { h: -60, l: -10 });\n this.pie9 = this.pie9 || adjust5(this.primaryColor, { h: 120, l: 0 });\n this.pie10 = this.pie10 || adjust5(this.primaryColor, { h: 60, l: -50 });\n this.pie11 = this.pie11 || adjust5(this.primaryColor, { h: -60, l: -50 });\n this.pie12 = this.pie12 || adjust5(this.primaryColor, { h: 120, l: -50 });\n this.pieTitleTextSize = this.pieTitleTextSize || \"25px\";\n this.pieTitleTextColor = this.pieTitleTextColor || this.taskTextDarkColor;\n this.pieSectionTextSize = this.pieSectionTextSize || \"17px\";\n this.pieSectionTextColor = this.pieSectionTextColor || this.textColor;\n this.pieLegendTextSize = this.pieLegendTextSize || \"17px\";\n this.pieLegendTextColor = this.pieLegendTextColor || this.taskTextDarkColor;\n this.pieStrokeColor = this.pieStrokeColor || \"black\";\n this.pieStrokeWidth = this.pieStrokeWidth || \"2px\";\n this.pieOuterStrokeWidth = this.pieOuterStrokeWidth || \"2px\";\n this.pieOuterStrokeColor = this.pieOuterStrokeColor || \"black\";\n this.pieOpacity = this.pieOpacity || \"0.7\";\n this.quadrant1Fill = this.quadrant1Fill || this.primaryColor;\n this.quadrant2Fill = this.quadrant2Fill || adjust5(this.primaryColor, { r: 5, g: 5, b: 5 });\n this.quadrant3Fill = this.quadrant3Fill || adjust5(this.primaryColor, { r: 10, g: 10, b: 10 });\n this.quadrant4Fill = this.quadrant4Fill || adjust5(this.primaryColor, { r: 15, g: 15, b: 15 });\n this.quadrant1TextFill = this.quadrant1TextFill || this.primaryTextColor;\n this.quadrant2TextFill = this.quadrant2TextFill || adjust5(this.primaryTextColor, { r: -5, g: -5, b: -5 });\n this.quadrant3TextFill = this.quadrant3TextFill || adjust5(this.primaryTextColor, { r: -10, g: -10, b: -10 });\n this.quadrant4TextFill = this.quadrant4TextFill || adjust5(this.primaryTextColor, { r: -15, g: -15, b: -15 });\n this.quadrantPointFill = this.quadrantPointFill || isDark4(this.quadrant1Fill) ? lighten4(this.quadrant1Fill) : darken4(this.quadrant1Fill);\n this.quadrantPointTextFill = this.quadrantPointTextFill || this.primaryTextColor;\n this.quadrantXAxisTextFill = this.quadrantXAxisTextFill || this.primaryTextColor;\n this.quadrantYAxisTextFill = this.quadrantYAxisTextFill || this.primaryTextColor;\n this.quadrantInternalBorderStrokeFill = this.quadrantInternalBorderStrokeFill || this.primaryBorderColor;\n this.quadrantExternalBorderStrokeFill = this.quadrantExternalBorderStrokeFill || this.primaryBorderColor;\n this.quadrantTitleFill = this.quadrantTitleFill || this.primaryTextColor;\n this.packet = {\n startByteColor: this.primaryTextColor,\n endByteColor: this.primaryTextColor,\n labelColor: this.primaryTextColor,\n titleColor: this.primaryTextColor,\n blockStrokeColor: this.primaryTextColor,\n blockFillColor: this.mainBkg\n };\n this.xyChart = {\n backgroundColor: this.xyChart?.backgroundColor || this.background,\n titleColor: this.xyChart?.titleColor || this.primaryTextColor,\n xAxisTitleColor: this.xyChart?.xAxisTitleColor || this.primaryTextColor,\n xAxisLabelColor: this.xyChart?.xAxisLabelColor || this.primaryTextColor,\n xAxisTickColor: this.xyChart?.xAxisTickColor || this.primaryTextColor,\n xAxisLineColor: this.xyChart?.xAxisLineColor || this.primaryTextColor,\n yAxisTitleColor: this.xyChart?.yAxisTitleColor || this.primaryTextColor,\n yAxisLabelColor: this.xyChart?.yAxisLabelColor || this.primaryTextColor,\n yAxisTickColor: this.xyChart?.yAxisTickColor || this.primaryTextColor,\n yAxisLineColor: this.xyChart?.yAxisLineColor || this.primaryTextColor,\n plotColorPalette: this.xyChart?.plotColorPalette || \"#CDE498,#FF6B6B,#A0D2DB,#D7BDE2,#F0F0F0,#FFC3A0,#7FD8BE,#FF9A8B,#FAF3E0,#FFF176\"\n };\n this.requirementBackground = this.requirementBackground || this.primaryColor;\n this.requirementBorderColor = this.requirementBorderColor || this.primaryBorderColor;\n this.requirementBorderSize = this.requirementBorderSize || \"1\";\n this.requirementTextColor = this.requirementTextColor || this.primaryTextColor;\n this.relationColor = this.relationColor || this.lineColor;\n this.relationLabelBackground = this.relationLabelBackground || this.edgeLabelBackground;\n this.relationLabelColor = this.relationLabelColor || this.actorTextColor;\n this.git0 = this.git0 || this.primaryColor;\n this.git1 = this.git1 || this.secondaryColor;\n this.git2 = this.git2 || this.tertiaryColor;\n this.git3 = this.git3 || adjust5(this.primaryColor, { h: -30 });\n this.git4 = this.git4 || adjust5(this.primaryColor, { h: -60 });\n this.git5 = this.git5 || adjust5(this.primaryColor, { h: -90 });\n this.git6 = this.git6 || adjust5(this.primaryColor, { h: 60 });\n this.git7 = this.git7 || adjust5(this.primaryColor, { h: 120 });\n if (this.darkMode) {\n this.git0 = lighten4(this.git0, 25);\n this.git1 = lighten4(this.git1, 25);\n this.git2 = lighten4(this.git2, 25);\n this.git3 = lighten4(this.git3, 25);\n this.git4 = lighten4(this.git4, 25);\n this.git5 = lighten4(this.git5, 25);\n this.git6 = lighten4(this.git6, 25);\n this.git7 = lighten4(this.git7, 25);\n } else {\n this.git0 = darken4(this.git0, 25);\n this.git1 = darken4(this.git1, 25);\n this.git2 = darken4(this.git2, 25);\n this.git3 = darken4(this.git3, 25);\n this.git4 = darken4(this.git4, 25);\n this.git5 = darken4(this.git5, 25);\n this.git6 = darken4(this.git6, 25);\n this.git7 = darken4(this.git7, 25);\n }\n this.gitInv0 = this.gitInv0 || invert4(this.git0);\n this.gitInv1 = this.gitInv1 || invert4(this.git1);\n this.gitInv2 = this.gitInv2 || invert4(this.git2);\n this.gitInv3 = this.gitInv3 || invert4(this.git3);\n this.gitInv4 = this.gitInv4 || invert4(this.git4);\n this.gitInv5 = this.gitInv5 || invert4(this.git5);\n this.gitInv6 = this.gitInv6 || invert4(this.git6);\n this.gitInv7 = this.gitInv7 || invert4(this.git7);\n this.gitBranchLabel0 = this.gitBranchLabel0 || invert4(this.labelTextColor);\n this.gitBranchLabel1 = this.gitBranchLabel1 || this.labelTextColor;\n this.gitBranchLabel2 = this.gitBranchLabel2 || this.labelTextColor;\n this.gitBranchLabel3 = this.gitBranchLabel3 || invert4(this.labelTextColor);\n this.gitBranchLabel4 = this.gitBranchLabel4 || this.labelTextColor;\n this.gitBranchLabel5 = this.gitBranchLabel5 || this.labelTextColor;\n this.gitBranchLabel6 = this.gitBranchLabel6 || this.labelTextColor;\n this.gitBranchLabel7 = this.gitBranchLabel7 || this.labelTextColor;\n this.tagLabelColor = this.tagLabelColor || this.primaryTextColor;\n this.tagLabelBackground = this.tagLabelBackground || this.primaryColor;\n this.tagLabelBorder = this.tagBorder || this.primaryBorderColor;\n this.tagLabelFontSize = this.tagLabelFontSize || \"10px\";\n this.commitLabelColor = this.commitLabelColor || this.secondaryTextColor;\n this.commitLabelBackground = this.commitLabelBackground || this.secondaryColor;\n this.commitLabelFontSize = this.commitLabelFontSize || \"10px\";\n this.attributeBackgroundColorOdd = this.attributeBackgroundColorOdd || oldAttributeBackgroundColorOdd;\n this.attributeBackgroundColorEven = this.attributeBackgroundColorEven || oldAttributeBackgroundColorEven;\n }\n calculate(overrides) {\n if (typeof overrides !== \"object\") {\n this.updateColors();\n return;\n }\n const keys = Object.keys(overrides);\n keys.forEach((k) => {\n this[k] = overrides[k];\n });\n this.updateColors();\n keys.forEach((k) => {\n this[k] = overrides[k];\n });\n }\n};\nvar getThemeVariables4 = /* @__PURE__ */ __name((userOverrides) => {\n const theme = new Theme4();\n theme.calculate(userOverrides);\n return theme;\n}, \"getThemeVariables\");\n\n// src/themes/theme-neutral.js\nimport { invert as invert5, darken as darken5, lighten as lighten5, adjust as adjust6, isDark as isDark5 } from \"khroma\";\nvar Theme5 = class {\n static {\n __name(this, \"Theme\");\n }\n constructor() {\n this.primaryColor = \"#eee\";\n this.contrast = \"#707070\";\n this.secondaryColor = lighten5(this.contrast, 55);\n this.background = \"#ffffff\";\n this.tertiaryColor = adjust6(this.primaryColor, { h: -160 });\n this.primaryBorderColor = mkBorder(this.primaryColor, this.darkMode);\n this.secondaryBorderColor = mkBorder(this.secondaryColor, this.darkMode);\n this.tertiaryBorderColor = mkBorder(this.tertiaryColor, this.darkMode);\n this.primaryTextColor = invert5(this.primaryColor);\n this.secondaryTextColor = invert5(this.secondaryColor);\n this.tertiaryTextColor = invert5(this.tertiaryColor);\n this.lineColor = invert5(this.background);\n this.textColor = invert5(this.background);\n this.mainBkg = \"#eee\";\n this.secondBkg = \"calculated\";\n this.lineColor = \"#666\";\n this.border1 = \"#999\";\n this.border2 = \"calculated\";\n this.note = \"#ffa\";\n this.text = \"#333\";\n this.critical = \"#d42\";\n this.done = \"#bbb\";\n this.arrowheadColor = \"#333333\";\n this.fontFamily = '\"trebuchet ms\", verdana, arial, sans-serif';\n this.fontSize = \"16px\";\n this.THEME_COLOR_LIMIT = 12;\n this.nodeBkg = \"calculated\";\n this.nodeBorder = \"calculated\";\n this.clusterBkg = \"calculated\";\n this.clusterBorder = \"calculated\";\n this.defaultLinkColor = \"calculated\";\n this.titleColor = \"calculated\";\n this.edgeLabelBackground = \"white\";\n this.actorBorder = \"calculated\";\n this.actorBkg = \"calculated\";\n this.actorTextColor = \"calculated\";\n this.actorLineColor = this.actorBorder;\n this.signalColor = \"calculated\";\n this.signalTextColor = \"calculated\";\n this.labelBoxBkgColor = \"calculated\";\n this.labelBoxBorderColor = \"calculated\";\n this.labelTextColor = \"calculated\";\n this.loopTextColor = \"calculated\";\n this.noteBorderColor = \"calculated\";\n this.noteBkgColor = \"calculated\";\n this.noteTextColor = \"calculated\";\n this.activationBorderColor = \"#666\";\n this.activationBkgColor = \"#f4f4f4\";\n this.sequenceNumberColor = \"white\";\n this.sectionBkgColor = \"calculated\";\n this.altSectionBkgColor = \"white\";\n this.sectionBkgColor2 = \"calculated\";\n this.excludeBkgColor = \"#eeeeee\";\n this.taskBorderColor = \"calculated\";\n this.taskBkgColor = \"calculated\";\n this.taskTextLightColor = \"white\";\n this.taskTextColor = \"calculated\";\n this.taskTextDarkColor = \"calculated\";\n this.taskTextOutsideColor = \"calculated\";\n this.taskTextClickableColor = \"#003163\";\n this.activeTaskBorderColor = \"calculated\";\n this.activeTaskBkgColor = \"calculated\";\n this.gridColor = \"calculated\";\n this.doneTaskBkgColor = \"calculated\";\n this.doneTaskBorderColor = \"calculated\";\n this.critBkgColor = \"calculated\";\n this.critBorderColor = \"calculated\";\n this.todayLineColor = \"calculated\";\n this.personBorder = this.primaryBorderColor;\n this.personBkg = this.mainBkg;\n this.archEdgeColor = \"calculated\";\n this.archEdgeArrowColor = \"calculated\";\n this.archEdgeWidth = \"3\";\n this.archGroupBorderColor = this.primaryBorderColor;\n this.archGroupBorderWidth = \"2px\";\n this.labelColor = \"black\";\n this.errorBkgColor = \"#552222\";\n this.errorTextColor = \"#552222\";\n }\n updateColors() {\n this.secondBkg = lighten5(this.contrast, 55);\n this.border2 = this.contrast;\n this.actorBorder = lighten5(this.border1, 23);\n this.actorBkg = this.mainBkg;\n this.actorTextColor = this.text;\n this.actorLineColor = this.actorBorder;\n this.signalColor = this.text;\n this.signalTextColor = this.text;\n this.labelBoxBkgColor = this.actorBkg;\n this.labelBoxBorderColor = this.actorBorder;\n this.labelTextColor = this.text;\n this.loopTextColor = this.text;\n this.noteBorderColor = \"#999\";\n this.noteBkgColor = \"#666\";\n this.noteTextColor = \"#fff\";\n this.cScale0 = this.cScale0 || \"#555\";\n this.cScale1 = this.cScale1 || \"#F4F4F4\";\n this.cScale2 = this.cScale2 || \"#555\";\n this.cScale3 = this.cScale3 || \"#BBB\";\n this.cScale4 = this.cScale4 || \"#777\";\n this.cScale5 = this.cScale5 || \"#999\";\n this.cScale6 = this.cScale6 || \"#DDD\";\n this.cScale7 = this.cScale7 || \"#FFF\";\n this.cScale8 = this.cScale8 || \"#DDD\";\n this.cScale9 = this.cScale9 || \"#BBB\";\n this.cScale10 = this.cScale10 || \"#999\";\n this.cScale11 = this.cScale11 || \"#777\";\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n this[\"cScaleInv\" + i] = this[\"cScaleInv\" + i] || invert5(this[\"cScale\" + i]);\n }\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n if (this.darkMode) {\n this[\"cScalePeer\" + i] = this[\"cScalePeer\" + i] || lighten5(this[\"cScale\" + i], 10);\n } else {\n this[\"cScalePeer\" + i] = this[\"cScalePeer\" + i] || darken5(this[\"cScale\" + i], 10);\n }\n }\n this.scaleLabelColor = this.scaleLabelColor || (this.darkMode ? \"black\" : this.labelTextColor);\n this.cScaleLabel0 = this.cScaleLabel0 || this.cScale1;\n this.cScaleLabel2 = this.cScaleLabel2 || this.cScale1;\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n this[\"cScaleLabel\" + i] = this[\"cScaleLabel\" + i] || this.scaleLabelColor;\n }\n for (let i = 0; i < 5; i++) {\n this[\"surface\" + i] = this[\"surface\" + i] || adjust6(this.mainBkg, { l: -(5 + i * 5) });\n this[\"surfacePeer\" + i] = this[\"surfacePeer\" + i] || adjust6(this.mainBkg, { l: -(8 + i * 5) });\n }\n this.nodeBkg = this.mainBkg;\n this.nodeBorder = this.border1;\n this.clusterBkg = this.secondBkg;\n this.clusterBorder = this.border2;\n this.defaultLinkColor = this.lineColor;\n this.titleColor = this.text;\n this.sectionBkgColor = lighten5(this.contrast, 30);\n this.sectionBkgColor2 = lighten5(this.contrast, 30);\n this.taskBorderColor = darken5(this.contrast, 10);\n this.taskBkgColor = this.contrast;\n this.taskTextColor = this.taskTextLightColor;\n this.taskTextDarkColor = this.text;\n this.taskTextOutsideColor = this.taskTextDarkColor;\n this.activeTaskBorderColor = this.taskBorderColor;\n this.activeTaskBkgColor = this.mainBkg;\n this.gridColor = lighten5(this.border1, 30);\n this.doneTaskBkgColor = this.done;\n this.doneTaskBorderColor = this.lineColor;\n this.critBkgColor = this.critical;\n this.critBorderColor = darken5(this.critBkgColor, 10);\n this.todayLineColor = this.critBkgColor;\n this.archEdgeColor = this.lineColor;\n this.archEdgeArrowColor = this.lineColor;\n this.transitionColor = this.transitionColor || \"#000\";\n this.transitionLabelColor = this.transitionLabelColor || this.textColor;\n this.stateLabelColor = this.stateLabelColor || this.stateBkg || this.primaryTextColor;\n this.stateBkg = this.stateBkg || this.mainBkg;\n this.labelBackgroundColor = this.labelBackgroundColor || this.stateBkg;\n this.compositeBackground = this.compositeBackground || this.background || this.tertiaryColor;\n this.altBackground = this.altBackground || \"#f4f4f4\";\n this.compositeTitleBackground = this.compositeTitleBackground || this.mainBkg;\n this.stateBorder = this.stateBorder || \"#000\";\n this.innerEndBackground = this.primaryBorderColor;\n this.specialStateColor = \"#222\";\n this.errorBkgColor = this.errorBkgColor || this.tertiaryColor;\n this.errorTextColor = this.errorTextColor || this.tertiaryTextColor;\n this.classText = this.primaryTextColor;\n this.fillType0 = this.primaryColor;\n this.fillType1 = this.secondaryColor;\n this.fillType2 = adjust6(this.primaryColor, { h: 64 });\n this.fillType3 = adjust6(this.secondaryColor, { h: 64 });\n this.fillType4 = adjust6(this.primaryColor, { h: -64 });\n this.fillType5 = adjust6(this.secondaryColor, { h: -64 });\n this.fillType6 = adjust6(this.primaryColor, { h: 128 });\n this.fillType7 = adjust6(this.secondaryColor, { h: 128 });\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n this[\"pie\" + i] = this[\"cScale\" + i];\n }\n this.pie12 = this.pie0;\n this.pieTitleTextSize = this.pieTitleTextSize || \"25px\";\n this.pieTitleTextColor = this.pieTitleTextColor || this.taskTextDarkColor;\n this.pieSectionTextSize = this.pieSectionTextSize || \"17px\";\n this.pieSectionTextColor = this.pieSectionTextColor || this.textColor;\n this.pieLegendTextSize = this.pieLegendTextSize || \"17px\";\n this.pieLegendTextColor = this.pieLegendTextColor || this.taskTextDarkColor;\n this.pieStrokeColor = this.pieStrokeColor || \"black\";\n this.pieStrokeWidth = this.pieStrokeWidth || \"2px\";\n this.pieOuterStrokeWidth = this.pieOuterStrokeWidth || \"2px\";\n this.pieOuterStrokeColor = this.pieOuterStrokeColor || \"black\";\n this.pieOpacity = this.pieOpacity || \"0.7\";\n this.quadrant1Fill = this.quadrant1Fill || this.primaryColor;\n this.quadrant2Fill = this.quadrant2Fill || adjust6(this.primaryColor, { r: 5, g: 5, b: 5 });\n this.quadrant3Fill = this.quadrant3Fill || adjust6(this.primaryColor, { r: 10, g: 10, b: 10 });\n this.quadrant4Fill = this.quadrant4Fill || adjust6(this.primaryColor, { r: 15, g: 15, b: 15 });\n this.quadrant1TextFill = this.quadrant1TextFill || this.primaryTextColor;\n this.quadrant2TextFill = this.quadrant2TextFill || adjust6(this.primaryTextColor, { r: -5, g: -5, b: -5 });\n this.quadrant3TextFill = this.quadrant3TextFill || adjust6(this.primaryTextColor, { r: -10, g: -10, b: -10 });\n this.quadrant4TextFill = this.quadrant4TextFill || adjust6(this.primaryTextColor, { r: -15, g: -15, b: -15 });\n this.quadrantPointFill = this.quadrantPointFill || isDark5(this.quadrant1Fill) ? lighten5(this.quadrant1Fill) : darken5(this.quadrant1Fill);\n this.quadrantPointTextFill = this.quadrantPointTextFill || this.primaryTextColor;\n this.quadrantXAxisTextFill = this.quadrantXAxisTextFill || this.primaryTextColor;\n this.quadrantYAxisTextFill = this.quadrantYAxisTextFill || this.primaryTextColor;\n this.quadrantInternalBorderStrokeFill = this.quadrantInternalBorderStrokeFill || this.primaryBorderColor;\n this.quadrantExternalBorderStrokeFill = this.quadrantExternalBorderStrokeFill || this.primaryBorderColor;\n this.quadrantTitleFill = this.quadrantTitleFill || this.primaryTextColor;\n this.xyChart = {\n backgroundColor: this.xyChart?.backgroundColor || this.background,\n titleColor: this.xyChart?.titleColor || this.primaryTextColor,\n xAxisTitleColor: this.xyChart?.xAxisTitleColor || this.primaryTextColor,\n xAxisLabelColor: this.xyChart?.xAxisLabelColor || this.primaryTextColor,\n xAxisTickColor: this.xyChart?.xAxisTickColor || this.primaryTextColor,\n xAxisLineColor: this.xyChart?.xAxisLineColor || this.primaryTextColor,\n yAxisTitleColor: this.xyChart?.yAxisTitleColor || this.primaryTextColor,\n yAxisLabelColor: this.xyChart?.yAxisLabelColor || this.primaryTextColor,\n yAxisTickColor: this.xyChart?.yAxisTickColor || this.primaryTextColor,\n yAxisLineColor: this.xyChart?.yAxisLineColor || this.primaryTextColor,\n plotColorPalette: this.xyChart?.plotColorPalette || \"#EEE,#6BB8E4,#8ACB88,#C7ACD6,#E8DCC2,#FFB2A8,#FFF380,#7E8D91,#FFD8B1,#FAF3E0\"\n };\n this.requirementBackground = this.requirementBackground || this.primaryColor;\n this.requirementBorderColor = this.requirementBorderColor || this.primaryBorderColor;\n this.requirementBorderSize = this.requirementBorderSize || \"1\";\n this.requirementTextColor = this.requirementTextColor || this.primaryTextColor;\n this.relationColor = this.relationColor || this.lineColor;\n this.relationLabelBackground = this.relationLabelBackground || this.edgeLabelBackground;\n this.relationLabelColor = this.relationLabelColor || this.actorTextColor;\n this.git0 = darken5(this.pie1, 25) || this.primaryColor;\n this.git1 = this.pie2 || this.secondaryColor;\n this.git2 = this.pie3 || this.tertiaryColor;\n this.git3 = this.pie4 || adjust6(this.primaryColor, { h: -30 });\n this.git4 = this.pie5 || adjust6(this.primaryColor, { h: -60 });\n this.git5 = this.pie6 || adjust6(this.primaryColor, { h: -90 });\n this.git6 = this.pie7 || adjust6(this.primaryColor, { h: 60 });\n this.git7 = this.pie8 || adjust6(this.primaryColor, { h: 120 });\n this.gitInv0 = this.gitInv0 || invert5(this.git0);\n this.gitInv1 = this.gitInv1 || invert5(this.git1);\n this.gitInv2 = this.gitInv2 || invert5(this.git2);\n this.gitInv3 = this.gitInv3 || invert5(this.git3);\n this.gitInv4 = this.gitInv4 || invert5(this.git4);\n this.gitInv5 = this.gitInv5 || invert5(this.git5);\n this.gitInv6 = this.gitInv6 || invert5(this.git6);\n this.gitInv7 = this.gitInv7 || invert5(this.git7);\n this.branchLabelColor = this.branchLabelColor || this.labelTextColor;\n this.gitBranchLabel0 = this.branchLabelColor;\n this.gitBranchLabel1 = \"white\";\n this.gitBranchLabel2 = this.branchLabelColor;\n this.gitBranchLabel3 = \"white\";\n this.gitBranchLabel4 = this.branchLabelColor;\n this.gitBranchLabel5 = this.branchLabelColor;\n this.gitBranchLabel6 = this.branchLabelColor;\n this.gitBranchLabel7 = this.branchLabelColor;\n this.tagLabelColor = this.tagLabelColor || this.primaryTextColor;\n this.tagLabelBackground = this.tagLabelBackground || this.primaryColor;\n this.tagLabelBorder = this.tagBorder || this.primaryBorderColor;\n this.tagLabelFontSize = this.tagLabelFontSize || \"10px\";\n this.commitLabelColor = this.commitLabelColor || this.secondaryTextColor;\n this.commitLabelBackground = this.commitLabelBackground || this.secondaryColor;\n this.commitLabelFontSize = this.commitLabelFontSize || \"10px\";\n this.attributeBackgroundColorOdd = this.attributeBackgroundColorOdd || oldAttributeBackgroundColorOdd;\n this.attributeBackgroundColorEven = this.attributeBackgroundColorEven || oldAttributeBackgroundColorEven;\n }\n calculate(overrides) {\n if (typeof overrides !== \"object\") {\n this.updateColors();\n return;\n }\n const keys = Object.keys(overrides);\n keys.forEach((k) => {\n this[k] = overrides[k];\n });\n this.updateColors();\n keys.forEach((k) => {\n this[k] = overrides[k];\n });\n }\n};\nvar getThemeVariables5 = /* @__PURE__ */ __name((userOverrides) => {\n const theme = new Theme5();\n theme.calculate(userOverrides);\n return theme;\n}, \"getThemeVariables\");\n\n// src/themes/index.js\nvar themes_default = {\n base: {\n getThemeVariables\n },\n dark: {\n getThemeVariables: getThemeVariables2\n },\n default: {\n getThemeVariables: getThemeVariables3\n },\n forest: {\n getThemeVariables: getThemeVariables4\n },\n neutral: {\n getThemeVariables: getThemeVariables5\n }\n};\n\n// src/schemas/config.schema.yaml?only-defaults=true\nvar config_schema_default = {\n \"flowchart\": {\n \"useMaxWidth\": true,\n \"titleTopMargin\": 25,\n \"subGraphTitleMargin\": {\n \"top\": 0,\n \"bottom\": 0\n },\n \"diagramPadding\": 8,\n \"htmlLabels\": true,\n \"nodeSpacing\": 50,\n \"rankSpacing\": 50,\n \"curve\": \"basis\",\n \"padding\": 15,\n \"defaultRenderer\": \"dagre-wrapper\",\n \"wrappingWidth\": 200\n },\n \"sequence\": {\n \"useMaxWidth\": true,\n \"hideUnusedParticipants\": false,\n \"activationWidth\": 10,\n \"diagramMarginX\": 50,\n \"diagramMarginY\": 10,\n \"actorMargin\": 50,\n \"width\": 150,\n \"height\": 65,\n \"boxMargin\": 10,\n \"boxTextMargin\": 5,\n \"noteMargin\": 10,\n \"messageMargin\": 35,\n \"messageAlign\": \"center\",\n \"mirrorActors\": true,\n \"forceMenus\": false,\n \"bottomMarginAdj\": 1,\n \"rightAngles\": false,\n \"showSequenceNumbers\": false,\n \"actorFontSize\": 14,\n \"actorFontFamily\": '\"Open Sans\", sans-serif',\n \"actorFontWeight\": 400,\n \"noteFontSize\": 14,\n \"noteFontFamily\": '\"trebuchet ms\", verdana, arial, sans-serif',\n \"noteFontWeight\": 400,\n \"noteAlign\": \"center\",\n \"messageFontSize\": 16,\n \"messageFontFamily\": '\"trebuchet ms\", verdana, arial, sans-serif',\n \"messageFontWeight\": 400,\n \"wrap\": false,\n \"wrapPadding\": 10,\n \"labelBoxWidth\": 50,\n \"labelBoxHeight\": 20\n },\n \"gantt\": {\n \"useMaxWidth\": true,\n \"titleTopMargin\": 25,\n \"barHeight\": 20,\n \"barGap\": 4,\n \"topPadding\": 50,\n \"rightPadding\": 75,\n \"leftPadding\": 75,\n \"gridLineStartPadding\": 35,\n \"fontSize\": 11,\n \"sectionFontSize\": 11,\n \"numberSectionStyles\": 4,\n \"axisFormat\": \"%Y-%m-%d\",\n \"topAxis\": false,\n \"displayMode\": \"\",\n \"weekday\": \"sunday\"\n },\n \"journey\": {\n \"useMaxWidth\": true,\n \"diagramMarginX\": 50,\n \"diagramMarginY\": 10,\n \"leftMargin\": 150,\n \"width\": 150,\n \"height\": 50,\n \"boxMargin\": 10,\n \"boxTextMargin\": 5,\n \"noteMargin\": 10,\n \"messageMargin\": 35,\n \"messageAlign\": \"center\",\n \"bottomMarginAdj\": 1,\n \"rightAngles\": false,\n \"taskFontSize\": 14,\n \"taskFontFamily\": '\"Open Sans\", sans-serif',\n \"taskMargin\": 50,\n \"activationWidth\": 10,\n \"textPlacement\": \"fo\",\n \"actorColours\": [\n \"#8FBC8F\",\n \"#7CFC00\",\n \"#00FFFF\",\n \"#20B2AA\",\n \"#B0E0E6\",\n \"#FFFFE0\"\n ],\n \"sectionFills\": [\n \"#191970\",\n \"#8B008B\",\n \"#4B0082\",\n \"#2F4F4F\",\n \"#800000\",\n \"#8B4513\",\n \"#00008B\"\n ],\n \"sectionColours\": [\n \"#fff\"\n ]\n },\n \"class\": {\n \"useMaxWidth\": true,\n \"titleTopMargin\": 25,\n \"arrowMarkerAbsolute\": false,\n \"dividerMargin\": 10,\n \"padding\": 5,\n \"textHeight\": 10,\n \"defaultRenderer\": \"dagre-wrapper\",\n \"htmlLabels\": false,\n \"hideEmptyMembersBox\": false\n },\n \"state\": {\n \"useMaxWidth\": true,\n \"titleTopMargin\": 25,\n \"dividerMargin\": 10,\n \"sizeUnit\": 5,\n \"padding\": 8,\n \"textHeight\": 10,\n \"titleShift\": -15,\n \"noteMargin\": 10,\n \"forkWidth\": 70,\n \"forkHeight\": 7,\n \"miniPadding\": 2,\n \"fontSizeFactor\": 5.02,\n \"fontSize\": 24,\n \"labelHeight\": 16,\n \"edgeLengthFactor\": \"20\",\n \"compositTitleSize\": 35,\n \"radius\": 5,\n \"defaultRenderer\": \"dagre-wrapper\"\n },\n \"er\": {\n \"useMaxWidth\": true,\n \"titleTopMargin\": 25,\n \"diagramPadding\": 20,\n \"layoutDirection\": \"TB\",\n \"minEntityWidth\": 100,\n \"minEntityHeight\": 75,\n \"entityPadding\": 15,\n \"stroke\": \"gray\",\n \"fill\": \"honeydew\",\n \"fontSize\": 12\n },\n \"pie\": {\n \"useMaxWidth\": true,\n \"textPosition\": 0.75\n },\n \"quadrantChart\": {\n \"useMaxWidth\": true,\n \"chartWidth\": 500,\n \"chartHeight\": 500,\n \"titleFontSize\": 20,\n \"titlePadding\": 10,\n \"quadrantPadding\": 5,\n \"xAxisLabelPadding\": 5,\n \"yAxisLabelPadding\": 5,\n \"xAxisLabelFontSize\": 16,\n \"yAxisLabelFontSize\": 16,\n \"quadrantLabelFontSize\": 16,\n \"quadrantTextTopPadding\": 5,\n \"pointTextPadding\": 5,\n \"pointLabelFontSize\": 12,\n \"pointRadius\": 5,\n \"xAxisPosition\": \"top\",\n \"yAxisPosition\": \"left\",\n \"quadrantInternalBorderStrokeWidth\": 1,\n \"quadrantExternalBorderStrokeWidth\": 2\n },\n \"xyChart\": {\n \"useMaxWidth\": true,\n \"width\": 700,\n \"height\": 500,\n \"titleFontSize\": 20,\n \"titlePadding\": 10,\n \"showTitle\": true,\n \"xAxis\": {\n \"$ref\": \"#/$defs/XYChartAxisConfig\",\n \"showLabel\": true,\n \"labelFontSize\": 14,\n \"labelPadding\": 5,\n \"showTitle\": true,\n \"titleFontSize\": 16,\n \"titlePadding\": 5,\n \"showTick\": true,\n \"tickLength\": 5,\n \"tickWidth\": 2,\n \"showAxisLine\": true,\n \"axisLineWidth\": 2\n },\n \"yAxis\": {\n \"$ref\": \"#/$defs/XYChartAxisConfig\",\n \"showLabel\": true,\n \"labelFontSize\": 14,\n \"labelPadding\": 5,\n \"showTitle\": true,\n \"titleFontSize\": 16,\n \"titlePadding\": 5,\n \"showTick\": true,\n \"tickLength\": 5,\n \"tickWidth\": 2,\n \"showAxisLine\": true,\n \"axisLineWidth\": 2\n },\n \"chartOrientation\": \"vertical\",\n \"plotReservedSpacePercent\": 50\n },\n \"requirement\": {\n \"useMaxWidth\": true,\n \"rect_fill\": \"#f9f9f9\",\n \"text_color\": \"#333\",\n \"rect_border_size\": \"0.5px\",\n \"rect_border_color\": \"#bbb\",\n \"rect_min_width\": 200,\n \"rect_min_height\": 200,\n \"fontSize\": 14,\n \"rect_padding\": 10,\n \"line_height\": 20\n },\n \"mindmap\": {\n \"useMaxWidth\": true,\n \"padding\": 10,\n \"maxNodeWidth\": 200\n },\n \"kanban\": {\n \"useMaxWidth\": true,\n \"padding\": 8,\n \"sectionWidth\": 200,\n \"ticketBaseUrl\": \"\"\n },\n \"timeline\": {\n \"useMaxWidth\": true,\n \"diagramMarginX\": 50,\n \"diagramMarginY\": 10,\n \"leftMargin\": 150,\n \"width\": 150,\n \"height\": 50,\n \"boxMargin\": 10,\n \"boxTextMargin\": 5,\n \"noteMargin\": 10,\n \"messageMargin\": 35,\n \"messageAlign\": \"center\",\n \"bottomMarginAdj\": 1,\n \"rightAngles\": false,\n \"taskFontSize\": 14,\n \"taskFontFamily\": '\"Open Sans\", sans-serif',\n \"taskMargin\": 50,\n \"activationWidth\": 10,\n \"textPlacement\": \"fo\",\n \"actorColours\": [\n \"#8FBC8F\",\n \"#7CFC00\",\n \"#00FFFF\",\n \"#20B2AA\",\n \"#B0E0E6\",\n \"#FFFFE0\"\n ],\n \"sectionFills\": [\n \"#191970\",\n \"#8B008B\",\n \"#4B0082\",\n \"#2F4F4F\",\n \"#800000\",\n \"#8B4513\",\n \"#00008B\"\n ],\n \"sectionColours\": [\n \"#fff\"\n ],\n \"disableMulticolor\": false\n },\n \"gitGraph\": {\n \"useMaxWidth\": true,\n \"titleTopMargin\": 25,\n \"diagramPadding\": 8,\n \"nodeLabel\": {\n \"width\": 75,\n \"height\": 100,\n \"x\": -25,\n \"y\": 0\n },\n \"mainBranchName\": \"main\",\n \"mainBranchOrder\": 0,\n \"showCommitLabel\": true,\n \"showBranches\": true,\n \"rotateCommitLabel\": true,\n \"parallelCommits\": false,\n \"arrowMarkerAbsolute\": false\n },\n \"c4\": {\n \"useMaxWidth\": true,\n \"diagramMarginX\": 50,\n \"diagramMarginY\": 10,\n \"c4ShapeMargin\": 50,\n \"c4ShapePadding\": 20,\n \"width\": 216,\n \"height\": 60,\n \"boxMargin\": 10,\n \"c4ShapeInRow\": 4,\n \"nextLinePaddingX\": 0,\n \"c4BoundaryInRow\": 2,\n \"personFontSize\": 14,\n \"personFontFamily\": '\"Open Sans\", sans-serif',\n \"personFontWeight\": \"normal\",\n \"external_personFontSize\": 14,\n \"external_personFontFamily\": '\"Open Sans\", sans-serif',\n \"external_personFontWeight\": \"normal\",\n \"systemFontSize\": 14,\n \"systemFontFamily\": '\"Open Sans\", sans-serif',\n \"systemFontWeight\": \"normal\",\n \"external_systemFontSize\": 14,\n \"external_systemFontFamily\": '\"Open Sans\", sans-serif',\n \"external_systemFontWeight\": \"normal\",\n \"system_dbFontSize\": 14,\n \"system_dbFontFamily\": '\"Open Sans\", sans-serif',\n \"system_dbFontWeight\": \"normal\",\n \"external_system_dbFontSize\": 14,\n \"external_system_dbFontFamily\": '\"Open Sans\", sans-serif',\n \"external_system_dbFontWeight\": \"normal\",\n \"system_queueFontSize\": 14,\n \"system_queueFontFamily\": '\"Open Sans\", sans-serif',\n \"system_queueFontWeight\": \"normal\",\n \"external_system_queueFontSize\": 14,\n \"external_system_queueFontFamily\": '\"Open Sans\", sans-serif',\n \"external_system_queueFontWeight\": \"normal\",\n \"boundaryFontSize\": 14,\n \"boundaryFontFamily\": '\"Open Sans\", sans-serif',\n \"boundaryFontWeight\": \"normal\",\n \"messageFontSize\": 12,\n \"messageFontFamily\": '\"Open Sans\", sans-serif',\n \"messageFontWeight\": \"normal\",\n \"containerFontSize\": 14,\n \"containerFontFamily\": '\"Open Sans\", sans-serif',\n \"containerFontWeight\": \"normal\",\n \"external_containerFontSize\": 14,\n \"external_containerFontFamily\": '\"Open Sans\", sans-serif',\n \"external_containerFontWeight\": \"normal\",\n \"container_dbFontSize\": 14,\n \"container_dbFontFamily\": '\"Open Sans\", sans-serif',\n \"container_dbFontWeight\": \"normal\",\n \"external_container_dbFontSize\": 14,\n \"external_container_dbFontFamily\": '\"Open Sans\", sans-serif',\n \"external_container_dbFontWeight\": \"normal\",\n \"container_queueFontSize\": 14,\n \"container_queueFontFamily\": '\"Open Sans\", sans-serif',\n \"container_queueFontWeight\": \"normal\",\n \"external_container_queueFontSize\": 14,\n \"external_container_queueFontFamily\": '\"Open Sans\", sans-serif',\n \"external_container_queueFontWeight\": \"normal\",\n \"componentFontSize\": 14,\n \"componentFontFamily\": '\"Open Sans\", sans-serif',\n \"componentFontWeight\": \"normal\",\n \"external_componentFontSize\": 14,\n \"external_componentFontFamily\": '\"Open Sans\", sans-serif',\n \"external_componentFontWeight\": \"normal\",\n \"component_dbFontSize\": 14,\n \"component_dbFontFamily\": '\"Open Sans\", sans-serif',\n \"component_dbFontWeight\": \"normal\",\n \"external_component_dbFontSize\": 14,\n \"external_component_dbFontFamily\": '\"Open Sans\", sans-serif',\n \"external_component_dbFontWeight\": \"normal\",\n \"component_queueFontSize\": 14,\n \"component_queueFontFamily\": '\"Open Sans\", sans-serif',\n \"component_queueFontWeight\": \"normal\",\n \"external_component_queueFontSize\": 14,\n \"external_component_queueFontFamily\": '\"Open Sans\", sans-serif',\n \"external_component_queueFontWeight\": \"normal\",\n \"wrap\": true,\n \"wrapPadding\": 10,\n \"person_bg_color\": \"#08427B\",\n \"person_border_color\": \"#073B6F\",\n \"external_person_bg_color\": \"#686868\",\n \"external_person_border_color\": \"#8A8A8A\",\n \"system_bg_color\": \"#1168BD\",\n \"system_border_color\": \"#3C7FC0\",\n \"system_db_bg_color\": \"#1168BD\",\n \"system_db_border_color\": \"#3C7FC0\",\n \"system_queue_bg_color\": \"#1168BD\",\n \"system_queue_border_color\": \"#3C7FC0\",\n \"external_system_bg_color\": \"#999999\",\n \"external_system_border_color\": \"#8A8A8A\",\n \"external_system_db_bg_color\": \"#999999\",\n \"external_system_db_border_color\": \"#8A8A8A\",\n \"external_system_queue_bg_color\": \"#999999\",\n \"external_system_queue_border_color\": \"#8A8A8A\",\n \"container_bg_color\": \"#438DD5\",\n \"container_border_color\": \"#3C7FC0\",\n \"container_db_bg_color\": \"#438DD5\",\n \"container_db_border_color\": \"#3C7FC0\",\n \"container_queue_bg_color\": \"#438DD5\",\n \"container_queue_border_color\": \"#3C7FC0\",\n \"external_container_bg_color\": \"#B3B3B3\",\n \"external_container_border_color\": \"#A6A6A6\",\n \"external_container_db_bg_color\": \"#B3B3B3\",\n \"external_container_db_border_color\": \"#A6A6A6\",\n \"external_container_queue_bg_color\": \"#B3B3B3\",\n \"external_container_queue_border_color\": \"#A6A6A6\",\n \"component_bg_color\": \"#85BBF0\",\n \"component_border_color\": \"#78A8D8\",\n \"component_db_bg_color\": \"#85BBF0\",\n \"component_db_border_color\": \"#78A8D8\",\n \"component_queue_bg_color\": \"#85BBF0\",\n \"component_queue_border_color\": \"#78A8D8\",\n \"external_component_bg_color\": \"#CCCCCC\",\n \"external_component_border_color\": \"#BFBFBF\",\n \"external_component_db_bg_color\": \"#CCCCCC\",\n \"external_component_db_border_color\": \"#BFBFBF\",\n \"external_component_queue_bg_color\": \"#CCCCCC\",\n \"external_component_queue_border_color\": \"#BFBFBF\"\n },\n \"sankey\": {\n \"useMaxWidth\": true,\n \"width\": 600,\n \"height\": 400,\n \"linkColor\": \"gradient\",\n \"nodeAlignment\": \"justify\",\n \"showValues\": true,\n \"prefix\": \"\",\n \"suffix\": \"\"\n },\n \"block\": {\n \"useMaxWidth\": true,\n \"padding\": 8\n },\n \"packet\": {\n \"useMaxWidth\": true,\n \"rowHeight\": 32,\n \"bitWidth\": 32,\n \"bitsPerRow\": 32,\n \"showBits\": true,\n \"paddingX\": 5,\n \"paddingY\": 5\n },\n \"architecture\": {\n \"useMaxWidth\": true,\n \"padding\": 40,\n \"iconSize\": 80,\n \"fontSize\": 16\n },\n \"theme\": \"default\",\n \"look\": \"classic\",\n \"handDrawnSeed\": 0,\n \"layout\": \"dagre\",\n \"maxTextSize\": 5e4,\n \"maxEdges\": 500,\n \"darkMode\": false,\n \"fontFamily\": '\"trebuchet ms\", verdana, arial, sans-serif;',\n \"logLevel\": 5,\n \"securityLevel\": \"strict\",\n \"startOnLoad\": true,\n \"arrowMarkerAbsolute\": false,\n \"secure\": [\n \"secure\",\n \"securityLevel\",\n \"startOnLoad\",\n \"maxTextSize\",\n \"suppressErrorRendering\",\n \"maxEdges\"\n ],\n \"legacyMathML\": false,\n \"forceLegacyMathML\": false,\n \"deterministicIds\": false,\n \"fontSize\": 16,\n \"markdownAutoWrap\": true,\n \"suppressErrorRendering\": false\n};\n\n// src/defaultConfig.ts\nvar config = {\n ...config_schema_default,\n // Set, even though they're `undefined` so that `configKeys` finds these keys\n // TODO: Should we replace these with `null` so that they can go in the JSON Schema?\n deterministicIDSeed: void 0,\n elk: {\n // mergeEdges is needed here to be considered\n mergeEdges: false,\n nodePlacementStrategy: \"BRANDES_KOEPF\"\n },\n themeCSS: void 0,\n // add non-JSON default config values\n themeVariables: themes_default.default.getThemeVariables(),\n sequence: {\n ...config_schema_default.sequence,\n messageFont: /* @__PURE__ */ __name(function() {\n return {\n fontFamily: this.messageFontFamily,\n fontSize: this.messageFontSize,\n fontWeight: this.messageFontWeight\n };\n }, \"messageFont\"),\n noteFont: /* @__PURE__ */ __name(function() {\n return {\n fontFamily: this.noteFontFamily,\n fontSize: this.noteFontSize,\n fontWeight: this.noteFontWeight\n };\n }, \"noteFont\"),\n actorFont: /* @__PURE__ */ __name(function() {\n return {\n fontFamily: this.actorFontFamily,\n fontSize: this.actorFontSize,\n fontWeight: this.actorFontWeight\n };\n }, \"actorFont\")\n },\n class: {\n hideEmptyMembersBox: false\n },\n gantt: {\n ...config_schema_default.gantt,\n tickInterval: void 0,\n useWidth: void 0\n // can probably be removed since `configKeys` already includes this\n },\n c4: {\n ...config_schema_default.c4,\n useWidth: void 0,\n personFont: /* @__PURE__ */ __name(function() {\n return {\n fontFamily: this.personFontFamily,\n fontSize: this.personFontSize,\n fontWeight: this.personFontWeight\n };\n }, \"personFont\"),\n external_personFont: /* @__PURE__ */ __name(function() {\n return {\n fontFamily: this.external_personFontFamily,\n fontSize: this.external_personFontSize,\n fontWeight: this.external_personFontWeight\n };\n }, \"external_personFont\"),\n systemFont: /* @__PURE__ */ __name(function() {\n return {\n fontFamily: this.systemFontFamily,\n fontSize: this.systemFontSize,\n fontWeight: this.systemFontWeight\n };\n }, \"systemFont\"),\n external_systemFont: /* @__PURE__ */ __name(function() {\n return {\n fontFamily: this.external_systemFontFamily,\n fontSize: this.external_systemFontSize,\n fontWeight: this.external_systemFontWeight\n };\n }, \"external_systemFont\"),\n system_dbFont: /* @__PURE__ */ __name(function() {\n return {\n fontFamily: this.system_dbFontFamily,\n fontSize: this.system_dbFontSize,\n fontWeight: this.system_dbFontWeight\n };\n }, \"system_dbFont\"),\n external_system_dbFont: /* @__PURE__ */ __name(function() {\n return {\n fontFamily: this.external_system_dbFontFamily,\n fontSize: this.external_system_dbFontSize,\n fontWeight: this.external_system_dbFontWeight\n };\n }, \"external_system_dbFont\"),\n system_queueFont: /* @__PURE__ */ __name(function() {\n return {\n fontFamily: this.system_queueFontFamily,\n fontSize: this.system_queueFontSize,\n fontWeight: this.system_queueFontWeight\n };\n }, \"system_queueFont\"),\n external_system_queueFont: /* @__PURE__ */ __name(function() {\n return {\n fontFamily: this.external_system_queueFontFamily,\n fontSize: this.external_system_queueFontSize,\n fontWeight: this.external_system_queueFontWeight\n };\n }, \"external_system_queueFont\"),\n containerFont: /* @__PURE__ */ __name(function() {\n return {\n fontFamily: this.containerFontFamily,\n fontSize: this.containerFontSize,\n fontWeight: this.containerFontWeight\n };\n }, \"containerFont\"),\n external_containerFont: /* @__PURE__ */ __name(function() {\n return {\n fontFamily: this.external_containerFontFamily,\n fontSize: this.external_containerFontSize,\n fontWeight: this.external_containerFontWeight\n };\n }, \"external_containerFont\"),\n container_dbFont: /* @__PURE__ */ __name(function() {\n return {\n fontFamily: this.container_dbFontFamily,\n fontSize: this.container_dbFontSize,\n fontWeight: this.container_dbFontWeight\n };\n }, \"container_dbFont\"),\n external_container_dbFont: /* @__PURE__ */ __name(function() {\n return {\n fontFamily: this.external_container_dbFontFamily,\n fontSize: this.external_container_dbFontSize,\n fontWeight: this.external_container_dbFontWeight\n };\n }, \"external_container_dbFont\"),\n container_queueFont: /* @__PURE__ */ __name(function() {\n return {\n fontFamily: this.container_queueFontFamily,\n fontSize: this.container_queueFontSize,\n fontWeight: this.container_queueFontWeight\n };\n }, \"container_queueFont\"),\n external_container_queueFont: /* @__PURE__ */ __name(function() {\n return {\n fontFamily: this.external_container_queueFontFamily,\n fontSize: this.external_container_queueFontSize,\n fontWeight: this.external_container_queueFontWeight\n };\n }, \"external_container_queueFont\"),\n componentFont: /* @__PURE__ */ __name(function() {\n return {\n fontFamily: this.componentFontFamily,\n fontSize: this.componentFontSize,\n fontWeight: this.componentFontWeight\n };\n }, \"componentFont\"),\n external_componentFont: /* @__PURE__ */ __name(function() {\n return {\n fontFamily: this.external_componentFontFamily,\n fontSize: this.external_componentFontSize,\n fontWeight: this.external_componentFontWeight\n };\n }, \"external_componentFont\"),\n component_dbFont: /* @__PURE__ */ __name(function() {\n return {\n fontFamily: this.component_dbFontFamily,\n fontSize: this.component_dbFontSize,\n fontWeight: this.component_dbFontWeight\n };\n }, \"component_dbFont\"),\n external_component_dbFont: /* @__PURE__ */ __name(function() {\n return {\n fontFamily: this.external_component_dbFontFamily,\n fontSize: this.external_component_dbFontSize,\n fontWeight: this.external_component_dbFontWeight\n };\n }, \"external_component_dbFont\"),\n component_queueFont: /* @__PURE__ */ __name(function() {\n return {\n fontFamily: this.component_queueFontFamily,\n fontSize: this.component_queueFontSize,\n fontWeight: this.component_queueFontWeight\n };\n }, \"component_queueFont\"),\n external_component_queueFont: /* @__PURE__ */ __name(function() {\n return {\n fontFamily: this.external_component_queueFontFamily,\n fontSize: this.external_component_queueFontSize,\n fontWeight: this.external_component_queueFontWeight\n };\n }, \"external_component_queueFont\"),\n boundaryFont: /* @__PURE__ */ __name(function() {\n return {\n fontFamily: this.boundaryFontFamily,\n fontSize: this.boundaryFontSize,\n fontWeight: this.boundaryFontWeight\n };\n }, \"boundaryFont\"),\n messageFont: /* @__PURE__ */ __name(function() {\n return {\n fontFamily: this.messageFontFamily,\n fontSize: this.messageFontSize,\n fontWeight: this.messageFontWeight\n };\n }, \"messageFont\")\n },\n pie: {\n ...config_schema_default.pie,\n useWidth: 984\n },\n xyChart: {\n ...config_schema_default.xyChart,\n useWidth: void 0\n },\n requirement: {\n ...config_schema_default.requirement,\n useWidth: void 0\n },\n packet: {\n ...config_schema_default.packet\n }\n};\nvar keyify = /* @__PURE__ */ __name((obj, prefix = \"\") => Object.keys(obj).reduce((res, el) => {\n if (Array.isArray(obj[el])) {\n return res;\n } else if (typeof obj[el] === \"object\" && obj[el] !== null) {\n return [...res, prefix + el, ...keyify(obj[el], \"\")];\n }\n return [...res, prefix + el];\n}, []), \"keyify\");\nvar configKeys = new Set(keyify(config, \"\"));\nvar defaultConfig_default = config;\n\n// src/utils/sanitizeDirective.ts\nvar sanitizeDirective = /* @__PURE__ */ __name((args) => {\n log.debug(\"sanitizeDirective called with\", args);\n if (typeof args !== \"object\" || args == null) {\n return;\n }\n if (Array.isArray(args)) {\n args.forEach((arg) => sanitizeDirective(arg));\n return;\n }\n for (const key of Object.keys(args)) {\n log.debug(\"Checking key\", key);\n if (key.startsWith(\"__\") || key.includes(\"proto\") || key.includes(\"constr\") || !configKeys.has(key) || args[key] == null) {\n log.debug(\"sanitize deleting key: \", key);\n delete args[key];\n continue;\n }\n if (typeof args[key] === \"object\") {\n log.debug(\"sanitizing object\", key);\n sanitizeDirective(args[key]);\n continue;\n }\n const cssMatchers = [\"themeCSS\", \"fontFamily\", \"altFontFamily\"];\n for (const cssKey of cssMatchers) {\n if (key.includes(cssKey)) {\n log.debug(\"sanitizing css option\", key);\n args[key] = sanitizeCss(args[key]);\n }\n }\n }\n if (args.themeVariables) {\n for (const k of Object.keys(args.themeVariables)) {\n const val = args.themeVariables[k];\n if (val?.match && !val.match(/^[\\d \"#%(),.;A-Za-z]+$/)) {\n args.themeVariables[k] = \"\";\n }\n }\n }\n log.debug(\"After sanitization\", args);\n}, \"sanitizeDirective\");\nvar sanitizeCss = /* @__PURE__ */ __name((str) => {\n let startCnt = 0;\n let endCnt = 0;\n for (const element of str) {\n if (startCnt < endCnt) {\n return \"{ /* ERROR: Unbalanced CSS */ }\";\n }\n if (element === \"{\") {\n startCnt++;\n } else if (element === \"}\") {\n endCnt++;\n }\n }\n if (startCnt !== endCnt) {\n return \"{ /* ERROR: Unbalanced CSS */ }\";\n }\n return str;\n}, \"sanitizeCss\");\n\n// src/config.ts\nvar defaultConfig = Object.freeze(defaultConfig_default);\nvar siteConfig = assignWithDepth_default({}, defaultConfig);\nvar configFromInitialize;\nvar directives = [];\nvar currentConfig = assignWithDepth_default({}, defaultConfig);\nvar updateCurrentConfig = /* @__PURE__ */ __name((siteCfg, _directives) => {\n let cfg = assignWithDepth_default({}, siteCfg);\n let sumOfDirectives = {};\n for (const d of _directives) {\n sanitize(d);\n sumOfDirectives = assignWithDepth_default(sumOfDirectives, d);\n }\n cfg = assignWithDepth_default(cfg, sumOfDirectives);\n if (sumOfDirectives.theme && sumOfDirectives.theme in themes_default) {\n const tmpConfigFromInitialize = assignWithDepth_default({}, configFromInitialize);\n const themeVariables = assignWithDepth_default(\n tmpConfigFromInitialize.themeVariables || {},\n sumOfDirectives.themeVariables\n );\n if (cfg.theme && cfg.theme in themes_default) {\n cfg.themeVariables = themes_default[cfg.theme].getThemeVariables(themeVariables);\n }\n }\n currentConfig = cfg;\n checkConfig(currentConfig);\n return currentConfig;\n}, \"updateCurrentConfig\");\nvar setSiteConfig = /* @__PURE__ */ __name((conf) => {\n siteConfig = assignWithDepth_default({}, defaultConfig);\n siteConfig = assignWithDepth_default(siteConfig, conf);\n if (conf.theme && themes_default[conf.theme]) {\n siteConfig.themeVariables = themes_default[conf.theme].getThemeVariables(conf.themeVariables);\n }\n updateCurrentConfig(siteConfig, directives);\n return siteConfig;\n}, \"setSiteConfig\");\nvar saveConfigFromInitialize = /* @__PURE__ */ __name((conf) => {\n configFromInitialize = assignWithDepth_default({}, conf);\n}, \"saveConfigFromInitialize\");\nvar updateSiteConfig = /* @__PURE__ */ __name((conf) => {\n siteConfig = assignWithDepth_default(siteConfig, conf);\n updateCurrentConfig(siteConfig, directives);\n return siteConfig;\n}, \"updateSiteConfig\");\nvar getSiteConfig = /* @__PURE__ */ __name(() => {\n return assignWithDepth_default({}, siteConfig);\n}, \"getSiteConfig\");\nvar setConfig = /* @__PURE__ */ __name((conf) => {\n checkConfig(conf);\n assignWithDepth_default(currentConfig, conf);\n return getConfig();\n}, \"setConfig\");\nvar getConfig = /* @__PURE__ */ __name(() => {\n return assignWithDepth_default({}, currentConfig);\n}, \"getConfig\");\nvar sanitize = /* @__PURE__ */ __name((options) => {\n if (!options) {\n return;\n }\n [\"secure\", ...siteConfig.secure ?? []].forEach((key) => {\n if (Object.hasOwn(options, key)) {\n log.debug(`Denied attempt to modify a secure key ${key}`, options[key]);\n delete options[key];\n }\n });\n Object.keys(options).forEach((key) => {\n if (key.startsWith(\"__\")) {\n delete options[key];\n }\n });\n Object.keys(options).forEach((key) => {\n if (typeof options[key] === \"string\" && (options[key].includes(\"<\") || options[key].includes(\">\") || options[key].includes(\"url(data:\"))) {\n delete options[key];\n }\n if (typeof options[key] === \"object\") {\n sanitize(options[key]);\n }\n });\n}, \"sanitize\");\nvar addDirective = /* @__PURE__ */ __name((directive) => {\n sanitizeDirective(directive);\n if (directive.fontFamily && !directive.themeVariables?.fontFamily) {\n directive.themeVariables = {\n ...directive.themeVariables,\n fontFamily: directive.fontFamily\n };\n }\n directives.push(directive);\n updateCurrentConfig(siteConfig, directives);\n}, \"addDirective\");\nvar reset = /* @__PURE__ */ __name((config2 = siteConfig) => {\n directives = [];\n updateCurrentConfig(config2, directives);\n}, \"reset\");\nvar ConfigWarning = {\n LAZY_LOAD_DEPRECATED: \"The configuration options lazyLoadedDiagrams and loadExternalDiagramsAtStartup are deprecated. Please use registerExternalDiagrams instead.\"\n};\nvar issuedWarnings = {};\nvar issueWarning = /* @__PURE__ */ __name((warning) => {\n if (issuedWarnings[warning]) {\n return;\n }\n log.warn(ConfigWarning[warning]);\n issuedWarnings[warning] = true;\n}, \"issueWarning\");\nvar checkConfig = /* @__PURE__ */ __name((config2) => {\n if (!config2) {\n return;\n }\n if (config2.lazyLoadedDiagrams || config2.loadExternalDiagramsAtStartup) {\n issueWarning(\"LAZY_LOAD_DEPRECATED\");\n }\n}, \"checkConfig\");\n\n// src/diagrams/common/common.ts\nimport DOMPurify from \"dompurify\";\nvar lineBreakRegex = //gi;\nvar getRows = /* @__PURE__ */ __name((s) => {\n if (!s) {\n return [\"\"];\n }\n const str = breakToPlaceholder(s).replace(/\\\\n/g, \"#br#\");\n return str.split(\"#br#\");\n}, \"getRows\");\nvar setupDompurifyHooksIfNotSetup = /* @__PURE__ */ (() => {\n let setup = false;\n return () => {\n if (!setup) {\n setupDompurifyHooks();\n setup = true;\n }\n };\n})();\nfunction setupDompurifyHooks() {\n const TEMPORARY_ATTRIBUTE = \"data-temp-href-target\";\n DOMPurify.addHook(\"beforeSanitizeAttributes\", (node) => {\n if (node instanceof Element && node.tagName === \"A\" && node.hasAttribute(\"target\")) {\n node.setAttribute(TEMPORARY_ATTRIBUTE, node.getAttribute(\"target\") ?? \"\");\n }\n });\n DOMPurify.addHook(\"afterSanitizeAttributes\", (node) => {\n if (node instanceof Element && node.tagName === \"A\" && node.hasAttribute(TEMPORARY_ATTRIBUTE)) {\n node.setAttribute(\"target\", node.getAttribute(TEMPORARY_ATTRIBUTE) ?? \"\");\n node.removeAttribute(TEMPORARY_ATTRIBUTE);\n if (node.getAttribute(\"target\") === \"_blank\") {\n node.setAttribute(\"rel\", \"noopener\");\n }\n }\n });\n}\n__name(setupDompurifyHooks, \"setupDompurifyHooks\");\nvar removeScript = /* @__PURE__ */ __name((txt) => {\n setupDompurifyHooksIfNotSetup();\n const sanitizedText = DOMPurify.sanitize(txt);\n return sanitizedText;\n}, \"removeScript\");\nvar sanitizeMore = /* @__PURE__ */ __name((text, config2) => {\n if (config2.flowchart?.htmlLabels !== false) {\n const level = config2.securityLevel;\n if (level === \"antiscript\" || level === \"strict\") {\n text = removeScript(text);\n } else if (level !== \"loose\") {\n text = breakToPlaceholder(text);\n text = text.replace(//g, \">\");\n text = text.replace(/=/g, \"=\");\n text = placeholderToBreak(text);\n }\n }\n return text;\n}, \"sanitizeMore\");\nvar sanitizeText = /* @__PURE__ */ __name((text, config2) => {\n if (!text) {\n return text;\n }\n if (config2.dompurifyConfig) {\n text = DOMPurify.sanitize(sanitizeMore(text, config2), config2.dompurifyConfig).toString();\n } else {\n text = DOMPurify.sanitize(sanitizeMore(text, config2), {\n FORBID_TAGS: [\"style\"]\n }).toString();\n }\n return text;\n}, \"sanitizeText\");\nvar sanitizeTextOrArray = /* @__PURE__ */ __name((a, config2) => {\n if (typeof a === \"string\") {\n return sanitizeText(a, config2);\n }\n return a.flat().map((x) => sanitizeText(x, config2));\n}, \"sanitizeTextOrArray\");\nvar hasBreaks = /* @__PURE__ */ __name((text) => {\n return lineBreakRegex.test(text);\n}, \"hasBreaks\");\nvar splitBreaks = /* @__PURE__ */ __name((text) => {\n return text.split(lineBreakRegex);\n}, \"splitBreaks\");\nvar placeholderToBreak = /* @__PURE__ */ __name((s) => {\n return s.replace(/#br#/g, \"
    \");\n}, \"placeholderToBreak\");\nvar breakToPlaceholder = /* @__PURE__ */ __name((s) => {\n return s.replace(lineBreakRegex, \"#br#\");\n}, \"breakToPlaceholder\");\nvar getUrl = /* @__PURE__ */ __name((useAbsolute) => {\n let url = \"\";\n if (useAbsolute) {\n url = window.location.protocol + \"//\" + window.location.host + window.location.pathname + window.location.search;\n url = url.replaceAll(/\\(/g, \"\\\\(\");\n url = url.replaceAll(/\\)/g, \"\\\\)\");\n }\n return url;\n}, \"getUrl\");\nvar evaluate = /* @__PURE__ */ __name((val) => val === false || [\"false\", \"null\", \"0\"].includes(String(val).trim().toLowerCase()) ? false : true, \"evaluate\");\nvar getMax = /* @__PURE__ */ __name(function(...values) {\n const newValues = values.filter((value) => {\n return !isNaN(value);\n });\n return Math.max(...newValues);\n}, \"getMax\");\nvar getMin = /* @__PURE__ */ __name(function(...values) {\n const newValues = values.filter((value) => {\n return !isNaN(value);\n });\n return Math.min(...newValues);\n}, \"getMin\");\nvar parseGenericTypes = /* @__PURE__ */ __name(function(input) {\n const inputSets = input.split(/(,)/);\n const output = [];\n for (let i = 0; i < inputSets.length; i++) {\n let thisSet = inputSets[i];\n if (thisSet === \",\" && i > 0 && i + 1 < inputSets.length) {\n const previousSet = inputSets[i - 1];\n const nextSet = inputSets[i + 1];\n if (shouldCombineSets(previousSet, nextSet)) {\n thisSet = previousSet + \",\" + nextSet;\n i++;\n output.pop();\n }\n }\n output.push(processSet(thisSet));\n }\n return output.join(\"\");\n}, \"parseGenericTypes\");\nvar countOccurrence = /* @__PURE__ */ __name((string, substring) => {\n return Math.max(0, string.split(substring).length - 1);\n}, \"countOccurrence\");\nvar shouldCombineSets = /* @__PURE__ */ __name((previousSet, nextSet) => {\n const prevCount = countOccurrence(previousSet, \"~\");\n const nextCount = countOccurrence(nextSet, \"~\");\n return prevCount === 1 && nextCount === 1;\n}, \"shouldCombineSets\");\nvar processSet = /* @__PURE__ */ __name((input) => {\n const tildeCount = countOccurrence(input, \"~\");\n let hasStartingTilde = false;\n if (tildeCount <= 1) {\n return input;\n }\n if (tildeCount % 2 !== 0 && input.startsWith(\"~\")) {\n input = input.substring(1);\n hasStartingTilde = true;\n }\n const chars = [...input];\n let first = chars.indexOf(\"~\");\n let last = chars.lastIndexOf(\"~\");\n while (first !== -1 && last !== -1 && first !== last) {\n chars[first] = \"<\";\n chars[last] = \">\";\n first = chars.indexOf(\"~\");\n last = chars.lastIndexOf(\"~\");\n }\n if (hasStartingTilde) {\n chars.unshift(\"~\");\n }\n return chars.join(\"\");\n}, \"processSet\");\nvar isMathMLSupported = /* @__PURE__ */ __name(() => window.MathMLElement !== void 0, \"isMathMLSupported\");\nvar katexRegex = /\\$\\$(.*)\\$\\$/g;\nvar hasKatex = /* @__PURE__ */ __name((text) => (text.match(katexRegex)?.length ?? 0) > 0, \"hasKatex\");\nvar calculateMathMLDimensions = /* @__PURE__ */ __name(async (text, config2) => {\n text = await renderKatex(text, config2);\n const divElem = document.createElement(\"div\");\n divElem.innerHTML = text;\n divElem.id = \"katex-temp\";\n divElem.style.visibility = \"hidden\";\n divElem.style.position = \"absolute\";\n divElem.style.top = \"0\";\n const body = document.querySelector(\"body\");\n body?.insertAdjacentElement(\"beforeend\", divElem);\n const dim = { width: divElem.clientWidth, height: divElem.clientHeight };\n divElem.remove();\n return dim;\n}, \"calculateMathMLDimensions\");\nvar renderKatex = /* @__PURE__ */ __name(async (text, config2) => {\n if (!hasKatex(text)) {\n return text;\n }\n if (!(isMathMLSupported() || config2.legacyMathML || config2.forceLegacyMathML)) {\n return text.replace(katexRegex, \"MathML is unsupported in this environment.\");\n }\n const { default: katex } = await import(\"katex\");\n const outputMode = config2.forceLegacyMathML || !isMathMLSupported() && config2.legacyMathML ? \"htmlAndMathml\" : \"mathml\";\n return text.split(lineBreakRegex).map(\n (line) => hasKatex(line) ? `
    ${line}
    ` : `
    ${line}
    `\n ).join(\"\").replace(\n katexRegex,\n (_, c) => katex.renderToString(c, {\n throwOnError: true,\n displayMode: true,\n output: outputMode\n }).replace(/\\n/g, \" \").replace(//g, \"\")\n );\n}, \"renderKatex\");\nvar common_default = {\n getRows,\n sanitizeText,\n sanitizeTextOrArray,\n hasBreaks,\n splitBreaks,\n lineBreakRegex,\n removeScript,\n getUrl,\n evaluate,\n getMax,\n getMin\n};\n\n// src/setupGraphViewbox.js\nvar d3Attrs = /* @__PURE__ */ __name(function(d3Elem, attrs) {\n for (let attr of attrs) {\n d3Elem.attr(attr[0], attr[1]);\n }\n}, \"d3Attrs\");\nvar calculateSvgSizeAttrs = /* @__PURE__ */ __name(function(height, width, useMaxWidth) {\n let attrs = /* @__PURE__ */ new Map();\n if (useMaxWidth) {\n attrs.set(\"width\", \"100%\");\n attrs.set(\"style\", `max-width: ${width}px;`);\n } else {\n attrs.set(\"height\", height);\n attrs.set(\"width\", width);\n }\n return attrs;\n}, \"calculateSvgSizeAttrs\");\nvar configureSvgSize = /* @__PURE__ */ __name(function(svgElem, height, width, useMaxWidth) {\n const attrs = calculateSvgSizeAttrs(height, width, useMaxWidth);\n d3Attrs(svgElem, attrs);\n}, \"configureSvgSize\");\nvar setupGraphViewbox = /* @__PURE__ */ __name(function(graph, svgElem, padding, useMaxWidth) {\n const svgBounds = svgElem.node().getBBox();\n const sWidth = svgBounds.width;\n const sHeight = svgBounds.height;\n log.info(`SVG bounds: ${sWidth}x${sHeight}`, svgBounds);\n let width = 0;\n let height = 0;\n log.info(`Graph bounds: ${width}x${height}`, graph);\n width = sWidth + padding * 2;\n height = sHeight + padding * 2;\n log.info(`Calculated bounds: ${width}x${height}`);\n configureSvgSize(svgElem, height, width, useMaxWidth);\n const vBox = `${svgBounds.x - padding} ${svgBounds.y - padding} ${svgBounds.width + 2 * padding} ${svgBounds.height + 2 * padding}`;\n svgElem.attr(\"viewBox\", vBox);\n}, \"setupGraphViewbox\");\n\n// src/styles.ts\nvar themes = {};\nvar getStyles = /* @__PURE__ */ __name((type, userStyles, options) => {\n let diagramStyles = \"\";\n if (type in themes && themes[type]) {\n diagramStyles = themes[type](options);\n } else {\n log.warn(`No theme found for ${type}`);\n }\n return ` & {\n font-family: ${options.fontFamily};\n font-size: ${options.fontSize};\n fill: ${options.textColor}\n }\n\n /* Classes common for multiple diagrams */\n\n & .error-icon {\n fill: ${options.errorBkgColor};\n }\n & .error-text {\n fill: ${options.errorTextColor};\n stroke: ${options.errorTextColor};\n }\n\n & .edge-thickness-normal {\n stroke-width: 1px;\n }\n & .edge-thickness-thick {\n stroke-width: 3.5px\n }\n & .edge-pattern-solid {\n stroke-dasharray: 0;\n }\n & .edge-thickness-invisible {\n stroke-width: 0;\n fill: none;\n }\n & .edge-pattern-dashed{\n stroke-dasharray: 3;\n }\n .edge-pattern-dotted {\n stroke-dasharray: 2;\n }\n\n & .marker {\n fill: ${options.lineColor};\n stroke: ${options.lineColor};\n }\n & .marker.cross {\n stroke: ${options.lineColor};\n }\n\n & svg {\n font-family: ${options.fontFamily};\n font-size: ${options.fontSize};\n }\n & p {\n margin: 0\n }\n\n ${diagramStyles}\n\n ${userStyles}\n`;\n}, \"getStyles\");\nvar addStylesForDiagram = /* @__PURE__ */ __name((type, diagramTheme) => {\n if (diagramTheme !== void 0) {\n themes[type] = diagramTheme;\n }\n}, \"addStylesForDiagram\");\nvar styles_default = getStyles;\n\n// src/diagrams/common/commonDb.ts\nvar commonDb_exports = {};\n__export(commonDb_exports, {\n clear: () => clear,\n getAccDescription: () => getAccDescription,\n getAccTitle: () => getAccTitle,\n getDiagramTitle: () => getDiagramTitle,\n setAccDescription: () => setAccDescription,\n setAccTitle: () => setAccTitle,\n setDiagramTitle: () => setDiagramTitle\n});\nvar accTitle = \"\";\nvar diagramTitle = \"\";\nvar accDescription = \"\";\nvar sanitizeText2 = /* @__PURE__ */ __name((txt) => sanitizeText(txt, getConfig()), \"sanitizeText\");\nvar clear = /* @__PURE__ */ __name(() => {\n accTitle = \"\";\n accDescription = \"\";\n diagramTitle = \"\";\n}, \"clear\");\nvar setAccTitle = /* @__PURE__ */ __name((txt) => {\n accTitle = sanitizeText2(txt).replace(/^\\s+/g, \"\");\n}, \"setAccTitle\");\nvar getAccTitle = /* @__PURE__ */ __name(() => accTitle, \"getAccTitle\");\nvar setAccDescription = /* @__PURE__ */ __name((txt) => {\n accDescription = sanitizeText2(txt).replace(/\\n\\s+/g, \"\\n\");\n}, \"setAccDescription\");\nvar getAccDescription = /* @__PURE__ */ __name(() => accDescription, \"getAccDescription\");\nvar setDiagramTitle = /* @__PURE__ */ __name((txt) => {\n diagramTitle = sanitizeText2(txt);\n}, \"setDiagramTitle\");\nvar getDiagramTitle = /* @__PURE__ */ __name(() => diagramTitle, \"getDiagramTitle\");\n\n// src/diagram-api/diagramAPI.ts\nvar log2 = log;\nvar setLogLevel2 = setLogLevel;\nvar getConfig2 = getConfig;\nvar setConfig2 = setConfig;\nvar defaultConfig2 = defaultConfig;\nvar sanitizeText3 = /* @__PURE__ */ __name((text) => sanitizeText(text, getConfig2()), \"sanitizeText\");\nvar setupGraphViewbox2 = setupGraphViewbox;\nvar getCommonDb = /* @__PURE__ */ __name(() => {\n return commonDb_exports;\n}, \"getCommonDb\");\nvar diagrams = {};\nvar registerDiagram = /* @__PURE__ */ __name((id, diagram, detector) => {\n if (diagrams[id]) {\n log2.warn(`Diagram with id ${id} already registered. Overwriting.`);\n }\n diagrams[id] = diagram;\n if (detector) {\n addDetector(id, detector);\n }\n addStylesForDiagram(id, diagram.styles);\n diagram.injectUtils?.(\n log2,\n setLogLevel2,\n getConfig2,\n sanitizeText3,\n setupGraphViewbox2,\n getCommonDb(),\n () => {\n }\n );\n}, \"registerDiagram\");\nvar getDiagram = /* @__PURE__ */ __name((name) => {\n if (name in diagrams) {\n return diagrams[name];\n }\n throw new DiagramNotFoundError(name);\n}, \"getDiagram\");\nvar DiagramNotFoundError = class extends Error {\n static {\n __name(this, \"DiagramNotFoundError\");\n }\n constructor(name) {\n super(`Diagram ${name} not found.`);\n }\n};\n\nexport {\n __name,\n __export,\n log,\n setLogLevel,\n frontMatterRegex,\n directiveRegex,\n UnknownDiagramError,\n detectors,\n detectType,\n registerLazyLoadedDiagrams,\n getDiagramLoader,\n assignWithDepth_default,\n getThemeVariables3 as getThemeVariables,\n themes_default,\n defaultConfig_default,\n sanitizeDirective,\n defaultConfig,\n setSiteConfig,\n saveConfigFromInitialize,\n updateSiteConfig,\n getSiteConfig,\n setConfig,\n getConfig,\n addDirective,\n reset,\n lineBreakRegex,\n sanitizeText,\n evaluate,\n parseGenericTypes,\n hasKatex,\n calculateMathMLDimensions,\n renderKatex,\n common_default,\n configureSvgSize,\n setupGraphViewbox,\n styles_default,\n clear,\n setAccTitle,\n getAccTitle,\n setAccDescription,\n getAccDescription,\n setDiagramTitle,\n getDiagramTitle,\n commonDb_exports,\n getConfig2,\n setConfig2,\n defaultConfig2,\n sanitizeText3 as sanitizeText2,\n setupGraphViewbox2,\n registerDiagram,\n getDiagram\n};\n", "export default function max(values, valueof) {\n let max;\n if (valueof === undefined) {\n for (const value of values) {\n if (value != null\n && (max < value || (max === undefined && value >= value))) {\n max = value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null\n && (max < value || (max === undefined && value >= value))) {\n max = value;\n }\n }\n }\n return max;\n}\n", "export default function min(values, valueof) {\n let min;\n if (valueof === undefined) {\n for (const value of values) {\n if (value != null\n && (min > value || (min === undefined && value >= value))) {\n min = value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null\n && (min > value || (min === undefined && value >= value))) {\n min = value;\n }\n }\n }\n return min;\n}\n", "export default function ascending(a, b) {\n return a == null || b == null ? NaN : a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n", "export default function descending(a, b) {\n return a == null || b == null ? NaN\n : b < a ? -1\n : b > a ? 1\n : b >= a ? 0\n : NaN;\n}\n", "import ascending from \"./ascending.js\";\nimport descending from \"./descending.js\";\n\nexport default function bisector(f) {\n let compare1, compare2, delta;\n\n // If an accessor is specified, promote it to a comparator. In this case we\n // can test whether the search value is (self-) comparable. We can\u2019t do this\n // for a comparator (except for specific, known comparators) because we can\u2019t\n // tell if the comparator is symmetric, and an asymmetric comparator can\u2019t be\n // used to test whether a single value is comparable.\n if (f.length !== 2) {\n compare1 = ascending;\n compare2 = (d, x) => ascending(f(d), x);\n delta = (d, x) => f(d) - x;\n } else {\n compare1 = f === ascending || f === descending ? f : zero;\n compare2 = f;\n delta = f;\n }\n\n function left(a, x, lo = 0, hi = a.length) {\n if (lo < hi) {\n if (compare1(x, x) !== 0) return hi;\n do {\n const mid = (lo + hi) >>> 1;\n if (compare2(a[mid], x) < 0) lo = mid + 1;\n else hi = mid;\n } while (lo < hi);\n }\n return lo;\n }\n\n function right(a, x, lo = 0, hi = a.length) {\n if (lo < hi) {\n if (compare1(x, x) !== 0) return hi;\n do {\n const mid = (lo + hi) >>> 1;\n if (compare2(a[mid], x) <= 0) lo = mid + 1;\n else hi = mid;\n } while (lo < hi);\n }\n return lo;\n }\n\n function center(a, x, lo = 0, hi = a.length) {\n const i = left(a, x, lo, hi - 1);\n return i > lo && delta(a[i - 1], x) > -delta(a[i], x) ? i - 1 : i;\n }\n\n return {left, center, right};\n}\n\nfunction zero() {\n return 0;\n}\n", "export default function number(x) {\n return x === null ? NaN : +x;\n}\n\nexport function* numbers(values, valueof) {\n if (valueof === undefined) {\n for (let value of values) {\n if (value != null && (value = +value) >= value) {\n yield value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) {\n yield value;\n }\n }\n }\n}\n", "import ascending from \"./ascending.js\";\nimport bisector from \"./bisector.js\";\nimport number from \"./number.js\";\n\nconst ascendingBisect = bisector(ascending);\nexport const bisectRight = ascendingBisect.right;\nexport const bisectLeft = ascendingBisect.left;\nexport const bisectCenter = bisector(number).center;\nexport default bisectRight;\n", "export class InternMap extends Map {\n constructor(entries, key = keyof) {\n super();\n Object.defineProperties(this, {_intern: {value: new Map()}, _key: {value: key}});\n if (entries != null) for (const [key, value] of entries) this.set(key, value);\n }\n get(key) {\n return super.get(intern_get(this, key));\n }\n has(key) {\n return super.has(intern_get(this, key));\n }\n set(key, value) {\n return super.set(intern_set(this, key), value);\n }\n delete(key) {\n return super.delete(intern_delete(this, key));\n }\n}\n\nexport class InternSet extends Set {\n constructor(values, key = keyof) {\n super();\n Object.defineProperties(this, {_intern: {value: new Map()}, _key: {value: key}});\n if (values != null) for (const value of values) this.add(value);\n }\n has(value) {\n return super.has(intern_get(this, value));\n }\n add(value) {\n return super.add(intern_set(this, value));\n }\n delete(value) {\n return super.delete(intern_delete(this, value));\n }\n}\n\nfunction intern_get({_intern, _key}, value) {\n const key = _key(value);\n return _intern.has(key) ? _intern.get(key) : value;\n}\n\nfunction intern_set({_intern, _key}, value) {\n const key = _key(value);\n if (_intern.has(key)) return _intern.get(key);\n _intern.set(key, value);\n return value;\n}\n\nfunction intern_delete({_intern, _key}, value) {\n const key = _key(value);\n if (_intern.has(key)) {\n value = _intern.get(key);\n _intern.delete(key);\n }\n return value;\n}\n\nfunction keyof(value) {\n return value !== null && typeof value === \"object\" ? value.valueOf() : value;\n}\n", "const e10 = Math.sqrt(50),\n e5 = Math.sqrt(10),\n e2 = Math.sqrt(2);\n\nfunction tickSpec(start, stop, count) {\n const step = (stop - start) / Math.max(0, count),\n power = Math.floor(Math.log10(step)),\n error = step / Math.pow(10, power),\n factor = error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1;\n let i1, i2, inc;\n if (power < 0) {\n inc = Math.pow(10, -power) / factor;\n i1 = Math.round(start * inc);\n i2 = Math.round(stop * inc);\n if (i1 / inc < start) ++i1;\n if (i2 / inc > stop) --i2;\n inc = -inc;\n } else {\n inc = Math.pow(10, power) * factor;\n i1 = Math.round(start / inc);\n i2 = Math.round(stop / inc);\n if (i1 * inc < start) ++i1;\n if (i2 * inc > stop) --i2;\n }\n if (i2 < i1 && 0.5 <= count && count < 2) return tickSpec(start, stop, count * 2);\n return [i1, i2, inc];\n}\n\nexport default function ticks(start, stop, count) {\n stop = +stop, start = +start, count = +count;\n if (!(count > 0)) return [];\n if (start === stop) return [start];\n const reverse = stop < start, [i1, i2, inc] = reverse ? tickSpec(stop, start, count) : tickSpec(start, stop, count);\n if (!(i2 >= i1)) return [];\n const n = i2 - i1 + 1, ticks = new Array(n);\n if (reverse) {\n if (inc < 0) for (let i = 0; i < n; ++i) ticks[i] = (i2 - i) / -inc;\n else for (let i = 0; i < n; ++i) ticks[i] = (i2 - i) * inc;\n } else {\n if (inc < 0) for (let i = 0; i < n; ++i) ticks[i] = (i1 + i) / -inc;\n else for (let i = 0; i < n; ++i) ticks[i] = (i1 + i) * inc;\n }\n return ticks;\n}\n\nexport function tickIncrement(start, stop, count) {\n stop = +stop, start = +start, count = +count;\n return tickSpec(start, stop, count)[2];\n}\n\nexport function tickStep(start, stop, count) {\n stop = +stop, start = +start, count = +count;\n const reverse = stop < start, inc = reverse ? tickIncrement(stop, start, count) : tickIncrement(start, stop, count);\n return (reverse ? -1 : 1) * (inc < 0 ? 1 / -inc : inc);\n}\n", "export default function range(start, stop, step) {\n start = +start, stop = +stop, step = (n = arguments.length) < 2 ? (stop = start, start = 0, 1) : n < 3 ? 1 : +step;\n\n var i = -1,\n n = Math.max(0, Math.ceil((stop - start) / step)) | 0,\n range = new Array(n);\n\n while (++i < n) {\n range[i] = start + i * step;\n }\n\n return range;\n}\n", "export default function(x) {\n return x;\n}\n", "import identity from \"./identity.js\";\n\nvar top = 1,\n right = 2,\n bottom = 3,\n left = 4,\n epsilon = 1e-6;\n\nfunction translateX(x) {\n return \"translate(\" + x + \",0)\";\n}\n\nfunction translateY(y) {\n return \"translate(0,\" + y + \")\";\n}\n\nfunction number(scale) {\n return d => +scale(d);\n}\n\nfunction center(scale, offset) {\n offset = Math.max(0, scale.bandwidth() - offset * 2) / 2;\n if (scale.round()) offset = Math.round(offset);\n return d => +scale(d) + offset;\n}\n\nfunction entering() {\n return !this.__axis;\n}\n\nfunction axis(orient, scale) {\n var tickArguments = [],\n tickValues = null,\n tickFormat = null,\n tickSizeInner = 6,\n tickSizeOuter = 6,\n tickPadding = 3,\n offset = typeof window !== \"undefined\" && window.devicePixelRatio > 1 ? 0 : 0.5,\n k = orient === top || orient === left ? -1 : 1,\n x = orient === left || orient === right ? \"x\" : \"y\",\n transform = orient === top || orient === bottom ? translateX : translateY;\n\n function axis(context) {\n var values = tickValues == null ? (scale.ticks ? scale.ticks.apply(scale, tickArguments) : scale.domain()) : tickValues,\n format = tickFormat == null ? (scale.tickFormat ? scale.tickFormat.apply(scale, tickArguments) : identity) : tickFormat,\n spacing = Math.max(tickSizeInner, 0) + tickPadding,\n range = scale.range(),\n range0 = +range[0] + offset,\n range1 = +range[range.length - 1] + offset,\n position = (scale.bandwidth ? center : number)(scale.copy(), offset),\n selection = context.selection ? context.selection() : context,\n path = selection.selectAll(\".domain\").data([null]),\n tick = selection.selectAll(\".tick\").data(values, scale).order(),\n tickExit = tick.exit(),\n tickEnter = tick.enter().append(\"g\").attr(\"class\", \"tick\"),\n line = tick.select(\"line\"),\n text = tick.select(\"text\");\n\n path = path.merge(path.enter().insert(\"path\", \".tick\")\n .attr(\"class\", \"domain\")\n .attr(\"stroke\", \"currentColor\"));\n\n tick = tick.merge(tickEnter);\n\n line = line.merge(tickEnter.append(\"line\")\n .attr(\"stroke\", \"currentColor\")\n .attr(x + \"2\", k * tickSizeInner));\n\n text = text.merge(tickEnter.append(\"text\")\n .attr(\"fill\", \"currentColor\")\n .attr(x, k * spacing)\n .attr(\"dy\", orient === top ? \"0em\" : orient === bottom ? \"0.71em\" : \"0.32em\"));\n\n if (context !== selection) {\n path = path.transition(context);\n tick = tick.transition(context);\n line = line.transition(context);\n text = text.transition(context);\n\n tickExit = tickExit.transition(context)\n .attr(\"opacity\", epsilon)\n .attr(\"transform\", function(d) { return isFinite(d = position(d)) ? transform(d + offset) : this.getAttribute(\"transform\"); });\n\n tickEnter\n .attr(\"opacity\", epsilon)\n .attr(\"transform\", function(d) { var p = this.parentNode.__axis; return transform((p && isFinite(p = p(d)) ? p : position(d)) + offset); });\n }\n\n tickExit.remove();\n\n path\n .attr(\"d\", orient === left || orient === right\n ? (tickSizeOuter ? \"M\" + k * tickSizeOuter + \",\" + range0 + \"H\" + offset + \"V\" + range1 + \"H\" + k * tickSizeOuter : \"M\" + offset + \",\" + range0 + \"V\" + range1)\n : (tickSizeOuter ? \"M\" + range0 + \",\" + k * tickSizeOuter + \"V\" + offset + \"H\" + range1 + \"V\" + k * tickSizeOuter : \"M\" + range0 + \",\" + offset + \"H\" + range1));\n\n tick\n .attr(\"opacity\", 1)\n .attr(\"transform\", function(d) { return transform(position(d) + offset); });\n\n line\n .attr(x + \"2\", k * tickSizeInner);\n\n text\n .attr(x, k * spacing)\n .text(format);\n\n selection.filter(entering)\n .attr(\"fill\", \"none\")\n .attr(\"font-size\", 10)\n .attr(\"font-family\", \"sans-serif\")\n .attr(\"text-anchor\", orient === right ? \"start\" : orient === left ? \"end\" : \"middle\");\n\n selection\n .each(function() { this.__axis = position; });\n }\n\n axis.scale = function(_) {\n return arguments.length ? (scale = _, axis) : scale;\n };\n\n axis.ticks = function() {\n return tickArguments = Array.from(arguments), axis;\n };\n\n axis.tickArguments = function(_) {\n return arguments.length ? (tickArguments = _ == null ? [] : Array.from(_), axis) : tickArguments.slice();\n };\n\n axis.tickValues = function(_) {\n return arguments.length ? (tickValues = _ == null ? null : Array.from(_), axis) : tickValues && tickValues.slice();\n };\n\n axis.tickFormat = function(_) {\n return arguments.length ? (tickFormat = _, axis) : tickFormat;\n };\n\n axis.tickSize = function(_) {\n return arguments.length ? (tickSizeInner = tickSizeOuter = +_, axis) : tickSizeInner;\n };\n\n axis.tickSizeInner = function(_) {\n return arguments.length ? (tickSizeInner = +_, axis) : tickSizeInner;\n };\n\n axis.tickSizeOuter = function(_) {\n return arguments.length ? (tickSizeOuter = +_, axis) : tickSizeOuter;\n };\n\n axis.tickPadding = function(_) {\n return arguments.length ? (tickPadding = +_, axis) : tickPadding;\n };\n\n axis.offset = function(_) {\n return arguments.length ? (offset = +_, axis) : offset;\n };\n\n return axis;\n}\n\nexport function axisTop(scale) {\n return axis(top, scale);\n}\n\nexport function axisRight(scale) {\n return axis(right, scale);\n}\n\nexport function axisBottom(scale) {\n return axis(bottom, scale);\n}\n\nexport function axisLeft(scale) {\n return axis(left, scale);\n}\n", "function none() {}\n\nexport default function(selector) {\n return selector == null ? none : function() {\n return this.querySelector(selector);\n };\n}\n", "import {Selection} from \"./index.js\";\nimport selector from \"../selector.js\";\n\nexport default function(select) {\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n", "// Given something array like (or null), returns something that is strictly an\n// array. This is used to ensure that array-like objects passed to d3.selectAll\n// or selection.selectAll are converted into proper arrays when creating a\n// selection; we don\u2019t ever want to create a selection backed by a live\n// HTMLCollection or NodeList. However, note that selection.selectAll will use a\n// static NodeList as a group, since it safely derived from querySelectorAll.\nexport default function array(x) {\n return x == null ? [] : Array.isArray(x) ? x : Array.from(x);\n}\n", "function empty() {\n return [];\n}\n\nexport default function(selector) {\n return selector == null ? empty : function() {\n return this.querySelectorAll(selector);\n };\n}\n", "import {Selection} from \"./index.js\";\nimport array from \"../array.js\";\nimport selectorAll from \"../selectorAll.js\";\n\nfunction arrayAll(select) {\n return function() {\n return array(select.apply(this, arguments));\n };\n}\n\nexport default function(select) {\n if (typeof select === \"function\") select = arrayAll(select);\n else select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n subgroups.push(select.call(node, node.__data__, i, group));\n parents.push(node);\n }\n }\n }\n\n return new Selection(subgroups, parents);\n}\n", "export default function(selector) {\n return function() {\n return this.matches(selector);\n };\n}\n\nexport function childMatcher(selector) {\n return function(node) {\n return node.matches(selector);\n };\n}\n\n", "import {childMatcher} from \"../matcher.js\";\n\nvar find = Array.prototype.find;\n\nfunction childFind(match) {\n return function() {\n return find.call(this.children, match);\n };\n}\n\nfunction childFirst() {\n return this.firstElementChild;\n}\n\nexport default function(match) {\n return this.select(match == null ? childFirst\n : childFind(typeof match === \"function\" ? match : childMatcher(match)));\n}\n", "import {childMatcher} from \"../matcher.js\";\n\nvar filter = Array.prototype.filter;\n\nfunction children() {\n return Array.from(this.children);\n}\n\nfunction childrenFilter(match) {\n return function() {\n return filter.call(this.children, match);\n };\n}\n\nexport default function(match) {\n return this.selectAll(match == null ? children\n : childrenFilter(typeof match === \"function\" ? match : childMatcher(match)));\n}\n", "import {Selection} from \"./index.js\";\nimport matcher from \"../matcher.js\";\n\nexport default function(match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n", "export default function(update) {\n return new Array(update.length);\n}\n", "import sparse from \"./sparse.js\";\nimport {Selection} from \"./index.js\";\n\nexport default function() {\n return new Selection(this._enter || this._groups.map(sparse), this._parents);\n}\n\nexport function EnterNode(parent, datum) {\n this.ownerDocument = parent.ownerDocument;\n this.namespaceURI = parent.namespaceURI;\n this._next = null;\n this._parent = parent;\n this.__data__ = datum;\n}\n\nEnterNode.prototype = {\n constructor: EnterNode,\n appendChild: function(child) { return this._parent.insertBefore(child, this._next); },\n insertBefore: function(child, next) { return this._parent.insertBefore(child, next); },\n querySelector: function(selector) { return this._parent.querySelector(selector); },\n querySelectorAll: function(selector) { return this._parent.querySelectorAll(selector); }\n};\n", "export default function(x) {\n return function() {\n return x;\n };\n}\n", "import {Selection} from \"./index.js\";\nimport {EnterNode} from \"./enter.js\";\nimport constant from \"../constant.js\";\n\nfunction bindIndex(parent, group, enter, update, exit, data) {\n var i = 0,\n node,\n groupLength = group.length,\n dataLength = data.length;\n\n // Put any non-null nodes that fit into update.\n // Put any null nodes into enter.\n // Put any remaining data into enter.\n for (; i < dataLength; ++i) {\n if (node = group[i]) {\n node.__data__ = data[i];\n update[i] = node;\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Put any non-null nodes that don\u2019t fit into exit.\n for (; i < groupLength; ++i) {\n if (node = group[i]) {\n exit[i] = node;\n }\n }\n}\n\nfunction bindKey(parent, group, enter, update, exit, data, key) {\n var i,\n node,\n nodeByKeyValue = new Map,\n groupLength = group.length,\n dataLength = data.length,\n keyValues = new Array(groupLength),\n keyValue;\n\n // Compute the key for each node.\n // If multiple nodes have the same key, the duplicates are added to exit.\n for (i = 0; i < groupLength; ++i) {\n if (node = group[i]) {\n keyValues[i] = keyValue = key.call(node, node.__data__, i, group) + \"\";\n if (nodeByKeyValue.has(keyValue)) {\n exit[i] = node;\n } else {\n nodeByKeyValue.set(keyValue, node);\n }\n }\n }\n\n // Compute the key for each datum.\n // If there a node associated with this key, join and add it to update.\n // If there is not (or the key is a duplicate), add it to enter.\n for (i = 0; i < dataLength; ++i) {\n keyValue = key.call(parent, data[i], i, data) + \"\";\n if (node = nodeByKeyValue.get(keyValue)) {\n update[i] = node;\n node.__data__ = data[i];\n nodeByKeyValue.delete(keyValue);\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Add any remaining nodes that were not bound to data to exit.\n for (i = 0; i < groupLength; ++i) {\n if ((node = group[i]) && (nodeByKeyValue.get(keyValues[i]) === node)) {\n exit[i] = node;\n }\n }\n}\n\nfunction datum(node) {\n return node.__data__;\n}\n\nexport default function(value, key) {\n if (!arguments.length) return Array.from(this, datum);\n\n var bind = key ? bindKey : bindIndex,\n parents = this._parents,\n groups = this._groups;\n\n if (typeof value !== \"function\") value = constant(value);\n\n for (var m = groups.length, update = new Array(m), enter = new Array(m), exit = new Array(m), j = 0; j < m; ++j) {\n var parent = parents[j],\n group = groups[j],\n groupLength = group.length,\n data = arraylike(value.call(parent, parent && parent.__data__, j, parents)),\n dataLength = data.length,\n enterGroup = enter[j] = new Array(dataLength),\n updateGroup = update[j] = new Array(dataLength),\n exitGroup = exit[j] = new Array(groupLength);\n\n bind(parent, group, enterGroup, updateGroup, exitGroup, data, key);\n\n // Now connect the enter nodes to their following update node, such that\n // appendChild can insert the materialized enter node before this node,\n // rather than at the end of the parent node.\n for (var i0 = 0, i1 = 0, previous, next; i0 < dataLength; ++i0) {\n if (previous = enterGroup[i0]) {\n if (i0 >= i1) i1 = i0 + 1;\n while (!(next = updateGroup[i1]) && ++i1 < dataLength);\n previous._next = next || null;\n }\n }\n }\n\n update = new Selection(update, parents);\n update._enter = enter;\n update._exit = exit;\n return update;\n}\n\n// Given some data, this returns an array-like view of it: an object that\n// exposes a length property and allows numeric indexing. Note that unlike\n// selectAll, this isn\u2019t worried about \u201Clive\u201D collections because the resulting\n// array will only be used briefly while data is being bound. (It is possible to\n// cause the data to change while iterating by using a key function, but please\n// don\u2019t; we\u2019d rather avoid a gratuitous copy.)\nfunction arraylike(data) {\n return typeof data === \"object\" && \"length\" in data\n ? data // Array, TypedArray, NodeList, array-like\n : Array.from(data); // Map, Set, iterable, string, or anything else\n}\n", "import sparse from \"./sparse.js\";\nimport {Selection} from \"./index.js\";\n\nexport default function() {\n return new Selection(this._exit || this._groups.map(sparse), this._parents);\n}\n", "export default function(onenter, onupdate, onexit) {\n var enter = this.enter(), update = this, exit = this.exit();\n if (typeof onenter === \"function\") {\n enter = onenter(enter);\n if (enter) enter = enter.selection();\n } else {\n enter = enter.append(onenter + \"\");\n }\n if (onupdate != null) {\n update = onupdate(update);\n if (update) update = update.selection();\n }\n if (onexit == null) exit.remove(); else onexit(exit);\n return enter && update ? enter.merge(update).order() : update;\n}\n", "import {Selection} from \"./index.js\";\n\nexport default function(context) {\n var selection = context.selection ? context.selection() : context;\n\n for (var groups0 = this._groups, groups1 = selection._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Selection(merges, this._parents);\n}\n", "export default function() {\n\n for (var groups = this._groups, j = -1, m = groups.length; ++j < m;) {\n for (var group = groups[j], i = group.length - 1, next = group[i], node; --i >= 0;) {\n if (node = group[i]) {\n if (next && node.compareDocumentPosition(next) ^ 4) next.parentNode.insertBefore(node, next);\n next = node;\n }\n }\n }\n\n return this;\n}\n", "import {Selection} from \"./index.js\";\n\nexport default function(compare) {\n if (!compare) compare = ascending;\n\n function compareNode(a, b) {\n return a && b ? compare(a.__data__, b.__data__) : !a - !b;\n }\n\n for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n sortgroup[i] = node;\n }\n }\n sortgroup.sort(compareNode);\n }\n\n return new Selection(sortgroups, this._parents).order();\n}\n\nfunction ascending(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n", "export default function() {\n var callback = arguments[0];\n arguments[0] = this;\n callback.apply(null, arguments);\n return this;\n}\n", "export default function() {\n return Array.from(this);\n}\n", "export default function() {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length; i < n; ++i) {\n var node = group[i];\n if (node) return node;\n }\n }\n\n return null;\n}\n", "export default function() {\n let size = 0;\n for (const node of this) ++size; // eslint-disable-line no-unused-vars\n return size;\n}\n", "export default function() {\n return !this.node();\n}\n", "export default function(callback) {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) callback.call(node, node.__data__, i, group);\n }\n }\n\n return this;\n}\n", "export var xhtml = \"http://www.w3.org/1999/xhtml\";\n\nexport default {\n svg: \"http://www.w3.org/2000/svg\",\n xhtml: xhtml,\n xlink: \"http://www.w3.org/1999/xlink\",\n xml: \"http://www.w3.org/XML/1998/namespace\",\n xmlns: \"http://www.w3.org/2000/xmlns/\"\n};\n", "import namespaces from \"./namespaces.js\";\n\nexport default function(name) {\n var prefix = name += \"\", i = prefix.indexOf(\":\");\n if (i >= 0 && (prefix = name.slice(0, i)) !== \"xmlns\") name = name.slice(i + 1);\n return namespaces.hasOwnProperty(prefix) ? {space: namespaces[prefix], local: name} : name; // eslint-disable-line no-prototype-builtins\n}\n", "import namespace from \"../namespace.js\";\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, value) {\n return function() {\n this.setAttribute(name, value);\n };\n}\n\nfunction attrConstantNS(fullname, value) {\n return function() {\n this.setAttributeNS(fullname.space, fullname.local, value);\n };\n}\n\nfunction attrFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttribute(name);\n else this.setAttribute(name, v);\n };\n}\n\nfunction attrFunctionNS(fullname, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttributeNS(fullname.space, fullname.local);\n else this.setAttributeNS(fullname.space, fullname.local, v);\n };\n}\n\nexport default function(name, value) {\n var fullname = namespace(name);\n\n if (arguments.length < 2) {\n var node = this.node();\n return fullname.local\n ? node.getAttributeNS(fullname.space, fullname.local)\n : node.getAttribute(fullname);\n }\n\n return this.each((value == null\n ? (fullname.local ? attrRemoveNS : attrRemove) : (typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)\n : (fullname.local ? attrConstantNS : attrConstant)))(fullname, value));\n}\n", "export default function(node) {\n return (node.ownerDocument && node.ownerDocument.defaultView) // node is a Node\n || (node.document && node) // node is a Window\n || node.defaultView; // node is a Document\n}\n", "import defaultView from \"../window.js\";\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, value, priority) {\n return function() {\n this.style.setProperty(name, value, priority);\n };\n}\n\nfunction styleFunction(name, value, priority) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.style.removeProperty(name);\n else this.style.setProperty(name, v, priority);\n };\n}\n\nexport default function(name, value, priority) {\n return arguments.length > 1\n ? this.each((value == null\n ? styleRemove : typeof value === \"function\"\n ? styleFunction\n : styleConstant)(name, value, priority == null ? \"\" : priority))\n : styleValue(this.node(), name);\n}\n\nexport function styleValue(node, name) {\n return node.style.getPropertyValue(name)\n || defaultView(node).getComputedStyle(node, null).getPropertyValue(name);\n}\n", "function propertyRemove(name) {\n return function() {\n delete this[name];\n };\n}\n\nfunction propertyConstant(name, value) {\n return function() {\n this[name] = value;\n };\n}\n\nfunction propertyFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) delete this[name];\n else this[name] = v;\n };\n}\n\nexport default function(name, value) {\n return arguments.length > 1\n ? this.each((value == null\n ? propertyRemove : typeof value === \"function\"\n ? propertyFunction\n : propertyConstant)(name, value))\n : this.node()[name];\n}\n", "function classArray(string) {\n return string.trim().split(/^|\\s+/);\n}\n\nfunction classList(node) {\n return node.classList || new ClassList(node);\n}\n\nfunction ClassList(node) {\n this._node = node;\n this._names = classArray(node.getAttribute(\"class\") || \"\");\n}\n\nClassList.prototype = {\n add: function(name) {\n var i = this._names.indexOf(name);\n if (i < 0) {\n this._names.push(name);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n remove: function(name) {\n var i = this._names.indexOf(name);\n if (i >= 0) {\n this._names.splice(i, 1);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n contains: function(name) {\n return this._names.indexOf(name) >= 0;\n }\n};\n\nfunction classedAdd(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.add(names[i]);\n}\n\nfunction classedRemove(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.remove(names[i]);\n}\n\nfunction classedTrue(names) {\n return function() {\n classedAdd(this, names);\n };\n}\n\nfunction classedFalse(names) {\n return function() {\n classedRemove(this, names);\n };\n}\n\nfunction classedFunction(names, value) {\n return function() {\n (value.apply(this, arguments) ? classedAdd : classedRemove)(this, names);\n };\n}\n\nexport default function(name, value) {\n var names = classArray(name + \"\");\n\n if (arguments.length < 2) {\n var list = classList(this.node()), i = -1, n = names.length;\n while (++i < n) if (!list.contains(names[i])) return false;\n return true;\n }\n\n return this.each((typeof value === \"function\"\n ? classedFunction : value\n ? classedTrue\n : classedFalse)(names, value));\n}\n", "function textRemove() {\n this.textContent = \"\";\n}\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.textContent = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? textRemove : (typeof value === \"function\"\n ? textFunction\n : textConstant)(value))\n : this.node().textContent;\n}\n", "function htmlRemove() {\n this.innerHTML = \"\";\n}\n\nfunction htmlConstant(value) {\n return function() {\n this.innerHTML = value;\n };\n}\n\nfunction htmlFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.innerHTML = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? htmlRemove : (typeof value === \"function\"\n ? htmlFunction\n : htmlConstant)(value))\n : this.node().innerHTML;\n}\n", "function raise() {\n if (this.nextSibling) this.parentNode.appendChild(this);\n}\n\nexport default function() {\n return this.each(raise);\n}\n", "function lower() {\n if (this.previousSibling) this.parentNode.insertBefore(this, this.parentNode.firstChild);\n}\n\nexport default function() {\n return this.each(lower);\n}\n", "import namespace from \"./namespace.js\";\nimport {xhtml} from \"./namespaces.js\";\n\nfunction creatorInherit(name) {\n return function() {\n var document = this.ownerDocument,\n uri = this.namespaceURI;\n return uri === xhtml && document.documentElement.namespaceURI === xhtml\n ? document.createElement(name)\n : document.createElementNS(uri, name);\n };\n}\n\nfunction creatorFixed(fullname) {\n return function() {\n return this.ownerDocument.createElementNS(fullname.space, fullname.local);\n };\n}\n\nexport default function(name) {\n var fullname = namespace(name);\n return (fullname.local\n ? creatorFixed\n : creatorInherit)(fullname);\n}\n", "import creator from \"../creator.js\";\n\nexport default function(name) {\n var create = typeof name === \"function\" ? name : creator(name);\n return this.select(function() {\n return this.appendChild(create.apply(this, arguments));\n });\n}\n", "import creator from \"../creator.js\";\nimport selector from \"../selector.js\";\n\nfunction constantNull() {\n return null;\n}\n\nexport default function(name, before) {\n var create = typeof name === \"function\" ? name : creator(name),\n select = before == null ? constantNull : typeof before === \"function\" ? before : selector(before);\n return this.select(function() {\n return this.insertBefore(create.apply(this, arguments), select.apply(this, arguments) || null);\n });\n}\n", "function remove() {\n var parent = this.parentNode;\n if (parent) parent.removeChild(this);\n}\n\nexport default function() {\n return this.each(remove);\n}\n", "function selection_cloneShallow() {\n var clone = this.cloneNode(false), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nfunction selection_cloneDeep() {\n var clone = this.cloneNode(true), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nexport default function(deep) {\n return this.select(deep ? selection_cloneDeep : selection_cloneShallow);\n}\n", "export default function(value) {\n return arguments.length\n ? this.property(\"__data__\", value)\n : this.node().__data__;\n}\n", "function contextListener(listener) {\n return function(event) {\n listener.call(this, event, this.__data__);\n };\n}\n\nfunction parseTypenames(typenames) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n return {type: t, name: name};\n });\n}\n\nfunction onRemove(typename) {\n return function() {\n var on = this.__on;\n if (!on) return;\n for (var j = 0, i = -1, m = on.length, o; j < m; ++j) {\n if (o = on[j], (!typename.type || o.type === typename.type) && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.options);\n } else {\n on[++i] = o;\n }\n }\n if (++i) on.length = i;\n else delete this.__on;\n };\n}\n\nfunction onAdd(typename, value, options) {\n return function() {\n var on = this.__on, o, listener = contextListener(value);\n if (on) for (var j = 0, m = on.length; j < m; ++j) {\n if ((o = on[j]).type === typename.type && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.options);\n this.addEventListener(o.type, o.listener = listener, o.options = options);\n o.value = value;\n return;\n }\n }\n this.addEventListener(typename.type, listener, options);\n o = {type: typename.type, name: typename.name, value: value, listener: listener, options: options};\n if (!on) this.__on = [o];\n else on.push(o);\n };\n}\n\nexport default function(typename, value, options) {\n var typenames = parseTypenames(typename + \"\"), i, n = typenames.length, t;\n\n if (arguments.length < 2) {\n var on = this.node().__on;\n if (on) for (var j = 0, m = on.length, o; j < m; ++j) {\n for (i = 0, o = on[j]; i < n; ++i) {\n if ((t = typenames[i]).type === o.type && t.name === o.name) {\n return o.value;\n }\n }\n }\n return;\n }\n\n on = value ? onAdd : onRemove;\n for (i = 0; i < n; ++i) this.each(on(typenames[i], value, options));\n return this;\n}\n", "import defaultView from \"../window.js\";\n\nfunction dispatchEvent(node, type, params) {\n var window = defaultView(node),\n event = window.CustomEvent;\n\n if (typeof event === \"function\") {\n event = new event(type, params);\n } else {\n event = window.document.createEvent(\"Event\");\n if (params) event.initEvent(type, params.bubbles, params.cancelable), event.detail = params.detail;\n else event.initEvent(type, false, false);\n }\n\n node.dispatchEvent(event);\n}\n\nfunction dispatchConstant(type, params) {\n return function() {\n return dispatchEvent(this, type, params);\n };\n}\n\nfunction dispatchFunction(type, params) {\n return function() {\n return dispatchEvent(this, type, params.apply(this, arguments));\n };\n}\n\nexport default function(type, params) {\n return this.each((typeof params === \"function\"\n ? dispatchFunction\n : dispatchConstant)(type, params));\n}\n", "export default function*() {\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) yield node;\n }\n }\n}\n", "import selection_select from \"./select.js\";\nimport selection_selectAll from \"./selectAll.js\";\nimport selection_selectChild from \"./selectChild.js\";\nimport selection_selectChildren from \"./selectChildren.js\";\nimport selection_filter from \"./filter.js\";\nimport selection_data from \"./data.js\";\nimport selection_enter from \"./enter.js\";\nimport selection_exit from \"./exit.js\";\nimport selection_join from \"./join.js\";\nimport selection_merge from \"./merge.js\";\nimport selection_order from \"./order.js\";\nimport selection_sort from \"./sort.js\";\nimport selection_call from \"./call.js\";\nimport selection_nodes from \"./nodes.js\";\nimport selection_node from \"./node.js\";\nimport selection_size from \"./size.js\";\nimport selection_empty from \"./empty.js\";\nimport selection_each from \"./each.js\";\nimport selection_attr from \"./attr.js\";\nimport selection_style from \"./style.js\";\nimport selection_property from \"./property.js\";\nimport selection_classed from \"./classed.js\";\nimport selection_text from \"./text.js\";\nimport selection_html from \"./html.js\";\nimport selection_raise from \"./raise.js\";\nimport selection_lower from \"./lower.js\";\nimport selection_append from \"./append.js\";\nimport selection_insert from \"./insert.js\";\nimport selection_remove from \"./remove.js\";\nimport selection_clone from \"./clone.js\";\nimport selection_datum from \"./datum.js\";\nimport selection_on from \"./on.js\";\nimport selection_dispatch from \"./dispatch.js\";\nimport selection_iterator from \"./iterator.js\";\n\nexport var root = [null];\n\nexport function Selection(groups, parents) {\n this._groups = groups;\n this._parents = parents;\n}\n\nfunction selection() {\n return new Selection([[document.documentElement]], root);\n}\n\nfunction selection_selection() {\n return this;\n}\n\nSelection.prototype = selection.prototype = {\n constructor: Selection,\n select: selection_select,\n selectAll: selection_selectAll,\n selectChild: selection_selectChild,\n selectChildren: selection_selectChildren,\n filter: selection_filter,\n data: selection_data,\n enter: selection_enter,\n exit: selection_exit,\n join: selection_join,\n merge: selection_merge,\n selection: selection_selection,\n order: selection_order,\n sort: selection_sort,\n call: selection_call,\n nodes: selection_nodes,\n node: selection_node,\n size: selection_size,\n empty: selection_empty,\n each: selection_each,\n attr: selection_attr,\n style: selection_style,\n property: selection_property,\n classed: selection_classed,\n text: selection_text,\n html: selection_html,\n raise: selection_raise,\n lower: selection_lower,\n append: selection_append,\n insert: selection_insert,\n remove: selection_remove,\n clone: selection_clone,\n datum: selection_datum,\n on: selection_on,\n dispatch: selection_dispatch,\n [Symbol.iterator]: selection_iterator\n};\n\nexport default selection;\n", "import {Selection, root} from \"./selection/index.js\";\n\nexport default function(selector) {\n return typeof selector === \"string\"\n ? new Selection([[document.querySelector(selector)]], [document.documentElement])\n : new Selection([[selector]], root);\n}\n", "export default function(constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n}\n\nexport function extend(parent, definition) {\n var prototype = Object.create(parent.prototype);\n for (var key in definition) prototype[key] = definition[key];\n return prototype;\n}\n", "import define, {extend} from \"./define.js\";\n\nexport function Color() {}\n\nexport var darker = 0.7;\nexport var brighter = 1 / darker;\n\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\",\n reN = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",\n reP = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",\n reHex = /^#([0-9a-f]{3,8})$/,\n reRgbInteger = new RegExp(`^rgb\\\\(${reI},${reI},${reI}\\\\)$`),\n reRgbPercent = new RegExp(`^rgb\\\\(${reP},${reP},${reP}\\\\)$`),\n reRgbaInteger = new RegExp(`^rgba\\\\(${reI},${reI},${reI},${reN}\\\\)$`),\n reRgbaPercent = new RegExp(`^rgba\\\\(${reP},${reP},${reP},${reN}\\\\)$`),\n reHslPercent = new RegExp(`^hsl\\\\(${reN},${reP},${reP}\\\\)$`),\n reHslaPercent = new RegExp(`^hsla\\\\(${reN},${reP},${reP},${reN}\\\\)$`);\n\nvar named = {\n aliceblue: 0xf0f8ff,\n antiquewhite: 0xfaebd7,\n aqua: 0x00ffff,\n aquamarine: 0x7fffd4,\n azure: 0xf0ffff,\n beige: 0xf5f5dc,\n bisque: 0xffe4c4,\n black: 0x000000,\n blanchedalmond: 0xffebcd,\n blue: 0x0000ff,\n blueviolet: 0x8a2be2,\n brown: 0xa52a2a,\n burlywood: 0xdeb887,\n cadetblue: 0x5f9ea0,\n chartreuse: 0x7fff00,\n chocolate: 0xd2691e,\n coral: 0xff7f50,\n cornflowerblue: 0x6495ed,\n cornsilk: 0xfff8dc,\n crimson: 0xdc143c,\n cyan: 0x00ffff,\n darkblue: 0x00008b,\n darkcyan: 0x008b8b,\n darkgoldenrod: 0xb8860b,\n darkgray: 0xa9a9a9,\n darkgreen: 0x006400,\n darkgrey: 0xa9a9a9,\n darkkhaki: 0xbdb76b,\n darkmagenta: 0x8b008b,\n darkolivegreen: 0x556b2f,\n darkorange: 0xff8c00,\n darkorchid: 0x9932cc,\n darkred: 0x8b0000,\n darksalmon: 0xe9967a,\n darkseagreen: 0x8fbc8f,\n darkslateblue: 0x483d8b,\n darkslategray: 0x2f4f4f,\n darkslategrey: 0x2f4f4f,\n darkturquoise: 0x00ced1,\n darkviolet: 0x9400d3,\n deeppink: 0xff1493,\n deepskyblue: 0x00bfff,\n dimgray: 0x696969,\n dimgrey: 0x696969,\n dodgerblue: 0x1e90ff,\n firebrick: 0xb22222,\n floralwhite: 0xfffaf0,\n forestgreen: 0x228b22,\n fuchsia: 0xff00ff,\n gainsboro: 0xdcdcdc,\n ghostwhite: 0xf8f8ff,\n gold: 0xffd700,\n goldenrod: 0xdaa520,\n gray: 0x808080,\n green: 0x008000,\n greenyellow: 0xadff2f,\n grey: 0x808080,\n honeydew: 0xf0fff0,\n hotpink: 0xff69b4,\n indianred: 0xcd5c5c,\n indigo: 0x4b0082,\n ivory: 0xfffff0,\n khaki: 0xf0e68c,\n lavender: 0xe6e6fa,\n lavenderblush: 0xfff0f5,\n lawngreen: 0x7cfc00,\n lemonchiffon: 0xfffacd,\n lightblue: 0xadd8e6,\n lightcoral: 0xf08080,\n lightcyan: 0xe0ffff,\n lightgoldenrodyellow: 0xfafad2,\n lightgray: 0xd3d3d3,\n lightgreen: 0x90ee90,\n lightgrey: 0xd3d3d3,\n lightpink: 0xffb6c1,\n lightsalmon: 0xffa07a,\n lightseagreen: 0x20b2aa,\n lightskyblue: 0x87cefa,\n lightslategray: 0x778899,\n lightslategrey: 0x778899,\n lightsteelblue: 0xb0c4de,\n lightyellow: 0xffffe0,\n lime: 0x00ff00,\n limegreen: 0x32cd32,\n linen: 0xfaf0e6,\n magenta: 0xff00ff,\n maroon: 0x800000,\n mediumaquamarine: 0x66cdaa,\n mediumblue: 0x0000cd,\n mediumorchid: 0xba55d3,\n mediumpurple: 0x9370db,\n mediumseagreen: 0x3cb371,\n mediumslateblue: 0x7b68ee,\n mediumspringgreen: 0x00fa9a,\n mediumturquoise: 0x48d1cc,\n mediumvioletred: 0xc71585,\n midnightblue: 0x191970,\n mintcream: 0xf5fffa,\n mistyrose: 0xffe4e1,\n moccasin: 0xffe4b5,\n navajowhite: 0xffdead,\n navy: 0x000080,\n oldlace: 0xfdf5e6,\n olive: 0x808000,\n olivedrab: 0x6b8e23,\n orange: 0xffa500,\n orangered: 0xff4500,\n orchid: 0xda70d6,\n palegoldenrod: 0xeee8aa,\n palegreen: 0x98fb98,\n paleturquoise: 0xafeeee,\n palevioletred: 0xdb7093,\n papayawhip: 0xffefd5,\n peachpuff: 0xffdab9,\n peru: 0xcd853f,\n pink: 0xffc0cb,\n plum: 0xdda0dd,\n powderblue: 0xb0e0e6,\n purple: 0x800080,\n rebeccapurple: 0x663399,\n red: 0xff0000,\n rosybrown: 0xbc8f8f,\n royalblue: 0x4169e1,\n saddlebrown: 0x8b4513,\n salmon: 0xfa8072,\n sandybrown: 0xf4a460,\n seagreen: 0x2e8b57,\n seashell: 0xfff5ee,\n sienna: 0xa0522d,\n silver: 0xc0c0c0,\n skyblue: 0x87ceeb,\n slateblue: 0x6a5acd,\n slategray: 0x708090,\n slategrey: 0x708090,\n snow: 0xfffafa,\n springgreen: 0x00ff7f,\n steelblue: 0x4682b4,\n tan: 0xd2b48c,\n teal: 0x008080,\n thistle: 0xd8bfd8,\n tomato: 0xff6347,\n turquoise: 0x40e0d0,\n violet: 0xee82ee,\n wheat: 0xf5deb3,\n white: 0xffffff,\n whitesmoke: 0xf5f5f5,\n yellow: 0xffff00,\n yellowgreen: 0x9acd32\n};\n\ndefine(Color, color, {\n copy(channels) {\n return Object.assign(new this.constructor, this, channels);\n },\n displayable() {\n return this.rgb().displayable();\n },\n hex: color_formatHex, // Deprecated! Use color.formatHex.\n formatHex: color_formatHex,\n formatHex8: color_formatHex8,\n formatHsl: color_formatHsl,\n formatRgb: color_formatRgb,\n toString: color_formatRgb\n});\n\nfunction color_formatHex() {\n return this.rgb().formatHex();\n}\n\nfunction color_formatHex8() {\n return this.rgb().formatHex8();\n}\n\nfunction color_formatHsl() {\n return hslConvert(this).formatHsl();\n}\n\nfunction color_formatRgb() {\n return this.rgb().formatRgb();\n}\n\nexport default function color(format) {\n var m, l;\n format = (format + \"\").trim().toLowerCase();\n return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000\n : l === 3 ? new Rgb((m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1) // #f00\n : l === 8 ? rgba(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000\n : l === 4 ? rgba((m >> 12 & 0xf) | (m >> 8 & 0xf0), (m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), (((m & 0xf) << 4) | (m & 0xf)) / 0xff) // #f000\n : null) // invalid hex\n : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins\n : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0)\n : null;\n}\n\nfunction rgbn(n) {\n return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n}\n\nfunction rgba(r, g, b, a) {\n if (a <= 0) r = g = b = NaN;\n return new Rgb(r, g, b, a);\n}\n\nexport function rgbConvert(o) {\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Rgb;\n o = o.rgb();\n return new Rgb(o.r, o.g, o.b, o.opacity);\n}\n\nexport function rgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\n\nexport function Rgb(r, g, b, opacity) {\n this.r = +r;\n this.g = +g;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Rgb, rgb, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n rgb() {\n return this;\n },\n clamp() {\n return new Rgb(clampi(this.r), clampi(this.g), clampi(this.b), clampa(this.opacity));\n },\n displayable() {\n return (-0.5 <= this.r && this.r < 255.5)\n && (-0.5 <= this.g && this.g < 255.5)\n && (-0.5 <= this.b && this.b < 255.5)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n hex: rgb_formatHex, // Deprecated! Use color.formatHex.\n formatHex: rgb_formatHex,\n formatHex8: rgb_formatHex8,\n formatRgb: rgb_formatRgb,\n toString: rgb_formatRgb\n}));\n\nfunction rgb_formatHex() {\n return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}`;\n}\n\nfunction rgb_formatHex8() {\n return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}${hex((isNaN(this.opacity) ? 1 : this.opacity) * 255)}`;\n}\n\nfunction rgb_formatRgb() {\n const a = clampa(this.opacity);\n return `${a === 1 ? \"rgb(\" : \"rgba(\"}${clampi(this.r)}, ${clampi(this.g)}, ${clampi(this.b)}${a === 1 ? \")\" : `, ${a})`}`;\n}\n\nfunction clampa(opacity) {\n return isNaN(opacity) ? 1 : Math.max(0, Math.min(1, opacity));\n}\n\nfunction clampi(value) {\n return Math.max(0, Math.min(255, Math.round(value) || 0));\n}\n\nfunction hex(value) {\n value = clampi(value);\n return (value < 16 ? \"0\" : \"\") + value.toString(16);\n}\n\nfunction hsla(h, s, l, a) {\n if (a <= 0) h = s = l = NaN;\n else if (l <= 0 || l >= 1) h = s = NaN;\n else if (s <= 0) h = NaN;\n return new Hsl(h, s, l, a);\n}\n\nexport function hslConvert(o) {\n if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Hsl;\n if (o instanceof Hsl) return o;\n o = o.rgb();\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n h = NaN,\n s = max - min,\n l = (max + min) / 2;\n if (s) {\n if (r === max) h = (g - b) / s + (g < b) * 6;\n else if (g === max) h = (b - r) / s + 2;\n else h = (r - g) / s + 4;\n s /= l < 0.5 ? max + min : 2 - max - min;\n h *= 60;\n } else {\n s = l > 0 && l < 1 ? 0 : h;\n }\n return new Hsl(h, s, l, o.opacity);\n}\n\nexport function hsl(h, s, l, opacity) {\n return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hsl(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Hsl, hsl, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n rgb() {\n var h = this.h % 360 + (this.h < 0) * 360,\n s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n l = this.l,\n m2 = l + (l < 0.5 ? l : 1 - l) * s,\n m1 = 2 * l - m2;\n return new Rgb(\n hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),\n hsl2rgb(h, m1, m2),\n hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),\n this.opacity\n );\n },\n clamp() {\n return new Hsl(clamph(this.h), clampt(this.s), clampt(this.l), clampa(this.opacity));\n },\n displayable() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s))\n && (0 <= this.l && this.l <= 1)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n formatHsl() {\n const a = clampa(this.opacity);\n return `${a === 1 ? \"hsl(\" : \"hsla(\"}${clamph(this.h)}, ${clampt(this.s) * 100}%, ${clampt(this.l) * 100}%${a === 1 ? \")\" : `, ${a})`}`;\n }\n}));\n\nfunction clamph(value) {\n value = (value || 0) % 360;\n return value < 0 ? value + 360 : value;\n}\n\nfunction clampt(value) {\n return Math.max(0, Math.min(1, value || 0));\n}\n\n/* From FvD 13.37, CSS Color Module Level 3 */\nfunction hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60\n : h < 180 ? m2\n : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60\n : m1) * 255;\n}\n", "export const radians = Math.PI / 180;\nexport const degrees = 180 / Math.PI;\n", "import define, {extend} from \"./define.js\";\nimport {Color, rgbConvert, Rgb} from \"./color.js\";\nimport {degrees, radians} from \"./math.js\";\n\n// https://observablehq.com/@mbostock/lab-and-rgb\nconst K = 18,\n Xn = 0.96422,\n Yn = 1,\n Zn = 0.82521,\n t0 = 4 / 29,\n t1 = 6 / 29,\n t2 = 3 * t1 * t1,\n t3 = t1 * t1 * t1;\n\nfunction labConvert(o) {\n if (o instanceof Lab) return new Lab(o.l, o.a, o.b, o.opacity);\n if (o instanceof Hcl) return hcl2lab(o);\n if (!(o instanceof Rgb)) o = rgbConvert(o);\n var r = rgb2lrgb(o.r),\n g = rgb2lrgb(o.g),\n b = rgb2lrgb(o.b),\n y = xyz2lab((0.2225045 * r + 0.7168786 * g + 0.0606169 * b) / Yn), x, z;\n if (r === g && g === b) x = z = y; else {\n x = xyz2lab((0.4360747 * r + 0.3850649 * g + 0.1430804 * b) / Xn);\n z = xyz2lab((0.0139322 * r + 0.0971045 * g + 0.7141733 * b) / Zn);\n }\n return new Lab(116 * y - 16, 500 * (x - y), 200 * (y - z), o.opacity);\n}\n\nexport function gray(l, opacity) {\n return new Lab(l, 0, 0, opacity == null ? 1 : opacity);\n}\n\nexport default function lab(l, a, b, opacity) {\n return arguments.length === 1 ? labConvert(l) : new Lab(l, a, b, opacity == null ? 1 : opacity);\n}\n\nexport function Lab(l, a, b, opacity) {\n this.l = +l;\n this.a = +a;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Lab, lab, extend(Color, {\n brighter(k) {\n return new Lab(this.l + K * (k == null ? 1 : k), this.a, this.b, this.opacity);\n },\n darker(k) {\n return new Lab(this.l - K * (k == null ? 1 : k), this.a, this.b, this.opacity);\n },\n rgb() {\n var y = (this.l + 16) / 116,\n x = isNaN(this.a) ? y : y + this.a / 500,\n z = isNaN(this.b) ? y : y - this.b / 200;\n x = Xn * lab2xyz(x);\n y = Yn * lab2xyz(y);\n z = Zn * lab2xyz(z);\n return new Rgb(\n lrgb2rgb( 3.1338561 * x - 1.6168667 * y - 0.4906146 * z),\n lrgb2rgb(-0.9787684 * x + 1.9161415 * y + 0.0334540 * z),\n lrgb2rgb( 0.0719453 * x - 0.2289914 * y + 1.4052427 * z),\n this.opacity\n );\n }\n}));\n\nfunction xyz2lab(t) {\n return t > t3 ? Math.pow(t, 1 / 3) : t / t2 + t0;\n}\n\nfunction lab2xyz(t) {\n return t > t1 ? t * t * t : t2 * (t - t0);\n}\n\nfunction lrgb2rgb(x) {\n return 255 * (x <= 0.0031308 ? 12.92 * x : 1.055 * Math.pow(x, 1 / 2.4) - 0.055);\n}\n\nfunction rgb2lrgb(x) {\n return (x /= 255) <= 0.04045 ? x / 12.92 : Math.pow((x + 0.055) / 1.055, 2.4);\n}\n\nfunction hclConvert(o) {\n if (o instanceof Hcl) return new Hcl(o.h, o.c, o.l, o.opacity);\n if (!(o instanceof Lab)) o = labConvert(o);\n if (o.a === 0 && o.b === 0) return new Hcl(NaN, 0 < o.l && o.l < 100 ? 0 : NaN, o.l, o.opacity);\n var h = Math.atan2(o.b, o.a) * degrees;\n return new Hcl(h < 0 ? h + 360 : h, Math.sqrt(o.a * o.a + o.b * o.b), o.l, o.opacity);\n}\n\nexport function lch(l, c, h, opacity) {\n return arguments.length === 1 ? hclConvert(l) : new Hcl(h, c, l, opacity == null ? 1 : opacity);\n}\n\nexport function hcl(h, c, l, opacity) {\n return arguments.length === 1 ? hclConvert(h) : new Hcl(h, c, l, opacity == null ? 1 : opacity);\n}\n\nexport function Hcl(h, c, l, opacity) {\n this.h = +h;\n this.c = +c;\n this.l = +l;\n this.opacity = +opacity;\n}\n\nfunction hcl2lab(o) {\n if (isNaN(o.h)) return new Lab(o.l, 0, 0, o.opacity);\n var h = o.h * radians;\n return new Lab(o.l, Math.cos(h) * o.c, Math.sin(h) * o.c, o.opacity);\n}\n\ndefine(Hcl, hcl, extend(Color, {\n brighter(k) {\n return new Hcl(this.h, this.c, this.l + K * (k == null ? 1 : k), this.opacity);\n },\n darker(k) {\n return new Hcl(this.h, this.c, this.l - K * (k == null ? 1 : k), this.opacity);\n },\n rgb() {\n return hcl2lab(this).rgb();\n }\n}));\n", "export default x => () => x;\n", "import constant from \"./constant.js\";\n\nfunction linear(a, d) {\n return function(t) {\n return a + t * d;\n };\n}\n\nfunction exponential(a, b, y) {\n return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {\n return Math.pow(a + t * b, y);\n };\n}\n\nexport function hue(a, b) {\n var d = b - a;\n return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a);\n}\n\nexport function gamma(y) {\n return (y = +y) === 1 ? nogamma : function(a, b) {\n return b - a ? exponential(a, b, y) : constant(isNaN(a) ? b : a);\n };\n}\n\nexport default function nogamma(a, b) {\n var d = b - a;\n return d ? linear(a, d) : constant(isNaN(a) ? b : a);\n}\n", "import {hcl as colorHcl} from \"d3-color\";\nimport color, {hue} from \"./color.js\";\n\nfunction hcl(hue) {\n return function(start, end) {\n var h = hue((start = colorHcl(start)).h, (end = colorHcl(end)).h),\n c = color(start.c, end.c),\n l = color(start.l, end.l),\n opacity = color(start.opacity, end.opacity);\n return function(t) {\n start.h = h(t);\n start.c = c(t);\n start.l = l(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n}\n\nexport default hcl(hue);\nexport var hclLong = hcl(color);\n", "export function basis(t1, v0, v1, v2, v3) {\n var t2 = t1 * t1, t3 = t2 * t1;\n return ((1 - 3 * t1 + 3 * t2 - t3) * v0\n + (4 - 6 * t2 + 3 * t3) * v1\n + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2\n + t3 * v3) / 6;\n}\n\nexport default function(values) {\n var n = values.length - 1;\n return function(t) {\n var i = t <= 0 ? (t = 0) : t >= 1 ? (t = 1, n - 1) : Math.floor(t * n),\n v1 = values[i],\n v2 = values[i + 1],\n v0 = i > 0 ? values[i - 1] : 2 * v1 - v2,\n v3 = i < n - 1 ? values[i + 2] : 2 * v2 - v1;\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n", "import {basis} from \"./basis.js\";\n\nexport default function(values) {\n var n = values.length;\n return function(t) {\n var i = Math.floor(((t %= 1) < 0 ? ++t : t) * n),\n v0 = values[(i + n - 1) % n],\n v1 = values[i % n],\n v2 = values[(i + 1) % n],\n v3 = values[(i + 2) % n];\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n", "import {rgb as colorRgb} from \"d3-color\";\nimport basis from \"./basis.js\";\nimport basisClosed from \"./basisClosed.js\";\nimport nogamma, {gamma} from \"./color.js\";\n\nexport default (function rgbGamma(y) {\n var color = gamma(y);\n\n function rgb(start, end) {\n var r = color((start = colorRgb(start)).r, (end = colorRgb(end)).r),\n g = color(start.g, end.g),\n b = color(start.b, end.b),\n opacity = nogamma(start.opacity, end.opacity);\n return function(t) {\n start.r = r(t);\n start.g = g(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n rgb.gamma = rgbGamma;\n\n return rgb;\n})(1);\n\nfunction rgbSpline(spline) {\n return function(colors) {\n var n = colors.length,\n r = new Array(n),\n g = new Array(n),\n b = new Array(n),\n i, color;\n for (i = 0; i < n; ++i) {\n color = colorRgb(colors[i]);\n r[i] = color.r || 0;\n g[i] = color.g || 0;\n b[i] = color.b || 0;\n }\n r = spline(r);\n g = spline(g);\n b = spline(b);\n color.opacity = 1;\n return function(t) {\n color.r = r(t);\n color.g = g(t);\n color.b = b(t);\n return color + \"\";\n };\n };\n}\n\nexport var rgbBasis = rgbSpline(basis);\nexport var rgbBasisClosed = rgbSpline(basisClosed);\n", "export default function(a, b) {\n if (!b) b = [];\n var n = a ? Math.min(b.length, a.length) : 0,\n c = b.slice(),\n i;\n return function(t) {\n for (i = 0; i < n; ++i) c[i] = a[i] * (1 - t) + b[i] * t;\n return c;\n };\n}\n\nexport function isNumberArray(x) {\n return ArrayBuffer.isView(x) && !(x instanceof DataView);\n}\n", "import value from \"./value.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n return (isNumberArray(b) ? numberArray : genericArray)(a, b);\n}\n\nexport function genericArray(a, b) {\n var nb = b ? b.length : 0,\n na = a ? Math.min(nb, a.length) : 0,\n x = new Array(na),\n c = new Array(nb),\n i;\n\n for (i = 0; i < na; ++i) x[i] = value(a[i], b[i]);\n for (; i < nb; ++i) c[i] = b[i];\n\n return function(t) {\n for (i = 0; i < na; ++i) c[i] = x[i](t);\n return c;\n };\n}\n", "export default function(a, b) {\n var d = new Date;\n return a = +a, b = +b, function(t) {\n return d.setTime(a * (1 - t) + b * t), d;\n };\n}\n", "export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return a * (1 - t) + b * t;\n };\n}\n", "import value from \"./value.js\";\n\nexport default function(a, b) {\n var i = {},\n c = {},\n k;\n\n if (a === null || typeof a !== \"object\") a = {};\n if (b === null || typeof b !== \"object\") b = {};\n\n for (k in b) {\n if (k in a) {\n i[k] = value(a[k], b[k]);\n } else {\n c[k] = b[k];\n }\n }\n\n return function(t) {\n for (k in i) c[k] = i[k](t);\n return c;\n };\n}\n", "import number from \"./number.js\";\n\nvar reA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g,\n reB = new RegExp(reA.source, \"g\");\n\nfunction zero(b) {\n return function() {\n return b;\n };\n}\n\nfunction one(b) {\n return function(t) {\n return b(t) + \"\";\n };\n}\n\nexport default function(a, b) {\n var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b\n am, // current match in a\n bm, // current match in b\n bs, // string preceding current number in b, if any\n i = -1, // index in s\n s = [], // string constants and placeholders\n q = []; // number interpolators\n\n // Coerce inputs to strings.\n a = a + \"\", b = b + \"\";\n\n // Interpolate pairs of numbers in a & b.\n while ((am = reA.exec(a))\n && (bm = reB.exec(b))) {\n if ((bs = bm.index) > bi) { // a string precedes the next number in b\n bs = b.slice(bi, bs);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match\n if (s[i]) s[i] += bm; // coalesce with previous string\n else s[++i] = bm;\n } else { // interpolate non-matching numbers\n s[++i] = null;\n q.push({i: i, x: number(am, bm)});\n }\n bi = reB.lastIndex;\n }\n\n // Add remains of b.\n if (bi < b.length) {\n bs = b.slice(bi);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n\n // Special optimization for only a single match.\n // Otherwise, interpolate each of the numbers and rejoin the string.\n return s.length < 2 ? (q[0]\n ? one(q[0].x)\n : zero(b))\n : (b = q.length, function(t) {\n for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n });\n}\n", "import {color} from \"d3-color\";\nimport rgb from \"./rgb.js\";\nimport {genericArray} from \"./array.js\";\nimport date from \"./date.js\";\nimport number from \"./number.js\";\nimport object from \"./object.js\";\nimport string from \"./string.js\";\nimport constant from \"./constant.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n var t = typeof b, c;\n return b == null || t === \"boolean\" ? constant(b)\n : (t === \"number\" ? number\n : t === \"string\" ? ((c = color(b)) ? (b = c, rgb) : string)\n : b instanceof color ? rgb\n : b instanceof Date ? date\n : isNumberArray(b) ? numberArray\n : Array.isArray(b) ? genericArray\n : typeof b.valueOf !== \"function\" && typeof b.toString !== \"function\" || isNaN(b) ? object\n : number)(a, b);\n}\n", "export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return Math.round(a * (1 - t) + b * t);\n };\n}\n", "var degrees = 180 / Math.PI;\n\nexport var identity = {\n translateX: 0,\n translateY: 0,\n rotate: 0,\n skewX: 0,\n scaleX: 1,\n scaleY: 1\n};\n\nexport default function(a, b, c, d, e, f) {\n var scaleX, scaleY, skewX;\n if (scaleX = Math.sqrt(a * a + b * b)) a /= scaleX, b /= scaleX;\n if (skewX = a * c + b * d) c -= a * skewX, d -= b * skewX;\n if (scaleY = Math.sqrt(c * c + d * d)) c /= scaleY, d /= scaleY, skewX /= scaleY;\n if (a * d < b * c) a = -a, b = -b, skewX = -skewX, scaleX = -scaleX;\n return {\n translateX: e,\n translateY: f,\n rotate: Math.atan2(b, a) * degrees,\n skewX: Math.atan(skewX) * degrees,\n scaleX: scaleX,\n scaleY: scaleY\n };\n}\n", "import decompose, {identity} from \"./decompose.js\";\n\nvar svgNode;\n\n/* eslint-disable no-undef */\nexport function parseCss(value) {\n const m = new (typeof DOMMatrix === \"function\" ? DOMMatrix : WebKitCSSMatrix)(value + \"\");\n return m.isIdentity ? identity : decompose(m.a, m.b, m.c, m.d, m.e, m.f);\n}\n\nexport function parseSvg(value) {\n if (value == null) return identity;\n if (!svgNode) svgNode = document.createElementNS(\"http://www.w3.org/2000/svg\", \"g\");\n svgNode.setAttribute(\"transform\", value);\n if (!(value = svgNode.transform.baseVal.consolidate())) return identity;\n value = value.matrix;\n return decompose(value.a, value.b, value.c, value.d, value.e, value.f);\n}\n", "import number from \"../number.js\";\nimport {parseCss, parseSvg} from \"./parse.js\";\n\nfunction interpolateTransform(parse, pxComma, pxParen, degParen) {\n\n function pop(s) {\n return s.length ? s.pop() + \" \" : \"\";\n }\n\n function translate(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(\"translate(\", null, pxComma, null, pxParen);\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb || yb) {\n s.push(\"translate(\" + xb + pxComma + yb + pxParen);\n }\n }\n\n function rotate(a, b, s, q) {\n if (a !== b) {\n if (a - b > 180) b += 360; else if (b - a > 180) a += 360; // shortest path\n q.push({i: s.push(pop(s) + \"rotate(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"rotate(\" + b + degParen);\n }\n }\n\n function skewX(a, b, s, q) {\n if (a !== b) {\n q.push({i: s.push(pop(s) + \"skewX(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"skewX(\" + b + degParen);\n }\n }\n\n function scale(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(pop(s) + \"scale(\", null, \",\", null, \")\");\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb !== 1 || yb !== 1) {\n s.push(pop(s) + \"scale(\" + xb + \",\" + yb + \")\");\n }\n }\n\n return function(a, b) {\n var s = [], // string constants and placeholders\n q = []; // number interpolators\n a = parse(a), b = parse(b);\n translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q);\n rotate(a.rotate, b.rotate, s, q);\n skewX(a.skewX, b.skewX, s, q);\n scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q);\n a = b = null; // gc\n return function(t) {\n var i = -1, n = q.length, o;\n while (++i < n) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n };\n };\n}\n\nexport var interpolateTransformCss = interpolateTransform(parseCss, \"px, \", \"px)\", \"deg)\");\nexport var interpolateTransformSvg = interpolateTransform(parseSvg, \", \", \")\", \")\");\n", "export function initRange(domain, range) {\n switch (arguments.length) {\n case 0: break;\n case 1: this.range(domain); break;\n default: this.range(range).domain(domain); break;\n }\n return this;\n}\n\nexport function initInterpolator(domain, interpolator) {\n switch (arguments.length) {\n case 0: break;\n case 1: {\n if (typeof domain === \"function\") this.interpolator(domain);\n else this.range(domain);\n break;\n }\n default: {\n this.domain(domain);\n if (typeof interpolator === \"function\") this.interpolator(interpolator);\n else this.range(interpolator);\n break;\n }\n }\n return this;\n}\n", "import {InternMap} from \"d3-array\";\nimport {initRange} from \"./init.js\";\n\nexport const implicit = Symbol(\"implicit\");\n\nexport default function ordinal() {\n var index = new InternMap(),\n domain = [],\n range = [],\n unknown = implicit;\n\n function scale(d) {\n let i = index.get(d);\n if (i === undefined) {\n if (unknown !== implicit) return unknown;\n index.set(d, i = domain.push(d) - 1);\n }\n return range[i % range.length];\n }\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [], index = new InternMap();\n for (const value of _) {\n if (index.has(value)) continue;\n index.set(value, domain.push(value) - 1);\n }\n return scale;\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), scale) : range.slice();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return ordinal(domain, range).unknown(unknown);\n };\n\n initRange.apply(scale, arguments);\n\n return scale;\n}\n", "import {range as sequence} from \"d3-array\";\nimport {initRange} from \"./init.js\";\nimport ordinal from \"./ordinal.js\";\n\nexport default function band() {\n var scale = ordinal().unknown(undefined),\n domain = scale.domain,\n ordinalRange = scale.range,\n r0 = 0,\n r1 = 1,\n step,\n bandwidth,\n round = false,\n paddingInner = 0,\n paddingOuter = 0,\n align = 0.5;\n\n delete scale.unknown;\n\n function rescale() {\n var n = domain().length,\n reverse = r1 < r0,\n start = reverse ? r1 : r0,\n stop = reverse ? r0 : r1;\n step = (stop - start) / Math.max(1, n - paddingInner + paddingOuter * 2);\n if (round) step = Math.floor(step);\n start += (stop - start - step * (n - paddingInner)) * align;\n bandwidth = step * (1 - paddingInner);\n if (round) start = Math.round(start), bandwidth = Math.round(bandwidth);\n var values = sequence(n).map(function(i) { return start + step * i; });\n return ordinalRange(reverse ? values.reverse() : values);\n }\n\n scale.domain = function(_) {\n return arguments.length ? (domain(_), rescale()) : domain();\n };\n\n scale.range = function(_) {\n return arguments.length ? ([r0, r1] = _, r0 = +r0, r1 = +r1, rescale()) : [r0, r1];\n };\n\n scale.rangeRound = function(_) {\n return [r0, r1] = _, r0 = +r0, r1 = +r1, round = true, rescale();\n };\n\n scale.bandwidth = function() {\n return bandwidth;\n };\n\n scale.step = function() {\n return step;\n };\n\n scale.round = function(_) {\n return arguments.length ? (round = !!_, rescale()) : round;\n };\n\n scale.padding = function(_) {\n return arguments.length ? (paddingInner = Math.min(1, paddingOuter = +_), rescale()) : paddingInner;\n };\n\n scale.paddingInner = function(_) {\n return arguments.length ? (paddingInner = Math.min(1, _), rescale()) : paddingInner;\n };\n\n scale.paddingOuter = function(_) {\n return arguments.length ? (paddingOuter = +_, rescale()) : paddingOuter;\n };\n\n scale.align = function(_) {\n return arguments.length ? (align = Math.max(0, Math.min(1, _)), rescale()) : align;\n };\n\n scale.copy = function() {\n return band(domain(), [r0, r1])\n .round(round)\n .paddingInner(paddingInner)\n .paddingOuter(paddingOuter)\n .align(align);\n };\n\n return initRange.apply(rescale(), arguments);\n}\n\nfunction pointish(scale) {\n var copy = scale.copy;\n\n scale.padding = scale.paddingOuter;\n delete scale.paddingInner;\n delete scale.paddingOuter;\n\n scale.copy = function() {\n return pointish(copy());\n };\n\n return scale;\n}\n\nexport function point() {\n return pointish(band.apply(null, arguments).paddingInner(1));\n}\n", "export default function constants(x) {\n return function() {\n return x;\n };\n}\n", "export default function number(x) {\n return +x;\n}\n", "import {bisect} from \"d3-array\";\nimport {interpolate as interpolateValue, interpolateNumber, interpolateRound} from \"d3-interpolate\";\nimport constant from \"./constant.js\";\nimport number from \"./number.js\";\n\nvar unit = [0, 1];\n\nexport function identity(x) {\n return x;\n}\n\nfunction normalize(a, b) {\n return (b -= (a = +a))\n ? function(x) { return (x - a) / b; }\n : constant(isNaN(b) ? NaN : 0.5);\n}\n\nfunction clamper(a, b) {\n var t;\n if (a > b) t = a, a = b, b = t;\n return function(x) { return Math.max(a, Math.min(b, x)); };\n}\n\n// normalize(a, b)(x) takes a domain value x in [a,b] and returns the corresponding parameter t in [0,1].\n// interpolate(a, b)(t) takes a parameter t in [0,1] and returns the corresponding range value x in [a,b].\nfunction bimap(domain, range, interpolate) {\n var d0 = domain[0], d1 = domain[1], r0 = range[0], r1 = range[1];\n if (d1 < d0) d0 = normalize(d1, d0), r0 = interpolate(r1, r0);\n else d0 = normalize(d0, d1), r0 = interpolate(r0, r1);\n return function(x) { return r0(d0(x)); };\n}\n\nfunction polymap(domain, range, interpolate) {\n var j = Math.min(domain.length, range.length) - 1,\n d = new Array(j),\n r = new Array(j),\n i = -1;\n\n // Reverse descending domains.\n if (domain[j] < domain[0]) {\n domain = domain.slice().reverse();\n range = range.slice().reverse();\n }\n\n while (++i < j) {\n d[i] = normalize(domain[i], domain[i + 1]);\n r[i] = interpolate(range[i], range[i + 1]);\n }\n\n return function(x) {\n var i = bisect(domain, x, 1, j) - 1;\n return r[i](d[i](x));\n };\n}\n\nexport function copy(source, target) {\n return target\n .domain(source.domain())\n .range(source.range())\n .interpolate(source.interpolate())\n .clamp(source.clamp())\n .unknown(source.unknown());\n}\n\nexport function transformer() {\n var domain = unit,\n range = unit,\n interpolate = interpolateValue,\n transform,\n untransform,\n unknown,\n clamp = identity,\n piecewise,\n output,\n input;\n\n function rescale() {\n var n = Math.min(domain.length, range.length);\n if (clamp !== identity) clamp = clamper(domain[0], domain[n - 1]);\n piecewise = n > 2 ? polymap : bimap;\n output = input = null;\n return scale;\n }\n\n function scale(x) {\n return x == null || isNaN(x = +x) ? unknown : (output || (output = piecewise(domain.map(transform), range, interpolate)))(transform(clamp(x)));\n }\n\n scale.invert = function(y) {\n return clamp(untransform((input || (input = piecewise(range, domain.map(transform), interpolateNumber)))(y)));\n };\n\n scale.domain = function(_) {\n return arguments.length ? (domain = Array.from(_, number), rescale()) : domain.slice();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), rescale()) : range.slice();\n };\n\n scale.rangeRound = function(_) {\n return range = Array.from(_), interpolate = interpolateRound, rescale();\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = _ ? true : identity, rescale()) : clamp !== identity;\n };\n\n scale.interpolate = function(_) {\n return arguments.length ? (interpolate = _, rescale()) : interpolate;\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t, u) {\n transform = t, untransform = u;\n return rescale();\n };\n}\n\nexport default function continuous() {\n return transformer()(identity, identity);\n}\n", "export default function(x) {\n return Math.abs(x = Math.round(x)) >= 1e21\n ? x.toLocaleString(\"en\").replace(/,/g, \"\")\n : x.toString(10);\n}\n\n// Computes the decimal coefficient and exponent of the specified number x with\n// significant digits p, where x is positive and p is in [1, 21] or undefined.\n// For example, formatDecimalParts(1.23) returns [\"123\", 0].\nexport function formatDecimalParts(x, p) {\n if ((i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf(\"e\")) < 0) return null; // NaN, \u00B1Infinity\n var i, coefficient = x.slice(0, i);\n\n // The string returned by toExponential either has the form \\d\\.\\d+e[-+]\\d+\n // (e.g., 1.2e+3) or the form \\de[-+]\\d+ (e.g., 1e+3).\n return [\n coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient,\n +x.slice(i + 1)\n ];\n}\n", "import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x) {\n return x = formatDecimalParts(Math.abs(x)), x ? x[1] : NaN;\n}\n", "export default function(grouping, thousands) {\n return function(value, width) {\n var i = value.length,\n t = [],\n j = 0,\n g = grouping[0],\n length = 0;\n\n while (i > 0 && g > 0) {\n if (length + g + 1 > width) g = Math.max(1, width - length);\n t.push(value.substring(i -= g, i + g));\n if ((length += g + 1) > width) break;\n g = grouping[j = (j + 1) % grouping.length];\n }\n\n return t.reverse().join(thousands);\n };\n}\n", "export default function(numerals) {\n return function(value) {\n return value.replace(/[0-9]/g, function(i) {\n return numerals[+i];\n });\n };\n}\n", "// [[fill]align][sign][symbol][0][width][,][.precision][~][type]\nvar re = /^(?:(.)?([<>=^]))?([+\\-( ])?([$#])?(0)?(\\d+)?(,)?(\\.\\d+)?(~)?([a-z%])?$/i;\n\nexport default function formatSpecifier(specifier) {\n if (!(match = re.exec(specifier))) throw new Error(\"invalid format: \" + specifier);\n var match;\n return new FormatSpecifier({\n fill: match[1],\n align: match[2],\n sign: match[3],\n symbol: match[4],\n zero: match[5],\n width: match[6],\n comma: match[7],\n precision: match[8] && match[8].slice(1),\n trim: match[9],\n type: match[10]\n });\n}\n\nformatSpecifier.prototype = FormatSpecifier.prototype; // instanceof\n\nexport function FormatSpecifier(specifier) {\n this.fill = specifier.fill === undefined ? \" \" : specifier.fill + \"\";\n this.align = specifier.align === undefined ? \">\" : specifier.align + \"\";\n this.sign = specifier.sign === undefined ? \"-\" : specifier.sign + \"\";\n this.symbol = specifier.symbol === undefined ? \"\" : specifier.symbol + \"\";\n this.zero = !!specifier.zero;\n this.width = specifier.width === undefined ? undefined : +specifier.width;\n this.comma = !!specifier.comma;\n this.precision = specifier.precision === undefined ? undefined : +specifier.precision;\n this.trim = !!specifier.trim;\n this.type = specifier.type === undefined ? \"\" : specifier.type + \"\";\n}\n\nFormatSpecifier.prototype.toString = function() {\n return this.fill\n + this.align\n + this.sign\n + this.symbol\n + (this.zero ? \"0\" : \"\")\n + (this.width === undefined ? \"\" : Math.max(1, this.width | 0))\n + (this.comma ? \",\" : \"\")\n + (this.precision === undefined ? \"\" : \".\" + Math.max(0, this.precision | 0))\n + (this.trim ? \"~\" : \"\")\n + this.type;\n};\n", "// Trims insignificant zeros, e.g., replaces 1.2000k with 1.2k.\nexport default function(s) {\n out: for (var n = s.length, i = 1, i0 = -1, i1; i < n; ++i) {\n switch (s[i]) {\n case \".\": i0 = i1 = i; break;\n case \"0\": if (i0 === 0) i0 = i; i1 = i; break;\n default: if (!+s[i]) break out; if (i0 > 0) i0 = 0; break;\n }\n }\n return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s;\n}\n", "import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport var prefixExponent;\n\nexport default function(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1],\n i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1,\n n = coefficient.length;\n return i === n ? coefficient\n : i > n ? coefficient + new Array(i - n + 1).join(\"0\")\n : i > 0 ? coefficient.slice(0, i) + \".\" + coefficient.slice(i)\n : \"0.\" + new Array(1 - i).join(\"0\") + formatDecimalParts(x, Math.max(0, p + i - 1))[0]; // less than 1y!\n}\n", "import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1];\n return exponent < 0 ? \"0.\" + new Array(-exponent).join(\"0\") + coefficient\n : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + \".\" + coefficient.slice(exponent + 1)\n : coefficient + new Array(exponent - coefficient.length + 2).join(\"0\");\n}\n", "import formatDecimal from \"./formatDecimal.js\";\nimport formatPrefixAuto from \"./formatPrefixAuto.js\";\nimport formatRounded from \"./formatRounded.js\";\n\nexport default {\n \"%\": (x, p) => (x * 100).toFixed(p),\n \"b\": (x) => Math.round(x).toString(2),\n \"c\": (x) => x + \"\",\n \"d\": formatDecimal,\n \"e\": (x, p) => x.toExponential(p),\n \"f\": (x, p) => x.toFixed(p),\n \"g\": (x, p) => x.toPrecision(p),\n \"o\": (x) => Math.round(x).toString(8),\n \"p\": (x, p) => formatRounded(x * 100, p),\n \"r\": formatRounded,\n \"s\": formatPrefixAuto,\n \"X\": (x) => Math.round(x).toString(16).toUpperCase(),\n \"x\": (x) => Math.round(x).toString(16)\n};\n", "export default function(x) {\n return x;\n}\n", "import exponent from \"./exponent.js\";\nimport formatGroup from \"./formatGroup.js\";\nimport formatNumerals from \"./formatNumerals.js\";\nimport formatSpecifier from \"./formatSpecifier.js\";\nimport formatTrim from \"./formatTrim.js\";\nimport formatTypes from \"./formatTypes.js\";\nimport {prefixExponent} from \"./formatPrefixAuto.js\";\nimport identity from \"./identity.js\";\n\nvar map = Array.prototype.map,\n prefixes = [\"y\",\"z\",\"a\",\"f\",\"p\",\"n\",\"\u00B5\",\"m\",\"\",\"k\",\"M\",\"G\",\"T\",\"P\",\"E\",\"Z\",\"Y\"];\n\nexport default function(locale) {\n var group = locale.grouping === undefined || locale.thousands === undefined ? identity : formatGroup(map.call(locale.grouping, Number), locale.thousands + \"\"),\n currencyPrefix = locale.currency === undefined ? \"\" : locale.currency[0] + \"\",\n currencySuffix = locale.currency === undefined ? \"\" : locale.currency[1] + \"\",\n decimal = locale.decimal === undefined ? \".\" : locale.decimal + \"\",\n numerals = locale.numerals === undefined ? identity : formatNumerals(map.call(locale.numerals, String)),\n percent = locale.percent === undefined ? \"%\" : locale.percent + \"\",\n minus = locale.minus === undefined ? \"\u2212\" : locale.minus + \"\",\n nan = locale.nan === undefined ? \"NaN\" : locale.nan + \"\";\n\n function newFormat(specifier) {\n specifier = formatSpecifier(specifier);\n\n var fill = specifier.fill,\n align = specifier.align,\n sign = specifier.sign,\n symbol = specifier.symbol,\n zero = specifier.zero,\n width = specifier.width,\n comma = specifier.comma,\n precision = specifier.precision,\n trim = specifier.trim,\n type = specifier.type;\n\n // The \"n\" type is an alias for \",g\".\n if (type === \"n\") comma = true, type = \"g\";\n\n // The \"\" type, and any invalid type, is an alias for \".12~g\".\n else if (!formatTypes[type]) precision === undefined && (precision = 12), trim = true, type = \"g\";\n\n // If zero fill is specified, padding goes after sign and before digits.\n if (zero || (fill === \"0\" && align === \"=\")) zero = true, fill = \"0\", align = \"=\";\n\n // Compute the prefix and suffix.\n // For SI-prefix, the suffix is lazily computed.\n var prefix = symbol === \"$\" ? currencyPrefix : symbol === \"#\" && /[boxX]/.test(type) ? \"0\" + type.toLowerCase() : \"\",\n suffix = symbol === \"$\" ? currencySuffix : /[%p]/.test(type) ? percent : \"\";\n\n // What format function should we use?\n // Is this an integer type?\n // Can this type generate exponential notation?\n var formatType = formatTypes[type],\n maybeSuffix = /[defgprs%]/.test(type);\n\n // Set the default precision if not specified,\n // or clamp the specified precision to the supported range.\n // For significant precision, it must be in [1, 21].\n // For fixed precision, it must be in [0, 20].\n precision = precision === undefined ? 6\n : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision))\n : Math.max(0, Math.min(20, precision));\n\n function format(value) {\n var valuePrefix = prefix,\n valueSuffix = suffix,\n i, n, c;\n\n if (type === \"c\") {\n valueSuffix = formatType(value) + valueSuffix;\n value = \"\";\n } else {\n value = +value;\n\n // Determine the sign. -0 is not less than 0, but 1 / -0 is!\n var valueNegative = value < 0 || 1 / value < 0;\n\n // Perform the initial formatting.\n value = isNaN(value) ? nan : formatType(Math.abs(value), precision);\n\n // Trim insignificant zeros.\n if (trim) value = formatTrim(value);\n\n // If a negative value rounds to zero after formatting, and no explicit positive sign is requested, hide the sign.\n if (valueNegative && +value === 0 && sign !== \"+\") valueNegative = false;\n\n // Compute the prefix and suffix.\n valuePrefix = (valueNegative ? (sign === \"(\" ? sign : minus) : sign === \"-\" || sign === \"(\" ? \"\" : sign) + valuePrefix;\n valueSuffix = (type === \"s\" ? prefixes[8 + prefixExponent / 3] : \"\") + valueSuffix + (valueNegative && sign === \"(\" ? \")\" : \"\");\n\n // Break the formatted value into the integer \u201Cvalue\u201D part that can be\n // grouped, and fractional or exponential \u201Csuffix\u201D part that is not.\n if (maybeSuffix) {\n i = -1, n = value.length;\n while (++i < n) {\n if (c = value.charCodeAt(i), 48 > c || c > 57) {\n valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix;\n value = value.slice(0, i);\n break;\n }\n }\n }\n }\n\n // If the fill character is not \"0\", grouping is applied before padding.\n if (comma && !zero) value = group(value, Infinity);\n\n // Compute the padding.\n var length = valuePrefix.length + value.length + valueSuffix.length,\n padding = length < width ? new Array(width - length + 1).join(fill) : \"\";\n\n // If the fill character is \"0\", grouping is applied after padding.\n if (comma && zero) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = \"\";\n\n // Reconstruct the final output based on the desired alignment.\n switch (align) {\n case \"<\": value = valuePrefix + value + valueSuffix + padding; break;\n case \"=\": value = valuePrefix + padding + value + valueSuffix; break;\n case \"^\": value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length); break;\n default: value = padding + valuePrefix + value + valueSuffix; break;\n }\n\n return numerals(value);\n }\n\n format.toString = function() {\n return specifier + \"\";\n };\n\n return format;\n }\n\n function formatPrefix(specifier, value) {\n var f = newFormat((specifier = formatSpecifier(specifier), specifier.type = \"f\", specifier)),\n e = Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3,\n k = Math.pow(10, -e),\n prefix = prefixes[8 + e / 3];\n return function(value) {\n return f(k * value) + prefix;\n };\n }\n\n return {\n format: newFormat,\n formatPrefix: formatPrefix\n };\n}\n", "import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var format;\nexport var formatPrefix;\n\ndefaultLocale({\n thousands: \",\",\n grouping: [3],\n currency: [\"$\", \"\"]\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n format = locale.format;\n formatPrefix = locale.formatPrefix;\n return locale;\n}\n", "import exponent from \"./exponent.js\";\n\nexport default function(step) {\n return Math.max(0, -exponent(Math.abs(step)));\n}\n", "import exponent from \"./exponent.js\";\n\nexport default function(step, value) {\n return Math.max(0, Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3 - exponent(Math.abs(step)));\n}\n", "import exponent from \"./exponent.js\";\n\nexport default function(step, max) {\n step = Math.abs(step), max = Math.abs(max) - step;\n return Math.max(0, exponent(max) - exponent(step)) + 1;\n}\n", "import {tickStep} from \"d3-array\";\nimport {format, formatPrefix, formatSpecifier, precisionFixed, precisionPrefix, precisionRound} from \"d3-format\";\n\nexport default function tickFormat(start, stop, count, specifier) {\n var step = tickStep(start, stop, count),\n precision;\n specifier = formatSpecifier(specifier == null ? \",f\" : specifier);\n switch (specifier.type) {\n case \"s\": {\n var value = Math.max(Math.abs(start), Math.abs(stop));\n if (specifier.precision == null && !isNaN(precision = precisionPrefix(step, value))) specifier.precision = precision;\n return formatPrefix(specifier, value);\n }\n case \"\":\n case \"e\":\n case \"g\":\n case \"p\":\n case \"r\": {\n if (specifier.precision == null && !isNaN(precision = precisionRound(step, Math.max(Math.abs(start), Math.abs(stop))))) specifier.precision = precision - (specifier.type === \"e\");\n break;\n }\n case \"f\":\n case \"%\": {\n if (specifier.precision == null && !isNaN(precision = precisionFixed(step))) specifier.precision = precision - (specifier.type === \"%\") * 2;\n break;\n }\n }\n return format(specifier);\n}\n", "import {ticks, tickIncrement} from \"d3-array\";\nimport continuous, {copy} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\nimport tickFormat from \"./tickFormat.js\";\n\nexport function linearish(scale) {\n var domain = scale.domain;\n\n scale.ticks = function(count) {\n var d = domain();\n return ticks(d[0], d[d.length - 1], count == null ? 10 : count);\n };\n\n scale.tickFormat = function(count, specifier) {\n var d = domain();\n return tickFormat(d[0], d[d.length - 1], count == null ? 10 : count, specifier);\n };\n\n scale.nice = function(count) {\n if (count == null) count = 10;\n\n var d = domain();\n var i0 = 0;\n var i1 = d.length - 1;\n var start = d[i0];\n var stop = d[i1];\n var prestep;\n var step;\n var maxIter = 10;\n\n if (stop < start) {\n step = start, start = stop, stop = step;\n step = i0, i0 = i1, i1 = step;\n }\n \n while (maxIter-- > 0) {\n step = tickIncrement(start, stop, count);\n if (step === prestep) {\n d[i0] = start\n d[i1] = stop\n return domain(d);\n } else if (step > 0) {\n start = Math.floor(start / step) * step;\n stop = Math.ceil(stop / step) * step;\n } else if (step < 0) {\n start = Math.ceil(start * step) / step;\n stop = Math.floor(stop * step) / step;\n } else {\n break;\n }\n prestep = step;\n }\n\n return scale;\n };\n\n return scale;\n}\n\nexport default function linear() {\n var scale = continuous();\n\n scale.copy = function() {\n return copy(scale, linear());\n };\n\n initRange.apply(scale, arguments);\n\n return linearish(scale);\n}\n", "const t0 = new Date, t1 = new Date;\n\nexport function timeInterval(floori, offseti, count, field) {\n\n function interval(date) {\n return floori(date = arguments.length === 0 ? new Date : new Date(+date)), date;\n }\n\n interval.floor = (date) => {\n return floori(date = new Date(+date)), date;\n };\n\n interval.ceil = (date) => {\n return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date;\n };\n\n interval.round = (date) => {\n const d0 = interval(date), d1 = interval.ceil(date);\n return date - d0 < d1 - date ? d0 : d1;\n };\n\n interval.offset = (date, step) => {\n return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date;\n };\n\n interval.range = (start, stop, step) => {\n const range = [];\n start = interval.ceil(start);\n step = step == null ? 1 : Math.floor(step);\n if (!(start < stop) || !(step > 0)) return range; // also handles Invalid Date\n let previous;\n do range.push(previous = new Date(+start)), offseti(start, step), floori(start);\n while (previous < start && start < stop);\n return range;\n };\n\n interval.filter = (test) => {\n return timeInterval((date) => {\n if (date >= date) while (floori(date), !test(date)) date.setTime(date - 1);\n }, (date, step) => {\n if (date >= date) {\n if (step < 0) while (++step <= 0) {\n while (offseti(date, -1), !test(date)) {} // eslint-disable-line no-empty\n } else while (--step >= 0) {\n while (offseti(date, +1), !test(date)) {} // eslint-disable-line no-empty\n }\n }\n });\n };\n\n if (count) {\n interval.count = (start, end) => {\n t0.setTime(+start), t1.setTime(+end);\n floori(t0), floori(t1);\n return Math.floor(count(t0, t1));\n };\n\n interval.every = (step) => {\n step = Math.floor(step);\n return !isFinite(step) || !(step > 0) ? null\n : !(step > 1) ? interval\n : interval.filter(field\n ? (d) => field(d) % step === 0\n : (d) => interval.count(0, d) % step === 0);\n };\n }\n\n return interval;\n}\n", "import {timeInterval} from \"./interval.js\";\n\nexport const millisecond = timeInterval(() => {\n // noop\n}, (date, step) => {\n date.setTime(+date + step);\n}, (start, end) => {\n return end - start;\n});\n\n// An optimized implementation for this simple case.\nmillisecond.every = (k) => {\n k = Math.floor(k);\n if (!isFinite(k) || !(k > 0)) return null;\n if (!(k > 1)) return millisecond;\n return timeInterval((date) => {\n date.setTime(Math.floor(date / k) * k);\n }, (date, step) => {\n date.setTime(+date + step * k);\n }, (start, end) => {\n return (end - start) / k;\n });\n};\n\nexport const milliseconds = millisecond.range;\n", "import {timeInterval} from \"./interval.js\";\nimport {durationSecond} from \"./duration.js\";\n\nexport const second = timeInterval((date) => {\n date.setTime(date - date.getMilliseconds());\n}, (date, step) => {\n date.setTime(+date + step * durationSecond);\n}, (start, end) => {\n return (end - start) / durationSecond;\n}, (date) => {\n return date.getUTCSeconds();\n});\n\nexport const seconds = second.range;\n", "import {timeInterval} from \"./interval.js\";\nimport {durationMinute, durationSecond} from \"./duration.js\";\n\nexport const timeMinute = timeInterval((date) => {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond);\n}, (date, step) => {\n date.setTime(+date + step * durationMinute);\n}, (start, end) => {\n return (end - start) / durationMinute;\n}, (date) => {\n return date.getMinutes();\n});\n\nexport const timeMinutes = timeMinute.range;\n\nexport const utcMinute = timeInterval((date) => {\n date.setUTCSeconds(0, 0);\n}, (date, step) => {\n date.setTime(+date + step * durationMinute);\n}, (start, end) => {\n return (end - start) / durationMinute;\n}, (date) => {\n return date.getUTCMinutes();\n});\n\nexport const utcMinutes = utcMinute.range;\n", "import {timeInterval} from \"./interval.js\";\nimport {durationHour, durationMinute, durationSecond} from \"./duration.js\";\n\nexport const timeHour = timeInterval((date) => {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond - date.getMinutes() * durationMinute);\n}, (date, step) => {\n date.setTime(+date + step * durationHour);\n}, (start, end) => {\n return (end - start) / durationHour;\n}, (date) => {\n return date.getHours();\n});\n\nexport const timeHours = timeHour.range;\n\nexport const utcHour = timeInterval((date) => {\n date.setUTCMinutes(0, 0, 0);\n}, (date, step) => {\n date.setTime(+date + step * durationHour);\n}, (start, end) => {\n return (end - start) / durationHour;\n}, (date) => {\n return date.getUTCHours();\n});\n\nexport const utcHours = utcHour.range;\n", "import {timeInterval} from \"./interval.js\";\nimport {durationDay, durationMinute} from \"./duration.js\";\n\nexport const timeDay = timeInterval(\n date => date.setHours(0, 0, 0, 0),\n (date, step) => date.setDate(date.getDate() + step),\n (start, end) => (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationDay,\n date => date.getDate() - 1\n);\n\nexport const timeDays = timeDay.range;\n\nexport const utcDay = timeInterval((date) => {\n date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setUTCDate(date.getUTCDate() + step);\n}, (start, end) => {\n return (end - start) / durationDay;\n}, (date) => {\n return date.getUTCDate() - 1;\n});\n\nexport const utcDays = utcDay.range;\n\nexport const unixDay = timeInterval((date) => {\n date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setUTCDate(date.getUTCDate() + step);\n}, (start, end) => {\n return (end - start) / durationDay;\n}, (date) => {\n return Math.floor(date / durationDay);\n});\n\nexport const unixDays = unixDay.range;\n", "import {timeInterval} from \"./interval.js\";\nimport {durationMinute, durationWeek} from \"./duration.js\";\n\nfunction timeWeekday(i) {\n return timeInterval((date) => {\n date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7);\n date.setHours(0, 0, 0, 0);\n }, (date, step) => {\n date.setDate(date.getDate() + step * 7);\n }, (start, end) => {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationWeek;\n });\n}\n\nexport const timeSunday = timeWeekday(0);\nexport const timeMonday = timeWeekday(1);\nexport const timeTuesday = timeWeekday(2);\nexport const timeWednesday = timeWeekday(3);\nexport const timeThursday = timeWeekday(4);\nexport const timeFriday = timeWeekday(5);\nexport const timeSaturday = timeWeekday(6);\n\nexport const timeSundays = timeSunday.range;\nexport const timeMondays = timeMonday.range;\nexport const timeTuesdays = timeTuesday.range;\nexport const timeWednesdays = timeWednesday.range;\nexport const timeThursdays = timeThursday.range;\nexport const timeFridays = timeFriday.range;\nexport const timeSaturdays = timeSaturday.range;\n\nfunction utcWeekday(i) {\n return timeInterval((date) => {\n date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7);\n date.setUTCHours(0, 0, 0, 0);\n }, (date, step) => {\n date.setUTCDate(date.getUTCDate() + step * 7);\n }, (start, end) => {\n return (end - start) / durationWeek;\n });\n}\n\nexport const utcSunday = utcWeekday(0);\nexport const utcMonday = utcWeekday(1);\nexport const utcTuesday = utcWeekday(2);\nexport const utcWednesday = utcWeekday(3);\nexport const utcThursday = utcWeekday(4);\nexport const utcFriday = utcWeekday(5);\nexport const utcSaturday = utcWeekday(6);\n\nexport const utcSundays = utcSunday.range;\nexport const utcMondays = utcMonday.range;\nexport const utcTuesdays = utcTuesday.range;\nexport const utcWednesdays = utcWednesday.range;\nexport const utcThursdays = utcThursday.range;\nexport const utcFridays = utcFriday.range;\nexport const utcSaturdays = utcSaturday.range;\n", "import {timeInterval} from \"./interval.js\";\n\nexport const timeMonth = timeInterval((date) => {\n date.setDate(1);\n date.setHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setMonth(date.getMonth() + step);\n}, (start, end) => {\n return end.getMonth() - start.getMonth() + (end.getFullYear() - start.getFullYear()) * 12;\n}, (date) => {\n return date.getMonth();\n});\n\nexport const timeMonths = timeMonth.range;\n\nexport const utcMonth = timeInterval((date) => {\n date.setUTCDate(1);\n date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setUTCMonth(date.getUTCMonth() + step);\n}, (start, end) => {\n return end.getUTCMonth() - start.getUTCMonth() + (end.getUTCFullYear() - start.getUTCFullYear()) * 12;\n}, (date) => {\n return date.getUTCMonth();\n});\n\nexport const utcMonths = utcMonth.range;\n", "import {timeInterval} from \"./interval.js\";\n\nexport const timeYear = timeInterval((date) => {\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setFullYear(date.getFullYear() + step);\n}, (start, end) => {\n return end.getFullYear() - start.getFullYear();\n}, (date) => {\n return date.getFullYear();\n});\n\n// An optimized implementation for this simple case.\ntimeYear.every = (k) => {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : timeInterval((date) => {\n date.setFullYear(Math.floor(date.getFullYear() / k) * k);\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n }, (date, step) => {\n date.setFullYear(date.getFullYear() + step * k);\n });\n};\n\nexport const timeYears = timeYear.range;\n\nexport const utcYear = timeInterval((date) => {\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setUTCFullYear(date.getUTCFullYear() + step);\n}, (start, end) => {\n return end.getUTCFullYear() - start.getUTCFullYear();\n}, (date) => {\n return date.getUTCFullYear();\n});\n\n// An optimized implementation for this simple case.\nutcYear.every = (k) => {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : timeInterval((date) => {\n date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k);\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n }, (date, step) => {\n date.setUTCFullYear(date.getUTCFullYear() + step * k);\n });\n};\n\nexport const utcYears = utcYear.range;\n", "import {bisector, tickStep} from \"d3-array\";\nimport {durationDay, durationHour, durationMinute, durationMonth, durationSecond, durationWeek, durationYear} from \"./duration.js\";\nimport {millisecond} from \"./millisecond.js\";\nimport {second} from \"./second.js\";\nimport {timeMinute, utcMinute} from \"./minute.js\";\nimport {timeHour, utcHour} from \"./hour.js\";\nimport {timeDay, unixDay} from \"./day.js\";\nimport {timeSunday, utcSunday} from \"./week.js\";\nimport {timeMonth, utcMonth} from \"./month.js\";\nimport {timeYear, utcYear} from \"./year.js\";\n\nfunction ticker(year, month, week, day, hour, minute) {\n\n const tickIntervals = [\n [second, 1, durationSecond],\n [second, 5, 5 * durationSecond],\n [second, 15, 15 * durationSecond],\n [second, 30, 30 * durationSecond],\n [minute, 1, durationMinute],\n [minute, 5, 5 * durationMinute],\n [minute, 15, 15 * durationMinute],\n [minute, 30, 30 * durationMinute],\n [ hour, 1, durationHour ],\n [ hour, 3, 3 * durationHour ],\n [ hour, 6, 6 * durationHour ],\n [ hour, 12, 12 * durationHour ],\n [ day, 1, durationDay ],\n [ day, 2, 2 * durationDay ],\n [ week, 1, durationWeek ],\n [ month, 1, durationMonth ],\n [ month, 3, 3 * durationMonth ],\n [ year, 1, durationYear ]\n ];\n\n function ticks(start, stop, count) {\n const reverse = stop < start;\n if (reverse) [start, stop] = [stop, start];\n const interval = count && typeof count.range === \"function\" ? count : tickInterval(start, stop, count);\n const ticks = interval ? interval.range(start, +stop + 1) : []; // inclusive stop\n return reverse ? ticks.reverse() : ticks;\n }\n\n function tickInterval(start, stop, count) {\n const target = Math.abs(stop - start) / count;\n const i = bisector(([,, step]) => step).right(tickIntervals, target);\n if (i === tickIntervals.length) return year.every(tickStep(start / durationYear, stop / durationYear, count));\n if (i === 0) return millisecond.every(Math.max(tickStep(start, stop, count), 1));\n const [t, step] = tickIntervals[target / tickIntervals[i - 1][2] < tickIntervals[i][2] / target ? i - 1 : i];\n return t.every(step);\n }\n\n return [ticks, tickInterval];\n}\n\nconst [utcTicks, utcTickInterval] = ticker(utcYear, utcMonth, utcSunday, unixDay, utcHour, utcMinute);\nconst [timeTicks, timeTickInterval] = ticker(timeYear, timeMonth, timeSunday, timeDay, timeHour, timeMinute);\n\nexport {utcTicks, utcTickInterval, timeTicks, timeTickInterval};\n", "import {\n timeDay,\n timeSunday,\n timeMonday,\n timeThursday,\n timeYear,\n utcDay,\n utcSunday,\n utcMonday,\n utcThursday,\n utcYear\n} from \"d3-time\";\n\nfunction localDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L);\n date.setFullYear(d.y);\n return date;\n }\n return new Date(d.y, d.m, d.d, d.H, d.M, d.S, d.L);\n}\n\nfunction utcDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(Date.UTC(-1, d.m, d.d, d.H, d.M, d.S, d.L));\n date.setUTCFullYear(d.y);\n return date;\n }\n return new Date(Date.UTC(d.y, d.m, d.d, d.H, d.M, d.S, d.L));\n}\n\nfunction newDate(y, m, d) {\n return {y: y, m: m, d: d, H: 0, M: 0, S: 0, L: 0};\n}\n\nexport default function formatLocale(locale) {\n var locale_dateTime = locale.dateTime,\n locale_date = locale.date,\n locale_time = locale.time,\n locale_periods = locale.periods,\n locale_weekdays = locale.days,\n locale_shortWeekdays = locale.shortDays,\n locale_months = locale.months,\n locale_shortMonths = locale.shortMonths;\n\n var periodRe = formatRe(locale_periods),\n periodLookup = formatLookup(locale_periods),\n weekdayRe = formatRe(locale_weekdays),\n weekdayLookup = formatLookup(locale_weekdays),\n shortWeekdayRe = formatRe(locale_shortWeekdays),\n shortWeekdayLookup = formatLookup(locale_shortWeekdays),\n monthRe = formatRe(locale_months),\n monthLookup = formatLookup(locale_months),\n shortMonthRe = formatRe(locale_shortMonths),\n shortMonthLookup = formatLookup(locale_shortMonths);\n\n var formats = {\n \"a\": formatShortWeekday,\n \"A\": formatWeekday,\n \"b\": formatShortMonth,\n \"B\": formatMonth,\n \"c\": null,\n \"d\": formatDayOfMonth,\n \"e\": formatDayOfMonth,\n \"f\": formatMicroseconds,\n \"g\": formatYearISO,\n \"G\": formatFullYearISO,\n \"H\": formatHour24,\n \"I\": formatHour12,\n \"j\": formatDayOfYear,\n \"L\": formatMilliseconds,\n \"m\": formatMonthNumber,\n \"M\": formatMinutes,\n \"p\": formatPeriod,\n \"q\": formatQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatSeconds,\n \"u\": formatWeekdayNumberMonday,\n \"U\": formatWeekNumberSunday,\n \"V\": formatWeekNumberISO,\n \"w\": formatWeekdayNumberSunday,\n \"W\": formatWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatYear,\n \"Y\": formatFullYear,\n \"Z\": formatZone,\n \"%\": formatLiteralPercent\n };\n\n var utcFormats = {\n \"a\": formatUTCShortWeekday,\n \"A\": formatUTCWeekday,\n \"b\": formatUTCShortMonth,\n \"B\": formatUTCMonth,\n \"c\": null,\n \"d\": formatUTCDayOfMonth,\n \"e\": formatUTCDayOfMonth,\n \"f\": formatUTCMicroseconds,\n \"g\": formatUTCYearISO,\n \"G\": formatUTCFullYearISO,\n \"H\": formatUTCHour24,\n \"I\": formatUTCHour12,\n \"j\": formatUTCDayOfYear,\n \"L\": formatUTCMilliseconds,\n \"m\": formatUTCMonthNumber,\n \"M\": formatUTCMinutes,\n \"p\": formatUTCPeriod,\n \"q\": formatUTCQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatUTCSeconds,\n \"u\": formatUTCWeekdayNumberMonday,\n \"U\": formatUTCWeekNumberSunday,\n \"V\": formatUTCWeekNumberISO,\n \"w\": formatUTCWeekdayNumberSunday,\n \"W\": formatUTCWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatUTCYear,\n \"Y\": formatUTCFullYear,\n \"Z\": formatUTCZone,\n \"%\": formatLiteralPercent\n };\n\n var parses = {\n \"a\": parseShortWeekday,\n \"A\": parseWeekday,\n \"b\": parseShortMonth,\n \"B\": parseMonth,\n \"c\": parseLocaleDateTime,\n \"d\": parseDayOfMonth,\n \"e\": parseDayOfMonth,\n \"f\": parseMicroseconds,\n \"g\": parseYear,\n \"G\": parseFullYear,\n \"H\": parseHour24,\n \"I\": parseHour24,\n \"j\": parseDayOfYear,\n \"L\": parseMilliseconds,\n \"m\": parseMonthNumber,\n \"M\": parseMinutes,\n \"p\": parsePeriod,\n \"q\": parseQuarter,\n \"Q\": parseUnixTimestamp,\n \"s\": parseUnixTimestampSeconds,\n \"S\": parseSeconds,\n \"u\": parseWeekdayNumberMonday,\n \"U\": parseWeekNumberSunday,\n \"V\": parseWeekNumberISO,\n \"w\": parseWeekdayNumberSunday,\n \"W\": parseWeekNumberMonday,\n \"x\": parseLocaleDate,\n \"X\": parseLocaleTime,\n \"y\": parseYear,\n \"Y\": parseFullYear,\n \"Z\": parseZone,\n \"%\": parseLiteralPercent\n };\n\n // These recursive directive definitions must be deferred.\n formats.x = newFormat(locale_date, formats);\n formats.X = newFormat(locale_time, formats);\n formats.c = newFormat(locale_dateTime, formats);\n utcFormats.x = newFormat(locale_date, utcFormats);\n utcFormats.X = newFormat(locale_time, utcFormats);\n utcFormats.c = newFormat(locale_dateTime, utcFormats);\n\n function newFormat(specifier, formats) {\n return function(date) {\n var string = [],\n i = -1,\n j = 0,\n n = specifier.length,\n c,\n pad,\n format;\n\n if (!(date instanceof Date)) date = new Date(+date);\n\n while (++i < n) {\n if (specifier.charCodeAt(i) === 37) {\n string.push(specifier.slice(j, i));\n if ((pad = pads[c = specifier.charAt(++i)]) != null) c = specifier.charAt(++i);\n else pad = c === \"e\" ? \" \" : \"0\";\n if (format = formats[c]) c = format(date, pad);\n string.push(c);\n j = i + 1;\n }\n }\n\n string.push(specifier.slice(j, i));\n return string.join(\"\");\n };\n }\n\n function newParse(specifier, Z) {\n return function(string) {\n var d = newDate(1900, undefined, 1),\n i = parseSpecifier(d, specifier, string += \"\", 0),\n week, day;\n if (i != string.length) return null;\n\n // If a UNIX timestamp is specified, return it.\n if (\"Q\" in d) return new Date(d.Q);\n if (\"s\" in d) return new Date(d.s * 1000 + (\"L\" in d ? d.L : 0));\n\n // If this is utcParse, never use the local timezone.\n if (Z && !(\"Z\" in d)) d.Z = 0;\n\n // The am-pm flag is 0 for AM, and 1 for PM.\n if (\"p\" in d) d.H = d.H % 12 + d.p * 12;\n\n // If the month was not specified, inherit from the quarter.\n if (d.m === undefined) d.m = \"q\" in d ? d.q : 0;\n\n // Convert day-of-week and week-of-year to day-of-year.\n if (\"V\" in d) {\n if (d.V < 1 || d.V > 53) return null;\n if (!(\"w\" in d)) d.w = 1;\n if (\"Z\" in d) {\n week = utcDate(newDate(d.y, 0, 1)), day = week.getUTCDay();\n week = day > 4 || day === 0 ? utcMonday.ceil(week) : utcMonday(week);\n week = utcDay.offset(week, (d.V - 1) * 7);\n d.y = week.getUTCFullYear();\n d.m = week.getUTCMonth();\n d.d = week.getUTCDate() + (d.w + 6) % 7;\n } else {\n week = localDate(newDate(d.y, 0, 1)), day = week.getDay();\n week = day > 4 || day === 0 ? timeMonday.ceil(week) : timeMonday(week);\n week = timeDay.offset(week, (d.V - 1) * 7);\n d.y = week.getFullYear();\n d.m = week.getMonth();\n d.d = week.getDate() + (d.w + 6) % 7;\n }\n } else if (\"W\" in d || \"U\" in d) {\n if (!(\"w\" in d)) d.w = \"u\" in d ? d.u % 7 : \"W\" in d ? 1 : 0;\n day = \"Z\" in d ? utcDate(newDate(d.y, 0, 1)).getUTCDay() : localDate(newDate(d.y, 0, 1)).getDay();\n d.m = 0;\n d.d = \"W\" in d ? (d.w + 6) % 7 + d.W * 7 - (day + 5) % 7 : d.w + d.U * 7 - (day + 6) % 7;\n }\n\n // If a time zone is specified, all fields are interpreted as UTC and then\n // offset according to the specified time zone.\n if (\"Z\" in d) {\n d.H += d.Z / 100 | 0;\n d.M += d.Z % 100;\n return utcDate(d);\n }\n\n // Otherwise, all fields are in local time.\n return localDate(d);\n };\n }\n\n function parseSpecifier(d, specifier, string, j) {\n var i = 0,\n n = specifier.length,\n m = string.length,\n c,\n parse;\n\n while (i < n) {\n if (j >= m) return -1;\n c = specifier.charCodeAt(i++);\n if (c === 37) {\n c = specifier.charAt(i++);\n parse = parses[c in pads ? specifier.charAt(i++) : c];\n if (!parse || ((j = parse(d, string, j)) < 0)) return -1;\n } else if (c != string.charCodeAt(j++)) {\n return -1;\n }\n }\n\n return j;\n }\n\n function parsePeriod(d, string, i) {\n var n = periodRe.exec(string.slice(i));\n return n ? (d.p = periodLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseShortWeekday(d, string, i) {\n var n = shortWeekdayRe.exec(string.slice(i));\n return n ? (d.w = shortWeekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseWeekday(d, string, i) {\n var n = weekdayRe.exec(string.slice(i));\n return n ? (d.w = weekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseShortMonth(d, string, i) {\n var n = shortMonthRe.exec(string.slice(i));\n return n ? (d.m = shortMonthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseMonth(d, string, i) {\n var n = monthRe.exec(string.slice(i));\n return n ? (d.m = monthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseLocaleDateTime(d, string, i) {\n return parseSpecifier(d, locale_dateTime, string, i);\n }\n\n function parseLocaleDate(d, string, i) {\n return parseSpecifier(d, locale_date, string, i);\n }\n\n function parseLocaleTime(d, string, i) {\n return parseSpecifier(d, locale_time, string, i);\n }\n\n function formatShortWeekday(d) {\n return locale_shortWeekdays[d.getDay()];\n }\n\n function formatWeekday(d) {\n return locale_weekdays[d.getDay()];\n }\n\n function formatShortMonth(d) {\n return locale_shortMonths[d.getMonth()];\n }\n\n function formatMonth(d) {\n return locale_months[d.getMonth()];\n }\n\n function formatPeriod(d) {\n return locale_periods[+(d.getHours() >= 12)];\n }\n\n function formatQuarter(d) {\n return 1 + ~~(d.getMonth() / 3);\n }\n\n function formatUTCShortWeekday(d) {\n return locale_shortWeekdays[d.getUTCDay()];\n }\n\n function formatUTCWeekday(d) {\n return locale_weekdays[d.getUTCDay()];\n }\n\n function formatUTCShortMonth(d) {\n return locale_shortMonths[d.getUTCMonth()];\n }\n\n function formatUTCMonth(d) {\n return locale_months[d.getUTCMonth()];\n }\n\n function formatUTCPeriod(d) {\n return locale_periods[+(d.getUTCHours() >= 12)];\n }\n\n function formatUTCQuarter(d) {\n return 1 + ~~(d.getUTCMonth() / 3);\n }\n\n return {\n format: function(specifier) {\n var f = newFormat(specifier += \"\", formats);\n f.toString = function() { return specifier; };\n return f;\n },\n parse: function(specifier) {\n var p = newParse(specifier += \"\", false);\n p.toString = function() { return specifier; };\n return p;\n },\n utcFormat: function(specifier) {\n var f = newFormat(specifier += \"\", utcFormats);\n f.toString = function() { return specifier; };\n return f;\n },\n utcParse: function(specifier) {\n var p = newParse(specifier += \"\", true);\n p.toString = function() { return specifier; };\n return p;\n }\n };\n}\n\nvar pads = {\"-\": \"\", \"_\": \" \", \"0\": \"0\"},\n numberRe = /^\\s*\\d+/, // note: ignores next directive\n percentRe = /^%/,\n requoteRe = /[\\\\^$*+?|[\\]().{}]/g;\n\nfunction pad(value, fill, width) {\n var sign = value < 0 ? \"-\" : \"\",\n string = (sign ? -value : value) + \"\",\n length = string.length;\n return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string);\n}\n\nfunction requote(s) {\n return s.replace(requoteRe, \"\\\\$&\");\n}\n\nfunction formatRe(names) {\n return new RegExp(\"^(?:\" + names.map(requote).join(\"|\") + \")\", \"i\");\n}\n\nfunction formatLookup(names) {\n return new Map(names.map((name, i) => [name.toLowerCase(), i]));\n}\n\nfunction parseWeekdayNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.w = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekdayNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.u = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.U = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberISO(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.V = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.W = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseFullYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 4));\n return n ? (d.y = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.y = +n[0] + (+n[0] > 68 ? 1900 : 2000), i + n[0].length) : -1;\n}\n\nfunction parseZone(d, string, i) {\n var n = /^(Z)|([+-]\\d\\d)(?::?(\\d\\d))?/.exec(string.slice(i, i + 6));\n return n ? (d.Z = n[1] ? 0 : -(n[2] + (n[3] || \"00\")), i + n[0].length) : -1;\n}\n\nfunction parseQuarter(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.q = n[0] * 3 - 3, i + n[0].length) : -1;\n}\n\nfunction parseMonthNumber(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.m = n[0] - 1, i + n[0].length) : -1;\n}\n\nfunction parseDayOfMonth(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseDayOfYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.m = 0, d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseHour24(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.H = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMinutes(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.M = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.S = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMilliseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.L = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMicroseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 6));\n return n ? (d.L = Math.floor(n[0] / 1000), i + n[0].length) : -1;\n}\n\nfunction parseLiteralPercent(d, string, i) {\n var n = percentRe.exec(string.slice(i, i + 1));\n return n ? i + n[0].length : -1;\n}\n\nfunction parseUnixTimestamp(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.Q = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseUnixTimestampSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.s = +n[0], i + n[0].length) : -1;\n}\n\nfunction formatDayOfMonth(d, p) {\n return pad(d.getDate(), p, 2);\n}\n\nfunction formatHour24(d, p) {\n return pad(d.getHours(), p, 2);\n}\n\nfunction formatHour12(d, p) {\n return pad(d.getHours() % 12 || 12, p, 2);\n}\n\nfunction formatDayOfYear(d, p) {\n return pad(1 + timeDay.count(timeYear(d), d), p, 3);\n}\n\nfunction formatMilliseconds(d, p) {\n return pad(d.getMilliseconds(), p, 3);\n}\n\nfunction formatMicroseconds(d, p) {\n return formatMilliseconds(d, p) + \"000\";\n}\n\nfunction formatMonthNumber(d, p) {\n return pad(d.getMonth() + 1, p, 2);\n}\n\nfunction formatMinutes(d, p) {\n return pad(d.getMinutes(), p, 2);\n}\n\nfunction formatSeconds(d, p) {\n return pad(d.getSeconds(), p, 2);\n}\n\nfunction formatWeekdayNumberMonday(d) {\n var day = d.getDay();\n return day === 0 ? 7 : day;\n}\n\nfunction formatWeekNumberSunday(d, p) {\n return pad(timeSunday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction dISO(d) {\n var day = d.getDay();\n return (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);\n}\n\nfunction formatWeekNumberISO(d, p) {\n d = dISO(d);\n return pad(timeThursday.count(timeYear(d), d) + (timeYear(d).getDay() === 4), p, 2);\n}\n\nfunction formatWeekdayNumberSunday(d) {\n return d.getDay();\n}\n\nfunction formatWeekNumberMonday(d, p) {\n return pad(timeMonday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction formatYear(d, p) {\n return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatYearISO(d, p) {\n d = dISO(d);\n return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatFullYear(d, p) {\n return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatFullYearISO(d, p) {\n var day = d.getDay();\n d = (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);\n return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatZone(d) {\n var z = d.getTimezoneOffset();\n return (z > 0 ? \"-\" : (z *= -1, \"+\"))\n + pad(z / 60 | 0, \"0\", 2)\n + pad(z % 60, \"0\", 2);\n}\n\nfunction formatUTCDayOfMonth(d, p) {\n return pad(d.getUTCDate(), p, 2);\n}\n\nfunction formatUTCHour24(d, p) {\n return pad(d.getUTCHours(), p, 2);\n}\n\nfunction formatUTCHour12(d, p) {\n return pad(d.getUTCHours() % 12 || 12, p, 2);\n}\n\nfunction formatUTCDayOfYear(d, p) {\n return pad(1 + utcDay.count(utcYear(d), d), p, 3);\n}\n\nfunction formatUTCMilliseconds(d, p) {\n return pad(d.getUTCMilliseconds(), p, 3);\n}\n\nfunction formatUTCMicroseconds(d, p) {\n return formatUTCMilliseconds(d, p) + \"000\";\n}\n\nfunction formatUTCMonthNumber(d, p) {\n return pad(d.getUTCMonth() + 1, p, 2);\n}\n\nfunction formatUTCMinutes(d, p) {\n return pad(d.getUTCMinutes(), p, 2);\n}\n\nfunction formatUTCSeconds(d, p) {\n return pad(d.getUTCSeconds(), p, 2);\n}\n\nfunction formatUTCWeekdayNumberMonday(d) {\n var dow = d.getUTCDay();\n return dow === 0 ? 7 : dow;\n}\n\nfunction formatUTCWeekNumberSunday(d, p) {\n return pad(utcSunday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction UTCdISO(d) {\n var day = d.getUTCDay();\n return (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);\n}\n\nfunction formatUTCWeekNumberISO(d, p) {\n d = UTCdISO(d);\n return pad(utcThursday.count(utcYear(d), d) + (utcYear(d).getUTCDay() === 4), p, 2);\n}\n\nfunction formatUTCWeekdayNumberSunday(d) {\n return d.getUTCDay();\n}\n\nfunction formatUTCWeekNumberMonday(d, p) {\n return pad(utcMonday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction formatUTCYear(d, p) {\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCYearISO(d, p) {\n d = UTCdISO(d);\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCFullYear(d, p) {\n return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCFullYearISO(d, p) {\n var day = d.getUTCDay();\n d = (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);\n return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCZone() {\n return \"+0000\";\n}\n\nfunction formatLiteralPercent() {\n return \"%\";\n}\n\nfunction formatUnixTimestamp(d) {\n return +d;\n}\n\nfunction formatUnixTimestampSeconds(d) {\n return Math.floor(+d / 1000);\n}\n", "import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var timeFormat;\nexport var timeParse;\nexport var utcFormat;\nexport var utcParse;\n\ndefaultLocale({\n dateTime: \"%x, %X\",\n date: \"%-m/%-d/%Y\",\n time: \"%-I:%M:%S %p\",\n periods: [\"AM\", \"PM\"],\n days: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n shortDays: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n months: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\n shortMonths: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"]\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n timeFormat = locale.format;\n timeParse = locale.parse;\n utcFormat = locale.utcFormat;\n utcParse = locale.utcParse;\n return locale;\n}\n", "export default function nice(domain, interval) {\n domain = domain.slice();\n\n var i0 = 0,\n i1 = domain.length - 1,\n x0 = domain[i0],\n x1 = domain[i1],\n t;\n\n if (x1 < x0) {\n t = i0, i0 = i1, i1 = t;\n t = x0, x0 = x1, x1 = t;\n }\n\n domain[i0] = interval.floor(x0);\n domain[i1] = interval.ceil(x1);\n return domain;\n}\n", "import {timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeTicks, timeTickInterval} from \"d3-time\";\nimport {timeFormat} from \"d3-time-format\";\nimport continuous, {copy} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\nimport nice from \"./nice.js\";\n\nfunction date(t) {\n return new Date(t);\n}\n\nfunction number(t) {\n return t instanceof Date ? +t : +new Date(+t);\n}\n\nexport function calendar(ticks, tickInterval, year, month, week, day, hour, minute, second, format) {\n var scale = continuous(),\n invert = scale.invert,\n domain = scale.domain;\n\n var formatMillisecond = format(\".%L\"),\n formatSecond = format(\":%S\"),\n formatMinute = format(\"%I:%M\"),\n formatHour = format(\"%I %p\"),\n formatDay = format(\"%a %d\"),\n formatWeek = format(\"%b %d\"),\n formatMonth = format(\"%B\"),\n formatYear = format(\"%Y\");\n\n function tickFormat(date) {\n return (second(date) < date ? formatMillisecond\n : minute(date) < date ? formatSecond\n : hour(date) < date ? formatMinute\n : day(date) < date ? formatHour\n : month(date) < date ? (week(date) < date ? formatDay : formatWeek)\n : year(date) < date ? formatMonth\n : formatYear)(date);\n }\n\n scale.invert = function(y) {\n return new Date(invert(y));\n };\n\n scale.domain = function(_) {\n return arguments.length ? domain(Array.from(_, number)) : domain().map(date);\n };\n\n scale.ticks = function(interval) {\n var d = domain();\n return ticks(d[0], d[d.length - 1], interval == null ? 10 : interval);\n };\n\n scale.tickFormat = function(count, specifier) {\n return specifier == null ? tickFormat : format(specifier);\n };\n\n scale.nice = function(interval) {\n var d = domain();\n if (!interval || typeof interval.range !== \"function\") interval = tickInterval(d[0], d[d.length - 1], interval == null ? 10 : interval);\n return interval ? domain(nice(d, interval)) : scale;\n };\n\n scale.copy = function() {\n return copy(scale, calendar(ticks, tickInterval, year, month, week, day, hour, minute, second, format));\n };\n\n return scale;\n}\n\nexport default function time() {\n return initRange.apply(calendar(timeTicks, timeTickInterval, timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeFormat).domain([new Date(2000, 0, 1), new Date(2000, 0, 2)]), arguments);\n}\n", "export default function(specifier) {\n var n = specifier.length / 6 | 0, colors = new Array(n), i = 0;\n while (i < n) colors[i] = \"#\" + specifier.slice(i * 6, ++i * 6);\n return colors;\n}\n", "import colors from \"../colors.js\";\n\nexport default colors(\"4e79a7f28e2ce1575976b7b259a14fedc949af7aa1ff9da79c755fbab0ab\");\n", "export default function(x) {\n return function constant() {\n return x;\n };\n}\n", "export const abs = Math.abs;\nexport const atan2 = Math.atan2;\nexport const cos = Math.cos;\nexport const max = Math.max;\nexport const min = Math.min;\nexport const sin = Math.sin;\nexport const sqrt = Math.sqrt;\n\nexport const epsilon = 1e-12;\nexport const pi = Math.PI;\nexport const halfPi = pi / 2;\nexport const tau = 2 * pi;\n\nexport function acos(x) {\n return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);\n}\n\nexport function asin(x) {\n return x >= 1 ? halfPi : x <= -1 ? -halfPi : Math.asin(x);\n}\n", "const pi = Math.PI,\n tau = 2 * pi,\n epsilon = 1e-6,\n tauEpsilon = tau - epsilon;\n\nfunction append(strings) {\n this._ += strings[0];\n for (let i = 1, n = strings.length; i < n; ++i) {\n this._ += arguments[i] + strings[i];\n }\n}\n\nfunction appendRound(digits) {\n let d = Math.floor(digits);\n if (!(d >= 0)) throw new Error(`invalid digits: ${digits}`);\n if (d > 15) return append;\n const k = 10 ** d;\n return function(strings) {\n this._ += strings[0];\n for (let i = 1, n = strings.length; i < n; ++i) {\n this._ += Math.round(arguments[i] * k) / k + strings[i];\n }\n };\n}\n\nexport class Path {\n constructor(digits) {\n this._x0 = this._y0 = // start of current subpath\n this._x1 = this._y1 = null; // end of current subpath\n this._ = \"\";\n this._append = digits == null ? append : appendRound(digits);\n }\n moveTo(x, y) {\n this._append`M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}`;\n }\n closePath() {\n if (this._x1 !== null) {\n this._x1 = this._x0, this._y1 = this._y0;\n this._append`Z`;\n }\n }\n lineTo(x, y) {\n this._append`L${this._x1 = +x},${this._y1 = +y}`;\n }\n quadraticCurveTo(x1, y1, x, y) {\n this._append`Q${+x1},${+y1},${this._x1 = +x},${this._y1 = +y}`;\n }\n bezierCurveTo(x1, y1, x2, y2, x, y) {\n this._append`C${+x1},${+y1},${+x2},${+y2},${this._x1 = +x},${this._y1 = +y}`;\n }\n arcTo(x1, y1, x2, y2, r) {\n x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(`negative radius: ${r}`);\n\n let x0 = this._x1,\n y0 = this._y1,\n x21 = x2 - x1,\n y21 = y2 - y1,\n x01 = x0 - x1,\n y01 = y0 - y1,\n l01_2 = x01 * x01 + y01 * y01;\n\n // Is this path empty? Move to (x1,y1).\n if (this._x1 === null) {\n this._append`M${this._x1 = x1},${this._y1 = y1}`;\n }\n\n // Or, is (x1,y1) coincident with (x0,y0)? Do nothing.\n else if (!(l01_2 > epsilon));\n\n // Or, are (x0,y0), (x1,y1) and (x2,y2) collinear?\n // Equivalently, is (x1,y1) coincident with (x2,y2)?\n // Or, is the radius zero? Line to (x1,y1).\n else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon) || !r) {\n this._append`L${this._x1 = x1},${this._y1 = y1}`;\n }\n\n // Otherwise, draw an arc!\n else {\n let x20 = x2 - x0,\n y20 = y2 - y0,\n l21_2 = x21 * x21 + y21 * y21,\n l20_2 = x20 * x20 + y20 * y20,\n l21 = Math.sqrt(l21_2),\n l01 = Math.sqrt(l01_2),\n l = r * Math.tan((pi - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2),\n t01 = l / l01,\n t21 = l / l21;\n\n // If the start tangent is not coincident with (x0,y0), line to.\n if (Math.abs(t01 - 1) > epsilon) {\n this._append`L${x1 + t01 * x01},${y1 + t01 * y01}`;\n }\n\n this._append`A${r},${r},0,0,${+(y01 * x20 > x01 * y20)},${this._x1 = x1 + t21 * x21},${this._y1 = y1 + t21 * y21}`;\n }\n }\n arc(x, y, r, a0, a1, ccw) {\n x = +x, y = +y, r = +r, ccw = !!ccw;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(`negative radius: ${r}`);\n\n let dx = r * Math.cos(a0),\n dy = r * Math.sin(a0),\n x0 = x + dx,\n y0 = y + dy,\n cw = 1 ^ ccw,\n da = ccw ? a0 - a1 : a1 - a0;\n\n // Is this path empty? Move to (x0,y0).\n if (this._x1 === null) {\n this._append`M${x0},${y0}`;\n }\n\n // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0).\n else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) {\n this._append`L${x0},${y0}`;\n }\n\n // Is this arc empty? We\u2019re done.\n if (!r) return;\n\n // Does the angle go the wrong way? Flip the direction.\n if (da < 0) da = da % tau + tau;\n\n // Is this a complete circle? Draw two arcs to complete the circle.\n if (da > tauEpsilon) {\n this._append`A${r},${r},0,1,${cw},${x - dx},${y - dy}A${r},${r},0,1,${cw},${this._x1 = x0},${this._y1 = y0}`;\n }\n\n // Is this arc non-empty? Draw an arc!\n else if (da > epsilon) {\n this._append`A${r},${r},0,${+(da >= pi)},${cw},${this._x1 = x + r * Math.cos(a1)},${this._y1 = y + r * Math.sin(a1)}`;\n }\n }\n rect(x, y, w, h) {\n this._append`M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}h${w = +w}v${+h}h${-w}Z`;\n }\n toString() {\n return this._;\n }\n}\n\nexport function path() {\n return new Path;\n}\n\n// Allow instanceof d3.path\npath.prototype = Path.prototype;\n\nexport function pathRound(digits = 3) {\n return new Path(+digits);\n}\n", "import {Path} from \"d3-path\";\n\nexport function withPath(shape) {\n let digits = 3;\n\n shape.digits = function(_) {\n if (!arguments.length) return digits;\n if (_ == null) {\n digits = null;\n } else {\n const d = Math.floor(_);\n if (!(d >= 0)) throw new RangeError(`invalid digits: ${_}`);\n digits = d;\n }\n return shape;\n };\n\n return () => new Path(digits);\n}\n", "import constant from \"./constant.js\";\nimport {abs, acos, asin, atan2, cos, epsilon, halfPi, max, min, pi, sin, sqrt, tau} from \"./math.js\";\nimport {withPath} from \"./path.js\";\n\nfunction arcInnerRadius(d) {\n return d.innerRadius;\n}\n\nfunction arcOuterRadius(d) {\n return d.outerRadius;\n}\n\nfunction arcStartAngle(d) {\n return d.startAngle;\n}\n\nfunction arcEndAngle(d) {\n return d.endAngle;\n}\n\nfunction arcPadAngle(d) {\n return d && d.padAngle; // Note: optional!\n}\n\nfunction intersect(x0, y0, x1, y1, x2, y2, x3, y3) {\n var x10 = x1 - x0, y10 = y1 - y0,\n x32 = x3 - x2, y32 = y3 - y2,\n t = y32 * x10 - x32 * y10;\n if (t * t < epsilon) return;\n t = (x32 * (y0 - y2) - y32 * (x0 - x2)) / t;\n return [x0 + t * x10, y0 + t * y10];\n}\n\n// Compute perpendicular offset line of length rc.\n// http://mathworld.wolfram.com/Circle-LineIntersection.html\nfunction cornerTangents(x0, y0, x1, y1, r1, rc, cw) {\n var x01 = x0 - x1,\n y01 = y0 - y1,\n lo = (cw ? rc : -rc) / sqrt(x01 * x01 + y01 * y01),\n ox = lo * y01,\n oy = -lo * x01,\n x11 = x0 + ox,\n y11 = y0 + oy,\n x10 = x1 + ox,\n y10 = y1 + oy,\n x00 = (x11 + x10) / 2,\n y00 = (y11 + y10) / 2,\n dx = x10 - x11,\n dy = y10 - y11,\n d2 = dx * dx + dy * dy,\n r = r1 - rc,\n D = x11 * y10 - x10 * y11,\n d = (dy < 0 ? -1 : 1) * sqrt(max(0, r * r * d2 - D * D)),\n cx0 = (D * dy - dx * d) / d2,\n cy0 = (-D * dx - dy * d) / d2,\n cx1 = (D * dy + dx * d) / d2,\n cy1 = (-D * dx + dy * d) / d2,\n dx0 = cx0 - x00,\n dy0 = cy0 - y00,\n dx1 = cx1 - x00,\n dy1 = cy1 - y00;\n\n // Pick the closer of the two intersection points.\n // TODO Is there a faster way to determine which intersection to use?\n if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1) cx0 = cx1, cy0 = cy1;\n\n return {\n cx: cx0,\n cy: cy0,\n x01: -ox,\n y01: -oy,\n x11: cx0 * (r1 / r - 1),\n y11: cy0 * (r1 / r - 1)\n };\n}\n\nexport default function() {\n var innerRadius = arcInnerRadius,\n outerRadius = arcOuterRadius,\n cornerRadius = constant(0),\n padRadius = null,\n startAngle = arcStartAngle,\n endAngle = arcEndAngle,\n padAngle = arcPadAngle,\n context = null,\n path = withPath(arc);\n\n function arc() {\n var buffer,\n r,\n r0 = +innerRadius.apply(this, arguments),\n r1 = +outerRadius.apply(this, arguments),\n a0 = startAngle.apply(this, arguments) - halfPi,\n a1 = endAngle.apply(this, arguments) - halfPi,\n da = abs(a1 - a0),\n cw = a1 > a0;\n\n if (!context) context = buffer = path();\n\n // Ensure that the outer radius is always larger than the inner radius.\n if (r1 < r0) r = r1, r1 = r0, r0 = r;\n\n // Is it a point?\n if (!(r1 > epsilon)) context.moveTo(0, 0);\n\n // Or is it a circle or annulus?\n else if (da > tau - epsilon) {\n context.moveTo(r1 * cos(a0), r1 * sin(a0));\n context.arc(0, 0, r1, a0, a1, !cw);\n if (r0 > epsilon) {\n context.moveTo(r0 * cos(a1), r0 * sin(a1));\n context.arc(0, 0, r0, a1, a0, cw);\n }\n }\n\n // Or is it a circular or annular sector?\n else {\n var a01 = a0,\n a11 = a1,\n a00 = a0,\n a10 = a1,\n da0 = da,\n da1 = da,\n ap = padAngle.apply(this, arguments) / 2,\n rp = (ap > epsilon) && (padRadius ? +padRadius.apply(this, arguments) : sqrt(r0 * r0 + r1 * r1)),\n rc = min(abs(r1 - r0) / 2, +cornerRadius.apply(this, arguments)),\n rc0 = rc,\n rc1 = rc,\n t0,\n t1;\n\n // Apply padding? Note that since r1 \u2265 r0, da1 \u2265 da0.\n if (rp > epsilon) {\n var p0 = asin(rp / r0 * sin(ap)),\n p1 = asin(rp / r1 * sin(ap));\n if ((da0 -= p0 * 2) > epsilon) p0 *= (cw ? 1 : -1), a00 += p0, a10 -= p0;\n else da0 = 0, a00 = a10 = (a0 + a1) / 2;\n if ((da1 -= p1 * 2) > epsilon) p1 *= (cw ? 1 : -1), a01 += p1, a11 -= p1;\n else da1 = 0, a01 = a11 = (a0 + a1) / 2;\n }\n\n var x01 = r1 * cos(a01),\n y01 = r1 * sin(a01),\n x10 = r0 * cos(a10),\n y10 = r0 * sin(a10);\n\n // Apply rounded corners?\n if (rc > epsilon) {\n var x11 = r1 * cos(a11),\n y11 = r1 * sin(a11),\n x00 = r0 * cos(a00),\n y00 = r0 * sin(a00),\n oc;\n\n // Restrict the corner radius according to the sector angle. If this\n // intersection fails, it\u2019s probably because the arc is too small, so\n // disable the corner radius entirely.\n if (da < pi) {\n if (oc = intersect(x01, y01, x00, y00, x11, y11, x10, y10)) {\n var ax = x01 - oc[0],\n ay = y01 - oc[1],\n bx = x11 - oc[0],\n by = y11 - oc[1],\n kc = 1 / sin(acos((ax * bx + ay * by) / (sqrt(ax * ax + ay * ay) * sqrt(bx * bx + by * by))) / 2),\n lc = sqrt(oc[0] * oc[0] + oc[1] * oc[1]);\n rc0 = min(rc, (r0 - lc) / (kc - 1));\n rc1 = min(rc, (r1 - lc) / (kc + 1));\n } else {\n rc0 = rc1 = 0;\n }\n }\n }\n\n // Is the sector collapsed to a line?\n if (!(da1 > epsilon)) context.moveTo(x01, y01);\n\n // Does the sector\u2019s outer ring have rounded corners?\n else if (rc1 > epsilon) {\n t0 = cornerTangents(x00, y00, x01, y01, r1, rc1, cw);\n t1 = cornerTangents(x11, y11, x10, y10, r1, rc1, cw);\n\n context.moveTo(t0.cx + t0.x01, t0.cy + t0.y01);\n\n // Have the corners merged?\n if (rc1 < rc) context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw);\n\n // Otherwise, draw the two corners and the ring.\n else {\n context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw);\n context.arc(0, 0, r1, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), !cw);\n context.arc(t1.cx, t1.cy, rc1, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw);\n }\n }\n\n // Or is the outer ring just a circular arc?\n else context.moveTo(x01, y01), context.arc(0, 0, r1, a01, a11, !cw);\n\n // Is there no inner ring, and it\u2019s a circular sector?\n // Or perhaps it\u2019s an annular sector collapsed due to padding?\n if (!(r0 > epsilon) || !(da0 > epsilon)) context.lineTo(x10, y10);\n\n // Does the sector\u2019s inner ring (or point) have rounded corners?\n else if (rc0 > epsilon) {\n t0 = cornerTangents(x10, y10, x11, y11, r0, -rc0, cw);\n t1 = cornerTangents(x01, y01, x00, y00, r0, -rc0, cw);\n\n context.lineTo(t0.cx + t0.x01, t0.cy + t0.y01);\n\n // Have the corners merged?\n if (rc0 < rc) context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw);\n\n // Otherwise, draw the two corners and the ring.\n else {\n context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw);\n context.arc(0, 0, r0, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), cw);\n context.arc(t1.cx, t1.cy, rc0, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw);\n }\n }\n\n // Or is the inner ring just a circular arc?\n else context.arc(0, 0, r0, a10, a00, cw);\n }\n\n context.closePath();\n\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n arc.centroid = function() {\n var r = (+innerRadius.apply(this, arguments) + +outerRadius.apply(this, arguments)) / 2,\n a = (+startAngle.apply(this, arguments) + +endAngle.apply(this, arguments)) / 2 - pi / 2;\n return [cos(a) * r, sin(a) * r];\n };\n\n arc.innerRadius = function(_) {\n return arguments.length ? (innerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : innerRadius;\n };\n\n arc.outerRadius = function(_) {\n return arguments.length ? (outerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : outerRadius;\n };\n\n arc.cornerRadius = function(_) {\n return arguments.length ? (cornerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : cornerRadius;\n };\n\n arc.padRadius = function(_) {\n return arguments.length ? (padRadius = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), arc) : padRadius;\n };\n\n arc.startAngle = function(_) {\n return arguments.length ? (startAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : startAngle;\n };\n\n arc.endAngle = function(_) {\n return arguments.length ? (endAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : endAngle;\n };\n\n arc.padAngle = function(_) {\n return arguments.length ? (padAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : padAngle;\n };\n\n arc.context = function(_) {\n return arguments.length ? ((context = _ == null ? null : _), arc) : context;\n };\n\n return arc;\n}\n", "export var slice = Array.prototype.slice;\n\nexport default function(x) {\n return typeof x === \"object\" && \"length\" in x\n ? x // Array, TypedArray, NodeList, array-like\n : Array.from(x); // Map, Set, iterable, string, or anything else\n}\n", "function Linear(context) {\n this._context = context;\n}\n\nLinear.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; // falls through\n default: this._context.lineTo(x, y); break;\n }\n }\n};\n\nexport default function(context) {\n return new Linear(context);\n}\n", "export function x(p) {\n return p[0];\n}\n\nexport function y(p) {\n return p[1];\n}\n", "import array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport curveLinear from \"./curve/linear.js\";\nimport {withPath} from \"./path.js\";\nimport {x as pointX, y as pointY} from \"./point.js\";\n\nexport default function(x, y) {\n var defined = constant(true),\n context = null,\n curve = curveLinear,\n output = null,\n path = withPath(line);\n\n x = typeof x === \"function\" ? x : (x === undefined) ? pointX : constant(x);\n y = typeof y === \"function\" ? y : (y === undefined) ? pointY : constant(y);\n\n function line(data) {\n var i,\n n = (data = array(data)).length,\n d,\n defined0 = false,\n buffer;\n\n if (context == null) output = curve(buffer = path());\n\n for (i = 0; i <= n; ++i) {\n if (!(i < n && defined(d = data[i], i, data)) === defined0) {\n if (defined0 = !defined0) output.lineStart();\n else output.lineEnd();\n }\n if (defined0) output.point(+x(d, i, data), +y(d, i, data));\n }\n\n if (buffer) return output = null, buffer + \"\" || null;\n }\n\n line.x = function(_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), line) : x;\n };\n\n line.y = function(_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), line) : y;\n };\n\n line.defined = function(_) {\n return arguments.length ? (defined = typeof _ === \"function\" ? _ : constant(!!_), line) : defined;\n };\n\n line.curve = function(_) {\n return arguments.length ? (curve = _, context != null && (output = curve(context)), line) : curve;\n };\n\n line.context = function(_) {\n return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), line) : context;\n };\n\n return line;\n}\n", "export default function(a, b) {\n return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;\n}\n", "export default function(d) {\n return d;\n}\n", "import array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport descending from \"./descending.js\";\nimport identity from \"./identity.js\";\nimport {tau} from \"./math.js\";\n\nexport default function() {\n var value = identity,\n sortValues = descending,\n sort = null,\n startAngle = constant(0),\n endAngle = constant(tau),\n padAngle = constant(0);\n\n function pie(data) {\n var i,\n n = (data = array(data)).length,\n j,\n k,\n sum = 0,\n index = new Array(n),\n arcs = new Array(n),\n a0 = +startAngle.apply(this, arguments),\n da = Math.min(tau, Math.max(-tau, endAngle.apply(this, arguments) - a0)),\n a1,\n p = Math.min(Math.abs(da) / n, padAngle.apply(this, arguments)),\n pa = p * (da < 0 ? -1 : 1),\n v;\n\n for (i = 0; i < n; ++i) {\n if ((v = arcs[index[i] = i] = +value(data[i], i, data)) > 0) {\n sum += v;\n }\n }\n\n // Optionally sort the arcs by previously-computed values or by data.\n if (sortValues != null) index.sort(function(i, j) { return sortValues(arcs[i], arcs[j]); });\n else if (sort != null) index.sort(function(i, j) { return sort(data[i], data[j]); });\n\n // Compute the arcs! They are stored in the original data's order.\n for (i = 0, k = sum ? (da - n * pa) / sum : 0; i < n; ++i, a0 = a1) {\n j = index[i], v = arcs[j], a1 = a0 + (v > 0 ? v * k : 0) + pa, arcs[j] = {\n data: data[j],\n index: i,\n value: v,\n startAngle: a0,\n endAngle: a1,\n padAngle: p\n };\n }\n\n return arcs;\n }\n\n pie.value = function(_) {\n return arguments.length ? (value = typeof _ === \"function\" ? _ : constant(+_), pie) : value;\n };\n\n pie.sortValues = function(_) {\n return arguments.length ? (sortValues = _, sort = null, pie) : sortValues;\n };\n\n pie.sort = function(_) {\n return arguments.length ? (sort = _, sortValues = null, pie) : sort;\n };\n\n pie.startAngle = function(_) {\n return arguments.length ? (startAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : startAngle;\n };\n\n pie.endAngle = function(_) {\n return arguments.length ? (endAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : endAngle;\n };\n\n pie.padAngle = function(_) {\n return arguments.length ? (padAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : padAngle;\n };\n\n return pie;\n}\n", "export function point(that, x, y) {\n that._context.bezierCurveTo(\n (2 * that._x0 + that._x1) / 3,\n (2 * that._y0 + that._y1) / 3,\n (that._x0 + 2 * that._x1) / 3,\n (that._y0 + 2 * that._y1) / 3,\n (that._x0 + 4 * that._x1 + x) / 6,\n (that._y0 + 4 * that._y1 + y) / 6\n );\n}\n\nexport function Basis(context) {\n this._context = context;\n}\n\nBasis.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 3: point(this, this._x1, this._y1); // falls through\n case 2: this._context.lineTo(this._x1, this._y1); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; this._context.lineTo((5 * this._x0 + this._x1) / 6, (5 * this._y0 + this._y1) / 6); // falls through\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nexport default function(context) {\n return new Basis(context);\n}\n", "import pointRadial from \"../pointRadial.js\";\n\nclass Bump {\n constructor(context, x) {\n this._context = context;\n this._x = x;\n }\n areaStart() {\n this._line = 0;\n }\n areaEnd() {\n this._line = NaN;\n }\n lineStart() {\n this._point = 0;\n }\n lineEnd() {\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n }\n point(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: {\n this._point = 1;\n if (this._line) this._context.lineTo(x, y);\n else this._context.moveTo(x, y);\n break;\n }\n case 1: this._point = 2; // falls through\n default: {\n if (this._x) this._context.bezierCurveTo(this._x0 = (this._x0 + x) / 2, this._y0, this._x0, y, x, y);\n else this._context.bezierCurveTo(this._x0, this._y0 = (this._y0 + y) / 2, x, this._y0, x, y);\n break;\n }\n }\n this._x0 = x, this._y0 = y;\n }\n}\n\nclass BumpRadial {\n constructor(context) {\n this._context = context;\n }\n lineStart() {\n this._point = 0;\n }\n lineEnd() {}\n point(x, y) {\n x = +x, y = +y;\n if (this._point === 0) {\n this._point = 1;\n } else {\n const p0 = pointRadial(this._x0, this._y0);\n const p1 = pointRadial(this._x0, this._y0 = (this._y0 + y) / 2);\n const p2 = pointRadial(x, this._y0);\n const p3 = pointRadial(x, y);\n this._context.moveTo(...p0);\n this._context.bezierCurveTo(...p1, ...p2, ...p3);\n }\n this._x0 = x, this._y0 = y;\n }\n}\n\nexport function bumpX(context) {\n return new Bump(context, true);\n}\n\nexport function bumpY(context) {\n return new Bump(context, false);\n}\n\nexport function bumpRadial(context) {\n return new BumpRadial(context);\n}\n", "export default function() {}\n", "import noop from \"../noop.js\";\nimport {point} from \"./basis.js\";\n\nfunction BasisClosed(context) {\n this._context = context;\n}\n\nBasisClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 =\n this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 1: {\n this._context.moveTo(this._x2, this._y2);\n this._context.closePath();\n break;\n }\n case 2: {\n this._context.moveTo((this._x2 + 2 * this._x3) / 3, (this._y2 + 2 * this._y3) / 3);\n this._context.lineTo((this._x3 + 2 * this._x2) / 3, (this._y3 + 2 * this._y2) / 3);\n this._context.closePath();\n break;\n }\n case 3: {\n this.point(this._x2, this._y2);\n this.point(this._x3, this._y3);\n this.point(this._x4, this._y4);\n break;\n }\n }\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._x2 = x, this._y2 = y; break;\n case 1: this._point = 2; this._x3 = x, this._y3 = y; break;\n case 2: this._point = 3; this._x4 = x, this._y4 = y; this._context.moveTo((this._x0 + 4 * this._x1 + x) / 6, (this._y0 + 4 * this._y1 + y) / 6); break;\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nexport default function(context) {\n return new BasisClosed(context);\n}\n", "import {point} from \"./basis.js\";\n\nfunction BasisOpen(context) {\n this._context = context;\n}\n\nBasisOpen.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; var x0 = (this._x0 + 4 * this._x1 + x) / 6, y0 = (this._y0 + 4 * this._y1 + y) / 6; this._line ? this._context.lineTo(x0, y0) : this._context.moveTo(x0, y0); break;\n case 3: this._point = 4; // falls through\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nexport default function(context) {\n return new BasisOpen(context);\n}\n", "import {Basis} from \"./basis.js\";\n\nfunction Bundle(context, beta) {\n this._basis = new Basis(context);\n this._beta = beta;\n}\n\nBundle.prototype = {\n lineStart: function() {\n this._x = [];\n this._y = [];\n this._basis.lineStart();\n },\n lineEnd: function() {\n var x = this._x,\n y = this._y,\n j = x.length - 1;\n\n if (j > 0) {\n var x0 = x[0],\n y0 = y[0],\n dx = x[j] - x0,\n dy = y[j] - y0,\n i = -1,\n t;\n\n while (++i <= j) {\n t = i / j;\n this._basis.point(\n this._beta * x[i] + (1 - this._beta) * (x0 + t * dx),\n this._beta * y[i] + (1 - this._beta) * (y0 + t * dy)\n );\n }\n }\n\n this._x = this._y = null;\n this._basis.lineEnd();\n },\n point: function(x, y) {\n this._x.push(+x);\n this._y.push(+y);\n }\n};\n\nexport default (function custom(beta) {\n\n function bundle(context) {\n return beta === 1 ? new Basis(context) : new Bundle(context, beta);\n }\n\n bundle.beta = function(beta) {\n return custom(+beta);\n };\n\n return bundle;\n})(0.85);\n", "export function point(that, x, y) {\n that._context.bezierCurveTo(\n that._x1 + that._k * (that._x2 - that._x0),\n that._y1 + that._k * (that._y2 - that._y0),\n that._x2 + that._k * (that._x1 - x),\n that._y2 + that._k * (that._y1 - y),\n that._x2,\n that._y2\n );\n}\n\nexport function Cardinal(context, tension) {\n this._context = context;\n this._k = (1 - tension) / 6;\n}\n\nCardinal.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 =\n this._y0 = this._y1 = this._y2 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 2: this._context.lineTo(this._x2, this._y2); break;\n case 3: point(this, this._x1, this._y1); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; this._x1 = x, this._y1 = y; break;\n case 2: this._point = 3; // falls through\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(tension) {\n\n function cardinal(context) {\n return new Cardinal(context, tension);\n }\n\n cardinal.tension = function(tension) {\n return custom(+tension);\n };\n\n return cardinal;\n})(0);\n", "import noop from \"../noop.js\";\nimport {point} from \"./cardinal.js\";\n\nexport function CardinalClosed(context, tension) {\n this._context = context;\n this._k = (1 - tension) / 6;\n}\n\nCardinalClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 =\n this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 1: {\n this._context.moveTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 2: {\n this._context.lineTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 3: {\n this.point(this._x3, this._y3);\n this.point(this._x4, this._y4);\n this.point(this._x5, this._y5);\n break;\n }\n }\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._x3 = x, this._y3 = y; break;\n case 1: this._point = 2; this._context.moveTo(this._x4 = x, this._y4 = y); break;\n case 2: this._point = 3; this._x5 = x, this._y5 = y; break;\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(tension) {\n\n function cardinal(context) {\n return new CardinalClosed(context, tension);\n }\n\n cardinal.tension = function(tension) {\n return custom(+tension);\n };\n\n return cardinal;\n})(0);\n", "import {point} from \"./cardinal.js\";\n\nexport function CardinalOpen(context, tension) {\n this._context = context;\n this._k = (1 - tension) / 6;\n}\n\nCardinalOpen.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 =\n this._y0 = this._y1 = this._y2 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2); break;\n case 3: this._point = 4; // falls through\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(tension) {\n\n function cardinal(context) {\n return new CardinalOpen(context, tension);\n }\n\n cardinal.tension = function(tension) {\n return custom(+tension);\n };\n\n return cardinal;\n})(0);\n", "import {epsilon} from \"../math.js\";\nimport {Cardinal} from \"./cardinal.js\";\n\nexport function point(that, x, y) {\n var x1 = that._x1,\n y1 = that._y1,\n x2 = that._x2,\n y2 = that._y2;\n\n if (that._l01_a > epsilon) {\n var a = 2 * that._l01_2a + 3 * that._l01_a * that._l12_a + that._l12_2a,\n n = 3 * that._l01_a * (that._l01_a + that._l12_a);\n x1 = (x1 * a - that._x0 * that._l12_2a + that._x2 * that._l01_2a) / n;\n y1 = (y1 * a - that._y0 * that._l12_2a + that._y2 * that._l01_2a) / n;\n }\n\n if (that._l23_a > epsilon) {\n var b = 2 * that._l23_2a + 3 * that._l23_a * that._l12_a + that._l12_2a,\n m = 3 * that._l23_a * (that._l23_a + that._l12_a);\n x2 = (x2 * b + that._x1 * that._l23_2a - x * that._l12_2a) / m;\n y2 = (y2 * b + that._y1 * that._l23_2a - y * that._l12_2a) / m;\n }\n\n that._context.bezierCurveTo(x1, y1, x2, y2, that._x2, that._y2);\n}\n\nfunction CatmullRom(context, alpha) {\n this._context = context;\n this._alpha = alpha;\n}\n\nCatmullRom.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 =\n this._y0 = this._y1 = this._y2 = NaN;\n this._l01_a = this._l12_a = this._l23_a =\n this._l01_2a = this._l12_2a = this._l23_2a =\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 2: this._context.lineTo(this._x2, this._y2); break;\n case 3: this.point(this._x2, this._y2); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n\n if (this._point) {\n var x23 = this._x2 - x,\n y23 = this._y2 - y;\n this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));\n }\n\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; // falls through\n default: point(this, x, y); break;\n }\n\n this._l01_a = this._l12_a, this._l12_a = this._l23_a;\n this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(alpha) {\n\n function catmullRom(context) {\n return alpha ? new CatmullRom(context, alpha) : new Cardinal(context, 0);\n }\n\n catmullRom.alpha = function(alpha) {\n return custom(+alpha);\n };\n\n return catmullRom;\n})(0.5);\n", "import {CardinalClosed} from \"./cardinalClosed.js\";\nimport noop from \"../noop.js\";\nimport {point} from \"./catmullRom.js\";\n\nfunction CatmullRomClosed(context, alpha) {\n this._context = context;\n this._alpha = alpha;\n}\n\nCatmullRomClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 =\n this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN;\n this._l01_a = this._l12_a = this._l23_a =\n this._l01_2a = this._l12_2a = this._l23_2a =\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 1: {\n this._context.moveTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 2: {\n this._context.lineTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 3: {\n this.point(this._x3, this._y3);\n this.point(this._x4, this._y4);\n this.point(this._x5, this._y5);\n break;\n }\n }\n },\n point: function(x, y) {\n x = +x, y = +y;\n\n if (this._point) {\n var x23 = this._x2 - x,\n y23 = this._y2 - y;\n this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));\n }\n\n switch (this._point) {\n case 0: this._point = 1; this._x3 = x, this._y3 = y; break;\n case 1: this._point = 2; this._context.moveTo(this._x4 = x, this._y4 = y); break;\n case 2: this._point = 3; this._x5 = x, this._y5 = y; break;\n default: point(this, x, y); break;\n }\n\n this._l01_a = this._l12_a, this._l12_a = this._l23_a;\n this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(alpha) {\n\n function catmullRom(context) {\n return alpha ? new CatmullRomClosed(context, alpha) : new CardinalClosed(context, 0);\n }\n\n catmullRom.alpha = function(alpha) {\n return custom(+alpha);\n };\n\n return catmullRom;\n})(0.5);\n", "import {CardinalOpen} from \"./cardinalOpen.js\";\nimport {point} from \"./catmullRom.js\";\n\nfunction CatmullRomOpen(context, alpha) {\n this._context = context;\n this._alpha = alpha;\n}\n\nCatmullRomOpen.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 =\n this._y0 = this._y1 = this._y2 = NaN;\n this._l01_a = this._l12_a = this._l23_a =\n this._l01_2a = this._l12_2a = this._l23_2a =\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n\n if (this._point) {\n var x23 = this._x2 - x,\n y23 = this._y2 - y;\n this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));\n }\n\n switch (this._point) {\n case 0: this._point = 1; break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2); break;\n case 3: this._point = 4; // falls through\n default: point(this, x, y); break;\n }\n\n this._l01_a = this._l12_a, this._l12_a = this._l23_a;\n this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(alpha) {\n\n function catmullRom(context) {\n return alpha ? new CatmullRomOpen(context, alpha) : new CardinalOpen(context, 0);\n }\n\n catmullRom.alpha = function(alpha) {\n return custom(+alpha);\n };\n\n return catmullRom;\n})(0.5);\n", "import noop from \"../noop.js\";\n\nfunction LinearClosed(context) {\n this._context = context;\n}\n\nLinearClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._point) this._context.closePath();\n },\n point: function(x, y) {\n x = +x, y = +y;\n if (this._point) this._context.lineTo(x, y);\n else this._point = 1, this._context.moveTo(x, y);\n }\n};\n\nexport default function(context) {\n return new LinearClosed(context);\n}\n", "function sign(x) {\n return x < 0 ? -1 : 1;\n}\n\n// Calculate the slopes of the tangents (Hermite-type interpolation) based on\n// the following paper: Steffen, M. 1990. A Simple Method for Monotonic\n// Interpolation in One Dimension. Astronomy and Astrophysics, Vol. 239, NO.\n// NOV(II), P. 443, 1990.\nfunction slope3(that, x2, y2) {\n var h0 = that._x1 - that._x0,\n h1 = x2 - that._x1,\n s0 = (that._y1 - that._y0) / (h0 || h1 < 0 && -0),\n s1 = (y2 - that._y1) / (h1 || h0 < 0 && -0),\n p = (s0 * h1 + s1 * h0) / (h0 + h1);\n return (sign(s0) + sign(s1)) * Math.min(Math.abs(s0), Math.abs(s1), 0.5 * Math.abs(p)) || 0;\n}\n\n// Calculate a one-sided slope.\nfunction slope2(that, t) {\n var h = that._x1 - that._x0;\n return h ? (3 * (that._y1 - that._y0) / h - t) / 2 : t;\n}\n\n// According to https://en.wikipedia.org/wiki/Cubic_Hermite_spline#Representations\n// \"you can express cubic Hermite interpolation in terms of cubic B\u00E9zier curves\n// with respect to the four values p0, p0 + m0 / 3, p1 - m1 / 3, p1\".\nfunction point(that, t0, t1) {\n var x0 = that._x0,\n y0 = that._y0,\n x1 = that._x1,\n y1 = that._y1,\n dx = (x1 - x0) / 3;\n that._context.bezierCurveTo(x0 + dx, y0 + dx * t0, x1 - dx, y1 - dx * t1, x1, y1);\n}\n\nfunction MonotoneX(context) {\n this._context = context;\n}\n\nMonotoneX.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 =\n this._t0 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 2: this._context.lineTo(this._x1, this._y1); break;\n case 3: point(this, this._t0, slope2(this, this._t0)); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n var t1 = NaN;\n\n x = +x, y = +y;\n if (x === this._x1 && y === this._y1) return; // Ignore coincident points.\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; point(this, slope2(this, t1 = slope3(this, x, y)), t1); break;\n default: point(this, this._t0, t1 = slope3(this, x, y)); break;\n }\n\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n this._t0 = t1;\n }\n}\n\nfunction MonotoneY(context) {\n this._context = new ReflectContext(context);\n}\n\n(MonotoneY.prototype = Object.create(MonotoneX.prototype)).point = function(x, y) {\n MonotoneX.prototype.point.call(this, y, x);\n};\n\nfunction ReflectContext(context) {\n this._context = context;\n}\n\nReflectContext.prototype = {\n moveTo: function(x, y) { this._context.moveTo(y, x); },\n closePath: function() { this._context.closePath(); },\n lineTo: function(x, y) { this._context.lineTo(y, x); },\n bezierCurveTo: function(x1, y1, x2, y2, x, y) { this._context.bezierCurveTo(y1, x1, y2, x2, y, x); }\n};\n\nexport function monotoneX(context) {\n return new MonotoneX(context);\n}\n\nexport function monotoneY(context) {\n return new MonotoneY(context);\n}\n", "function Natural(context) {\n this._context = context;\n}\n\nNatural.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x = [];\n this._y = [];\n },\n lineEnd: function() {\n var x = this._x,\n y = this._y,\n n = x.length;\n\n if (n) {\n this._line ? this._context.lineTo(x[0], y[0]) : this._context.moveTo(x[0], y[0]);\n if (n === 2) {\n this._context.lineTo(x[1], y[1]);\n } else {\n var px = controlPoints(x),\n py = controlPoints(y);\n for (var i0 = 0, i1 = 1; i1 < n; ++i0, ++i1) {\n this._context.bezierCurveTo(px[0][i0], py[0][i0], px[1][i0], py[1][i0], x[i1], y[i1]);\n }\n }\n }\n\n if (this._line || (this._line !== 0 && n === 1)) this._context.closePath();\n this._line = 1 - this._line;\n this._x = this._y = null;\n },\n point: function(x, y) {\n this._x.push(+x);\n this._y.push(+y);\n }\n};\n\n// See https://www.particleincell.com/2012/bezier-splines/ for derivation.\nfunction controlPoints(x) {\n var i,\n n = x.length - 1,\n m,\n a = new Array(n),\n b = new Array(n),\n r = new Array(n);\n a[0] = 0, b[0] = 2, r[0] = x[0] + 2 * x[1];\n for (i = 1; i < n - 1; ++i) a[i] = 1, b[i] = 4, r[i] = 4 * x[i] + 2 * x[i + 1];\n a[n - 1] = 2, b[n - 1] = 7, r[n - 1] = 8 * x[n - 1] + x[n];\n for (i = 1; i < n; ++i) m = a[i] / b[i - 1], b[i] -= m, r[i] -= m * r[i - 1];\n a[n - 1] = r[n - 1] / b[n - 1];\n for (i = n - 2; i >= 0; --i) a[i] = (r[i] - a[i + 1]) / b[i];\n b[n - 1] = (x[n] + a[n - 1]) / 2;\n for (i = 0; i < n - 1; ++i) b[i] = 2 * x[i + 1] - a[i + 1];\n return [a, b];\n}\n\nexport default function(context) {\n return new Natural(context);\n}\n", "function Step(context, t) {\n this._context = context;\n this._t = t;\n}\n\nStep.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x = this._y = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (0 < this._t && this._t < 1 && this._point === 2) this._context.lineTo(this._x, this._y);\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n if (this._line >= 0) this._t = 1 - this._t, this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; // falls through\n default: {\n if (this._t <= 0) {\n this._context.lineTo(this._x, y);\n this._context.lineTo(x, y);\n } else {\n var x1 = this._x * (1 - this._t) + x * this._t;\n this._context.lineTo(x1, this._y);\n this._context.lineTo(x1, y);\n }\n break;\n }\n }\n this._x = x, this._y = y;\n }\n};\n\nexport default function(context) {\n return new Step(context, 0.5);\n}\n\nexport function stepBefore(context) {\n return new Step(context, 0);\n}\n\nexport function stepAfter(context) {\n return new Step(context, 1);\n}\n", "var noop = {value: () => {}};\n\nfunction dispatch() {\n for (var i = 0, n = arguments.length, _ = {}, t; i < n; ++i) {\n if (!(t = arguments[i] + \"\") || (t in _) || /[\\s.]/.test(t)) throw new Error(\"illegal type: \" + t);\n _[t] = [];\n }\n return new Dispatch(_);\n}\n\nfunction Dispatch(_) {\n this._ = _;\n}\n\nfunction parseTypenames(typenames, types) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n if (t && !types.hasOwnProperty(t)) throw new Error(\"unknown type: \" + t);\n return {type: t, name: name};\n });\n}\n\nDispatch.prototype = dispatch.prototype = {\n constructor: Dispatch,\n on: function(typename, callback) {\n var _ = this._,\n T = parseTypenames(typename + \"\", _),\n t,\n i = -1,\n n = T.length;\n\n // If no callback was specified, return the callback of the given type and name.\n if (arguments.length < 2) {\n while (++i < n) if ((t = (typename = T[i]).type) && (t = get(_[t], typename.name))) return t;\n return;\n }\n\n // If a type was specified, set the callback for the given type and name.\n // Otherwise, if a null callback was specified, remove callbacks of the given name.\n if (callback != null && typeof callback !== \"function\") throw new Error(\"invalid callback: \" + callback);\n while (++i < n) {\n if (t = (typename = T[i]).type) _[t] = set(_[t], typename.name, callback);\n else if (callback == null) for (t in _) _[t] = set(_[t], typename.name, null);\n }\n\n return this;\n },\n copy: function() {\n var copy = {}, _ = this._;\n for (var t in _) copy[t] = _[t].slice();\n return new Dispatch(copy);\n },\n call: function(type, that) {\n if ((n = arguments.length - 2) > 0) for (var args = new Array(n), i = 0, n, t; i < n; ++i) args[i] = arguments[i + 2];\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n },\n apply: function(type, that, args) {\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (var t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n }\n};\n\nfunction get(type, name) {\n for (var i = 0, n = type.length, c; i < n; ++i) {\n if ((c = type[i]).name === name) {\n return c.value;\n }\n }\n}\n\nfunction set(type, name, callback) {\n for (var i = 0, n = type.length; i < n; ++i) {\n if (type[i].name === name) {\n type[i] = noop, type = type.slice(0, i).concat(type.slice(i + 1));\n break;\n }\n }\n if (callback != null) type.push({name: name, value: callback});\n return type;\n}\n\nexport default dispatch;\n", "var frame = 0, // is an animation frame pending?\n timeout = 0, // is a timeout pending?\n interval = 0, // are any timers active?\n pokeDelay = 1000, // how frequently we check for clock skew\n taskHead,\n taskTail,\n clockLast = 0,\n clockNow = 0,\n clockSkew = 0,\n clock = typeof performance === \"object\" && performance.now ? performance : Date,\n setFrame = typeof window === \"object\" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(f) { setTimeout(f, 17); };\n\nexport function now() {\n return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew);\n}\n\nfunction clearNow() {\n clockNow = 0;\n}\n\nexport function Timer() {\n this._call =\n this._time =\n this._next = null;\n}\n\nTimer.prototype = timer.prototype = {\n constructor: Timer,\n restart: function(callback, delay, time) {\n if (typeof callback !== \"function\") throw new TypeError(\"callback is not a function\");\n time = (time == null ? now() : +time) + (delay == null ? 0 : +delay);\n if (!this._next && taskTail !== this) {\n if (taskTail) taskTail._next = this;\n else taskHead = this;\n taskTail = this;\n }\n this._call = callback;\n this._time = time;\n sleep();\n },\n stop: function() {\n if (this._call) {\n this._call = null;\n this._time = Infinity;\n sleep();\n }\n }\n};\n\nexport function timer(callback, delay, time) {\n var t = new Timer;\n t.restart(callback, delay, time);\n return t;\n}\n\nexport function timerFlush() {\n now(); // Get the current time, if not already set.\n ++frame; // Pretend we\u2019ve set an alarm, if we haven\u2019t already.\n var t = taskHead, e;\n while (t) {\n if ((e = clockNow - t._time) >= 0) t._call.call(undefined, e);\n t = t._next;\n }\n --frame;\n}\n\nfunction wake() {\n clockNow = (clockLast = clock.now()) + clockSkew;\n frame = timeout = 0;\n try {\n timerFlush();\n } finally {\n frame = 0;\n nap();\n clockNow = 0;\n }\n}\n\nfunction poke() {\n var now = clock.now(), delay = now - clockLast;\n if (delay > pokeDelay) clockSkew -= delay, clockLast = now;\n}\n\nfunction nap() {\n var t0, t1 = taskHead, t2, time = Infinity;\n while (t1) {\n if (t1._call) {\n if (time > t1._time) time = t1._time;\n t0 = t1, t1 = t1._next;\n } else {\n t2 = t1._next, t1._next = null;\n t1 = t0 ? t0._next = t2 : taskHead = t2;\n }\n }\n taskTail = t0;\n sleep(time);\n}\n\nfunction sleep(time) {\n if (frame) return; // Soonest alarm already set, or will be.\n if (timeout) timeout = clearTimeout(timeout);\n var delay = time - clockNow; // Strictly less than if we recomputed clockNow.\n if (delay > 24) {\n if (time < Infinity) timeout = setTimeout(wake, time - clock.now() - clockSkew);\n if (interval) interval = clearInterval(interval);\n } else {\n if (!interval) clockLast = clock.now(), interval = setInterval(poke, pokeDelay);\n frame = 1, setFrame(wake);\n }\n}\n", "import {Timer} from \"./timer.js\";\n\nexport default function(callback, delay, time) {\n var t = new Timer;\n delay = delay == null ? 0 : +delay;\n t.restart(elapsed => {\n t.stop();\n callback(elapsed + delay);\n }, delay, time);\n return t;\n}\n", "import {dispatch} from \"d3-dispatch\";\nimport {timer, timeout} from \"d3-timer\";\n\nvar emptyOn = dispatch(\"start\", \"end\", \"cancel\", \"interrupt\");\nvar emptyTween = [];\n\nexport var CREATED = 0;\nexport var SCHEDULED = 1;\nexport var STARTING = 2;\nexport var STARTED = 3;\nexport var RUNNING = 4;\nexport var ENDING = 5;\nexport var ENDED = 6;\n\nexport default function(node, name, id, index, group, timing) {\n var schedules = node.__transition;\n if (!schedules) node.__transition = {};\n else if (id in schedules) return;\n create(node, id, {\n name: name,\n index: index, // For context during callback.\n group: group, // For context during callback.\n on: emptyOn,\n tween: emptyTween,\n time: timing.time,\n delay: timing.delay,\n duration: timing.duration,\n ease: timing.ease,\n timer: null,\n state: CREATED\n });\n}\n\nexport function init(node, id) {\n var schedule = get(node, id);\n if (schedule.state > CREATED) throw new Error(\"too late; already scheduled\");\n return schedule;\n}\n\nexport function set(node, id) {\n var schedule = get(node, id);\n if (schedule.state > STARTED) throw new Error(\"too late; already running\");\n return schedule;\n}\n\nexport function get(node, id) {\n var schedule = node.__transition;\n if (!schedule || !(schedule = schedule[id])) throw new Error(\"transition not found\");\n return schedule;\n}\n\nfunction create(node, id, self) {\n var schedules = node.__transition,\n tween;\n\n // Initialize the self timer when the transition is created.\n // Note the actual delay is not known until the first callback!\n schedules[id] = self;\n self.timer = timer(schedule, 0, self.time);\n\n function schedule(elapsed) {\n self.state = SCHEDULED;\n self.timer.restart(start, self.delay, self.time);\n\n // If the elapsed delay is less than our first sleep, start immediately.\n if (self.delay <= elapsed) start(elapsed - self.delay);\n }\n\n function start(elapsed) {\n var i, j, n, o;\n\n // If the state is not SCHEDULED, then we previously errored on start.\n if (self.state !== SCHEDULED) return stop();\n\n for (i in schedules) {\n o = schedules[i];\n if (o.name !== self.name) continue;\n\n // While this element already has a starting transition during this frame,\n // defer starting an interrupting transition until that transition has a\n // chance to tick (and possibly end); see d3/d3-transition#54!\n if (o.state === STARTED) return timeout(start);\n\n // Interrupt the active transition, if any.\n if (o.state === RUNNING) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"interrupt\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n\n // Cancel any pre-empted transitions.\n else if (+i < id) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"cancel\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n }\n\n // Defer the first tick to end of the current frame; see d3/d3#1576.\n // Note the transition may be canceled after start and before the first tick!\n // Note this must be scheduled before the start event; see d3/d3-transition#16!\n // Assuming this is successful, subsequent callbacks go straight to tick.\n timeout(function() {\n if (self.state === STARTED) {\n self.state = RUNNING;\n self.timer.restart(tick, self.delay, self.time);\n tick(elapsed);\n }\n });\n\n // Dispatch the start event.\n // Note this must be done before the tween are initialized.\n self.state = STARTING;\n self.on.call(\"start\", node, node.__data__, self.index, self.group);\n if (self.state !== STARTING) return; // interrupted\n self.state = STARTED;\n\n // Initialize the tween, deleting null tween.\n tween = new Array(n = self.tween.length);\n for (i = 0, j = -1; i < n; ++i) {\n if (o = self.tween[i].value.call(node, node.__data__, self.index, self.group)) {\n tween[++j] = o;\n }\n }\n tween.length = j + 1;\n }\n\n function tick(elapsed) {\n var t = elapsed < self.duration ? self.ease.call(null, elapsed / self.duration) : (self.timer.restart(stop), self.state = ENDING, 1),\n i = -1,\n n = tween.length;\n\n while (++i < n) {\n tween[i].call(node, t);\n }\n\n // Dispatch the end event.\n if (self.state === ENDING) {\n self.on.call(\"end\", node, node.__data__, self.index, self.group);\n stop();\n }\n }\n\n function stop() {\n self.state = ENDED;\n self.timer.stop();\n delete schedules[id];\n for (var i in schedules) return; // eslint-disable-line no-unused-vars\n delete node.__transition;\n }\n}\n", "import {STARTING, ENDING, ENDED} from \"./transition/schedule.js\";\n\nexport default function(node, name) {\n var schedules = node.__transition,\n schedule,\n active,\n empty = true,\n i;\n\n if (!schedules) return;\n\n name = name == null ? null : name + \"\";\n\n for (i in schedules) {\n if ((schedule = schedules[i]).name !== name) { empty = false; continue; }\n active = schedule.state > STARTING && schedule.state < ENDING;\n schedule.state = ENDED;\n schedule.timer.stop();\n schedule.on.call(active ? \"interrupt\" : \"cancel\", node, node.__data__, schedule.index, schedule.group);\n delete schedules[i];\n }\n\n if (empty) delete node.__transition;\n}\n", "import interrupt from \"../interrupt.js\";\n\nexport default function(name) {\n return this.each(function() {\n interrupt(this, name);\n });\n}\n", "import {get, set} from \"./schedule.js\";\n\nfunction tweenRemove(id, name) {\n var tween0, tween1;\n return function() {\n var schedule = set(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we\u2019re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = tween0 = tween;\n for (var i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1 = tween1.slice();\n tween1.splice(i, 1);\n break;\n }\n }\n }\n\n schedule.tween = tween1;\n };\n}\n\nfunction tweenFunction(id, name, value) {\n var tween0, tween1;\n if (typeof value !== \"function\") throw new Error;\n return function() {\n var schedule = set(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we\u2019re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = (tween0 = tween).slice();\n for (var t = {name: name, value: value}, i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1[i] = t;\n break;\n }\n }\n if (i === n) tween1.push(t);\n }\n\n schedule.tween = tween1;\n };\n}\n\nexport default function(name, value) {\n var id = this._id;\n\n name += \"\";\n\n if (arguments.length < 2) {\n var tween = get(this.node(), id).tween;\n for (var i = 0, n = tween.length, t; i < n; ++i) {\n if ((t = tween[i]).name === name) {\n return t.value;\n }\n }\n return null;\n }\n\n return this.each((value == null ? tweenRemove : tweenFunction)(id, name, value));\n}\n\nexport function tweenValue(transition, name, value) {\n var id = transition._id;\n\n transition.each(function() {\n var schedule = set(this, id);\n (schedule.value || (schedule.value = {}))[name] = value.apply(this, arguments);\n });\n\n return function(node) {\n return get(node, id).value[name];\n };\n}\n", "import {color} from \"d3-color\";\nimport {interpolateNumber, interpolateRgb, interpolateString} from \"d3-interpolate\";\n\nexport default function(a, b) {\n var c;\n return (typeof b === \"number\" ? interpolateNumber\n : b instanceof color ? interpolateRgb\n : (c = color(b)) ? (b = c, interpolateRgb)\n : interpolateString)(a, b);\n}\n", "import {interpolateTransformSvg as interpolateTransform} from \"d3-interpolate\";\nimport {namespace} from \"d3-selection\";\nimport {tweenValue} from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = this.getAttribute(name);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction attrConstantNS(fullname, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = this.getAttributeNS(fullname.space, fullname.local);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction attrFunction(name, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0, value1 = value(this), string1;\n if (value1 == null) return void this.removeAttribute(name);\n string0 = this.getAttribute(name);\n string1 = value1 + \"\";\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction attrFunctionNS(fullname, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0, value1 = value(this), string1;\n if (value1 == null) return void this.removeAttributeNS(fullname.space, fullname.local);\n string0 = this.getAttributeNS(fullname.space, fullname.local);\n string1 = value1 + \"\";\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nexport default function(name, value) {\n var fullname = namespace(name), i = fullname === \"transform\" ? interpolateTransform : interpolate;\n return this.attrTween(name, typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)(fullname, i, tweenValue(this, \"attr.\" + name, value))\n : value == null ? (fullname.local ? attrRemoveNS : attrRemove)(fullname)\n : (fullname.local ? attrConstantNS : attrConstant)(fullname, i, value));\n}\n", "import {namespace} from \"d3-selection\";\n\nfunction attrInterpolate(name, i) {\n return function(t) {\n this.setAttribute(name, i.call(this, t));\n };\n}\n\nfunction attrInterpolateNS(fullname, i) {\n return function(t) {\n this.setAttributeNS(fullname.space, fullname.local, i.call(this, t));\n };\n}\n\nfunction attrTweenNS(fullname, value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && attrInterpolateNS(fullname, i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nfunction attrTween(name, value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && attrInterpolate(name, i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(name, value) {\n var key = \"attr.\" + name;\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n var fullname = namespace(name);\n return this.tween(key, (fullname.local ? attrTweenNS : attrTween)(fullname, value));\n}\n", "import {get, init} from \"./schedule.js\";\n\nfunction delayFunction(id, value) {\n return function() {\n init(this, id).delay = +value.apply(this, arguments);\n };\n}\n\nfunction delayConstant(id, value) {\n return value = +value, function() {\n init(this, id).delay = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? delayFunction\n : delayConstant)(id, value))\n : get(this.node(), id).delay;\n}\n", "import {get, set} from \"./schedule.js\";\n\nfunction durationFunction(id, value) {\n return function() {\n set(this, id).duration = +value.apply(this, arguments);\n };\n}\n\nfunction durationConstant(id, value) {\n return value = +value, function() {\n set(this, id).duration = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? durationFunction\n : durationConstant)(id, value))\n : get(this.node(), id).duration;\n}\n", "import {get, set} from \"./schedule.js\";\n\nfunction easeConstant(id, value) {\n if (typeof value !== \"function\") throw new Error;\n return function() {\n set(this, id).ease = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each(easeConstant(id, value))\n : get(this.node(), id).ease;\n}\n", "import {set} from \"./schedule.js\";\n\nfunction easeVarying(id, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (typeof v !== \"function\") throw new Error;\n set(this, id).ease = v;\n };\n}\n\nexport default function(value) {\n if (typeof value !== \"function\") throw new Error;\n return this.each(easeVarying(this._id, value));\n}\n", "import {matcher} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\n\nexport default function(match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Transition(subgroups, this._parents, this._name, this._id);\n}\n", "import {Transition} from \"./index.js\";\n\nexport default function(transition) {\n if (transition._id !== this._id) throw new Error;\n\n for (var groups0 = this._groups, groups1 = transition._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Transition(merges, this._parents, this._name, this._id);\n}\n", "import {get, set, init} from \"./schedule.js\";\n\nfunction start(name) {\n return (name + \"\").trim().split(/^|\\s+/).every(function(t) {\n var i = t.indexOf(\".\");\n if (i >= 0) t = t.slice(0, i);\n return !t || t === \"start\";\n });\n}\n\nfunction onFunction(id, name, listener) {\n var on0, on1, sit = start(name) ? init : set;\n return function() {\n var schedule = sit(this, id),\n on = schedule.on;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we\u2019re done!\n // Otherwise, copy-on-write.\n if (on !== on0) (on1 = (on0 = on).copy()).on(name, listener);\n\n schedule.on = on1;\n };\n}\n\nexport default function(name, listener) {\n var id = this._id;\n\n return arguments.length < 2\n ? get(this.node(), id).on.on(name)\n : this.each(onFunction(id, name, listener));\n}\n", "function removeFunction(id) {\n return function() {\n var parent = this.parentNode;\n for (var i in this.__transition) if (+i !== id) return;\n if (parent) parent.removeChild(this);\n };\n}\n\nexport default function() {\n return this.on(\"end.remove\", removeFunction(this._id));\n}\n", "import {selector} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n schedule(subgroup[i], name, id, i, subgroup, get(node, id));\n }\n }\n }\n\n return new Transition(subgroups, this._parents, name, id);\n}\n", "import {selectorAll} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n for (var children = select.call(node, node.__data__, i, group), child, inherit = get(node, id), k = 0, l = children.length; k < l; ++k) {\n if (child = children[k]) {\n schedule(child, name, id, k, children, inherit);\n }\n }\n subgroups.push(children);\n parents.push(node);\n }\n }\n }\n\n return new Transition(subgroups, parents, name, id);\n}\n", "import {selection} from \"d3-selection\";\n\nvar Selection = selection.prototype.constructor;\n\nexport default function() {\n return new Selection(this._groups, this._parents);\n}\n", "import {interpolateTransformCss as interpolateTransform} from \"d3-interpolate\";\nimport {style} from \"d3-selection\";\nimport {set} from \"./schedule.js\";\nimport {tweenValue} from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\n\nfunction styleNull(name, interpolate) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0 = style(this, name),\n string1 = (this.style.removeProperty(name), style(this, name));\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, string10 = string1);\n };\n}\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = style(this, name);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction styleFunction(name, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0 = style(this, name),\n value1 = value(this),\n string1 = value1 + \"\";\n if (value1 == null) string1 = value1 = (this.style.removeProperty(name), style(this, name));\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction styleMaybeRemove(id, name) {\n var on0, on1, listener0, key = \"style.\" + name, event = \"end.\" + key, remove;\n return function() {\n var schedule = set(this, id),\n on = schedule.on,\n listener = schedule.value[key] == null ? remove || (remove = styleRemove(name)) : undefined;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we\u2019re done!\n // Otherwise, copy-on-write.\n if (on !== on0 || listener0 !== listener) (on1 = (on0 = on).copy()).on(event, listener0 = listener);\n\n schedule.on = on1;\n };\n}\n\nexport default function(name, value, priority) {\n var i = (name += \"\") === \"transform\" ? interpolateTransform : interpolate;\n return value == null ? this\n .styleTween(name, styleNull(name, i))\n .on(\"end.style.\" + name, styleRemove(name))\n : typeof value === \"function\" ? this\n .styleTween(name, styleFunction(name, i, tweenValue(this, \"style.\" + name, value)))\n .each(styleMaybeRemove(this._id, name))\n : this\n .styleTween(name, styleConstant(name, i, value), priority)\n .on(\"end.style.\" + name, null);\n}\n", "function styleInterpolate(name, i, priority) {\n return function(t) {\n this.style.setProperty(name, i.call(this, t), priority);\n };\n}\n\nfunction styleTween(name, value, priority) {\n var t, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t = (i0 = i) && styleInterpolate(name, i, priority);\n return t;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(name, value, priority) {\n var key = \"style.\" + (name += \"\");\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n return this.tween(key, styleTween(name, value, priority == null ? \"\" : priority));\n}\n", "import {tweenValue} from \"./tween.js\";\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var value1 = value(this);\n this.textContent = value1 == null ? \"\" : value1;\n };\n}\n\nexport default function(value) {\n return this.tween(\"text\", typeof value === \"function\"\n ? textFunction(tweenValue(this, \"text\", value))\n : textConstant(value == null ? \"\" : value + \"\"));\n}\n", "function textInterpolate(i) {\n return function(t) {\n this.textContent = i.call(this, t);\n };\n}\n\nfunction textTween(value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && textInterpolate(i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(value) {\n var key = \"text\";\n if (arguments.length < 1) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n return this.tween(key, textTween(value));\n}\n", "import {Transition, newId} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function() {\n var name = this._name,\n id0 = this._id,\n id1 = newId();\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n var inherit = get(node, id0);\n schedule(node, name, id1, i, group, {\n time: inherit.time + inherit.delay + inherit.duration,\n delay: 0,\n duration: inherit.duration,\n ease: inherit.ease\n });\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id1);\n}\n", "import {set} from \"./schedule.js\";\n\nexport default function() {\n var on0, on1, that = this, id = that._id, size = that.size();\n return new Promise(function(resolve, reject) {\n var cancel = {value: reject},\n end = {value: function() { if (--size === 0) resolve(); }};\n\n that.each(function() {\n var schedule = set(this, id),\n on = schedule.on;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we\u2019re done!\n // Otherwise, copy-on-write.\n if (on !== on0) {\n on1 = (on0 = on).copy();\n on1._.cancel.push(cancel);\n on1._.interrupt.push(cancel);\n on1._.end.push(end);\n }\n\n schedule.on = on1;\n });\n\n // The selection was empty, resolve end immediately\n if (size === 0) resolve();\n });\n}\n", "import {selection} from \"d3-selection\";\nimport transition_attr from \"./attr.js\";\nimport transition_attrTween from \"./attrTween.js\";\nimport transition_delay from \"./delay.js\";\nimport transition_duration from \"./duration.js\";\nimport transition_ease from \"./ease.js\";\nimport transition_easeVarying from \"./easeVarying.js\";\nimport transition_filter from \"./filter.js\";\nimport transition_merge from \"./merge.js\";\nimport transition_on from \"./on.js\";\nimport transition_remove from \"./remove.js\";\nimport transition_select from \"./select.js\";\nimport transition_selectAll from \"./selectAll.js\";\nimport transition_selection from \"./selection.js\";\nimport transition_style from \"./style.js\";\nimport transition_styleTween from \"./styleTween.js\";\nimport transition_text from \"./text.js\";\nimport transition_textTween from \"./textTween.js\";\nimport transition_transition from \"./transition.js\";\nimport transition_tween from \"./tween.js\";\nimport transition_end from \"./end.js\";\n\nvar id = 0;\n\nexport function Transition(groups, parents, name, id) {\n this._groups = groups;\n this._parents = parents;\n this._name = name;\n this._id = id;\n}\n\nexport default function transition(name) {\n return selection().transition(name);\n}\n\nexport function newId() {\n return ++id;\n}\n\nvar selection_prototype = selection.prototype;\n\nTransition.prototype = transition.prototype = {\n constructor: Transition,\n select: transition_select,\n selectAll: transition_selectAll,\n selectChild: selection_prototype.selectChild,\n selectChildren: selection_prototype.selectChildren,\n filter: transition_filter,\n merge: transition_merge,\n selection: transition_selection,\n transition: transition_transition,\n call: selection_prototype.call,\n nodes: selection_prototype.nodes,\n node: selection_prototype.node,\n size: selection_prototype.size,\n empty: selection_prototype.empty,\n each: selection_prototype.each,\n on: transition_on,\n attr: transition_attr,\n attrTween: transition_attrTween,\n style: transition_style,\n styleTween: transition_styleTween,\n text: transition_text,\n textTween: transition_textTween,\n remove: transition_remove,\n tween: transition_tween,\n delay: transition_delay,\n duration: transition_duration,\n ease: transition_ease,\n easeVarying: transition_easeVarying,\n end: transition_end,\n [Symbol.iterator]: selection_prototype[Symbol.iterator]\n};\n", "export function cubicIn(t) {\n return t * t * t;\n}\n\nexport function cubicOut(t) {\n return --t * t * t + 1;\n}\n\nexport function cubicInOut(t) {\n return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2;\n}\n", "import {Transition, newId} from \"../transition/index.js\";\nimport schedule from \"../transition/schedule.js\";\nimport {easeCubicInOut} from \"d3-ease\";\nimport {now} from \"d3-timer\";\n\nvar defaultTiming = {\n time: null, // Set on use.\n delay: 0,\n duration: 250,\n ease: easeCubicInOut\n};\n\nfunction inherit(node, id) {\n var timing;\n while (!(timing = node.__transition) || !(timing = timing[id])) {\n if (!(node = node.parentNode)) {\n throw new Error(`transition ${id} not found`);\n }\n }\n return timing;\n}\n\nexport default function(name) {\n var id,\n timing;\n\n if (name instanceof Transition) {\n id = name._id, name = name._name;\n } else {\n id = newId(), (timing = defaultTiming).time = now(), name = name == null ? null : name + \"\";\n }\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n schedule(node, name, id, i, group, timing || inherit(node, id));\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id);\n}\n", "import {selection} from \"d3-selection\";\nimport selection_interrupt from \"./interrupt.js\";\nimport selection_transition from \"./transition.js\";\n\nselection.prototype.interrupt = selection_interrupt;\nselection.prototype.transition = selection_transition;\n", "import {dispatch} from \"d3-dispatch\";\nimport {dragDisable, dragEnable} from \"d3-drag\";\nimport {interpolate} from \"d3-interpolate\";\nimport {pointer, select} from \"d3-selection\";\nimport {interrupt} from \"d3-transition\";\nimport constant from \"./constant.js\";\nimport BrushEvent from \"./event.js\";\nimport noevent, {nopropagation} from \"./noevent.js\";\n\nvar MODE_DRAG = {name: \"drag\"},\n MODE_SPACE = {name: \"space\"},\n MODE_HANDLE = {name: \"handle\"},\n MODE_CENTER = {name: \"center\"};\n\nconst {abs, max, min} = Math;\n\nfunction number1(e) {\n return [+e[0], +e[1]];\n}\n\nfunction number2(e) {\n return [number1(e[0]), number1(e[1])];\n}\n\nvar X = {\n name: \"x\",\n handles: [\"w\", \"e\"].map(type),\n input: function(x, e) { return x == null ? null : [[+x[0], e[0][1]], [+x[1], e[1][1]]]; },\n output: function(xy) { return xy && [xy[0][0], xy[1][0]]; }\n};\n\nvar Y = {\n name: \"y\",\n handles: [\"n\", \"s\"].map(type),\n input: function(y, e) { return y == null ? null : [[e[0][0], +y[0]], [e[1][0], +y[1]]]; },\n output: function(xy) { return xy && [xy[0][1], xy[1][1]]; }\n};\n\nvar XY = {\n name: \"xy\",\n handles: [\"n\", \"w\", \"e\", \"s\", \"nw\", \"ne\", \"sw\", \"se\"].map(type),\n input: function(xy) { return xy == null ? null : number2(xy); },\n output: function(xy) { return xy; }\n};\n\nvar cursors = {\n overlay: \"crosshair\",\n selection: \"move\",\n n: \"ns-resize\",\n e: \"ew-resize\",\n s: \"ns-resize\",\n w: \"ew-resize\",\n nw: \"nwse-resize\",\n ne: \"nesw-resize\",\n se: \"nwse-resize\",\n sw: \"nesw-resize\"\n};\n\nvar flipX = {\n e: \"w\",\n w: \"e\",\n nw: \"ne\",\n ne: \"nw\",\n se: \"sw\",\n sw: \"se\"\n};\n\nvar flipY = {\n n: \"s\",\n s: \"n\",\n nw: \"sw\",\n ne: \"se\",\n se: \"ne\",\n sw: \"nw\"\n};\n\nvar signsX = {\n overlay: +1,\n selection: +1,\n n: null,\n e: +1,\n s: null,\n w: -1,\n nw: -1,\n ne: +1,\n se: +1,\n sw: -1\n};\n\nvar signsY = {\n overlay: +1,\n selection: +1,\n n: -1,\n e: null,\n s: +1,\n w: null,\n nw: -1,\n ne: -1,\n se: +1,\n sw: +1\n};\n\nfunction type(t) {\n return {type: t};\n}\n\n// Ignore right-click, since that should open the context menu.\nfunction defaultFilter(event) {\n return !event.ctrlKey && !event.button;\n}\n\nfunction defaultExtent() {\n var svg = this.ownerSVGElement || this;\n if (svg.hasAttribute(\"viewBox\")) {\n svg = svg.viewBox.baseVal;\n return [[svg.x, svg.y], [svg.x + svg.width, svg.y + svg.height]];\n }\n return [[0, 0], [svg.width.baseVal.value, svg.height.baseVal.value]];\n}\n\nfunction defaultTouchable() {\n return navigator.maxTouchPoints || (\"ontouchstart\" in this);\n}\n\n// Like d3.local, but with the name \u201C__brush\u201D rather than auto-generated.\nfunction local(node) {\n while (!node.__brush) if (!(node = node.parentNode)) return;\n return node.__brush;\n}\n\nfunction empty(extent) {\n return extent[0][0] === extent[1][0]\n || extent[0][1] === extent[1][1];\n}\n\nexport function brushSelection(node) {\n var state = node.__brush;\n return state ? state.dim.output(state.selection) : null;\n}\n\nexport function brushX() {\n return brush(X);\n}\n\nexport function brushY() {\n return brush(Y);\n}\n\nexport default function() {\n return brush(XY);\n}\n\nfunction brush(dim) {\n var extent = defaultExtent,\n filter = defaultFilter,\n touchable = defaultTouchable,\n keys = true,\n listeners = dispatch(\"start\", \"brush\", \"end\"),\n handleSize = 6,\n touchending;\n\n function brush(group) {\n var overlay = group\n .property(\"__brush\", initialize)\n .selectAll(\".overlay\")\n .data([type(\"overlay\")]);\n\n overlay.enter().append(\"rect\")\n .attr(\"class\", \"overlay\")\n .attr(\"pointer-events\", \"all\")\n .attr(\"cursor\", cursors.overlay)\n .merge(overlay)\n .each(function() {\n var extent = local(this).extent;\n select(this)\n .attr(\"x\", extent[0][0])\n .attr(\"y\", extent[0][1])\n .attr(\"width\", extent[1][0] - extent[0][0])\n .attr(\"height\", extent[1][1] - extent[0][1]);\n });\n\n group.selectAll(\".selection\")\n .data([type(\"selection\")])\n .enter().append(\"rect\")\n .attr(\"class\", \"selection\")\n .attr(\"cursor\", cursors.selection)\n .attr(\"fill\", \"#777\")\n .attr(\"fill-opacity\", 0.3)\n .attr(\"stroke\", \"#fff\")\n .attr(\"shape-rendering\", \"crispEdges\");\n\n var handle = group.selectAll(\".handle\")\n .data(dim.handles, function(d) { return d.type; });\n\n handle.exit().remove();\n\n handle.enter().append(\"rect\")\n .attr(\"class\", function(d) { return \"handle handle--\" + d.type; })\n .attr(\"cursor\", function(d) { return cursors[d.type]; });\n\n group\n .each(redraw)\n .attr(\"fill\", \"none\")\n .attr(\"pointer-events\", \"all\")\n .on(\"mousedown.brush\", started)\n .filter(touchable)\n .on(\"touchstart.brush\", started)\n .on(\"touchmove.brush\", touchmoved)\n .on(\"touchend.brush touchcancel.brush\", touchended)\n .style(\"touch-action\", \"none\")\n .style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\");\n }\n\n brush.move = function(group, selection, event) {\n if (group.tween) {\n group\n .on(\"start.brush\", function(event) { emitter(this, arguments).beforestart().start(event); })\n .on(\"interrupt.brush end.brush\", function(event) { emitter(this, arguments).end(event); })\n .tween(\"brush\", function() {\n var that = this,\n state = that.__brush,\n emit = emitter(that, arguments),\n selection0 = state.selection,\n selection1 = dim.input(typeof selection === \"function\" ? selection.apply(this, arguments) : selection, state.extent),\n i = interpolate(selection0, selection1);\n\n function tween(t) {\n state.selection = t === 1 && selection1 === null ? null : i(t);\n redraw.call(that);\n emit.brush();\n }\n\n return selection0 !== null && selection1 !== null ? tween : tween(1);\n });\n } else {\n group\n .each(function() {\n var that = this,\n args = arguments,\n state = that.__brush,\n selection1 = dim.input(typeof selection === \"function\" ? selection.apply(that, args) : selection, state.extent),\n emit = emitter(that, args).beforestart();\n\n interrupt(that);\n state.selection = selection1 === null ? null : selection1;\n redraw.call(that);\n emit.start(event).brush(event).end(event);\n });\n }\n };\n\n brush.clear = function(group, event) {\n brush.move(group, null, event);\n };\n\n function redraw() {\n var group = select(this),\n selection = local(this).selection;\n\n if (selection) {\n group.selectAll(\".selection\")\n .style(\"display\", null)\n .attr(\"x\", selection[0][0])\n .attr(\"y\", selection[0][1])\n .attr(\"width\", selection[1][0] - selection[0][0])\n .attr(\"height\", selection[1][1] - selection[0][1]);\n\n group.selectAll(\".handle\")\n .style(\"display\", null)\n .attr(\"x\", function(d) { return d.type[d.type.length - 1] === \"e\" ? selection[1][0] - handleSize / 2 : selection[0][0] - handleSize / 2; })\n .attr(\"y\", function(d) { return d.type[0] === \"s\" ? selection[1][1] - handleSize / 2 : selection[0][1] - handleSize / 2; })\n .attr(\"width\", function(d) { return d.type === \"n\" || d.type === \"s\" ? selection[1][0] - selection[0][0] + handleSize : handleSize; })\n .attr(\"height\", function(d) { return d.type === \"e\" || d.type === \"w\" ? selection[1][1] - selection[0][1] + handleSize : handleSize; });\n }\n\n else {\n group.selectAll(\".selection,.handle\")\n .style(\"display\", \"none\")\n .attr(\"x\", null)\n .attr(\"y\", null)\n .attr(\"width\", null)\n .attr(\"height\", null);\n }\n }\n\n function emitter(that, args, clean) {\n var emit = that.__brush.emitter;\n return emit && (!clean || !emit.clean) ? emit : new Emitter(that, args, clean);\n }\n\n function Emitter(that, args, clean) {\n this.that = that;\n this.args = args;\n this.state = that.__brush;\n this.active = 0;\n this.clean = clean;\n }\n\n Emitter.prototype = {\n beforestart: function() {\n if (++this.active === 1) this.state.emitter = this, this.starting = true;\n return this;\n },\n start: function(event, mode) {\n if (this.starting) this.starting = false, this.emit(\"start\", event, mode);\n else this.emit(\"brush\", event);\n return this;\n },\n brush: function(event, mode) {\n this.emit(\"brush\", event, mode);\n return this;\n },\n end: function(event, mode) {\n if (--this.active === 0) delete this.state.emitter, this.emit(\"end\", event, mode);\n return this;\n },\n emit: function(type, event, mode) {\n var d = select(this.that).datum();\n listeners.call(\n type,\n this.that,\n new BrushEvent(type, {\n sourceEvent: event,\n target: brush,\n selection: dim.output(this.state.selection),\n mode,\n dispatch: listeners\n }),\n d\n );\n }\n };\n\n function started(event) {\n if (touchending && !event.touches) return;\n if (!filter.apply(this, arguments)) return;\n\n var that = this,\n type = event.target.__data__.type,\n mode = (keys && event.metaKey ? type = \"overlay\" : type) === \"selection\" ? MODE_DRAG : (keys && event.altKey ? MODE_CENTER : MODE_HANDLE),\n signX = dim === Y ? null : signsX[type],\n signY = dim === X ? null : signsY[type],\n state = local(that),\n extent = state.extent,\n selection = state.selection,\n W = extent[0][0], w0, w1,\n N = extent[0][1], n0, n1,\n E = extent[1][0], e0, e1,\n S = extent[1][1], s0, s1,\n dx = 0,\n dy = 0,\n moving,\n shifting = signX && signY && keys && event.shiftKey,\n lockX,\n lockY,\n points = Array.from(event.touches || [event], t => {\n const i = t.identifier;\n t = pointer(t, that);\n t.point0 = t.slice();\n t.identifier = i;\n return t;\n });\n\n interrupt(that);\n var emit = emitter(that, arguments, true).beforestart();\n\n if (type === \"overlay\") {\n if (selection) moving = true;\n const pts = [points[0], points[1] || points[0]];\n state.selection = selection = [[\n w0 = dim === Y ? W : min(pts[0][0], pts[1][0]),\n n0 = dim === X ? N : min(pts[0][1], pts[1][1])\n ], [\n e0 = dim === Y ? E : max(pts[0][0], pts[1][0]),\n s0 = dim === X ? S : max(pts[0][1], pts[1][1])\n ]];\n if (points.length > 1) move(event);\n } else {\n w0 = selection[0][0];\n n0 = selection[0][1];\n e0 = selection[1][0];\n s0 = selection[1][1];\n }\n\n w1 = w0;\n n1 = n0;\n e1 = e0;\n s1 = s0;\n\n var group = select(that)\n .attr(\"pointer-events\", \"none\");\n\n var overlay = group.selectAll(\".overlay\")\n .attr(\"cursor\", cursors[type]);\n\n if (event.touches) {\n emit.moved = moved;\n emit.ended = ended;\n } else {\n var view = select(event.view)\n .on(\"mousemove.brush\", moved, true)\n .on(\"mouseup.brush\", ended, true);\n if (keys) view\n .on(\"keydown.brush\", keydowned, true)\n .on(\"keyup.brush\", keyupped, true)\n\n dragDisable(event.view);\n }\n\n redraw.call(that);\n emit.start(event, mode.name);\n\n function moved(event) {\n for (const p of event.changedTouches || [event]) {\n for (const d of points)\n if (d.identifier === p.identifier) d.cur = pointer(p, that);\n }\n if (shifting && !lockX && !lockY && points.length === 1) {\n const point = points[0];\n if (abs(point.cur[0] - point[0]) > abs(point.cur[1] - point[1]))\n lockY = true;\n else\n lockX = true;\n }\n for (const point of points)\n if (point.cur) point[0] = point.cur[0], point[1] = point.cur[1];\n moving = true;\n noevent(event);\n move(event);\n }\n\n function move(event) {\n const point = points[0], point0 = point.point0;\n var t;\n\n dx = point[0] - point0[0];\n dy = point[1] - point0[1];\n\n switch (mode) {\n case MODE_SPACE:\n case MODE_DRAG: {\n if (signX) dx = max(W - w0, min(E - e0, dx)), w1 = w0 + dx, e1 = e0 + dx;\n if (signY) dy = max(N - n0, min(S - s0, dy)), n1 = n0 + dy, s1 = s0 + dy;\n break;\n }\n case MODE_HANDLE: {\n if (points[1]) {\n if (signX) w1 = max(W, min(E, points[0][0])), e1 = max(W, min(E, points[1][0])), signX = 1;\n if (signY) n1 = max(N, min(S, points[0][1])), s1 = max(N, min(S, points[1][1])), signY = 1;\n } else {\n if (signX < 0) dx = max(W - w0, min(E - w0, dx)), w1 = w0 + dx, e1 = e0;\n else if (signX > 0) dx = max(W - e0, min(E - e0, dx)), w1 = w0, e1 = e0 + dx;\n if (signY < 0) dy = max(N - n0, min(S - n0, dy)), n1 = n0 + dy, s1 = s0;\n else if (signY > 0) dy = max(N - s0, min(S - s0, dy)), n1 = n0, s1 = s0 + dy;\n }\n break;\n }\n case MODE_CENTER: {\n if (signX) w1 = max(W, min(E, w0 - dx * signX)), e1 = max(W, min(E, e0 + dx * signX));\n if (signY) n1 = max(N, min(S, n0 - dy * signY)), s1 = max(N, min(S, s0 + dy * signY));\n break;\n }\n }\n\n if (e1 < w1) {\n signX *= -1;\n t = w0, w0 = e0, e0 = t;\n t = w1, w1 = e1, e1 = t;\n if (type in flipX) overlay.attr(\"cursor\", cursors[type = flipX[type]]);\n }\n\n if (s1 < n1) {\n signY *= -1;\n t = n0, n0 = s0, s0 = t;\n t = n1, n1 = s1, s1 = t;\n if (type in flipY) overlay.attr(\"cursor\", cursors[type = flipY[type]]);\n }\n\n if (state.selection) selection = state.selection; // May be set by brush.move!\n if (lockX) w1 = selection[0][0], e1 = selection[1][0];\n if (lockY) n1 = selection[0][1], s1 = selection[1][1];\n\n if (selection[0][0] !== w1\n || selection[0][1] !== n1\n || selection[1][0] !== e1\n || selection[1][1] !== s1) {\n state.selection = [[w1, n1], [e1, s1]];\n redraw.call(that);\n emit.brush(event, mode.name);\n }\n }\n\n function ended(event) {\n nopropagation(event);\n if (event.touches) {\n if (event.touches.length) return;\n if (touchending) clearTimeout(touchending);\n touchending = setTimeout(function() { touchending = null; }, 500); // Ghost clicks are delayed!\n } else {\n dragEnable(event.view, moving);\n view.on(\"keydown.brush keyup.brush mousemove.brush mouseup.brush\", null);\n }\n group.attr(\"pointer-events\", \"all\");\n overlay.attr(\"cursor\", cursors.overlay);\n if (state.selection) selection = state.selection; // May be set by brush.move (on start)!\n if (empty(selection)) state.selection = null, redraw.call(that);\n emit.end(event, mode.name);\n }\n\n function keydowned(event) {\n switch (event.keyCode) {\n case 16: { // SHIFT\n shifting = signX && signY;\n break;\n }\n case 18: { // ALT\n if (mode === MODE_HANDLE) {\n if (signX) e0 = e1 - dx * signX, w0 = w1 + dx * signX;\n if (signY) s0 = s1 - dy * signY, n0 = n1 + dy * signY;\n mode = MODE_CENTER;\n move(event);\n }\n break;\n }\n case 32: { // SPACE; takes priority over ALT\n if (mode === MODE_HANDLE || mode === MODE_CENTER) {\n if (signX < 0) e0 = e1 - dx; else if (signX > 0) w0 = w1 - dx;\n if (signY < 0) s0 = s1 - dy; else if (signY > 0) n0 = n1 - dy;\n mode = MODE_SPACE;\n overlay.attr(\"cursor\", cursors.selection);\n move(event);\n }\n break;\n }\n default: return;\n }\n noevent(event);\n }\n\n function keyupped(event) {\n switch (event.keyCode) {\n case 16: { // SHIFT\n if (shifting) {\n lockX = lockY = shifting = false;\n move(event);\n }\n break;\n }\n case 18: { // ALT\n if (mode === MODE_CENTER) {\n if (signX < 0) e0 = e1; else if (signX > 0) w0 = w1;\n if (signY < 0) s0 = s1; else if (signY > 0) n0 = n1;\n mode = MODE_HANDLE;\n move(event);\n }\n break;\n }\n case 32: { // SPACE\n if (mode === MODE_SPACE) {\n if (event.altKey) {\n if (signX) e0 = e1 - dx * signX, w0 = w1 + dx * signX;\n if (signY) s0 = s1 - dy * signY, n0 = n1 + dy * signY;\n mode = MODE_CENTER;\n } else {\n if (signX < 0) e0 = e1; else if (signX > 0) w0 = w1;\n if (signY < 0) s0 = s1; else if (signY > 0) n0 = n1;\n mode = MODE_HANDLE;\n }\n overlay.attr(\"cursor\", cursors[type]);\n move(event);\n }\n break;\n }\n default: return;\n }\n noevent(event);\n }\n }\n\n function touchmoved(event) {\n emitter(this, arguments).moved(event);\n }\n\n function touchended(event) {\n emitter(this, arguments).ended(event);\n }\n\n function initialize() {\n var state = this.__brush || {selection: null};\n state.extent = number2(extent.apply(this, arguments));\n state.dim = dim;\n return state;\n }\n\n brush.extent = function(_) {\n return arguments.length ? (extent = typeof _ === \"function\" ? _ : constant(number2(_)), brush) : extent;\n };\n\n brush.filter = function(_) {\n return arguments.length ? (filter = typeof _ === \"function\" ? _ : constant(!!_), brush) : filter;\n };\n\n brush.touchable = function(_) {\n return arguments.length ? (touchable = typeof _ === \"function\" ? _ : constant(!!_), brush) : touchable;\n };\n\n brush.handleSize = function(_) {\n return arguments.length ? (handleSize = +_, brush) : handleSize;\n };\n\n brush.keyModifiers = function(_) {\n return arguments.length ? (keys = !!_, brush) : keys;\n };\n\n brush.on = function() {\n var value = listeners.on.apply(listeners, arguments);\n return value === listeners ? brush : value;\n };\n\n return brush;\n}\n", "export function Transform(k, x, y) {\n this.k = k;\n this.x = x;\n this.y = y;\n}\n\nTransform.prototype = {\n constructor: Transform,\n scale: function(k) {\n return k === 1 ? this : new Transform(this.k * k, this.x, this.y);\n },\n translate: function(x, y) {\n return x === 0 & y === 0 ? this : new Transform(this.k, this.x + this.k * x, this.y + this.k * y);\n },\n apply: function(point) {\n return [point[0] * this.k + this.x, point[1] * this.k + this.y];\n },\n applyX: function(x) {\n return x * this.k + this.x;\n },\n applyY: function(y) {\n return y * this.k + this.y;\n },\n invert: function(location) {\n return [(location[0] - this.x) / this.k, (location[1] - this.y) / this.k];\n },\n invertX: function(x) {\n return (x - this.x) / this.k;\n },\n invertY: function(y) {\n return (y - this.y) / this.k;\n },\n rescaleX: function(x) {\n return x.copy().domain(x.range().map(this.invertX, this).map(x.invert, x));\n },\n rescaleY: function(y) {\n return y.copy().domain(y.range().map(this.invertY, this).map(y.invert, y));\n },\n toString: function() {\n return \"translate(\" + this.x + \",\" + this.y + \") scale(\" + this.k + \")\";\n }\n};\n\nexport var identity = new Transform(1, 0, 0);\n\ntransform.prototype = Transform.prototype;\n\nexport default function transform(node) {\n while (!node.__zoom) if (!(node = node.parentNode)) return identity;\n return node.__zoom;\n}\n"], + "mappings": "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", + "names": ["require_dayjs_min", "__commonJSMin", "exports", "module", "n", "r", "i", "s", "u", "a", "o", "c", "f", "h", "d", "l", "$", "y", "M", "t", "e", "m", "v", "g", "D", "p", "S", "_", "w", "O", "b", "k", "Channel", "r", "g", "b", "h", "s", "l", "a", "c", "n", "p", "q", "t", "channel", "max", "min", "d", "channel_default", "Lang", "number", "lower", "upper", "lang_default", "Unit", "dec", "hex", "unit_default", "Utils", "channel_default", "lang_default", "unit_default", "utils_default", "DEC2HEX", "i", "utils_default", "TYPE", "Type", "TYPE", "type", "type_default", "Channels", "data", "color", "type_default", "TYPE", "h", "s", "l", "utils_default", "g", "b", "r", "a", "channels_default", "channels", "channels_default", "reusable_default", "Hex", "color", "match", "hex", "dec", "length", "hasAlpha", "isFullLength", "multiplier", "bits", "bitsOffset", "mask", "reusable_default", "channels", "r", "g", "b", "a", "DEC2HEX", "hex_default", "HSL", "hue", "match", "number", "unit", "utils_default", "color", "charCode", "h", "s", "l", "isAlphaPercentage", "reusable_default", "channels", "a", "hsl_default", "Keyword", "color", "hex", "hex_default", "channels", "name", "keyword_default", "RGB", "color", "charCode", "match", "r", "isRedPercentage", "g", "isGreenPercentage", "b", "isBluePercentage", "a", "isAlphaPercentage", "reusable_default", "utils_default", "channels", "rgb_default", "Color", "keyword_default", "hex_default", "rgb_default", "hsl_default", "color", "channels", "TYPE", "color_default", "change", "color", "channels", "ch", "color_default", "c", "utils_default", "change_default", "rgba", "r", "g", "b", "a", "change_default", "channels", "reusable_default", "utils_default", "color_default", "rgba_default", "channel", "color", "utils_default", "color_default", "channel_default", "luminance", "color", "r", "g", "b", "color_default", "utils_default", "luminance_default", "isLight", "color", "luminance_default", "is_light_default", "isDark", "color", "is_light_default", "is_dark_default", "adjustChannel", "color", "channel", "amount", "channels", "color_default", "amountCurrent", "amountNext", "utils_default", "adjust_channel_default", "lighten", "color", "amount", "adjust_channel_default", "lighten_default", "darken", "color", "amount", "adjust_channel_default", "darken_default", "adjust", "color", "channels", "ch", "color_default", "changes", "c", "change_default", "adjust_default", "mix", "color1", "color2", "weight", "r1", "g1", "b1", "a1", "color_default", "r2", "g2", "b2", "a2", "weightScale", "weightNormalized", "alphaDelta", "weight1", "weight2", "r", "g", "b", "a", "rgba_default", "mix_default", "invert", "color", "weight", "inverse", "color_default", "mix_default", "invert_default", "entries", "setPrototypeOf", "isFrozen", "getPrototypeOf", "getOwnPropertyDescriptor", "freeze", "seal", "create", "apply", "construct", "x", "fun", "thisValue", "args", "Func", "arrayForEach", "unapply", "arrayLastIndexOf", "arrayPop", "arrayPush", "arraySplice", "stringToLowerCase", "stringToString", "stringMatch", "stringReplace", "stringIndexOf", "stringTrim", "objectHasOwnProperty", "regExpTest", "typeErrorCreate", "unconstruct", "func", "thisArg", "_len", "_key", "_len2", "_key2", "addToSet", "set", "array", "transformCaseFunc", "l", "element", "lcElement", "cleanArray", "index", "clone", "object", "newObject", "property", "value", "lookupGetter", "prop", "desc", "fallbackValue", "html$1", "svg$1", "svgFilters", "svgDisallowed", "mathMl$1", "mathMlDisallowed", "text", "html", "svg", "mathMl", "xml", "MUSTACHE_EXPR", "ERB_EXPR", "TMPLIT_EXPR", "DATA_ATTR", "ARIA_ATTR", "IS_ALLOWED_URI", "IS_SCRIPT_OR_DATA", "ATTR_WHITESPACE", "DOCTYPE_NAME", "CUSTOM_ELEMENT", "EXPRESSIONS", "NODE_TYPE", "getGlobal", "_createTrustedTypesPolicy", "trustedTypes", "purifyHostElement", "suffix", "ATTR_NAME", "policyName", "scriptUrl", "_createHooksMap", "createDOMPurify", "window", "DOMPurify", "root", "document", "originalDocument", "currentScript", "DocumentFragment", "HTMLTemplateElement", "Node", "Element", "NodeFilter", "NamedNodeMap", "HTMLFormElement", "DOMParser", "ElementPrototype", "cloneNode", "remove", "getNextSibling", "getChildNodes", "getParentNode", "template", "trustedTypesPolicy", "emptyHTML", "implementation", "createNodeIterator", "createDocumentFragment", "getElementsByTagName", "importNode", "hooks", "IS_ALLOWED_URI$1", "ALLOWED_TAGS", "DEFAULT_ALLOWED_TAGS", "ALLOWED_ATTR", "DEFAULT_ALLOWED_ATTR", "CUSTOM_ELEMENT_HANDLING", "FORBID_TAGS", "FORBID_ATTR", "ALLOW_ARIA_ATTR", "ALLOW_DATA_ATTR", "ALLOW_UNKNOWN_PROTOCOLS", "ALLOW_SELF_CLOSE_IN_ATTR", "SAFE_FOR_TEMPLATES", "SAFE_FOR_XML", "WHOLE_DOCUMENT", "SET_CONFIG", "FORCE_BODY", "RETURN_DOM", "RETURN_DOM_FRAGMENT", "RETURN_TRUSTED_TYPE", "SANITIZE_DOM", "SANITIZE_NAMED_PROPS", "SANITIZE_NAMED_PROPS_PREFIX", "KEEP_CONTENT", "IN_PLACE", "USE_PROFILES", "FORBID_CONTENTS", "DEFAULT_FORBID_CONTENTS", "DATA_URI_TAGS", "DEFAULT_DATA_URI_TAGS", "URI_SAFE_ATTRIBUTES", "DEFAULT_URI_SAFE_ATTRIBUTES", "MATHML_NAMESPACE", "SVG_NAMESPACE", "HTML_NAMESPACE", "NAMESPACE", "IS_EMPTY_INPUT", "ALLOWED_NAMESPACES", "DEFAULT_ALLOWED_NAMESPACES", "MATHML_TEXT_INTEGRATION_POINTS", "HTML_INTEGRATION_POINTS", "COMMON_SVG_AND_HTML_ELEMENTS", "PARSER_MEDIA_TYPE", "SUPPORTED_PARSER_MEDIA_TYPES", "DEFAULT_PARSER_MEDIA_TYPE", "CONFIG", "formElement", "isRegexOrFunction", "testValue", "_parseConfig", "cfg", "ALL_SVG_TAGS", "ALL_MATHML_TAGS", "_checkValidNamespace", "parent", "tagName", "parentTagName", "_forceRemove", "node", "_removeAttribute", "name", "_initDocument", "dirty", "doc", "leadingWhitespace", "matches", "dirtyPayload", "body", "_createNodeIterator", "_isClobbered", "_isNode", "_executeHooks", "currentNode", "data", "hook", "_sanitizeElements", "content", "_isBasicCustomElement", "parentNode", "childNodes", "childCount", "i", "childClone", "expr", "_isValidAttribute", "lcTag", "lcName", "_sanitizeAttributes", "attributes", "hookEvent", "attr", "namespaceURI", "attrValue", "_sanitizeShadowDOM", "fragment", "shadowNode", "shadowIterator", "importedNode", "returnNode", "nodeIterator", "serializedHTML", "tag", "entryPoint", "hookFunction", "purify", "import_dayjs", "__defProp", "__name", "target", "value", "__export", "all", "name", "LEVELS", "log", "_args", "setLogLevel", "level", "numericLevel", "format", "dayjs", "frontMatterRegex", "directiveRegex", "anyCommentRegex", "UnknownDiagramError", "message", "detectors", "detectType", "text", "config2", "key", "detector", "registerLazyLoadedDiagrams", "diagrams2", "id", "loader", "addDetector", "getDiagramLoader", "assignWithDepth", "dst", "src", "depth", "clobber", "s", "assignWithDepth_default", "oldAttributeBackgroundColorOdd", "oldAttributeBackgroundColorEven", "mkBorder", "col", "darkMode", "adjust_default", "Theme", "invert_default", "darken_default", "lighten_default", "i", "multiplier", "is_dark_default", "overrides", "keys", "k", "getThemeVariables", "userOverrides", "theme", "Theme2", "rgba_default", "getThemeVariables2", "Theme3", "getThemeVariables3", "Theme4", "getThemeVariables4", "Theme5", "getThemeVariables5", "themes_default", "config_schema_default", "config", "keyify", "obj", "prefix", "res", "el", "configKeys", "defaultConfig_default", "sanitizeDirective", "args", "arg", "cssMatchers", "cssKey", "sanitizeCss", "val", "str", "startCnt", "endCnt", "element", "defaultConfig", "siteConfig", "configFromInitialize", "directives", "currentConfig", "updateCurrentConfig", "siteCfg", "_directives", "cfg", "sumOfDirectives", "d", "sanitize", "tmpConfigFromInitialize", "themeVariables", "checkConfig", "setSiteConfig", "conf", "saveConfigFromInitialize", "updateSiteConfig", "getSiteConfig", "setConfig", "getConfig", "options", "addDirective", "directive", "reset", "ConfigWarning", "issuedWarnings", "issueWarning", "warning", "lineBreakRegex", "getRows", "breakToPlaceholder", "setupDompurifyHooksIfNotSetup", "setup", "setupDompurifyHooks", "TEMPORARY_ATTRIBUTE", "purify", "node", "removeScript", "txt", "sanitizeMore", "placeholderToBreak", "sanitizeText", "sanitizeTextOrArray", "a", "x", "hasBreaks", "splitBreaks", "getUrl", "useAbsolute", "url", "evaluate", "getMax", "values", "newValues", "getMin", "parseGenericTypes", "input", "inputSets", "output", "thisSet", "previousSet", "nextSet", "shouldCombineSets", "processSet", "countOccurrence", "string", "substring", "prevCount", "nextCount", "tildeCount", "hasStartingTilde", "chars", "first", "last", "isMathMLSupported", "katexRegex", "hasKatex", "calculateMathMLDimensions", "renderKatex", "divElem", "dim", "katex", "outputMode", "line", "_", "c", "common_default", "d3Attrs", "d3Elem", "attrs", "attr", "calculateSvgSizeAttrs", "height", "width", "useMaxWidth", "configureSvgSize", "svgElem", "setupGraphViewbox", "graph", "padding", "svgBounds", "sWidth", "sHeight", "vBox", "themes", "getStyles", "type", "userStyles", "diagramStyles", "addStylesForDiagram", "diagramTheme", "styles_default", "commonDb_exports", "clear", "getAccDescription", "getAccTitle", "getDiagramTitle", "setAccDescription", "setAccTitle", "setDiagramTitle", "accTitle", "diagramTitle", "accDescription", "sanitizeText2", "log2", "setLogLevel2", "getConfig2", "setConfig2", "defaultConfig2", "sanitizeText3", "setupGraphViewbox2", "getCommonDb", "diagrams", "registerDiagram", "diagram", "getDiagram", "DiagramNotFoundError", "max", "values", "valueof", "value", "index", "min", "values", "valueof", "value", "index", "ascending", "a", "b", "descending", "a", "b", "bisector", "f", "compare1", "compare2", "delta", "ascending", "d", "x", "descending", "zero", "left", "a", "lo", "hi", "mid", "right", "center", "i", "number", "x", "ascendingBisect", "bisector", "ascending", "bisectRight", "bisectLeft", "bisectCenter", "number", "bisect_default", "InternMap", "entries", "key", "keyof", "value", "intern_get", "intern_set", "intern_delete", "intern_get", "_intern", "_key", "value", "key", "intern_set", "intern_delete", "keyof", "e10", "e5", "e2", "tickSpec", "start", "stop", "count", "step", "power", "error", "factor", "i1", "i2", "inc", "ticks", "reverse", "n", "i", "tickIncrement", "tickStep", "range", "start", "stop", "step", "n", "identity_default", "x", "top", "right", "bottom", "left", "epsilon", "translateX", "x", "translateY", "y", "number", "scale", "d", "center", "offset", "entering", "axis", "orient", "tickArguments", "tickValues", "tickFormat", "tickSizeInner", "tickSizeOuter", "tickPadding", "k", "transform", "context", "values", "format", "identity_default", "spacing", "range", "range0", "range1", "position", "selection", "path", "tick", "tickExit", "tickEnter", "line", "text", "p", "_", "axisTop", "axisBottom", "scale", "axis", "bottom", "none", "selector_default", "selector", "select_default", "select", "selector_default", "groups", "m", "subgroups", "j", "group", "n", "subgroup", "node", "subnode", "i", "Selection", "array", "x", "empty", "selectorAll_default", "selector", "arrayAll", "select", "array", "selectAll_default", "selectorAll_default", "groups", "m", "subgroups", "parents", "j", "group", "n", "node", "i", "Selection", "matcher_default", "selector", "childMatcher", "node", "find", "childFind", "match", "childFirst", "selectChild_default", "childMatcher", "filter", "children", "childrenFilter", "match", "selectChildren_default", "childMatcher", "filter_default", "match", "matcher_default", "groups", "m", "subgroups", "j", "group", "n", "subgroup", "node", "i", "Selection", "sparse_default", "update", "enter_default", "Selection", "sparse_default", "EnterNode", "parent", "datum", "child", "next", "selector", "constant_default", "x", "bindIndex", "parent", "group", "enter", "update", "exit", "data", "i", "node", "groupLength", "dataLength", "EnterNode", "bindKey", "key", "nodeByKeyValue", "keyValues", "keyValue", "datum", "data_default", "value", "bind", "parents", "groups", "constant_default", "m", "j", "arraylike", "enterGroup", "updateGroup", "exitGroup", "i0", "i1", "previous", "next", "Selection", "exit_default", "Selection", "sparse_default", "join_default", "onenter", "onupdate", "onexit", "enter", "update", "exit", "merge_default", "context", "selection", "groups0", "groups1", "m0", "m1", "m", "merges", "j", "group0", "group1", "n", "merge", "node", "i", "Selection", "order_default", "groups", "j", "m", "group", "i", "next", "node", "sort_default", "compare", "ascending", "compareNode", "a", "b", "groups", "m", "sortgroups", "j", "group", "n", "sortgroup", "node", "i", "Selection", "call_default", "callback", "nodes_default", "node_default", "groups", "j", "m", "group", "i", "node", "size_default", "size", "node", "empty_default", "each_default", "callback", "groups", "j", "m", "group", "i", "n", "node", "xhtml", "namespaces_default", "namespace_default", "name", "prefix", "i", "namespaces_default", "attrRemove", "name", "attrRemoveNS", "fullname", "attrConstant", "value", "attrConstantNS", "attrFunction", "v", "attrFunctionNS", "attr_default", "namespace_default", "node", "window_default", "node", "styleRemove", "name", "styleConstant", "value", "priority", "styleFunction", "v", "style_default", "styleValue", "node", "window_default", "propertyRemove", "name", "propertyConstant", "value", "propertyFunction", "v", "property_default", "classArray", "string", "classList", "node", "ClassList", "name", "i", "classedAdd", "names", "list", "n", "classedRemove", "classedTrue", "classedFalse", "classedFunction", "value", "classed_default", "textRemove", "textConstant", "value", "textFunction", "v", "text_default", "htmlRemove", "htmlConstant", "value", "htmlFunction", "v", "html_default", "raise", "raise_default", "lower", "lower_default", "creatorInherit", "name", "document", "uri", "xhtml", "creatorFixed", "fullname", "creator_default", "namespace_default", "append_default", "name", "create", "creator_default", "constantNull", "insert_default", "name", "before", "create", "creator_default", "select", "selector_default", "remove", "parent", "remove_default", "selection_cloneShallow", "clone", "parent", "selection_cloneDeep", "clone_default", "deep", "datum_default", "value", "contextListener", "listener", "event", "parseTypenames", "typenames", "t", "name", "onRemove", "typename", "on", "j", "m", "o", "onAdd", "value", "options", "on_default", "i", "dispatchEvent", "node", "type", "params", "window", "window_default", "event", "dispatchConstant", "dispatchFunction", "dispatch_default", "iterator_default", "groups", "j", "m", "group", "i", "node", "root", "Selection", "groups", "parents", "selection", "selection_selection", "select_default", "selectAll_default", "selectChild_default", "selectChildren_default", "filter_default", "data_default", "enter_default", "exit_default", "join_default", "merge_default", "order_default", "sort_default", "call_default", "nodes_default", "node_default", "size_default", "empty_default", "each_default", "attr_default", "style_default", "property_default", "classed_default", "text_default", "html_default", "raise_default", "lower_default", "append_default", "insert_default", "remove_default", "clone_default", "datum_default", "on_default", "dispatch_default", "iterator_default", "selection_default", "select_default", "selector", "Selection", "root", "define_default", "constructor", "factory", "prototype", "extend", "parent", "definition", "key", "Color", "darker", "brighter", "reI", "reN", "reP", "reHex", "reRgbInteger", "reRgbPercent", "reRgbaInteger", "reRgbaPercent", "reHslPercent", "reHslaPercent", "named", "define_default", "color", "channels", "color_formatHex", "color_formatHex8", "color_formatHsl", "color_formatRgb", "hslConvert", "format", "m", "l", "rgbn", "Rgb", "rgba", "hsla", "n", "r", "g", "b", "a", "rgbConvert", "o", "rgb", "opacity", "extend", "k", "clampi", "clampa", "rgb_formatHex", "rgb_formatHex8", "rgb_formatRgb", "hex", "value", "h", "s", "Hsl", "min", "max", "hsl", "m2", "m1", "hsl2rgb", "clamph", "clampt", "radians", "degrees", "K", "Xn", "Yn", "Zn", "t0", "t1", "t2", "t3", "labConvert", "o", "Lab", "Hcl", "hcl2lab", "Rgb", "rgbConvert", "r", "rgb2lrgb", "g", "b", "y", "xyz2lab", "x", "z", "lab", "l", "a", "b", "opacity", "labConvert", "Lab", "define_default", "extend", "Color", "k", "K", "y", "x", "z", "Xn", "lab2xyz", "Yn", "Zn", "Rgb", "lrgb2rgb", "xyz2lab", "t3", "t2", "t0", "t1", "rgb2lrgb", "hclConvert", "o", "Hcl", "h", "degrees", "hcl", "h", "c", "l", "opacity", "hclConvert", "Hcl", "hcl2lab", "o", "Lab", "radians", "define_default", "extend", "Color", "k", "K", "constant_default", "x", "linear", "a", "d", "t", "exponential", "b", "y", "hue", "constant_default", "gamma", "nogamma", "hcl", "hue", "start", "end", "h", "c", "nogamma", "l", "opacity", "t", "hcl_default", "hclLong", "basis", "t1", "v0", "v1", "v2", "v3", "t2", "t3", "basis_default", "values", "n", "t", "basisClosed_default", "values", "n", "t", "v0", "v1", "v2", "v3", "basis", "rgb_default", "rgbGamma", "y", "color", "gamma", "rgb", "start", "end", "r", "g", "b", "opacity", "nogamma", "t", "rgbSpline", "spline", "colors", "n", "i", "rgbBasis", "basis_default", "rgbBasisClosed", "basisClosed_default", "numberArray_default", "a", "b", "n", "c", "i", "t", "isNumberArray", "x", "genericArray", "a", "b", "nb", "na", "x", "c", "i", "value_default", "t", "date_default", "a", "b", "d", "t", "number_default", "a", "b", "t", "object_default", "a", "b", "i", "c", "k", "value_default", "t", "reA", "reB", "zero", "b", "one", "t", "string_default", "a", "bi", "am", "bm", "bs", "i", "q", "number_default", "o", "value_default", "a", "b", "t", "c", "constant_default", "number_default", "color", "rgb_default", "string_default", "date_default", "isNumberArray", "numberArray_default", "genericArray", "object_default", "round_default", "a", "b", "t", "degrees", "identity", "decompose_default", "a", "b", "c", "d", "e", "f", "scaleX", "scaleY", "skewX", "svgNode", "parseCss", "value", "m", "identity", "decompose_default", "parseSvg", "interpolateTransform", "parse", "pxComma", "pxParen", "degParen", "pop", "s", "translate", "xa", "ya", "xb", "yb", "q", "i", "number_default", "rotate", "a", "b", "skewX", "scale", "t", "n", "o", "interpolateTransformCss", "parseCss", "interpolateTransformSvg", "parseSvg", "initRange", "domain", "range", "implicit", "ordinal", "index", "InternMap", "domain", "range", "unknown", "scale", "d", "i", "_", "value", "initRange", "band", "scale", "ordinal", "domain", "ordinalRange", "r0", "r1", "step", "bandwidth", "round", "paddingInner", "paddingOuter", "align", "rescale", "n", "reverse", "start", "stop", "values", "range", "i", "_", "initRange", "constants", "x", "number", "x", "unit", "identity", "x", "normalize", "a", "b", "constants", "clamper", "t", "bimap", "domain", "range", "interpolate", "d0", "d1", "r0", "r1", "polymap", "j", "d", "r", "i", "bisect_default", "copy", "source", "target", "transformer", "value_default", "transform", "untransform", "unknown", "clamp", "piecewise", "output", "input", "rescale", "n", "scale", "y", "number_default", "_", "number", "round_default", "u", "continuous", "formatDecimal_default", "x", "formatDecimalParts", "p", "i", "coefficient", "exponent_default", "x", "formatDecimalParts", "formatGroup_default", "grouping", "thousands", "value", "width", "i", "t", "j", "g", "length", "formatNumerals_default", "numerals", "value", "i", "re", "formatSpecifier", "specifier", "match", "FormatSpecifier", "formatTrim_default", "s", "out", "n", "i", "i0", "i1", "prefixExponent", "formatPrefixAuto_default", "x", "p", "d", "formatDecimalParts", "coefficient", "exponent", "i", "n", "formatRounded_default", "x", "p", "d", "formatDecimalParts", "coefficient", "exponent", "formatTypes_default", "x", "p", "formatDecimal_default", "formatRounded_default", "formatPrefixAuto_default", "identity_default", "x", "map", "prefixes", "locale_default", "locale", "group", "identity_default", "formatGroup_default", "currencyPrefix", "currencySuffix", "decimal", "numerals", "formatNumerals_default", "percent", "minus", "nan", "newFormat", "specifier", "formatSpecifier", "fill", "align", "sign", "symbol", "zero", "width", "comma", "precision", "trim", "type", "formatTypes_default", "prefix", "suffix", "formatType", "maybeSuffix", "format", "value", "valuePrefix", "valueSuffix", "i", "n", "c", "valueNegative", "formatTrim_default", "prefixExponent", "length", "padding", "formatPrefix", "f", "e", "exponent_default", "k", "locale", "format", "formatPrefix", "defaultLocale", "definition", "locale_default", "precisionFixed_default", "step", "exponent_default", "precisionPrefix_default", "step", "value", "exponent_default", "precisionRound_default", "step", "max", "exponent_default", "tickFormat", "start", "stop", "count", "specifier", "step", "tickStep", "precision", "formatSpecifier", "value", "precisionPrefix_default", "formatPrefix", "precisionRound_default", "precisionFixed_default", "format", "linearish", "scale", "domain", "count", "d", "ticks", "specifier", "tickFormat", "i0", "i1", "start", "stop", "prestep", "step", "maxIter", "tickIncrement", "linear", "continuous", "copy", "initRange", "t0", "t1", "timeInterval", "floori", "offseti", "count", "field", "interval", "date", "d0", "d1", "step", "start", "stop", "range", "previous", "test", "end", "d", "millisecond", "timeInterval", "date", "step", "start", "end", "k", "milliseconds", "second", "timeInterval", "date", "step", "start", "end", "seconds", "timeMinute", "timeInterval", "date", "step", "start", "end", "timeMinutes", "utcMinute", "utcMinutes", "timeHour", "timeInterval", "date", "step", "start", "end", "timeHours", "utcHour", "utcHours", "timeDay", "timeInterval", "date", "step", "start", "end", "timeDays", "utcDay", "utcDays", "unixDay", "unixDays", "timeWeekday", "i", "timeInterval", "date", "step", "start", "end", "timeSunday", "timeMonday", "timeTuesday", "timeWednesday", "timeThursday", "timeFriday", "timeSaturday", "timeSundays", "timeMondays", "timeTuesdays", "timeWednesdays", "timeThursdays", "timeFridays", "timeSaturdays", "utcWeekday", "utcSunday", "utcMonday", "utcTuesday", "utcWednesday", "utcThursday", "utcFriday", "utcSaturday", "utcSundays", "utcMondays", "utcTuesdays", "utcWednesdays", "utcThursdays", "utcFridays", "utcSaturdays", "timeMonth", "timeInterval", "date", "step", "start", "end", "timeMonths", "utcMonth", "utcMonths", "timeYear", "timeInterval", "date", "step", "start", "end", "k", "timeYears", "utcYear", "utcYears", "ticker", "year", "month", "week", "day", "hour", "minute", "tickIntervals", "second", "ticks", "start", "stop", "count", "reverse", "interval", "tickInterval", "target", "i", "bisector", "step", "tickStep", "millisecond", "t", "utcTicks", "utcTickInterval", "utcYear", "utcMonth", "utcSunday", "unixDay", "utcHour", "utcMinute", "timeTicks", "timeTickInterval", "timeYear", "timeMonth", "timeSunday", "timeDay", "timeHour", "timeMinute", "localDate", "d", "date", "utcDate", "newDate", "y", "m", "formatLocale", "locale", "locale_dateTime", "locale_date", "locale_time", "locale_periods", "locale_weekdays", "locale_shortWeekdays", "locale_months", "locale_shortMonths", "periodRe", "formatRe", "periodLookup", "formatLookup", "weekdayRe", "weekdayLookup", "shortWeekdayRe", "shortWeekdayLookup", "monthRe", "monthLookup", "shortMonthRe", "shortMonthLookup", "formats", "formatShortWeekday", "formatWeekday", "formatShortMonth", "formatMonth", "formatDayOfMonth", "formatMicroseconds", "formatYearISO", "formatFullYearISO", "formatHour24", "formatHour12", "formatDayOfYear", "formatMilliseconds", "formatMonthNumber", "formatMinutes", "formatPeriod", "formatQuarter", "formatUnixTimestamp", "formatUnixTimestampSeconds", "formatSeconds", "formatWeekdayNumberMonday", "formatWeekNumberSunday", "formatWeekNumberISO", "formatWeekdayNumberSunday", "formatWeekNumberMonday", "formatYear", "formatFullYear", "formatZone", "formatLiteralPercent", "utcFormats", "formatUTCShortWeekday", "formatUTCWeekday", "formatUTCShortMonth", "formatUTCMonth", "formatUTCDayOfMonth", "formatUTCMicroseconds", "formatUTCYearISO", "formatUTCFullYearISO", "formatUTCHour24", "formatUTCHour12", "formatUTCDayOfYear", "formatUTCMilliseconds", "formatUTCMonthNumber", "formatUTCMinutes", "formatUTCPeriod", "formatUTCQuarter", "formatUTCSeconds", "formatUTCWeekdayNumberMonday", "formatUTCWeekNumberSunday", "formatUTCWeekNumberISO", "formatUTCWeekdayNumberSunday", "formatUTCWeekNumberMonday", "formatUTCYear", "formatUTCFullYear", "formatUTCZone", "parses", "parseShortWeekday", "parseWeekday", "parseShortMonth", "parseMonth", "parseLocaleDateTime", "parseDayOfMonth", "parseMicroseconds", "parseYear", "parseFullYear", "parseHour24", "parseDayOfYear", "parseMilliseconds", "parseMonthNumber", "parseMinutes", "parsePeriod", "parseQuarter", "parseUnixTimestamp", "parseUnixTimestampSeconds", "parseSeconds", "parseWeekdayNumberMonday", "parseWeekNumberSunday", "parseWeekNumberISO", "parseWeekdayNumberSunday", "parseWeekNumberMonday", "parseLocaleDate", "parseLocaleTime", "parseZone", "parseLiteralPercent", "newFormat", "specifier", "string", "i", "j", "n", "c", "pad", "format", "pads", "newParse", "Z", "parseSpecifier", "week", "day", "utcMonday", "utcDay", "timeMonday", "timeDay", "parse", "f", "p", "numberRe", "percentRe", "requoteRe", "value", "fill", "width", "sign", "length", "requote", "s", "names", "name", "timeYear", "timeSunday", "dISO", "timeThursday", "z", "utcYear", "dow", "utcSunday", "UTCdISO", "utcThursday", "locale", "timeFormat", "timeParse", "utcFormat", "utcParse", "defaultLocale", "definition", "formatLocale", "nice", "domain", "interval", "i0", "i1", "x0", "x1", "t", "date", "number", "calendar", "ticks", "tickInterval", "year", "month", "week", "day", "hour", "minute", "second", "format", "scale", "continuous", "invert", "domain", "formatMillisecond", "formatSecond", "formatMinute", "formatHour", "formatDay", "formatWeek", "formatMonth", "formatYear", "tickFormat", "y", "_", "interval", "d", "count", "specifier", "nice", "copy", "time", "initRange", "timeTicks", "timeTickInterval", "timeYear", "timeMonth", "timeSunday", "timeDay", "timeHour", "timeMinute", "timeFormat", "colors_default", "specifier", "n", "colors", "Tableau10_default", "colors_default", "constant_default", "x", "abs", "atan2", "cos", "max", "min", "sin", "sqrt", "epsilon", "pi", "halfPi", "tau", "acos", "x", "asin", "pi", "tau", "epsilon", "tauEpsilon", "append", "strings", "i", "n", "appendRound", "digits", "d", "k", "Path", "x", "y", "x1", "y1", "x2", "y2", "r", "x0", "y0", "x21", "y21", "x01", "y01", "l01_2", "x20", "y20", "l21_2", "l20_2", "l21", "l01", "l", "t01", "t21", "a0", "a1", "ccw", "dx", "dy", "cw", "da", "w", "h", "path", "withPath", "shape", "digits", "_", "d", "Path", "arcInnerRadius", "d", "arcOuterRadius", "arcStartAngle", "arcEndAngle", "arcPadAngle", "intersect", "x0", "y0", "x1", "y1", "x2", "y2", "x3", "y3", "x10", "y10", "x32", "y32", "t", "epsilon", "cornerTangents", "r1", "rc", "cw", "x01", "y01", "lo", "sqrt", "ox", "oy", "x11", "y11", "x00", "y00", "dx", "dy", "d2", "r", "D", "max", "cx0", "cy0", "cx1", "cy1", "dx0", "dy0", "dx1", "dy1", "arc_default", "innerRadius", "outerRadius", "cornerRadius", "constant_default", "padRadius", "startAngle", "endAngle", "padAngle", "context", "path", "withPath", "arc", "buffer", "r0", "a0", "halfPi", "a1", "da", "abs", "tau", "cos", "sin", "a01", "a11", "a00", "a10", "da0", "da1", "ap", "rp", "min", "rc0", "rc1", "t0", "t1", "p0", "asin", "p1", "oc", "pi", "ax", "ay", "bx", "by", "kc", "acos", "lc", "atan2", "a", "_", "slice", "array_default", "x", "Linear", "context", "x", "y", "linear_default", "x", "p", "y", "line_default", "x", "y", "defined", "constant_default", "context", "curve", "linear_default", "output", "path", "withPath", "line", "data", "i", "n", "array_default", "defined0", "buffer", "_", "descending_default", "a", "b", "identity_default", "d", "pie_default", "value", "identity_default", "sortValues", "descending_default", "sort", "startAngle", "constant_default", "endAngle", "tau", "padAngle", "pie", "data", "i", "n", "array_default", "j", "k", "sum", "index", "arcs", "a0", "da", "a1", "p", "pa", "v", "_", "point", "that", "x", "y", "Basis", "context", "basis_default", "Bump", "context", "x", "y", "bumpX", "context", "Bump", "bumpY", "noop_default", "BasisClosed", "context", "noop_default", "x", "y", "point", "basisClosed_default", "BasisOpen", "context", "x", "y", "x0", "y0", "point", "basisOpen_default", "Bundle", "context", "beta", "Basis", "x", "y", "j", "x0", "y0", "dx", "dy", "i", "t", "bundle_default", "custom", "bundle", "point", "that", "x", "y", "Cardinal", "context", "tension", "cardinal_default", "custom", "cardinal", "CardinalClosed", "context", "tension", "noop_default", "x", "y", "point", "cardinalClosed_default", "custom", "cardinal", "CardinalOpen", "context", "tension", "x", "y", "point", "cardinalOpen_default", "custom", "cardinal", "point", "that", "x", "y", "x1", "y1", "x2", "y2", "epsilon", "a", "n", "b", "m", "CatmullRom", "context", "alpha", "x23", "y23", "catmullRom_default", "custom", "catmullRom", "Cardinal", "CatmullRomClosed", "context", "alpha", "noop_default", "x", "y", "x23", "y23", "point", "catmullRomClosed_default", "custom", "catmullRom", "CardinalClosed", "CatmullRomOpen", "context", "alpha", "x", "y", "x23", "y23", "point", "catmullRomOpen_default", "custom", "catmullRom", "CardinalOpen", "LinearClosed", "context", "noop_default", "x", "y", "linearClosed_default", "sign", "x", "slope3", "that", "x2", "y2", "h0", "h1", "s0", "s1", "p", "slope2", "t", "h", "point", "t0", "t1", "x0", "y0", "x1", "y1", "dx", "MonotoneX", "context", "y", "MonotoneY", "ReflectContext", "monotoneX", "monotoneY", "Natural", "context", "x", "y", "n", "px", "controlPoints", "py", "i0", "i1", "i", "m", "a", "b", "r", "natural_default", "Step", "context", "t", "x", "y", "x1", "step_default", "stepBefore", "stepAfter", "noop", "dispatch", "i", "n", "_", "t", "Dispatch", "parseTypenames", "typenames", "types", "name", "typename", "callback", "T", "get", "set", "copy", "type", "that", "args", "c", "dispatch_default", "frame", "timeout", "interval", "pokeDelay", "taskHead", "taskTail", "clockLast", "clockNow", "clockSkew", "clock", "setFrame", "f", "now", "clearNow", "Timer", "timer", "callback", "delay", "time", "sleep", "t", "timerFlush", "wake", "nap", "poke", "t0", "t1", "t2", "timeout_default", "callback", "delay", "time", "t", "Timer", "elapsed", "emptyOn", "dispatch_default", "emptyTween", "CREATED", "SCHEDULED", "STARTING", "STARTED", "RUNNING", "ENDING", "ENDED", "schedule_default", "node", "name", "id", "index", "group", "timing", "schedules", "create", "init", "schedule", "get", "set", "self", "tween", "timer", "elapsed", "start", "i", "j", "n", "o", "stop", "timeout_default", "tick", "t", "interrupt_default", "node", "name", "schedules", "schedule", "active", "empty", "i", "STARTING", "ENDING", "ENDED", "interrupt_default", "name", "tweenRemove", "id", "name", "tween0", "tween1", "schedule", "set", "tween", "i", "n", "tweenFunction", "value", "t", "tween_default", "get", "tweenValue", "transition", "node", "interpolate_default", "a", "b", "c", "number_default", "color", "rgb_default", "string_default", "attrRemove", "name", "attrRemoveNS", "fullname", "attrConstant", "interpolate", "value1", "string00", "string1", "interpolate0", "string0", "attrConstantNS", "attrFunction", "value", "string10", "attrFunctionNS", "attr_default", "namespace_default", "interpolateTransformSvg", "interpolate_default", "tweenValue", "attrInterpolate", "name", "i", "t", "attrInterpolateNS", "fullname", "attrTweenNS", "value", "t0", "i0", "tween", "attrTween", "attrTween_default", "key", "namespace_default", "delayFunction", "id", "value", "init", "delayConstant", "delay_default", "get", "durationFunction", "id", "value", "set", "durationConstant", "duration_default", "get", "easeConstant", "id", "value", "set", "ease_default", "get", "easeVarying", "id", "value", "v", "set", "easeVarying_default", "filter_default", "match", "matcher_default", "groups", "m", "subgroups", "j", "group", "n", "subgroup", "node", "i", "Transition", "merge_default", "transition", "groups0", "groups1", "m0", "m1", "m", "merges", "j", "group0", "group1", "n", "merge", "node", "i", "Transition", "start", "name", "t", "i", "onFunction", "id", "listener", "on0", "on1", "sit", "init", "set", "schedule", "on", "on_default", "get", "removeFunction", "id", "parent", "i", "remove_default", "select_default", "select", "name", "id", "selector_default", "groups", "m", "subgroups", "j", "group", "n", "subgroup", "node", "subnode", "i", "schedule_default", "get", "Transition", "selectAll_default", "select", "name", "id", "selectorAll_default", "groups", "m", "subgroups", "parents", "j", "group", "n", "node", "i", "children", "child", "inherit", "get", "k", "l", "schedule_default", "Transition", "Selection", "selection_default", "styleNull", "name", "interpolate", "string00", "string10", "interpolate0", "string0", "styleValue", "string1", "styleRemove", "styleConstant", "value1", "styleFunction", "value", "styleMaybeRemove", "id", "on0", "on1", "listener0", "key", "event", "remove", "schedule", "set", "on", "listener", "style_default", "priority", "interpolateTransformCss", "interpolate_default", "tweenValue", "styleInterpolate", "name", "i", "priority", "t", "styleTween", "value", "i0", "tween", "styleTween_default", "key", "textConstant", "value", "textFunction", "value1", "text_default", "tweenValue", "textInterpolate", "i", "t", "textTween", "value", "t0", "i0", "tween", "textTween_default", "key", "transition_default", "name", "id0", "id1", "newId", "groups", "m", "j", "group", "n", "node", "i", "inherit", "get", "schedule_default", "Transition", "end_default", "on0", "on1", "that", "id", "size", "resolve", "reject", "cancel", "end", "schedule", "set", "on", "id", "Transition", "groups", "parents", "name", "transition", "selection_default", "newId", "selection_prototype", "select_default", "selectAll_default", "filter_default", "merge_default", "transition_default", "on_default", "attr_default", "attrTween_default", "style_default", "styleTween_default", "text_default", "textTween_default", "remove_default", "tween_default", "delay_default", "duration_default", "ease_default", "easeVarying_default", "end_default", "cubicInOut", "defaultTiming", "cubicInOut", "inherit", "node", "id", "timing", "transition_default", "name", "Transition", "newId", "now", "groups", "m", "j", "group", "n", "i", "schedule_default", "selection_default", "interrupt_default", "transition_default", "abs", "max", "min", "number1", "e", "number2", "X", "type", "x", "xy", "Y", "y", "XY", "type", "Transform", "k", "x", "y", "point", "location", "identity", "transform", "node"] +} diff --git a/docs/_site/public/chunk-U4DUTLYF.min.js b/docs/_site/public/chunk-U4DUTLYF.min.js new file mode 100644 index 0000000..95ff6d2 --- /dev/null +++ b/docs/_site/public/chunk-U4DUTLYF.min.js @@ -0,0 +1,15 @@ +import{a as br,b as hr,c as M}from"./chunk-IQQ46AC6.min.js";import{A as ut,B as O,C as ar,D as nr,E as C,F as D,G as st,H as W,I as _,J as cr,K as lt,L as F,M as R,N as dt,P as xt,Q as q,R as L,S as gt,a as tt,b as E,c as z,d as P,h as sr,j as et,k as ot,l as G,m as lr,n as dr,o as ft,p as zr,q as xr,r as at,s as nt,u as it,v as mt,w as pt,x as S,y as gr,z as u}from"./chunk-CXRPJJJE.min.js";function no(r,t){for(var e=-1,o=r==null?0:r.length;++e2?t[2]:void 0;for(f&&L(t[0],t[1],f)&&(o=1);++ei))return!1;var p=a.get(r),s=a.get(t);if(p&&s)return p==t&&s==r;var l=-1,d=!0,w=e&Xf?new Q:void 0;for(a.set(r,t),a.set(t,r);++lt}var se=xn;function gn(r){return r&&r.length?tr(r,R,se):void 0}var cn=gn;function bn(r,t,e,o){if(!P(r))return r;t=K(t,r);for(var f=-1,a=t.length,n=a-1,i=r;i!=null&&++f0&&e(i)?t>1?ce(i,t-1,e,o,f):$(f,i):o||(f[f.length]=i)}return f}var N=ce;function On(r){var t=r==null?0:r.length;return t?N(r,1):[]}var Xr=On;function In(r){return xt(dt(r,void 0,Xr),r+"")}var be=In;var vn=be(function(r,t){return r==null?{}:de(r,t)}),Sn=vn;function Tn(r,t,e,o){var f=-1,a=r==null?0:r.length;for(o&&a&&(e=r[++f]);++f-1}var qr=_n;function Fn(r,t,e){for(var o=-1,f=r==null?0:r.length;++o=Dn){var p=t?null:Ie(r);if(p)return V(p);n=!1,f=k,m=new Q}else m=t?[]:i;r:for(;++of?0:f+t),e=e>f?f:e,e<0&&(e+=f),f=t>e?0:e-t>>>0,t>>>=0;for(var a=Array(f);++o=Ti&&(a=k,n=!1,t=new Q(t));r:for(;++f-1?f[a?t[n]:n]:void 0}}var Be=Ui;var Di=Math.max;function Gi(r,t,e){var o=r==null?0:r.length;if(!o)return-1;var f=e==null?0:U(e);return f<0&&(f=Di(o+f,0)),Wr(r,x(t,3),f)}var Ne=Gi;var Wi=Be(Ne),qi=Wi;function Ki(r){return r&&r.length?r[0]:void 0}var Ue=Ki;function ji(r,t){return N($r(r,t),1)}var Hi=ji;function zi(r,t){return r==null?r:dr(r,X(t),F)}var Yi=zi;function Zi(r,t){return r&&J(r,X(t))}var $i=Zi;var Ji=Object.prototype,Xi=Ji.hasOwnProperty,Qi=Me(function(r,t,e){Xi.call(r,e)?r[e].push(t):lr(r,e,[t])}),ki=Qi;var Vi=Object.prototype,rm=Vi.hasOwnProperty;function tm(r,t){return r!=null&&rm.call(r,t)}var De=tm;function em(r,t){return r!=null&&Br(r,t,De)}var om=em;var fm="[object String]";function am(r){return typeof r=="string"||!u(r)&&S(r)&&z(r)==fm}var mr=am;var nm=Math.max;function im(r,t,e,o){r=O(r)?r:Jr(r),e=e&&!o?U(e):0;var f=r.length;return e<0&&(e=nm(f+e,0)),mr(r)?e<=f&&r.indexOf(t,e)>-1:!!f&&er(r,t,e)>-1}var mm=im;var pm=Math.max;function um(r,t,e){var o=r==null?0:r.length;if(!o)return-1;var f=e==null?0:U(e);return f<0&&(f=pm(o+f,0)),er(r,t,f)}var sm=um;var lm="[object RegExp]";function dm(r){return S(r)&&z(r)==lm}var Ge=dm;var We=D&&D.isRegExp,xm=We?C(We):Ge,gm=xm;function cm(r,t){return rt||a&&n&&m&&!i&&!p||o&&n&&m||!e&&m||!f)return 1;if(!o&&!a&&!p&&r=i)return m;var p=e[o];return m*(p=="desc"?-1:1)}}return r.index-t.index}var He=Em;function Pm(r,t,e){t.length?t=v(t,function(a){return u(a)?function(n){return j(n,a.length===1?a[0]:a)}:a}):t=[R];var o=-1;t=v(t,C(x));var f=Dr(r,function(a,n,i){var m=v(t,function(p){return p(a)});return{criteria:m,index:++o,value:a}});return Ke(f,function(a,n){return He(a,n,e)})}var ze=Pm;var Rm=Ur("length"),Ye=Rm;var $e="\\ud800-\\udfff",Lm="\\u0300-\\u036f",Mm="\\ufe20-\\ufe2f",Cm="\\u20d0-\\u20ff",_m=Lm+Mm+Cm,Fm="\\ufe0e\\ufe0f",Bm="["+$e+"]",kr="["+_m+"]",Vr="\\ud83c[\\udffb-\\udfff]",Nm="(?:"+kr+"|"+Vr+")",Je="[^"+$e+"]",Xe="(?:\\ud83c[\\udde6-\\uddff]){2}",Qe="[\\ud800-\\udbff][\\udc00-\\udfff]",Um="\\u200d",ke=Nm+"?",Ve="["+Fm+"]?",Dm="(?:"+Um+"(?:"+[Je,Xe,Qe].join("|")+")"+Ve+ke+")*",Gm=Ve+ke+Dm,Wm="(?:"+[Je+kr+"?",kr,Xe,Qe,Bm].join("|")+")",Ze=RegExp(Vr+"(?="+Vr+")|"+Wm+Gm,"g");function qm(r){for(var t=Ze.lastIndex=0;Ze.test(r);)++t;return t}var ro=qm;function Km(r){return Pe(r)?ro(r):Ye(r)}var to=Km;var jm=Math.ceil,Hm=Math.max;function zm(r,t,e,o){for(var f=-1,a=Hm(jm((t-r)/(e||1)),0),n=Array(a);a--;)n[o?a:++f]=r,r+=e;return n}var eo=zm;function Ym(r){return function(t,e,o){return o&&typeof o!="number"&&L(t,e,o)&&(e=o=void 0),t=fr(t),e===void 0?(e=t,t=0):e=fr(e),o=o===void 0?t1&&L(r,t[0],t[1])?t=[]:e>2&&L(t[0],t[1],t[2])&&(t=[t[0]]),ze(r,N(t,1),[])}),ap=fp;function np(r){return r&&r.length?or(r):[]}var ip=np;function mp(r,t){return r&&r.length?or(r,x(t,2)):[]}var _h=mp;var pp=0;function up(r){var t=++pp;return Fr(r)+t}var sp=up;function lp(r,t,e){for(var o=-1,f=r.length,a=t.length,n={};++o + * 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 + *) +*/ +//# sourceMappingURL=chunk-U4DUTLYF.min.js.map diff --git a/docs/_site/public/chunk-U4DUTLYF.min.js.map b/docs/_site/public/chunk-U4DUTLYF.min.js.map new file mode 100644 index 0000000..3b14bea --- /dev/null +++ b/docs/_site/public/chunk-U4DUTLYF.min.js.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": ["../../node_modules/lodash-es/_arrayEach.js", "../../node_modules/lodash-es/keys.js", "../../node_modules/lodash-es/_baseAssign.js", "../../node_modules/lodash-es/_baseAssignIn.js", "../../node_modules/lodash-es/_arrayFilter.js", "../../node_modules/lodash-es/stubArray.js", "../../node_modules/lodash-es/_getSymbols.js", "../../node_modules/lodash-es/_copySymbols.js", "../../node_modules/lodash-es/_arrayPush.js", "../../node_modules/lodash-es/_getSymbolsIn.js", "../../node_modules/lodash-es/_copySymbolsIn.js", "../../node_modules/lodash-es/_baseGetAllKeys.js", "../../node_modules/lodash-es/_getAllKeys.js", "../../node_modules/lodash-es/_getAllKeysIn.js", "../../node_modules/lodash-es/_initCloneArray.js", "../../node_modules/lodash-es/_cloneDataView.js", "../../node_modules/lodash-es/_cloneRegExp.js", "../../node_modules/lodash-es/_cloneSymbol.js", "../../node_modules/lodash-es/_initCloneByTag.js", "../../node_modules/lodash-es/_baseIsMap.js", "../../node_modules/lodash-es/isMap.js", "../../node_modules/lodash-es/_baseIsSet.js", "../../node_modules/lodash-es/isSet.js", "../../node_modules/lodash-es/_baseClone.js", "../../node_modules/lodash-es/clone.js", "../../node_modules/lodash-es/defaults.js", "../../node_modules/lodash-es/last.js", "../../node_modules/lodash-es/_baseForOwn.js", "../../node_modules/lodash-es/_createBaseEach.js", "../../node_modules/lodash-es/_baseEach.js", "../../node_modules/lodash-es/_castFunction.js", "../../node_modules/lodash-es/forEach.js", "../../node_modules/lodash-es/_baseFilter.js", "../../node_modules/lodash-es/_setCacheAdd.js", "../../node_modules/lodash-es/_setCacheHas.js", "../../node_modules/lodash-es/_SetCache.js", "../../node_modules/lodash-es/_arraySome.js", "../../node_modules/lodash-es/_cacheHas.js", "../../node_modules/lodash-es/_equalArrays.js", "../../node_modules/lodash-es/_mapToArray.js", "../../node_modules/lodash-es/_setToArray.js", "../../node_modules/lodash-es/_equalByTag.js", "../../node_modules/lodash-es/_equalObjects.js", "../../node_modules/lodash-es/_baseIsEqualDeep.js", "../../node_modules/lodash-es/_baseIsEqual.js", "../../node_modules/lodash-es/_baseIsMatch.js", "../../node_modules/lodash-es/_isStrictComparable.js", "../../node_modules/lodash-es/_getMatchData.js", "../../node_modules/lodash-es/_matchesStrictComparable.js", "../../node_modules/lodash-es/_baseMatches.js", "../../node_modules/lodash-es/isSymbol.js", "../../node_modules/lodash-es/_isKey.js", "../../node_modules/lodash-es/_memoizeCapped.js", "../../node_modules/lodash-es/_stringToPath.js", "../../node_modules/lodash-es/_arrayMap.js", "../../node_modules/lodash-es/_baseToString.js", "../../node_modules/lodash-es/toString.js", "../../node_modules/lodash-es/_castPath.js", "../../node_modules/lodash-es/_toKey.js", "../../node_modules/lodash-es/_baseGet.js", "../../node_modules/lodash-es/get.js", "../../node_modules/lodash-es/_baseHasIn.js", "../../node_modules/lodash-es/_hasPath.js", "../../node_modules/lodash-es/hasIn.js", "../../node_modules/lodash-es/_baseMatchesProperty.js", "../../node_modules/lodash-es/_baseProperty.js", "../../node_modules/lodash-es/_basePropertyDeep.js", "../../node_modules/lodash-es/property.js", "../../node_modules/lodash-es/_baseIteratee.js", "../../node_modules/lodash-es/filter.js", "../../node_modules/lodash-es/_baseMap.js", "../../node_modules/lodash-es/map.js", "../../node_modules/lodash-es/_baseValues.js", "../../node_modules/lodash-es/values.js", "../../node_modules/lodash-es/isUndefined.js", "../../node_modules/lodash-es/mapValues.js", "../../node_modules/lodash-es/_baseExtremum.js", "../../node_modules/lodash-es/_baseGt.js", "../../node_modules/lodash-es/max.js", "../../node_modules/lodash-es/_baseSet.js", "../../node_modules/lodash-es/_basePickBy.js", "../../node_modules/lodash-es/_basePick.js", "../../node_modules/lodash-es/_isFlattenable.js", "../../node_modules/lodash-es/_baseFlatten.js", "../../node_modules/lodash-es/flatten.js", "../../node_modules/lodash-es/_flatRest.js", "../../node_modules/lodash-es/pick.js", "../../node_modules/lodash-es/_arrayReduce.js", "../../node_modules/lodash-es/_baseReduce.js", "../../node_modules/lodash-es/reduce.js", "../../node_modules/lodash-es/_baseFindIndex.js", "../../node_modules/lodash-es/_baseIsNaN.js", "../../node_modules/lodash-es/_strictIndexOf.js", "../../node_modules/lodash-es/_baseIndexOf.js", "../../node_modules/lodash-es/_arrayIncludes.js", "../../node_modules/lodash-es/_arrayIncludesWith.js", "../../node_modules/lodash-es/noop.js", "../../node_modules/lodash-es/_createSet.js", "../../node_modules/lodash-es/_baseUniq.js", "../../node_modules/lodash-es/union.js", "../../node_modules/lodash-es/_trimmedEndIndex.js", "../../node_modules/lodash-es/_baseTrim.js", "../../node_modules/lodash-es/toNumber.js", "../../node_modules/lodash-es/toFinite.js", "../../node_modules/lodash-es/toInteger.js", "../../node_modules/lodash-es/assign.js", "../../node_modules/lodash-es/_baseSlice.js", "../../node_modules/lodash-es/_hasUnicode.js", "../../node_modules/lodash-es/cloneDeep.js", "../../node_modules/lodash-es/compact.js", "../../node_modules/lodash-es/_arrayAggregator.js", "../../node_modules/lodash-es/_baseAggregator.js", "../../node_modules/lodash-es/_createAggregator.js", "../../node_modules/lodash-es/now.js", "../../node_modules/lodash-es/_baseDifference.js", "../../node_modules/lodash-es/difference.js", "../../node_modules/lodash-es/drop.js", "../../node_modules/lodash-es/dropRight.js", "../../node_modules/lodash-es/_arrayEvery.js", "../../node_modules/lodash-es/_baseEvery.js", "../../node_modules/lodash-es/every.js", "../../node_modules/lodash-es/_createFind.js", "../../node_modules/lodash-es/findIndex.js", "../../node_modules/lodash-es/find.js", "../../node_modules/lodash-es/head.js", "../../node_modules/lodash-es/flatMap.js", "../../node_modules/lodash-es/forIn.js", "../../node_modules/lodash-es/forOwn.js", "../../node_modules/lodash-es/groupBy.js", "../../node_modules/lodash-es/_baseHas.js", "../../node_modules/lodash-es/has.js", "../../node_modules/lodash-es/isString.js", "../../node_modules/lodash-es/includes.js", "../../node_modules/lodash-es/indexOf.js", "../../node_modules/lodash-es/_baseIsRegExp.js", "../../node_modules/lodash-es/isRegExp.js", "../../node_modules/lodash-es/_baseLt.js", "../../node_modules/lodash-es/min.js", "../../node_modules/lodash-es/minBy.js", "../../node_modules/lodash-es/negate.js", "../../node_modules/lodash-es/pickBy.js", "../../node_modules/lodash-es/_baseSortBy.js", "../../node_modules/lodash-es/_compareAscending.js", "../../node_modules/lodash-es/_compareMultiple.js", "../../node_modules/lodash-es/_baseOrderBy.js", "../../node_modules/lodash-es/_asciiSize.js", "../../node_modules/lodash-es/_unicodeSize.js", "../../node_modules/lodash-es/_stringSize.js", "../../node_modules/lodash-es/_baseRange.js", "../../node_modules/lodash-es/_createRange.js", "../../node_modules/lodash-es/range.js", "../../node_modules/lodash-es/reject.js", "../../node_modules/lodash-es/size.js", "../../node_modules/lodash-es/_baseSome.js", "../../node_modules/lodash-es/some.js", "../../node_modules/lodash-es/sortBy.js", "../../node_modules/lodash-es/uniq.js", "../../node_modules/lodash-es/uniqBy.js", "../../node_modules/lodash-es/uniqueId.js", "../../node_modules/lodash-es/_baseZipObject.js", "../../node_modules/lodash-es/zipObject.js"], + "sourcesContent": ["/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\nexport default arrayEach;\n", "import arrayLikeKeys from './_arrayLikeKeys.js';\nimport baseKeys from './_baseKeys.js';\nimport isArrayLike from './isArrayLike.js';\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nexport default keys;\n", "import copyObject from './_copyObject.js';\nimport keys from './keys.js';\n\n/**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n}\n\nexport default baseAssign;\n", "import copyObject from './_copyObject.js';\nimport keysIn from './keysIn.js';\n\n/**\n * The base implementation of `_.assignIn` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssignIn(object, source) {\n return object && copyObject(source, keysIn(source), object);\n}\n\nexport default baseAssignIn;\n", "/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nexport default arrayFilter;\n", "/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nexport default stubArray;\n", "import arrayFilter from './_arrayFilter.js';\nimport stubArray from './stubArray.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nexport default getSymbols;\n", "import copyObject from './_copyObject.js';\nimport getSymbols from './_getSymbols.js';\n\n/**\n * Copies own symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n}\n\nexport default copySymbols;\n", "/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nexport default arrayPush;\n", "import arrayPush from './_arrayPush.js';\nimport getPrototype from './_getPrototype.js';\nimport getSymbols from './_getSymbols.js';\nimport stubArray from './stubArray.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own and inherited enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {\n var result = [];\n while (object) {\n arrayPush(result, getSymbols(object));\n object = getPrototype(object);\n }\n return result;\n};\n\nexport default getSymbolsIn;\n", "import copyObject from './_copyObject.js';\nimport getSymbolsIn from './_getSymbolsIn.js';\n\n/**\n * Copies own and inherited symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbolsIn(source, object) {\n return copyObject(source, getSymbolsIn(source), object);\n}\n\nexport default copySymbolsIn;\n", "import arrayPush from './_arrayPush.js';\nimport isArray from './isArray.js';\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nexport default baseGetAllKeys;\n", "import baseGetAllKeys from './_baseGetAllKeys.js';\nimport getSymbols from './_getSymbols.js';\nimport keys from './keys.js';\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nexport default getAllKeys;\n", "import baseGetAllKeys from './_baseGetAllKeys.js';\nimport getSymbolsIn from './_getSymbolsIn.js';\nimport keysIn from './keysIn.js';\n\n/**\n * Creates an array of own and inherited enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeysIn(object) {\n return baseGetAllKeys(object, keysIn, getSymbolsIn);\n}\n\nexport default getAllKeysIn;\n", "/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\nfunction initCloneArray(array) {\n var length = array.length,\n result = new array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n}\n\nexport default initCloneArray;\n", "import cloneArrayBuffer from './_cloneArrayBuffer.js';\n\n/**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\nfunction cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n}\n\nexport default cloneDataView;\n", "/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\n\n/**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\nfunction cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n}\n\nexport default cloneRegExp;\n", "import Symbol from './_Symbol.js';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\nfunction cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n}\n\nexport default cloneSymbol;\n", "import cloneArrayBuffer from './_cloneArrayBuffer.js';\nimport cloneDataView from './_cloneDataView.js';\nimport cloneRegExp from './_cloneRegExp.js';\nimport cloneSymbol from './_cloneSymbol.js';\nimport cloneTypedArray from './_cloneTypedArray.js';\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneByTag(object, tag, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return new Ctor;\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return new Ctor;\n\n case symbolTag:\n return cloneSymbol(object);\n }\n}\n\nexport default initCloneByTag;\n", "import getTag from './_getTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]';\n\n/**\n * The base implementation of `_.isMap` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n */\nfunction baseIsMap(value) {\n return isObjectLike(value) && getTag(value) == mapTag;\n}\n\nexport default baseIsMap;\n", "import baseIsMap from './_baseIsMap.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsMap = nodeUtil && nodeUtil.isMap;\n\n/**\n * Checks if `value` is classified as a `Map` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n * @example\n *\n * _.isMap(new Map);\n * // => true\n *\n * _.isMap(new WeakMap);\n * // => false\n */\nvar isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;\n\nexport default isMap;\n", "import getTag from './_getTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar setTag = '[object Set]';\n\n/**\n * The base implementation of `_.isSet` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n */\nfunction baseIsSet(value) {\n return isObjectLike(value) && getTag(value) == setTag;\n}\n\nexport default baseIsSet;\n", "import baseIsSet from './_baseIsSet.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsSet = nodeUtil && nodeUtil.isSet;\n\n/**\n * Checks if `value` is classified as a `Set` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n * @example\n *\n * _.isSet(new Set);\n * // => true\n *\n * _.isSet(new WeakSet);\n * // => false\n */\nvar isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;\n\nexport default isSet;\n", "import Stack from './_Stack.js';\nimport arrayEach from './_arrayEach.js';\nimport assignValue from './_assignValue.js';\nimport baseAssign from './_baseAssign.js';\nimport baseAssignIn from './_baseAssignIn.js';\nimport cloneBuffer from './_cloneBuffer.js';\nimport copyArray from './_copyArray.js';\nimport copySymbols from './_copySymbols.js';\nimport copySymbolsIn from './_copySymbolsIn.js';\nimport getAllKeys from './_getAllKeys.js';\nimport getAllKeysIn from './_getAllKeysIn.js';\nimport getTag from './_getTag.js';\nimport initCloneArray from './_initCloneArray.js';\nimport initCloneByTag from './_initCloneByTag.js';\nimport initCloneObject from './_initCloneObject.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isMap from './isMap.js';\nimport isObject from './isObject.js';\nimport isSet from './isSet.js';\nimport keys from './keys.js';\nimport keysIn from './keysIn.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values supported by `_.clone`. */\nvar cloneableTags = {};\ncloneableTags[argsTag] = cloneableTags[arrayTag] =\ncloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\ncloneableTags[boolTag] = cloneableTags[dateTag] =\ncloneableTags[float32Tag] = cloneableTags[float64Tag] =\ncloneableTags[int8Tag] = cloneableTags[int16Tag] =\ncloneableTags[int32Tag] = cloneableTags[mapTag] =\ncloneableTags[numberTag] = cloneableTags[objectTag] =\ncloneableTags[regexpTag] = cloneableTags[setTag] =\ncloneableTags[stringTag] = cloneableTags[symbolTag] =\ncloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\ncloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\ncloneableTags[errorTag] = cloneableTags[funcTag] =\ncloneableTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Deep clone\n * 2 - Flatten inherited properties\n * 4 - Clone symbols\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\nfunction baseClone(value, bitmask, customizer, key, object, stack) {\n var result,\n isDeep = bitmask & CLONE_DEEP_FLAG,\n isFlat = bitmask & CLONE_FLAT_FLAG,\n isFull = bitmask & CLONE_SYMBOLS_FLAG;\n\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n result = (isFlat || isFunc) ? {} : initCloneObject(value);\n if (!isDeep) {\n return isFlat\n ? copySymbolsIn(value, baseAssignIn(result, value))\n : copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (isSet(value)) {\n value.forEach(function(subValue) {\n result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));\n });\n } else if (isMap(value)) {\n value.forEach(function(subValue, key) {\n result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n }\n\n var keysFunc = isFull\n ? (isFlat ? getAllKeysIn : getAllKeys)\n : (isFlat ? keysIn : keys);\n\n var props = isArr ? undefined : keysFunc(value);\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n return result;\n}\n\nexport default baseClone;\n", "import baseClone from './_baseClone.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * Creates a shallow clone of `value`.\n *\n * **Note:** This method is loosely based on the\n * [structured clone algorithm](https://mdn.io/Structured_clone_algorithm)\n * and supports cloning arrays, array buffers, booleans, date objects, maps,\n * numbers, `Object` objects, regexes, sets, strings, symbols, and typed\n * arrays. The own enumerable properties of `arguments` objects are cloned\n * as plain objects. An empty object is returned for uncloneable values such\n * as error objects, functions, DOM nodes, and WeakMaps.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to clone.\n * @returns {*} Returns the cloned value.\n * @see _.cloneDeep\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var shallow = _.clone(objects);\n * console.log(shallow[0] === objects[0]);\n * // => true\n */\nfunction clone(value) {\n return baseClone(value, CLONE_SYMBOLS_FLAG);\n}\n\nexport default clone;\n", "import baseRest from './_baseRest.js';\nimport eq from './eq.js';\nimport isIterateeCall from './_isIterateeCall.js';\nimport keysIn from './keysIn.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns own and inherited enumerable string keyed properties of source\n * objects to the destination object for all destination properties that\n * resolve to `undefined`. Source objects are applied from left to right.\n * Once a property is set, additional values of the same property are ignored.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.defaultsDeep\n * @example\n *\n * _.defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n * // => { 'a': 1, 'b': 2 }\n */\nvar defaults = baseRest(function(object, sources) {\n object = Object(object);\n\n var index = -1;\n var length = sources.length;\n var guard = length > 2 ? sources[2] : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n length = 1;\n }\n\n while (++index < length) {\n var source = sources[index];\n var props = keysIn(source);\n var propsIndex = -1;\n var propsLength = props.length;\n\n while (++propsIndex < propsLength) {\n var key = props[propsIndex];\n var value = object[key];\n\n if (value === undefined ||\n (eq(value, objectProto[key]) && !hasOwnProperty.call(object, key))) {\n object[key] = source[key];\n }\n }\n }\n\n return object;\n});\n\nexport default defaults;\n", "/**\n * Gets the last element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the last element of `array`.\n * @example\n *\n * _.last([1, 2, 3]);\n * // => 3\n */\nfunction last(array) {\n var length = array == null ? 0 : array.length;\n return length ? array[length - 1] : undefined;\n}\n\nexport default last;\n", "import baseFor from './_baseFor.js';\nimport keys from './keys.js';\n\n/**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n}\n\nexport default baseForOwn;\n", "import isArrayLike from './isArrayLike.js';\n\n/**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseEach(eachFunc, fromRight) {\n return function(collection, iteratee) {\n if (collection == null) {\n return collection;\n }\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee);\n }\n var length = collection.length,\n index = fromRight ? length : -1,\n iterable = Object(collection);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (iteratee(iterable[index], index, iterable) === false) {\n break;\n }\n }\n return collection;\n };\n}\n\nexport default createBaseEach;\n", "import baseForOwn from './_baseForOwn.js';\nimport createBaseEach from './_createBaseEach.js';\n\n/**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\nvar baseEach = createBaseEach(baseForOwn);\n\nexport default baseEach;\n", "import identity from './identity.js';\n\n/**\n * Casts `value` to `identity` if it's not a function.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Function} Returns cast function.\n */\nfunction castFunction(value) {\n return typeof value == 'function' ? value : identity;\n}\n\nexport default castFunction;\n", "import arrayEach from './_arrayEach.js';\nimport baseEach from './_baseEach.js';\nimport castFunction from './_castFunction.js';\nimport isArray from './isArray.js';\n\n/**\n * Iterates over elements of `collection` and invokes `iteratee` for each element.\n * The iteratee is invoked with three arguments: (value, index|key, collection).\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * **Note:** As with other \"Collections\" methods, objects with a \"length\"\n * property are iterated like arrays. To avoid this behavior use `_.forIn`\n * or `_.forOwn` for object iteration.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @alias each\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n * @see _.forEachRight\n * @example\n *\n * _.forEach([1, 2], function(value) {\n * console.log(value);\n * });\n * // => Logs `1` then `2`.\n *\n * _.forEach({ 'a': 1, 'b': 2 }, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a' then 'b' (iteration order is not guaranteed).\n */\nfunction forEach(collection, iteratee) {\n var func = isArray(collection) ? arrayEach : baseEach;\n return func(collection, castFunction(iteratee));\n}\n\nexport default forEach;\n", "import baseEach from './_baseEach.js';\n\n/**\n * The base implementation of `_.filter` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction baseFilter(collection, predicate) {\n var result = [];\n baseEach(collection, function(value, index, collection) {\n if (predicate(value, index, collection)) {\n result.push(value);\n }\n });\n return result;\n}\n\nexport default baseFilter;\n", "/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\nexport default setCacheAdd;\n", "/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\nexport default setCacheHas;\n", "import MapCache from './_MapCache.js';\nimport setCacheAdd from './_setCacheAdd.js';\nimport setCacheHas from './_setCacheHas.js';\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nexport default SetCache;\n", "/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\nexport default arraySome;\n", "/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nexport default cacheHas;\n", "import SetCache from './_SetCache.js';\nimport arraySome from './_arraySome.js';\nimport cacheHas from './_cacheHas.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\nexport default equalArrays;\n", "/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\nexport default mapToArray;\n", "/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\nexport default setToArray;\n", "import Symbol from './_Symbol.js';\nimport Uint8Array from './_Uint8Array.js';\nimport eq from './eq.js';\nimport equalArrays from './_equalArrays.js';\nimport mapToArray from './_mapToArray.js';\nimport setToArray from './_setToArray.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\nexport default equalByTag;\n", "import getAllKeys from './_getAllKeys.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\nexport default equalObjects;\n", "import Stack from './_Stack.js';\nimport equalArrays from './_equalArrays.js';\nimport equalByTag from './_equalByTag.js';\nimport equalObjects from './_equalObjects.js';\nimport getTag from './_getTag.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isTypedArray from './isTypedArray.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\nexport default baseIsEqualDeep;\n", "import baseIsEqualDeep from './_baseIsEqualDeep.js';\nimport isObjectLike from './isObjectLike.js';\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nexport default baseIsEqual;\n", "import Stack from './_Stack.js';\nimport baseIsEqual from './_baseIsEqual.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\nfunction baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n}\n\nexport default baseIsMatch;\n", "import isObject from './isObject.js';\n\n/**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\nfunction isStrictComparable(value) {\n return value === value && !isObject(value);\n}\n\nexport default isStrictComparable;\n", "import isStrictComparable from './_isStrictComparable.js';\nimport keys from './keys.js';\n\n/**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\nfunction getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n}\n\nexport default getMatchData;\n", "/**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n}\n\nexport default matchesStrictComparable;\n", "import baseIsMatch from './_baseIsMatch.js';\nimport getMatchData from './_getMatchData.js';\nimport matchesStrictComparable from './_matchesStrictComparable.js';\n\n/**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n}\n\nexport default baseMatches;\n", "import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nexport default isSymbol;\n", "import isArray from './isArray.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\nexport default isKey;\n", "import memoize from './memoize.js';\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nexport default memoizeCapped;\n", "import memoizeCapped from './_memoizeCapped.js';\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nexport default stringToPath;\n", "/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nexport default arrayMap;\n", "import Symbol from './_Symbol.js';\nimport arrayMap from './_arrayMap.js';\nimport isArray from './isArray.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nexport default baseToString;\n", "import baseToString from './_baseToString.js';\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nexport default toString;\n", "import isArray from './isArray.js';\nimport isKey from './_isKey.js';\nimport stringToPath from './_stringToPath.js';\nimport toString from './toString.js';\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nexport default castPath;\n", "import isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nexport default toKey;\n", "import castPath from './_castPath.js';\nimport toKey from './_toKey.js';\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\nexport default baseGet;\n", "import baseGet from './_baseGet.js';\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nexport default get;\n", "/**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHasIn(object, key) {\n return object != null && key in Object(object);\n}\n\nexport default baseHasIn;\n", "import castPath from './_castPath.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isIndex from './_isIndex.js';\nimport isLength from './isLength.js';\nimport toKey from './_toKey.js';\n\n/**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\nfunction hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n result = false;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n}\n\nexport default hasPath;\n", "import baseHasIn from './_baseHasIn.js';\nimport hasPath from './_hasPath.js';\n\n/**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\nfunction hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n}\n\nexport default hasIn;\n", "import baseIsEqual from './_baseIsEqual.js';\nimport get from './get.js';\nimport hasIn from './hasIn.js';\nimport isKey from './_isKey.js';\nimport isStrictComparable from './_isStrictComparable.js';\nimport matchesStrictComparable from './_matchesStrictComparable.js';\nimport toKey from './_toKey.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n}\n\nexport default baseMatchesProperty;\n", "/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\nexport default baseProperty;\n", "import baseGet from './_baseGet.js';\n\n/**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n}\n\nexport default basePropertyDeep;\n", "import baseProperty from './_baseProperty.js';\nimport basePropertyDeep from './_basePropertyDeep.js';\nimport isKey from './_isKey.js';\nimport toKey from './_toKey.js';\n\n/**\n * Creates a function that returns the value at `path` of a given object.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': 2 } },\n * { 'a': { 'b': 1 } }\n * ];\n *\n * _.map(objects, _.property('a.b'));\n * // => [2, 1]\n *\n * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');\n * // => [1, 2]\n */\nfunction property(path) {\n return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n}\n\nexport default property;\n", "import baseMatches from './_baseMatches.js';\nimport baseMatchesProperty from './_baseMatchesProperty.js';\nimport identity from './identity.js';\nimport isArray from './isArray.js';\nimport property from './property.js';\n\n/**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\nfunction baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n}\n\nexport default baseIteratee;\n", "import arrayFilter from './_arrayFilter.js';\nimport baseFilter from './_baseFilter.js';\nimport baseIteratee from './_baseIteratee.js';\nimport isArray from './isArray.js';\n\n/**\n * Iterates over elements of `collection`, returning an array of all elements\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * **Note:** Unlike `_.remove`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n * @see _.reject\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * _.filter(users, function(o) { return !o.active; });\n * // => objects for ['fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.filter(users, { 'age': 36, 'active': true });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.filter(users, ['active', false]);\n * // => objects for ['fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.filter(users, 'active');\n * // => objects for ['barney']\n *\n * // Combining several predicates using `_.overEvery` or `_.overSome`.\n * _.filter(users, _.overSome([{ 'age': 36 }, ['age', 40]]));\n * // => objects for ['fred', 'barney']\n */\nfunction filter(collection, predicate) {\n var func = isArray(collection) ? arrayFilter : baseFilter;\n return func(collection, baseIteratee(predicate, 3));\n}\n\nexport default filter;\n", "import baseEach from './_baseEach.js';\nimport isArrayLike from './isArrayLike.js';\n\n/**\n * The base implementation of `_.map` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction baseMap(collection, iteratee) {\n var index = -1,\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value, key, collection) {\n result[++index] = iteratee(value, key, collection);\n });\n return result;\n}\n\nexport default baseMap;\n", "import arrayMap from './_arrayMap.js';\nimport baseIteratee from './_baseIteratee.js';\nimport baseMap from './_baseMap.js';\nimport isArray from './isArray.js';\n\n/**\n * Creates an array of values by running each element in `collection` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`.\n *\n * The guarded methods are:\n * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`,\n * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`,\n * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`,\n * `template`, `trim`, `trimEnd`, `trimStart`, and `words`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * _.map([4, 8], square);\n * // => [16, 64]\n *\n * _.map({ 'a': 4, 'b': 8 }, square);\n * // => [16, 64] (iteration order is not guaranteed)\n *\n * var users = [\n * { 'user': 'barney' },\n * { 'user': 'fred' }\n * ];\n *\n * // The `_.property` iteratee shorthand.\n * _.map(users, 'user');\n * // => ['barney', 'fred']\n */\nfunction map(collection, iteratee) {\n var func = isArray(collection) ? arrayMap : baseMap;\n return func(collection, baseIteratee(iteratee, 3));\n}\n\nexport default map;\n", "import arrayMap from './_arrayMap.js';\n\n/**\n * The base implementation of `_.values` and `_.valuesIn` which creates an\n * array of `object` property values corresponding to the property names\n * of `props`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} props The property names to get values for.\n * @returns {Object} Returns the array of property values.\n */\nfunction baseValues(object, props) {\n return arrayMap(props, function(key) {\n return object[key];\n });\n}\n\nexport default baseValues;\n", "import baseValues from './_baseValues.js';\nimport keys from './keys.js';\n\n/**\n * Creates an array of the own enumerable string keyed property values of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property values.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.values(new Foo);\n * // => [1, 2] (iteration order is not guaranteed)\n *\n * _.values('hi');\n * // => ['h', 'i']\n */\nfunction values(object) {\n return object == null ? [] : baseValues(object, keys(object));\n}\n\nexport default values;\n", "/**\n * Checks if `value` is `undefined`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`.\n * @example\n *\n * _.isUndefined(void 0);\n * // => true\n *\n * _.isUndefined(null);\n * // => false\n */\nfunction isUndefined(value) {\n return value === undefined;\n}\n\nexport default isUndefined;\n", "import baseAssignValue from './_baseAssignValue.js';\nimport baseForOwn from './_baseForOwn.js';\nimport baseIteratee from './_baseIteratee.js';\n\n/**\n * Creates an object with the same keys as `object` and values generated\n * by running each own enumerable string keyed property of `object` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, key, object).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns the new mapped object.\n * @see _.mapKeys\n * @example\n *\n * var users = {\n * 'fred': { 'user': 'fred', 'age': 40 },\n * 'pebbles': { 'user': 'pebbles', 'age': 1 }\n * };\n *\n * _.mapValues(users, function(o) { return o.age; });\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n *\n * // The `_.property` iteratee shorthand.\n * _.mapValues(users, 'age');\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n */\nfunction mapValues(object, iteratee) {\n var result = {};\n iteratee = baseIteratee(iteratee, 3);\n\n baseForOwn(object, function(value, key, object) {\n baseAssignValue(result, key, iteratee(value, key, object));\n });\n return result;\n}\n\nexport default mapValues;\n", "import isSymbol from './isSymbol.js';\n\n/**\n * The base implementation of methods like `_.max` and `_.min` which accepts a\n * `comparator` to determine the extremum value.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The iteratee invoked per iteration.\n * @param {Function} comparator The comparator used to compare values.\n * @returns {*} Returns the extremum value.\n */\nfunction baseExtremum(array, iteratee, comparator) {\n var index = -1,\n length = array.length;\n\n while (++index < length) {\n var value = array[index],\n current = iteratee(value);\n\n if (current != null && (computed === undefined\n ? (current === current && !isSymbol(current))\n : comparator(current, computed)\n )) {\n var computed = current,\n result = value;\n }\n }\n return result;\n}\n\nexport default baseExtremum;\n", "/**\n * The base implementation of `_.gt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is greater than `other`,\n * else `false`.\n */\nfunction baseGt(value, other) {\n return value > other;\n}\n\nexport default baseGt;\n", "import baseExtremum from './_baseExtremum.js';\nimport baseGt from './_baseGt.js';\nimport identity from './identity.js';\n\n/**\n * Computes the maximum value of `array`. If `array` is empty or falsey,\n * `undefined` is returned.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Math\n * @param {Array} array The array to iterate over.\n * @returns {*} Returns the maximum value.\n * @example\n *\n * _.max([4, 2, 8, 6]);\n * // => 8\n *\n * _.max([]);\n * // => undefined\n */\nfunction max(array) {\n return (array && array.length)\n ? baseExtremum(array, identity, baseGt)\n : undefined;\n}\n\nexport default max;\n", "import assignValue from './_assignValue.js';\nimport castPath from './_castPath.js';\nimport isIndex from './_isIndex.js';\nimport isObject from './isObject.js';\nimport toKey from './_toKey.js';\n\n/**\n * The base implementation of `_.set`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @param {Function} [customizer] The function to customize path creation.\n * @returns {Object} Returns `object`.\n */\nfunction baseSet(object, path, value, customizer) {\n if (!isObject(object)) {\n return object;\n }\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n lastIndex = length - 1,\n nested = object;\n\n while (nested != null && ++index < length) {\n var key = toKey(path[index]),\n newValue = value;\n\n if (key === '__proto__' || key === 'constructor' || key === 'prototype') {\n return object;\n }\n\n if (index != lastIndex) {\n var objValue = nested[key];\n newValue = customizer ? customizer(objValue, key, nested) : undefined;\n if (newValue === undefined) {\n newValue = isObject(objValue)\n ? objValue\n : (isIndex(path[index + 1]) ? [] : {});\n }\n }\n assignValue(nested, key, newValue);\n nested = nested[key];\n }\n return object;\n}\n\nexport default baseSet;\n", "import baseGet from './_baseGet.js';\nimport baseSet from './_baseSet.js';\nimport castPath from './_castPath.js';\n\n/**\n * The base implementation of `_.pickBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @param {Function} predicate The function invoked per property.\n * @returns {Object} Returns the new object.\n */\nfunction basePickBy(object, paths, predicate) {\n var index = -1,\n length = paths.length,\n result = {};\n\n while (++index < length) {\n var path = paths[index],\n value = baseGet(object, path);\n\n if (predicate(value, path)) {\n baseSet(result, castPath(path, object), value);\n }\n }\n return result;\n}\n\nexport default basePickBy;\n", "import basePickBy from './_basePickBy.js';\nimport hasIn from './hasIn.js';\n\n/**\n * The base implementation of `_.pick` without support for individual\n * property identifiers.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @returns {Object} Returns the new object.\n */\nfunction basePick(object, paths) {\n return basePickBy(object, paths, function(value, path) {\n return hasIn(object, path);\n });\n}\n\nexport default basePick;\n", "import Symbol from './_Symbol.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\n\n/** Built-in value references. */\nvar spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined;\n\n/**\n * Checks if `value` is a flattenable `arguments` object or array.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.\n */\nfunction isFlattenable(value) {\n return isArray(value) || isArguments(value) ||\n !!(spreadableSymbol && value && value[spreadableSymbol]);\n}\n\nexport default isFlattenable;\n", "import arrayPush from './_arrayPush.js';\nimport isFlattenable from './_isFlattenable.js';\n\n/**\n * The base implementation of `_.flatten` with support for restricting flattening.\n *\n * @private\n * @param {Array} array The array to flatten.\n * @param {number} depth The maximum recursion depth.\n * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\nfunction baseFlatten(array, depth, predicate, isStrict, result) {\n var index = -1,\n length = array.length;\n\n predicate || (predicate = isFlattenable);\n result || (result = []);\n\n while (++index < length) {\n var value = array[index];\n if (depth > 0 && predicate(value)) {\n if (depth > 1) {\n // Recursively flatten arrays (susceptible to call stack limits).\n baseFlatten(value, depth - 1, predicate, isStrict, result);\n } else {\n arrayPush(result, value);\n }\n } else if (!isStrict) {\n result[result.length] = value;\n }\n }\n return result;\n}\n\nexport default baseFlatten;\n", "import baseFlatten from './_baseFlatten.js';\n\n/**\n * Flattens `array` a single level deep.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flatten([1, [2, [3, [4]], 5]]);\n * // => [1, 2, [3, [4]], 5]\n */\nfunction flatten(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, 1) : [];\n}\n\nexport default flatten;\n", "import flatten from './flatten.js';\nimport overRest from './_overRest.js';\nimport setToString from './_setToString.js';\n\n/**\n * A specialized version of `baseRest` which flattens the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @returns {Function} Returns the new function.\n */\nfunction flatRest(func) {\n return setToString(overRest(func, undefined, flatten), func + '');\n}\n\nexport default flatRest;\n", "import basePick from './_basePick.js';\nimport flatRest from './_flatRest.js';\n\n/**\n * Creates an object composed of the picked `object` properties.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The source object.\n * @param {...(string|string[])} [paths] The property paths to pick.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.pick(object, ['a', 'c']);\n * // => { 'a': 1, 'c': 3 }\n */\nvar pick = flatRest(function(object, paths) {\n return object == null ? {} : basePick(object, paths);\n});\n\nexport default pick;\n", "/**\n * A specialized version of `_.reduce` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the first element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\nfunction arrayReduce(array, iteratee, accumulator, initAccum) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n if (initAccum && length) {\n accumulator = array[++index];\n }\n while (++index < length) {\n accumulator = iteratee(accumulator, array[index], index, array);\n }\n return accumulator;\n}\n\nexport default arrayReduce;\n", "/**\n * The base implementation of `_.reduce` and `_.reduceRight`, without support\n * for iteratee shorthands, which iterates over `collection` using `eachFunc`.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} accumulator The initial value.\n * @param {boolean} initAccum Specify using the first or last element of\n * `collection` as the initial value.\n * @param {Function} eachFunc The function to iterate over `collection`.\n * @returns {*} Returns the accumulated value.\n */\nfunction baseReduce(collection, iteratee, accumulator, initAccum, eachFunc) {\n eachFunc(collection, function(value, index, collection) {\n accumulator = initAccum\n ? (initAccum = false, value)\n : iteratee(accumulator, value, index, collection);\n });\n return accumulator;\n}\n\nexport default baseReduce;\n", "import arrayReduce from './_arrayReduce.js';\nimport baseEach from './_baseEach.js';\nimport baseIteratee from './_baseIteratee.js';\nimport baseReduce from './_baseReduce.js';\nimport isArray from './isArray.js';\n\n/**\n * Reduces `collection` to a value which is the accumulated result of running\n * each element in `collection` thru `iteratee`, where each successive\n * invocation is supplied the return value of the previous. If `accumulator`\n * is not given, the first element of `collection` is used as the initial\n * value. The iteratee is invoked with four arguments:\n * (accumulator, value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.reduce`, `_.reduceRight`, and `_.transform`.\n *\n * The guarded methods are:\n * `assign`, `defaults`, `defaultsDeep`, `includes`, `merge`, `orderBy`,\n * and `sortBy`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @returns {*} Returns the accumulated value.\n * @see _.reduceRight\n * @example\n *\n * _.reduce([1, 2], function(sum, n) {\n * return sum + n;\n * }, 0);\n * // => 3\n *\n * _.reduce({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) {\n * (result[value] || (result[value] = [])).push(key);\n * return result;\n * }, {});\n * // => { '1': ['a', 'c'], '2': ['b'] } (iteration order is not guaranteed)\n */\nfunction reduce(collection, iteratee, accumulator) {\n var func = isArray(collection) ? arrayReduce : baseReduce,\n initAccum = arguments.length < 3;\n\n return func(collection, baseIteratee(iteratee, 4), accumulator, initAccum, baseEach);\n}\n\nexport default reduce;\n", "/**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {number} fromIndex The index to search from.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseFindIndex(array, predicate, fromIndex, fromRight) {\n var length = array.length,\n index = fromIndex + (fromRight ? 1 : -1);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (predicate(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n}\n\nexport default baseFindIndex;\n", "/**\n * The base implementation of `_.isNaN` without support for number objects.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n */\nfunction baseIsNaN(value) {\n return value !== value;\n}\n\nexport default baseIsNaN;\n", "/**\n * A specialized version of `_.indexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction strictIndexOf(array, value, fromIndex) {\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (array[index] === value) {\n return index;\n }\n }\n return -1;\n}\n\nexport default strictIndexOf;\n", "import baseFindIndex from './_baseFindIndex.js';\nimport baseIsNaN from './_baseIsNaN.js';\nimport strictIndexOf from './_strictIndexOf.js';\n\n/**\n * The base implementation of `_.indexOf` without `fromIndex` bounds checks.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseIndexOf(array, value, fromIndex) {\n return value === value\n ? strictIndexOf(array, value, fromIndex)\n : baseFindIndex(array, baseIsNaN, fromIndex);\n}\n\nexport default baseIndexOf;\n", "import baseIndexOf from './_baseIndexOf.js';\n\n/**\n * A specialized version of `_.includes` for arrays without support for\n * specifying an index to search from.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludes(array, value) {\n var length = array == null ? 0 : array.length;\n return !!length && baseIndexOf(array, value, 0) > -1;\n}\n\nexport default arrayIncludes;\n", "/**\n * This function is like `arrayIncludes` except that it accepts a comparator.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludesWith(array, value, comparator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (comparator(value, array[index])) {\n return true;\n }\n }\n return false;\n}\n\nexport default arrayIncludesWith;\n", "/**\n * This method returns `undefined`.\n *\n * @static\n * @memberOf _\n * @since 2.3.0\n * @category Util\n * @example\n *\n * _.times(2, _.noop);\n * // => [undefined, undefined]\n */\nfunction noop() {\n // No operation performed.\n}\n\nexport default noop;\n", "import Set from './_Set.js';\nimport noop from './noop.js';\nimport setToArray from './_setToArray.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Creates a set object of `values`.\n *\n * @private\n * @param {Array} values The values to add to the set.\n * @returns {Object} Returns the new set.\n */\nvar createSet = !(Set && (1 / setToArray(new Set([,-0]))[1]) == INFINITY) ? noop : function(values) {\n return new Set(values);\n};\n\nexport default createSet;\n", "import SetCache from './_SetCache.js';\nimport arrayIncludes from './_arrayIncludes.js';\nimport arrayIncludesWith from './_arrayIncludesWith.js';\nimport cacheHas from './_cacheHas.js';\nimport createSet from './_createSet.js';\nimport setToArray from './_setToArray.js';\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * The base implementation of `_.uniqBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n */\nfunction baseUniq(array, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n length = array.length,\n isCommon = true,\n result = [],\n seen = result;\n\n if (comparator) {\n isCommon = false;\n includes = arrayIncludesWith;\n }\n else if (length >= LARGE_ARRAY_SIZE) {\n var set = iteratee ? null : createSet(array);\n if (set) {\n return setToArray(set);\n }\n isCommon = false;\n includes = cacheHas;\n seen = new SetCache;\n }\n else {\n seen = iteratee ? [] : result;\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var seenIndex = seen.length;\n while (seenIndex--) {\n if (seen[seenIndex] === computed) {\n continue outer;\n }\n }\n if (iteratee) {\n seen.push(computed);\n }\n result.push(value);\n }\n else if (!includes(seen, computed, comparator)) {\n if (seen !== result) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n}\n\nexport default baseUniq;\n", "import baseFlatten from './_baseFlatten.js';\nimport baseRest from './_baseRest.js';\nimport baseUniq from './_baseUniq.js';\nimport isArrayLikeObject from './isArrayLikeObject.js';\n\n/**\n * Creates an array of unique values, in order, from all given arrays using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @returns {Array} Returns the new array of combined values.\n * @example\n *\n * _.union([2], [1, 2]);\n * // => [2, 1]\n */\nvar union = baseRest(function(arrays) {\n return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true));\n});\n\nexport default union;\n", "/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nexport default trimmedEndIndex;\n", "import trimmedEndIndex from './_trimmedEndIndex.js';\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nexport default baseTrim;\n", "import baseTrim from './_baseTrim.js';\nimport isObject from './isObject.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nexport default toNumber;\n", "import toNumber from './toNumber.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n MAX_INTEGER = 1.7976931348623157e+308;\n\n/**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\nfunction toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n}\n\nexport default toFinite;\n", "import toFinite from './toFinite.js';\n\n/**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\nfunction toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n\n return result === result ? (remainder ? result - remainder : result) : 0;\n}\n\nexport default toInteger;\n", "import assignValue from './_assignValue.js';\nimport copyObject from './_copyObject.js';\nimport createAssigner from './_createAssigner.js';\nimport isArrayLike from './isArrayLike.js';\nimport isPrototype from './_isPrototype.js';\nimport keys from './keys.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns own enumerable string keyed properties of source objects to the\n * destination object. Source objects are applied from left to right.\n * Subsequent sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object` and is loosely based on\n * [`Object.assign`](https://mdn.io/Object/assign).\n *\n * @static\n * @memberOf _\n * @since 0.10.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.assignIn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * function Bar() {\n * this.c = 3;\n * }\n *\n * Foo.prototype.b = 2;\n * Bar.prototype.d = 4;\n *\n * _.assign({ 'a': 0 }, new Foo, new Bar);\n * // => { 'a': 1, 'c': 3 }\n */\nvar assign = createAssigner(function(object, source) {\n if (isPrototype(source) || isArrayLike(source)) {\n copyObject(source, keys(source), object);\n return;\n }\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n assignValue(object, key, source[key]);\n }\n }\n});\n\nexport default assign;\n", "/**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\nfunction baseSlice(array, start, end) {\n var index = -1,\n length = array.length;\n\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = end > length ? length : end;\n if (end < 0) {\n end += length;\n }\n length = start > end ? 0 : ((end - start) >>> 0);\n start >>>= 0;\n\n var result = Array(length);\n while (++index < length) {\n result[index] = array[index + start];\n }\n return result;\n}\n\nexport default baseSlice;\n", "/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsZWJ = '\\\\u200d';\n\n/** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */\nvar reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']');\n\n/**\n * Checks if `string` contains Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a symbol is found, else `false`.\n */\nfunction hasUnicode(string) {\n return reHasUnicode.test(string);\n}\n\nexport default hasUnicode;\n", "import baseClone from './_baseClone.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * This method is like `_.clone` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @returns {*} Returns the deep cloned value.\n * @see _.clone\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var deep = _.cloneDeep(objects);\n * console.log(deep[0] === objects[0]);\n * // => false\n */\nfunction cloneDeep(value) {\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);\n}\n\nexport default cloneDeep;\n", "/**\n * Creates an array with all falsey values removed. The values `false`, `null`,\n * `0`, `\"\"`, `undefined`, and `NaN` are falsey.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to compact.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * _.compact([0, 1, false, 2, '', 3]);\n * // => [1, 2, 3]\n */\nfunction compact(array) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (value) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nexport default compact;\n", "/**\n * A specialized version of `baseAggregator` for arrays.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform keys.\n * @param {Object} accumulator The initial aggregated object.\n * @returns {Function} Returns `accumulator`.\n */\nfunction arrayAggregator(array, setter, iteratee, accumulator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n var value = array[index];\n setter(accumulator, value, iteratee(value), array);\n }\n return accumulator;\n}\n\nexport default arrayAggregator;\n", "import baseEach from './_baseEach.js';\n\n/**\n * Aggregates elements of `collection` on `accumulator` with keys transformed\n * by `iteratee` and values set by `setter`.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform keys.\n * @param {Object} accumulator The initial aggregated object.\n * @returns {Function} Returns `accumulator`.\n */\nfunction baseAggregator(collection, setter, iteratee, accumulator) {\n baseEach(collection, function(value, key, collection) {\n setter(accumulator, value, iteratee(value), collection);\n });\n return accumulator;\n}\n\nexport default baseAggregator;\n", "import arrayAggregator from './_arrayAggregator.js';\nimport baseAggregator from './_baseAggregator.js';\nimport baseIteratee from './_baseIteratee.js';\nimport isArray from './isArray.js';\n\n/**\n * Creates a function like `_.groupBy`.\n *\n * @private\n * @param {Function} setter The function to set accumulator values.\n * @param {Function} [initializer] The accumulator object initializer.\n * @returns {Function} Returns the new aggregator function.\n */\nfunction createAggregator(setter, initializer) {\n return function(collection, iteratee) {\n var func = isArray(collection) ? arrayAggregator : baseAggregator,\n accumulator = initializer ? initializer() : {};\n\n return func(collection, setter, baseIteratee(iteratee, 2), accumulator);\n };\n}\n\nexport default createAggregator;\n", "import root from './_root.js';\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\nexport default now;\n", "import SetCache from './_SetCache.js';\nimport arrayIncludes from './_arrayIncludes.js';\nimport arrayIncludesWith from './_arrayIncludesWith.js';\nimport arrayMap from './_arrayMap.js';\nimport baseUnary from './_baseUnary.js';\nimport cacheHas from './_cacheHas.js';\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * The base implementation of methods like `_.difference` without support\n * for excluding multiple arrays or iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Array} values The values to exclude.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n */\nfunction baseDifference(array, values, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n isCommon = true,\n length = array.length,\n result = [],\n valuesLength = values.length;\n\n if (!length) {\n return result;\n }\n if (iteratee) {\n values = arrayMap(values, baseUnary(iteratee));\n }\n if (comparator) {\n includes = arrayIncludesWith;\n isCommon = false;\n }\n else if (values.length >= LARGE_ARRAY_SIZE) {\n includes = cacheHas;\n isCommon = false;\n values = new SetCache(values);\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee == null ? value : iteratee(value);\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var valuesIndex = valuesLength;\n while (valuesIndex--) {\n if (values[valuesIndex] === computed) {\n continue outer;\n }\n }\n result.push(value);\n }\n else if (!includes(values, computed, comparator)) {\n result.push(value);\n }\n }\n return result;\n}\n\nexport default baseDifference;\n", "import baseDifference from './_baseDifference.js';\nimport baseFlatten from './_baseFlatten.js';\nimport baseRest from './_baseRest.js';\nimport isArrayLikeObject from './isArrayLikeObject.js';\n\n/**\n * Creates an array of `array` values not included in the other given arrays\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. The order and references of result values are\n * determined by the first array.\n *\n * **Note:** Unlike `_.pullAll`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...Array} [values] The values to exclude.\n * @returns {Array} Returns the new array of filtered values.\n * @see _.without, _.xor\n * @example\n *\n * _.difference([2, 1], [2, 3]);\n * // => [1]\n */\nvar difference = baseRest(function(array, values) {\n return isArrayLikeObject(array)\n ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true))\n : [];\n});\n\nexport default difference;\n", "import baseSlice from './_baseSlice.js';\nimport toInteger from './toInteger.js';\n\n/**\n * Creates a slice of `array` with `n` elements dropped from the beginning.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to drop.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.drop([1, 2, 3]);\n * // => [2, 3]\n *\n * _.drop([1, 2, 3], 2);\n * // => [3]\n *\n * _.drop([1, 2, 3], 5);\n * // => []\n *\n * _.drop([1, 2, 3], 0);\n * // => [1, 2, 3]\n */\nfunction drop(array, n, guard) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n n = (guard || n === undefined) ? 1 : toInteger(n);\n return baseSlice(array, n < 0 ? 0 : n, length);\n}\n\nexport default drop;\n", "import baseSlice from './_baseSlice.js';\nimport toInteger from './toInteger.js';\n\n/**\n * Creates a slice of `array` with `n` elements dropped from the end.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to drop.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.dropRight([1, 2, 3]);\n * // => [1, 2]\n *\n * _.dropRight([1, 2, 3], 2);\n * // => [1]\n *\n * _.dropRight([1, 2, 3], 5);\n * // => []\n *\n * _.dropRight([1, 2, 3], 0);\n * // => [1, 2, 3]\n */\nfunction dropRight(array, n, guard) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n n = (guard || n === undefined) ? 1 : toInteger(n);\n n = length - n;\n return baseSlice(array, 0, n < 0 ? 0 : n);\n}\n\nexport default dropRight;\n", "/**\n * A specialized version of `_.every` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`.\n */\nfunction arrayEvery(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (!predicate(array[index], index, array)) {\n return false;\n }\n }\n return true;\n}\n\nexport default arrayEvery;\n", "import baseEach from './_baseEach.js';\n\n/**\n * The base implementation of `_.every` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`\n */\nfunction baseEvery(collection, predicate) {\n var result = true;\n baseEach(collection, function(value, index, collection) {\n result = !!predicate(value, index, collection);\n return result;\n });\n return result;\n}\n\nexport default baseEvery;\n", "import arrayEvery from './_arrayEvery.js';\nimport baseEvery from './_baseEvery.js';\nimport baseIteratee from './_baseIteratee.js';\nimport isArray from './isArray.js';\nimport isIterateeCall from './_isIterateeCall.js';\n\n/**\n * Checks if `predicate` returns truthy for **all** elements of `collection`.\n * Iteration is stopped once `predicate` returns falsey. The predicate is\n * invoked with three arguments: (value, index|key, collection).\n *\n * **Note:** This method returns `true` for\n * [empty collections](https://en.wikipedia.org/wiki/Empty_set) because\n * [everything is true](https://en.wikipedia.org/wiki/Vacuous_truth) of\n * elements of empty collections.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`.\n * @example\n *\n * _.every([true, 1, null, 'yes'], Boolean);\n * // => false\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': false },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * // The `_.matches` iteratee shorthand.\n * _.every(users, { 'user': 'barney', 'active': false });\n * // => false\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.every(users, ['active', false]);\n * // => true\n *\n * // The `_.property` iteratee shorthand.\n * _.every(users, 'active');\n * // => false\n */\nfunction every(collection, predicate, guard) {\n var func = isArray(collection) ? arrayEvery : baseEvery;\n if (guard && isIterateeCall(collection, predicate, guard)) {\n predicate = undefined;\n }\n return func(collection, baseIteratee(predicate, 3));\n}\n\nexport default every;\n", "import baseIteratee from './_baseIteratee.js';\nimport isArrayLike from './isArrayLike.js';\nimport keys from './keys.js';\n\n/**\n * Creates a `_.find` or `_.findLast` function.\n *\n * @private\n * @param {Function} findIndexFunc The function to find the collection index.\n * @returns {Function} Returns the new find function.\n */\nfunction createFind(findIndexFunc) {\n return function(collection, predicate, fromIndex) {\n var iterable = Object(collection);\n if (!isArrayLike(collection)) {\n var iteratee = baseIteratee(predicate, 3);\n collection = keys(collection);\n predicate = function(key) { return iteratee(iterable[key], key, iterable); };\n }\n var index = findIndexFunc(collection, predicate, fromIndex);\n return index > -1 ? iterable[iteratee ? collection[index] : index] : undefined;\n };\n}\n\nexport default createFind;\n", "import baseFindIndex from './_baseFindIndex.js';\nimport baseIteratee from './_baseIteratee.js';\nimport toInteger from './toInteger.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * This method is like `_.find` except that it returns the index of the first\n * element `predicate` returns truthy for instead of the element itself.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {number} Returns the index of the found element, else `-1`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.findIndex(users, function(o) { return o.user == 'barney'; });\n * // => 0\n *\n * // The `_.matches` iteratee shorthand.\n * _.findIndex(users, { 'user': 'fred', 'active': false });\n * // => 1\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findIndex(users, ['active', false]);\n * // => 0\n *\n * // The `_.property` iteratee shorthand.\n * _.findIndex(users, 'active');\n * // => 2\n */\nfunction findIndex(array, predicate, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = fromIndex == null ? 0 : toInteger(fromIndex);\n if (index < 0) {\n index = nativeMax(length + index, 0);\n }\n return baseFindIndex(array, baseIteratee(predicate, 3), index);\n}\n\nexport default findIndex;\n", "import createFind from './_createFind.js';\nimport findIndex from './findIndex.js';\n\n/**\n * Iterates over elements of `collection`, returning the first element\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {*} Returns the matched element, else `undefined`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false },\n * { 'user': 'pebbles', 'age': 1, 'active': true }\n * ];\n *\n * _.find(users, function(o) { return o.age < 40; });\n * // => object for 'barney'\n *\n * // The `_.matches` iteratee shorthand.\n * _.find(users, { 'age': 1, 'active': true });\n * // => object for 'pebbles'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.find(users, ['active', false]);\n * // => object for 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.find(users, 'active');\n * // => object for 'barney'\n */\nvar find = createFind(findIndex);\n\nexport default find;\n", "/**\n * Gets the first element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @alias first\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the first element of `array`.\n * @example\n *\n * _.head([1, 2, 3]);\n * // => 1\n *\n * _.head([]);\n * // => undefined\n */\nfunction head(array) {\n return (array && array.length) ? array[0] : undefined;\n}\n\nexport default head;\n", "import baseFlatten from './_baseFlatten.js';\nimport map from './map.js';\n\n/**\n * Creates a flattened array of values by running each element in `collection`\n * thru `iteratee` and flattening the mapped results. The iteratee is invoked\n * with three arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * function duplicate(n) {\n * return [n, n];\n * }\n *\n * _.flatMap([1, 2], duplicate);\n * // => [1, 1, 2, 2]\n */\nfunction flatMap(collection, iteratee) {\n return baseFlatten(map(collection, iteratee), 1);\n}\n\nexport default flatMap;\n", "import baseFor from './_baseFor.js';\nimport castFunction from './_castFunction.js';\nimport keysIn from './keysIn.js';\n\n/**\n * Iterates over own and inherited enumerable string keyed properties of an\n * object and invokes `iteratee` for each property. The iteratee is invoked\n * with three arguments: (value, key, object). Iteratee functions may exit\n * iteration early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @since 0.3.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forInRight\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forIn(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a', 'b', then 'c' (iteration order is not guaranteed).\n */\nfunction forIn(object, iteratee) {\n return object == null\n ? object\n : baseFor(object, castFunction(iteratee), keysIn);\n}\n\nexport default forIn;\n", "import baseForOwn from './_baseForOwn.js';\nimport castFunction from './_castFunction.js';\n\n/**\n * Iterates over own enumerable string keyed properties of an object and\n * invokes `iteratee` for each property. The iteratee is invoked with three\n * arguments: (value, key, object). Iteratee functions may exit iteration\n * early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @since 0.3.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forOwnRight\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forOwn(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a' then 'b' (iteration order is not guaranteed).\n */\nfunction forOwn(object, iteratee) {\n return object && baseForOwn(object, castFunction(iteratee));\n}\n\nexport default forOwn;\n", "import baseAssignValue from './_baseAssignValue.js';\nimport createAggregator from './_createAggregator.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an object composed of keys generated from the results of running\n * each element of `collection` thru `iteratee`. The order of grouped values\n * is determined by the order they occur in `collection`. The corresponding\n * value of each key is an array of elements responsible for generating the\n * key. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee to transform keys.\n * @returns {Object} Returns the composed aggregate object.\n * @example\n *\n * _.groupBy([6.1, 4.2, 6.3], Math.floor);\n * // => { '4': [4.2], '6': [6.1, 6.3] }\n *\n * // The `_.property` iteratee shorthand.\n * _.groupBy(['one', 'two', 'three'], 'length');\n * // => { '3': ['one', 'two'], '5': ['three'] }\n */\nvar groupBy = createAggregator(function(result, value, key) {\n if (hasOwnProperty.call(result, key)) {\n result[key].push(value);\n } else {\n baseAssignValue(result, key, [value]);\n }\n});\n\nexport default groupBy;\n", "/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.has` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHas(object, key) {\n return object != null && hasOwnProperty.call(object, key);\n}\n\nexport default baseHas;\n", "import baseHas from './_baseHas.js';\nimport hasPath from './_hasPath.js';\n\n/**\n * Checks if `path` is a direct property of `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = { 'a': { 'b': 2 } };\n * var other = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.has(object, 'a');\n * // => true\n *\n * _.has(object, 'a.b');\n * // => true\n *\n * _.has(object, ['a', 'b']);\n * // => true\n *\n * _.has(other, 'a');\n * // => false\n */\nfunction has(object, path) {\n return object != null && hasPath(object, path, baseHas);\n}\n\nexport default has;\n", "import baseGetTag from './_baseGetTag.js';\nimport isArray from './isArray.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar stringTag = '[object String]';\n\n/**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\nfunction isString(value) {\n return typeof value == 'string' ||\n (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);\n}\n\nexport default isString;\n", "import baseIndexOf from './_baseIndexOf.js';\nimport isArrayLike from './isArrayLike.js';\nimport isString from './isString.js';\nimport toInteger from './toInteger.js';\nimport values from './values.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * Checks if `value` is in `collection`. If `collection` is a string, it's\n * checked for a substring of `value`, otherwise\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * is used for equality comparisons. If `fromIndex` is negative, it's used as\n * the offset from the end of `collection`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object|string} collection The collection to inspect.\n * @param {*} value The value to search for.\n * @param {number} [fromIndex=0] The index to search from.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`.\n * @returns {boolean} Returns `true` if `value` is found, else `false`.\n * @example\n *\n * _.includes([1, 2, 3], 1);\n * // => true\n *\n * _.includes([1, 2, 3], 1, 2);\n * // => false\n *\n * _.includes({ 'a': 1, 'b': 2 }, 1);\n * // => true\n *\n * _.includes('abcd', 'bc');\n * // => true\n */\nfunction includes(collection, value, fromIndex, guard) {\n collection = isArrayLike(collection) ? collection : values(collection);\n fromIndex = (fromIndex && !guard) ? toInteger(fromIndex) : 0;\n\n var length = collection.length;\n if (fromIndex < 0) {\n fromIndex = nativeMax(length + fromIndex, 0);\n }\n return isString(collection)\n ? (fromIndex <= length && collection.indexOf(value, fromIndex) > -1)\n : (!!length && baseIndexOf(collection, value, fromIndex) > -1);\n}\n\nexport default includes;\n", "import baseIndexOf from './_baseIndexOf.js';\nimport toInteger from './toInteger.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * Gets the index at which the first occurrence of `value` is found in `array`\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. If `fromIndex` is negative, it's used as the\n * offset from the end of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n * @example\n *\n * _.indexOf([1, 2, 1, 2], 2);\n * // => 1\n *\n * // Search from the `fromIndex`.\n * _.indexOf([1, 2, 1, 2], 2, 2);\n * // => 3\n */\nfunction indexOf(array, value, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = fromIndex == null ? 0 : toInteger(fromIndex);\n if (index < 0) {\n index = nativeMax(length + index, 0);\n }\n return baseIndexOf(array, value, index);\n}\n\nexport default indexOf;\n", "import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar regexpTag = '[object RegExp]';\n\n/**\n * The base implementation of `_.isRegExp` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a regexp, else `false`.\n */\nfunction baseIsRegExp(value) {\n return isObjectLike(value) && baseGetTag(value) == regexpTag;\n}\n\nexport default baseIsRegExp;\n", "import baseIsRegExp from './_baseIsRegExp.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsRegExp = nodeUtil && nodeUtil.isRegExp;\n\n/**\n * Checks if `value` is classified as a `RegExp` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a regexp, else `false`.\n * @example\n *\n * _.isRegExp(/abc/);\n * // => true\n *\n * _.isRegExp('/abc/');\n * // => false\n */\nvar isRegExp = nodeIsRegExp ? baseUnary(nodeIsRegExp) : baseIsRegExp;\n\nexport default isRegExp;\n", "/**\n * The base implementation of `_.lt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is less than `other`,\n * else `false`.\n */\nfunction baseLt(value, other) {\n return value < other;\n}\n\nexport default baseLt;\n", "import baseExtremum from './_baseExtremum.js';\nimport baseLt from './_baseLt.js';\nimport identity from './identity.js';\n\n/**\n * Computes the minimum value of `array`. If `array` is empty or falsey,\n * `undefined` is returned.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Math\n * @param {Array} array The array to iterate over.\n * @returns {*} Returns the minimum value.\n * @example\n *\n * _.min([4, 2, 8, 6]);\n * // => 2\n *\n * _.min([]);\n * // => undefined\n */\nfunction min(array) {\n return (array && array.length)\n ? baseExtremum(array, identity, baseLt)\n : undefined;\n}\n\nexport default min;\n", "import baseExtremum from './_baseExtremum.js';\nimport baseIteratee from './_baseIteratee.js';\nimport baseLt from './_baseLt.js';\n\n/**\n * This method is like `_.min` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the criterion by which\n * the value is ranked. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Math\n * @param {Array} array The array to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {*} Returns the minimum value.\n * @example\n *\n * var objects = [{ 'n': 1 }, { 'n': 2 }];\n *\n * _.minBy(objects, function(o) { return o.n; });\n * // => { 'n': 1 }\n *\n * // The `_.property` iteratee shorthand.\n * _.minBy(objects, 'n');\n * // => { 'n': 1 }\n */\nfunction minBy(array, iteratee) {\n return (array && array.length)\n ? baseExtremum(array, baseIteratee(iteratee, 2), baseLt)\n : undefined;\n}\n\nexport default minBy;\n", "/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that negates the result of the predicate `func`. The\n * `func` predicate is invoked with the `this` binding and arguments of the\n * created function.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} predicate The predicate to negate.\n * @returns {Function} Returns the new negated function.\n * @example\n *\n * function isEven(n) {\n * return n % 2 == 0;\n * }\n *\n * _.filter([1, 2, 3, 4, 5, 6], _.negate(isEven));\n * // => [1, 3, 5]\n */\nfunction negate(predicate) {\n if (typeof predicate != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n return function() {\n var args = arguments;\n switch (args.length) {\n case 0: return !predicate.call(this);\n case 1: return !predicate.call(this, args[0]);\n case 2: return !predicate.call(this, args[0], args[1]);\n case 3: return !predicate.call(this, args[0], args[1], args[2]);\n }\n return !predicate.apply(this, args);\n };\n}\n\nexport default negate;\n", "import arrayMap from './_arrayMap.js';\nimport baseIteratee from './_baseIteratee.js';\nimport basePickBy from './_basePickBy.js';\nimport getAllKeysIn from './_getAllKeysIn.js';\n\n/**\n * Creates an object composed of the `object` properties `predicate` returns\n * truthy for. The predicate is invoked with two arguments: (value, key).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The source object.\n * @param {Function} [predicate=_.identity] The function invoked per property.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.pickBy(object, _.isNumber);\n * // => { 'a': 1, 'c': 3 }\n */\nfunction pickBy(object, predicate) {\n if (object == null) {\n return {};\n }\n var props = arrayMap(getAllKeysIn(object), function(prop) {\n return [prop];\n });\n predicate = baseIteratee(predicate);\n return basePickBy(object, props, function(value, path) {\n return predicate(value, path[0]);\n });\n}\n\nexport default pickBy;\n", "/**\n * The base implementation of `_.sortBy` which uses `comparer` to define the\n * sort order of `array` and replaces criteria objects with their corresponding\n * values.\n *\n * @private\n * @param {Array} array The array to sort.\n * @param {Function} comparer The function to define sort order.\n * @returns {Array} Returns `array`.\n */\nfunction baseSortBy(array, comparer) {\n var length = array.length;\n\n array.sort(comparer);\n while (length--) {\n array[length] = array[length].value;\n }\n return array;\n}\n\nexport default baseSortBy;\n", "import isSymbol from './isSymbol.js';\n\n/**\n * Compares values to sort them in ascending order.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {number} Returns the sort order indicator for `value`.\n */\nfunction compareAscending(value, other) {\n if (value !== other) {\n var valIsDefined = value !== undefined,\n valIsNull = value === null,\n valIsReflexive = value === value,\n valIsSymbol = isSymbol(value);\n\n var othIsDefined = other !== undefined,\n othIsNull = other === null,\n othIsReflexive = other === other,\n othIsSymbol = isSymbol(other);\n\n if ((!othIsNull && !othIsSymbol && !valIsSymbol && value > other) ||\n (valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol) ||\n (valIsNull && othIsDefined && othIsReflexive) ||\n (!valIsDefined && othIsReflexive) ||\n !valIsReflexive) {\n return 1;\n }\n if ((!valIsNull && !valIsSymbol && !othIsSymbol && value < other) ||\n (othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol) ||\n (othIsNull && valIsDefined && valIsReflexive) ||\n (!othIsDefined && valIsReflexive) ||\n !othIsReflexive) {\n return -1;\n }\n }\n return 0;\n}\n\nexport default compareAscending;\n", "import compareAscending from './_compareAscending.js';\n\n/**\n * Used by `_.orderBy` to compare multiple properties of a value to another\n * and stable sort them.\n *\n * If `orders` is unspecified, all values are sorted in ascending order. Otherwise,\n * specify an order of \"desc\" for descending or \"asc\" for ascending sort order\n * of corresponding values.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {boolean[]|string[]} orders The order to sort by for each property.\n * @returns {number} Returns the sort order indicator for `object`.\n */\nfunction compareMultiple(object, other, orders) {\n var index = -1,\n objCriteria = object.criteria,\n othCriteria = other.criteria,\n length = objCriteria.length,\n ordersLength = orders.length;\n\n while (++index < length) {\n var result = compareAscending(objCriteria[index], othCriteria[index]);\n if (result) {\n if (index >= ordersLength) {\n return result;\n }\n var order = orders[index];\n return result * (order == 'desc' ? -1 : 1);\n }\n }\n // Fixes an `Array#sort` bug in the JS engine embedded in Adobe applications\n // that causes it, under certain circumstances, to provide the same value for\n // `object` and `other`. See https://github.com/jashkenas/underscore/pull/1247\n // for more details.\n //\n // This also ensures a stable sort in V8 and other engines.\n // See https://bugs.chromium.org/p/v8/issues/detail?id=90 for more details.\n return object.index - other.index;\n}\n\nexport default compareMultiple;\n", "import arrayMap from './_arrayMap.js';\nimport baseGet from './_baseGet.js';\nimport baseIteratee from './_baseIteratee.js';\nimport baseMap from './_baseMap.js';\nimport baseSortBy from './_baseSortBy.js';\nimport baseUnary from './_baseUnary.js';\nimport compareMultiple from './_compareMultiple.js';\nimport identity from './identity.js';\nimport isArray from './isArray.js';\n\n/**\n * The base implementation of `_.orderBy` without param guards.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function[]|Object[]|string[]} iteratees The iteratees to sort by.\n * @param {string[]} orders The sort orders of `iteratees`.\n * @returns {Array} Returns the new sorted array.\n */\nfunction baseOrderBy(collection, iteratees, orders) {\n if (iteratees.length) {\n iteratees = arrayMap(iteratees, function(iteratee) {\n if (isArray(iteratee)) {\n return function(value) {\n return baseGet(value, iteratee.length === 1 ? iteratee[0] : iteratee);\n }\n }\n return iteratee;\n });\n } else {\n iteratees = [identity];\n }\n\n var index = -1;\n iteratees = arrayMap(iteratees, baseUnary(baseIteratee));\n\n var result = baseMap(collection, function(value, key, collection) {\n var criteria = arrayMap(iteratees, function(iteratee) {\n return iteratee(value);\n });\n return { 'criteria': criteria, 'index': ++index, 'value': value };\n });\n\n return baseSortBy(result, function(object, other) {\n return compareMultiple(object, other, orders);\n });\n}\n\nexport default baseOrderBy;\n", "import baseProperty from './_baseProperty.js';\n\n/**\n * Gets the size of an ASCII `string`.\n *\n * @private\n * @param {string} string The string inspect.\n * @returns {number} Returns the string size.\n */\nvar asciiSize = baseProperty('length');\n\nexport default asciiSize;\n", "/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsAstral = '[' + rsAstralRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n\n/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\nvar reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\n\n/**\n * Gets the size of a Unicode `string`.\n *\n * @private\n * @param {string} string The string inspect.\n * @returns {number} Returns the string size.\n */\nfunction unicodeSize(string) {\n var result = reUnicode.lastIndex = 0;\n while (reUnicode.test(string)) {\n ++result;\n }\n return result;\n}\n\nexport default unicodeSize;\n", "import asciiSize from './_asciiSize.js';\nimport hasUnicode from './_hasUnicode.js';\nimport unicodeSize from './_unicodeSize.js';\n\n/**\n * Gets the number of symbols in `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the string size.\n */\nfunction stringSize(string) {\n return hasUnicode(string)\n ? unicodeSize(string)\n : asciiSize(string);\n}\n\nexport default stringSize;\n", "/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeCeil = Math.ceil,\n nativeMax = Math.max;\n\n/**\n * The base implementation of `_.range` and `_.rangeRight` which doesn't\n * coerce arguments.\n *\n * @private\n * @param {number} start The start of the range.\n * @param {number} end The end of the range.\n * @param {number} step The value to increment or decrement by.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Array} Returns the range of numbers.\n */\nfunction baseRange(start, end, step, fromRight) {\n var index = -1,\n length = nativeMax(nativeCeil((end - start) / (step || 1)), 0),\n result = Array(length);\n\n while (length--) {\n result[fromRight ? length : ++index] = start;\n start += step;\n }\n return result;\n}\n\nexport default baseRange;\n", "import baseRange from './_baseRange.js';\nimport isIterateeCall from './_isIterateeCall.js';\nimport toFinite from './toFinite.js';\n\n/**\n * Creates a `_.range` or `_.rangeRight` function.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new range function.\n */\nfunction createRange(fromRight) {\n return function(start, end, step) {\n if (step && typeof step != 'number' && isIterateeCall(start, end, step)) {\n end = step = undefined;\n }\n // Ensure the sign of `-0` is preserved.\n start = toFinite(start);\n if (end === undefined) {\n end = start;\n start = 0;\n } else {\n end = toFinite(end);\n }\n step = step === undefined ? (start < end ? 1 : -1) : toFinite(step);\n return baseRange(start, end, step, fromRight);\n };\n}\n\nexport default createRange;\n", "import createRange from './_createRange.js';\n\n/**\n * Creates an array of numbers (positive and/or negative) progressing from\n * `start` up to, but not including, `end`. A step of `-1` is used if a negative\n * `start` is specified without an `end` or `step`. If `end` is not specified,\n * it's set to `start` with `start` then set to `0`.\n *\n * **Note:** JavaScript follows the IEEE-754 standard for resolving\n * floating-point values which can produce unexpected results.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {number} [start=0] The start of the range.\n * @param {number} end The end of the range.\n * @param {number} [step=1] The value to increment or decrement by.\n * @returns {Array} Returns the range of numbers.\n * @see _.inRange, _.rangeRight\n * @example\n *\n * _.range(4);\n * // => [0, 1, 2, 3]\n *\n * _.range(-4);\n * // => [0, -1, -2, -3]\n *\n * _.range(1, 5);\n * // => [1, 2, 3, 4]\n *\n * _.range(0, 20, 5);\n * // => [0, 5, 10, 15]\n *\n * _.range(0, -4, -1);\n * // => [0, -1, -2, -3]\n *\n * _.range(1, 4, 0);\n * // => [1, 1, 1]\n *\n * _.range(0);\n * // => []\n */\nvar range = createRange();\n\nexport default range;\n", "import arrayFilter from './_arrayFilter.js';\nimport baseFilter from './_baseFilter.js';\nimport baseIteratee from './_baseIteratee.js';\nimport isArray from './isArray.js';\nimport negate from './negate.js';\n\n/**\n * The opposite of `_.filter`; this method returns the elements of `collection`\n * that `predicate` does **not** return truthy for.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n * @see _.filter\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': false },\n * { 'user': 'fred', 'age': 40, 'active': true }\n * ];\n *\n * _.reject(users, function(o) { return !o.active; });\n * // => objects for ['fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.reject(users, { 'age': 40, 'active': true });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.reject(users, ['active', false]);\n * // => objects for ['fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.reject(users, 'active');\n * // => objects for ['barney']\n */\nfunction reject(collection, predicate) {\n var func = isArray(collection) ? arrayFilter : baseFilter;\n return func(collection, negate(baseIteratee(predicate, 3)));\n}\n\nexport default reject;\n", "import baseKeys from './_baseKeys.js';\nimport getTag from './_getTag.js';\nimport isArrayLike from './isArrayLike.js';\nimport isString from './isString.js';\nimport stringSize from './_stringSize.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n setTag = '[object Set]';\n\n/**\n * Gets the size of `collection` by returning its length for array-like\n * values or the number of own enumerable string keyed properties for objects.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object|string} collection The collection to inspect.\n * @returns {number} Returns the collection size.\n * @example\n *\n * _.size([1, 2, 3]);\n * // => 3\n *\n * _.size({ 'a': 1, 'b': 2 });\n * // => 2\n *\n * _.size('pebbles');\n * // => 7\n */\nfunction size(collection) {\n if (collection == null) {\n return 0;\n }\n if (isArrayLike(collection)) {\n return isString(collection) ? stringSize(collection) : collection.length;\n }\n var tag = getTag(collection);\n if (tag == mapTag || tag == setTag) {\n return collection.size;\n }\n return baseKeys(collection).length;\n}\n\nexport default size;\n", "import baseEach from './_baseEach.js';\n\n/**\n * The base implementation of `_.some` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction baseSome(collection, predicate) {\n var result;\n\n baseEach(collection, function(value, index, collection) {\n result = predicate(value, index, collection);\n return !result;\n });\n return !!result;\n}\n\nexport default baseSome;\n", "import arraySome from './_arraySome.js';\nimport baseIteratee from './_baseIteratee.js';\nimport baseSome from './_baseSome.js';\nimport isArray from './isArray.js';\nimport isIterateeCall from './_isIterateeCall.js';\n\n/**\n * Checks if `predicate` returns truthy for **any** element of `collection`.\n * Iteration is stopped once `predicate` returns truthy. The predicate is\n * invoked with three arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n * @example\n *\n * _.some([null, 0, 'yes', false], Boolean);\n * // => true\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false }\n * ];\n *\n * // The `_.matches` iteratee shorthand.\n * _.some(users, { 'user': 'barney', 'active': false });\n * // => false\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.some(users, ['active', false]);\n * // => true\n *\n * // The `_.property` iteratee shorthand.\n * _.some(users, 'active');\n * // => true\n */\nfunction some(collection, predicate, guard) {\n var func = isArray(collection) ? arraySome : baseSome;\n if (guard && isIterateeCall(collection, predicate, guard)) {\n predicate = undefined;\n }\n return func(collection, baseIteratee(predicate, 3));\n}\n\nexport default some;\n", "import baseFlatten from './_baseFlatten.js';\nimport baseOrderBy from './_baseOrderBy.js';\nimport baseRest from './_baseRest.js';\nimport isIterateeCall from './_isIterateeCall.js';\n\n/**\n * Creates an array of elements, sorted in ascending order by the results of\n * running each element in a collection thru each iteratee. This method\n * performs a stable sort, that is, it preserves the original sort order of\n * equal elements. The iteratees are invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {...(Function|Function[])} [iteratees=[_.identity]]\n * The iteratees to sort by.\n * @returns {Array} Returns the new sorted array.\n * @example\n *\n * var users = [\n * { 'user': 'fred', 'age': 48 },\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 30 },\n * { 'user': 'barney', 'age': 34 }\n * ];\n *\n * _.sortBy(users, [function(o) { return o.user; }]);\n * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 30]]\n *\n * _.sortBy(users, ['user', 'age']);\n * // => objects for [['barney', 34], ['barney', 36], ['fred', 30], ['fred', 48]]\n */\nvar sortBy = baseRest(function(collection, iteratees) {\n if (collection == null) {\n return [];\n }\n var length = iteratees.length;\n if (length > 1 && isIterateeCall(collection, iteratees[0], iteratees[1])) {\n iteratees = [];\n } else if (length > 2 && isIterateeCall(iteratees[0], iteratees[1], iteratees[2])) {\n iteratees = [iteratees[0]];\n }\n return baseOrderBy(collection, baseFlatten(iteratees, 1), []);\n});\n\nexport default sortBy;\n", "import baseUniq from './_baseUniq.js';\n\n/**\n * Creates a duplicate-free version of an array, using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons, in which only the first occurrence of each element\n * is kept. The order of result values is determined by the order they occur\n * in the array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniq([2, 1, 2]);\n * // => [2, 1]\n */\nfunction uniq(array) {\n return (array && array.length) ? baseUniq(array) : [];\n}\n\nexport default uniq;\n", "import baseIteratee from './_baseIteratee.js';\nimport baseUniq from './_baseUniq.js';\n\n/**\n * This method is like `_.uniq` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the criterion by which\n * uniqueness is computed. The order of result values is determined by the\n * order they occur in the array. The iteratee is invoked with one argument:\n * (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniqBy([2.1, 1.2, 2.3], Math.floor);\n * // => [2.1, 1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.uniqBy([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }, { 'x': 2 }]\n */\nfunction uniqBy(array, iteratee) {\n return (array && array.length) ? baseUniq(array, baseIteratee(iteratee, 2)) : [];\n}\n\nexport default uniqBy;\n", "import toString from './toString.js';\n\n/** Used to generate unique IDs. */\nvar idCounter = 0;\n\n/**\n * Generates a unique ID. If `prefix` is given, the ID is appended to it.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {string} [prefix=''] The value to prefix the ID with.\n * @returns {string} Returns the unique ID.\n * @example\n *\n * _.uniqueId('contact_');\n * // => 'contact_104'\n *\n * _.uniqueId();\n * // => '105'\n */\nfunction uniqueId(prefix) {\n var id = ++idCounter;\n return toString(prefix) + id;\n}\n\nexport default uniqueId;\n", "/**\n * This base implementation of `_.zipObject` which assigns values using `assignFunc`.\n *\n * @private\n * @param {Array} props The property identifiers.\n * @param {Array} values The property values.\n * @param {Function} assignFunc The function to assign values.\n * @returns {Object} Returns the new object.\n */\nfunction baseZipObject(props, values, assignFunc) {\n var index = -1,\n length = props.length,\n valsLength = values.length,\n result = {};\n\n while (++index < length) {\n var value = index < valsLength ? values[index] : undefined;\n assignFunc(result, props[index], value);\n }\n return result;\n}\n\nexport default baseZipObject;\n", "import assignValue from './_assignValue.js';\nimport baseZipObject from './_baseZipObject.js';\n\n/**\n * This method is like `_.fromPairs` except that it accepts two arrays,\n * one of property identifiers and one of corresponding values.\n *\n * @static\n * @memberOf _\n * @since 0.4.0\n * @category Array\n * @param {Array} [props=[]] The property identifiers.\n * @param {Array} [values=[]] The property values.\n * @returns {Object} Returns the new object.\n * @example\n *\n * _.zipObject(['a', 'b'], [1, 2]);\n * // => { 'a': 1, 'b': 2 }\n */\nfunction zipObject(props, values) {\n return baseZipObject(props || [], values || [], assignValue);\n}\n\nexport default zipObject;\n"], + "mappings": "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", + "names": ["arrayEach", "array", "iteratee", "index", "length", "arrayEach_default", "keys", "object", "isArrayLike_default", "arrayLikeKeys_default", "baseKeys_default", "keys_default", "baseAssign", "object", "source", "copyObject_default", "keys_default", "baseAssign_default", "baseAssignIn", "object", "source", "copyObject_default", "keysIn_default", "baseAssignIn_default", "arrayFilter", "array", "predicate", "index", "length", "resIndex", "result", "value", "arrayFilter_default", "stubArray", "stubArray_default", "objectProto", "propertyIsEnumerable", "nativeGetSymbols", "getSymbols", "object", "arrayFilter_default", "symbol", "stubArray_default", "getSymbols_default", "copySymbols", "source", "object", "copyObject_default", "getSymbols_default", "copySymbols_default", "arrayPush", "array", "values", "index", "length", "offset", "arrayPush_default", "nativeGetSymbols", "getSymbolsIn", "object", "result", "arrayPush_default", "getSymbols_default", "getPrototype_default", "stubArray_default", "getSymbolsIn_default", "copySymbolsIn", "source", "object", "copyObject_default", "getSymbolsIn_default", "copySymbolsIn_default", "baseGetAllKeys", "object", "keysFunc", "symbolsFunc", "result", "isArray_default", "arrayPush_default", "baseGetAllKeys_default", "getAllKeys", "object", "baseGetAllKeys_default", "keys_default", "getSymbols_default", "getAllKeys_default", "getAllKeysIn", "object", "baseGetAllKeys_default", "keysIn_default", "getSymbolsIn_default", "getAllKeysIn_default", "objectProto", "hasOwnProperty", "initCloneArray", "array", "length", "result", "initCloneArray_default", "cloneDataView", "dataView", "isDeep", "buffer", "cloneArrayBuffer_default", "cloneDataView_default", "reFlags", "cloneRegExp", "regexp", "result", "cloneRegExp_default", "symbolProto", "Symbol_default", "symbolValueOf", "cloneSymbol", "symbol", "cloneSymbol_default", "boolTag", "dateTag", "mapTag", "numberTag", "regexpTag", "setTag", "stringTag", "symbolTag", "arrayBufferTag", "dataViewTag", "float32Tag", "float64Tag", "int8Tag", "int16Tag", "int32Tag", "uint8Tag", "uint8ClampedTag", "uint16Tag", "uint32Tag", "initCloneByTag", "object", "tag", "isDeep", "Ctor", "cloneArrayBuffer_default", "cloneDataView_default", "cloneTypedArray_default", "cloneRegExp_default", "cloneSymbol_default", "initCloneByTag_default", "mapTag", "baseIsMap", "value", "isObjectLike_default", "getTag_default", "baseIsMap_default", "nodeIsMap", "nodeUtil_default", "isMap", "baseUnary_default", "baseIsMap_default", "isMap_default", "setTag", "baseIsSet", "value", "isObjectLike_default", "getTag_default", "baseIsSet_default", "nodeIsSet", "nodeUtil_default", "isSet", "baseUnary_default", "baseIsSet_default", "isSet_default", "CLONE_DEEP_FLAG", "CLONE_FLAT_FLAG", "CLONE_SYMBOLS_FLAG", "argsTag", "arrayTag", "boolTag", "dateTag", "errorTag", "funcTag", "genTag", "mapTag", "numberTag", "objectTag", "regexpTag", "setTag", "stringTag", "symbolTag", "weakMapTag", "arrayBufferTag", "dataViewTag", "float32Tag", "float64Tag", "int8Tag", "int16Tag", "int32Tag", "uint8Tag", "uint8ClampedTag", "uint16Tag", "uint32Tag", "cloneableTags", "baseClone", "value", "bitmask", "customizer", "key", "object", "stack", "result", "isDeep", "isFlat", "isFull", "isObject_default", "isArr", "isArray_default", "initCloneArray_default", "copyArray_default", "tag", "getTag_default", "isFunc", "isBuffer_default", "cloneBuffer_default", "initCloneObject_default", "copySymbolsIn_default", "baseAssignIn_default", "copySymbols_default", "baseAssign_default", "initCloneByTag_default", "Stack_default", "stacked", "isSet_default", "subValue", "isMap_default", "keysFunc", "getAllKeysIn_default", "getAllKeys_default", "keysIn_default", "keys_default", "props", "arrayEach_default", "assignValue_default", "baseClone_default", "CLONE_SYMBOLS_FLAG", "clone", "value", "baseClone_default", "clone_default", "objectProto", "hasOwnProperty", "defaults", "baseRest_default", "object", "sources", "index", "length", "guard", "isIterateeCall_default", "source", "props", "keysIn_default", "propsIndex", "propsLength", "key", "value", "eq_default", "defaults_default", "last", "array", "length", "last_default", "baseForOwn", "object", "iteratee", "baseFor_default", "keys_default", "baseForOwn_default", "createBaseEach", "eachFunc", "fromRight", "collection", "iteratee", "isArrayLike_default", "length", "index", "iterable", "createBaseEach_default", "baseEach", "createBaseEach_default", "baseForOwn_default", "baseEach_default", "castFunction", "value", "identity_default", "castFunction_default", "forEach", "collection", "iteratee", "func", "isArray_default", "arrayEach_default", "baseEach_default", "castFunction_default", "forEach_default", "baseFilter", "collection", "predicate", "result", "baseEach_default", "value", "index", "baseFilter_default", "HASH_UNDEFINED", "setCacheAdd", "value", "setCacheAdd_default", "setCacheHas", "value", "setCacheHas_default", "SetCache", "values", "index", "length", "MapCache_default", "setCacheAdd_default", "setCacheHas_default", "SetCache_default", "arraySome", "array", "predicate", "index", "length", "arraySome_default", "cacheHas", "cache", "key", "cacheHas_default", "COMPARE_PARTIAL_FLAG", "COMPARE_UNORDERED_FLAG", "equalArrays", "array", "other", "bitmask", "customizer", "equalFunc", "stack", "isPartial", "arrLength", "othLength", "arrStacked", "othStacked", "index", "result", "seen", "SetCache_default", "arrValue", "othValue", "compared", "arraySome_default", "othIndex", "cacheHas_default", "equalArrays_default", "mapToArray", "map", "index", "result", "value", "key", "mapToArray_default", "setToArray", "set", "index", "result", "value", "setToArray_default", "COMPARE_PARTIAL_FLAG", "COMPARE_UNORDERED_FLAG", "boolTag", "dateTag", "errorTag", "mapTag", "numberTag", "regexpTag", "setTag", "stringTag", "symbolTag", "arrayBufferTag", "dataViewTag", "symbolProto", "Symbol_default", "symbolValueOf", "equalByTag", "object", "other", "tag", "bitmask", "customizer", "equalFunc", "stack", "Uint8Array_default", "eq_default", "convert", "mapToArray_default", "isPartial", "setToArray_default", "stacked", "result", "equalArrays_default", "equalByTag_default", "COMPARE_PARTIAL_FLAG", "objectProto", "hasOwnProperty", "equalObjects", "object", "other", "bitmask", "customizer", "equalFunc", "stack", "isPartial", "objProps", "getAllKeys_default", "objLength", "othProps", "othLength", "index", "key", "objStacked", "othStacked", "result", "skipCtor", "objValue", "othValue", "compared", "objCtor", "othCtor", "equalObjects_default", "COMPARE_PARTIAL_FLAG", "argsTag", "arrayTag", "objectTag", "objectProto", "hasOwnProperty", "baseIsEqualDeep", "object", "other", "bitmask", "customizer", "equalFunc", "stack", "objIsArr", "isArray_default", "othIsArr", "objTag", "getTag_default", "othTag", "objIsObj", "othIsObj", "isSameTag", "isBuffer_default", "Stack_default", "isTypedArray_default", "equalArrays_default", "equalByTag_default", "objIsWrapped", "othIsWrapped", "objUnwrapped", "othUnwrapped", "equalObjects_default", "baseIsEqualDeep_default", "baseIsEqual", "value", "other", "bitmask", "customizer", "stack", "isObjectLike_default", "baseIsEqualDeep_default", "baseIsEqual_default", "COMPARE_PARTIAL_FLAG", "COMPARE_UNORDERED_FLAG", "baseIsMatch", "object", "source", "matchData", "customizer", "index", "length", "noCustomizer", "data", "key", "objValue", "srcValue", "stack", "Stack_default", "result", "baseIsEqual_default", "baseIsMatch_default", "isStrictComparable", "value", "isObject_default", "isStrictComparable_default", "getMatchData", "object", "result", "keys_default", "length", "key", "value", "isStrictComparable_default", "getMatchData_default", "matchesStrictComparable", "key", "srcValue", "object", "matchesStrictComparable_default", "baseMatches", "source", "matchData", "getMatchData_default", "matchesStrictComparable_default", "object", "baseIsMatch_default", "baseMatches_default", "symbolTag", "isSymbol", "value", "isObjectLike_default", "baseGetTag_default", "isSymbol_default", "reIsDeepProp", "reIsPlainProp", "isKey", "value", "object", "isArray_default", "type", "isSymbol_default", "isKey_default", "MAX_MEMOIZE_SIZE", "memoizeCapped", "func", "result", "memoize_default", "key", "cache", "memoizeCapped_default", "rePropName", "reEscapeChar", "stringToPath", "memoizeCapped_default", "string", "result", "match", "number", "quote", "subString", "stringToPath_default", "arrayMap", "array", "iteratee", "index", "length", "result", "arrayMap_default", "INFINITY", "symbolProto", "Symbol_default", "symbolToString", "baseToString", "value", "isArray_default", "arrayMap_default", "isSymbol_default", "result", "baseToString_default", "toString", "value", "baseToString_default", "toString_default", "castPath", "value", "object", "isArray_default", "isKey_default", "stringToPath_default", "toString_default", "castPath_default", "INFINITY", "toKey", "value", "isSymbol_default", "result", "toKey_default", "baseGet", "object", "path", "castPath_default", "index", "length", "toKey_default", "baseGet_default", "get", "object", "path", "defaultValue", "result", "baseGet_default", "get_default", "baseHasIn", "object", "key", "baseHasIn_default", "hasPath", "object", "path", "hasFunc", "castPath_default", "index", "length", "result", "key", "toKey_default", "isLength_default", "isIndex_default", "isArray_default", "isArguments_default", "hasPath_default", "hasIn", "object", "path", "hasPath_default", "baseHasIn_default", "hasIn_default", "COMPARE_PARTIAL_FLAG", "COMPARE_UNORDERED_FLAG", "baseMatchesProperty", "path", "srcValue", "isKey_default", "isStrictComparable_default", "matchesStrictComparable_default", "toKey_default", "object", "objValue", "get_default", "hasIn_default", "baseIsEqual_default", "baseMatchesProperty_default", "baseProperty", "key", "object", "baseProperty_default", "basePropertyDeep", "path", "object", "baseGet_default", "basePropertyDeep_default", "property", "path", "isKey_default", "baseProperty_default", "toKey_default", "basePropertyDeep_default", "property_default", "baseIteratee", "value", "identity_default", "isArray_default", "baseMatchesProperty_default", "baseMatches_default", "property_default", "baseIteratee_default", "filter", "collection", "predicate", "func", "isArray_default", "arrayFilter_default", "baseFilter_default", "baseIteratee_default", "filter_default", "baseMap", "collection", "iteratee", "index", "result", "isArrayLike_default", "baseEach_default", "value", "key", "baseMap_default", "map", "collection", "iteratee", "func", "isArray_default", "arrayMap_default", "baseMap_default", "baseIteratee_default", "map_default", "baseValues", "object", "props", "arrayMap_default", "key", "baseValues_default", "values", "object", "baseValues_default", "keys_default", "values_default", "isUndefined", "value", "isUndefined_default", "mapValues", "object", "iteratee", "result", "baseIteratee_default", "baseForOwn_default", "value", "key", "baseAssignValue_default", "mapValues_default", "baseExtremum", "array", "iteratee", "comparator", "index", "length", "value", "current", "computed", "isSymbol_default", "result", "baseExtremum_default", "baseGt", "value", "other", "baseGt_default", "max", "array", "baseExtremum_default", "identity_default", "baseGt_default", "max_default", "baseSet", "object", "path", "value", "customizer", "isObject_default", "castPath_default", "index", "length", "lastIndex", "nested", "key", "toKey_default", "newValue", "objValue", "isIndex_default", "assignValue_default", "baseSet_default", "basePickBy", "object", "paths", "predicate", "index", "length", "result", "path", "value", "baseGet_default", "baseSet_default", "castPath_default", "basePickBy_default", "basePick", "object", "paths", "basePickBy_default", "value", "path", "hasIn_default", "basePick_default", "spreadableSymbol", "Symbol_default", "isFlattenable", "value", "isArray_default", "isArguments_default", "isFlattenable_default", "baseFlatten", "array", "depth", "predicate", "isStrict", "result", "index", "length", "isFlattenable_default", "value", "arrayPush_default", "baseFlatten_default", "flatten", "array", "length", "baseFlatten_default", "flatten_default", "flatRest", "func", "setToString_default", "overRest_default", "flatten_default", "flatRest_default", "pick", "flatRest_default", "object", "paths", "basePick_default", "pick_default", "arrayReduce", "array", "iteratee", "accumulator", "initAccum", "index", "length", "arrayReduce_default", "baseReduce", "collection", "iteratee", "accumulator", "initAccum", "eachFunc", "value", "index", "baseReduce_default", "reduce", "collection", "iteratee", "accumulator", "func", "isArray_default", "arrayReduce_default", "baseReduce_default", "initAccum", "baseIteratee_default", "baseEach_default", "reduce_default", "baseFindIndex", "array", "predicate", "fromIndex", "fromRight", "length", "index", "baseFindIndex_default", "baseIsNaN", "value", "baseIsNaN_default", "strictIndexOf", "array", "value", "fromIndex", "index", "length", "strictIndexOf_default", "baseIndexOf", "array", "value", "fromIndex", "strictIndexOf_default", "baseFindIndex_default", "baseIsNaN_default", "baseIndexOf_default", "arrayIncludes", "array", "value", "length", "baseIndexOf_default", "arrayIncludes_default", "arrayIncludesWith", "array", "value", "comparator", "index", "length", "arrayIncludesWith_default", "noop", "noop_default", "INFINITY", "createSet", "Set_default", "setToArray_default", "values", "noop_default", "createSet_default", "LARGE_ARRAY_SIZE", "baseUniq", "array", "iteratee", "comparator", "index", "includes", "arrayIncludes_default", "length", "isCommon", "result", "seen", "arrayIncludesWith_default", "set", "createSet_default", "setToArray_default", "cacheHas_default", "SetCache_default", "outer", "value", "computed", "seenIndex", "baseUniq_default", "union", "baseRest_default", "arrays", "baseUniq_default", "baseFlatten_default", "isArrayLikeObject_default", "union_default", "reWhitespace", "trimmedEndIndex", "string", "index", "trimmedEndIndex_default", "reTrimStart", "baseTrim", "string", "trimmedEndIndex_default", "baseTrim_default", "NAN", "reIsBadHex", "reIsBinary", "reIsOctal", "freeParseInt", "toNumber", "value", "isSymbol_default", "isObject_default", "other", "baseTrim_default", "isBinary", "toNumber_default", "INFINITY", "MAX_INTEGER", "toFinite", "value", "toNumber_default", "sign", "toFinite_default", "toInteger", "value", "result", "toFinite_default", "remainder", "toInteger_default", "objectProto", "hasOwnProperty", "assign", "createAssigner_default", "object", "source", "isPrototype_default", "isArrayLike_default", "copyObject_default", "keys_default", "key", "assignValue_default", "assign_default", "baseSlice", "array", "start", "end", "index", "length", "result", "baseSlice_default", "rsAstralRange", "rsComboMarksRange", "reComboHalfMarksRange", "rsComboSymbolsRange", "rsComboRange", "rsVarRange", "rsZWJ", "reHasUnicode", "hasUnicode", "string", "hasUnicode_default", "CLONE_DEEP_FLAG", "CLONE_SYMBOLS_FLAG", "cloneDeep", "value", "baseClone_default", "cloneDeep_default", "compact", "array", "index", "length", "resIndex", "result", "value", "compact_default", "arrayAggregator", "array", "setter", "iteratee", "accumulator", "index", "length", "value", "arrayAggregator_default", "baseAggregator", "collection", "setter", "iteratee", "accumulator", "baseEach_default", "value", "key", "baseAggregator_default", "createAggregator", "setter", "initializer", "collection", "iteratee", "func", "isArray_default", "arrayAggregator_default", "baseAggregator_default", "accumulator", "baseIteratee_default", "createAggregator_default", "now", "root_default", "now_default", "LARGE_ARRAY_SIZE", "baseDifference", "array", "values", "iteratee", "comparator", "index", "includes", "arrayIncludes_default", "isCommon", "length", "result", "valuesLength", "arrayMap_default", "baseUnary_default", "arrayIncludesWith_default", "cacheHas_default", "SetCache_default", "outer", "value", "computed", "valuesIndex", "baseDifference_default", "difference", "baseRest_default", "array", "values", "isArrayLikeObject_default", "baseDifference_default", "baseFlatten_default", "difference_default", "drop", "array", "n", "guard", "length", "toInteger_default", "baseSlice_default", "drop_default", "dropRight", "array", "n", "guard", "length", "toInteger_default", "baseSlice_default", "dropRight_default", "arrayEvery", "array", "predicate", "index", "length", "arrayEvery_default", "baseEvery", "collection", "predicate", "result", "baseEach_default", "value", "index", "baseEvery_default", "every", "collection", "predicate", "guard", "func", "isArray_default", "arrayEvery_default", "baseEvery_default", "isIterateeCall_default", "baseIteratee_default", "every_default", "createFind", "findIndexFunc", "collection", "predicate", "fromIndex", "iterable", "isArrayLike_default", "iteratee", "baseIteratee_default", "keys_default", "key", "index", "createFind_default", "nativeMax", "findIndex", "array", "predicate", "fromIndex", "length", "index", "toInteger_default", "baseFindIndex_default", "baseIteratee_default", "findIndex_default", "find", "createFind_default", "findIndex_default", "find_default", "head", "array", "head_default", "flatMap", "collection", "iteratee", "baseFlatten_default", "map_default", "flatMap_default", "forIn", "object", "iteratee", "baseFor_default", "castFunction_default", "keysIn_default", "forIn_default", "forOwn", "object", "iteratee", "baseForOwn_default", "castFunction_default", "forOwn_default", "objectProto", "hasOwnProperty", "groupBy", "createAggregator_default", "result", "value", "key", "baseAssignValue_default", "groupBy_default", "objectProto", "hasOwnProperty", "baseHas", "object", "key", "baseHas_default", "has", "object", "path", "hasPath_default", "baseHas_default", "has_default", "stringTag", "isString", "value", "isArray_default", "isObjectLike_default", "baseGetTag_default", "isString_default", "nativeMax", "includes", "collection", "value", "fromIndex", "guard", "isArrayLike_default", "values_default", "toInteger_default", "length", "isString_default", "baseIndexOf_default", "includes_default", "nativeMax", "indexOf", "array", "value", "fromIndex", "length", "index", "toInteger_default", "baseIndexOf_default", "indexOf_default", "regexpTag", "baseIsRegExp", "value", "isObjectLike_default", "baseGetTag_default", "baseIsRegExp_default", "nodeIsRegExp", "nodeUtil_default", "isRegExp", "baseUnary_default", "baseIsRegExp_default", "isRegExp_default", "baseLt", "value", "other", "baseLt_default", "min", "array", "baseExtremum_default", "identity_default", "baseLt_default", "min_default", "minBy", "array", "iteratee", "baseExtremum_default", "baseIteratee_default", "baseLt_default", "minBy_default", "FUNC_ERROR_TEXT", "negate", "predicate", "args", "negate_default", "pickBy", "object", "predicate", "props", "arrayMap_default", "getAllKeysIn_default", "prop", "baseIteratee_default", "basePickBy_default", "value", "path", "pickBy_default", "baseSortBy", "array", "comparer", "length", "baseSortBy_default", "compareAscending", "value", "other", "valIsDefined", "valIsNull", "valIsReflexive", "valIsSymbol", "isSymbol_default", "othIsDefined", "othIsNull", "othIsReflexive", "othIsSymbol", "compareAscending_default", "compareMultiple", "object", "other", "orders", "index", "objCriteria", "othCriteria", "length", "ordersLength", "result", "compareAscending_default", "order", "compareMultiple_default", "baseOrderBy", "collection", "iteratees", "orders", "arrayMap_default", "iteratee", "isArray_default", "value", "baseGet_default", "identity_default", "index", "baseUnary_default", "baseIteratee_default", "result", "baseMap_default", "key", "criteria", "baseSortBy_default", "object", "other", "compareMultiple_default", "baseOrderBy_default", "asciiSize", "baseProperty_default", "asciiSize_default", "rsAstralRange", "rsComboMarksRange", "reComboHalfMarksRange", "rsComboSymbolsRange", "rsComboRange", "rsVarRange", "rsAstral", "rsCombo", "rsFitz", "rsModifier", "rsNonAstral", "rsRegional", "rsSurrPair", "rsZWJ", "reOptMod", "rsOptVar", "rsOptJoin", "rsSeq", "rsSymbol", "reUnicode", "unicodeSize", "string", "result", "unicodeSize_default", "stringSize", "string", "hasUnicode_default", "unicodeSize_default", "asciiSize_default", "stringSize_default", "nativeCeil", "nativeMax", "baseRange", "start", "end", "step", "fromRight", "index", "length", "result", "baseRange_default", "createRange", "fromRight", "start", "end", "step", "isIterateeCall_default", "toFinite_default", "baseRange_default", "createRange_default", "range", "createRange_default", "range_default", "reject", "collection", "predicate", "func", "isArray_default", "arrayFilter_default", "baseFilter_default", "negate_default", "baseIteratee_default", "reject_default", "mapTag", "setTag", "size", "collection", "isArrayLike_default", "isString_default", "stringSize_default", "tag", "getTag_default", "baseKeys_default", "size_default", "baseSome", "collection", "predicate", "result", "baseEach_default", "value", "index", "baseSome_default", "some", "collection", "predicate", "guard", "func", "isArray_default", "arraySome_default", "baseSome_default", "isIterateeCall_default", "baseIteratee_default", "some_default", "sortBy", "baseRest_default", "collection", "iteratees", "length", "isIterateeCall_default", "baseOrderBy_default", "baseFlatten_default", "sortBy_default", "uniq", "array", "baseUniq_default", "uniq_default", "uniqBy", "array", "iteratee", "baseUniq_default", "baseIteratee_default", "uniqBy_default", "idCounter", "uniqueId", "prefix", "id", "toString_default", "uniqueId_default", "baseZipObject", "props", "values", "assignFunc", "index", "length", "valsLength", "result", "value", "baseZipObject_default", "zipObject", "props", "values", "baseZipObject_default", "assignValue_default", "zipObject_default"] +} diff --git a/docs/_site/public/chunk-UEFJDIUO.min.js b/docs/_site/public/chunk-UEFJDIUO.min.js new file mode 100644 index 0000000..0e249a8 --- /dev/null +++ b/docs/_site/public/chunk-UEFJDIUO.min.js @@ -0,0 +1,2 @@ +import{a as i,b as o,c as t,d as n,e as c,f as e,g as u,l as d,n as l,o as s}from"./chunk-BIJFJY5F.min.js";var p=class extends s{static{e(this,"GitGraphTokenBuilder")}constructor(){super(["gitGraph"])}},h={parser:{TokenBuilder:e(()=>new p,"TokenBuilder"),ValueConverter:e(()=>new l,"ValueConverter")}};function m(G=n){let r=t(o(G),u),a=t(i({shared:r}),d,h);return r.ServiceRegistry.register(a),{shared:r,GitGraph:a}}e(m,"createGitGraphServices");export{h as a,m as b}; +//# sourceMappingURL=chunk-UEFJDIUO.min.js.map diff --git a/docs/_site/public/chunk-UEFJDIUO.min.js.map b/docs/_site/public/chunk-UEFJDIUO.min.js.map new file mode 100644 index 0000000..54bf9e1 --- /dev/null +++ b/docs/_site/public/chunk-UEFJDIUO.min.js.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": ["../../node_modules/@mermaid-js/parser/dist/chunks/mermaid-parser.core/chunk-NCMFTTUW.mjs"], + "sourcesContent": ["import {\n AbstractMermaidTokenBuilder,\n CommonValueConverter,\n GitGraphGeneratedModule,\n MermaidGeneratedSharedModule,\n __name\n} from \"./chunk-Y27MQZ3U.mjs\";\n\n// src/language/gitGraph/module.ts\nimport {\n inject,\n createDefaultCoreModule,\n createDefaultSharedCoreModule,\n EmptyFileSystem\n} from \"langium\";\n\n// src/language/gitGraph/tokenBuilder.ts\nvar GitGraphTokenBuilder = class extends AbstractMermaidTokenBuilder {\n static {\n __name(this, \"GitGraphTokenBuilder\");\n }\n constructor() {\n super([\"gitGraph\"]);\n }\n};\n\n// src/language/gitGraph/module.ts\nvar GitGraphModule = {\n parser: {\n TokenBuilder: /* @__PURE__ */ __name(() => new GitGraphTokenBuilder(), \"TokenBuilder\"),\n ValueConverter: /* @__PURE__ */ __name(() => new CommonValueConverter(), \"ValueConverter\")\n }\n};\nfunction createGitGraphServices(context = EmptyFileSystem) {\n const shared = inject(\n createDefaultSharedCoreModule(context),\n MermaidGeneratedSharedModule\n );\n const GitGraph = inject(\n createDefaultCoreModule({ shared }),\n GitGraphGeneratedModule,\n GitGraphModule\n );\n shared.ServiceRegistry.register(GitGraph);\n return { shared, GitGraph };\n}\n__name(createGitGraphServices, \"createGitGraphServices\");\n\nexport {\n GitGraphModule,\n createGitGraphServices\n};\n"], + "mappings": "2GAiBA,IAAIA,EAAuB,cAAcC,CAA4B,CACnE,MAAO,CACLC,EAAO,KAAM,sBAAsB,CACrC,CACA,aAAc,CACZ,MAAM,CAAC,UAAU,CAAC,CACpB,CACF,EAGIC,EAAiB,CACnB,OAAQ,CACN,aAA8BD,EAAO,IAAM,IAAIF,EAAwB,cAAc,EACrF,eAAgCE,EAAO,IAAM,IAAIE,EAAwB,gBAAgB,CAC3F,CACF,EACA,SAASC,EAAuBC,EAAUC,EAAiB,CACzD,IAAMC,EAASC,EACbC,EAA8BJ,CAAO,EACrCK,CACF,EACMC,EAAWH,EACfI,EAAwB,CAAE,OAAAL,CAAO,CAAC,EAClCM,EACAX,CACF,EACA,OAAAK,EAAO,gBAAgB,SAASI,CAAQ,EACjC,CAAE,OAAAJ,EAAQ,SAAAI,CAAS,CAC5B,CACAV,EAAOG,EAAwB,wBAAwB", + "names": ["GitGraphTokenBuilder", "AbstractMermaidTokenBuilder", "__name", "GitGraphModule", "CommonValueConverter", "createGitGraphServices", "context", "EmptyFileSystem", "shared", "inject", "createDefaultSharedCoreModule", "MermaidGeneratedSharedModule", "GitGraph", "createDefaultCoreModule", "GitGraphGeneratedModule"] +} diff --git a/docs/_site/public/chunk-V55NTXQN.min.js b/docs/_site/public/chunk-V55NTXQN.min.js new file mode 100644 index 0000000..245d904 --- /dev/null +++ b/docs/_site/public/chunk-V55NTXQN.min.js @@ -0,0 +1,2 @@ +import{h as i}from"./chunk-U3SD26FK.min.js";var o=i(({flowchart:t})=>{let r=t?.subGraphTitleMargin?.top??0,a=t?.subGraphTitleMargin?.bottom??0,e=r+a;return{subGraphTitleTopMargin:r,subGraphTitleBottomMargin:a,subGraphTitleTotalMargin:e}},"getSubGraphTitleMargins");export{o as a}; +//# sourceMappingURL=chunk-V55NTXQN.min.js.map diff --git a/docs/_site/public/chunk-V55NTXQN.min.js.map b/docs/_site/public/chunk-V55NTXQN.min.js.map new file mode 100644 index 0000000..64f07c1 --- /dev/null +++ b/docs/_site/public/chunk-V55NTXQN.min.js.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": ["../../node_modules/mermaid/dist/chunks/mermaid.core/chunk-3X56UNUX.mjs"], + "sourcesContent": ["import {\n __name\n} from \"./chunk-6DBFFHIP.mjs\";\n\n// src/utils/subGraphTitleMargins.ts\nvar getSubGraphTitleMargins = /* @__PURE__ */ __name(({\n flowchart\n}) => {\n const subGraphTitleTopMargin = flowchart?.subGraphTitleMargin?.top ?? 0;\n const subGraphTitleBottomMargin = flowchart?.subGraphTitleMargin?.bottom ?? 0;\n const subGraphTitleTotalMargin = subGraphTitleTopMargin + subGraphTitleBottomMargin;\n return {\n subGraphTitleTopMargin,\n subGraphTitleBottomMargin,\n subGraphTitleTotalMargin\n };\n}, \"getSubGraphTitleMargins\");\n\nexport {\n getSubGraphTitleMargins\n};\n"], + "mappings": "4CAKA,IAAIA,EAA0CC,EAAO,CAAC,CACpD,UAAAC,CACF,IAAM,CACJ,IAAMC,EAAyBD,GAAW,qBAAqB,KAAO,EAChEE,EAA4BF,GAAW,qBAAqB,QAAU,EACtEG,EAA2BF,EAAyBC,EAC1D,MAAO,CACL,uBAAAD,EACA,0BAAAC,EACA,yBAAAC,CACF,CACF,EAAG,yBAAyB", + "names": ["getSubGraphTitleMargins", "__name", "flowchart", "subGraphTitleTopMargin", "subGraphTitleBottomMargin", "subGraphTitleTotalMargin"] +} diff --git a/docs/_site/public/chunk-WMZJ2DJX.min.js b/docs/_site/public/chunk-WMZJ2DJX.min.js new file mode 100644 index 0000000..e3e2322 --- /dev/null +++ b/docs/_site/public/chunk-WMZJ2DJX.min.js @@ -0,0 +1,25 @@ +function We(r){"@babel/helpers - typeof";return We=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},We(r)}function ai(r,e){if(!(r instanceof e))throw new TypeError("Cannot call a class as a function")}function Li(r,e){for(var t=0;tr.length)&&(e=r.length);for(var t=0,a=new Array(e);t=r.length?{done:!0}:{done:!1,value:r[a++]}},e:function(l){throw l},f:n}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var i=!0,s=!1,o;return{s:function(){t=t.call(r)},n:function(){var l=t.next();return i=l.done,l},e:function(l){s=!0,o=l},f:function(){try{!i&&t.return!=null&&t.return()}finally{if(s)throw o}}}}var Ge=typeof window>"u"?null:window,Ri=Ge?Ge.navigator:null;Ge&&Ge.document;var Gu=We(""),Xs=We({}),Ku=We(function(){}),Wu=typeof HTMLElement>"u"?"undefined":We(HTMLElement),ba=function(e){return e&&e.instanceString&&Fe(e.instanceString)?e.instanceString():null},de=function(e){return e!=null&&We(e)==Gu},Fe=function(e){return e!=null&&We(e)===Ku},Re=function(e){return!gr(e)&&(Array.isArray?Array.isArray(e):e!=null&&e instanceof Array)},Se=function(e){return e!=null&&We(e)===Xs&&!Re(e)&&e.constructor===Object},Uu=function(e){return e!=null&&We(e)===Xs},ne=function(e){return e!=null&&We(e)===We(1)&&!isNaN(e)},Yu=function(e){return ne(e)&&Math.floor(e)===e},Qa=function(e){if(Wu!=="undefined")return e!=null&&e instanceof HTMLElement},gr=function(e){return wa(e)||Zs(e)},wa=function(e){return ba(e)==="collection"&&e._private.single},Zs=function(e){return ba(e)==="collection"&&!e._private.single},ii=function(e){return ba(e)==="core"},Qs=function(e){return ba(e)==="stylesheet"},Xu=function(e){return ba(e)==="event"},Jr=function(e){return e==null?!0:!!(e===""||e.match(/^\s+$/))},Zu=function(e){return typeof HTMLElement>"u"?!1:e instanceof HTMLElement},Qu=function(e){return Se(e)&&ne(e.x1)&&ne(e.x2)&&ne(e.y1)&&ne(e.y2)},Ju=function(e){return Uu(e)&&Fe(e.then)},_u=function(){return Ri&&Ri.userAgent.match(/msie|trident|edge/i)},ua=function(e,t){t||(t=function(){if(arguments.length===1)return arguments[0];if(arguments.length===0)return"undefined";for(var i=[],s=0;st?1:0},il=function(e,t){return-1*_s(e,t)},be=Object.assign!=null?Object.assign.bind(Object):function(r){for(var e=arguments,t=1;t1&&(p-=1),p<1/6?d+(y-d)*6*p:p<1/2?y:p<2/3?d+(y-d)*(2/3-p)*6:d}var f=new RegExp("^"+rl+"$").exec(e);if(f){if(a=parseInt(f[1]),a<0?a=(360- -1*a%360)%360:a>360&&(a=a%360),a/=360,n=parseFloat(f[2]),n<0||n>100||(n=n/100,i=parseFloat(f[3]),i<0||i>100)||(i=i/100,s=f[4],s!==void 0&&(s=parseFloat(s),s<0||s>1)))return;if(n===0)o=l=u=Math.round(i*255);else{var c=i<.5?i*(1+n):i+n-i*n,h=2*i-c;o=Math.round(255*v(h,c,a+1/3)),l=Math.round(255*v(h,c,a)),u=Math.round(255*v(h,c,a-1/3))}t=[o,l,u,s]}return t},ul=function(e){var t,a=new RegExp("^"+ju+"$").exec(e);if(a){t=[];for(var n=[],i=1;i<=3;i++){var s=a[i];if(s[s.length-1]==="%"&&(n[i]=!0),s=parseFloat(s),n[i]&&(s=s/100*255),s<0||s>255)return;t.push(Math.floor(s))}var o=n[1]||n[2]||n[3],l=n[1]&&n[2]&&n[3];if(o&&!l)return;var u=a[4];if(u!==void 0){if(u=parseFloat(u),u<0||u>1)return;t.push(u)}}return t},ll=function(e){return fl[e.toLowerCase()]},vl=function(e){return(Re(e)?e:null)||ll(e)||sl(e)||ul(e)||ol(e)},fl={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]},js=function(e){for(var t=e.map,a=e.keys,n=a.length,i=0;i=e||x<0||f&&D>=i}function g(){var E=Pn();if(p(E))return m(E);o=setTimeout(g,y(E))}function m(E){return o=void 0,c&&a?h(E):(a=n=void 0,s)}function b(){o!==void 0&&clearTimeout(o),u=0,a=l=n=o=void 0}function w(){return o===void 0?s:m(Pn())}function S(){var E=Pn(),x=p(E);if(a=arguments,n=this,l=E,x){if(o===void 0)return d(l);if(f)return clearTimeout(o),o=setTimeout(g,e),h(l)}return o===void 0&&(o=setTimeout(g,e)),s}return S.cancel=b,S.flush=w,S}var vn=Zl,Bn=Ge?Ge.performance:null,ao=Bn&&Bn.now?function(){return Bn.now()}:function(){return Date.now()},Ql=function(){if(Ge){if(Ge.requestAnimationFrame)return function(r){Ge.requestAnimationFrame(r)};if(Ge.mozRequestAnimationFrame)return function(r){Ge.mozRequestAnimationFrame(r)};if(Ge.webkitRequestAnimationFrame)return function(r){Ge.webkitRequestAnimationFrame(r)};if(Ge.msRequestAnimationFrame)return function(r){Ge.msRequestAnimationFrame(r)}}return function(r){r&&setTimeout(function(){r(ao())},1e3/60)}}(),Ja=function(e){return Ql(e)},qr=ao,Dt=9261,no=65599,ta=5381,io=function(e){for(var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Dt,a=t,n;n=e.next(),!n.done;)a=a*no+n.value|0;return a},la=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Dt;return t*no+e|0},va=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:ta;return(t<<5)+t+e|0},Jl=function(e,t){return e*2097152+t},Wr=function(e){return e[0]*2097152+e[1]},Ba=function(e,t){return[la(e[0],t[0]),va(e[1],t[1])]},_l=function(e,t){var a={value:0,done:!1},n=0,i=e.length,s={next:function(){return n=0&&!(e[n]===t&&(e.splice(n,1),a));n--);},li=function(e){e.splice(0,e.length)},iv=function(e,t){for(var a=0;a"u"?"undefined":We(Set))!==ov?Set:uv,fn=function(e,t){var a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(e===void 0||t===void 0||!ii(e)){Ve("An element must have a core reference and parameters set");return}var n=t.group;if(n==null&&(t.data&&t.data.source!=null&&t.data.target!=null?n="edges":n="nodes"),n!=="nodes"&&n!=="edges"){Ve("An element must be of type `nodes` or `edges`; you specified `"+n+"`");return}this.length=1,this[0]=this;var i=this._private={cy:e,single:!0,data:t.data||{},position:t.position||{x:0,y:0},autoWidth:void 0,autoHeight:void 0,autoPadding:void 0,compoundBoundsClean:!1,listeners:[],group:n,style:{},rstyle:{},styleCxts:[],styleKeys:{},removed:!0,selected:!!t.selected,selectable:t.selectable===void 0?!0:!!t.selectable,locked:!!t.locked,grabbed:!1,grabbable:t.grabbable===void 0?!0:!!t.grabbable,pannable:t.pannable===void 0?n==="edges":!!t.pannable,active:!1,classes:new Ft,animation:{current:[],queue:[]},rscratch:{},scratch:t.scratch||{},edges:[],children:[],parent:t.parent&&t.parent.isNode()?t.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(i.position.x==null&&(i.position.x=0),i.position.y==null&&(i.position.y=0),t.renderedPosition){var s=t.renderedPosition,o=e.pan(),l=e.zoom();i.position={x:(s.x-o.x)/l,y:(s.y-o.y)/l}}var u=[];Re(t.classes)?u=t.classes:de(t.classes)&&(u=t.classes.split(/\s+/));for(var v=0,f=u.length;vm?1:0},v=function(g,m,b,w,S){var E;if(b==null&&(b=0),S==null&&(S=a),b<0)throw new Error("lo must be non-negative");for(w==null&&(w=g.length);bM;0<=M?C++:C--)D.push(C);return D}.apply(this).reverse(),x=[],w=0,S=E.length;wP;0<=P?++D:--D)B.push(s(g,b));return B},y=function(g,m,b,w){var S,E,x;for(w==null&&(w=a),S=g[b];b>m;){if(x=b-1>>1,E=g[x],w(S,E)<0){g[b]=E,b=x;continue}break}return g[b]=S},p=function(g,m,b){var w,S,E,x,D;for(b==null&&(b=a),S=g.length,D=m,E=g[m],w=2*m+1;w0;){var E=m.pop(),x=p(E),D=E.id();if(c[D]=x,x!==1/0)for(var C=E.neighborhood().intersect(d),M=0;M0)for(I.unshift(R);f[$];){var F=f[$];I.unshift(F.edge),I.unshift(F.node),q=F.node,$=q.id()}return o.spawn(I)}}}},cv={kruskal:function(e){e=e||function(b){return 1};for(var t=this.byGroup(),a=t.nodes,n=t.edges,i=a.length,s=new Array(i),o=a,l=function(w){for(var S=0;S0;){if(S(),x++,w===v){for(var D=[],C=i,M=v,P=g[M];D.unshift(C),P!=null&&D.unshift(P),C=p[M],C!=null;)M=C.id(),P=g[M];return{found:!0,distance:f[w],path:this.spawn(D),steps:x}}h[w]=!0;for(var B=b._private.edges,L=0;LP&&(d[M]=P,m[M]=C,b[M]=S),!i){var B=C*v+D;!i&&d[B]>P&&(d[B]=P,m[B]=D,b[B]=S)}}}for(var L=0;L1&&arguments[1]!==void 0?arguments[1]:s,Pe=b(ve),Ee=[],xe=Pe;;){if(xe==null)return t.spawn();var Te=m(xe),J=Te.edge,T=Te.pred;if(Ee.unshift(xe[0]),xe.same(pe)&&Ee.length>0)break;J!=null&&Ee.unshift(J),xe=T}return l.spawn(Ee)},E=0;E=0;v--){var f=u[v],c=f[1],h=f[2];(t[c]===o&&t[h]===l||t[c]===l&&t[h]===o)&&u.splice(v,1)}for(var d=0;dn;){var i=Math.floor(Math.random()*t.length);t=wv(i,e,t),a--}return t},xv={kargerStein:function(){var e=this,t=this.byGroup(),a=t.nodes,n=t.edges;n.unmergeBy(function(I){return I.isLoop()});var i=a.length,s=n.length,o=Math.ceil(Math.pow(Math.log(i)/Math.LN2,2)),l=Math.floor(i/bv);if(i<2){Ve("At least 2 nodes are required for Karger-Stein algorithm");return}for(var u=[],v=0;v1&&arguments[1]!==void 0?arguments[1]:0,a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:e.length,n=1/0,i=t;i1&&arguments[1]!==void 0?arguments[1]:0,a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:e.length,n=-1/0,i=t;i1&&arguments[1]!==void 0?arguments[1]:0,a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:e.length,n=0,i=0,s=t;s1&&arguments[1]!==void 0?arguments[1]:0,a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:e.length,n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0,i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,s=arguments.length>5&&arguments[5]!==void 0?arguments[5]:!0;n?e=e.slice(t,a):(a0&&e.splice(0,t));for(var o=0,l=e.length-1;l>=0;l--){var u=e[l];s?isFinite(u)||(e[l]=-1/0,o++):e.splice(l,1)}i&&e.sort(function(c,h){return c-h});var v=e.length,f=Math.floor(v/2);return v%2!==0?e[f+1+o]:(e[f-1+o]+e[f+o])/2},kv=function(e){return Math.PI*e/180},Ma=function(e,t){return Math.atan2(t,e)-Math.PI/2},vi=Math.log2||function(r){return Math.log(r)/Math.log(2)},co=function(e){return e>0?1:e<0?-1:0},dt=function(e,t){return Math.sqrt(st(e,t))},st=function(e,t){var a=t.x-e.x,n=t.y-e.y;return a*a+n*n},Pv=function(e){for(var t=e.length,a=0,n=0;n=e.x1&&e.y2>=e.y1)return{x1:e.x1,y1:e.y1,x2:e.x2,y2:e.y2,w:e.x2-e.x1,h:e.y2-e.y1};if(e.w!=null&&e.h!=null&&e.w>=0&&e.h>=0)return{x1:e.x1,y1:e.y1,x2:e.x1+e.w,y2:e.y1+e.h,w:e.w,h:e.h}}},Mv=function(e){return{x1:e.x1,x2:e.x2,w:e.w,y1:e.y1,y2:e.y2,h:e.h}},Lv=function(e){e.x1=1/0,e.y1=1/0,e.x2=-1/0,e.y2=-1/0,e.w=0,e.h=0},Av=function(e,t,a){return{x1:e.x1+t,x2:e.x2+t,y1:e.y1+a,y2:e.y2+a,w:e.w,h:e.h}},ho=function(e,t){e.x1=Math.min(e.x1,t.x1),e.x2=Math.max(e.x2,t.x2),e.w=e.x2-e.x1,e.y1=Math.min(e.y1,t.y1),e.y2=Math.max(e.y2,t.y2),e.h=e.y2-e.y1},Rv=function(e,t,a){e.x1=Math.min(e.x1,t),e.x2=Math.max(e.x2,t),e.w=e.x2-e.x1,e.y1=Math.min(e.y1,a),e.y2=Math.max(e.y2,a),e.h=e.y2-e.y1},$a=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return e.x1-=t,e.x2+=t,e.y1-=t,e.y2+=t,e.w=e.x2-e.x1,e.h=e.y2-e.y1,e},Ha=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[0],a,n,i,s;if(t.length===1)a=n=i=s=t[0];else if(t.length===2)a=i=t[0],s=n=t[1];else if(t.length===4){var o=Tr(t,4);a=o[0],n=o[1],i=o[2],s=o[3]}return e.x1-=s,e.x2+=n,e.y1-=a,e.y2+=i,e.w=e.x2-e.x1,e.h=e.y2-e.y1,e},$i=function(e,t){e.x1=t.x1,e.y1=t.y1,e.x2=t.x2,e.y2=t.y2,e.w=e.x2-e.x1,e.h=e.y2-e.y1},fi=function(e,t){return!(e.x1>t.x2||t.x1>e.x2||e.x2t.y2||t.y1>e.y2)},Ot=function(e,t,a){return e.x1<=t&&t<=e.x2&&e.y1<=a&&a<=e.y2},Ov=function(e,t){return Ot(e,t.x,t.y)},go=function(e,t){return Ot(e,t.x1,t.y1)&&Ot(e,t.x2,t.y2)},po=function(e,t,a,n,i,s,o){var l=arguments.length>7&&arguments[7]!==void 0?arguments[7]:"auto",u=l==="auto"?ht(i,s):l,v=i/2,f=s/2;u=Math.min(u,v,f);var c=u!==v,h=u!==f,d;if(c){var y=a-v+u-o,p=n-f-o,g=a+v-u+o,m=p;if(d=Xr(e,t,a,n,y,p,g,m,!1),d.length>0)return d}if(h){var b=a+v+o,w=n-f+u-o,S=b,E=n+f-u+o;if(d=Xr(e,t,a,n,b,w,S,E,!1),d.length>0)return d}if(c){var x=a-v+u-o,D=n+f+o,C=a+v-u+o,M=D;if(d=Xr(e,t,a,n,x,D,C,M,!1),d.length>0)return d}if(h){var P=a-v-o,B=n-f+u-o,L=P,k=n+f-u+o;if(d=Xr(e,t,a,n,P,B,L,k,!1),d.length>0)return d}var O;{var A=a-v+u,R=n-f+u;if(O=aa(e,t,a,n,A,R,u+o),O.length>0&&O[0]<=A&&O[1]<=R)return[O[0],O[1]]}{var I=a+v-u,q=n-f+u;if(O=aa(e,t,a,n,I,q,u+o),O.length>0&&O[0]>=I&&O[1]<=q)return[O[0],O[1]]}{var $=a+v-u,F=n+f-u;if(O=aa(e,t,a,n,$,F,u+o),O.length>0&&O[0]>=$&&O[1]>=F)return[O[0],O[1]]}{var N=a-v+u,W=n+f-u;if(O=aa(e,t,a,n,N,W,u+o),O.length>0&&O[0]<=N&&O[1]>=W)return[O[0],O[1]]}return[]},Iv=function(e,t,a,n,i,s,o){var l=o,u=Math.min(a,i),v=Math.max(a,i),f=Math.min(n,s),c=Math.max(n,s);return u-l<=e&&e<=v+l&&f-l<=t&&t<=c+l},zv=function(e,t,a,n,i,s,o,l,u){var v={x1:Math.min(a,o,i)-u,x2:Math.max(a,o,i)+u,y1:Math.min(n,l,s)-u,y2:Math.max(n,l,s)+u};return!(ev.x2||tv.y2)},Nv=function(e,t,a,n){a-=n;var i=t*t-4*e*a;if(i<0)return[];var s=Math.sqrt(i),o=2*e,l=(-t+s)/o,u=(-t-s)/o;return[l,u]},Fv=function(e,t,a,n,i){var s=1e-5;e===0&&(e=s),t/=e,a/=e,n/=e;var o,l,u,v,f,c,h,d;if(l=(3*a-t*t)/9,u=-(27*n)+t*(9*a-2*(t*t)),u/=54,o=l*l*l+u*u,i[1]=0,h=t/3,o>0){f=u+Math.sqrt(o),f=f<0?-Math.pow(-f,1/3):Math.pow(f,1/3),c=u-Math.sqrt(o),c=c<0?-Math.pow(-c,1/3):Math.pow(c,1/3),i[0]=-h+f+c,h+=(f+c)/2,i[4]=i[2]=-h,h=Math.sqrt(3)*(-c+f)/2,i[3]=h,i[5]=-h;return}if(i[5]=i[3]=0,o===0){d=u<0?-Math.pow(-u,1/3):Math.pow(u,1/3),i[0]=-h+2*d,i[4]=i[2]=-(d+h);return}l=-l,v=l*l*l,v=Math.acos(u/Math.sqrt(v)),d=2*Math.sqrt(l),i[0]=-h+d*Math.cos(v/3),i[2]=-h+d*Math.cos((v+2*Math.PI)/3),i[4]=-h+d*Math.cos((v+4*Math.PI)/3)},Vv=function(e,t,a,n,i,s,o,l){var u=1*a*a-4*a*i+2*a*o+4*i*i-4*i*o+o*o+n*n-4*n*s+2*n*l+4*s*s-4*s*l+l*l,v=1*9*a*i-3*a*a-3*a*o-6*i*i+3*i*o+9*n*s-3*n*n-3*n*l-6*s*s+3*s*l,f=1*3*a*a-6*a*i+a*o-a*e+2*i*i+2*i*e-o*e+3*n*n-6*n*s+n*l-n*t+2*s*s+2*s*t-l*t,c=1*a*i-a*a+a*e-i*e+n*s-n*n+n*t-s*t,h=[];Fv(u,v,f,c,h);for(var d=1e-7,y=[],p=0;p<6;p+=2)Math.abs(h[p+1])=0&&h[p]<=1&&y.push(h[p]);y.push(1),y.push(0);for(var g=-1,m,b,w,S=0;S=0?wu?(e-i)*(e-i)+(t-s)*(t-s):v-c},dr=function(e,t,a){for(var n,i,s,o,l,u=0,v=0;v=e&&e>=s||n<=e&&e<=s)l=(e-n)/(s-n)*(o-i)+i,l>t&&u++;else continue;return u%2!==0},$r=function(e,t,a,n,i,s,o,l,u){var v=new Array(a.length),f;l[0]!=null?(f=Math.atan(l[1]/l[0]),l[0]<0?f=f+Math.PI/2:f=-f-Math.PI/2):f=l;for(var c=Math.cos(-f),h=Math.sin(-f),d=0;d0){var p=en(v,-u);y=ja(p)}else y=v;return dr(e,t,y)},$v=function(e,t,a,n,i,s,o,l){for(var u=new Array(a.length*2),v=0;v=0&&p<=1&&m.push(p),g>=0&&g<=1&&m.push(g),m.length===0)return[];var b=m[0]*l[0]+e,w=m[0]*l[1]+t;if(m.length>1){if(m[0]==m[1])return[b,w];var S=m[1]*l[0]+e,E=m[1]*l[1]+t;return[b,w,S,E]}else return[b,w]},Ln=function(e,t,a){return t<=e&&e<=a||a<=e&&e<=t?e:e<=t&&t<=a||a<=t&&t<=e?t:a},Xr=function(e,t,a,n,i,s,o,l,u){var v=e-i,f=a-e,c=o-i,h=t-s,d=n-t,y=l-s,p=c*h-y*v,g=f*h-d*v,m=y*f-c*d;if(m!==0){var b=p/m,w=g/m,S=.001,E=0-S,x=1+S;return E<=b&&b<=x&&E<=w&&w<=x?[e+b*f,t+b*d]:u?[e+b*f,t+b*d]:[]}else return p===0||g===0?Ln(e,a,o)===o?[o,l]:Ln(e,a,i)===i?[i,s]:Ln(i,o,a)===a?[a,n]:[]:[]},da=function(e,t,a,n,i,s,o,l){var u=[],v,f=new Array(a.length),c=!0;s==null&&(c=!1);var h;if(c){for(var d=0;d0){var y=en(f,-l);h=ja(y)}else h=f}else h=a;for(var p,g,m,b,w=0;w2){for(var d=[v[0],v[1]],y=Math.pow(d[0]-e,2)+Math.pow(d[1]-t,2),p=1;pv&&(v=w)},get:function(b){return u[b]}},c=0;c0?A=O.edgesTo(k)[0]:A=k.edgesTo(O)[0];var R=n(A);k=k.id(),D[k]>D[B]+R&&(D[k]=D[B]+R,C.nodes.indexOf(k)<0?C.push(k):C.updateItem(k),x[k]=0,E[k]=[]),D[k]==D[B]+R&&(x[k]=x[k]+x[B],E[k].push(B))}else for(var I=0;I0;){for(var N=S.pop(),W=0;W0&&o.push(a[l]);o.length!==0&&i.push(n.collection(o))}return i},af=function(e,t){for(var a=0;a5&&arguments[5]!==void 0?arguments[5]:of,o=n,l,u,v=0;v=2?Jt(e,t,a,0,Ui,uf):Jt(e,t,a,0,Wi)},squaredEuclidean:function(e,t,a){return Jt(e,t,a,0,Ui)},manhattan:function(e,t,a){return Jt(e,t,a,0,Wi)},max:function(e,t,a){return Jt(e,t,a,-1/0,lf)}};It["squared-euclidean"]=It.squaredEuclidean;It.squaredeuclidean=It.squaredEuclidean;function dn(r,e,t,a,n,i){var s;return Fe(r)?s=r:s=It[r]||It.euclidean,e===0&&Fe(r)?s(n,i):s(e,t,a,n,i)}var vf=er({k:2,m:2,sensitivityThreshold:1e-4,distance:"euclidean",maxIterations:10,attributes:[],testMode:!1,testCentroids:null}),di=function(e){return vf(e)},rn=function(e,t,a,n,i){var s=i!=="kMedoids",o=s?function(f){return a[f]}:function(f){return n[f](a)},l=function(c){return n[c](t)},u=a,v=t;return dn(e,n.length,o,l,u,v)},An=function(e,t,a){for(var n=a.length,i=new Array(n),s=new Array(n),o=new Array(t),l=null,u=0;ua)return!1}return!0},df=function(e,t,a){for(var n=0;no&&(o=t[u][v],l=v);i[l].push(e[u])}for(var f=0;f=i.threshold||i.mode==="dendrogram"&&e.length===1)return!1;var d=t[s],y=t[n[s]],p;i.mode==="dendrogram"?p={left:d,right:y,key:d.key}:p={value:d.value.concat(y.value),key:d.key},e[d.index]=p,e.splice(y.index,1),t[d.key]=p;for(var g=0;ga[y.key][m.key]&&(l=a[y.key][m.key])):i.linkage==="max"?(l=a[d.key][m.key],a[d.key][m.key]0&&n.push(i);return n},_i=function(e,t,a){for(var n=[],i=0;io&&(s=u,o=t[i*e+u])}s>0&&n.push(s)}for(var v=0;vu&&(l=v,u=f)}a[i]=s[l]}return n=_i(e,t,a),n},ji=function(e){for(var t=this.cy(),a=this.nodes(),n=kf(e),i={},s=0;s=P?(B=P,P=k,L=O):k>B&&(B=k);for(var A=0;A0?1:0;x[C%n.minIterations*o+N]=W,F+=W}if(F>0&&(C>=n.minIterations-1||C==n.maxIterations-1)){for(var Q=0,_=0;_1||E>1)&&(o=!0),f[b]=[],m.outgoers().forEach(function(D){D.isEdge()&&f[b].push(D.id())})}else c[b]=[void 0,m.target().id()]}):s.forEach(function(m){var b=m.id();if(m.isNode()){var w=m.degree(!0);w%2&&(l?u?o=!0:u=b:l=b),f[b]=[],m.connectedEdges().forEach(function(S){return f[b].push(S.id())})}else c[b]=[m.source().id(),m.target().id()]});var h={found:!1,trail:void 0};if(o)return h;if(u&&l)if(i){if(v&&u!=v)return h;v=u}else{if(v&&u!=v&&l!=v)return h;v||(v=u)}else v||(v=s[0].id());var d=function(b){for(var w=b,S=[b],E,x,D;f[w].length;)E=f[w].shift(),x=c[E][0],D=c[E][1],w!=D?(f[D]=f[D].filter(function(C){return C!=E}),w=D):!i&&w!=x&&(f[x]=f[x].filter(function(C){return C!=E}),w=x),S.unshift(E),S.unshift(w);return S},y=[],p=[];for(p=d(v);p.length!=1;)f[p[0]].length==0?(y.unshift(s.getElementById(p.shift())),y.unshift(s.getElementById(p.shift()))):p=d(p.shift()).concat(p);y.unshift(s.getElementById(p.shift()));for(var g in f)if(f[g].length)return h;return h.found=!0,h.trail=this.spawn(y,!0),h}},Ra=function(){var e=this,t={},a=0,n=0,i=[],s=[],o={},l=function(c,h){for(var d=s.length-1,y=[],p=e.spawn();s[d].x!=c||s[d].y!=h;)y.push(s.pop().edge),d--;y.push(s.pop().edge),y.forEach(function(g){var m=g.connectedNodes().intersection(e);p.merge(g),m.forEach(function(b){var w=b.id(),S=b.connectedEdges().intersection(e);p.merge(b),t[w].cutVertex?p.merge(S.filter(function(E){return E.isLoop()})):p.merge(S)})}),i.push(p)},u=function f(c,h,d){c===d&&(n+=1),t[h]={id:a,low:a++,cutVertex:!1};var y=e.getElementById(h).connectedEdges().intersection(e);if(y.size()===0)i.push(e.spawn(e.getElementById(h)));else{var p,g,m,b;y.forEach(function(w){p=w.source().id(),g=w.target().id(),m=p===h?g:p,m!==d&&(b=w.id(),o[b]||(o[b]=!0,s.push({x:h,y:m,edge:w})),m in t?t[h].low=Math.min(t[h].low,t[m].id):(f(c,m,h),t[h].low=Math.min(t[h].low,t[m].low),t[h].id<=t[m].low&&(t[h].cutVertex=!0,l(h,m))))})}};e.forEach(function(f){if(f.isNode()){var c=f.id();c in t||(n=0,u(c,c),t[c].cutVertex=n>1)}});var v=Object.keys(t).filter(function(f){return t[f].cutVertex}).map(function(f){return e.getElementById(f)});return{cut:e.spawn(v),components:i}},If={hopcroftTarjanBiconnected:Ra,htbc:Ra,htb:Ra,hopcroftTarjanBiconnectedComponents:Ra},Oa=function(){var e=this,t={},a=0,n=[],i=[],s=e.spawn(e),o=function l(u){i.push(u),t[u]={index:a,low:a++,explored:!1};var v=e.getElementById(u).connectedEdges().intersection(e);if(v.forEach(function(y){var p=y.target().id();p!==u&&(p in t||l(p),t[p].explored||(t[u].low=Math.min(t[u].low,t[p].low)))}),t[u].index===t[u].low){for(var f=e.spawn();;){var c=i.pop();if(f.merge(e.getElementById(c)),t[c].low=t[u].index,t[c].explored=!0,c===u)break}var h=f.edgesWith(f),d=f.merge(h);n.push(d),s=s.difference(d)}};return e.forEach(function(l){if(l.isNode()){var u=l.id();u in t||o(u)}}),{cut:s,components:n}},zf={tarjanStronglyConnected:Oa,tsc:Oa,tscc:Oa,tarjanStronglyConnectedComponents:Oa},Co={};[fa,fv,cv,hv,pv,mv,xv,Uv,Mt,Lt,Gn,sf,bf,Tf,Af,Of,If,zf].forEach(function(r){be(Co,r)});var So=0,To=1,Do=2,Hr=function r(e){if(!(this instanceof r))return new r(e);this.id="Thenable/1.0.7",this.state=So,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))};Hr.prototype={fulfill:function(e){return es(this,To,"fulfillValue",e)},reject:function(e){return es(this,Do,"rejectReason",e)},then:function(e,t){var a=this,n=new Hr;return a.onFulfilled.push(ts(e,n,"fulfill")),a.onRejected.push(ts(t,n,"reject")),ko(a),n.proxy}};var es=function(e,t,a,n){return e.state===So&&(e.state=t,e[a]=n,ko(e)),e},ko=function(e){e.state===To?rs(e,"onFulfilled",e.fulfillValue):e.state===Do&&rs(e,"onRejected",e.rejectReason)},rs=function(e,t,a){if(e[t].length!==0){var n=e[t];e[t]=[];var i=function(){for(var o=0;o0}},clearQueue:function(){return function(){var t=this,a=t.length!==void 0,n=a?t:[t],i=this._private.cy||this;if(!i.styleEnabled())return this;for(var s=0;s-1}var Gc=Hc;function Kc(r,e){var t=this.__data__,a=gn(t,r);return a<0?(++this.size,t.push([r,e])):t[a][1]=e,this}var Wc=Kc;function $t(r){var e=-1,t=r==null?0:r.length;for(this.clear();++e-1&&r%1==0&&r0&&this.spawn(n).updateStyle().emit("class"),t},addClass:function(e){return this.toggleClass(e,!0)},hasClass:function(e){var t=this[0];return t!=null&&t._private.classes.has(e)},toggleClass:function(e,t){Re(e)||(e=e.match(/\S+/g)||[]);for(var a=this,n=t===void 0,i=[],s=0,o=a.length;s0&&this.spawn(i).updateStyle().emit("class"),a},removeClass:function(e){return this.toggleClass(e,!1)},flashClass:function(e,t){var a=this;if(t==null)t=250;else if(t===0)return a;return a.addClass(e),setTimeout(function(){a.removeClass(e)},t),a}};Ga.className=Ga.classNames=Ga.classes;var Ce={metaChar:"[\\!\\\"\\#\\$\\%\\&\\'\\(\\)\\*\\+\\,\\.\\/\\:\\;\\<\\=\\>\\?\\@\\[\\]\\^\\`\\{\\|\\}\\~]",comparatorOp:"=|\\!=|>|>=|<|<=|\\$=|\\^=|\\*=",boolOp:"\\?|\\!|\\^",string:`"(?:\\\\"|[^"])*"|'(?:\\\\'|[^'])*'`,number:Ke,meta:"degree|indegree|outdegree",separator:"\\s*,\\s*",descendant:"\\s+",child:"\\s+>\\s+",subject:"\\$",group:"node|edge|\\*",directedEdge:"\\s+->\\s+",undirectedEdge:"\\s+<->\\s+"};Ce.variable="(?:[\\w-.]|(?:\\\\"+Ce.metaChar+"))+";Ce.className="(?:[\\w-]|(?:\\\\"+Ce.metaChar+"))+";Ce.value=Ce.string+"|"+Ce.number;Ce.id=Ce.variable;(function(){var r,e,t;for(r=Ce.comparatorOp.split("|"),t=0;t=0)&&e!=="="&&(Ce.comparatorOp+="|\\!"+e)})();var Le=function(){return{checks:[]}},oe={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},Wn=[{selector:":selected",matches:function(e){return e.selected()}},{selector:":unselected",matches:function(e){return!e.selected()}},{selector:":selectable",matches:function(e){return e.selectable()}},{selector:":unselectable",matches:function(e){return!e.selectable()}},{selector:":locked",matches:function(e){return e.locked()}},{selector:":unlocked",matches:function(e){return!e.locked()}},{selector:":visible",matches:function(e){return e.visible()}},{selector:":hidden",matches:function(e){return!e.visible()}},{selector:":transparent",matches:function(e){return e.transparent()}},{selector:":grabbed",matches:function(e){return e.grabbed()}},{selector:":free",matches:function(e){return!e.grabbed()}},{selector:":removed",matches:function(e){return e.removed()}},{selector:":inside",matches:function(e){return!e.removed()}},{selector:":grabbable",matches:function(e){return e.grabbable()}},{selector:":ungrabbable",matches:function(e){return!e.grabbable()}},{selector:":animated",matches:function(e){return e.animated()}},{selector:":unanimated",matches:function(e){return!e.animated()}},{selector:":parent",matches:function(e){return e.isParent()}},{selector:":childless",matches:function(e){return e.isChildless()}},{selector:":child",matches:function(e){return e.isChild()}},{selector:":orphan",matches:function(e){return e.isOrphan()}},{selector:":nonorphan",matches:function(e){return e.isChild()}},{selector:":compound",matches:function(e){return e.isNode()?e.isParent():e.source().isParent()||e.target().isParent()}},{selector:":loop",matches:function(e){return e.isLoop()}},{selector:":simple",matches:function(e){return e.isSimple()}},{selector:":active",matches:function(e){return e.active()}},{selector:":inactive",matches:function(e){return!e.active()}},{selector:":backgrounding",matches:function(e){return e.backgrounding()}},{selector:":nonbackgrounding",matches:function(e){return!e.backgrounding()}}].sort(function(r,e){return il(r.selector,e.selector)}),Zd=function(){for(var r={},e,t=0;t0&&v.edgeCount>0)return Me("The selector `"+e+"` is invalid because it uses both a compound selector and an edge selector"),!1;if(v.edgeCount>1)return Me("The selector `"+e+"` is invalid because it uses multiple edge selectors"),!1;v.edgeCount===1&&Me("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},rh=function(){if(this.toStringCache!=null)return this.toStringCache;for(var e=function(v){return v??""},t=function(v){return de(v)?'"'+v+'"':e(v)},a=function(v){return" "+v+" "},n=function(v,f){var c=v.type,h=v.value;switch(c){case oe.GROUP:{var d=e(h);return d.substring(0,d.length-1)}case oe.DATA_COMPARE:{var y=v.field,p=v.operator;return"["+y+a(e(p))+t(h)+"]"}case oe.DATA_BOOL:{var g=v.operator,m=v.field;return"["+e(g)+m+"]"}case oe.DATA_EXIST:{var b=v.field;return"["+b+"]"}case oe.META_COMPARE:{var w=v.operator,S=v.field;return"[["+S+a(e(w))+t(h)+"]]"}case oe.STATE:return h;case oe.ID:return"#"+h;case oe.CLASS:return"."+h;case oe.PARENT:case oe.CHILD:return i(v.parent,f)+a(">")+i(v.child,f);case oe.ANCESTOR:case oe.DESCENDANT:return i(v.ancestor,f)+" "+i(v.descendant,f);case oe.COMPOUND_SPLIT:{var E=i(v.left,f),x=i(v.subject,f),D=i(v.right,f);return E+(E.length>0?" ":"")+x+D}case oe.TRUE:return""}},i=function(v,f){return v.checks.reduce(function(c,h,d){return c+(f===v&&d===0?"$":"")+n(h,f)},"")},s="",o=0;o1&&o=0&&(t=t.replace("!",""),f=!0),t.indexOf("@")>=0&&(t=t.replace("@",""),v=!0),(i||o||v)&&(l=!i&&!s?"":""+e,u=""+a),v&&(e=l=l.toLowerCase(),a=u=u.toLowerCase()),t){case"*=":n=l.indexOf(u)>=0;break;case"$=":n=l.indexOf(u,l.length-u.length)>=0;break;case"^=":n=l.indexOf(u)===0;break;case"=":n=e===a;break;case">":c=!0,n=e>a;break;case">=":c=!0,n=e>=a;break;case"<":c=!0,n=e0;){var v=n.shift();e(v),i.add(v.id()),o&&a(n,i,v)}return r}function zo(r,e,t){if(t.isParent())for(var a=t._private.children,n=0;n1&&arguments[1]!==void 0?arguments[1]:!0;return mi(this,r,e,zo)};function No(r,e,t){if(t.isChild()){var a=t._private.parent;e.has(a.id())||r.push(a)}}zt.forEachUp=function(r){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return mi(this,r,e,No)};function lh(r,e,t){No(r,e,t),zo(r,e,t)}zt.forEachUpAndDown=function(r){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return mi(this,r,e,lh)};zt.ancestors=zt.parents;var ga,Fo;ga=Fo={data:Be.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:Be.removeData({field:"data",event:"data",triggerFnName:"trigger",triggerEvent:!0,immutableKeys:{id:!0,source:!0,target:!0,parent:!0},updateStyle:!0}),scratch:Be.data({field:"scratch",bindingEvent:"scratch",allowBinding:!0,allowSetting:!0,settingEvent:"scratch",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,updateStyle:!0}),removeScratch:Be.removeData({field:"scratch",event:"scratch",triggerFnName:"trigger",triggerEvent:!0,updateStyle:!0}),rscratch:Be.data({field:"rscratch",allowBinding:!1,allowSetting:!0,settingTriggersEvent:!1,allowGetting:!0}),removeRscratch:Be.removeData({field:"rscratch",triggerEvent:!1}),id:function(){var e=this[0];if(e)return e._private.data.id}};ga.attr=ga.data;ga.removeAttr=ga.removeData;var vh=Fo,yn={};function On(r){return function(e){var t=this;if(e===void 0&&(e=!0),t.length!==0)if(t.isNode()&&!t.removed()){for(var a=0,n=t[0],i=n._private.edges,s=0;se}),minIndegree:Et("indegree",function(r,e){return re}),minOutdegree:Et("outdegree",function(r,e){return re})});be(yn,{totalDegree:function(e){for(var t=0,a=this.nodes(),n=0;n0,c=f;f&&(v=v[0]);var h=c?v.position():{x:0,y:0};t!==void 0?u.position(e,t+h[e]):i!==void 0&&u.position({x:i.x+h.x,y:i.y+h.y})}else{var d=a.position(),y=o?a.parent():null,p=y&&y.length>0,g=p;p&&(y=y[0]);var m=g?y.position():{x:0,y:0};return i={x:d.x-m.x,y:d.y-m.y},e===void 0?i:i[e]}else if(!s)return;return this}};Pr.modelPosition=Pr.point=Pr.position;Pr.modelPositions=Pr.points=Pr.positions;Pr.renderedPoint=Pr.renderedPosition;Pr.relativePoint=Pr.relativePosition;var fh=Vo,At,tt;At=tt={};tt.renderedBoundingBox=function(r){var e=this.boundingBox(r),t=this.cy(),a=t.zoom(),n=t.pan(),i=e.x1*a+n.x,s=e.x2*a+n.x,o=e.y1*a+n.y,l=e.y2*a+n.y;return{x1:i,x2:s,y1:o,y2:l,w:s-i,h:l-o}};tt.dirtyCompoundBoundsCache=function(){var r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,e=this.cy();return!e.styleEnabled()||!e.hasCompoundNodes()?this:(this.forEachUp(function(t){if(t.isParent()){var a=t._private;a.compoundBoundsClean=!1,a.bbCache=null,r||t.emitAndNotify("bounds")}}),this)};tt.updateCompoundBounds=function(){var r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,e=this.cy();if(!e.styleEnabled()||!e.hasCompoundNodes())return this;if(!r&&e.batching())return this;function t(s){if(!s.isParent())return;var o=s._private,l=s.children(),u=s.pstyle("compound-sizing-wrt-labels").value==="include",v={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")}},f=l.boundingBox({includeLabels:u,includeOverlays:!1,useCache:!1}),c=o.position;(f.w===0||f.h===0)&&(f={w:s.pstyle("width").pfValue,h:s.pstyle("height").pfValue},f.x1=c.x-f.w/2,f.x2=c.x+f.w/2,f.y1=c.y-f.h/2,f.y2=c.y+f.h/2);function h(C,M,P){var B=0,L=0,k=M+P;return C>0&&k>0&&(B=M/k*C,L=P/k*C),{biasDiff:B,biasComplementDiff:L}}function d(C,M,P,B){if(P.units==="%")switch(B){case"width":return C>0?P.pfValue*C:0;case"height":return M>0?P.pfValue*M:0;case"average":return C>0&&M>0?P.pfValue*(C+M)/2:0;case"min":return C>0&&M>0?C>M?P.pfValue*M:P.pfValue*C:0;case"max":return C>0&&M>0?C>M?P.pfValue*C:P.pfValue*M:0;default:return 0}else return P.units==="px"?P.pfValue:0}var y=v.width.left.value;v.width.left.units==="px"&&v.width.val>0&&(y=y*100/v.width.val);var p=v.width.right.value;v.width.right.units==="px"&&v.width.val>0&&(p=p*100/v.width.val);var g=v.height.top.value;v.height.top.units==="px"&&v.height.val>0&&(g=g*100/v.height.val);var m=v.height.bottom.value;v.height.bottom.units==="px"&&v.height.val>0&&(m=m*100/v.height.val);var b=h(v.width.val-f.w,y,p),w=b.biasDiff,S=b.biasComplementDiff,E=h(v.height.val-f.h,g,m),x=E.biasDiff,D=E.biasComplementDiff;o.autoPadding=d(f.w,f.h,s.pstyle("padding"),s.pstyle("padding-relative-to").value),o.autoWidth=Math.max(f.w,v.width.val),c.x=(-w+f.x1+f.x2+S)/2,o.autoHeight=Math.max(f.h,v.height.val),c.y=(-x+f.y1+f.y2+D)/2}for(var a=0;ae.x2?n:e.x2,e.y1=ae.y2?i:e.y2,e.w=e.x2-e.x1,e.h=e.y2-e.y1)},ot=function(e,t){return t==null?e:Dr(e,t.x1,t.y1,t.x2,t.y2)},_t=function(e,t,a){return kr(e,t,a)},Ia=function(e,t,a){if(!t.cy().headless()){var n=t._private,i=n.rstyle,s=i.arrowWidth/2,o=t.pstyle(a+"-arrow-shape").value,l,u;if(o!=="none"){a==="source"?(l=i.srcX,u=i.srcY):a==="target"?(l=i.tgtX,u=i.tgtY):(l=i.midX,u=i.midY);var v=n.arrowBounds=n.arrowBounds||{},f=v[a]=v[a]||{};f.x1=l-s,f.y1=u-s,f.x2=l+s,f.y2=u+s,f.w=f.x2-f.x1,f.h=f.y2-f.y1,$a(f,1),Dr(e,f.x1,f.y1,f.x2,f.y2)}}},In=function(e,t,a){if(!t.cy().headless()){var n;a?n=a+"-":n="";var i=t._private,s=i.rstyle,o=t.pstyle(n+"label").strValue;if(o){var l=t.pstyle("text-halign"),u=t.pstyle("text-valign"),v=_t(s,"labelWidth",a),f=_t(s,"labelHeight",a),c=_t(s,"labelX",a),h=_t(s,"labelY",a),d=t.pstyle(n+"text-margin-x").pfValue,y=t.pstyle(n+"text-margin-y").pfValue,p=t.isEdge(),g=t.pstyle(n+"text-rotation"),m=t.pstyle("text-outline-width").pfValue,b=t.pstyle("text-border-width").pfValue,w=b/2,S=t.pstyle("text-background-padding").pfValue,E=2,x=f,D=v,C=D/2,M=x/2,P,B,L,k;if(p)P=c-C,B=c+C,L=h-M,k=h+M;else{switch(l.value){case"left":P=c-D,B=c;break;case"center":P=c-C,B=c+C;break;case"right":P=c,B=c+D;break}switch(u.value){case"top":L=h-x,k=h;break;case"center":L=h-M,k=h+M;break;case"bottom":L=h,k=h+x;break}}P+=d-Math.max(m,w)-S-E,B+=d+Math.max(m,w)+S+E,L+=y-Math.max(m,w)-S-E,k+=y+Math.max(m,w)+S+E;var O=a||"main",A=i.labelBounds,R=A[O]=A[O]||{};R.x1=P,R.y1=L,R.x2=B,R.y2=k,R.w=B-P,R.h=k-L;var I=p&&g.strValue==="autorotate",q=g.pfValue!=null&&g.pfValue!==0;if(I||q){var $=I?_t(i.rstyle,"labelAngle",a):g.pfValue,F=Math.cos($),N=Math.sin($),W=(P+B)/2,Q=(L+k)/2;if(!p){switch(l.value){case"left":W=B;break;case"right":W=P;break}switch(u.value){case"top":Q=k;break;case"bottom":Q=L;break}}var _=function(he,ae){return he=he-W,ae=ae-Q,{x:he*F-ae*N+W,y:he*N+ae*F+Q}},j=_(P,L),ee=_(P,k),U=_(B,L),z=_(B,k);P=Math.min(j.x,ee.x,U.x,z.x),B=Math.max(j.x,ee.x,U.x,z.x),L=Math.min(j.y,ee.y,U.y,z.y),k=Math.max(j.y,ee.y,U.y,z.y)}var Y=O+"Rot",X=A[Y]=A[Y]||{};X.x1=P,X.y1=L,X.x2=B,X.y2=k,X.w=B-P,X.h=k-L,Dr(e,P,L,B,k),Dr(i.labelBounds.all,P,L,B,k)}return e}},ch=function(e,t){if(!t.cy().headless()){var a=t.pstyle("outline-opacity").value,n=t.pstyle("outline-width").value;if(a>0&&n>0){var i=t.pstyle("outline-offset").value,s=t.pstyle("shape").value,o=n+i,l=(e.w+o*2)/e.w,u=(e.h+o*2)/e.h,v=0,f=0;["diamond","pentagon","round-triangle"].includes(s)?(l=(e.w+o*2.4)/e.w,f=-o/3.6):["concave-hexagon","rhomboid","right-rhomboid"].includes(s)?l=(e.w+o*2.4)/e.w:s==="star"?(l=(e.w+o*2.8)/e.w,u=(e.h+o*2.6)/e.h,f=-o/3.8):s==="triangle"?(l=(e.w+o*2.8)/e.w,u=(e.h+o*2.4)/e.h,f=-o/1.4):s==="vee"&&(l=(e.w+o*4.4)/e.w,u=(e.h+o*3.8)/e.h,f=-o*.5);var c=e.h*u-e.h,h=e.w*l-e.w;if(Ha(e,[Math.ceil(c/2),Math.ceil(h/2)]),v!=0||f!==0){var d=Av(e,v,f);ho(e,d)}}}},dh=function(e,t){var a=e._private.cy,n=a.styleEnabled(),i=a.headless(),s=hr(),o=e._private,l=e.isNode(),u=e.isEdge(),v,f,c,h,d,y,p=o.rstyle,g=l&&n?e.pstyle("bounds-expansion").pfValue:[0],m=function(ue){return ue.pstyle("display").value!=="none"},b=!n||m(e)&&(!u||m(e.source())&&m(e.target()));if(b){var w=0,S=0;n&&t.includeOverlays&&(w=e.pstyle("overlay-opacity").value,w!==0&&(S=e.pstyle("overlay-padding").value));var E=0,x=0;n&&t.includeUnderlays&&(E=e.pstyle("underlay-opacity").value,E!==0&&(x=e.pstyle("underlay-padding").value));var D=Math.max(S,x),C=0,M=0;if(n&&(C=e.pstyle("width").pfValue,M=C/2),l&&t.includeNodes){var P=e.position();d=P.x,y=P.y;var B=e.outerWidth(),L=B/2,k=e.outerHeight(),O=k/2;v=d-L,f=d+L,c=y-O,h=y+O,Dr(s,v,c,f,h),n&&t.includeOutlines&&ch(s,e)}else if(u&&t.includeEdges)if(n&&!i){var A=e.pstyle("curve-style").strValue;if(v=Math.min(p.srcX,p.midX,p.tgtX),f=Math.max(p.srcX,p.midX,p.tgtX),c=Math.min(p.srcY,p.midY,p.tgtY),h=Math.max(p.srcY,p.midY,p.tgtY),v-=M,f+=M,c-=M,h+=M,Dr(s,v,c,f,h),A==="haystack"){var R=p.haystackPts;if(R&&R.length===2){if(v=R[0].x,c=R[0].y,f=R[1].x,h=R[1].y,v>f){var I=v;v=f,f=I}if(c>h){var q=c;c=h,h=q}Dr(s,v-M,c-M,f+M,h+M)}}else if(A==="bezier"||A==="unbundled-bezier"||A.endsWith("segments")||A.endsWith("taxi")){var $;switch(A){case"bezier":case"unbundled-bezier":$=p.bezierPts;break;case"segments":case"taxi":case"round-segments":case"round-taxi":$=p.linePts;break}if($!=null)for(var F=0;F<$.length;F++){var N=$[F];v=N.x-M,f=N.x+M,c=N.y-M,h=N.y+M,Dr(s,v,c,f,h)}}}else{var W=e.source(),Q=W.position(),_=e.target(),j=_.position();if(v=Q.x,f=j.x,c=Q.y,h=j.y,v>f){var ee=v;v=f,f=ee}if(c>h){var U=c;c=h,h=U}v-=M,f+=M,c-=M,h+=M,Dr(s,v,c,f,h)}if(n&&t.includeEdges&&u&&(Ia(s,e,"mid-source"),Ia(s,e,"mid-target"),Ia(s,e,"source"),Ia(s,e,"target")),n){var z=e.pstyle("ghost").value==="yes";if(z){var Y=e.pstyle("ghost-offset-x").pfValue,X=e.pstyle("ghost-offset-y").pfValue;Dr(s,s.x1+Y,s.y1+X,s.x2+Y,s.y2+X)}}var se=o.bodyBounds=o.bodyBounds||{};$i(se,s),Ha(se,g),$a(se,1),n&&(v=s.x1,f=s.x2,c=s.y1,h=s.y2,Dr(s,v-D,c-D,f+D,h+D));var he=o.overlayBounds=o.overlayBounds||{};$i(he,s),Ha(he,g),$a(he,1);var ae=o.labelBounds=o.labelBounds||{};ae.all!=null?Lv(ae.all):ae.all=hr(),n&&t.includeLabels&&(t.includeMainLabels&&In(s,e,null),u&&(t.includeSourceLabels&&In(s,e,"source"),t.includeTargetLabels&&In(s,e,"target")))}return s.x1=br(s.x1),s.y1=br(s.y1),s.x2=br(s.x2),s.y2=br(s.y2),s.w=br(s.x2-s.x1),s.h=br(s.y2-s.y1),s.w>0&&s.h>0&&b&&(Ha(s,g),$a(s,1)),s},$o=function(e){var t=0,a=function(s){return(s?1:0)<0&&arguments[0]!==void 0?arguments[0]:Ph,e=arguments.length>1?arguments[1]:void 0,t=0;t=0;o--)s(o);return this};rt.removeAllListeners=function(){return this.removeListener("*")};rt.emit=rt.trigger=function(r,e,t){var a=this.listeners,n=a.length;return this.emitting++,Re(e)||(e=[e]),Bh(this,function(i,s){t!=null&&(a=[{event:s.event,type:s.type,namespace:s.namespace,callback:t}],n=a.length);for(var o=function(v){var f=a[v];if(f.type===s.type&&(!f.namespace||f.namespace===s.namespace||f.namespace===kh)&&i.eventMatches(i.context,f,s)){var c=[s];e!=null&&iv(c,e),i.beforeEmit(i.context,f,s),f.conf&&f.conf.one&&(i.listeners=i.listeners.filter(function(y){return y!==f}));var h=i.callbackContext(i.context,f,s),d=f.callback.apply(h,c);i.afterEmit(i.context,f,s),d===!1&&(s.stopPropagation(),s.preventDefault())}},l=0;l1&&!s){var o=this.length-1,l=this[o],u=l._private.data.id;this[o]=void 0,this[e]=l,i.set(u,{ele:l,index:e})}return this.length--,this},unmergeOne:function(e){e=e[0];var t=this._private,a=e._private.data.id,n=t.map,i=n.get(a);if(!i)return this;var s=i.index;return this.unmergeAt(s),this},unmerge:function(e){var t=this._private.cy;if(!e)return this;if(e&&de(e)){var a=e;e=t.mutableElements().filter(a)}for(var n=0;n=0;t--){var a=this[t];e(a)&&this.unmergeAt(t)}return this},map:function(e,t){for(var a=[],n=this,i=0;ia&&(a=l,n=o)}return{value:a,ele:n}},min:function(e,t){for(var a=1/0,n,i=this,s=0;s=0&&i"u"?"undefined":We(Symbol))!=e&&We(Symbol.iterator)!=e;t&&(tn[Symbol.iterator]=function(){var a=this,n={value:void 0,done:!1},i=0,s=this.length;return Ws({next:function(){return i1&&arguments[1]!==void 0?arguments[1]:!0,a=this[0],n=a.cy();if(n.styleEnabled()&&a){this.cleanStyle();var i=a._private.style[e];return i??(t?n.style().getDefaultProperty(e):null)}},numericStyle:function(e){var t=this[0];if(t.cy().styleEnabled()&&t){var a=t.pstyle(e);return a.pfValue!==void 0?a.pfValue:a.value}},numericStyleUnits:function(e){var t=this[0];if(t.cy().styleEnabled()&&t)return t.pstyle(e).units},renderedStyle:function(e){var t=this.cy();if(!t.styleEnabled())return this;var a=this[0];if(a)return t.style().getRenderedStyle(a,e)},style:function(e,t){var a=this.cy();if(!a.styleEnabled())return this;var n=!1,i=a.style();if(Se(e)){var s=e;i.applyBypass(this,s,n),this.emitAndNotify("style")}else if(de(e))if(t===void 0){var o=this[0];return o?i.getStylePropertyValue(o,e):void 0}else i.applyBypass(this,e,t,n),this.emitAndNotify("style");else if(e===void 0){var l=this[0];return l?i.getRawStyle(l):void 0}return this},removeStyle:function(e){var t=this.cy();if(!t.styleEnabled())return this;var a=!1,n=t.style(),i=this;if(e===void 0)for(var s=0;s0&&e.push(v[0]),e.push(o[0])}return this.spawn(e,!0).filter(r)},"neighborhood"),closedNeighborhood:function(e){return this.neighborhood().add(this).filter(e)},openNeighborhood:function(e){return this.neighborhood(e)}});nr.neighbourhood=nr.neighborhood;nr.closedNeighbourhood=nr.closedNeighborhood;nr.openNeighbourhood=nr.openNeighborhood;be(nr,{source:wr(function(e){var t=this[0],a;return t&&(a=t._private.source||t.cy().collection()),a&&e?a.filter(e):a},"source"),target:wr(function(e){var t=this[0],a;return t&&(a=t._private.target||t.cy().collection()),a&&e?a.filter(e):a},"target"),sources:bs({attr:"source"}),targets:bs({attr:"target"})});function bs(r){return function(t){for(var a=[],n=0;n0);return s},component:function(){var e=this[0];return e.cy().mutableElements().components(e)[0]}});nr.componentsOf=nr.components;var je=function(e,t){var a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;if(e===void 0){Ve("A collection must have a reference to the core");return}var i=new Or,s=!1;if(!t)t=[];else if(t.length>0&&Se(t[0])&&!wa(t[0])){s=!0;for(var o=[],l=new Ft,u=0,v=t.length;u0&&arguments[0]!==void 0?arguments[0]:!0,e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,t=this,a=t.cy(),n=a._private,i=[],s=[],o,l=0,u=t.length;l0){for(var q=o.length===t.length?t:new je(a,o),$=0;$0&&arguments[0]!==void 0?arguments[0]:!0,e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,t=this,a=[],n={},i=t._private.cy;function s(k){for(var O=k._private.edges,A=0;A0&&(r?P.emitAndNotify("remove"):e&&P.emit("remove"));for(var B=0;B0?B=k:P=k;while(Math.abs(L)>s&&++O=i?m(M,O):A===0?O:w(M,P,P+u)}var E=!1;function x(){E=!0,(r!==e||t!==a)&&b()}var D=function(P){return E||x(),r===e&&t===a?P:P===0?0:P===1?1:p(S(P),e,a)};D.getControlPoints=function(){return[{x:r,y:e},{x:t,y:a}]};var C="generateBezier("+[r,e,t,a]+")";return D.toString=function(){return C},D}var qh=function(){function r(a){return-a.tension*a.x-a.friction*a.v}function e(a,n,i){var s={x:a.x+i.dx*n,v:a.v+i.dv*n,tension:a.tension,friction:a.friction};return{dx:s.v,dv:r(s)}}function t(a,n){var i={dx:a.v,dv:r(a)},s=e(a,n*.5,i),o=e(a,n*.5,s),l=e(a,n,o),u=1/6*(i.dx+2*(s.dx+o.dx)+l.dx),v=1/6*(i.dv+2*(s.dv+o.dv)+l.dv);return a.x=a.x+u*n,a.v=a.v+v*n,a}return function a(n,i,s){var o={x:-1,v:0,tension:null,friction:null},l=[0],u=0,v=1/1e4,f=16/1e3,c,h,d;for(n=parseFloat(n)||500,i=parseFloat(i)||20,s=s||null,o.tension=n,o.friction=i,c=s!==null,c?(u=a(n,i),h=u/s*f):h=f;d=t(d||o,h),l.push(1+d.x),u+=16,Math.abs(d.x)>v&&Math.abs(d.v)>v;);return c?function(y){return l[y*(l.length-1)|0]}:u}}(),Oe=function(e,t,a,n){var i=Vh(e,t,a,n);return function(s,o,l){return s+(o-s)*i(l)}},Wa={linear:function(e,t,a){return e+(t-e)*a},ease:Oe(.25,.1,.25,1),"ease-in":Oe(.42,0,1,1),"ease-out":Oe(0,0,.58,1),"ease-in-out":Oe(.42,0,.58,1),"ease-in-sine":Oe(.47,0,.745,.715),"ease-out-sine":Oe(.39,.575,.565,1),"ease-in-out-sine":Oe(.445,.05,.55,.95),"ease-in-quad":Oe(.55,.085,.68,.53),"ease-out-quad":Oe(.25,.46,.45,.94),"ease-in-out-quad":Oe(.455,.03,.515,.955),"ease-in-cubic":Oe(.55,.055,.675,.19),"ease-out-cubic":Oe(.215,.61,.355,1),"ease-in-out-cubic":Oe(.645,.045,.355,1),"ease-in-quart":Oe(.895,.03,.685,.22),"ease-out-quart":Oe(.165,.84,.44,1),"ease-in-out-quart":Oe(.77,0,.175,1),"ease-in-quint":Oe(.755,.05,.855,.06),"ease-out-quint":Oe(.23,1,.32,1),"ease-in-out-quint":Oe(.86,0,.07,1),"ease-in-expo":Oe(.95,.05,.795,.035),"ease-out-expo":Oe(.19,1,.22,1),"ease-in-out-expo":Oe(1,0,0,1),"ease-in-circ":Oe(.6,.04,.98,.335),"ease-out-circ":Oe(.075,.82,.165,1),"ease-in-out-circ":Oe(.785,.135,.15,.86),spring:function(e,t,a){if(a===0)return Wa.linear;var n=qh(e,t,a);return function(i,s,o){return i+(s-i)*n(o)}},"cubic-bezier":Oe};function Es(r,e,t,a,n){if(a===1||e===t)return t;var i=n(e,t,a);return r==null||((r.roundValue||r.color)&&(i=Math.round(i)),r.min!==void 0&&(i=Math.max(i,r.min)),r.max!==void 0&&(i=Math.min(i,r.max))),i}function Cs(r,e){return r.pfValue!=null||r.value!=null?r.pfValue!=null&&(e==null||e.type.units!=="%")?r.pfValue:r.value:r}function Ct(r,e,t,a,n){var i=n!=null?n.type:null;t<0?t=0:t>1&&(t=1);var s=Cs(r,n),o=Cs(e,n);if(ne(s)&&ne(o))return Es(i,s,o,t,a);if(Re(s)&&Re(o)){for(var l=[],u=0;u0?(h==="spring"&&d.push(s.duration),s.easingImpl=Wa[h].apply(null,d)):s.easingImpl=Wa[h]}var y=s.easingImpl,p;if(s.duration===0?p=1:p=(t-l)/s.duration,s.applying&&(p=s.progress),p<0?p=0:p>1&&(p=1),s.delay==null){var g=s.startPosition,m=s.position;if(m&&n&&!r.locked()){var b={};ea(g.x,m.x)&&(b.x=Ct(g.x,m.x,p,y)),ea(g.y,m.y)&&(b.y=Ct(g.y,m.y,p,y)),r.position(b)}var w=s.startPan,S=s.pan,E=i.pan,x=S!=null&&a;x&&(ea(w.x,S.x)&&(E.x=Ct(w.x,S.x,p,y)),ea(w.y,S.y)&&(E.y=Ct(w.y,S.y,p,y)),r.emit("pan"));var D=s.startZoom,C=s.zoom,M=C!=null&&a;M&&(ea(D,C)&&(i.zoom=ca(i.minZoom,Ct(D,C,p,y),i.maxZoom)),r.emit("zoom")),(x||M)&&r.emit("viewport");var P=s.style;if(P&&P.length>0&&n){for(var B=0;B=0;x--){var D=E[x];D()}E.splice(0,E.length)},m=h.length-1;m>=0;m--){var b=h[m],w=b._private;if(w.stopped){h.splice(m,1),w.hooked=!1,w.playing=!1,w.started=!1,g(w.frames);continue}!w.playing&&!w.applying||(w.playing&&w.applying&&(w.applying=!1),w.started||Hh(v,b,r),$h(v,b,r,f),w.applying&&(w.applying=!1),g(w.frames),w.step!=null&&w.step(r),b.completed()&&(h.splice(m,1),w.hooked=!1,w.playing=!1,w.started=!1,g(w.completes)),y=!0)}return!f&&h.length===0&&d.length===0&&a.push(v),y}for(var i=!1,s=0;s0?e.notify("draw",t):e.notify("draw")),t.unmerge(a),e.emit("step")}var Gh={animate:Be.animate(),animation:Be.animation(),animated:Be.animated(),clearQueue:Be.clearQueue(),delay:Be.delay(),delayAnimation:Be.delayAnimation(),stop:Be.stop(),addToAnimationPool:function(e){var t=this;t.styleEnabled()&&t._private.aniEles.merge(e)},stopAnimationLoop:function(){this._private.animationsRunning=!1},startAnimationLoop:function(){var e=this;if(e._private.animationsRunning=!0,!e.styleEnabled())return;function t(){e._private.animationsRunning&&Ja(function(i){Ss(i,e),t()})}var a=e.renderer();a&&a.beforeRender?a.beforeRender(function(i,s){Ss(s,e)},a.beforeRenderPriorities.animations):t()}},Kh={qualifierCompare:function(e,t){return e==null||t==null?e==null&&t==null:e.sameText(t)},eventMatches:function(e,t,a){var n=t.qualifier;return n!=null?e!==a.target&&wa(a.target)&&n.matches(a.target):!0},addEventFields:function(e,t){t.cy=e,t.target=e},callbackContext:function(e,t,a){return t.qualifier!=null?a.target:e}},Fa=function(e){return de(e)?new jr(e):e},_o={createEmitter:function(){var e=this._private;return e.emitter||(e.emitter=new mn(Kh,this)),this},emitter:function(){return this._private.emitter},on:function(e,t,a){return this.emitter().on(e,Fa(t),a),this},removeListener:function(e,t,a){return this.emitter().removeListener(e,Fa(t),a),this},removeAllListeners:function(){return this.emitter().removeAllListeners(),this},one:function(e,t,a){return this.emitter().one(e,Fa(t),a),this},once:function(e,t,a){return this.emitter().one(e,Fa(t),a),this},emit:function(e,t){return this.emitter().emit(e,t),this},emitAndNotify:function(e,t){return this.emit(e),this.notify(e,t),this}};Be.eventAliasesOn(_o);var Yn={png:function(e){var t=this._private.renderer;return e=e||{},t.png(e)},jpg:function(e){var t=this._private.renderer;return e=e||{},e.bg=e.bg||"#fff",t.jpg(e)}};Yn.jpeg=Yn.jpg;var Ua={layout:function(e){var t=this;if(e==null){Ve("Layout options must be specified to make a layout");return}if(e.name==null){Ve("A `name` must be specified to make a layout");return}var a=e.name,n=t.extension("layout",a);if(n==null){Ve("No such layout `"+a+"` found. Did you forget to import it and `cytoscape.use()` it?");return}var i;de(e.eles)?i=t.$(e.eles):i=e.eles!=null?e.eles:t.$();var s=new n(be({},e,{cy:t,eles:i}));return s}};Ua.createLayout=Ua.makeLayout=Ua.layout;var Wh={notify:function(e,t){var a=this._private;if(this.batching()){a.batchNotifications=a.batchNotifications||{};var n=a.batchNotifications[e]=a.batchNotifications[e]||this.collection();t!=null&&n.merge(t);return}if(a.notificationsEnabled){var i=this.renderer();this.destroyed()||!i||i.notify(e,t)}},notifications:function(e){var t=this._private;return e===void 0?t.notificationsEnabled:(t.notificationsEnabled=!!e,this)},noNotifications:function(e){this.notifications(!1),e(),this.notifications(!0)},batching:function(){return this._private.batchCount>0},startBatch:function(){var e=this._private;return e.batchCount==null&&(e.batchCount=0),e.batchCount===0&&(e.batchStyleEles=this.collection(),e.batchNotifications={}),e.batchCount++,this},endBatch:function(){var e=this._private;if(e.batchCount===0)return this;if(e.batchCount--,e.batchCount===0){e.batchStyleEles.updateStyle();var t=this.renderer();Object.keys(e.batchNotifications).forEach(function(a){var n=e.batchNotifications[a];n.empty()?t.notify(a):t.notify(a,n)})}return this},batch:function(e){return this.startBatch(),e(),this.endBatch(),this},batchData:function(e){var t=this;return this.batch(function(){for(var a=Object.keys(e),n=0;n0;)t.removeChild(t.childNodes[0]);e._private.renderer=null,e.mutableElements().forEach(function(a){var n=a._private;n.rscratch={},n.rstyle={},n.animation.current=[],n.animation.queue=[]})},onRender:function(e){return this.on("render",e)},offRender:function(e){return this.off("render",e)}};Xn.invalidateDimensions=Xn.resize;var Ya={collection:function(e,t){return de(e)?this.$(e):gr(e)?e.collection():Re(e)?(t||(t={}),new je(this,e,t.unique,t.removed)):new je(this)},nodes:function(e){var t=this.$(function(a){return a.isNode()});return e?t.filter(e):t},edges:function(e){var t=this.$(function(a){return a.isEdge()});return e?t.filter(e):t},$:function(e){var t=this._private.elements;return e?t.filter(e):t.spawnSelf()},mutableElements:function(){return this._private.elements}};Ya.elements=Ya.filter=Ya.$;var sr={},sa="t",Yh="f";sr.apply=function(r){for(var e=this,t=e._private,a=t.cy,n=a.collection(),i=0;i0;if(c||f&&h){var d=void 0;c&&h||c?d=u.properties:h&&(d=u.mappedProperties);for(var y=0;y1&&(w=1),o.color){var E=a.valueMin[0],x=a.valueMax[0],D=a.valueMin[1],C=a.valueMax[1],M=a.valueMin[2],P=a.valueMax[2],B=a.valueMin[3]==null?1:a.valueMin[3],L=a.valueMax[3]==null?1:a.valueMax[3],k=[Math.round(E+(x-E)*w),Math.round(D+(C-D)*w),Math.round(M+(P-M)*w),Math.round(B+(L-B)*w)];i={bypass:a.bypass,name:a.name,value:k,strValue:"rgb("+k[0]+", "+k[1]+", "+k[2]+")"}}else if(o.number){var O=a.valueMin+(a.valueMax-a.valueMin)*w;i=this.parse(a.name,O,a.bypass,c)}else return!1;if(!i)return y(),!1;i.mapping=a,a=i;break}case s.data:{for(var A=a.field.split("."),R=f.data,I=0;I0&&i>0){for(var o={},l=!1,u=0;u0?r.delayAnimation(s).play().promise().then(b):b()}).then(function(){return r.animation({style:o,duration:i,easing:r.pstyle("transition-timing-function").value,queue:!1}).play().promise()}).then(function(){t.removeBypasses(r,n),r.emitAndNotify("style"),a.transitioning=!1})}else a.transitioning&&(this.removeBypasses(r,n),r.emitAndNotify("style"),a.transitioning=!1)};sr.checkTrigger=function(r,e,t,a,n,i){var s=this.properties[e],o=n(s);o!=null&&o(t,a)&&i(s)};sr.checkZOrderTrigger=function(r,e,t,a){var n=this;this.checkTrigger(r,e,t,a,function(i){return i.triggersZOrder},function(){n._private.cy.notify("zorder",r)})};sr.checkBoundsTrigger=function(r,e,t,a){this.checkTrigger(r,e,t,a,function(n){return n.triggersBounds},function(n){r.dirtyCompoundBoundsCache(),r.dirtyBoundingBoxCache(),n.triggersBoundsOfParallelBeziers&&e==="curve-style"&&(t==="bezier"||a==="bezier")&&r.parallelEdges().forEach(function(i){i.isBundledBezier()&&i.dirtyBoundingBoxCache()}),n.triggersBoundsOfConnectedEdges&&e==="display"&&(t==="none"||a==="none")&&r.connectedEdges().forEach(function(i){i.dirtyBoundingBoxCache()})})};sr.checkTriggers=function(r,e,t,a){r.dirtyStyleCache(),this.checkZOrderTrigger(r,e,t,a),this.checkBoundsTrigger(r,e,t,a)};var Sa={};Sa.applyBypass=function(r,e,t,a){var n=this,i=[],s=!0;if(e==="*"||e==="**"){if(t!==void 0)for(var o=0;on.length?a=a.substr(n.length):a=""}function l(){i.length>s.length?i=i.substr(s.length):i=""}for(;;){var u=a.match(/^\s*$/);if(u)break;var v=a.match(/^\s*((?:.|\s)+?)\s*\{((?:.|\s)+?)\}/);if(!v){Me("Halting stylesheet parsing: String stylesheet contains more to parse but no selector and block found in: "+a);break}n=v[0];var f=v[1];if(f!=="core"){var c=new jr(f);if(c.invalid){Me("Skipping parsing of block: Invalid selector found in string stylesheet: "+f),o();continue}}var h=v[2],d=!1;i=h;for(var y=[];;){var p=i.match(/^\s*$/);if(p)break;var g=i.match(/^\s*(.+?)\s*:\s*(.+?)(?:\s*;|\s*$)/);if(!g){Me("Skipping parsing of block: Invalid formatting of style property and value definitions found in:"+h),d=!0;break}s=g[0];var m=g[1],b=g[2],w=e.properties[m];if(!w){Me("Skipping property: Invalid property name in: "+s),l();continue}var S=t.parse(m,b);if(!S){Me("Skipping property: Invalid property definition in: "+s),l();continue}y.push({name:m,val:b}),l()}if(d){o();break}t.selector(f);for(var E=0;E=7&&e[0]==="d"&&(v=new RegExp(o.data.regex).exec(e))){if(t)return!1;var c=o.data;return{name:r,value:v,strValue:""+e,mapped:c,field:v[1],bypass:t}}else if(e.length>=10&&e[0]==="m"&&(f=new RegExp(o.mapData.regex).exec(e))){if(t||u.multiple)return!1;var h=o.mapData;if(!(u.color||u.number))return!1;var d=this.parse(r,f[4]);if(!d||d.mapped)return!1;var y=this.parse(r,f[5]);if(!y||y.mapped)return!1;if(d.pfValue===y.pfValue||d.strValue===y.strValue)return Me("`"+r+": "+e+"` is not a valid mapper because the output range is zero; converting to `"+r+": "+d.strValue+"`"),this.parse(r,d.strValue);if(u.color){var p=d.value,g=y.value,m=p[0]===g[0]&&p[1]===g[1]&&p[2]===g[2]&&(p[3]===g[3]||(p[3]==null||p[3]===1)&&(g[3]==null||g[3]===1));if(m)return!1}return{name:r,value:f,strValue:""+e,mapped:h,field:f[1],fieldMin:parseFloat(f[2]),fieldMax:parseFloat(f[3]),valueMin:d.value,valueMax:y.value,bypass:t}}}if(u.multiple&&a!=="multiple"){var b;if(l?b=e.split(/\s+/):Re(e)?b=e:b=[e],u.evenMultiple&&b.length%2!==0)return null;for(var w=[],S=[],E=[],x="",D=!1,C=0;C0?" ":"")+M.strValue}return u.validate&&!u.validate(w,S)?null:u.singleEnum&&D?w.length===1&&de(w[0])?{name:r,value:w[0],strValue:w[0],bypass:t}:null:{name:r,value:w,pfValue:E,strValue:x,bypass:t,units:S}}var P=function(){for(var z=0;zu.max||u.strictMax&&e===u.max))return null;var A={name:r,value:e,strValue:""+e+(B||""),units:B,bypass:t};return u.unitless||B!=="px"&&B!=="em"?A.pfValue=e:A.pfValue=B==="px"||!B?e:this.getEmSizeInPixels()*e,(B==="ms"||B==="s")&&(A.pfValue=B==="ms"?e:1e3*e),(B==="deg"||B==="rad")&&(A.pfValue=B==="rad"?e:kv(e)),B==="%"&&(A.pfValue=e/100),A}else if(u.propList){var R=[],I=""+e;if(I!=="none"){for(var q=I.split(/\s*,\s*|\s+/),$=0;$0&&o>0&&!isNaN(a.w)&&!isNaN(a.h)&&a.w>0&&a.h>0){l=Math.min((s-2*t)/a.w,(o-2*t)/a.h),l=l>this._private.maxZoom?this._private.maxZoom:l,l=l=a.minZoom&&(a.maxZoom=t),this},minZoom:function(e){return e===void 0?this._private.minZoom:this.zoomRange({min:e})},maxZoom:function(e){return e===void 0?this._private.maxZoom:this.zoomRange({max:e})},getZoomedViewport:function(e){var t=this._private,a=t.pan,n=t.zoom,i,s,o=!1;if(t.zoomingEnabled||(o=!0),ne(e)?s=e:Se(e)&&(s=e.level,e.position!=null?i=cn(e.position,n,a):e.renderedPosition!=null&&(i=e.renderedPosition),i!=null&&!t.panningEnabled&&(o=!0)),s=s>t.maxZoom?t.maxZoom:s,s=st.maxZoom||!t.zoomingEnabled?s=!0:(t.zoom=l,i.push("zoom"))}if(n&&(!s||!e.cancelOnFailedZoom)&&t.panningEnabled){var u=e.pan;ne(u.x)&&(t.pan.x=u.x,o=!1),ne(u.y)&&(t.pan.y=u.y,o=!1),o||i.push("pan")}return i.length>0&&(i.push("viewport"),this.emit(i.join(" ")),this.notify("viewport")),this},center:function(e){var t=this.getCenterPan(e);return t&&(this._private.pan=t,this.emit("pan viewport"),this.notify("viewport")),this},getCenterPan:function(e,t){if(this._private.panningEnabled){if(de(e)){var a=e;e=this.mutableElements().filter(a)}else gr(e)||(e=this.mutableElements());if(e.length!==0){var n=e.boundingBox(),i=this.width(),s=this.height();t=t===void 0?this._private.zoom:t;var o={x:(i-t*(n.x1+n.x2))/2,y:(s-t*(n.y1+n.y2))/2};return o}}},reset:function(){return!this._private.panningEnabled||!this._private.zoomingEnabled?this:(this.viewport({pan:{x:0,y:0},zoom:1}),this)},invalidateSize:function(){this._private.sizeCache=null},size:function(){var e=this._private,t=e.container,a=this;return e.sizeCache=e.sizeCache||(t?function(){var n=a.window().getComputedStyle(t),i=function(o){return parseFloat(n.getPropertyValue(o))};return{width:t.clientWidth-i("padding-left")-i("padding-right"),height:t.clientHeight-i("padding-top")-i("padding-bottom")}}():{width:1,height:1})},width:function(){return this.size().width},height:function(){return this.size().height},extent:function(){var e=this._private.pan,t=this._private.zoom,a=this.renderedExtent(),n={x1:(a.x1-e.x)/t,x2:(a.x2-e.x)/t,y1:(a.y1-e.y)/t,y2:(a.y2-e.y)/t};return n.w=n.x2-n.x1,n.h=n.y2-n.y1,n},renderedExtent:function(){var e=this.width(),t=this.height();return{x1:0,y1:0,x2:e,y2:t,w:e,h:t}},multiClickDebounceTime:function(e){if(e)this._private.multiClickDebounceTime=e;else return this._private.multiClickDebounceTime;return this}};pt.centre=pt.center;pt.autolockNodes=pt.autolock;pt.autoungrabifyNodes=pt.autoungrabify;var ya={data:Be.data({field:"data",bindingEvent:"data",allowBinding:!0,allowSetting:!0,settingEvent:"data",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,updateStyle:!0}),removeData:Be.removeData({field:"data",event:"data",triggerFnName:"trigger",triggerEvent:!0,updateStyle:!0}),scratch:Be.data({field:"scratch",bindingEvent:"scratch",allowBinding:!0,allowSetting:!0,settingEvent:"scratch",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,updateStyle:!0}),removeScratch:Be.removeData({field:"scratch",event:"scratch",triggerFnName:"trigger",triggerEvent:!0,updateStyle:!0})};ya.attr=ya.data;ya.removeAttr=ya.removeData;var ma=function(e){var t=this;e=be({},e);var a=e.container;a&&!Qa(a)&&Qa(a[0])&&(a=a[0]);var n=a?a._cyreg:null;n=n||{},n&&n.cy&&(n.cy.destroy(),n={});var i=n.readies=n.readies||[];a&&(a._cyreg=n),n.cy=t;var s=Ge!==void 0&&a!==void 0&&!e.headless,o=e;o.layout=be({name:s?"grid":"null"},o.layout),o.renderer=be({name:s?"canvas":"null"},o.renderer);var l=function(d,y,p){return y!==void 0?y:p!==void 0?p:d},u=this._private={container:a,ready:!1,options:o,elements:new je(this),listeners:[],aniEles:new je(this),data:o.data||{},scratch:{},layout:null,renderer:null,destroyed:!1,notificationsEnabled:!0,minZoom:1e-50,maxZoom:1e50,zoomingEnabled:l(!0,o.zoomingEnabled),userZoomingEnabled:l(!0,o.userZoomingEnabled),panningEnabled:l(!0,o.panningEnabled),userPanningEnabled:l(!0,o.userPanningEnabled),boxSelectionEnabled:l(!0,o.boxSelectionEnabled),autolock:l(!1,o.autolock,o.autolockNodes),autoungrabify:l(!1,o.autoungrabify,o.autoungrabifyNodes),autounselectify:l(!1,o.autounselectify),styleEnabled:o.styleEnabled===void 0?s:o.styleEnabled,zoom:ne(o.zoom)?o.zoom:1,pan:{x:Se(o.pan)&&ne(o.pan.x)?o.pan.x:0,y:Se(o.pan)&&ne(o.pan.y)?o.pan.y:0},animation:{current:[],queue:[]},hasCompoundNodes:!1,multiClickDebounceTime:l(250,o.multiClickDebounceTime)};this.createEmitter(),this.selectionType(o.selectionType),this.zoomRange({min:o.minZoom,max:o.maxZoom});var v=function(d,y){var p=d.some(Ju);if(p)return Vt.all(d).then(y);y(d)};u.styleEnabled&&t.setStyle([]);var f=be({},o,o.renderer);t.initRenderer(f);var c=function(d,y,p){t.notifications(!1);var g=t.mutableElements();g.length>0&&g.remove(),d!=null&&(Se(d)||Re(d))&&t.add(d),t.one("layoutready",function(b){t.notifications(!0),t.emit(b),t.one("load",y),t.emitAndNotify("load")}).one("layoutstop",function(){t.one("done",p),t.emit("done")});var m=be({},t._private.options.layout);m.eles=t.elements(),t.layout(m).run()};v([o.style,o.elements],function(h){var d=h[0],y=h[1];u.styleEnabled&&t.style().append(d),c(y,function(){t.startAnimationLoop(),u.ready=!0,Fe(o.ready)&&t.on("ready",o.ready);for(var p=0;p0,l=hr(e.boundingBox?e.boundingBox:{x1:0,y1:0,w:t.width(),h:t.height()}),u;if(gr(e.roots))u=e.roots;else if(Re(e.roots)){for(var v=[],f=0;f0;){var O=k(),A=M(O,B);if(A)O.outgoers().filter(function(ae){return ae.isNode()&&a.has(ae)}).forEach(L);else if(A===null){Me("Detected double maximal shift for node `"+O.id()+"`. Bailing maximal adjustment due to cycle. Use `options.maximal: true` only on DAGs.");break}}}C();var R=0;if(e.avoidOverlap)for(var I=0;I0&&g[0].length<=3?xe/2:0),T=2*Math.PI/g[ce].length*ve;return ce===0&&g[0].length===1&&(J=1),{x:X.x+J*Math.cos(T),y:X.y+J*Math.sin(T)}}else{var Te={x:X.x+(ve+1-(pe+1)/2)*Pe,y:(ce+1)*Ee};return Te}};return a.nodes().layoutPositions(this,e,he),this};var _h={fit:!0,padding:30,boundingBox:void 0,avoidOverlap:!0,nodeDimensionsIncludeLabels:!1,spacingFactor:void 0,radius:void 0,startAngle:3/2*Math.PI,sweep:void 0,clockwise:!0,sort:void 0,animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(e,t){return!0},ready:void 0,stop:void 0,transform:function(e,t){return t}};function eu(r){this.options=be({},_h,r)}eu.prototype.run=function(){var r=this.options,e=r,t=r.cy,a=e.eles,n=e.counterclockwise!==void 0?!e.counterclockwise:e.clockwise,i=a.nodes().not(":parent");e.sort&&(i=i.sort(e.sort));for(var s=hr(e.boundingBox?e.boundingBox:{x1:0,y1:0,w:t.width(),h:t.height()}),o={x:s.x1+s.w/2,y:s.y1+s.h/2},l=e.sweep===void 0?2*Math.PI-2*Math.PI/i.length:e.sweep,u=l/Math.max(1,i.length-1),v,f=0,c=0;c1&&e.avoidOverlap){f*=1.75;var g=Math.cos(u)-Math.cos(0),m=Math.sin(u)-Math.sin(0),b=Math.sqrt(f*f/(g*g+m*m));v=Math.max(b,v)}var w=function(E,x){var D=e.startAngle+x*u*(n?1:-1),C=v*Math.cos(D),M=v*Math.sin(D),P={x:o.x+C,y:o.y+M};return P};return a.nodes().layoutPositions(this,e,w),this};var jh={fit:!0,padding:30,startAngle:3/2*Math.PI,sweep:void 0,clockwise:!0,equidistant:!1,minNodeSpacing:10,boundingBox:void 0,avoidOverlap:!0,nodeDimensionsIncludeLabels:!1,height:void 0,width:void 0,spacingFactor:void 0,concentric:function(e){return e.degree()},levelWidth:function(e){return e.maxDegree()/4},animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(e,t){return!0},ready:void 0,stop:void 0,transform:function(e,t){return t}};function ru(r){this.options=be({},jh,r)}ru.prototype.run=function(){for(var r=this.options,e=r,t=e.counterclockwise!==void 0?!e.counterclockwise:e.clockwise,a=r.cy,n=e.eles,i=n.nodes().not(":parent"),s=hr(e.boundingBox?e.boundingBox:{x1:0,y1:0,w:a.width(),h:a.height()}),o={x:s.x1+s.w/2,y:s.y1+s.h/2},l=[],u=0,v=0;v0){var S=Math.abs(m[0].value-w.value);S>=p&&(m=[],g.push(m))}m.push(w)}var E=u+e.minNodeSpacing;if(!e.avoidOverlap){var x=g.length>0&&g[0].length>1,D=Math.min(s.w,s.h)/2-E,C=D/(g.length+x?1:0);E=Math.min(E,C)}for(var M=0,P=0;P1&&e.avoidOverlap){var O=Math.cos(k)-Math.cos(0),A=Math.sin(k)-Math.sin(0),R=Math.sqrt(E*E/(O*O+A*A));M=Math.max(R,M)}B.r=M,M+=E}if(e.equidistant){for(var I=0,q=0,$=0;$=r.numIter||(og(a,r),a.temperature=a.temperature*r.coolingFactor,a.temperature=r.animationThreshold&&i(),Ja(f)}};v()}else{for(;u;)u=s(l),l++;ks(a,r),o()}return this};Cn.prototype.stop=function(){return this.stopped=!0,this.thread&&this.thread.stop(),this.emit("layoutstop"),this};Cn.prototype.destroy=function(){return this.thread&&this.thread.stop(),this};var rg=function(e,t,a){for(var n=a.eles.edges(),i=a.eles.nodes(),s=hr(a.boundingBox?a.boundingBox:{x1:0,y1:0,w:e.width(),h:e.height()}),o={isCompound:e.hasCompoundNodes(),layoutNodes:[],idToIndex:{},nodeSize:i.size(),graphSet:[],indexToGraph:[],layoutEdges:[],edgeSize:n.size(),temperature:a.initialTemp,clientWidth:s.w,clientHeight:s.h,boundingBox:s},l=a.eles.components(),u={},v=0;v0){o.graphSet.push(D);for(var v=0;vn.count?0:n.graph},ag=function r(e,t,a,n){var i=n.graphSet[a];if(-10)var f=n.nodeOverlap*v,c=Math.sqrt(o*o+l*l),h=f*o/c,d=f*l/c;else var y=nn(e,o,l),p=nn(t,-1*o,-1*l),g=p.x-y.x,m=p.y-y.y,b=g*g+m*m,c=Math.sqrt(b),f=(e.nodeRepulsion+t.nodeRepulsion)/b,h=f*g/c,d=f*m/c;e.isLocked||(e.offsetX-=h,e.offsetY-=d),t.isLocked||(t.offsetX+=h,t.offsetY+=d)}},vg=function(e,t,a,n){if(a>0)var i=e.maxX-t.minX;else var i=t.maxX-e.minX;if(n>0)var s=e.maxY-t.minY;else var s=t.maxY-e.minY;return i>=0&&s>=0?Math.sqrt(i*i+s*s):0},nn=function(e,t,a){var n=e.positionX,i=e.positionY,s=e.height||1,o=e.width||1,l=a/t,u=s/o,v={};return t===0&&0a?(v.x=n,v.y=i+s/2,v):0t&&-1*u<=l&&l<=u?(v.x=n-o/2,v.y=i-o*a/2/t,v):0=u)?(v.x=n+s*t/2/a,v.y=i+s/2,v):(0>a&&(l<=-1*u||l>=u)&&(v.x=n-s*t/2/a,v.y=i-s/2),v)},fg=function(e,t){for(var a=0;aa){var p=t.gravity*h/y,g=t.gravity*d/y;c.offsetX+=p,c.offsetY+=g}}}}},dg=function(e,t){var a=[],n=0,i=-1;for(a.push.apply(a,e.graphSet[0]),i+=e.graphSet[0].length;n<=i;){var s=a[n++],o=e.idToIndex[s],l=e.layoutNodes[o],u=l.children;if(0a)var i={x:a*e/n,y:a*t/n};else var i={x:e,y:t};return i},pg=function r(e,t){var a=e.parentId;if(a!=null){var n=t.layoutNodes[t.idToIndex[a]],i=!1;if((n.maxX==null||e.maxX+n.padRight>n.maxX)&&(n.maxX=e.maxX+n.padRight,i=!0),(n.minX==null||e.minX-n.padLeftn.maxY)&&(n.maxY=e.maxY+n.padBottom,i=!0),(n.minY==null||e.minY-n.padTopg&&(d+=p+t.componentSpacing,h=0,y=0,p=0)}}},yg={fit:!0,padding:30,boundingBox:void 0,avoidOverlap:!0,avoidOverlapPadding:10,nodeDimensionsIncludeLabels:!1,spacingFactor:void 0,condense:!1,rows:void 0,cols:void 0,position:function(e){},sort:void 0,animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(e,t){return!0},ready:void 0,stop:void 0,transform:function(e,t){return t}};function au(r){this.options=be({},yg,r)}au.prototype.run=function(){var r=this.options,e=r,t=r.cy,a=e.eles,n=a.nodes().not(":parent");e.sort&&(n=n.sort(e.sort));var i=hr(e.boundingBox?e.boundingBox:{x1:0,y1:0,w:t.width(),h:t.height()});if(i.h===0||i.w===0)a.nodes().layoutPositions(this,e,function(W){return{x:i.x1,y:i.y1}});else{var s=n.size(),o=Math.sqrt(s*i.h/i.w),l=Math.round(o),u=Math.round(i.w/i.h*o),v=function(Q){if(Q==null)return Math.min(l,u);var _=Math.min(l,u);_==l?l=Q:u=Q},f=function(Q){if(Q==null)return Math.max(l,u);var _=Math.max(l,u);_==l?l=Q:u=Q},c=e.rows,h=e.cols!=null?e.cols:e.columns;if(c!=null&&h!=null)l=c,u=h;else if(c!=null&&h==null)l=c,u=Math.ceil(s/l);else if(c==null&&h!=null)u=h,l=Math.ceil(s/u);else if(u*l>s){var d=v(),y=f();(d-1)*y>=s?v(d-1):(y-1)*d>=s&&f(y-1)}else for(;u*l=s?f(g+1):v(p+1)}var m=i.w/u,b=i.h/l;if(e.condense&&(m=0,b=0),e.avoidOverlap)for(var w=0;w=u&&(O=0,k++)},R={},I=0;I(O=qv(r,e,A[R],A[R+1],A[R+2],A[R+3])))return p(x,O),!0}else if(C.edgeType==="bezier"||C.edgeType==="multibezier"||C.edgeType==="self"||C.edgeType==="compound"){for(var A=C.allpts,R=0;R+5(O=Vv(r,e,A[R],A[R+1],A[R+2],A[R+3],A[R+4],A[R+5])))return p(x,O),!0}for(var I=I||D.source,q=q||D.target,$=n.getArrowWidth(M,P),F=[{name:"source",x:C.arrowStartX,y:C.arrowStartY,angle:C.srcArrowAngle},{name:"target",x:C.arrowEndX,y:C.arrowEndY,angle:C.tgtArrowAngle},{name:"mid-source",x:C.midX,y:C.midY,angle:C.midsrcArrowAngle},{name:"mid-target",x:C.midX,y:C.midY,angle:C.midtgtArrowAngle}],R=0;R0&&(g(I),g(q))}function b(x,D,C){return kr(x,D,C)}function w(x,D){var C=x._private,M=c,P;D?P=D+"-":P="",x.boundingBox();var B=C.labelBounds[D||"main"],L=x.pstyle(P+"label").value,k=x.pstyle("text-events").strValue==="yes";if(!(!k||!L)){var O=b(C.rscratch,"labelX",D),A=b(C.rscratch,"labelY",D),R=b(C.rscratch,"labelAngle",D),I=x.pstyle(P+"text-margin-x").pfValue,q=x.pstyle(P+"text-margin-y").pfValue,$=B.x1-M-I,F=B.x2+M-I,N=B.y1-M-q,W=B.y2+M-q;if(R){var Q=Math.cos(R),_=Math.sin(R),j=function(he,ae){return he=he-O,ae=ae-A,{x:he*Q-ae*_+O,y:he*_+ae*Q+A}},ee=j($,N),U=j($,W),z=j(F,N),Y=j(F,W),X=[ee.x+I,ee.y+q,z.x+I,z.y+q,Y.x+I,Y.y+q,U.x+I,U.y+q];if(dr(r,e,X))return p(x),!0}else if(Ot(B,r,e))return p(x),!0}}for(var S=s.length-1;S>=0;S--){var E=s[S];E.isNode()?g(E)||w(E):m(E)||w(E)||w(E,"source")||w(E,"target")}return o};mt.getAllInBox=function(r,e,t,a){var n=this.getCachedZSortedEles().interactive,i=[],s=Math.min(r,t),o=Math.max(r,t),l=Math.min(e,a),u=Math.max(e,a);r=s,t=o,e=l,a=u;for(var v=hr({x1:r,y1:e,x2:t,y2:a}),f=0;f0?-(Math.PI-e.ang):Math.PI+e.ang},Cg=function(e,t,a,n,i){if(e!==As?Rs(t,e,Ar):Eg(mr,Ar),Rs(t,a,mr),Ms=Ar.nx*mr.ny-Ar.ny*mr.nx,Ls=Ar.nx*mr.nx-Ar.ny*-mr.ny,Vr=Math.asin(Math.max(-1,Math.min(1,Ms))),Math.abs(Vr)<1e-6){Zn=t.x,Qn=t.y,ut=Tt=0;return}lt=1,Xa=!1,Ls<0?Vr<0?Vr=Math.PI+Vr:(Vr=Math.PI-Vr,lt=-1,Xa=!0):Vr>0&&(lt=-1,Xa=!0),t.radius!==void 0?Tt=t.radius:Tt=n,nt=Vr/2,Va=Math.min(Ar.len/2,mr.len/2),i?(Lr=Math.abs(Math.cos(nt)*Tt/Math.sin(nt)),Lr>Va?(Lr=Va,ut=Math.abs(Lr*Math.sin(nt)/Math.cos(nt))):ut=Tt):(Lr=Math.min(Va,Tt),ut=Math.abs(Lr*Math.sin(nt)/Math.cos(nt))),Jn=t.x+mr.nx*Lr,_n=t.y+mr.ny*Lr,Zn=Jn-mr.ny*ut*lt,Qn=_n+mr.nx*ut*lt,ou=t.x+Ar.nx*Lr,uu=t.y+Ar.ny*Lr,As=t};function lu(r,e){e.radius===0?r.lineTo(e.cx,e.cy):r.arc(e.cx,e.cy,e.radius,e.startAngle,e.endAngle,e.counterClockwise)}function Si(r,e,t,a){var n=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0;return a===0||e.radius===0?{cx:e.x,cy:e.y,radius:0,startX:e.x,startY:e.y,stopX:e.x,stopY:e.y,startAngle:void 0,endAngle:void 0,counterClockwise:void 0}:(Cg(r,e,t,a,n),{cx:Zn,cy:Qn,radius:ut,startX:ou,startY:uu,stopX:Jn,stopY:_n,startAngle:Ar.ang+Math.PI/2*lt,endAngle:mr.ang-Math.PI/2*lt,counterClockwise:Xa})}var or={};or.findMidptPtsEtc=function(r,e){var t=e.posPts,a=e.intersectionPts,n=e.vectorNormInverse,i,s=r.pstyle("source-endpoint"),o=r.pstyle("target-endpoint"),l=s.units!=null&&o.units!=null,u=function(S,E,x,D){var C=D-E,M=x-S,P=Math.sqrt(M*M+C*C);return{x:-C/P,y:M/P}},v=r.pstyle("edge-distances").value;switch(v){case"node-position":i=t;break;case"intersection":i=a;break;case"endpoints":{if(l){var f=this.manualEndptToPx(r.source()[0],s),c=Tr(f,2),h=c[0],d=c[1],y=this.manualEndptToPx(r.target()[0],o),p=Tr(y,2),g=p[0],m=p[1],b={x1:h,y1:d,x2:g,y2:m};n=u(h,d,g,m),i=b}else Me("Edge ".concat(r.id()," has edge-distances:endpoints specified without manual endpoints specified via source-endpoint and target-endpoint. Falling back on edge-distances:intersection (default).")),i=a;break}}return{midptPts:i,vectorNormInverse:n}};or.findHaystackPoints=function(r){for(var e=0;e0?Math.max(ye-me,0):Math.min(ye+me,0)},L=B(M,D),k=B(P,C),O=!1;m===u?g=Math.abs(L)>Math.abs(k)?n:a:m===l||m===o?(g=a,O=!0):(m===i||m===s)&&(g=n,O=!0);var A=g===a,R=A?k:L,I=A?P:M,q=co(I),$=!1;!(O&&(w||E))&&(m===o&&I<0||m===l&&I>0||m===i&&I>0||m===s&&I<0)&&(q*=-1,R=q*Math.abs(R),$=!0);var F;if(w){var N=S<0?1+S:S;F=N*R}else{var W=S<0?R:0;F=W+S*q}var Q=function(ye){return Math.abs(ye)=Math.abs(R)},_=Q(F),j=Q(Math.abs(R)-Math.abs(F)),ee=_||j;if(ee&&!$)if(A){var U=Math.abs(I)<=c/2,z=Math.abs(M)<=h/2;if(U){var Y=(v.x1+v.x2)/2,X=v.y1,se=v.y2;t.segpts=[Y,X,Y,se]}else if(z){var he=(v.y1+v.y2)/2,ae=v.x1,ie=v.x2;t.segpts=[ae,he,ie,he]}else t.segpts=[v.x1,v.y2]}else{var ue=Math.abs(I)<=f/2,ce=Math.abs(P)<=d/2;if(ue){var ve=(v.y1+v.y2)/2,pe=v.x1,Pe=v.x2;t.segpts=[pe,ve,Pe,ve]}else if(ce){var Ee=(v.x1+v.x2)/2,xe=v.y1,Te=v.y2;t.segpts=[Ee,xe,Ee,Te]}else t.segpts=[v.x2,v.y1]}else if(A){var J=v.y1+F+(p?c/2*q:0),T=v.x1,V=v.x2;t.segpts=[T,J,V,J]}else{var Z=v.x1+F+(p?f/2*q:0),G=v.y1,H=v.y2;t.segpts=[Z,G,Z,H]}if(t.isRound){var te=r.pstyle("taxi-radius").value,K=r.pstyle("radius-type").value[0]==="arc-radius";t.radii=new Array(t.segpts.length/2).fill(te),t.isArcRadius=new Array(t.segpts.length/2).fill(K)}};or.tryToCorrectInvalidPoints=function(r,e){var t=r._private.rscratch;if(t.edgeType==="bezier"){var a=e.srcPos,n=e.tgtPos,i=e.srcW,s=e.srcH,o=e.tgtW,l=e.tgtH,u=e.srcShape,v=e.tgtShape,f=e.srcCornerRadius,c=e.tgtCornerRadius,h=e.srcRs,d=e.tgtRs,y=!ne(t.startX)||!ne(t.startY),p=!ne(t.arrowStartX)||!ne(t.arrowStartY),g=!ne(t.endX)||!ne(t.endY),m=!ne(t.arrowEndX)||!ne(t.arrowEndY),b=3,w=this.getArrowWidth(r.pstyle("width").pfValue,r.pstyle("arrow-scale").value)*this.arrowShapeWidth,S=b*w,E=dt({x:t.ctrlpts[0],y:t.ctrlpts[1]},{x:t.startX,y:t.startY}),x=Ek.poolIndex()){var O=L;L=k,k=O}var A=C.srcPos=L.position(),R=C.tgtPos=k.position(),I=C.srcW=L.outerWidth(),q=C.srcH=L.outerHeight(),$=C.tgtW=k.outerWidth(),F=C.tgtH=k.outerHeight(),N=C.srcShape=t.nodeShapes[e.getNodeShape(L)],W=C.tgtShape=t.nodeShapes[e.getNodeShape(k)],Q=C.srcCornerRadius=L.pstyle("corner-radius").value==="auto"?"auto":L.pstyle("corner-radius").pfValue,_=C.tgtCornerRadius=k.pstyle("corner-radius").value==="auto"?"auto":k.pstyle("corner-radius").pfValue,j=C.tgtRs=k._private.rscratch,ee=C.srcRs=L._private.rscratch;C.dirCounts={north:0,west:0,south:0,east:0,northwest:0,southwest:0,northeast:0,southeast:0};for(var U=0;U0){var se=i,he=st(se,kt(t)),ae=st(se,kt(X)),ie=he;if(ae2){var ue=st(se,{x:X[2],y:X[3]});ue0){var H=s,te=st(H,kt(t)),K=st(H,kt(G)),re=te;if(K2){var ye=st(H,{x:G[2],y:G[3]});ye=d||x){p={cp:w,segment:E};break}}if(p)break}var D=p.cp,C=p.segment,M=(d-g)/C.length,P=C.t1-C.t0,B=h?C.t0+P*M:C.t1-P*M;B=ca(0,B,1),e=Bt(D.p0,D.p1,D.p2,B),c=Tg(D.p0,D.p1,D.p2,B);break}case"straight":case"segments":case"haystack":{for(var L=0,k,O,A,R,I=a.allpts.length,q=0;q+3=d));q+=2);var $=d-O,F=$/k;F=ca(0,F,1),e=Bv(A,R,F),c=cu(A,R);break}}s("labelX",f,e.x),s("labelY",f,e.y),s("labelAutoAngle",f,c)}};u("source"),u("target"),this.applyLabelDimensions(r)}};zr.applyLabelDimensions=function(r){this.applyPrefixedLabelDimensions(r),r.isEdge()&&(this.applyPrefixedLabelDimensions(r,"source"),this.applyPrefixedLabelDimensions(r,"target"))};zr.applyPrefixedLabelDimensions=function(r,e){var t=r._private,a=this.getLabelText(r,e),n=this.calculateLabelDimensions(r,a),i=r.pstyle("line-height").pfValue,s=r.pstyle("text-wrap").strValue,o=kr(t.rscratch,"labelWrapCachedLines",e)||[],l=s!=="wrap"?1:Math.max(o.length,1),u=n.height/l,v=u*i,f=n.width,c=n.height+(l-1)*(i-1)*u;Yr(t.rstyle,"labelWidth",e,f),Yr(t.rscratch,"labelWidth",e,f),Yr(t.rstyle,"labelHeight",e,c),Yr(t.rscratch,"labelHeight",e,c),Yr(t.rscratch,"labelLineHeight",e,v)};zr.getLabelText=function(r,e){var t=r._private,a=e?e+"-":"",n=r.pstyle(a+"label").strValue,i=r.pstyle("text-transform").value,s=function(W,Q){return Q?(Yr(t.rscratch,W,e,Q),Q):kr(t.rscratch,W,e)};if(!n)return"";i=="none"||(i=="uppercase"?n=n.toUpperCase():i=="lowercase"&&(n=n.toLowerCase()));var o=r.pstyle("text-wrap").value;if(o==="wrap"){var l=s("labelKey");if(l!=null&&s("labelWrapKey")===l)return s("labelWrapCachedText");for(var u="\u200B",v=n.split(` +`),f=r.pstyle("text-max-width").pfValue,c=r.pstyle("text-overflow-wrap").value,h=c==="anywhere",d=[],y=/[\s\u200b]+|$/g,p=0;pf){var S=g.matchAll(y),E="",x=0,D=Ys(S),C;try{for(D.s();!(C=D.n()).done;){var M=C.value,P=M[0],B=g.substring(x,M.index);x=M.index+P.length;var L=E.length===0?B:E+B+P,k=this.calculateLabelDimensions(r,L),O=k.width;O<=f?E+=B+P:(E&&d.push(E),E=B+P)}}catch(N){D.e(N)}finally{D.f()}E.match(/^[\s\u200b]+$/)||d.push(E)}else d.push(g)}s("labelWrapCachedLines",d),n=s("labelWrapCachedText",d.join(` +`)),s("labelWrapKey",l)}else if(o==="ellipsis"){var A=r.pstyle("text-max-width").pfValue,R="",I="\u2026",q=!1;if(this.calculateLabelDimensions(r,n).widthA)break;R+=n[$],$===n.length-1&&(q=!0)}return q||(R+=I),R}return n};zr.getLabelJustification=function(r){var e=r.pstyle("text-justification").strValue,t=r.pstyle("text-halign").strValue;if(e==="auto")if(r.isNode())switch(t){case"left":return"right";case"right":return"left";default:return"center"}else return"center";else return e};zr.calculateLabelDimensions=function(r,e){var t=this,a=t.cy.window(),n=a.document,i=ct(e,r._private.labelDimsKey),s=t.labelDimCache||(t.labelDimCache=[]),o=s[i];if(o!=null)return o;var l=0,u=r.pstyle("font-style").strValue,v=r.pstyle("font-size").pfValue,f=r.pstyle("font-family").strValue,c=r.pstyle("font-weight").strValue,h=this.labelCalcCanvas,d=this.labelCalcCanvasContext;if(!h){h=this.labelCalcCanvas=n.createElement("canvas"),d=this.labelCalcCanvasContext=h.getContext("2d");var y=h.style;y.position="absolute",y.left="-9999px",y.top="-9999px",y.zIndex="-1",y.visibility="hidden",y.pointerEvents="none"}d.font="".concat(u," ").concat(c," ").concat(v,"px ").concat(f);for(var p=0,g=0,m=e.split(` +`),b=0;b1&&arguments[1]!==void 0?arguments[1]:!0;if(e.merge(s),o)for(var l=0;l=r.desktopTapThreshold2}var lr=n(T);Ae&&(r.hoverData.tapholdCancelled=!0);var xr=function(){var Mr=r.hoverData.dragDelta=r.hoverData.dragDelta||[];Mr.length===0?(Mr.push(ge[0]),Mr.push(ge[1])):(Mr[0]+=ge[0],Mr[1]+=ge[1])};Z=!0,a(fe,["mousemove","vmousemove","tapdrag"],T,{x:K[0],y:K[1]});var yr=function(){r.data.bgActivePosistion=void 0,r.hoverData.selecting||G.emit({originalEvent:T,type:"boxstart",position:{x:K[0],y:K[1]}}),me[4]=1,r.hoverData.selecting=!0,r.redrawHint("select",!0),r.redraw()};if(r.hoverData.which===3){if(Ae){var cr={originalEvent:T,type:"cxtdrag",position:{x:K[0],y:K[1]}};le?le.emit(cr):G.emit(cr),r.hoverData.cxtDragged=!0,(!r.hoverData.cxtOver||fe!==r.hoverData.cxtOver)&&(r.hoverData.cxtOver&&r.hoverData.cxtOver.emit({originalEvent:T,type:"cxtdragout",position:{x:K[0],y:K[1]}}),r.hoverData.cxtOver=fe,fe&&fe.emit({originalEvent:T,type:"cxtdragover",position:{x:K[0],y:K[1]}}))}}else if(r.hoverData.dragging){if(Z=!0,G.panningEnabled()&&G.userPanningEnabled()){var Br;if(r.hoverData.justStartedPan){var Fr=r.hoverData.mdownPos;Br={x:(K[0]-Fr[0])*H,y:(K[1]-Fr[1])*H},r.hoverData.justStartedPan=!1}else Br={x:ge[0]*H,y:ge[1]*H};G.panBy(Br),G.emit("dragpan"),r.hoverData.dragged=!0}K=r.projectIntoViewport(T.clientX,T.clientY)}else if(me[4]==1&&(le==null||le.pannable())){if(Ae){if(!r.hoverData.dragging&&G.boxSelectionEnabled()&&(lr||!G.panningEnabled()||!G.userPanningEnabled()))yr();else if(!r.hoverData.selecting&&G.panningEnabled()&&G.userPanningEnabled()){var Er=i(le,r.hoverData.downs);Er&&(r.hoverData.dragging=!0,r.hoverData.justStartedPan=!0,me[4]=0,r.data.bgActivePosistion=kt(re),r.redrawHint("select",!0),r.redraw())}le&&le.pannable()&&le.active()&&le.unactivate()}}else{if(le&&le.pannable()&&le.active()&&le.unactivate(),(!le||!le.grabbed())&&fe!=we&&(we&&a(we,["mouseout","tapdragout"],T,{x:K[0],y:K[1]}),fe&&a(fe,["mouseover","tapdragover"],T,{x:K[0],y:K[1]}),r.hoverData.last=fe),le)if(Ae){if(G.boxSelectionEnabled()&&lr)le&&le.grabbed()&&(p(Ne),le.emit("freeon"),Ne.emit("free"),r.dragData.didDrag&&(le.emit("dragfreeon"),Ne.emit("dragfree"))),yr();else if(le&&le.grabbed()&&r.nodeIsDraggable(le)){var He=!r.dragData.didDrag;He&&r.redrawHint("eles",!0),r.dragData.didDrag=!0,r.hoverData.draggingEles||d(Ne,{inDragLayer:!0});var Ye={x:0,y:0};if(ne(ge[0])&&ne(ge[1])&&(Ye.x+=ge[0],Ye.y+=ge[1],He)){var tr=r.hoverData.dragDelta;tr&&ne(tr[0])&&ne(tr[1])&&(Ye.x+=tr[0],Ye.y+=tr[1])}r.hoverData.draggingEles=!0,Ne.silentShift(Ye).emit("position drag"),r.redrawHint("drag",!0),r.redraw()}}else xr();Z=!0}if(me[2]=K[0],me[3]=K[1],Z)return T.stopPropagation&&T.stopPropagation(),T.preventDefault&&T.preventDefault(),!1}},!1);var M,P,B;r.registerBinding(e,"mouseup",function(T){if(!(r.hoverData.which===1&&T.which!==1&&r.hoverData.capture)){var V=r.hoverData.capture;if(V){r.hoverData.capture=!1;var Z=r.cy,G=r.projectIntoViewport(T.clientX,T.clientY),H=r.selection,te=r.findNearestElement(G[0],G[1],!0,!1),K=r.dragData.possibleDragElements,re=r.hoverData.down,ye=n(T);if(r.data.bgActivePosistion&&(r.redrawHint("select",!0),r.redraw()),r.hoverData.tapholdCancelled=!0,r.data.bgActivePosistion=void 0,re&&re.unactivate(),r.hoverData.which===3){var me={originalEvent:T,type:"cxttapend",position:{x:G[0],y:G[1]}};if(re?re.emit(me):Z.emit(me),!r.hoverData.cxtDragged){var fe={originalEvent:T,type:"cxttap",position:{x:G[0],y:G[1]}};re?re.emit(fe):Z.emit(fe)}r.hoverData.cxtDragged=!1,r.hoverData.which=null}else if(r.hoverData.which===1){if(a(te,["mouseup","tapend","vmouseup"],T,{x:G[0],y:G[1]}),!r.dragData.didDrag&&!r.hoverData.dragged&&!r.hoverData.selecting&&!r.hoverData.isOverThresholdDrag&&(a(re,["click","tap","vclick"],T,{x:G[0],y:G[1]}),P=!1,T.timeStamp-B<=Z.multiClickDebounceTime()?(M&&clearTimeout(M),P=!0,B=null,a(re,["dblclick","dbltap","vdblclick"],T,{x:G[0],y:G[1]})):(M=setTimeout(function(){P||a(re,["oneclick","onetap","voneclick"],T,{x:G[0],y:G[1]})},Z.multiClickDebounceTime()),B=T.timeStamp)),re==null&&!r.dragData.didDrag&&!r.hoverData.selecting&&!r.hoverData.dragged&&!n(T)&&(Z.$(t).unselect(["tapunselect"]),K.length>0&&r.redrawHint("eles",!0),r.dragData.possibleDragElements=K=Z.collection()),te==re&&!r.dragData.didDrag&&!r.hoverData.selecting&&te!=null&&te._private.selectable&&(r.hoverData.dragging||(Z.selectionType()==="additive"||ye?te.selected()?te.unselect(["tapunselect"]):te.select(["tapselect"]):ye||(Z.$(t).unmerge(te).unselect(["tapunselect"]),te.select(["tapselect"]))),r.redrawHint("eles",!0)),r.hoverData.selecting){var we=Z.collection(r.getAllInBox(H[0],H[1],H[2],H[3]));r.redrawHint("select",!0),we.length>0&&r.redrawHint("eles",!0),Z.emit({type:"boxend",originalEvent:T,position:{x:G[0],y:G[1]}});var le=function(Ae){return Ae.selectable()&&!Ae.selected()};Z.selectionType()==="additive"||ye||Z.$(t).unmerge(we).unselect(),we.emit("box").stdFilter(le).select().emit("boxselect"),r.redraw()}if(r.hoverData.dragging&&(r.hoverData.dragging=!1,r.redrawHint("select",!0),r.redrawHint("eles",!0),r.redraw()),!H[4]){r.redrawHint("drag",!0),r.redrawHint("eles",!0);var ge=re&&re.grabbed();p(K),ge&&(re.emit("freeon"),K.emit("free"),r.dragData.didDrag&&(re.emit("dragfreeon"),K.emit("dragfree")))}}H[4]=0,r.hoverData.down=null,r.hoverData.cxtStarted=!1,r.hoverData.draggingEles=!1,r.hoverData.selecting=!1,r.hoverData.isOverThresholdDrag=!1,r.dragData.didDrag=!1,r.hoverData.dragged=!1,r.hoverData.dragDelta=[],r.hoverData.mdownPos=null,r.hoverData.mdownGPos=null,r.hoverData.which=null}}},!1);var L=function(T){if(!r.scrollingPage){var V=r.cy,Z=V.zoom(),G=V.pan(),H=r.projectIntoViewport(T.clientX,T.clientY),te=[H[0]*Z+G.x,H[1]*Z+G.y];if(r.hoverData.draggingEles||r.hoverData.dragging||r.hoverData.cxtStarted||D()){T.preventDefault();return}if(V.panningEnabled()&&V.userPanningEnabled()&&V.zoomingEnabled()&&V.userZoomingEnabled()){T.preventDefault(),r.data.wheelZooming=!0,clearTimeout(r.data.wheelTimeout),r.data.wheelTimeout=setTimeout(function(){r.data.wheelZooming=!1,r.redrawHint("eles",!0),r.redraw()},150);var K;T.deltaY!=null?K=T.deltaY/-250:T.wheelDeltaY!=null?K=T.wheelDeltaY/1e3:K=T.wheelDelta/1e3,K=K*r.wheelSensitivity;var re=T.deltaMode===1;re&&(K*=33);var ye=V.zoom()*Math.pow(10,K);T.type==="gesturechange"&&(ye=r.gestureStartZoom*T.scale),V.zoom({level:ye,renderedPosition:{x:te[0],y:te[1]}}),V.emit(T.type==="gesturechange"?"pinchzoom":"scrollzoom")}}};r.registerBinding(r.container,"wheel",L,!0),r.registerBinding(e,"scroll",function(T){r.scrollingPage=!0,clearTimeout(r.scrollingPageTimeout),r.scrollingPageTimeout=setTimeout(function(){r.scrollingPage=!1},250)},!0),r.registerBinding(r.container,"gesturestart",function(T){r.gestureStartZoom=r.cy.zoom(),r.hasTouchStarted||T.preventDefault()},!0),r.registerBinding(r.container,"gesturechange",function(J){r.hasTouchStarted||L(J)},!0),r.registerBinding(r.container,"mouseout",function(T){var V=r.projectIntoViewport(T.clientX,T.clientY);r.cy.emit({originalEvent:T,type:"mouseout",position:{x:V[0],y:V[1]}})},!1),r.registerBinding(r.container,"mouseover",function(T){var V=r.projectIntoViewport(T.clientX,T.clientY);r.cy.emit({originalEvent:T,type:"mouseover",position:{x:V[0],y:V[1]}})},!1);var k,O,A,R,I,q,$,F,N,W,Q,_,j,ee=function(T,V,Z,G){return Math.sqrt((Z-T)*(Z-T)+(G-V)*(G-V))},U=function(T,V,Z,G){return(Z-T)*(Z-T)+(G-V)*(G-V)},z;r.registerBinding(r.container,"touchstart",z=function(T){if(r.hasTouchStarted=!0,!!C(T)){m(),r.touchData.capture=!0,r.data.bgActivePosistion=void 0;var V=r.cy,Z=r.touchData.now,G=r.touchData.earlier;if(T.touches[0]){var H=r.projectIntoViewport(T.touches[0].clientX,T.touches[0].clientY);Z[0]=H[0],Z[1]=H[1]}if(T.touches[1]){var H=r.projectIntoViewport(T.touches[1].clientX,T.touches[1].clientY);Z[2]=H[0],Z[3]=H[1]}if(T.touches[2]){var H=r.projectIntoViewport(T.touches[2].clientX,T.touches[2].clientY);Z[4]=H[0],Z[5]=H[1]}if(T.touches[1]){r.touchData.singleTouchMoved=!0,p(r.dragData.touchDragEles);var te=r.findContainerClientCoords();N=te[0],W=te[1],Q=te[2],_=te[3],k=T.touches[0].clientX-N,O=T.touches[0].clientY-W,A=T.touches[1].clientX-N,R=T.touches[1].clientY-W,j=0<=k&&k<=Q&&0<=A&&A<=Q&&0<=O&&O<=_&&0<=R&&R<=_;var K=V.pan(),re=V.zoom();I=ee(k,O,A,R),q=U(k,O,A,R),$=[(k+A)/2,(O+R)/2],F=[($[0]-K.x)/re,($[1]-K.y)/re];var ye=200,me=ye*ye;if(q=1){for(var Ze=r.touchData.startPosition=[null,null,null,null,null,null],$e=0;$e=r.touchTapThreshold2}if(V&&r.touchData.cxt){T.preventDefault();var Ze=T.touches[0].clientX-N,$e=T.touches[0].clientY-W,fr=T.touches[1].clientX-N,Qe=T.touches[1].clientY-W,lr=U(Ze,$e,fr,Qe),xr=lr/q,yr=150,cr=yr*yr,Br=1.5,Fr=Br*Br;if(xr>=Fr||lr>=cr){r.touchData.cxt=!1,r.data.bgActivePosistion=void 0,r.redrawHint("select",!0);var Er={originalEvent:T,type:"cxttapend",position:{x:H[0],y:H[1]}};r.touchData.start?(r.touchData.start.unactivate().emit(Er),r.touchData.start=null):G.emit(Er)}}if(V&&r.touchData.cxt){var Er={originalEvent:T,type:"cxtdrag",position:{x:H[0],y:H[1]}};r.data.bgActivePosistion=void 0,r.redrawHint("select",!0),r.touchData.start?r.touchData.start.emit(Er):G.emit(Er),r.touchData.start&&(r.touchData.start._private.grabbed=!1),r.touchData.cxtDragged=!0;var He=r.findNearestElement(H[0],H[1],!0,!0);(!r.touchData.cxtOver||He!==r.touchData.cxtOver)&&(r.touchData.cxtOver&&r.touchData.cxtOver.emit({originalEvent:T,type:"cxtdragout",position:{x:H[0],y:H[1]}}),r.touchData.cxtOver=He,He&&He.emit({originalEvent:T,type:"cxtdragover",position:{x:H[0],y:H[1]}}))}else if(V&&T.touches[2]&&G.boxSelectionEnabled())T.preventDefault(),r.data.bgActivePosistion=void 0,this.lastThreeTouch=+new Date,r.touchData.selecting||G.emit({originalEvent:T,type:"boxstart",position:{x:H[0],y:H[1]}}),r.touchData.selecting=!0,r.touchData.didSelect=!0,Z[4]=1,!Z||Z.length===0||Z[0]===void 0?(Z[0]=(H[0]+H[2]+H[4])/3,Z[1]=(H[1]+H[3]+H[5])/3,Z[2]=(H[0]+H[2]+H[4])/3+1,Z[3]=(H[1]+H[3]+H[5])/3+1):(Z[2]=(H[0]+H[2]+H[4])/3,Z[3]=(H[1]+H[3]+H[5])/3),r.redrawHint("select",!0),r.redraw();else if(V&&T.touches[1]&&!r.touchData.didSelect&&G.zoomingEnabled()&&G.panningEnabled()&&G.userZoomingEnabled()&&G.userPanningEnabled()){T.preventDefault(),r.data.bgActivePosistion=void 0,r.redrawHint("select",!0);var Ye=r.dragData.touchDragEles;if(Ye){r.redrawHint("drag",!0);for(var tr=0;tr0&&!r.hoverData.draggingEles&&!r.swipePanning&&r.data.bgActivePosistion!=null&&(r.data.bgActivePosistion=void 0,r.redrawHint("select",!0),r.redraw())}},!1);var X;r.registerBinding(e,"touchcancel",X=function(T){var V=r.touchData.start;r.touchData.capture=!1,V&&V.unactivate()});var se,he,ae,ie;if(r.registerBinding(e,"touchend",se=function(T){var V=r.touchData.start,Z=r.touchData.capture;if(Z)T.touches.length===0&&(r.touchData.capture=!1),T.preventDefault();else return;var G=r.selection;r.swipePanning=!1,r.hoverData.draggingEles=!1;var H=r.cy,te=H.zoom(),K=r.touchData.now,re=r.touchData.earlier;if(T.touches[0]){var ye=r.projectIntoViewport(T.touches[0].clientX,T.touches[0].clientY);K[0]=ye[0],K[1]=ye[1]}if(T.touches[1]){var ye=r.projectIntoViewport(T.touches[1].clientX,T.touches[1].clientY);K[2]=ye[0],K[3]=ye[1]}if(T.touches[2]){var ye=r.projectIntoViewport(T.touches[2].clientX,T.touches[2].clientY);K[4]=ye[0],K[5]=ye[1]}V&&V.unactivate();var me;if(r.touchData.cxt){if(me={originalEvent:T,type:"cxttapend",position:{x:K[0],y:K[1]}},V?V.emit(me):H.emit(me),!r.touchData.cxtDragged){var fe={originalEvent:T,type:"cxttap",position:{x:K[0],y:K[1]}};V?V.emit(fe):H.emit(fe)}r.touchData.start&&(r.touchData.start._private.grabbed=!1),r.touchData.cxt=!1,r.touchData.start=null,r.redraw();return}if(!T.touches[2]&&H.boxSelectionEnabled()&&r.touchData.selecting){r.touchData.selecting=!1;var we=H.collection(r.getAllInBox(G[0],G[1],G[2],G[3]));G[0]=void 0,G[1]=void 0,G[2]=void 0,G[3]=void 0,G[4]=0,r.redrawHint("select",!0),H.emit({type:"boxend",originalEvent:T,position:{x:K[0],y:K[1]}});var le=function(cr){return cr.selectable()&&!cr.selected()};we.emit("box").stdFilter(le).select().emit("boxselect"),we.nonempty()&&r.redrawHint("eles",!0),r.redraw()}if(V?.unactivate(),T.touches[2])r.data.bgActivePosistion=void 0,r.redrawHint("select",!0);else if(!T.touches[1]){if(!T.touches[0]){if(!T.touches[0]){r.data.bgActivePosistion=void 0,r.redrawHint("select",!0);var ge=r.dragData.touchDragEles;if(V!=null){var Ne=V._private.grabbed;p(ge),r.redrawHint("drag",!0),r.redrawHint("eles",!0),Ne&&(V.emit("freeon"),ge.emit("free"),r.dragData.didDrag&&(V.emit("dragfreeon"),ge.emit("dragfree"))),a(V,["touchend","tapend","vmouseup","tapdragout"],T,{x:K[0],y:K[1]}),V.unactivate(),r.touchData.start=null}else{var Ae=r.findNearestElement(K[0],K[1],!0,!0);a(Ae,["touchend","tapend","vmouseup","tapdragout"],T,{x:K[0],y:K[1]})}var ur=r.touchData.startPosition[0]-K[0],Ze=ur*ur,$e=r.touchData.startPosition[1]-K[1],fr=$e*$e,Qe=Ze+fr,lr=Qe*te*te;r.touchData.singleTouchMoved||(V||H.$(":selected").unselect(["tapunselect"]),a(V,["tap","vclick"],T,{x:K[0],y:K[1]}),he=!1,T.timeStamp-ie<=H.multiClickDebounceTime()?(ae&&clearTimeout(ae),he=!0,ie=null,a(V,["dbltap","vdblclick"],T,{x:K[0],y:K[1]})):(ae=setTimeout(function(){he||a(V,["onetap","voneclick"],T,{x:K[0],y:K[1]})},H.multiClickDebounceTime()),ie=T.timeStamp)),V!=null&&!r.dragData.didDrag&&V._private.selectable&&lr"u"){var ue=[],ce=function(T){return{clientX:T.clientX,clientY:T.clientY,force:1,identifier:T.pointerId,pageX:T.pageX,pageY:T.pageY,radiusX:T.width/2,radiusY:T.height/2,screenX:T.screenX,screenY:T.screenY,target:T.target}},ve=function(T){return{event:T,touch:ce(T)}},pe=function(T){ue.push(ve(T))},Pe=function(T){for(var V=0;V0)return N[0]}return null},d=Object.keys(c),y=0;y0?h:po(i,s,e,t,a,n,o,l)},checkPoint:function(e,t,a,n,i,s,o,l){l=l==="auto"?ht(n,i):l;var u=2*l;if($r(e,t,this.points,s,o,n,i-u,[0,-1],a)||$r(e,t,this.points,s,o,n-u,i,[0,-1],a))return!0;var v=n/2+2*a,f=i/2+2*a,c=[s-v,o-f,s-v,o,s+v,o,s+v,o-f];return!!(dr(e,t,c)||vt(e,t,u,u,s+n/2-l,o+i/2-l,a)||vt(e,t,u,u,s-n/2+l,o+i/2-l,a))}}};Gr.registerNodeShapes=function(){var r=this.nodeShapes={},e=this;this.generateEllipse(),this.generatePolygon("triangle",vr(3,0)),this.generateRoundPolygon("round-triangle",vr(3,0)),this.generatePolygon("rectangle",vr(4,0)),r.square=r.rectangle,this.generateRoundRectangle(),this.generateCutRectangle(),this.generateBarrel(),this.generateBottomRoundrectangle();{var t=[0,1,1,0,0,-1,-1,0];this.generatePolygon("diamond",t),this.generateRoundPolygon("round-diamond",t)}this.generatePolygon("pentagon",vr(5,0)),this.generateRoundPolygon("round-pentagon",vr(5,0)),this.generatePolygon("hexagon",vr(6,0)),this.generateRoundPolygon("round-hexagon",vr(6,0)),this.generatePolygon("heptagon",vr(7,0)),this.generateRoundPolygon("round-heptagon",vr(7,0)),this.generatePolygon("octagon",vr(8,0)),this.generateRoundPolygon("round-octagon",vr(8,0));var a=new Array(20);{var n=$n(5,0),i=$n(5,Math.PI/5),s=.5*(3-Math.sqrt(5));s*=1.57;for(var o=0;o=e.deqFastCost*w)break}else if(u){if(m>=e.deqCost*h||m>=e.deqAvgCost*c)break}else if(b>=e.deqNoDrawCost*Fn)break;var S=e.deq(a,p,y);if(S.length>0)for(var E=0;E0&&(e.onDeqd(a,d),!u&&e.shouldRedraw(a,d,p,y)&&i())},o=e.priority||ui;n.beforeRender(s,o(a))}}}},kg=function(){function r(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:_a;ai(this,r),this.idsByKey=new Or,this.keyForId=new Or,this.cachesByLvl=new Or,this.lvls=[],this.getKey=e,this.doesEleInvalidateKey=t}return ni(r,[{key:"getIdsFor",value:function(t){t==null&&Ve("Can not get id list for null key");var a=this.idsByKey,n=this.idsByKey.get(t);return n||(n=new Ft,a.set(t,n)),n}},{key:"addIdForKey",value:function(t,a){t!=null&&this.getIdsFor(t).add(a)}},{key:"deleteIdForKey",value:function(t,a){t!=null&&this.getIdsFor(t).delete(a)}},{key:"getNumberOfIdsForKey",value:function(t){return t==null?0:this.getIdsFor(t).size}},{key:"updateKeyMappingFor",value:function(t){var a=t.id(),n=this.keyForId.get(a),i=this.getKey(t);this.deleteIdForKey(n,a),this.addIdForKey(i,a),this.keyForId.set(a,i)}},{key:"deleteKeyMappingFor",value:function(t){var a=t.id(),n=this.keyForId.get(a);this.deleteIdForKey(n,a),this.keyForId.delete(a)}},{key:"keyHasChangedFor",value:function(t){var a=t.id(),n=this.keyForId.get(a),i=this.getKey(t);return n!==i}},{key:"isInvalid",value:function(t){return this.keyHasChangedFor(t)||this.doesEleInvalidateKey(t)}},{key:"getCachesAt",value:function(t){var a=this.cachesByLvl,n=this.lvls,i=a.get(t);return i||(i=new Or,a.set(t,i),n.push(t)),i}},{key:"getCache",value:function(t,a){return this.getCachesAt(a).get(t)}},{key:"get",value:function(t,a){var n=this.getKey(t),i=this.getCache(n,a);return i!=null&&this.updateKeyMappingFor(t),i}},{key:"getForCachedKey",value:function(t,a){var n=this.keyForId.get(t.id()),i=this.getCache(n,a);return i}},{key:"hasCache",value:function(t,a){return this.getCachesAt(a).has(t)}},{key:"has",value:function(t,a){var n=this.getKey(t);return this.hasCache(n,a)}},{key:"setCache",value:function(t,a,n){n.key=t,this.getCachesAt(a).set(t,n)}},{key:"set",value:function(t,a,n){var i=this.getKey(t);this.setCache(i,a,n),this.updateKeyMappingFor(t)}},{key:"deleteCache",value:function(t,a){this.getCachesAt(a).delete(t)}},{key:"delete",value:function(t,a){var n=this.getKey(t);this.deleteCache(n,a)}},{key:"invalidateKey",value:function(t){var a=this;this.lvls.forEach(function(n){return a.deleteCache(t,n)})}},{key:"invalidate",value:function(t){var a=t.id(),n=this.keyForId.get(a);this.deleteKeyMappingFor(t);var i=this.doesEleInvalidateKey(t);return i&&this.invalidateKey(n),i||this.getNumberOfIdsForKey(n)===0}}]),r}(),Ns=25,qa=50,Za=-4,jn=3,Pg=7.99,Bg=8,Mg=1024,Lg=1024,Ag=1024,Rg=.2,Og=.8,Ig=10,zg=.15,Ng=.1,Fg=.9,Vg=.9,qg=100,$g=1,Pt={dequeue:"dequeue",downscale:"downscale",highQuality:"highQuality"},Hg=er({getKey:null,doesEleInvalidateKey:_a,drawElement:null,getBoundingBox:null,getRotationPoint:null,getRotationOffset:null,isVisible:oo,allowEdgeTxrCaching:!0,allowParentTxrCaching:!0}),ia=function(e,t){var a=this;a.renderer=e,a.onDequeues=[];var n=Hg(t);be(a,n),a.lookup=new kg(n.getKey,n.doesEleInvalidateKey),a.setupDequeueing()},Ue=ia.prototype;Ue.reasons=Pt;Ue.getTextureQueue=function(r){var e=this;return e.eleImgCaches=e.eleImgCaches||{},e.eleImgCaches[r]=e.eleImgCaches[r]||[]};Ue.getRetiredTextureQueue=function(r){var e=this,t=e.eleImgCaches.retired=e.eleImgCaches.retired||{},a=t[r]=t[r]||[];return a};Ue.getElementQueue=function(){var r=this,e=r.eleCacheQueue=r.eleCacheQueue||new Ea(function(t,a){return a.reqs-t.reqs});return e};Ue.getElementKeyToQueue=function(){var r=this,e=r.eleKeyToCacheQueue=r.eleKeyToCacheQueue||{};return e};Ue.getElement=function(r,e,t,a,n){var i=this,s=this.renderer,o=s.cy.zoom(),l=this.lookup;if(!e||e.w===0||e.h===0||isNaN(e.w)||isNaN(e.h)||!r.visible()||r.removed()||!i.allowEdgeTxrCaching&&r.isEdge()||!i.allowParentTxrCaching&&r.isParent())return null;if(a==null&&(a=Math.ceil(vi(o*t))),a=Pg||a>jn)return null;var u=Math.pow(2,a),v=e.h*u,f=e.w*u,c=s.eleTextBiggerThanMin(r,u);if(!this.isVisible(r,c))return null;var h=l.get(r,a);if(h&&h.invalidated&&(h.invalidated=!1,h.texture.invalidatedWidth-=h.width),h)return h;var d;if(v<=Ns?d=Ns:v<=qa?d=qa:d=Math.ceil(v/qa)*qa,v>Ag||f>Lg)return null;var y=i.getTextureQueue(d),p=y[y.length-2],g=function(){return i.recycleTexture(d,f)||i.addTexture(d,f)};p||(p=y[y.length-1]),p||(p=g()),p.width-p.usedWidtha;P--)C=i.getElement(r,e,t,P,Pt.downscale);M()}else return i.queueElement(r,E.level-1),E;else{var B;if(!b&&!w&&!S)for(var L=a-1;L>=Za;L--){var k=l.get(r,L);if(k){B=k;break}}if(m(B))return i.queueElement(r,a),B;p.context.translate(p.usedWidth,0),p.context.scale(u,u),this.drawElement(p.context,r,e,c,!1),p.context.scale(1/u,1/u),p.context.translate(-p.usedWidth,0)}return h={x:p.usedWidth,texture:p,level:a,scale:u,width:f,height:v,scaledLabelShown:c},p.usedWidth+=Math.ceil(f+Bg),p.eleCaches.push(h),l.set(r,a,h),i.checkTextureFullness(p),h};Ue.invalidateElements=function(r){for(var e=0;e=Rg*r.width&&this.retireTexture(r)};Ue.checkTextureFullness=function(r){var e=this,t=e.getTextureQueue(r.height);r.usedWidth/r.width>Og&&r.fullnessChecks>=Ig?_r(t,r):r.fullnessChecks++};Ue.retireTexture=function(r){var e=this,t=r.height,a=e.getTextureQueue(t),n=this.lookup;_r(a,r),r.retired=!0;for(var i=r.eleCaches,s=0;s=e)return s.retired=!1,s.usedWidth=0,s.invalidatedWidth=0,s.fullnessChecks=0,li(s.eleCaches),s.context.setTransform(1,0,0,1,0,0),s.context.clearRect(0,0,s.width,s.height),_r(n,s),a.push(s),s}};Ue.queueElement=function(r,e){var t=this,a=t.getElementQueue(),n=t.getElementKeyToQueue(),i=this.getKey(r),s=n[i];if(s)s.level=Math.max(s.level,e),s.eles.merge(r),s.reqs++,a.updateItem(s);else{var o={eles:r.spawn().merge(r),level:e,reqs:1,key:i};a.push(o),n[i]=o}};Ue.dequeue=function(r){for(var e=this,t=e.getElementQueue(),a=e.getElementKeyToQueue(),n=[],i=e.lookup,s=0;s<$g&&t.size()>0;s++){var o=t.pop(),l=o.key,u=o.eles[0],v=i.hasCache(u,o.level);if(a[l]=null,v)continue;n.push(o);var f=e.getBoundingBox(u);e.getElement(u,f,r,o.level,Pt.dequeue)}return n};Ue.removeFromQueue=function(r){var e=this,t=e.getElementQueue(),a=e.getElementKeyToQueue(),n=this.getKey(r),i=a[n];i!=null&&(i.eles.length===1?(i.reqs=oi,t.updateItem(i),t.pop(),a[n]=null):i.eles.unmerge(r))};Ue.onDequeue=function(r){this.onDequeues.push(r)};Ue.offDequeue=function(r){_r(this.onDequeues,r)};Ue.setupDequeueing=yu.setupDequeueing({deqRedrawThreshold:qg,deqCost:zg,deqAvgCost:Ng,deqNoDrawCost:Fg,deqFastCost:Vg,deq:function(e,t,a){return e.dequeue(t,a)},onDeqd:function(e,t){for(var a=0;a=Kg||t>on)return null}a.validateLayersElesOrdering(t,r);var l=a.layersByLevel,u=Math.pow(2,t),v=l[t]=l[t]||[],f,c=a.levelIsComplete(t,r),h,d=function(){var M=function(O){if(a.validateLayersElesOrdering(O,r),a.levelIsComplete(O,r))return h=l[O],!0},P=function(O){if(!h)for(var A=t+O;oa<=A&&A<=on&&!M(A);A+=O);};P(1),P(-1);for(var B=v.length-1;B>=0;B--){var L=v[B];L.invalid&&_r(v,L)}};if(!c)d();else return v;var y=function(){if(!f){f=hr();for(var M=0;M_g)return null;var L=a.makeLayer(f,t);if(P!=null){var k=v.indexOf(P)+1;v.splice(k,0,L)}else(M.insert===void 0||M.insert)&&v.unshift(L);return L};if(a.skipping&&!o)return null;for(var g=null,m=r.length/Gg,b=!o,w=0;w=m||!go(g.bb,S.boundingBox()))&&(g=p({insert:!0,after:g}),!g))return null;h||b?a.queueLayer(g,S):a.drawEleInLayer(g,S,t,e),g.eles.push(S),x[t]=g}return h||(b?null:v)};rr.getEleLevelForLayerLevel=function(r,e){return r};rr.drawEleInLayer=function(r,e,t,a){var n=this,i=this.renderer,s=r.context,o=e.boundingBox();o.w===0||o.h===0||!e.visible()||(t=n.getEleLevelForLayerLevel(t,a),i.setImgSmoothing(s,!1),i.drawCachedElement(s,e,null,null,t,jg),i.setImgSmoothing(s,!0))};rr.levelIsComplete=function(r,e){var t=this,a=t.layersByLevel[r];if(!a||a.length===0)return!1;for(var n=0,i=0;i0||s.invalid)return!1;n+=s.eles.length}return n===e.length};rr.validateLayersElesOrdering=function(r,e){var t=this.layersByLevel[r];if(t)for(var a=0;a0){e=!0;break}}return e};rr.invalidateElements=function(r){var e=this;r.length!==0&&(e.lastInvalidationTime=qr(),!(r.length===0||!e.haveLayers())&&e.updateElementsInLayers(r,function(a,n,i){e.invalidateLayer(a)}))};rr.invalidateLayer=function(r){if(this.lastInvalidationTime=qr(),!r.invalid){var e=r.level,t=r.eles,a=this.layersByLevel[e];_r(a,r),r.elesQueue=[],r.invalid=!0,r.replacement&&(r.replacement.invalid=!0);for(var n=0;n3&&arguments[3]!==void 0?arguments[3]:!0,n=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,i=arguments.length>5&&arguments[5]!==void 0?arguments[5]:!0,s=this,o=e._private.rscratch;if(!(i&&!e.visible())&&!(o.badLine||o.allpts==null||isNaN(o.allpts[0]))){var l;t&&(l=t,r.translate(-l.x1,-l.y1));var u=i?e.pstyle("opacity").value:1,v=i?e.pstyle("line-opacity").value:1,f=e.pstyle("curve-style").value,c=e.pstyle("line-style").value,h=e.pstyle("width").pfValue,d=e.pstyle("line-cap").value,y=e.pstyle("line-outline-width").value,p=e.pstyle("line-outline-color").value,g=u*v,m=u*v,b=function(){var O=arguments.length>0&&arguments[0]!==void 0?arguments[0]:g;f==="straight-triangle"?(s.eleStrokeStyle(r,e,O),s.drawEdgeTrianglePath(e,r,o.allpts)):(r.lineWidth=h,r.lineCap=d,s.eleStrokeStyle(r,e,O),s.drawEdgePath(e,r,o.allpts,c),r.lineCap="butt")},w=function(){var O=arguments.length>0&&arguments[0]!==void 0?arguments[0]:g;if(r.lineWidth=h+y,r.lineCap=d,y>0)s.colorStrokeStyle(r,p[0],p[1],p[2],O);else{r.lineCap="butt";return}f==="straight-triangle"?s.drawEdgeTrianglePath(e,r,o.allpts):(s.drawEdgePath(e,r,o.allpts,c),r.lineCap="butt")},S=function(){n&&s.drawEdgeOverlay(r,e)},E=function(){n&&s.drawEdgeUnderlay(r,e)},x=function(){var O=arguments.length>0&&arguments[0]!==void 0?arguments[0]:m;s.drawArrowheads(r,e,O)},D=function(){s.drawElementText(r,e,null,a)};r.lineJoin="round";var C=e.pstyle("ghost").value==="yes";if(C){var M=e.pstyle("ghost-offset-x").pfValue,P=e.pstyle("ghost-offset-y").pfValue,B=e.pstyle("ghost-opacity").value,L=g*B;r.translate(M,P),b(L),x(L),r.translate(-M,-P)}else w();E(),b(),x(),S(),D(),t&&r.translate(l.x1,l.y1)}};var wu=function(e){if(!["overlay","underlay"].includes(e))throw new Error("Invalid state");return function(t,a){if(a.visible()){var n=a.pstyle("".concat(e,"-opacity")).value;if(n!==0){var i=this,s=i.usePaths(),o=a._private.rscratch,l=a.pstyle("".concat(e,"-padding")).pfValue,u=2*l,v=a.pstyle("".concat(e,"-color")).value;t.lineWidth=u,o.edgeType==="self"&&!s?t.lineCap="butt":t.lineCap="round",i.colorStrokeStyle(t,v[0],v[1],v[2],n),i.drawEdgePath(a,t,o.allpts,"solid")}}}};Kr.drawEdgeOverlay=wu("overlay");Kr.drawEdgeUnderlay=wu("underlay");Kr.drawEdgePath=function(r,e,t,a){var n=r._private.rscratch,i=e,s,o=!1,l=this.usePaths(),u=r.pstyle("line-dash-pattern").pfValue,v=r.pstyle("line-dash-offset").pfValue;if(l){var f=t.join("$"),c=n.pathCacheKey&&n.pathCacheKey===f;c?(s=e=n.pathCache,o=!0):(s=e=new Path2D,n.pathCacheKey=f,n.pathCache=s)}if(i.setLineDash)switch(a){case"dotted":i.setLineDash([1,1]);break;case"dashed":i.setLineDash(u),i.lineDashOffset=v;break;case"solid":i.setLineDash([]);break}if(!o&&!n.badLine)switch(e.beginPath&&e.beginPath(),e.moveTo(t[0],t[1]),n.edgeType){case"bezier":case"self":case"compound":case"multibezier":for(var h=2;h+35&&arguments[5]!==void 0?arguments[5]:!0,s=this;if(a==null){if(i&&!s.eleTextBiggerThanMin(e))return}else if(a===!1)return;if(e.isNode()){var o=e.pstyle("label");if(!o||!o.value)return;var l=s.getLabelJustification(e);r.textAlign=l,r.textBaseline="bottom"}else{var u=e.element()._private.rscratch.badLine,v=e.pstyle("label"),f=e.pstyle("source-label"),c=e.pstyle("target-label");if(u||(!v||!v.value)&&(!f||!f.value)&&(!c||!c.value))return;r.textAlign="center",r.textBaseline="bottom"}var h=!t,d;t&&(d=t,r.translate(-d.x1,-d.y1)),n==null?(s.drawText(r,e,null,h,i),e.isEdge()&&(s.drawText(r,e,"source",h,i),s.drawText(r,e,"target",h,i))):s.drawText(r,e,n,h,i),t&&r.translate(d.x1,d.y1)};bt.getFontCache=function(r){var e;this.fontCaches=this.fontCaches||[];for(var t=0;t2&&arguments[2]!==void 0?arguments[2]:!0,a=e.pstyle("font-style").strValue,n=e.pstyle("font-size").pfValue+"px",i=e.pstyle("font-family").strValue,s=e.pstyle("font-weight").strValue,o=t?e.effectiveOpacity()*e.pstyle("text-opacity").value:1,l=e.pstyle("text-outline-opacity").value*o,u=e.pstyle("color").value,v=e.pstyle("text-outline-color").value;r.font=a+" "+s+" "+n+" "+i,r.lineJoin="round",this.colorFillStyle(r,u[0],u[1],u[2],o),this.colorStrokeStyle(r,v[0],v[1],v[2],l)};function qn(r,e,t,a,n){var i=arguments.length>5&&arguments[5]!==void 0?arguments[5]:5,s=arguments.length>6?arguments[6]:void 0;r.beginPath(),r.moveTo(e+i,t),r.lineTo(e+a-i,t),r.quadraticCurveTo(e+a,t,e+a,t+i),r.lineTo(e+a,t+n-i),r.quadraticCurveTo(e+a,t+n,e+a-i,t+n),r.lineTo(e+i,t+n),r.quadraticCurveTo(e,t+n,e,t+n-i),r.lineTo(e,t+i),r.quadraticCurveTo(e,t,e+i,t),r.closePath(),s?r.stroke():r.fill()}bt.getTextAngle=function(r,e){var t,a=r._private,n=a.rscratch,i=e?e+"-":"",s=r.pstyle(i+"text-rotation"),o=kr(n,"labelAngle",e);return s.strValue==="autorotate"?t=r.isEdge()?o:0:s.strValue==="none"?t=0:t=s.pfValue,t};bt.drawText=function(r,e,t){var a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0,n=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,i=e._private,s=i.rscratch,o=n?e.effectiveOpacity():1;if(!(n&&(o===0||e.pstyle("text-opacity").value===0))){t==="main"&&(t=null);var l=kr(s,"labelX",t),u=kr(s,"labelY",t),v,f,c=this.getLabelText(e,t);if(c!=null&&c!==""&&!isNaN(l)&&!isNaN(u)){this.setupTextStyle(r,e,n);var h=t?t+"-":"",d=kr(s,"labelWidth",t),y=kr(s,"labelHeight",t),p=e.pstyle(h+"text-margin-x").pfValue,g=e.pstyle(h+"text-margin-y").pfValue,m=e.isEdge(),b=e.pstyle("text-halign").value,w=e.pstyle("text-valign").value;m&&(b="center",w="center"),l+=p,u+=g;var S;switch(a?S=this.getTextAngle(e,t):S=0,S!==0&&(v=l,f=u,r.translate(v,f),r.rotate(S),l=0,u=0),w){case"top":break;case"center":u+=y/2;break;case"bottom":u+=y;break}var E=e.pstyle("text-background-opacity").value,x=e.pstyle("text-border-opacity").value,D=e.pstyle("text-border-width").pfValue,C=e.pstyle("text-background-padding").pfValue,M=e.pstyle("text-background-shape").strValue,P=M.indexOf("round")===0,B=2;if(E>0||D>0&&x>0){var L=l-C;switch(b){case"left":L-=d;break;case"center":L-=d/2;break}var k=u-y-C,O=d+2*C,A=y+2*C;if(E>0){var R=r.fillStyle,I=e.pstyle("text-background-color").value;r.fillStyle="rgba("+I[0]+","+I[1]+","+I[2]+","+E*o+")",P?qn(r,L,k,O,A,B):r.fillRect(L,k,O,A),r.fillStyle=R}if(D>0&&x>0){var q=r.strokeStyle,$=r.lineWidth,F=e.pstyle("text-border-color").value,N=e.pstyle("text-border-style").value;if(r.strokeStyle="rgba("+F[0]+","+F[1]+","+F[2]+","+x*o+")",r.lineWidth=D,r.setLineDash)switch(N){case"dotted":r.setLineDash([1,1]);break;case"dashed":r.setLineDash([4,2]);break;case"double":r.lineWidth=D/4,r.setLineDash([]);break;case"solid":r.setLineDash([]);break}if(P?qn(r,L,k,O,A,B,"stroke"):r.strokeRect(L,k,O,A),N==="double"){var W=D/2;P?qn(r,L+W,k+W,O-W*2,A-W*2,B,"stroke"):r.strokeRect(L+W,k+W,O-W*2,A-W*2)}r.setLineDash&&r.setLineDash([]),r.lineWidth=$,r.strokeStyle=q}}var Q=2*e.pstyle("text-outline-width").pfValue;if(Q>0&&(r.lineWidth=Q),e.pstyle("text-wrap").value==="wrap"){var _=kr(s,"labelWrapCachedLines",t),j=kr(s,"labelLineHeight",t),ee=d/2,U=this.getLabelJustification(e);switch(U==="auto"||(b==="left"?U==="left"?l+=-d:U==="center"&&(l+=-ee):b==="center"?U==="left"?l+=-ee:U==="right"&&(l+=ee):b==="right"&&(U==="center"?l+=ee:U==="right"&&(l+=d))),w){case"top":u-=(_.length-1)*j;break;case"center":case"bottom":u-=(_.length-1)*j;break}for(var z=0;z<_.length;z++)Q>0&&r.strokeText(_[z],l,u),r.fillText(_[z],l,u),u+=j}else Q>0&&r.strokeText(c,l,u),r.fillText(c,l,u);S!==0&&(r.rotate(-S),r.translate(-v,-f))}}};var Yt={};Yt.drawNode=function(r,e,t){var a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0,n=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,i=arguments.length>5&&arguments[5]!==void 0?arguments[5]:!0,s=this,o,l,u=e._private,v=u.rscratch,f=e.position();if(!(!ne(f.x)||!ne(f.y))&&!(i&&!e.visible())){var c=i?e.effectiveOpacity():1,h=s.usePaths(),d,y=!1,p=e.padding();o=e.width()+2*p,l=e.height()+2*p;var g;t&&(g=t,r.translate(-g.x1,-g.y1));for(var m=e.pstyle("background-image"),b=m.value,w=new Array(b.length),S=new Array(b.length),E=0,x=0;x0&&arguments[0]!==void 0?arguments[0]:L;s.eleFillStyle(r,e,te)},z=function(){var te=arguments.length>0&&arguments[0]!==void 0?arguments[0]:F;s.colorStrokeStyle(r,k[0],k[1],k[2],te)},Y=function(){var te=arguments.length>0&&arguments[0]!==void 0?arguments[0]:_;s.colorStrokeStyle(r,W[0],W[1],W[2],te)},X=function(te,K,re,ye){var me=s.nodePathCache=s.nodePathCache||[],fe=so(re==="polygon"?re+","+ye.join(","):re,""+K,""+te,""+ee),we=me[fe],le,ge=!1;return we!=null?(le=we,ge=!0,v.pathCache=le):(le=new Path2D,me[fe]=v.pathCache=le),{path:le,cacheHit:ge}},se=e.pstyle("shape").strValue,he=e.pstyle("shape-polygon-points").pfValue;if(h){r.translate(f.x,f.y);var ae=X(o,l,se,he);d=ae.path,y=ae.cacheHit}var ie=function(){if(!y){var te=f;h&&(te={x:0,y:0}),s.nodeShapes[s.getNodeShape(e)].draw(d||r,te.x,te.y,o,l,ee,v)}h?r.fill(d):r.fill()},ue=function(){for(var te=arguments.length>0&&arguments[0]!==void 0?arguments[0]:c,K=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,re=u.backgrounding,ye=0,me=0;me0&&arguments[0]!==void 0?arguments[0]:!1,K=arguments.length>1&&arguments[1]!==void 0?arguments[1]:c;s.hasPie(e)&&(s.drawPie(r,e,K),te&&(h||s.nodeShapes[s.getNodeShape(e)].draw(r,f.x,f.y,o,l,ee,v)))},ve=function(){var te=arguments.length>0&&arguments[0]!==void 0?arguments[0]:c,K=(P>0?P:-P)*te,re=P>0?0:255;P!==0&&(s.colorFillStyle(r,re,re,re,K),h?r.fill(d):r.fill())},pe=function(){if(B>0){if(r.lineWidth=B,r.lineCap=R,r.lineJoin=A,r.setLineDash)switch(O){case"dotted":r.setLineDash([1,1]);break;case"dashed":r.setLineDash(q),r.lineDashOffset=$;break;case"solid":case"double":r.setLineDash([]);break}if(I!=="center"){if(r.save(),r.lineWidth*=2,I==="inside")h?r.clip(d):r.clip();else{var te=new Path2D;te.rect(-o/2-B,-l/2-B,o+2*B,l+2*B),te.addPath(d),r.clip(te,"evenodd")}h?r.stroke(d):r.stroke(),r.restore()}else h?r.stroke(d):r.stroke();if(O==="double"){r.lineWidth=B/3;var K=r.globalCompositeOperation;r.globalCompositeOperation="destination-out",h?r.stroke(d):r.stroke(),r.globalCompositeOperation=K}r.setLineDash&&r.setLineDash([])}},Pe=function(){if(N>0){if(r.lineWidth=N,r.lineCap="butt",r.setLineDash)switch(Q){case"dotted":r.setLineDash([1,1]);break;case"dashed":r.setLineDash([4,2]);break;case"solid":case"double":r.setLineDash([]);break}var te=f;h&&(te={x:0,y:0});var K=s.getNodeShape(e),re=B;I==="inside"&&(re=0),I==="outside"&&(re*=2);var ye=(o+re+(N+j))/o,me=(l+re+(N+j))/l,fe=o*ye,we=l*me,le=s.nodeShapes[K].points,ge;if(h){var Ne=X(fe,we,K,le);ge=Ne.path}if(K==="ellipse")s.drawEllipsePath(ge||r,te.x,te.y,fe,we);else if(["round-diamond","round-heptagon","round-hexagon","round-octagon","round-pentagon","round-polygon","round-triangle","round-tag"].includes(K)){var Ae=0,ur=0,Ze=0;K==="round-diamond"?Ae=(re+j+N)*1.4:K==="round-heptagon"?(Ae=(re+j+N)*1.075,Ze=-(re/2+j+N)/35):K==="round-hexagon"?Ae=(re+j+N)*1.12:K==="round-pentagon"?(Ae=(re+j+N)*1.13,Ze=-(re/2+j+N)/15):K==="round-tag"?(Ae=(re+j+N)*1.12,ur=(re/2+N+j)*.07):K==="round-triangle"&&(Ae=(re+j+N)*(Math.PI/2),Ze=-(re+j/2+N)/Math.PI),Ae!==0&&(ye=(o+Ae)/o,fe=o*ye,["round-hexagon","round-tag"].includes(K)||(me=(l+Ae)/l,we=l*me)),ee=ee==="auto"?mo(fe,we):ee;for(var $e=fe/2,fr=we/2,Qe=ee+(re+N+j)/2,lr=new Array(le.length/2),xr=new Array(le.length/2),yr=0;yr0){if(n=n||a.position(),i==null||s==null){var h=a.padding();i=a.width()+2*h,s=a.height()+2*h}o.colorFillStyle(t,v[0],v[1],v[2],u),o.nodeShapes[f].draw(t,n.x,n.y,i+l*2,s+l*2,c),t.fill()}}}};Yt.drawNodeOverlay=xu("overlay");Yt.drawNodeUnderlay=xu("underlay");Yt.hasPie=function(r){return r=r[0],r._private.hasPie};Yt.drawPie=function(r,e,t,a){e=e[0],a=a||e.position();var n=e.cy().style(),i=e.pstyle("pie-size"),s=a.x,o=a.y,l=e.width(),u=e.height(),v=Math.min(l,u)/2,f=0,c=this.usePaths();c&&(s=0,o=0),i.units==="%"?v=v*i.pfValue:i.pfValue!==void 0&&(v=i.pfValue/2);for(var h=1;h<=n.pieBackgroundN;h++){var d=e.pstyle("pie-"+h+"-background-size").value,y=e.pstyle("pie-"+h+"-background-color").value,p=e.pstyle("pie-"+h+"-background-opacity").value*t,g=d/100;g+f>1&&(g=1-f);var m=1.5*Math.PI+2*Math.PI*f,b=2*Math.PI*g,w=m+b;d===0||f>=1||f+g>1||(r.beginPath(),r.moveTo(s,o),r.arc(s,o,v,m,w),r.closePath(),this.colorFillStyle(r,y[0],y[1],y[2],p),r.fill(),f+=g)}};var pr={},vp=100;pr.getPixelRatio=function(){var r=this.data.contexts[0];if(this.forcedPixelRatio!=null)return this.forcedPixelRatio;var e=this.cy.window(),t=r.backingStorePixelRatio||r.webkitBackingStorePixelRatio||r.mozBackingStorePixelRatio||r.msBackingStorePixelRatio||r.oBackingStorePixelRatio||r.backingStorePixelRatio||1;return(e.devicePixelRatio||1)/t};pr.paintCache=function(r){for(var e=this.paintCaches=this.paintCaches||[],t=!0,a,n=0;ns.minMbLowQualFrames&&(s.motionBlurPxRatio=s.mbPxRBlurry)),s.clearingMotionBlur&&(s.motionBlurPxRatio=1),s.textureDrawLastFrame&&!f&&(v[s.NODE]=!0,v[s.SELECT_BOX]=!0);var m=l.style(),b=l.zoom(),w=n!==void 0?n:b,S=l.pan(),E={x:S.x,y:S.y},x={zoom:b,pan:{x:S.x,y:S.y}},D=s.prevViewport,C=D===void 0||x.zoom!==D.zoom||x.pan.x!==D.pan.x||x.pan.y!==D.pan.y;!C&&!(y&&!d)&&(s.motionBlurPxRatio=1),i&&(E=i),w*=o,E.x*=o,E.y*=o;var M=s.getCachedZSortedEles();function P(ae,ie,ue,ce,ve){var pe=ae.globalCompositeOperation;ae.globalCompositeOperation="destination-out",s.colorFillStyle(ae,255,255,255,s.motionBlurTransparency),ae.fillRect(ie,ue,ce,ve),ae.globalCompositeOperation=pe}function B(ae,ie){var ue,ce,ve,pe;!s.clearingMotionBlur&&(ae===u.bufferContexts[s.MOTIONBLUR_BUFFER_NODE]||ae===u.bufferContexts[s.MOTIONBLUR_BUFFER_DRAG])?(ue={x:S.x*h,y:S.y*h},ce=b*h,ve=s.canvasWidth*h,pe=s.canvasHeight*h):(ue=E,ce=w,ve=s.canvasWidth,pe=s.canvasHeight),ae.setTransform(1,0,0,1,0,0),ie==="motionBlur"?P(ae,0,0,ve,pe):!e&&(ie===void 0||ie)&&ae.clearRect(0,0,ve,pe),t||(ae.translate(ue.x,ue.y),ae.scale(ce,ce)),i&&ae.translate(i.x,i.y),n&&ae.scale(n,n)}if(f||(s.textureDrawLastFrame=!1),f){if(s.textureDrawLastFrame=!0,!s.textureCache){s.textureCache={},s.textureCache.bb=l.mutableElements().boundingBox(),s.textureCache.texture=s.data.bufferCanvases[s.TEXTURE_BUFFER];var L=s.data.bufferContexts[s.TEXTURE_BUFFER];L.setTransform(1,0,0,1,0,0),L.clearRect(0,0,s.canvasWidth*s.textureMult,s.canvasHeight*s.textureMult),s.render({forcedContext:L,drawOnlyNodeLayer:!0,forcedPxRatio:o*s.textureMult});var x=s.textureCache.viewport={zoom:l.zoom(),pan:l.pan(),width:s.canvasWidth,height:s.canvasHeight};x.mpan={x:(0-x.pan.x)/x.zoom,y:(0-x.pan.y)/x.zoom}}v[s.DRAG]=!1,v[s.NODE]=!1;var k=u.contexts[s.NODE],O=s.textureCache.texture,x=s.textureCache.viewport;k.setTransform(1,0,0,1,0,0),c?P(k,0,0,x.width,x.height):k.clearRect(0,0,x.width,x.height);var A=m.core("outside-texture-bg-color").value,R=m.core("outside-texture-bg-opacity").value;s.colorFillStyle(k,A[0],A[1],A[2],R),k.fillRect(0,0,x.width,x.height);var b=l.zoom();B(k,!1),k.clearRect(x.mpan.x,x.mpan.y,x.width/x.zoom/o,x.height/x.zoom/o),k.drawImage(O,x.mpan.x,x.mpan.y,x.width/x.zoom/o,x.height/x.zoom/o)}else s.textureOnViewport&&!e&&(s.textureCache=null);var I=l.extent(),q=s.pinching||s.hoverData.dragging||s.swipePanning||s.data.wheelZooming||s.hoverData.draggingEles||s.cy.animated(),$=s.hideEdgesOnViewport&&q,F=[];if(F[s.NODE]=!v[s.NODE]&&c&&!s.clearedForMotionBlur[s.NODE]||s.clearingMotionBlur,F[s.NODE]&&(s.clearedForMotionBlur[s.NODE]=!0),F[s.DRAG]=!v[s.DRAG]&&c&&!s.clearedForMotionBlur[s.DRAG]||s.clearingMotionBlur,F[s.DRAG]&&(s.clearedForMotionBlur[s.DRAG]=!0),v[s.NODE]||t||a||F[s.NODE]){var N=c&&!F[s.NODE]&&h!==1,k=e||(N?s.data.bufferContexts[s.MOTIONBLUR_BUFFER_NODE]:u.contexts[s.NODE]),W=c&&!N?"motionBlur":void 0;B(k,W),$?s.drawCachedNodes(k,M.nondrag,o,I):s.drawLayeredElements(k,M.nondrag,o,I),s.debug&&s.drawDebugPoints(k,M.nondrag),!t&&!c&&(v[s.NODE]=!1)}if(!a&&(v[s.DRAG]||t||F[s.DRAG])){var N=c&&!F[s.DRAG]&&h!==1,k=e||(N?s.data.bufferContexts[s.MOTIONBLUR_BUFFER_DRAG]:u.contexts[s.DRAG]);B(k,c&&!N?"motionBlur":void 0),$?s.drawCachedNodes(k,M.drag,o,I):s.drawCachedElements(k,M.drag,o,I),s.debug&&s.drawDebugPoints(k,M.drag),!t&&!c&&(v[s.DRAG]=!1)}if(s.showFps||!a&&v[s.SELECT_BOX]&&!t){var k=e||u.contexts[s.SELECT_BOX];if(B(k),s.selection[4]==1&&(s.hoverData.selecting||s.touchData.selecting)){var b=s.cy.zoom(),Q=m.core("selection-box-border-width").value/b;k.lineWidth=Q,k.fillStyle="rgba("+m.core("selection-box-color").value[0]+","+m.core("selection-box-color").value[1]+","+m.core("selection-box-color").value[2]+","+m.core("selection-box-opacity").value+")",k.fillRect(s.selection[0],s.selection[1],s.selection[2]-s.selection[0],s.selection[3]-s.selection[1]),Q>0&&(k.strokeStyle="rgba("+m.core("selection-box-border-color").value[0]+","+m.core("selection-box-border-color").value[1]+","+m.core("selection-box-border-color").value[2]+","+m.core("selection-box-opacity").value+")",k.strokeRect(s.selection[0],s.selection[1],s.selection[2]-s.selection[0],s.selection[3]-s.selection[1]))}if(u.bgActivePosistion&&!s.hoverData.selecting){var b=s.cy.zoom(),_=u.bgActivePosistion;k.fillStyle="rgba("+m.core("active-bg-color").value[0]+","+m.core("active-bg-color").value[1]+","+m.core("active-bg-color").value[2]+","+m.core("active-bg-opacity").value+")",k.beginPath(),k.arc(_.x,_.y,m.core("active-bg-size").pfValue/b,0,2*Math.PI),k.fill()}var j=s.lastRedrawTime;if(s.showFps&&j){j=Math.round(j);var ee=Math.round(1e3/j);k.setTransform(1,0,0,1,0,0),k.fillStyle="rgba(255, 0, 0, 0.75)",k.strokeStyle="rgba(255, 0, 0, 0.75)",k.lineWidth=1,k.fillText("1 frame = "+j+" ms = "+ee+" fps",0,20);var U=60;k.strokeRect(0,30,250,20),k.fillRect(0,30,250*Math.min(ee/U,1),20)}t||(v[s.SELECT_BOX]=!1)}if(c&&h!==1){var z=u.contexts[s.NODE],Y=s.data.bufferCanvases[s.MOTIONBLUR_BUFFER_NODE],X=u.contexts[s.DRAG],se=s.data.bufferCanvases[s.MOTIONBLUR_BUFFER_DRAG],he=function(ie,ue,ce){ie.setTransform(1,0,0,1,0,0),ce||!g?ie.clearRect(0,0,s.canvasWidth,s.canvasHeight):P(ie,0,0,s.canvasWidth,s.canvasHeight);var ve=h;ie.drawImage(ue,0,0,s.canvasWidth*ve,s.canvasHeight*ve,0,0,s.canvasWidth,s.canvasHeight)};(v[s.NODE]||F[s.NODE])&&(he(z,Y,F[s.NODE]),v[s.NODE]=!1),(v[s.DRAG]||F[s.DRAG])&&(he(X,se,F[s.DRAG]),v[s.DRAG]=!1)}s.prevViewport=x,s.clearingMotionBlur&&(s.clearingMotionBlur=!1,s.motionBlurCleared=!0,s.motionBlur=!0),c&&(s.motionBlurTimeout=setTimeout(function(){s.motionBlurTimeout=null,s.clearedForMotionBlur[s.NODE]=!1,s.clearedForMotionBlur[s.DRAG]=!1,s.motionBlur=!1,s.clearingMotionBlur=!f,s.mbFrames=0,v[s.NODE]=!0,v[s.DRAG]=!0,s.redraw()},vp)),e||l.emit("render")};var at={};at.drawPolygonPath=function(r,e,t,a,n,i){var s=a/2,o=n/2;r.beginPath&&r.beginPath(),r.moveTo(e+s*i[0],t+o*i[1]);for(var l=1;l0&&s>0){h.clearRect(0,0,i,s),h.globalCompositeOperation="source-over";var d=this.getCachedZSortedEles();if(r.full)h.translate(-a.x1*u,-a.y1*u),h.scale(u,u),this.drawElements(h,d),h.scale(1/u,1/u),h.translate(a.x1*u,a.y1*u);else{var y=e.pan(),p={x:y.x*u,y:y.y*u};u*=e.zoom(),h.translate(p.x,p.y),h.scale(u,u),this.drawElements(h,d),h.scale(1/u,1/u),h.translate(-p.x,-p.y)}r.bg&&(h.globalCompositeOperation="destination-over",h.fillStyle=r.bg,h.rect(0,0,i,s),h.fill())}return c};function fp(r,e){for(var t=atob(r),a=new ArrayBuffer(t.length),n=new Uint8Array(a),i=0;i"u"?"undefined":We(OffscreenCanvas))!=="undefined")t=new OffscreenCanvas(r,e);else{var a=this.cy.window(),n=a.document;t=n.createElement("canvas"),t.width=r,t.height=e}return t};[bu,Nr,Kr,Di,bt,Yt,pr,at,ka,Su].forEach(function(r){be(De,r)});var hp=[{name:"null",impl:su},{name:"base",impl:pu},{name:"canvas",impl:cp}],gp=[{type:"layout",extensions:xg},{type:"renderer",extensions:hp}],Du={},ku={};function Pu(r,e,t){var a=t,n=function(D){Me("Can not register `"+e+"` for `"+r+"` since `"+D+"` already exists in the prototype and can not be overridden")};if(r==="core"){if(ma.prototype[e])return n(e);ma.prototype[e]=t}else if(r==="collection"){if(je.prototype[e])return n(e);je.prototype[e]=t}else if(r==="layout"){for(var i=function(D){this.options=D,t.call(this,D),Se(this._private)||(this._private={}),this._private.cy=D.cy,this._private.listeners=[],this.createEmitter()},s=i.prototype=Object.create(t.prototype),o=[],l=0;l arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n}\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n if (!it) {\n if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n var F = function () {};\n return {\n s: F,\n n: function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function (e) {\n throw e;\n },\n f: F\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function () {\n it = it.call(o);\n },\n n: function () {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function (e) {\n didErr = true;\n err = e;\n },\n f: function () {\n try {\n if (!normalCompletion && it.return != null) it.return();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}\n\nvar _window = typeof window === 'undefined' ? null : window; // eslint-disable-line no-undef\n\nvar navigator = _window ? _window.navigator : null;\n_window ? _window.document : null;\nvar typeofstr = _typeof('');\nvar typeofobj = _typeof({});\nvar typeoffn = _typeof(function () {});\nvar typeofhtmlele = typeof HTMLElement === \"undefined\" ? \"undefined\" : _typeof(HTMLElement);\nvar instanceStr = function instanceStr(obj) {\n return obj && obj.instanceString && fn$6(obj.instanceString) ? obj.instanceString() : null;\n};\n\nvar string = function string(obj) {\n return obj != null && _typeof(obj) == typeofstr;\n};\nvar fn$6 = function fn(obj) {\n return obj != null && _typeof(obj) === typeoffn;\n};\nvar array = function array(obj) {\n return !elementOrCollection(obj) && (Array.isArray ? Array.isArray(obj) : obj != null && obj instanceof Array);\n};\nvar plainObject = function plainObject(obj) {\n return obj != null && _typeof(obj) === typeofobj && !array(obj) && obj.constructor === Object;\n};\nvar object = function object(obj) {\n return obj != null && _typeof(obj) === typeofobj;\n};\nvar number$1 = function number(obj) {\n return obj != null && _typeof(obj) === _typeof(1) && !isNaN(obj);\n};\nvar integer = function integer(obj) {\n return number$1(obj) && Math.floor(obj) === obj;\n};\nvar htmlElement = function htmlElement(obj) {\n if ('undefined' === typeofhtmlele) {\n return undefined;\n } else {\n return null != obj && obj instanceof HTMLElement;\n }\n};\nvar elementOrCollection = function elementOrCollection(obj) {\n return element(obj) || collection(obj);\n};\nvar element = function element(obj) {\n return instanceStr(obj) === 'collection' && obj._private.single;\n};\nvar collection = function collection(obj) {\n return instanceStr(obj) === 'collection' && !obj._private.single;\n};\nvar core = function core(obj) {\n return instanceStr(obj) === 'core';\n};\nvar stylesheet = function stylesheet(obj) {\n return instanceStr(obj) === 'stylesheet';\n};\nvar event = function event(obj) {\n return instanceStr(obj) === 'event';\n};\nvar emptyString = function emptyString(obj) {\n if (obj === undefined || obj === null) {\n // null is empty\n return true;\n } else if (obj === '' || obj.match(/^\\s+$/)) {\n return true; // empty string is empty\n }\n\n return false; // otherwise, we don't know what we've got\n};\nvar domElement = function domElement(obj) {\n if (typeof HTMLElement === 'undefined') {\n return false; // we're not in a browser so it doesn't matter\n } else {\n return obj instanceof HTMLElement;\n }\n};\nvar boundingBox = function boundingBox(obj) {\n return plainObject(obj) && number$1(obj.x1) && number$1(obj.x2) && number$1(obj.y1) && number$1(obj.y2);\n};\nvar promise = function promise(obj) {\n return object(obj) && fn$6(obj.then);\n};\nvar ms = function ms() {\n return navigator && navigator.userAgent.match(/msie|trident|edge/i);\n}; // probably a better way to detect this...\n\nvar memoize$1 = function memoize(fn, keyFn) {\n if (!keyFn) {\n keyFn = function keyFn() {\n if (arguments.length === 1) {\n return arguments[0];\n } else if (arguments.length === 0) {\n return 'undefined';\n }\n var args = [];\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n return args.join('$');\n };\n }\n var memoizedFn = function memoizedFn() {\n var self = this;\n var args = arguments;\n var ret;\n var k = keyFn.apply(self, args);\n var cache = memoizedFn.cache;\n if (!(ret = cache[k])) {\n ret = cache[k] = fn.apply(self, args);\n }\n return ret;\n };\n memoizedFn.cache = {};\n return memoizedFn;\n};\n\nvar camel2dash = memoize$1(function (str) {\n return str.replace(/([A-Z])/g, function (v) {\n return '-' + v.toLowerCase();\n });\n});\nvar dash2camel = memoize$1(function (str) {\n return str.replace(/(-\\w)/g, function (v) {\n return v[1].toUpperCase();\n });\n});\nvar prependCamel = memoize$1(function (prefix, str) {\n return prefix + str[0].toUpperCase() + str.substring(1);\n}, function (prefix, str) {\n return prefix + '$' + str;\n});\nvar capitalize = function capitalize(str) {\n if (emptyString(str)) {\n return str;\n }\n return str.charAt(0).toUpperCase() + str.substring(1);\n};\n\nvar number = '(?:[-+]?(?:(?:\\\\d+|\\\\d*\\\\.\\\\d+)(?:[Ee][+-]?\\\\d+)?))';\nvar rgba = 'rgb[a]?\\\\((' + number + '[%]?)\\\\s*,\\\\s*(' + number + '[%]?)\\\\s*,\\\\s*(' + number + '[%]?)(?:\\\\s*,\\\\s*(' + number + '))?\\\\)';\nvar rgbaNoBackRefs = 'rgb[a]?\\\\((?:' + number + '[%]?)\\\\s*,\\\\s*(?:' + number + '[%]?)\\\\s*,\\\\s*(?:' + number + '[%]?)(?:\\\\s*,\\\\s*(?:' + number + '))?\\\\)';\nvar hsla = 'hsl[a]?\\\\((' + number + ')\\\\s*,\\\\s*(' + number + '[%])\\\\s*,\\\\s*(' + number + '[%])(?:\\\\s*,\\\\s*(' + number + '))?\\\\)';\nvar hslaNoBackRefs = 'hsl[a]?\\\\((?:' + number + ')\\\\s*,\\\\s*(?:' + number + '[%])\\\\s*,\\\\s*(?:' + number + '[%])(?:\\\\s*,\\\\s*(?:' + number + '))?\\\\)';\nvar hex3 = '\\\\#[0-9a-fA-F]{3}';\nvar hex6 = '\\\\#[0-9a-fA-F]{6}';\n\nvar ascending = function ascending(a, b) {\n if (a < b) {\n return -1;\n } else if (a > b) {\n return 1;\n } else {\n return 0;\n }\n};\nvar descending = function descending(a, b) {\n return -1 * ascending(a, b);\n};\n\nvar extend = Object.assign != null ? Object.assign.bind(Object) : function (tgt) {\n var args = arguments;\n for (var i = 1; i < args.length; i++) {\n var obj = args[i];\n if (obj == null) {\n continue;\n }\n var keys = Object.keys(obj);\n for (var j = 0; j < keys.length; j++) {\n var k = keys[j];\n tgt[k] = obj[k];\n }\n }\n return tgt;\n};\n\n// get [r, g, b] from #abc or #aabbcc\nvar hex2tuple = function hex2tuple(hex) {\n if (!(hex.length === 4 || hex.length === 7) || hex[0] !== '#') {\n return;\n }\n var shortHex = hex.length === 4;\n var r, g, b;\n var base = 16;\n if (shortHex) {\n r = parseInt(hex[1] + hex[1], base);\n g = parseInt(hex[2] + hex[2], base);\n b = parseInt(hex[3] + hex[3], base);\n } else {\n r = parseInt(hex[1] + hex[2], base);\n g = parseInt(hex[3] + hex[4], base);\n b = parseInt(hex[5] + hex[6], base);\n }\n return [r, g, b];\n};\n\n// get [r, g, b, a] from hsl(0, 0, 0) or hsla(0, 0, 0, 0)\nvar hsl2tuple = function hsl2tuple(hsl) {\n var ret;\n var h, s, l, a, r, g, b;\n function hue2rgb(p, q, t) {\n if (t < 0) t += 1;\n if (t > 1) t -= 1;\n if (t < 1 / 6) return p + (q - p) * 6 * t;\n if (t < 1 / 2) return q;\n if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;\n return p;\n }\n var m = new RegExp('^' + hsla + '$').exec(hsl);\n if (m) {\n // get hue\n h = parseInt(m[1]);\n if (h < 0) {\n h = (360 - -1 * h % 360) % 360;\n } else if (h > 360) {\n h = h % 360;\n }\n h /= 360; // normalise on [0, 1]\n\n s = parseFloat(m[2]);\n if (s < 0 || s > 100) {\n return;\n } // saturation is [0, 100]\n s = s / 100; // normalise on [0, 1]\n\n l = parseFloat(m[3]);\n if (l < 0 || l > 100) {\n return;\n } // lightness is [0, 100]\n l = l / 100; // normalise on [0, 1]\n\n a = m[4];\n if (a !== undefined) {\n a = parseFloat(a);\n if (a < 0 || a > 1) {\n return;\n } // alpha is [0, 1]\n }\n\n // now, convert to rgb\n // code from http://mjijackson.com/2008/02/rgb-to-hsl-and-rgb-to-hsv-color-model-conversion-algorithms-in-javascript\n if (s === 0) {\n r = g = b = Math.round(l * 255); // achromatic\n } else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = Math.round(255 * hue2rgb(p, q, h + 1 / 3));\n g = Math.round(255 * hue2rgb(p, q, h));\n b = Math.round(255 * hue2rgb(p, q, h - 1 / 3));\n }\n ret = [r, g, b, a];\n }\n return ret;\n};\n\n// get [r, g, b, a] from rgb(0, 0, 0) or rgba(0, 0, 0, 0)\nvar rgb2tuple = function rgb2tuple(rgb) {\n var ret;\n var m = new RegExp('^' + rgba + '$').exec(rgb);\n if (m) {\n ret = [];\n var isPct = [];\n for (var i = 1; i <= 3; i++) {\n var channel = m[i];\n if (channel[channel.length - 1] === '%') {\n isPct[i] = true;\n }\n channel = parseFloat(channel);\n if (isPct[i]) {\n channel = channel / 100 * 255; // normalise to [0, 255]\n }\n\n if (channel < 0 || channel > 255) {\n return;\n } // invalid channel value\n\n ret.push(Math.floor(channel));\n }\n var atLeastOneIsPct = isPct[1] || isPct[2] || isPct[3];\n var allArePct = isPct[1] && isPct[2] && isPct[3];\n if (atLeastOneIsPct && !allArePct) {\n return;\n } // must all be percent values if one is\n\n var alpha = m[4];\n if (alpha !== undefined) {\n alpha = parseFloat(alpha);\n if (alpha < 0 || alpha > 1) {\n return;\n } // invalid alpha value\n\n ret.push(alpha);\n }\n }\n return ret;\n};\nvar colorname2tuple = function colorname2tuple(color) {\n return colors[color.toLowerCase()];\n};\nvar color2tuple = function color2tuple(color) {\n return (array(color) ? color : null) || colorname2tuple(color) || hex2tuple(color) || rgb2tuple(color) || hsl2tuple(color);\n};\nvar colors = {\n // special colour names\n transparent: [0, 0, 0, 0],\n // NB alpha === 0\n\n // regular colours\n aliceblue: [240, 248, 255],\n antiquewhite: [250, 235, 215],\n aqua: [0, 255, 255],\n aquamarine: [127, 255, 212],\n azure: [240, 255, 255],\n beige: [245, 245, 220],\n bisque: [255, 228, 196],\n black: [0, 0, 0],\n blanchedalmond: [255, 235, 205],\n blue: [0, 0, 255],\n blueviolet: [138, 43, 226],\n brown: [165, 42, 42],\n burlywood: [222, 184, 135],\n cadetblue: [95, 158, 160],\n chartreuse: [127, 255, 0],\n chocolate: [210, 105, 30],\n coral: [255, 127, 80],\n cornflowerblue: [100, 149, 237],\n cornsilk: [255, 248, 220],\n crimson: [220, 20, 60],\n cyan: [0, 255, 255],\n darkblue: [0, 0, 139],\n darkcyan: [0, 139, 139],\n darkgoldenrod: [184, 134, 11],\n darkgray: [169, 169, 169],\n darkgreen: [0, 100, 0],\n darkgrey: [169, 169, 169],\n darkkhaki: [189, 183, 107],\n darkmagenta: [139, 0, 139],\n darkolivegreen: [85, 107, 47],\n darkorange: [255, 140, 0],\n darkorchid: [153, 50, 204],\n darkred: [139, 0, 0],\n darksalmon: [233, 150, 122],\n darkseagreen: [143, 188, 143],\n darkslateblue: [72, 61, 139],\n darkslategray: [47, 79, 79],\n darkslategrey: [47, 79, 79],\n darkturquoise: [0, 206, 209],\n darkviolet: [148, 0, 211],\n deeppink: [255, 20, 147],\n deepskyblue: [0, 191, 255],\n dimgray: [105, 105, 105],\n dimgrey: [105, 105, 105],\n dodgerblue: [30, 144, 255],\n firebrick: [178, 34, 34],\n floralwhite: [255, 250, 240],\n forestgreen: [34, 139, 34],\n fuchsia: [255, 0, 255],\n gainsboro: [220, 220, 220],\n ghostwhite: [248, 248, 255],\n gold: [255, 215, 0],\n goldenrod: [218, 165, 32],\n gray: [128, 128, 128],\n grey: [128, 128, 128],\n green: [0, 128, 0],\n greenyellow: [173, 255, 47],\n honeydew: [240, 255, 240],\n hotpink: [255, 105, 180],\n indianred: [205, 92, 92],\n indigo: [75, 0, 130],\n ivory: [255, 255, 240],\n khaki: [240, 230, 140],\n lavender: [230, 230, 250],\n lavenderblush: [255, 240, 245],\n lawngreen: [124, 252, 0],\n lemonchiffon: [255, 250, 205],\n lightblue: [173, 216, 230],\n lightcoral: [240, 128, 128],\n lightcyan: [224, 255, 255],\n lightgoldenrodyellow: [250, 250, 210],\n lightgray: [211, 211, 211],\n lightgreen: [144, 238, 144],\n lightgrey: [211, 211, 211],\n lightpink: [255, 182, 193],\n lightsalmon: [255, 160, 122],\n lightseagreen: [32, 178, 170],\n lightskyblue: [135, 206, 250],\n lightslategray: [119, 136, 153],\n lightslategrey: [119, 136, 153],\n lightsteelblue: [176, 196, 222],\n lightyellow: [255, 255, 224],\n lime: [0, 255, 0],\n limegreen: [50, 205, 50],\n linen: [250, 240, 230],\n magenta: [255, 0, 255],\n maroon: [128, 0, 0],\n mediumaquamarine: [102, 205, 170],\n mediumblue: [0, 0, 205],\n mediumorchid: [186, 85, 211],\n mediumpurple: [147, 112, 219],\n mediumseagreen: [60, 179, 113],\n mediumslateblue: [123, 104, 238],\n mediumspringgreen: [0, 250, 154],\n mediumturquoise: [72, 209, 204],\n mediumvioletred: [199, 21, 133],\n midnightblue: [25, 25, 112],\n mintcream: [245, 255, 250],\n mistyrose: [255, 228, 225],\n moccasin: [255, 228, 181],\n navajowhite: [255, 222, 173],\n navy: [0, 0, 128],\n oldlace: [253, 245, 230],\n olive: [128, 128, 0],\n olivedrab: [107, 142, 35],\n orange: [255, 165, 0],\n orangered: [255, 69, 0],\n orchid: [218, 112, 214],\n palegoldenrod: [238, 232, 170],\n palegreen: [152, 251, 152],\n paleturquoise: [175, 238, 238],\n palevioletred: [219, 112, 147],\n papayawhip: [255, 239, 213],\n peachpuff: [255, 218, 185],\n peru: [205, 133, 63],\n pink: [255, 192, 203],\n plum: [221, 160, 221],\n powderblue: [176, 224, 230],\n purple: [128, 0, 128],\n red: [255, 0, 0],\n rosybrown: [188, 143, 143],\n royalblue: [65, 105, 225],\n saddlebrown: [139, 69, 19],\n salmon: [250, 128, 114],\n sandybrown: [244, 164, 96],\n seagreen: [46, 139, 87],\n seashell: [255, 245, 238],\n sienna: [160, 82, 45],\n silver: [192, 192, 192],\n skyblue: [135, 206, 235],\n slateblue: [106, 90, 205],\n slategray: [112, 128, 144],\n slategrey: [112, 128, 144],\n snow: [255, 250, 250],\n springgreen: [0, 255, 127],\n steelblue: [70, 130, 180],\n tan: [210, 180, 140],\n teal: [0, 128, 128],\n thistle: [216, 191, 216],\n tomato: [255, 99, 71],\n turquoise: [64, 224, 208],\n violet: [238, 130, 238],\n wheat: [245, 222, 179],\n white: [255, 255, 255],\n whitesmoke: [245, 245, 245],\n yellow: [255, 255, 0],\n yellowgreen: [154, 205, 50]\n};\n\n// sets the value in a map (map may not be built)\nvar setMap = function setMap(options) {\n var obj = options.map;\n var keys = options.keys;\n var l = keys.length;\n for (var i = 0; i < l; i++) {\n var key = keys[i];\n if (plainObject(key)) {\n throw Error('Tried to set map with object key');\n }\n if (i < keys.length - 1) {\n // extend the map if necessary\n if (obj[key] == null) {\n obj[key] = {};\n }\n obj = obj[key];\n } else {\n // set the value\n obj[key] = options.value;\n }\n }\n};\n\n// gets the value in a map even if it's not built in places\nvar getMap = function getMap(options) {\n var obj = options.map;\n var keys = options.keys;\n var l = keys.length;\n for (var i = 0; i < l; i++) {\n var key = keys[i];\n if (plainObject(key)) {\n throw Error('Tried to get map with object key');\n }\n obj = obj[key];\n if (obj == null) {\n return obj;\n }\n }\n return obj;\n};\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nvar isObject_1 = isObject;\n\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\n\nfunction createCommonjsModule(fn, module) {\n\treturn module = { exports: {} }, fn(module, module.exports), module.exports;\n}\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof commonjsGlobal == 'object' && commonjsGlobal && commonjsGlobal.Object === Object && commonjsGlobal;\n\nvar _freeGlobal = freeGlobal;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = _freeGlobal || freeSelf || Function('return this')();\n\nvar _root = root;\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return _root.Date.now();\n};\n\nvar now_1 = now;\n\n/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nvar _trimmedEndIndex = trimmedEndIndex;\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, _trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nvar _baseTrim = baseTrim;\n\n/** Built-in value references. */\nvar Symbol$1 = _root.Symbol;\n\nvar _Symbol = Symbol$1;\n\n/** Used for built-in method references. */\nvar objectProto$5 = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty$4 = objectProto$5.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString$1 = objectProto$5.toString;\n\n/** Built-in value references. */\nvar symToStringTag$1 = _Symbol ? _Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty$4.call(value, symToStringTag$1),\n tag = value[symToStringTag$1];\n\n try {\n value[symToStringTag$1] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString$1.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag$1] = tag;\n } else {\n delete value[symToStringTag$1];\n }\n }\n return result;\n}\n\nvar _getRawTag = getRawTag;\n\n/** Used for built-in method references. */\nvar objectProto$4 = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto$4.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nvar _objectToString = objectToString;\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = _Symbol ? _Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? _getRawTag(value)\n : _objectToString(value);\n}\n\nvar _baseGetTag = baseGetTag;\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nvar isObjectLike_1 = isObjectLike;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike_1(value) && _baseGetTag(value) == symbolTag);\n}\n\nvar isSymbol_1 = isSymbol;\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol_1(value)) {\n return NAN;\n }\n if (isObject_1(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject_1(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = _baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nvar toNumber_1 = toNumber;\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT$1 = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT$1);\n }\n wait = toNumber_1(wait) || 0;\n if (isObject_1(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber_1(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now_1();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now_1());\n }\n\n function debounced() {\n var time = now_1(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\nvar debounce_1 = debounce;\n\nvar performance = _window ? _window.performance : null;\nvar pnow = performance && performance.now ? function () {\n return performance.now();\n} : function () {\n return Date.now();\n};\nvar raf = function () {\n if (_window) {\n if (_window.requestAnimationFrame) {\n return function (fn) {\n _window.requestAnimationFrame(fn);\n };\n } else if (_window.mozRequestAnimationFrame) {\n return function (fn) {\n _window.mozRequestAnimationFrame(fn);\n };\n } else if (_window.webkitRequestAnimationFrame) {\n return function (fn) {\n _window.webkitRequestAnimationFrame(fn);\n };\n } else if (_window.msRequestAnimationFrame) {\n return function (fn) {\n _window.msRequestAnimationFrame(fn);\n };\n }\n }\n return function (fn) {\n if (fn) {\n setTimeout(function () {\n fn(pnow());\n }, 1000 / 60);\n }\n };\n}();\nvar requestAnimationFrame = function requestAnimationFrame(fn) {\n return raf(fn);\n};\nvar performanceNow = pnow;\n\nvar DEFAULT_HASH_SEED = 9261;\nvar K = 65599; // 37 also works pretty well\nvar DEFAULT_HASH_SEED_ALT = 5381;\nvar hashIterableInts = function hashIterableInts(iterator) {\n var seed = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : DEFAULT_HASH_SEED;\n // sdbm/string-hash\n var hash = seed;\n var entry;\n for (;;) {\n entry = iterator.next();\n if (entry.done) {\n break;\n }\n hash = hash * K + entry.value | 0;\n }\n return hash;\n};\nvar hashInt = function hashInt(num) {\n var seed = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : DEFAULT_HASH_SEED;\n // sdbm/string-hash\n return seed * K + num | 0;\n};\nvar hashIntAlt = function hashIntAlt(num) {\n var seed = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : DEFAULT_HASH_SEED_ALT;\n // djb2/string-hash\n return (seed << 5) + seed + num | 0;\n};\nvar combineHashes = function combineHashes(hash1, hash2) {\n return hash1 * 0x200000 + hash2;\n};\nvar combineHashesArray = function combineHashesArray(hashes) {\n return hashes[0] * 0x200000 + hashes[1];\n};\nvar hashArrays = function hashArrays(hashes1, hashes2) {\n return [hashInt(hashes1[0], hashes2[0]), hashIntAlt(hashes1[1], hashes2[1])];\n};\nvar hashIntsArray = function hashIntsArray(ints, seed) {\n var entry = {\n value: 0,\n done: false\n };\n var i = 0;\n var length = ints.length;\n var iterator = {\n next: function next() {\n if (i < length) {\n entry.value = ints[i++];\n } else {\n entry.done = true;\n }\n return entry;\n }\n };\n return hashIterableInts(iterator, seed);\n};\nvar hashString = function hashString(str, seed) {\n var entry = {\n value: 0,\n done: false\n };\n var i = 0;\n var length = str.length;\n var iterator = {\n next: function next() {\n if (i < length) {\n entry.value = str.charCodeAt(i++);\n } else {\n entry.done = true;\n }\n return entry;\n }\n };\n return hashIterableInts(iterator, seed);\n};\nvar hashStrings = function hashStrings() {\n return hashStringsArray(arguments);\n};\nvar hashStringsArray = function hashStringsArray(strs) {\n var hash;\n for (var i = 0; i < strs.length; i++) {\n var str = strs[i];\n if (i === 0) {\n hash = hashString(str);\n } else {\n hash = hashString(str, hash);\n }\n }\n return hash;\n};\n\n/*global console */\nvar warningsEnabled = true;\nvar warnSupported = console.warn != null; // eslint-disable-line no-console\nvar traceSupported = console.trace != null; // eslint-disable-line no-console\n\nvar MAX_INT$1 = Number.MAX_SAFE_INTEGER || 9007199254740991;\nvar trueify = function trueify() {\n return true;\n};\nvar falsify = function falsify() {\n return false;\n};\nvar zeroify = function zeroify() {\n return 0;\n};\nvar noop$1 = function noop() {};\nvar error = function error(msg) {\n throw new Error(msg);\n};\nvar warnings = function warnings(enabled) {\n if (enabled !== undefined) {\n warningsEnabled = !!enabled;\n } else {\n return warningsEnabled;\n }\n};\nvar warn = function warn(msg) {\n /* eslint-disable no-console */\n if (!warnings()) {\n return;\n }\n if (warnSupported) {\n console.warn(msg);\n } else {\n console.log(msg);\n if (traceSupported) {\n console.trace();\n }\n }\n}; /* eslint-enable */\n\nvar clone = function clone(obj) {\n return extend({}, obj);\n};\n\n// gets a shallow copy of the argument\nvar copy = function copy(obj) {\n if (obj == null) {\n return obj;\n }\n if (array(obj)) {\n return obj.slice();\n } else if (plainObject(obj)) {\n return clone(obj);\n } else {\n return obj;\n }\n};\nvar copyArray$1 = function copyArray(arr) {\n return arr.slice();\n};\nvar uuid = function uuid(a, b /* placeholders */) {\n for (\n // loop :)\n b = a = '';\n // b - result , a - numeric letiable\n a++ < 36;\n //\n b += a * 51 & 52 // if \"a\" is not 9 or 14 or 19 or 24\n ?\n // return a random number or 4\n (a ^ 15 // if \"a\" is not 15\n ?\n // generate a random number from 0 to 15\n 8 ^ Math.random() * (a ^ 20 ? 16 : 4) // unless \"a\" is 20, in which case a random number from 8 to 11\n : 4 // otherwise 4\n ).toString(16) : '-' // in other cases (if \"a\" is 9,14,19,24) insert \"-\"\n ) {\n }\n return b;\n};\nvar _staticEmptyObject = {};\nvar staticEmptyObject = function staticEmptyObject() {\n return _staticEmptyObject;\n};\nvar defaults$g = function defaults(_defaults) {\n var keys = Object.keys(_defaults);\n return function (opts) {\n var filledOpts = {};\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n var optVal = opts == null ? undefined : opts[key];\n filledOpts[key] = optVal === undefined ? _defaults[key] : optVal;\n }\n return filledOpts;\n };\n};\nvar removeFromArray = function removeFromArray(arr, ele, oneCopy) {\n for (var i = arr.length - 1; i >= 0; i--) {\n if (arr[i] === ele) {\n arr.splice(i, 1);\n if (oneCopy) {\n break;\n }\n }\n }\n};\nvar clearArray = function clearArray(arr) {\n arr.splice(0, arr.length);\n};\nvar push = function push(arr, otherArr) {\n for (var i = 0; i < otherArr.length; i++) {\n var el = otherArr[i];\n arr.push(el);\n }\n};\nvar getPrefixedProperty = function getPrefixedProperty(obj, propName, prefix) {\n if (prefix) {\n propName = prependCamel(prefix, propName); // e.g. (labelWidth, source) => sourceLabelWidth\n }\n\n return obj[propName];\n};\nvar setPrefixedProperty = function setPrefixedProperty(obj, propName, prefix, value) {\n if (prefix) {\n propName = prependCamel(prefix, propName); // e.g. (labelWidth, source) => sourceLabelWidth\n }\n\n obj[propName] = value;\n};\n\n/* global Map */\nvar ObjectMap = /*#__PURE__*/function () {\n function ObjectMap() {\n _classCallCheck(this, ObjectMap);\n this._obj = {};\n }\n _createClass(ObjectMap, [{\n key: \"set\",\n value: function set(key, val) {\n this._obj[key] = val;\n return this;\n }\n }, {\n key: \"delete\",\n value: function _delete(key) {\n this._obj[key] = undefined;\n return this;\n }\n }, {\n key: \"clear\",\n value: function clear() {\n this._obj = {};\n }\n }, {\n key: \"has\",\n value: function has(key) {\n return this._obj[key] !== undefined;\n }\n }, {\n key: \"get\",\n value: function get(key) {\n return this._obj[key];\n }\n }]);\n return ObjectMap;\n}();\nvar Map$2 = typeof Map !== 'undefined' ? Map : ObjectMap;\n\n/* global Set */\n\nvar undef = \"undefined\" ;\nvar ObjectSet = /*#__PURE__*/function () {\n function ObjectSet(arrayOrObjectSet) {\n _classCallCheck(this, ObjectSet);\n this._obj = Object.create(null);\n this.size = 0;\n if (arrayOrObjectSet != null) {\n var arr;\n if (arrayOrObjectSet.instanceString != null && arrayOrObjectSet.instanceString() === this.instanceString()) {\n arr = arrayOrObjectSet.toArray();\n } else {\n arr = arrayOrObjectSet;\n }\n for (var i = 0; i < arr.length; i++) {\n this.add(arr[i]);\n }\n }\n }\n _createClass(ObjectSet, [{\n key: \"instanceString\",\n value: function instanceString() {\n return 'set';\n }\n }, {\n key: \"add\",\n value: function add(val) {\n var o = this._obj;\n if (o[val] !== 1) {\n o[val] = 1;\n this.size++;\n }\n }\n }, {\n key: \"delete\",\n value: function _delete(val) {\n var o = this._obj;\n if (o[val] === 1) {\n o[val] = 0;\n this.size--;\n }\n }\n }, {\n key: \"clear\",\n value: function clear() {\n this._obj = Object.create(null);\n }\n }, {\n key: \"has\",\n value: function has(val) {\n return this._obj[val] === 1;\n }\n }, {\n key: \"toArray\",\n value: function toArray() {\n var _this = this;\n return Object.keys(this._obj).filter(function (key) {\n return _this.has(key);\n });\n }\n }, {\n key: \"forEach\",\n value: function forEach(callback, thisArg) {\n return this.toArray().forEach(callback, thisArg);\n }\n }]);\n return ObjectSet;\n}();\nvar Set$1 = (typeof Set === \"undefined\" ? \"undefined\" : _typeof(Set)) !== undef ? Set : ObjectSet;\n\n// represents a node or an edge\nvar Element = function Element(cy, params) {\n var restore = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n if (cy === undefined || params === undefined || !core(cy)) {\n error('An element must have a core reference and parameters set');\n return;\n }\n var group = params.group;\n\n // try to automatically infer the group if unspecified\n if (group == null) {\n if (params.data && params.data.source != null && params.data.target != null) {\n group = 'edges';\n } else {\n group = 'nodes';\n }\n }\n\n // validate group\n if (group !== 'nodes' && group !== 'edges') {\n error('An element must be of type `nodes` or `edges`; you specified `' + group + '`');\n return;\n }\n\n // make the element array-like, just like a collection\n this.length = 1;\n this[0] = this;\n\n // NOTE: when something is added here, add also to ele.json()\n var _p = this._private = {\n cy: cy,\n single: true,\n // indicates this is an element\n data: params.data || {},\n // data object\n position: params.position || {\n x: 0,\n y: 0\n },\n // (x, y) position pair\n autoWidth: undefined,\n // width and height of nodes calculated by the renderer when set to special 'auto' value\n autoHeight: undefined,\n autoPadding: undefined,\n compoundBoundsClean: false,\n // whether the compound dimensions need to be recalculated the next time dimensions are read\n listeners: [],\n // array of bound listeners\n group: group,\n // string; 'nodes' or 'edges'\n style: {},\n // properties as set by the style\n rstyle: {},\n // properties for style sent from the renderer to the core\n styleCxts: [],\n // applied style contexts from the styler\n styleKeys: {},\n // per-group keys of style property values\n removed: true,\n // whether it's inside the vis; true if removed (set true here since we call restore)\n selected: params.selected ? true : false,\n // whether it's selected\n selectable: params.selectable === undefined ? true : params.selectable ? true : false,\n // whether it's selectable\n locked: params.locked ? true : false,\n // whether the element is locked (cannot be moved)\n grabbed: false,\n // whether the element is grabbed by the mouse; renderer sets this privately\n grabbable: params.grabbable === undefined ? true : params.grabbable ? true : false,\n // whether the element can be grabbed\n pannable: params.pannable === undefined ? group === 'edges' ? true : false : params.pannable ? true : false,\n // whether the element has passthrough panning enabled\n active: false,\n // whether the element is active from user interaction\n classes: new Set$1(),\n // map ( className => true )\n animation: {\n // object for currently-running animations\n current: [],\n queue: []\n },\n rscratch: {},\n // object in which the renderer can store information\n scratch: params.scratch || {},\n // scratch objects\n edges: [],\n // array of connected edges\n children: [],\n // array of children\n parent: params.parent && params.parent.isNode() ? params.parent : null,\n // parent ref\n traversalCache: {},\n // cache of output of traversal functions\n backgrounding: false,\n // whether background images are loading\n bbCache: null,\n // cache of the current bounding box\n bbCacheShift: {\n x: 0,\n y: 0\n },\n // shift applied to cached bb to be applied on next get\n bodyBounds: null,\n // bounds cache of element body, w/o overlay\n overlayBounds: null,\n // bounds cache of element body, including overlay\n labelBounds: {\n // bounds cache of labels\n all: null,\n source: null,\n target: null,\n main: null\n },\n arrowBounds: {\n // bounds cache of edge arrows\n source: null,\n target: null,\n 'mid-source': null,\n 'mid-target': null\n }\n };\n if (_p.position.x == null) {\n _p.position.x = 0;\n }\n if (_p.position.y == null) {\n _p.position.y = 0;\n }\n\n // renderedPosition overrides if specified\n if (params.renderedPosition) {\n var rpos = params.renderedPosition;\n var pan = cy.pan();\n var zoom = cy.zoom();\n _p.position = {\n x: (rpos.x - pan.x) / zoom,\n y: (rpos.y - pan.y) / zoom\n };\n }\n var classes = [];\n if (array(params.classes)) {\n classes = params.classes;\n } else if (string(params.classes)) {\n classes = params.classes.split(/\\s+/);\n }\n for (var i = 0, l = classes.length; i < l; i++) {\n var cls = classes[i];\n if (!cls || cls === '') {\n continue;\n }\n _p.classes.add(cls);\n }\n this.createEmitter();\n var bypass = params.style || params.css;\n if (bypass) {\n warn('Setting a `style` bypass at element creation should be done only when absolutely necessary. Try to use the stylesheet instead.');\n this.style(bypass);\n }\n if (restore === undefined || restore) {\n this.restore();\n }\n};\n\nvar defineSearch = function defineSearch(params) {\n params = {\n bfs: params.bfs || !params.dfs,\n dfs: params.dfs || !params.bfs\n };\n\n // from pseudocode on wikipedia\n return function searchFn(roots, fn, directed) {\n var options;\n if (plainObject(roots) && !elementOrCollection(roots)) {\n options = roots;\n roots = options.roots || options.root;\n fn = options.visit;\n directed = options.directed;\n }\n directed = arguments.length === 2 && !fn$6(fn) ? fn : directed;\n fn = fn$6(fn) ? fn : function () {};\n var cy = this._private.cy;\n var v = roots = string(roots) ? this.filter(roots) : roots;\n var Q = [];\n var connectedNodes = [];\n var connectedBy = {};\n var id2depth = {};\n var V = {};\n var j = 0;\n var found;\n var _this$byGroup = this.byGroup(),\n nodes = _this$byGroup.nodes,\n edges = _this$byGroup.edges;\n\n // enqueue v\n for (var i = 0; i < v.length; i++) {\n var vi = v[i];\n var viId = vi.id();\n if (vi.isNode()) {\n Q.unshift(vi);\n if (params.bfs) {\n V[viId] = true;\n connectedNodes.push(vi);\n }\n id2depth[viId] = 0;\n }\n }\n var _loop = function _loop() {\n var v = params.bfs ? Q.shift() : Q.pop();\n var vId = v.id();\n if (params.dfs) {\n if (V[vId]) {\n return \"continue\";\n }\n V[vId] = true;\n connectedNodes.push(v);\n }\n var depth = id2depth[vId];\n var prevEdge = connectedBy[vId];\n var src = prevEdge != null ? prevEdge.source() : null;\n var tgt = prevEdge != null ? prevEdge.target() : null;\n var prevNode = prevEdge == null ? undefined : v.same(src) ? tgt[0] : src[0];\n var ret = void 0;\n ret = fn(v, prevEdge, prevNode, j++, depth);\n if (ret === true) {\n found = v;\n return \"break\";\n }\n if (ret === false) {\n return \"break\";\n }\n var vwEdges = v.connectedEdges().filter(function (e) {\n return (!directed || e.source().same(v)) && edges.has(e);\n });\n for (var _i2 = 0; _i2 < vwEdges.length; _i2++) {\n var e = vwEdges[_i2];\n var w = e.connectedNodes().filter(function (n) {\n return !n.same(v) && nodes.has(n);\n });\n var wId = w.id();\n if (w.length !== 0 && !V[wId]) {\n w = w[0];\n Q.push(w);\n if (params.bfs) {\n V[wId] = true;\n connectedNodes.push(w);\n }\n connectedBy[wId] = e;\n id2depth[wId] = id2depth[vId] + 1;\n }\n }\n };\n while (Q.length !== 0) {\n var _ret = _loop();\n if (_ret === \"continue\") continue;\n if (_ret === \"break\") break;\n }\n var connectedEles = cy.collection();\n for (var _i = 0; _i < connectedNodes.length; _i++) {\n var node = connectedNodes[_i];\n var edge = connectedBy[node.id()];\n if (edge != null) {\n connectedEles.push(edge);\n }\n connectedEles.push(node);\n }\n return {\n path: cy.collection(connectedEles),\n found: cy.collection(found)\n };\n };\n};\n\n// search, spanning trees, etc\nvar elesfn$v = {\n breadthFirstSearch: defineSearch({\n bfs: true\n }),\n depthFirstSearch: defineSearch({\n dfs: true\n })\n};\n\n// nice, short mathematical alias\nelesfn$v.bfs = elesfn$v.breadthFirstSearch;\nelesfn$v.dfs = elesfn$v.depthFirstSearch;\n\nvar heap$1 = createCommonjsModule(function (module, exports) {\n// Generated by CoffeeScript 1.8.0\n(function() {\n var Heap, defaultCmp, floor, heapify, heappop, heappush, heappushpop, heapreplace, insort, min, nlargest, nsmallest, updateItem, _siftdown, _siftup;\n\n floor = Math.floor, min = Math.min;\n\n\n /*\n Default comparison function to be used\n */\n\n defaultCmp = function(x, y) {\n if (x < y) {\n return -1;\n }\n if (x > y) {\n return 1;\n }\n return 0;\n };\n\n\n /*\n Insert item x in list a, and keep it sorted assuming a is sorted.\n \n If x is already in a, insert it to the right of the rightmost x.\n \n Optional args lo (default 0) and hi (default a.length) bound the slice\n of a to be searched.\n */\n\n insort = function(a, x, lo, hi, cmp) {\n var mid;\n if (lo == null) {\n lo = 0;\n }\n if (cmp == null) {\n cmp = defaultCmp;\n }\n if (lo < 0) {\n throw new Error('lo must be non-negative');\n }\n if (hi == null) {\n hi = a.length;\n }\n while (lo < hi) {\n mid = floor((lo + hi) / 2);\n if (cmp(x, a[mid]) < 0) {\n hi = mid;\n } else {\n lo = mid + 1;\n }\n }\n return ([].splice.apply(a, [lo, lo - lo].concat(x)), x);\n };\n\n\n /*\n Push item onto heap, maintaining the heap invariant.\n */\n\n heappush = function(array, item, cmp) {\n if (cmp == null) {\n cmp = defaultCmp;\n }\n array.push(item);\n return _siftdown(array, 0, array.length - 1, cmp);\n };\n\n\n /*\n Pop the smallest item off the heap, maintaining the heap invariant.\n */\n\n heappop = function(array, cmp) {\n var lastelt, returnitem;\n if (cmp == null) {\n cmp = defaultCmp;\n }\n lastelt = array.pop();\n if (array.length) {\n returnitem = array[0];\n array[0] = lastelt;\n _siftup(array, 0, cmp);\n } else {\n returnitem = lastelt;\n }\n return returnitem;\n };\n\n\n /*\n Pop and return the current smallest value, and add the new item.\n \n This is more efficient than heappop() followed by heappush(), and can be\n more appropriate when using a fixed size heap. Note that the value\n returned may be larger than item! That constrains reasonable use of\n this routine unless written as part of a conditional replacement:\n if item > array[0]\n item = heapreplace(array, item)\n */\n\n heapreplace = function(array, item, cmp) {\n var returnitem;\n if (cmp == null) {\n cmp = defaultCmp;\n }\n returnitem = array[0];\n array[0] = item;\n _siftup(array, 0, cmp);\n return returnitem;\n };\n\n\n /*\n Fast version of a heappush followed by a heappop.\n */\n\n heappushpop = function(array, item, cmp) {\n var _ref;\n if (cmp == null) {\n cmp = defaultCmp;\n }\n if (array.length && cmp(array[0], item) < 0) {\n _ref = [array[0], item], item = _ref[0], array[0] = _ref[1];\n _siftup(array, 0, cmp);\n }\n return item;\n };\n\n\n /*\n Transform list into a heap, in-place, in O(array.length) time.\n */\n\n heapify = function(array, cmp) {\n var i, _i, _len, _ref1, _results, _results1;\n if (cmp == null) {\n cmp = defaultCmp;\n }\n _ref1 = (function() {\n _results1 = [];\n for (var _j = 0, _ref = floor(array.length / 2); 0 <= _ref ? _j < _ref : _j > _ref; 0 <= _ref ? _j++ : _j--){ _results1.push(_j); }\n return _results1;\n }).apply(this).reverse();\n _results = [];\n for (_i = 0, _len = _ref1.length; _i < _len; _i++) {\n i = _ref1[_i];\n _results.push(_siftup(array, i, cmp));\n }\n return _results;\n };\n\n\n /*\n Update the position of the given item in the heap.\n This function should be called every time the item is being modified.\n */\n\n updateItem = function(array, item, cmp) {\n var pos;\n if (cmp == null) {\n cmp = defaultCmp;\n }\n pos = array.indexOf(item);\n if (pos === -1) {\n return;\n }\n _siftdown(array, 0, pos, cmp);\n return _siftup(array, pos, cmp);\n };\n\n\n /*\n Find the n largest elements in a dataset.\n */\n\n nlargest = function(array, n, cmp) {\n var elem, result, _i, _len, _ref;\n if (cmp == null) {\n cmp = defaultCmp;\n }\n result = array.slice(0, n);\n if (!result.length) {\n return result;\n }\n heapify(result, cmp);\n _ref = array.slice(n);\n for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n elem = _ref[_i];\n heappushpop(result, elem, cmp);\n }\n return result.sort(cmp).reverse();\n };\n\n\n /*\n Find the n smallest elements in a dataset.\n */\n\n nsmallest = function(array, n, cmp) {\n var elem, los, result, _i, _j, _len, _ref, _ref1, _results;\n if (cmp == null) {\n cmp = defaultCmp;\n }\n if (n * 10 <= array.length) {\n result = array.slice(0, n).sort(cmp);\n if (!result.length) {\n return result;\n }\n los = result[result.length - 1];\n _ref = array.slice(n);\n for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n elem = _ref[_i];\n if (cmp(elem, los) < 0) {\n insort(result, elem, 0, null, cmp);\n result.pop();\n los = result[result.length - 1];\n }\n }\n return result;\n }\n heapify(array, cmp);\n _results = [];\n for (_j = 0, _ref1 = min(n, array.length); 0 <= _ref1 ? _j < _ref1 : _j > _ref1; 0 <= _ref1 ? ++_j : --_j) {\n _results.push(heappop(array, cmp));\n }\n return _results;\n };\n\n _siftdown = function(array, startpos, pos, cmp) {\n var newitem, parent, parentpos;\n if (cmp == null) {\n cmp = defaultCmp;\n }\n newitem = array[pos];\n while (pos > startpos) {\n parentpos = (pos - 1) >> 1;\n parent = array[parentpos];\n if (cmp(newitem, parent) < 0) {\n array[pos] = parent;\n pos = parentpos;\n continue;\n }\n break;\n }\n return array[pos] = newitem;\n };\n\n _siftup = function(array, pos, cmp) {\n var childpos, endpos, newitem, rightpos, startpos;\n if (cmp == null) {\n cmp = defaultCmp;\n }\n endpos = array.length;\n startpos = pos;\n newitem = array[pos];\n childpos = 2 * pos + 1;\n while (childpos < endpos) {\n rightpos = childpos + 1;\n if (rightpos < endpos && !(cmp(array[childpos], array[rightpos]) < 0)) {\n childpos = rightpos;\n }\n array[pos] = array[childpos];\n pos = childpos;\n childpos = 2 * pos + 1;\n }\n array[pos] = newitem;\n return _siftdown(array, startpos, pos, cmp);\n };\n\n Heap = (function() {\n Heap.push = heappush;\n\n Heap.pop = heappop;\n\n Heap.replace = heapreplace;\n\n Heap.pushpop = heappushpop;\n\n Heap.heapify = heapify;\n\n Heap.updateItem = updateItem;\n\n Heap.nlargest = nlargest;\n\n Heap.nsmallest = nsmallest;\n\n function Heap(cmp) {\n this.cmp = cmp != null ? cmp : defaultCmp;\n this.nodes = [];\n }\n\n Heap.prototype.push = function(x) {\n return heappush(this.nodes, x, this.cmp);\n };\n\n Heap.prototype.pop = function() {\n return heappop(this.nodes, this.cmp);\n };\n\n Heap.prototype.peek = function() {\n return this.nodes[0];\n };\n\n Heap.prototype.contains = function(x) {\n return this.nodes.indexOf(x) !== -1;\n };\n\n Heap.prototype.replace = function(x) {\n return heapreplace(this.nodes, x, this.cmp);\n };\n\n Heap.prototype.pushpop = function(x) {\n return heappushpop(this.nodes, x, this.cmp);\n };\n\n Heap.prototype.heapify = function() {\n return heapify(this.nodes, this.cmp);\n };\n\n Heap.prototype.updateItem = function(x) {\n return updateItem(this.nodes, x, this.cmp);\n };\n\n Heap.prototype.clear = function() {\n return this.nodes = [];\n };\n\n Heap.prototype.empty = function() {\n return this.nodes.length === 0;\n };\n\n Heap.prototype.size = function() {\n return this.nodes.length;\n };\n\n Heap.prototype.clone = function() {\n var heap;\n heap = new Heap();\n heap.nodes = this.nodes.slice(0);\n return heap;\n };\n\n Heap.prototype.toArray = function() {\n return this.nodes.slice(0);\n };\n\n Heap.prototype.insert = Heap.prototype.push;\n\n Heap.prototype.top = Heap.prototype.peek;\n\n Heap.prototype.front = Heap.prototype.peek;\n\n Heap.prototype.has = Heap.prototype.contains;\n\n Heap.prototype.copy = Heap.prototype.clone;\n\n return Heap;\n\n })();\n\n (function(root, factory) {\n {\n return module.exports = factory();\n }\n })(this, function() {\n return Heap;\n });\n\n}).call(commonjsGlobal);\n});\n\nvar heap = heap$1;\n\nvar dijkstraDefaults = defaults$g({\n root: null,\n weight: function weight(edge) {\n return 1;\n },\n directed: false\n});\nvar elesfn$u = {\n dijkstra: function dijkstra(options) {\n if (!plainObject(options)) {\n var args = arguments;\n options = {\n root: args[0],\n weight: args[1],\n directed: args[2]\n };\n }\n var _dijkstraDefaults = dijkstraDefaults(options),\n root = _dijkstraDefaults.root,\n weight = _dijkstraDefaults.weight,\n directed = _dijkstraDefaults.directed;\n var eles = this;\n var weightFn = weight;\n var source = string(root) ? this.filter(root)[0] : root[0];\n var dist = {};\n var prev = {};\n var knownDist = {};\n var _this$byGroup = this.byGroup(),\n nodes = _this$byGroup.nodes,\n edges = _this$byGroup.edges;\n edges.unmergeBy(function (ele) {\n return ele.isLoop();\n });\n var getDist = function getDist(node) {\n return dist[node.id()];\n };\n var setDist = function setDist(node, d) {\n dist[node.id()] = d;\n Q.updateItem(node);\n };\n var Q = new heap(function (a, b) {\n return getDist(a) - getDist(b);\n });\n for (var i = 0; i < nodes.length; i++) {\n var node = nodes[i];\n dist[node.id()] = node.same(source) ? 0 : Infinity;\n Q.push(node);\n }\n var distBetween = function distBetween(u, v) {\n var uvs = (directed ? u.edgesTo(v) : u.edgesWith(v)).intersect(edges);\n var smallestDistance = Infinity;\n var smallestEdge;\n for (var _i = 0; _i < uvs.length; _i++) {\n var edge = uvs[_i];\n var _weight = weightFn(edge);\n if (_weight < smallestDistance || !smallestEdge) {\n smallestDistance = _weight;\n smallestEdge = edge;\n }\n }\n return {\n edge: smallestEdge,\n dist: smallestDistance\n };\n };\n while (Q.size() > 0) {\n var u = Q.pop();\n var smalletsDist = getDist(u);\n var uid = u.id();\n knownDist[uid] = smalletsDist;\n if (smalletsDist === Infinity) {\n continue;\n }\n var neighbors = u.neighborhood().intersect(nodes);\n for (var _i2 = 0; _i2 < neighbors.length; _i2++) {\n var v = neighbors[_i2];\n var vid = v.id();\n var vDist = distBetween(u, v);\n var alt = smalletsDist + vDist.dist;\n if (alt < getDist(v)) {\n setDist(v, alt);\n prev[vid] = {\n node: u,\n edge: vDist.edge\n };\n }\n } // for\n } // while\n\n return {\n distanceTo: function distanceTo(node) {\n var target = string(node) ? nodes.filter(node)[0] : node[0];\n return knownDist[target.id()];\n },\n pathTo: function pathTo(node) {\n var target = string(node) ? nodes.filter(node)[0] : node[0];\n var S = [];\n var u = target;\n var uid = u.id();\n if (target.length > 0) {\n S.unshift(target);\n while (prev[uid]) {\n var p = prev[uid];\n S.unshift(p.edge);\n S.unshift(p.node);\n u = p.node;\n uid = u.id();\n }\n }\n return eles.spawn(S);\n }\n };\n }\n};\n\nvar elesfn$t = {\n // kruskal's algorithm (finds min spanning tree, assuming undirected graph)\n // implemented from pseudocode from wikipedia\n kruskal: function kruskal(weightFn) {\n weightFn = weightFn || function (edge) {\n return 1;\n };\n var _this$byGroup = this.byGroup(),\n nodes = _this$byGroup.nodes,\n edges = _this$byGroup.edges;\n var numNodes = nodes.length;\n var forest = new Array(numNodes);\n var A = nodes; // assumes byGroup() creates new collections that can be safely mutated\n\n var findSetIndex = function findSetIndex(ele) {\n for (var i = 0; i < forest.length; i++) {\n var eles = forest[i];\n if (eles.has(ele)) {\n return i;\n }\n }\n };\n\n // start with one forest per node\n for (var i = 0; i < numNodes; i++) {\n forest[i] = this.spawn(nodes[i]);\n }\n var S = edges.sort(function (a, b) {\n return weightFn(a) - weightFn(b);\n });\n for (var _i = 0; _i < S.length; _i++) {\n var edge = S[_i];\n var u = edge.source()[0];\n var v = edge.target()[0];\n var setUIndex = findSetIndex(u);\n var setVIndex = findSetIndex(v);\n var setU = forest[setUIndex];\n var setV = forest[setVIndex];\n if (setUIndex !== setVIndex) {\n A.merge(edge);\n\n // combine forests for u and v\n setU.merge(setV);\n forest.splice(setVIndex, 1);\n }\n }\n return A;\n }\n};\n\nvar aStarDefaults = defaults$g({\n root: null,\n goal: null,\n weight: function weight(edge) {\n return 1;\n },\n heuristic: function heuristic(edge) {\n return 0;\n },\n directed: false\n});\nvar elesfn$s = {\n // Implemented from pseudocode from wikipedia\n aStar: function aStar(options) {\n var cy = this.cy();\n var _aStarDefaults = aStarDefaults(options),\n root = _aStarDefaults.root,\n goal = _aStarDefaults.goal,\n heuristic = _aStarDefaults.heuristic,\n directed = _aStarDefaults.directed,\n weight = _aStarDefaults.weight;\n root = cy.collection(root)[0];\n goal = cy.collection(goal)[0];\n var sid = root.id();\n var tid = goal.id();\n var gScore = {};\n var fScore = {};\n var closedSetIds = {};\n var openSet = new heap(function (a, b) {\n return fScore[a.id()] - fScore[b.id()];\n });\n var openSetIds = new Set$1();\n var cameFrom = {};\n var cameFromEdge = {};\n var addToOpenSet = function addToOpenSet(ele, id) {\n openSet.push(ele);\n openSetIds.add(id);\n };\n var cMin, cMinId;\n var popFromOpenSet = function popFromOpenSet() {\n cMin = openSet.pop();\n cMinId = cMin.id();\n openSetIds[\"delete\"](cMinId);\n };\n var isInOpenSet = function isInOpenSet(id) {\n return openSetIds.has(id);\n };\n addToOpenSet(root, sid);\n gScore[sid] = 0;\n fScore[sid] = heuristic(root);\n\n // Counter\n var steps = 0;\n\n // Main loop\n while (openSet.size() > 0) {\n popFromOpenSet();\n steps++;\n\n // If we've found our goal, then we are done\n if (cMinId === tid) {\n var path = [];\n var pathNode = goal;\n var pathNodeId = tid;\n var pathEdge = cameFromEdge[pathNodeId];\n for (;;) {\n path.unshift(pathNode);\n if (pathEdge != null) {\n path.unshift(pathEdge);\n }\n pathNode = cameFrom[pathNodeId];\n if (pathNode == null) {\n break;\n }\n pathNodeId = pathNode.id();\n pathEdge = cameFromEdge[pathNodeId];\n }\n return {\n found: true,\n distance: gScore[cMinId],\n path: this.spawn(path),\n steps: steps\n };\n }\n\n // Add cMin to processed nodes\n closedSetIds[cMinId] = true;\n\n // Update scores for neighbors of cMin\n // Take into account if graph is directed or not\n var vwEdges = cMin._private.edges;\n for (var i = 0; i < vwEdges.length; i++) {\n var e = vwEdges[i];\n\n // edge must be in set of calling eles\n if (!this.hasElementWithId(e.id())) {\n continue;\n }\n\n // cMin must be the source of edge if directed\n if (directed && e.data('source') !== cMinId) {\n continue;\n }\n var wSrc = e.source();\n var wTgt = e.target();\n var w = wSrc.id() !== cMinId ? wSrc : wTgt;\n var wid = w.id();\n\n // node must be in set of calling eles\n if (!this.hasElementWithId(wid)) {\n continue;\n }\n\n // if node is in closedSet, ignore it\n if (closedSetIds[wid]) {\n continue;\n }\n\n // New tentative score for node w\n var tempScore = gScore[cMinId] + weight(e);\n\n // Update gScore for node w if:\n // w not present in openSet\n // OR\n // tentative gScore is less than previous value\n\n // w not in openSet\n if (!isInOpenSet(wid)) {\n gScore[wid] = tempScore;\n fScore[wid] = tempScore + heuristic(w);\n addToOpenSet(w, wid);\n cameFrom[wid] = cMin;\n cameFromEdge[wid] = e;\n continue;\n }\n\n // w already in openSet, but with greater gScore\n if (tempScore < gScore[wid]) {\n gScore[wid] = tempScore;\n fScore[wid] = tempScore + heuristic(w);\n cameFrom[wid] = cMin;\n cameFromEdge[wid] = e;\n }\n } // End of neighbors update\n } // End of main loop\n\n // If we've reached here, then we've not reached our goal\n return {\n found: false,\n distance: undefined,\n path: undefined,\n steps: steps\n };\n }\n}; // elesfn\n\nvar floydWarshallDefaults = defaults$g({\n weight: function weight(edge) {\n return 1;\n },\n directed: false\n});\nvar elesfn$r = {\n // Implemented from pseudocode from wikipedia\n floydWarshall: function floydWarshall(options) {\n var cy = this.cy();\n var _floydWarshallDefault = floydWarshallDefaults(options),\n weight = _floydWarshallDefault.weight,\n directed = _floydWarshallDefault.directed;\n var weightFn = weight;\n var _this$byGroup = this.byGroup(),\n nodes = _this$byGroup.nodes,\n edges = _this$byGroup.edges;\n var N = nodes.length;\n var Nsq = N * N;\n var indexOf = function indexOf(node) {\n return nodes.indexOf(node);\n };\n var atIndex = function atIndex(i) {\n return nodes[i];\n };\n\n // Initialize distance matrix\n var dist = new Array(Nsq);\n for (var n = 0; n < Nsq; n++) {\n var j = n % N;\n var i = (n - j) / N;\n if (i === j) {\n dist[n] = 0;\n } else {\n dist[n] = Infinity;\n }\n }\n\n // Initialize matrix used for path reconstruction\n // Initialize distance matrix\n var next = new Array(Nsq);\n var edgeNext = new Array(Nsq);\n\n // Process edges\n for (var _i = 0; _i < edges.length; _i++) {\n var edge = edges[_i];\n var src = edge.source()[0];\n var tgt = edge.target()[0];\n if (src === tgt) {\n continue;\n } // exclude loops\n\n var s = indexOf(src);\n var t = indexOf(tgt);\n var st = s * N + t; // source to target index\n var _weight = weightFn(edge);\n\n // Check if already process another edge between same 2 nodes\n if (dist[st] > _weight) {\n dist[st] = _weight;\n next[st] = t;\n edgeNext[st] = edge;\n }\n\n // If undirected graph, process 'reversed' edge\n if (!directed) {\n var ts = t * N + s; // target to source index\n\n if (!directed && dist[ts] > _weight) {\n dist[ts] = _weight;\n next[ts] = s;\n edgeNext[ts] = edge;\n }\n }\n }\n\n // Main loop\n for (var k = 0; k < N; k++) {\n for (var _i2 = 0; _i2 < N; _i2++) {\n var ik = _i2 * N + k;\n for (var _j = 0; _j < N; _j++) {\n var ij = _i2 * N + _j;\n var kj = k * N + _j;\n if (dist[ik] + dist[kj] < dist[ij]) {\n dist[ij] = dist[ik] + dist[kj];\n next[ij] = next[ik];\n }\n }\n }\n }\n var getArgEle = function getArgEle(ele) {\n return (string(ele) ? cy.filter(ele) : ele)[0];\n };\n var indexOfArgEle = function indexOfArgEle(ele) {\n return indexOf(getArgEle(ele));\n };\n var res = {\n distance: function distance(from, to) {\n var i = indexOfArgEle(from);\n var j = indexOfArgEle(to);\n return dist[i * N + j];\n },\n path: function path(from, to) {\n var i = indexOfArgEle(from);\n var j = indexOfArgEle(to);\n var fromNode = atIndex(i);\n if (i === j) {\n return fromNode.collection();\n }\n if (next[i * N + j] == null) {\n return cy.collection();\n }\n var path = cy.collection();\n var prev = i;\n var edge;\n path.merge(fromNode);\n while (i !== j) {\n prev = i;\n i = next[i * N + j];\n edge = edgeNext[prev * N + i];\n path.merge(edge);\n path.merge(atIndex(i));\n }\n return path;\n }\n };\n return res;\n } // floydWarshall\n}; // elesfn\n\nvar bellmanFordDefaults = defaults$g({\n weight: function weight(edge) {\n return 1;\n },\n directed: false,\n root: null\n});\nvar elesfn$q = {\n // Implemented from pseudocode from wikipedia\n bellmanFord: function bellmanFord(options) {\n var _this = this;\n var _bellmanFordDefaults = bellmanFordDefaults(options),\n weight = _bellmanFordDefaults.weight,\n directed = _bellmanFordDefaults.directed,\n root = _bellmanFordDefaults.root;\n var weightFn = weight;\n var eles = this;\n var cy = this.cy();\n var _this$byGroup = this.byGroup(),\n edges = _this$byGroup.edges,\n nodes = _this$byGroup.nodes;\n var numNodes = nodes.length;\n var infoMap = new Map$2();\n var hasNegativeWeightCycle = false;\n var negativeWeightCycles = [];\n root = cy.collection(root)[0]; // in case selector passed\n\n edges.unmergeBy(function (edge) {\n return edge.isLoop();\n });\n var numEdges = edges.length;\n var getInfo = function getInfo(node) {\n var obj = infoMap.get(node.id());\n if (!obj) {\n obj = {};\n infoMap.set(node.id(), obj);\n }\n return obj;\n };\n var getNodeFromTo = function getNodeFromTo(to) {\n return (string(to) ? cy.$(to) : to)[0];\n };\n var distanceTo = function distanceTo(to) {\n return getInfo(getNodeFromTo(to)).dist;\n };\n var pathTo = function pathTo(to) {\n var thisStart = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : root;\n var end = getNodeFromTo(to);\n var path = [];\n var node = end;\n for (;;) {\n if (node == null) {\n return _this.spawn();\n }\n var _getInfo = getInfo(node),\n edge = _getInfo.edge,\n pred = _getInfo.pred;\n path.unshift(node[0]);\n if (node.same(thisStart) && path.length > 0) {\n break;\n }\n if (edge != null) {\n path.unshift(edge);\n }\n node = pred;\n }\n return eles.spawn(path);\n };\n\n // Initializations { dist, pred, edge }\n for (var i = 0; i < numNodes; i++) {\n var node = nodes[i];\n var info = getInfo(node);\n if (node.same(root)) {\n info.dist = 0;\n } else {\n info.dist = Infinity;\n }\n info.pred = null;\n info.edge = null;\n }\n\n // Edges relaxation\n var replacedEdge = false;\n var checkForEdgeReplacement = function checkForEdgeReplacement(node1, node2, edge, info1, info2, weight) {\n var dist = info1.dist + weight;\n if (dist < info2.dist && !edge.same(info1.edge)) {\n info2.dist = dist;\n info2.pred = node1;\n info2.edge = edge;\n replacedEdge = true;\n }\n };\n for (var _i = 1; _i < numNodes; _i++) {\n replacedEdge = false;\n for (var e = 0; e < numEdges; e++) {\n var edge = edges[e];\n var src = edge.source();\n var tgt = edge.target();\n var _weight = weightFn(edge);\n var srcInfo = getInfo(src);\n var tgtInfo = getInfo(tgt);\n checkForEdgeReplacement(src, tgt, edge, srcInfo, tgtInfo, _weight);\n\n // If undirected graph, we need to take into account the 'reverse' edge\n if (!directed) {\n checkForEdgeReplacement(tgt, src, edge, tgtInfo, srcInfo, _weight);\n }\n }\n if (!replacedEdge) {\n break;\n }\n }\n if (replacedEdge) {\n // Check for negative weight cycles\n var negativeWeightCycleIds = [];\n for (var _e = 0; _e < numEdges; _e++) {\n var _edge = edges[_e];\n var _src = _edge.source();\n var _tgt = _edge.target();\n var _weight2 = weightFn(_edge);\n var srcDist = getInfo(_src).dist;\n var tgtDist = getInfo(_tgt).dist;\n if (srcDist + _weight2 < tgtDist || !directed && tgtDist + _weight2 < srcDist) {\n if (!hasNegativeWeightCycle) {\n warn('Graph contains a negative weight cycle for Bellman-Ford');\n hasNegativeWeightCycle = true;\n }\n if (options.findNegativeWeightCycles !== false) {\n var negativeNodes = [];\n if (srcDist + _weight2 < tgtDist) {\n negativeNodes.push(_src);\n }\n if (!directed && tgtDist + _weight2 < srcDist) {\n negativeNodes.push(_tgt);\n }\n var numNegativeNodes = negativeNodes.length;\n for (var n = 0; n < numNegativeNodes; n++) {\n var start = negativeNodes[n];\n var cycle = [start];\n cycle.push(getInfo(start).edge);\n var _node = getInfo(start).pred;\n while (cycle.indexOf(_node) === -1) {\n cycle.push(_node);\n cycle.push(getInfo(_node).edge);\n _node = getInfo(_node).pred;\n }\n cycle = cycle.slice(cycle.indexOf(_node));\n var smallestId = cycle[0].id();\n var smallestIndex = 0;\n for (var c = 2; c < cycle.length; c += 2) {\n if (cycle[c].id() < smallestId) {\n smallestId = cycle[c].id();\n smallestIndex = c;\n }\n }\n cycle = cycle.slice(smallestIndex).concat(cycle.slice(0, smallestIndex));\n cycle.push(cycle[0]);\n var cycleId = cycle.map(function (el) {\n return el.id();\n }).join(\",\");\n if (negativeWeightCycleIds.indexOf(cycleId) === -1) {\n negativeWeightCycles.push(eles.spawn(cycle));\n negativeWeightCycleIds.push(cycleId);\n }\n }\n } else {\n break;\n }\n }\n }\n }\n return {\n distanceTo: distanceTo,\n pathTo: pathTo,\n hasNegativeWeightCycle: hasNegativeWeightCycle,\n negativeWeightCycles: negativeWeightCycles\n };\n } // bellmanFord\n}; // elesfn\n\nvar sqrt2 = Math.sqrt(2);\n\n// Function which colapses 2 (meta) nodes into one\n// Updates the remaining edge lists\n// Receives as a paramater the edge which causes the collapse\nvar collapse = function collapse(edgeIndex, nodeMap, remainingEdges) {\n if (remainingEdges.length === 0) {\n error(\"Karger-Stein must be run on a connected (sub)graph\");\n }\n var edgeInfo = remainingEdges[edgeIndex];\n var sourceIn = edgeInfo[1];\n var targetIn = edgeInfo[2];\n var partition1 = nodeMap[sourceIn];\n var partition2 = nodeMap[targetIn];\n var newEdges = remainingEdges; // re-use array\n\n // Delete all edges between partition1 and partition2\n for (var i = newEdges.length - 1; i >= 0; i--) {\n var edge = newEdges[i];\n var src = edge[1];\n var tgt = edge[2];\n if (nodeMap[src] === partition1 && nodeMap[tgt] === partition2 || nodeMap[src] === partition2 && nodeMap[tgt] === partition1) {\n newEdges.splice(i, 1);\n }\n }\n\n // All edges pointing to partition2 should now point to partition1\n for (var _i = 0; _i < newEdges.length; _i++) {\n var _edge = newEdges[_i];\n if (_edge[1] === partition2) {\n // Check source\n newEdges[_i] = _edge.slice(); // copy\n newEdges[_i][1] = partition1;\n } else if (_edge[2] === partition2) {\n // Check target\n newEdges[_i] = _edge.slice(); // copy\n newEdges[_i][2] = partition1;\n }\n }\n\n // Move all nodes from partition2 to partition1\n for (var _i2 = 0; _i2 < nodeMap.length; _i2++) {\n if (nodeMap[_i2] === partition2) {\n nodeMap[_i2] = partition1;\n }\n }\n return newEdges;\n};\n\n// Contracts a graph until we reach a certain number of meta nodes\nvar contractUntil = function contractUntil(metaNodeMap, remainingEdges, size, sizeLimit) {\n while (size > sizeLimit) {\n // Choose an edge randomly\n var edgeIndex = Math.floor(Math.random() * remainingEdges.length);\n\n // Collapse graph based on edge\n remainingEdges = collapse(edgeIndex, metaNodeMap, remainingEdges);\n size--;\n }\n return remainingEdges;\n};\nvar elesfn$p = {\n // Computes the minimum cut of an undirected graph\n // Returns the correct answer with high probability\n kargerStein: function kargerStein() {\n var _this = this;\n var _this$byGroup = this.byGroup(),\n nodes = _this$byGroup.nodes,\n edges = _this$byGroup.edges;\n edges.unmergeBy(function (edge) {\n return edge.isLoop();\n });\n var numNodes = nodes.length;\n var numEdges = edges.length;\n var numIter = Math.ceil(Math.pow(Math.log(numNodes) / Math.LN2, 2));\n var stopSize = Math.floor(numNodes / sqrt2);\n if (numNodes < 2) {\n error('At least 2 nodes are required for Karger-Stein algorithm');\n return undefined;\n }\n\n // Now store edge destination as indexes\n // Format for each edge (edge index, source node index, target node index)\n var edgeIndexes = [];\n for (var i = 0; i < numEdges; i++) {\n var e = edges[i];\n edgeIndexes.push([i, nodes.indexOf(e.source()), nodes.indexOf(e.target())]);\n }\n\n // We will store the best cut found here\n var minCutSize = Infinity;\n var minCutEdgeIndexes = [];\n var minCutNodeMap = new Array(numNodes);\n\n // Initial meta node partition\n var metaNodeMap = new Array(numNodes);\n var metaNodeMap2 = new Array(numNodes);\n var copyNodesMap = function copyNodesMap(from, to) {\n for (var _i3 = 0; _i3 < numNodes; _i3++) {\n to[_i3] = from[_i3];\n }\n };\n\n // Main loop\n for (var iter = 0; iter <= numIter; iter++) {\n // Reset meta node partition\n for (var _i4 = 0; _i4 < numNodes; _i4++) {\n metaNodeMap[_i4] = _i4;\n }\n\n // Contract until stop point (stopSize nodes)\n var edgesState = contractUntil(metaNodeMap, edgeIndexes.slice(), numNodes, stopSize);\n var edgesState2 = edgesState.slice(); // copy\n\n // Create a copy of the colapsed nodes state\n copyNodesMap(metaNodeMap, metaNodeMap2);\n\n // Run 2 iterations starting in the stop state\n var res1 = contractUntil(metaNodeMap, edgesState, stopSize, 2);\n var res2 = contractUntil(metaNodeMap2, edgesState2, stopSize, 2);\n\n // Is any of the 2 results the best cut so far?\n if (res1.length <= res2.length && res1.length < minCutSize) {\n minCutSize = res1.length;\n minCutEdgeIndexes = res1;\n copyNodesMap(metaNodeMap, minCutNodeMap);\n } else if (res2.length <= res1.length && res2.length < minCutSize) {\n minCutSize = res2.length;\n minCutEdgeIndexes = res2;\n copyNodesMap(metaNodeMap2, minCutNodeMap);\n }\n } // end of main loop\n\n // Construct result\n var cut = this.spawn(minCutEdgeIndexes.map(function (e) {\n return edges[e[0]];\n }));\n var partition1 = this.spawn();\n var partition2 = this.spawn();\n\n // traverse metaNodeMap for best cut\n var witnessNodePartition = minCutNodeMap[0];\n for (var _i5 = 0; _i5 < minCutNodeMap.length; _i5++) {\n var partitionId = minCutNodeMap[_i5];\n var node = nodes[_i5];\n if (partitionId === witnessNodePartition) {\n partition1.merge(node);\n } else {\n partition2.merge(node);\n }\n }\n\n // construct components corresponding to each disjoint subset of nodes\n var constructComponent = function constructComponent(subset) {\n var component = _this.spawn();\n subset.forEach(function (node) {\n component.merge(node);\n node.connectedEdges().forEach(function (edge) {\n // ensure edge is within calling collection and edge is not in cut\n if (_this.contains(edge) && !cut.contains(edge)) {\n component.merge(edge);\n }\n });\n });\n return component;\n };\n var components = [constructComponent(partition1), constructComponent(partition2)];\n var ret = {\n cut: cut,\n components: components,\n // n.b. partitions are included to be compatible with the old api spec\n // (could be removed in a future major version)\n partition1: partition1,\n partition2: partition2\n };\n return ret;\n }\n}; // elesfn\n\nvar copyPosition = function copyPosition(p) {\n return {\n x: p.x,\n y: p.y\n };\n};\nvar modelToRenderedPosition = function modelToRenderedPosition(p, zoom, pan) {\n return {\n x: p.x * zoom + pan.x,\n y: p.y * zoom + pan.y\n };\n};\nvar renderedToModelPosition = function renderedToModelPosition(p, zoom, pan) {\n return {\n x: (p.x - pan.x) / zoom,\n y: (p.y - pan.y) / zoom\n };\n};\nvar array2point = function array2point(arr) {\n return {\n x: arr[0],\n y: arr[1]\n };\n};\nvar min = function min(arr) {\n var begin = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var end = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : arr.length;\n var min = Infinity;\n for (var i = begin; i < end; i++) {\n var val = arr[i];\n if (isFinite(val)) {\n min = Math.min(val, min);\n }\n }\n return min;\n};\nvar max = function max(arr) {\n var begin = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var end = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : arr.length;\n var max = -Infinity;\n for (var i = begin; i < end; i++) {\n var val = arr[i];\n if (isFinite(val)) {\n max = Math.max(val, max);\n }\n }\n return max;\n};\nvar mean = function mean(arr) {\n var begin = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var end = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : arr.length;\n var total = 0;\n var n = 0;\n for (var i = begin; i < end; i++) {\n var val = arr[i];\n if (isFinite(val)) {\n total += val;\n n++;\n }\n }\n return total / n;\n};\nvar median = function median(arr) {\n var begin = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var end = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : arr.length;\n var copy = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;\n var sort = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : true;\n var includeHoles = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : true;\n if (copy) {\n arr = arr.slice(begin, end);\n } else {\n if (end < arr.length) {\n arr.splice(end, arr.length - end);\n }\n if (begin > 0) {\n arr.splice(0, begin);\n }\n }\n\n // all non finite (e.g. Infinity, NaN) elements must be -Infinity so they go to the start\n var off = 0; // offset from non-finite values\n for (var i = arr.length - 1; i >= 0; i--) {\n var v = arr[i];\n if (includeHoles) {\n if (!isFinite(v)) {\n arr[i] = -Infinity;\n off++;\n }\n } else {\n // just remove it if we don't want to consider holes\n arr.splice(i, 1);\n }\n }\n if (sort) {\n arr.sort(function (a, b) {\n return a - b;\n }); // requires copy = true if you don't want to change the orig\n }\n\n var len = arr.length;\n var mid = Math.floor(len / 2);\n if (len % 2 !== 0) {\n return arr[mid + 1 + off];\n } else {\n return (arr[mid - 1 + off] + arr[mid + off]) / 2;\n }\n};\nvar deg2rad = function deg2rad(deg) {\n return Math.PI * deg / 180;\n};\nvar getAngleFromDisp = function getAngleFromDisp(dispX, dispY) {\n return Math.atan2(dispY, dispX) - Math.PI / 2;\n};\nvar log2 = Math.log2 || function (n) {\n return Math.log(n) / Math.log(2);\n};\nvar signum = function signum(x) {\n if (x > 0) {\n return 1;\n } else if (x < 0) {\n return -1;\n } else {\n return 0;\n }\n};\nvar dist = function dist(p1, p2) {\n return Math.sqrt(sqdist(p1, p2));\n};\nvar sqdist = function sqdist(p1, p2) {\n var dx = p2.x - p1.x;\n var dy = p2.y - p1.y;\n return dx * dx + dy * dy;\n};\nvar inPlaceSumNormalize = function inPlaceSumNormalize(v) {\n var length = v.length;\n\n // First, get sum of all elements\n var total = 0;\n for (var i = 0; i < length; i++) {\n total += v[i];\n }\n\n // Now, divide each by the sum of all elements\n for (var _i = 0; _i < length; _i++) {\n v[_i] = v[_i] / total;\n }\n return v;\n};\n\n// from http://en.wikipedia.org/wiki/B\u00E9zier_curve#Quadratic_curves\nvar qbezierAt = function qbezierAt(p0, p1, p2, t) {\n return (1 - t) * (1 - t) * p0 + 2 * (1 - t) * t * p1 + t * t * p2;\n};\nvar qbezierPtAt = function qbezierPtAt(p0, p1, p2, t) {\n return {\n x: qbezierAt(p0.x, p1.x, p2.x, t),\n y: qbezierAt(p0.y, p1.y, p2.y, t)\n };\n};\nvar lineAt = function lineAt(p0, p1, t, d) {\n var vec = {\n x: p1.x - p0.x,\n y: p1.y - p0.y\n };\n var vecDist = dist(p0, p1);\n var normVec = {\n x: vec.x / vecDist,\n y: vec.y / vecDist\n };\n t = t == null ? 0 : t;\n d = d != null ? d : t * vecDist;\n return {\n x: p0.x + normVec.x * d,\n y: p0.y + normVec.y * d\n };\n};\nvar bound = function bound(min, val, max) {\n return Math.max(min, Math.min(max, val));\n};\n\n// makes a full bb (x1, y1, x2, y2, w, h) from implicit params\nvar makeBoundingBox = function makeBoundingBox(bb) {\n if (bb == null) {\n return {\n x1: Infinity,\n y1: Infinity,\n x2: -Infinity,\n y2: -Infinity,\n w: 0,\n h: 0\n };\n } else if (bb.x1 != null && bb.y1 != null) {\n if (bb.x2 != null && bb.y2 != null && bb.x2 >= bb.x1 && bb.y2 >= bb.y1) {\n return {\n x1: bb.x1,\n y1: bb.y1,\n x2: bb.x2,\n y2: bb.y2,\n w: bb.x2 - bb.x1,\n h: bb.y2 - bb.y1\n };\n } else if (bb.w != null && bb.h != null && bb.w >= 0 && bb.h >= 0) {\n return {\n x1: bb.x1,\n y1: bb.y1,\n x2: bb.x1 + bb.w,\n y2: bb.y1 + bb.h,\n w: bb.w,\n h: bb.h\n };\n }\n }\n};\nvar copyBoundingBox = function copyBoundingBox(bb) {\n return {\n x1: bb.x1,\n x2: bb.x2,\n w: bb.w,\n y1: bb.y1,\n y2: bb.y2,\n h: bb.h\n };\n};\nvar clearBoundingBox = function clearBoundingBox(bb) {\n bb.x1 = Infinity;\n bb.y1 = Infinity;\n bb.x2 = -Infinity;\n bb.y2 = -Infinity;\n bb.w = 0;\n bb.h = 0;\n};\nvar shiftBoundingBox = function shiftBoundingBox(bb, dx, dy) {\n return {\n x1: bb.x1 + dx,\n x2: bb.x2 + dx,\n y1: bb.y1 + dy,\n y2: bb.y2 + dy,\n w: bb.w,\n h: bb.h\n };\n};\nvar updateBoundingBox = function updateBoundingBox(bb1, bb2) {\n // update bb1 with bb2 bounds\n\n bb1.x1 = Math.min(bb1.x1, bb2.x1);\n bb1.x2 = Math.max(bb1.x2, bb2.x2);\n bb1.w = bb1.x2 - bb1.x1;\n bb1.y1 = Math.min(bb1.y1, bb2.y1);\n bb1.y2 = Math.max(bb1.y2, bb2.y2);\n bb1.h = bb1.y2 - bb1.y1;\n};\nvar expandBoundingBoxByPoint = function expandBoundingBoxByPoint(bb, x, y) {\n bb.x1 = Math.min(bb.x1, x);\n bb.x2 = Math.max(bb.x2, x);\n bb.w = bb.x2 - bb.x1;\n bb.y1 = Math.min(bb.y1, y);\n bb.y2 = Math.max(bb.y2, y);\n bb.h = bb.y2 - bb.y1;\n};\nvar expandBoundingBox = function expandBoundingBox(bb) {\n var padding = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n bb.x1 -= padding;\n bb.x2 += padding;\n bb.y1 -= padding;\n bb.y2 += padding;\n bb.w = bb.x2 - bb.x1;\n bb.h = bb.y2 - bb.y1;\n return bb;\n};\nvar expandBoundingBoxSides = function expandBoundingBoxSides(bb) {\n var padding = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [0];\n var top, right, bottom, left;\n if (padding.length === 1) {\n top = right = bottom = left = padding[0];\n } else if (padding.length === 2) {\n top = bottom = padding[0];\n left = right = padding[1];\n } else if (padding.length === 4) {\n var _padding = _slicedToArray(padding, 4);\n top = _padding[0];\n right = _padding[1];\n bottom = _padding[2];\n left = _padding[3];\n }\n bb.x1 -= left;\n bb.x2 += right;\n bb.y1 -= top;\n bb.y2 += bottom;\n bb.w = bb.x2 - bb.x1;\n bb.h = bb.y2 - bb.y1;\n return bb;\n};\n\n// assign the values of bb2 into bb1\nvar assignBoundingBox = function assignBoundingBox(bb1, bb2) {\n bb1.x1 = bb2.x1;\n bb1.y1 = bb2.y1;\n bb1.x2 = bb2.x2;\n bb1.y2 = bb2.y2;\n bb1.w = bb1.x2 - bb1.x1;\n bb1.h = bb1.y2 - bb1.y1;\n};\nvar boundingBoxesIntersect = function boundingBoxesIntersect(bb1, bb2) {\n // case: one bb to right of other\n if (bb1.x1 > bb2.x2) {\n return false;\n }\n if (bb2.x1 > bb1.x2) {\n return false;\n }\n\n // case: one bb to left of other\n if (bb1.x2 < bb2.x1) {\n return false;\n }\n if (bb2.x2 < bb1.x1) {\n return false;\n }\n\n // case: one bb above other\n if (bb1.y2 < bb2.y1) {\n return false;\n }\n if (bb2.y2 < bb1.y1) {\n return false;\n }\n\n // case: one bb below other\n if (bb1.y1 > bb2.y2) {\n return false;\n }\n if (bb2.y1 > bb1.y2) {\n return false;\n }\n\n // otherwise, must have some overlap\n return true;\n};\nvar inBoundingBox = function inBoundingBox(bb, x, y) {\n return bb.x1 <= x && x <= bb.x2 && bb.y1 <= y && y <= bb.y2;\n};\nvar pointInBoundingBox = function pointInBoundingBox(bb, pt) {\n return inBoundingBox(bb, pt.x, pt.y);\n};\nvar boundingBoxInBoundingBox = function boundingBoxInBoundingBox(bb1, bb2) {\n return inBoundingBox(bb1, bb2.x1, bb2.y1) && inBoundingBox(bb1, bb2.x2, bb2.y2);\n};\nvar roundRectangleIntersectLine = function roundRectangleIntersectLine(x, y, nodeX, nodeY, width, height, padding) {\n var radius = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : 'auto';\n var cornerRadius = radius === 'auto' ? getRoundRectangleRadius(width, height) : radius;\n var halfWidth = width / 2;\n var halfHeight = height / 2;\n cornerRadius = Math.min(cornerRadius, halfWidth, halfHeight);\n var doWidth = cornerRadius !== halfWidth,\n doHeight = cornerRadius !== halfHeight;\n\n // Check intersections with straight line segments\n var straightLineIntersections;\n\n // Top segment, left to right\n if (doWidth) {\n var topStartX = nodeX - halfWidth + cornerRadius - padding;\n var topStartY = nodeY - halfHeight - padding;\n var topEndX = nodeX + halfWidth - cornerRadius + padding;\n var topEndY = topStartY;\n straightLineIntersections = finiteLinesIntersect(x, y, nodeX, nodeY, topStartX, topStartY, topEndX, topEndY, false);\n if (straightLineIntersections.length > 0) {\n return straightLineIntersections;\n }\n }\n\n // Right segment, top to bottom\n if (doHeight) {\n var rightStartX = nodeX + halfWidth + padding;\n var rightStartY = nodeY - halfHeight + cornerRadius - padding;\n var rightEndX = rightStartX;\n var rightEndY = nodeY + halfHeight - cornerRadius + padding;\n straightLineIntersections = finiteLinesIntersect(x, y, nodeX, nodeY, rightStartX, rightStartY, rightEndX, rightEndY, false);\n if (straightLineIntersections.length > 0) {\n return straightLineIntersections;\n }\n }\n\n // Bottom segment, left to right\n if (doWidth) {\n var bottomStartX = nodeX - halfWidth + cornerRadius - padding;\n var bottomStartY = nodeY + halfHeight + padding;\n var bottomEndX = nodeX + halfWidth - cornerRadius + padding;\n var bottomEndY = bottomStartY;\n straightLineIntersections = finiteLinesIntersect(x, y, nodeX, nodeY, bottomStartX, bottomStartY, bottomEndX, bottomEndY, false);\n if (straightLineIntersections.length > 0) {\n return straightLineIntersections;\n }\n }\n\n // Left segment, top to bottom\n if (doHeight) {\n var leftStartX = nodeX - halfWidth - padding;\n var leftStartY = nodeY - halfHeight + cornerRadius - padding;\n var leftEndX = leftStartX;\n var leftEndY = nodeY + halfHeight - cornerRadius + padding;\n straightLineIntersections = finiteLinesIntersect(x, y, nodeX, nodeY, leftStartX, leftStartY, leftEndX, leftEndY, false);\n if (straightLineIntersections.length > 0) {\n return straightLineIntersections;\n }\n }\n\n // Check intersections with arc segments\n var arcIntersections;\n\n // Top Left\n {\n var topLeftCenterX = nodeX - halfWidth + cornerRadius;\n var topLeftCenterY = nodeY - halfHeight + cornerRadius;\n arcIntersections = intersectLineCircle(x, y, nodeX, nodeY, topLeftCenterX, topLeftCenterY, cornerRadius + padding);\n\n // Ensure the intersection is on the desired quarter of the circle\n if (arcIntersections.length > 0 && arcIntersections[0] <= topLeftCenterX && arcIntersections[1] <= topLeftCenterY) {\n return [arcIntersections[0], arcIntersections[1]];\n }\n }\n\n // Top Right\n {\n var topRightCenterX = nodeX + halfWidth - cornerRadius;\n var topRightCenterY = nodeY - halfHeight + cornerRadius;\n arcIntersections = intersectLineCircle(x, y, nodeX, nodeY, topRightCenterX, topRightCenterY, cornerRadius + padding);\n\n // Ensure the intersection is on the desired quarter of the circle\n if (arcIntersections.length > 0 && arcIntersections[0] >= topRightCenterX && arcIntersections[1] <= topRightCenterY) {\n return [arcIntersections[0], arcIntersections[1]];\n }\n }\n\n // Bottom Right\n {\n var bottomRightCenterX = nodeX + halfWidth - cornerRadius;\n var bottomRightCenterY = nodeY + halfHeight - cornerRadius;\n arcIntersections = intersectLineCircle(x, y, nodeX, nodeY, bottomRightCenterX, bottomRightCenterY, cornerRadius + padding);\n\n // Ensure the intersection is on the desired quarter of the circle\n if (arcIntersections.length > 0 && arcIntersections[0] >= bottomRightCenterX && arcIntersections[1] >= bottomRightCenterY) {\n return [arcIntersections[0], arcIntersections[1]];\n }\n }\n\n // Bottom Left\n {\n var bottomLeftCenterX = nodeX - halfWidth + cornerRadius;\n var bottomLeftCenterY = nodeY + halfHeight - cornerRadius;\n arcIntersections = intersectLineCircle(x, y, nodeX, nodeY, bottomLeftCenterX, bottomLeftCenterY, cornerRadius + padding);\n\n // Ensure the intersection is on the desired quarter of the circle\n if (arcIntersections.length > 0 && arcIntersections[0] <= bottomLeftCenterX && arcIntersections[1] >= bottomLeftCenterY) {\n return [arcIntersections[0], arcIntersections[1]];\n }\n }\n return []; // if nothing\n};\n\nvar inLineVicinity = function inLineVicinity(x, y, lx1, ly1, lx2, ly2, tolerance) {\n var t = tolerance;\n var x1 = Math.min(lx1, lx2);\n var x2 = Math.max(lx1, lx2);\n var y1 = Math.min(ly1, ly2);\n var y2 = Math.max(ly1, ly2);\n return x1 - t <= x && x <= x2 + t && y1 - t <= y && y <= y2 + t;\n};\nvar inBezierVicinity = function inBezierVicinity(x, y, x1, y1, x2, y2, x3, y3, tolerance) {\n var bb = {\n x1: Math.min(x1, x3, x2) - tolerance,\n x2: Math.max(x1, x3, x2) + tolerance,\n y1: Math.min(y1, y3, y2) - tolerance,\n y2: Math.max(y1, y3, y2) + tolerance\n };\n\n // if outside the rough bounding box for the bezier, then it can't be a hit\n if (x < bb.x1 || x > bb.x2 || y < bb.y1 || y > bb.y2) {\n // console.log('bezier out of rough bb')\n return false;\n } else {\n // console.log('do more expensive check');\n return true;\n }\n};\nvar solveQuadratic = function solveQuadratic(a, b, c, val) {\n c -= val;\n var r = b * b - 4 * a * c;\n if (r < 0) {\n return [];\n }\n var sqrtR = Math.sqrt(r);\n var denom = 2 * a;\n var root1 = (-b + sqrtR) / denom;\n var root2 = (-b - sqrtR) / denom;\n return [root1, root2];\n};\nvar solveCubic = function solveCubic(a, b, c, d, result) {\n // Solves a cubic function, returns root in form [r1, i1, r2, i2, r3, i3], where\n // r is the real component, i is the imaginary component\n\n // An implementation of the Cardano method from the year 1545\n // http://en.wikipedia.org/wiki/Cubic_function#The_nature_of_the_roots\n\n var epsilon = 0.00001;\n\n // avoid division by zero while keeping the overall expression close in value\n if (a === 0) {\n a = epsilon;\n }\n b /= a;\n c /= a;\n d /= a;\n var discriminant, q, r, dum1, s, t, term1, r13;\n q = (3.0 * c - b * b) / 9.0;\n r = -(27.0 * d) + b * (9.0 * c - 2.0 * (b * b));\n r /= 54.0;\n discriminant = q * q * q + r * r;\n result[1] = 0;\n term1 = b / 3.0;\n if (discriminant > 0) {\n s = r + Math.sqrt(discriminant);\n s = s < 0 ? -Math.pow(-s, 1.0 / 3.0) : Math.pow(s, 1.0 / 3.0);\n t = r - Math.sqrt(discriminant);\n t = t < 0 ? -Math.pow(-t, 1.0 / 3.0) : Math.pow(t, 1.0 / 3.0);\n result[0] = -term1 + s + t;\n term1 += (s + t) / 2.0;\n result[4] = result[2] = -term1;\n term1 = Math.sqrt(3.0) * (-t + s) / 2;\n result[3] = term1;\n result[5] = -term1;\n return;\n }\n result[5] = result[3] = 0;\n if (discriminant === 0) {\n r13 = r < 0 ? -Math.pow(-r, 1.0 / 3.0) : Math.pow(r, 1.0 / 3.0);\n result[0] = -term1 + 2.0 * r13;\n result[4] = result[2] = -(r13 + term1);\n return;\n }\n q = -q;\n dum1 = q * q * q;\n dum1 = Math.acos(r / Math.sqrt(dum1));\n r13 = 2.0 * Math.sqrt(q);\n result[0] = -term1 + r13 * Math.cos(dum1 / 3.0);\n result[2] = -term1 + r13 * Math.cos((dum1 + 2.0 * Math.PI) / 3.0);\n result[4] = -term1 + r13 * Math.cos((dum1 + 4.0 * Math.PI) / 3.0);\n return;\n};\nvar sqdistToQuadraticBezier = function sqdistToQuadraticBezier(x, y, x1, y1, x2, y2, x3, y3) {\n // Find minimum distance by using the minimum of the distance\n // function between the given point and the curve\n\n // This gives the coefficients of the resulting cubic equation\n // whose roots tell us where a possible minimum is\n // (Coefficients are divided by 4)\n\n var a = 1.0 * x1 * x1 - 4 * x1 * x2 + 2 * x1 * x3 + 4 * x2 * x2 - 4 * x2 * x3 + x3 * x3 + y1 * y1 - 4 * y1 * y2 + 2 * y1 * y3 + 4 * y2 * y2 - 4 * y2 * y3 + y3 * y3;\n var b = 1.0 * 9 * x1 * x2 - 3 * x1 * x1 - 3 * x1 * x3 - 6 * x2 * x2 + 3 * x2 * x3 + 9 * y1 * y2 - 3 * y1 * y1 - 3 * y1 * y3 - 6 * y2 * y2 + 3 * y2 * y3;\n var c = 1.0 * 3 * x1 * x1 - 6 * x1 * x2 + x1 * x3 - x1 * x + 2 * x2 * x2 + 2 * x2 * x - x3 * x + 3 * y1 * y1 - 6 * y1 * y2 + y1 * y3 - y1 * y + 2 * y2 * y2 + 2 * y2 * y - y3 * y;\n var d = 1.0 * x1 * x2 - x1 * x1 + x1 * x - x2 * x + y1 * y2 - y1 * y1 + y1 * y - y2 * y;\n\n // debug(\"coefficients: \" + a / a + \", \" + b / a + \", \" + c / a + \", \" + d / a);\n\n var roots = [];\n\n // Use the cubic solving algorithm\n solveCubic(a, b, c, d, roots);\n var zeroThreshold = 0.0000001;\n var params = [];\n for (var index = 0; index < 6; index += 2) {\n if (Math.abs(roots[index + 1]) < zeroThreshold && roots[index] >= 0 && roots[index] <= 1.0) {\n params.push(roots[index]);\n }\n }\n params.push(1.0);\n params.push(0.0);\n var minDistanceSquared = -1;\n var curX, curY, distSquared;\n for (var i = 0; i < params.length; i++) {\n curX = Math.pow(1.0 - params[i], 2.0) * x1 + 2.0 * (1 - params[i]) * params[i] * x2 + params[i] * params[i] * x3;\n curY = Math.pow(1 - params[i], 2.0) * y1 + 2 * (1.0 - params[i]) * params[i] * y2 + params[i] * params[i] * y3;\n distSquared = Math.pow(curX - x, 2) + Math.pow(curY - y, 2);\n // debug('distance for param ' + params[i] + \": \" + Math.sqrt(distSquared));\n if (minDistanceSquared >= 0) {\n if (distSquared < minDistanceSquared) {\n minDistanceSquared = distSquared;\n }\n } else {\n minDistanceSquared = distSquared;\n }\n }\n return minDistanceSquared;\n};\nvar sqdistToFiniteLine = function sqdistToFiniteLine(x, y, x1, y1, x2, y2) {\n var offset = [x - x1, y - y1];\n var line = [x2 - x1, y2 - y1];\n var lineSq = line[0] * line[0] + line[1] * line[1];\n var hypSq = offset[0] * offset[0] + offset[1] * offset[1];\n var dotProduct = offset[0] * line[0] + offset[1] * line[1];\n var adjSq = dotProduct * dotProduct / lineSq;\n if (dotProduct < 0) {\n return hypSq;\n }\n if (adjSq > lineSq) {\n return (x - x2) * (x - x2) + (y - y2) * (y - y2);\n }\n return hypSq - adjSq;\n};\nvar pointInsidePolygonPoints = function pointInsidePolygonPoints(x, y, points) {\n var x1, y1, x2, y2;\n var y3;\n\n // Intersect with vertical line through (x, y)\n var up = 0;\n // let down = 0;\n for (var i = 0; i < points.length / 2; i++) {\n x1 = points[i * 2];\n y1 = points[i * 2 + 1];\n if (i + 1 < points.length / 2) {\n x2 = points[(i + 1) * 2];\n y2 = points[(i + 1) * 2 + 1];\n } else {\n x2 = points[(i + 1 - points.length / 2) * 2];\n y2 = points[(i + 1 - points.length / 2) * 2 + 1];\n }\n if (x1 == x && x2 == x) ; else if (x1 >= x && x >= x2 || x1 <= x && x <= x2) {\n y3 = (x - x1) / (x2 - x1) * (y2 - y1) + y1;\n if (y3 > y) {\n up++;\n }\n\n // if( y3 < y ){\n // down++;\n // }\n } else {\n continue;\n }\n }\n if (up % 2 === 0) {\n return false;\n } else {\n return true;\n }\n};\nvar pointInsidePolygon = function pointInsidePolygon(x, y, basePoints, centerX, centerY, width, height, direction, padding) {\n var transformedPoints = new Array(basePoints.length);\n\n // Gives negative angle\n var angle;\n if (direction[0] != null) {\n angle = Math.atan(direction[1] / direction[0]);\n if (direction[0] < 0) {\n angle = angle + Math.PI / 2;\n } else {\n angle = -angle - Math.PI / 2;\n }\n } else {\n angle = direction;\n }\n var cos = Math.cos(-angle);\n var sin = Math.sin(-angle);\n\n // console.log(\"base: \" + basePoints);\n for (var i = 0; i < transformedPoints.length / 2; i++) {\n transformedPoints[i * 2] = width / 2 * (basePoints[i * 2] * cos - basePoints[i * 2 + 1] * sin);\n transformedPoints[i * 2 + 1] = height / 2 * (basePoints[i * 2 + 1] * cos + basePoints[i * 2] * sin);\n transformedPoints[i * 2] += centerX;\n transformedPoints[i * 2 + 1] += centerY;\n }\n var points;\n if (padding > 0) {\n var expandedLineSet = expandPolygon(transformedPoints, -padding);\n points = joinLines(expandedLineSet);\n } else {\n points = transformedPoints;\n }\n return pointInsidePolygonPoints(x, y, points);\n};\nvar pointInsideRoundPolygon = function pointInsideRoundPolygon(x, y, basePoints, centerX, centerY, width, height, corners) {\n var cutPolygonPoints = new Array(basePoints.length * 2);\n for (var i = 0; i < corners.length; i++) {\n var corner = corners[i];\n cutPolygonPoints[i * 4 + 0] = corner.startX;\n cutPolygonPoints[i * 4 + 1] = corner.startY;\n cutPolygonPoints[i * 4 + 2] = corner.stopX;\n cutPolygonPoints[i * 4 + 3] = corner.stopY;\n var squaredDistance = Math.pow(corner.cx - x, 2) + Math.pow(corner.cy - y, 2);\n if (squaredDistance <= Math.pow(corner.radius, 2)) {\n return true;\n }\n }\n return pointInsidePolygonPoints(x, y, cutPolygonPoints);\n};\nvar joinLines = function joinLines(lineSet) {\n var vertices = new Array(lineSet.length / 2);\n var currentLineStartX, currentLineStartY, currentLineEndX, currentLineEndY;\n var nextLineStartX, nextLineStartY, nextLineEndX, nextLineEndY;\n for (var i = 0; i < lineSet.length / 4; i++) {\n currentLineStartX = lineSet[i * 4];\n currentLineStartY = lineSet[i * 4 + 1];\n currentLineEndX = lineSet[i * 4 + 2];\n currentLineEndY = lineSet[i * 4 + 3];\n if (i < lineSet.length / 4 - 1) {\n nextLineStartX = lineSet[(i + 1) * 4];\n nextLineStartY = lineSet[(i + 1) * 4 + 1];\n nextLineEndX = lineSet[(i + 1) * 4 + 2];\n nextLineEndY = lineSet[(i + 1) * 4 + 3];\n } else {\n nextLineStartX = lineSet[0];\n nextLineStartY = lineSet[1];\n nextLineEndX = lineSet[2];\n nextLineEndY = lineSet[3];\n }\n var intersection = finiteLinesIntersect(currentLineStartX, currentLineStartY, currentLineEndX, currentLineEndY, nextLineStartX, nextLineStartY, nextLineEndX, nextLineEndY, true);\n vertices[i * 2] = intersection[0];\n vertices[i * 2 + 1] = intersection[1];\n }\n return vertices;\n};\nvar expandPolygon = function expandPolygon(points, pad) {\n var expandedLineSet = new Array(points.length * 2);\n var currentPointX, currentPointY, nextPointX, nextPointY;\n for (var i = 0; i < points.length / 2; i++) {\n currentPointX = points[i * 2];\n currentPointY = points[i * 2 + 1];\n if (i < points.length / 2 - 1) {\n nextPointX = points[(i + 1) * 2];\n nextPointY = points[(i + 1) * 2 + 1];\n } else {\n nextPointX = points[0];\n nextPointY = points[1];\n }\n\n // Current line: [currentPointX, currentPointY] to [nextPointX, nextPointY]\n\n // Assume CCW polygon winding\n\n var offsetX = nextPointY - currentPointY;\n var offsetY = -(nextPointX - currentPointX);\n\n // Normalize\n var offsetLength = Math.sqrt(offsetX * offsetX + offsetY * offsetY);\n var normalizedOffsetX = offsetX / offsetLength;\n var normalizedOffsetY = offsetY / offsetLength;\n expandedLineSet[i * 4] = currentPointX + normalizedOffsetX * pad;\n expandedLineSet[i * 4 + 1] = currentPointY + normalizedOffsetY * pad;\n expandedLineSet[i * 4 + 2] = nextPointX + normalizedOffsetX * pad;\n expandedLineSet[i * 4 + 3] = nextPointY + normalizedOffsetY * pad;\n }\n return expandedLineSet;\n};\nvar intersectLineEllipse = function intersectLineEllipse(x, y, centerX, centerY, ellipseWradius, ellipseHradius) {\n var dispX = centerX - x;\n var dispY = centerY - y;\n dispX /= ellipseWradius;\n dispY /= ellipseHradius;\n var len = Math.sqrt(dispX * dispX + dispY * dispY);\n var newLength = len - 1;\n if (newLength < 0) {\n return [];\n }\n var lenProportion = newLength / len;\n return [(centerX - x) * lenProportion + x, (centerY - y) * lenProportion + y];\n};\nvar checkInEllipse = function checkInEllipse(x, y, width, height, centerX, centerY, padding) {\n x -= centerX;\n y -= centerY;\n x /= width / 2 + padding;\n y /= height / 2 + padding;\n return x * x + y * y <= 1;\n};\n\n// Returns intersections of increasing distance from line's start point\nvar intersectLineCircle = function intersectLineCircle(x1, y1, x2, y2, centerX, centerY, radius) {\n // Calculate d, direction vector of line\n var d = [x2 - x1, y2 - y1]; // Direction vector of line\n var f = [x1 - centerX, y1 - centerY];\n var a = d[0] * d[0] + d[1] * d[1];\n var b = 2 * (f[0] * d[0] + f[1] * d[1]);\n var c = f[0] * f[0] + f[1] * f[1] - radius * radius;\n var discriminant = b * b - 4 * a * c;\n if (discriminant < 0) {\n return [];\n }\n var t1 = (-b + Math.sqrt(discriminant)) / (2 * a);\n var t2 = (-b - Math.sqrt(discriminant)) / (2 * a);\n var tMin = Math.min(t1, t2);\n var tMax = Math.max(t1, t2);\n var inRangeParams = [];\n if (tMin >= 0 && tMin <= 1) {\n inRangeParams.push(tMin);\n }\n if (tMax >= 0 && tMax <= 1) {\n inRangeParams.push(tMax);\n }\n if (inRangeParams.length === 0) {\n return [];\n }\n var nearIntersectionX = inRangeParams[0] * d[0] + x1;\n var nearIntersectionY = inRangeParams[0] * d[1] + y1;\n if (inRangeParams.length > 1) {\n if (inRangeParams[0] == inRangeParams[1]) {\n return [nearIntersectionX, nearIntersectionY];\n } else {\n var farIntersectionX = inRangeParams[1] * d[0] + x1;\n var farIntersectionY = inRangeParams[1] * d[1] + y1;\n return [nearIntersectionX, nearIntersectionY, farIntersectionX, farIntersectionY];\n }\n } else {\n return [nearIntersectionX, nearIntersectionY];\n }\n};\nvar midOfThree = function midOfThree(a, b, c) {\n if (b <= a && a <= c || c <= a && a <= b) {\n return a;\n } else if (a <= b && b <= c || c <= b && b <= a) {\n return b;\n } else {\n return c;\n }\n};\n\n// (x1,y1)=>(x2,y2) intersect with (x3,y3)=>(x4,y4)\nvar finiteLinesIntersect = function finiteLinesIntersect(x1, y1, x2, y2, x3, y3, x4, y4, infiniteLines) {\n var dx13 = x1 - x3;\n var dx21 = x2 - x1;\n var dx43 = x4 - x3;\n var dy13 = y1 - y3;\n var dy21 = y2 - y1;\n var dy43 = y4 - y3;\n var ua_t = dx43 * dy13 - dy43 * dx13;\n var ub_t = dx21 * dy13 - dy21 * dx13;\n var u_b = dy43 * dx21 - dx43 * dy21;\n if (u_b !== 0) {\n var ua = ua_t / u_b;\n var ub = ub_t / u_b;\n var flptThreshold = 0.001;\n var _min = 0 - flptThreshold;\n var _max = 1 + flptThreshold;\n if (_min <= ua && ua <= _max && _min <= ub && ub <= _max) {\n return [x1 + ua * dx21, y1 + ua * dy21];\n } else {\n if (!infiniteLines) {\n return [];\n } else {\n return [x1 + ua * dx21, y1 + ua * dy21];\n }\n }\n } else {\n if (ua_t === 0 || ub_t === 0) {\n // Parallel, coincident lines. Check if overlap\n\n // Check endpoint of second line\n if (midOfThree(x1, x2, x4) === x4) {\n return [x4, y4];\n }\n\n // Check start point of second line\n if (midOfThree(x1, x2, x3) === x3) {\n return [x3, y3];\n }\n\n // Endpoint of first line\n if (midOfThree(x3, x4, x2) === x2) {\n return [x2, y2];\n }\n return [];\n } else {\n // Parallel, non-coincident\n return [];\n }\n }\n};\n\n// math.polygonIntersectLine( x, y, basePoints, centerX, centerY, width, height, padding )\n// intersect a node polygon (pts transformed)\n//\n// math.polygonIntersectLine( x, y, basePoints, centerX, centerY )\n// intersect the points (no transform)\nvar polygonIntersectLine = function polygonIntersectLine(x, y, basePoints, centerX, centerY, width, height, padding) {\n var intersections = [];\n var intersection;\n var transformedPoints = new Array(basePoints.length);\n var doTransform = true;\n if (width == null) {\n doTransform = false;\n }\n var points;\n if (doTransform) {\n for (var i = 0; i < transformedPoints.length / 2; i++) {\n transformedPoints[i * 2] = basePoints[i * 2] * width + centerX;\n transformedPoints[i * 2 + 1] = basePoints[i * 2 + 1] * height + centerY;\n }\n if (padding > 0) {\n var expandedLineSet = expandPolygon(transformedPoints, -padding);\n points = joinLines(expandedLineSet);\n } else {\n points = transformedPoints;\n }\n } else {\n points = basePoints;\n }\n var currentX, currentY, nextX, nextY;\n for (var _i2 = 0; _i2 < points.length / 2; _i2++) {\n currentX = points[_i2 * 2];\n currentY = points[_i2 * 2 + 1];\n if (_i2 < points.length / 2 - 1) {\n nextX = points[(_i2 + 1) * 2];\n nextY = points[(_i2 + 1) * 2 + 1];\n } else {\n nextX = points[0];\n nextY = points[1];\n }\n intersection = finiteLinesIntersect(x, y, centerX, centerY, currentX, currentY, nextX, nextY);\n if (intersection.length !== 0) {\n intersections.push(intersection[0], intersection[1]);\n }\n }\n return intersections;\n};\nvar roundPolygonIntersectLine = function roundPolygonIntersectLine(x, y, basePoints, centerX, centerY, width, height, padding, corners) {\n var intersections = [];\n var intersection;\n var lines = new Array(basePoints.length * 2);\n corners.forEach(function (corner, i) {\n if (i === 0) {\n lines[lines.length - 2] = corner.startX;\n lines[lines.length - 1] = corner.startY;\n } else {\n lines[i * 4 - 2] = corner.startX;\n lines[i * 4 - 1] = corner.startY;\n }\n lines[i * 4] = corner.stopX;\n lines[i * 4 + 1] = corner.stopY;\n intersection = intersectLineCircle(x, y, centerX, centerY, corner.cx, corner.cy, corner.radius);\n if (intersection.length !== 0) {\n intersections.push(intersection[0], intersection[1]);\n }\n });\n for (var i = 0; i < lines.length / 4; i++) {\n intersection = finiteLinesIntersect(x, y, centerX, centerY, lines[i * 4], lines[i * 4 + 1], lines[i * 4 + 2], lines[i * 4 + 3], false);\n if (intersection.length !== 0) {\n intersections.push(intersection[0], intersection[1]);\n }\n }\n if (intersections.length > 2) {\n var lowestIntersection = [intersections[0], intersections[1]];\n var lowestSquaredDistance = Math.pow(lowestIntersection[0] - x, 2) + Math.pow(lowestIntersection[1] - y, 2);\n for (var _i3 = 1; _i3 < intersections.length / 2; _i3++) {\n var squaredDistance = Math.pow(intersections[_i3 * 2] - x, 2) + Math.pow(intersections[_i3 * 2 + 1] - y, 2);\n if (squaredDistance <= lowestSquaredDistance) {\n lowestIntersection[0] = intersections[_i3 * 2];\n lowestIntersection[1] = intersections[_i3 * 2 + 1];\n lowestSquaredDistance = squaredDistance;\n }\n }\n return lowestIntersection;\n }\n return intersections;\n};\nvar shortenIntersection = function shortenIntersection(intersection, offset, amount) {\n var disp = [intersection[0] - offset[0], intersection[1] - offset[1]];\n var length = Math.sqrt(disp[0] * disp[0] + disp[1] * disp[1]);\n var lenRatio = (length - amount) / length;\n if (lenRatio < 0) {\n lenRatio = 0.00001;\n }\n return [offset[0] + lenRatio * disp[0], offset[1] + lenRatio * disp[1]];\n};\nvar generateUnitNgonPointsFitToSquare = function generateUnitNgonPointsFitToSquare(sides, rotationRadians) {\n var points = generateUnitNgonPoints(sides, rotationRadians);\n points = fitPolygonToSquare(points);\n return points;\n};\nvar fitPolygonToSquare = function fitPolygonToSquare(points) {\n var x, y;\n var sides = points.length / 2;\n var minX = Infinity,\n minY = Infinity,\n maxX = -Infinity,\n maxY = -Infinity;\n for (var i = 0; i < sides; i++) {\n x = points[2 * i];\n y = points[2 * i + 1];\n minX = Math.min(minX, x);\n maxX = Math.max(maxX, x);\n minY = Math.min(minY, y);\n maxY = Math.max(maxY, y);\n }\n\n // stretch factors\n var sx = 2 / (maxX - minX);\n var sy = 2 / (maxY - minY);\n for (var _i4 = 0; _i4 < sides; _i4++) {\n x = points[2 * _i4] = points[2 * _i4] * sx;\n y = points[2 * _i4 + 1] = points[2 * _i4 + 1] * sy;\n minX = Math.min(minX, x);\n maxX = Math.max(maxX, x);\n minY = Math.min(minY, y);\n maxY = Math.max(maxY, y);\n }\n if (minY < -1) {\n for (var _i5 = 0; _i5 < sides; _i5++) {\n y = points[2 * _i5 + 1] = points[2 * _i5 + 1] + (-1 - minY);\n }\n }\n return points;\n};\nvar generateUnitNgonPoints = function generateUnitNgonPoints(sides, rotationRadians) {\n var increment = 1.0 / sides * 2 * Math.PI;\n var startAngle = sides % 2 === 0 ? Math.PI / 2.0 + increment / 2.0 : Math.PI / 2.0;\n startAngle += rotationRadians;\n var points = new Array(sides * 2);\n var currentAngle;\n for (var i = 0; i < sides; i++) {\n currentAngle = i * increment + startAngle;\n points[2 * i] = Math.cos(currentAngle); // x\n points[2 * i + 1] = Math.sin(-currentAngle); // y\n }\n\n return points;\n};\n\n// Set the default radius, unless half of width or height is smaller than default\nvar getRoundRectangleRadius = function getRoundRectangleRadius(width, height) {\n return Math.min(width / 4, height / 4, 8);\n};\n\n// Set the default radius\nvar getRoundPolygonRadius = function getRoundPolygonRadius(width, height) {\n return Math.min(width / 10, height / 10, 8);\n};\nvar getCutRectangleCornerLength = function getCutRectangleCornerLength() {\n return 8;\n};\nvar bezierPtsToQuadCoeff = function bezierPtsToQuadCoeff(p0, p1, p2) {\n return [p0 - 2 * p1 + p2, 2 * (p1 - p0), p0];\n};\n\n// get curve width, height, and control point position offsets as a percentage of node height / width\nvar getBarrelCurveConstants = function getBarrelCurveConstants(width, height) {\n return {\n heightOffset: Math.min(15, 0.05 * height),\n widthOffset: Math.min(100, 0.25 * width),\n ctrlPtOffsetPct: 0.05\n };\n};\n\nvar pageRankDefaults = defaults$g({\n dampingFactor: 0.8,\n precision: 0.000001,\n iterations: 200,\n weight: function weight(edge) {\n return 1;\n }\n});\nvar elesfn$o = {\n pageRank: function pageRank(options) {\n var _pageRankDefaults = pageRankDefaults(options),\n dampingFactor = _pageRankDefaults.dampingFactor,\n precision = _pageRankDefaults.precision,\n iterations = _pageRankDefaults.iterations,\n weight = _pageRankDefaults.weight;\n var cy = this._private.cy;\n var _this$byGroup = this.byGroup(),\n nodes = _this$byGroup.nodes,\n edges = _this$byGroup.edges;\n var numNodes = nodes.length;\n var numNodesSqd = numNodes * numNodes;\n var numEdges = edges.length;\n\n // Construct transposed adjacency matrix\n // First lets have a zeroed matrix of the right size\n // We'll also keep track of the sum of each column\n var matrix = new Array(numNodesSqd);\n var columnSum = new Array(numNodes);\n var additionalProb = (1 - dampingFactor) / numNodes;\n\n // Create null matrix\n for (var i = 0; i < numNodes; i++) {\n for (var j = 0; j < numNodes; j++) {\n var n = i * numNodes + j;\n matrix[n] = 0;\n }\n columnSum[i] = 0;\n }\n\n // Now, process edges\n for (var _i = 0; _i < numEdges; _i++) {\n var edge = edges[_i];\n var srcId = edge.data('source');\n var tgtId = edge.data('target');\n\n // Don't include loops in the matrix\n if (srcId === tgtId) {\n continue;\n }\n var s = nodes.indexOfId(srcId);\n var t = nodes.indexOfId(tgtId);\n var w = weight(edge);\n var _n = t * numNodes + s;\n\n // Update matrix\n matrix[_n] += w;\n\n // Update column sum\n columnSum[s] += w;\n }\n\n // Add additional probability based on damping factor\n // Also, take into account columns that have sum = 0\n var p = 1.0 / numNodes + additionalProb; // Shorthand\n\n // Traverse matrix, column by column\n for (var _j = 0; _j < numNodes; _j++) {\n if (columnSum[_j] === 0) {\n // No 'links' out from node jth, assume equal probability for each possible node\n for (var _i2 = 0; _i2 < numNodes; _i2++) {\n var _n2 = _i2 * numNodes + _j;\n matrix[_n2] = p;\n }\n } else {\n // Node jth has outgoing link, compute normalized probabilities\n for (var _i3 = 0; _i3 < numNodes; _i3++) {\n var _n3 = _i3 * numNodes + _j;\n matrix[_n3] = matrix[_n3] / columnSum[_j] + additionalProb;\n }\n }\n }\n\n // Compute dominant eigenvector using power method\n var eigenvector = new Array(numNodes);\n var temp = new Array(numNodes);\n var previous;\n\n // Start with a vector of all 1's\n // Also, initialize a null vector which will be used as shorthand\n for (var _i4 = 0; _i4 < numNodes; _i4++) {\n eigenvector[_i4] = 1;\n }\n for (var iter = 0; iter < iterations; iter++) {\n // Temp array with all 0's\n for (var _i5 = 0; _i5 < numNodes; _i5++) {\n temp[_i5] = 0;\n }\n\n // Multiply matrix with previous result\n for (var _i6 = 0; _i6 < numNodes; _i6++) {\n for (var _j2 = 0; _j2 < numNodes; _j2++) {\n var _n4 = _i6 * numNodes + _j2;\n temp[_i6] += matrix[_n4] * eigenvector[_j2];\n }\n }\n inPlaceSumNormalize(temp);\n previous = eigenvector;\n eigenvector = temp;\n temp = previous;\n var diff = 0;\n // Compute difference (squared module) of both vectors\n for (var _i7 = 0; _i7 < numNodes; _i7++) {\n var delta = previous[_i7] - eigenvector[_i7];\n diff += delta * delta;\n }\n\n // If difference is less than the desired threshold, stop iterating\n if (diff < precision) {\n break;\n }\n }\n\n // Construct result\n var res = {\n rank: function rank(node) {\n node = cy.collection(node)[0];\n return eigenvector[nodes.indexOf(node)];\n }\n };\n return res;\n } // pageRank\n}; // elesfn\n\nvar defaults$f = defaults$g({\n root: null,\n weight: function weight(edge) {\n return 1;\n },\n directed: false,\n alpha: 0\n});\nvar elesfn$n = {\n degreeCentralityNormalized: function degreeCentralityNormalized(options) {\n options = defaults$f(options);\n var cy = this.cy();\n var nodes = this.nodes();\n var numNodes = nodes.length;\n if (!options.directed) {\n var degrees = {};\n var maxDegree = 0;\n for (var i = 0; i < numNodes; i++) {\n var node = nodes[i];\n\n // add current node to the current options object and call degreeCentrality\n options.root = node;\n var currDegree = this.degreeCentrality(options);\n if (maxDegree < currDegree.degree) {\n maxDegree = currDegree.degree;\n }\n degrees[node.id()] = currDegree.degree;\n }\n return {\n degree: function degree(node) {\n if (maxDegree === 0) {\n return 0;\n }\n if (string(node)) {\n // from is a selector string\n node = cy.filter(node);\n }\n return degrees[node.id()] / maxDegree;\n }\n };\n } else {\n var indegrees = {};\n var outdegrees = {};\n var maxIndegree = 0;\n var maxOutdegree = 0;\n for (var _i = 0; _i < numNodes; _i++) {\n var _node = nodes[_i];\n var id = _node.id();\n\n // add current node to the current options object and call degreeCentrality\n options.root = _node;\n var _currDegree = this.degreeCentrality(options);\n if (maxIndegree < _currDegree.indegree) maxIndegree = _currDegree.indegree;\n if (maxOutdegree < _currDegree.outdegree) maxOutdegree = _currDegree.outdegree;\n indegrees[id] = _currDegree.indegree;\n outdegrees[id] = _currDegree.outdegree;\n }\n return {\n indegree: function indegree(node) {\n if (maxIndegree == 0) {\n return 0;\n }\n if (string(node)) {\n // from is a selector string\n node = cy.filter(node);\n }\n return indegrees[node.id()] / maxIndegree;\n },\n outdegree: function outdegree(node) {\n if (maxOutdegree === 0) {\n return 0;\n }\n if (string(node)) {\n // from is a selector string\n node = cy.filter(node);\n }\n return outdegrees[node.id()] / maxOutdegree;\n }\n };\n }\n },\n // degreeCentralityNormalized\n\n // Implemented from the algorithm in Opsahl's paper\n // \"Node centrality in weighted networks: Generalizing degree and shortest paths\"\n // check the heading 2 \"Degree\"\n degreeCentrality: function degreeCentrality(options) {\n options = defaults$f(options);\n var cy = this.cy();\n var callingEles = this;\n var _options = options,\n root = _options.root,\n weight = _options.weight,\n directed = _options.directed,\n alpha = _options.alpha;\n root = cy.collection(root)[0];\n if (!directed) {\n var connEdges = root.connectedEdges().intersection(callingEles);\n var k = connEdges.length;\n var s = 0;\n\n // Now, sum edge weights\n for (var i = 0; i < connEdges.length; i++) {\n s += weight(connEdges[i]);\n }\n return {\n degree: Math.pow(k, 1 - alpha) * Math.pow(s, alpha)\n };\n } else {\n var edges = root.connectedEdges();\n var incoming = edges.filter(function (edge) {\n return edge.target().same(root) && callingEles.has(edge);\n });\n var outgoing = edges.filter(function (edge) {\n return edge.source().same(root) && callingEles.has(edge);\n });\n var k_in = incoming.length;\n var k_out = outgoing.length;\n var s_in = 0;\n var s_out = 0;\n\n // Now, sum incoming edge weights\n for (var _i2 = 0; _i2 < incoming.length; _i2++) {\n s_in += weight(incoming[_i2]);\n }\n\n // Now, sum outgoing edge weights\n for (var _i3 = 0; _i3 < outgoing.length; _i3++) {\n s_out += weight(outgoing[_i3]);\n }\n return {\n indegree: Math.pow(k_in, 1 - alpha) * Math.pow(s_in, alpha),\n outdegree: Math.pow(k_out, 1 - alpha) * Math.pow(s_out, alpha)\n };\n }\n } // degreeCentrality\n}; // elesfn\n\n// nice, short mathematical alias\nelesfn$n.dc = elesfn$n.degreeCentrality;\nelesfn$n.dcn = elesfn$n.degreeCentralityNormalised = elesfn$n.degreeCentralityNormalized;\n\nvar defaults$e = defaults$g({\n harmonic: true,\n weight: function weight() {\n return 1;\n },\n directed: false,\n root: null\n});\nvar elesfn$m = {\n closenessCentralityNormalized: function closenessCentralityNormalized(options) {\n var _defaults = defaults$e(options),\n harmonic = _defaults.harmonic,\n weight = _defaults.weight,\n directed = _defaults.directed;\n var cy = this.cy();\n var closenesses = {};\n var maxCloseness = 0;\n var nodes = this.nodes();\n var fw = this.floydWarshall({\n weight: weight,\n directed: directed\n });\n\n // Compute closeness for every node and find the maximum closeness\n for (var i = 0; i < nodes.length; i++) {\n var currCloseness = 0;\n var node_i = nodes[i];\n for (var j = 0; j < nodes.length; j++) {\n if (i !== j) {\n var d = fw.distance(node_i, nodes[j]);\n if (harmonic) {\n currCloseness += 1 / d;\n } else {\n currCloseness += d;\n }\n }\n }\n if (!harmonic) {\n currCloseness = 1 / currCloseness;\n }\n if (maxCloseness < currCloseness) {\n maxCloseness = currCloseness;\n }\n closenesses[node_i.id()] = currCloseness;\n }\n return {\n closeness: function closeness(node) {\n if (maxCloseness == 0) {\n return 0;\n }\n if (string(node)) {\n // from is a selector string\n node = cy.filter(node)[0].id();\n } else {\n // from is a node\n node = node.id();\n }\n return closenesses[node] / maxCloseness;\n }\n };\n },\n // Implemented from pseudocode from wikipedia\n closenessCentrality: function closenessCentrality(options) {\n var _defaults2 = defaults$e(options),\n root = _defaults2.root,\n weight = _defaults2.weight,\n directed = _defaults2.directed,\n harmonic = _defaults2.harmonic;\n root = this.filter(root)[0];\n\n // we need distance from this node to every other node\n var dijkstra = this.dijkstra({\n root: root,\n weight: weight,\n directed: directed\n });\n var totalDistance = 0;\n var nodes = this.nodes();\n for (var i = 0; i < nodes.length; i++) {\n var n = nodes[i];\n if (!n.same(root)) {\n var d = dijkstra.distanceTo(n);\n if (harmonic) {\n totalDistance += 1 / d;\n } else {\n totalDistance += d;\n }\n }\n }\n return harmonic ? totalDistance : 1 / totalDistance;\n } // closenessCentrality\n}; // elesfn\n\n// nice, short mathematical alias\nelesfn$m.cc = elesfn$m.closenessCentrality;\nelesfn$m.ccn = elesfn$m.closenessCentralityNormalised = elesfn$m.closenessCentralityNormalized;\n\nvar defaults$d = defaults$g({\n weight: null,\n directed: false\n});\nvar elesfn$l = {\n // Implemented from the algorithm in the paper \"On Variants of Shortest-Path Betweenness Centrality and their Generic Computation\" by Ulrik Brandes\n betweennessCentrality: function betweennessCentrality(options) {\n var _defaults = defaults$d(options),\n directed = _defaults.directed,\n weight = _defaults.weight;\n var weighted = weight != null;\n var cy = this.cy();\n\n // starting\n var V = this.nodes();\n var A = {};\n var _C = {};\n var max = 0;\n var C = {\n set: function set(key, val) {\n _C[key] = val;\n if (val > max) {\n max = val;\n }\n },\n get: function get(key) {\n return _C[key];\n }\n };\n\n // A contains the neighborhoods of every node\n for (var i = 0; i < V.length; i++) {\n var v = V[i];\n var vid = v.id();\n if (directed) {\n A[vid] = v.outgoers().nodes(); // get outgoers of every node\n } else {\n A[vid] = v.openNeighborhood().nodes(); // get neighbors of every node\n }\n\n C.set(vid, 0);\n }\n var _loop = function _loop(s) {\n var sid = V[s].id();\n var S = []; // stack\n var P = {};\n var g = {};\n var d = {};\n var Q = new heap(function (a, b) {\n return d[a] - d[b];\n }); // queue\n\n // init dictionaries\n for (var _i = 0; _i < V.length; _i++) {\n var _vid = V[_i].id();\n P[_vid] = [];\n g[_vid] = 0;\n d[_vid] = Infinity;\n }\n g[sid] = 1; // sigma\n d[sid] = 0; // distance to s\n\n Q.push(sid);\n while (!Q.empty()) {\n var _v = Q.pop();\n S.push(_v);\n if (weighted) {\n for (var j = 0; j < A[_v].length; j++) {\n var w = A[_v][j];\n var vEle = cy.getElementById(_v);\n var edge = void 0;\n if (vEle.edgesTo(w).length > 0) {\n edge = vEle.edgesTo(w)[0];\n } else {\n edge = w.edgesTo(vEle)[0];\n }\n var edgeWeight = weight(edge);\n w = w.id();\n if (d[w] > d[_v] + edgeWeight) {\n d[w] = d[_v] + edgeWeight;\n if (Q.nodes.indexOf(w) < 0) {\n //if w is not in Q\n Q.push(w);\n } else {\n // update position if w is in Q\n Q.updateItem(w);\n }\n g[w] = 0;\n P[w] = [];\n }\n if (d[w] == d[_v] + edgeWeight) {\n g[w] = g[w] + g[_v];\n P[w].push(_v);\n }\n }\n } else {\n for (var _j = 0; _j < A[_v].length; _j++) {\n var _w = A[_v][_j].id();\n if (d[_w] == Infinity) {\n Q.push(_w);\n d[_w] = d[_v] + 1;\n }\n if (d[_w] == d[_v] + 1) {\n g[_w] = g[_w] + g[_v];\n P[_w].push(_v);\n }\n }\n }\n }\n var e = {};\n for (var _i2 = 0; _i2 < V.length; _i2++) {\n e[V[_i2].id()] = 0;\n }\n while (S.length > 0) {\n var _w2 = S.pop();\n for (var _j2 = 0; _j2 < P[_w2].length; _j2++) {\n var _v2 = P[_w2][_j2];\n e[_v2] = e[_v2] + g[_v2] / g[_w2] * (1 + e[_w2]);\n }\n if (_w2 != V[s].id()) {\n C.set(_w2, C.get(_w2) + e[_w2]);\n }\n }\n };\n for (var s = 0; s < V.length; s++) {\n _loop(s);\n }\n var ret = {\n betweenness: function betweenness(node) {\n var id = cy.collection(node).id();\n return C.get(id);\n },\n betweennessNormalized: function betweennessNormalized(node) {\n if (max == 0) {\n return 0;\n }\n var id = cy.collection(node).id();\n return C.get(id) / max;\n }\n };\n\n // alias\n ret.betweennessNormalised = ret.betweennessNormalized;\n return ret;\n } // betweennessCentrality\n}; // elesfn\n\n// nice, short mathematical alias\nelesfn$l.bc = elesfn$l.betweennessCentrality;\n\n// Implemented by Zoe Xi @zoexi for GSOC 2016\n\n/* eslint-disable no-unused-vars */\nvar defaults$c = defaults$g({\n expandFactor: 2,\n // affects time of computation and cluster granularity to some extent: M * M\n inflateFactor: 2,\n // affects cluster granularity (the greater the value, the more clusters): M(i,j) / E(j)\n multFactor: 1,\n // optional self loops for each node. Use a neutral value to improve cluster computations.\n maxIterations: 20,\n // maximum number of iterations of the MCL algorithm in a single run\n attributes: [\n // attributes/features used to group nodes, ie. similarity values between nodes\n function (edge) {\n return 1;\n }]\n});\n/* eslint-enable */\n\nvar setOptions$3 = function setOptions(options) {\n return defaults$c(options);\n};\n/* eslint-enable */\n\nvar getSimilarity$1 = function getSimilarity(edge, attributes) {\n var total = 0;\n for (var i = 0; i < attributes.length; i++) {\n total += attributes[i](edge);\n }\n return total;\n};\nvar addLoops = function addLoops(M, n, val) {\n for (var i = 0; i < n; i++) {\n M[i * n + i] = val;\n }\n};\nvar normalize = function normalize(M, n) {\n var sum;\n for (var col = 0; col < n; col++) {\n sum = 0;\n for (var row = 0; row < n; row++) {\n sum += M[row * n + col];\n }\n for (var _row = 0; _row < n; _row++) {\n M[_row * n + col] = M[_row * n + col] / sum;\n }\n }\n};\n\n// TODO: blocked matrix multiplication?\nvar mmult = function mmult(A, B, n) {\n var C = new Array(n * n);\n for (var i = 0; i < n; i++) {\n for (var j = 0; j < n; j++) {\n C[i * n + j] = 0;\n }\n for (var k = 0; k < n; k++) {\n for (var _j = 0; _j < n; _j++) {\n C[i * n + _j] += A[i * n + k] * B[k * n + _j];\n }\n }\n }\n return C;\n};\nvar expand = function expand(M, n, expandFactor /** power **/) {\n var _M = M.slice(0);\n for (var p = 1; p < expandFactor; p++) {\n M = mmult(M, _M, n);\n }\n return M;\n};\nvar inflate = function inflate(M, n, inflateFactor /** r **/) {\n var _M = new Array(n * n);\n\n // M(i,j) ^ inflatePower\n for (var i = 0; i < n * n; i++) {\n _M[i] = Math.pow(M[i], inflateFactor);\n }\n normalize(_M, n);\n return _M;\n};\nvar hasConverged = function hasConverged(M, _M, n2, roundFactor) {\n // Check that both matrices have the same elements (i,j)\n for (var i = 0; i < n2; i++) {\n var v1 = Math.round(M[i] * Math.pow(10, roundFactor)) / Math.pow(10, roundFactor); // truncate to 'roundFactor' decimal places\n var v2 = Math.round(_M[i] * Math.pow(10, roundFactor)) / Math.pow(10, roundFactor);\n if (v1 !== v2) {\n return false;\n }\n }\n return true;\n};\nvar assign$2 = function assign(M, n, nodes, cy) {\n var clusters = [];\n for (var i = 0; i < n; i++) {\n var cluster = [];\n for (var j = 0; j < n; j++) {\n // Row-wise attractors and elements that they attract belong in same cluster\n if (Math.round(M[i * n + j] * 1000) / 1000 > 0) {\n cluster.push(nodes[j]);\n }\n }\n if (cluster.length !== 0) {\n clusters.push(cy.collection(cluster));\n }\n }\n return clusters;\n};\nvar isDuplicate = function isDuplicate(c1, c2) {\n for (var i = 0; i < c1.length; i++) {\n if (!c2[i] || c1[i].id() !== c2[i].id()) {\n return false;\n }\n }\n return true;\n};\nvar removeDuplicates = function removeDuplicates(clusters) {\n for (var i = 0; i < clusters.length; i++) {\n for (var j = 0; j < clusters.length; j++) {\n if (i != j && isDuplicate(clusters[i], clusters[j])) {\n clusters.splice(j, 1);\n }\n }\n }\n return clusters;\n};\nvar markovClustering = function markovClustering(options) {\n var nodes = this.nodes();\n var edges = this.edges();\n var cy = this.cy();\n\n // Set parameters of algorithm:\n var opts = setOptions$3(options);\n\n // Map each node to its position in node array\n var id2position = {};\n for (var i = 0; i < nodes.length; i++) {\n id2position[nodes[i].id()] = i;\n }\n\n // Generate stochastic matrix M from input graph G (should be symmetric/undirected)\n var n = nodes.length,\n n2 = n * n;\n var M = new Array(n2),\n _M;\n for (var _i = 0; _i < n2; _i++) {\n M[_i] = 0;\n }\n for (var e = 0; e < edges.length; e++) {\n var edge = edges[e];\n var _i2 = id2position[edge.source().id()];\n var j = id2position[edge.target().id()];\n var sim = getSimilarity$1(edge, opts.attributes);\n M[_i2 * n + j] += sim; // G should be symmetric and undirected\n M[j * n + _i2] += sim;\n }\n\n // Begin Markov cluster algorithm\n\n // Step 1: Add self loops to each node, ie. add multFactor to matrix diagonal\n addLoops(M, n, opts.multFactor);\n\n // Step 2: M = normalize( M );\n normalize(M, n);\n var isStillMoving = true;\n var iterations = 0;\n while (isStillMoving && iterations < opts.maxIterations) {\n isStillMoving = false;\n\n // Step 3:\n _M = expand(M, n, opts.expandFactor);\n\n // Step 4:\n M = inflate(_M, n, opts.inflateFactor);\n\n // Step 5: check to see if ~steady state has been reached\n if (!hasConverged(M, _M, n2, 4)) {\n isStillMoving = true;\n }\n iterations++;\n }\n\n // Build clusters from matrix\n var clusters = assign$2(M, n, nodes, cy);\n\n // Remove duplicate clusters due to symmetry of graph and M matrix\n clusters = removeDuplicates(clusters);\n return clusters;\n};\nvar markovClustering$1 = {\n markovClustering: markovClustering,\n mcl: markovClustering\n};\n\n// Common distance metrics for clustering algorithms\nvar identity = function identity(x) {\n return x;\n};\nvar absDiff = function absDiff(p, q) {\n return Math.abs(q - p);\n};\nvar addAbsDiff = function addAbsDiff(total, p, q) {\n return total + absDiff(p, q);\n};\nvar addSquaredDiff = function addSquaredDiff(total, p, q) {\n return total + Math.pow(q - p, 2);\n};\nvar sqrt = function sqrt(x) {\n return Math.sqrt(x);\n};\nvar maxAbsDiff = function maxAbsDiff(currentMax, p, q) {\n return Math.max(currentMax, absDiff(p, q));\n};\nvar getDistance = function getDistance(length, getP, getQ, init, visit) {\n var post = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : identity;\n var ret = init;\n var p, q;\n for (var dim = 0; dim < length; dim++) {\n p = getP(dim);\n q = getQ(dim);\n ret = visit(ret, p, q);\n }\n return post(ret);\n};\nvar distances = {\n euclidean: function euclidean(length, getP, getQ) {\n if (length >= 2) {\n return getDistance(length, getP, getQ, 0, addSquaredDiff, sqrt);\n } else {\n // for single attr case, more efficient to avoid sqrt\n return getDistance(length, getP, getQ, 0, addAbsDiff);\n }\n },\n squaredEuclidean: function squaredEuclidean(length, getP, getQ) {\n return getDistance(length, getP, getQ, 0, addSquaredDiff);\n },\n manhattan: function manhattan(length, getP, getQ) {\n return getDistance(length, getP, getQ, 0, addAbsDiff);\n },\n max: function max(length, getP, getQ) {\n return getDistance(length, getP, getQ, -Infinity, maxAbsDiff);\n }\n};\n\n// in case the user accidentally doesn't use camel case\ndistances['squared-euclidean'] = distances['squaredEuclidean'];\ndistances['squaredeuclidean'] = distances['squaredEuclidean'];\nfunction clusteringDistance (method, length, getP, getQ, nodeP, nodeQ) {\n var impl;\n if (fn$6(method)) {\n impl = method;\n } else {\n impl = distances[method] || distances.euclidean;\n }\n if (length === 0 && fn$6(method)) {\n return impl(nodeP, nodeQ);\n } else {\n return impl(length, getP, getQ, nodeP, nodeQ);\n }\n}\n\nvar defaults$b = defaults$g({\n k: 2,\n m: 2,\n sensitivityThreshold: 0.0001,\n distance: 'euclidean',\n maxIterations: 10,\n attributes: [],\n testMode: false,\n testCentroids: null\n});\nvar setOptions$2 = function setOptions(options) {\n return defaults$b(options);\n};\n\nvar getDist = function getDist(type, node, centroid, attributes, mode) {\n var noNodeP = mode !== 'kMedoids';\n var getP = noNodeP ? function (i) {\n return centroid[i];\n } : function (i) {\n return attributes[i](centroid);\n };\n var getQ = function getQ(i) {\n return attributes[i](node);\n };\n var nodeP = centroid;\n var nodeQ = node;\n return clusteringDistance(type, attributes.length, getP, getQ, nodeP, nodeQ);\n};\nvar randomCentroids = function randomCentroids(nodes, k, attributes) {\n var ndim = attributes.length;\n var min = new Array(ndim);\n var max = new Array(ndim);\n var centroids = new Array(k);\n var centroid = null;\n\n // Find min, max values for each attribute dimension\n for (var i = 0; i < ndim; i++) {\n min[i] = nodes.min(attributes[i]).value;\n max[i] = nodes.max(attributes[i]).value;\n }\n\n // Build k centroids, each represented as an n-dim feature vector\n for (var c = 0; c < k; c++) {\n centroid = [];\n for (var _i = 0; _i < ndim; _i++) {\n centroid[_i] = Math.random() * (max[_i] - min[_i]) + min[_i]; // random initial value\n }\n\n centroids[c] = centroid;\n }\n return centroids;\n};\nvar classify = function classify(node, centroids, distance, attributes, type) {\n var min = Infinity;\n var index = 0;\n for (var i = 0; i < centroids.length; i++) {\n var dist = getDist(distance, node, centroids[i], attributes, type);\n if (dist < min) {\n min = dist;\n index = i;\n }\n }\n return index;\n};\nvar buildCluster = function buildCluster(centroid, nodes, assignment) {\n var cluster = [];\n var node = null;\n for (var n = 0; n < nodes.length; n++) {\n node = nodes[n];\n if (assignment[node.id()] === centroid) {\n //console.log(\"Node \" + node.id() + \" is associated with medoid #: \" + m);\n cluster.push(node);\n }\n }\n return cluster;\n};\nvar haveValuesConverged = function haveValuesConverged(v1, v2, sensitivityThreshold) {\n return Math.abs(v2 - v1) <= sensitivityThreshold;\n};\nvar haveMatricesConverged = function haveMatricesConverged(v1, v2, sensitivityThreshold) {\n for (var i = 0; i < v1.length; i++) {\n for (var j = 0; j < v1[i].length; j++) {\n var diff = Math.abs(v1[i][j] - v2[i][j]);\n if (diff > sensitivityThreshold) {\n return false;\n }\n }\n }\n return true;\n};\nvar seenBefore = function seenBefore(node, medoids, n) {\n for (var i = 0; i < n; i++) {\n if (node === medoids[i]) return true;\n }\n return false;\n};\nvar randomMedoids = function randomMedoids(nodes, k) {\n var medoids = new Array(k);\n\n // For small data sets, the probability of medoid conflict is greater,\n // so we need to check to see if we've already seen or chose this node before.\n if (nodes.length < 50) {\n // Randomly select k medoids from the n nodes\n for (var i = 0; i < k; i++) {\n var node = nodes[Math.floor(Math.random() * nodes.length)];\n\n // If we've already chosen this node to be a medoid, don't choose it again (for small data sets).\n // Instead choose a different random node.\n while (seenBefore(node, medoids, i)) {\n node = nodes[Math.floor(Math.random() * nodes.length)];\n }\n medoids[i] = node;\n }\n } else {\n // Relatively large data set, so pretty safe to not check and just select random nodes\n for (var _i2 = 0; _i2 < k; _i2++) {\n medoids[_i2] = nodes[Math.floor(Math.random() * nodes.length)];\n }\n }\n return medoids;\n};\nvar findCost = function findCost(potentialNewMedoid, cluster, attributes) {\n var cost = 0;\n for (var n = 0; n < cluster.length; n++) {\n cost += getDist('manhattan', cluster[n], potentialNewMedoid, attributes, 'kMedoids');\n }\n return cost;\n};\nvar kMeans = function kMeans(options) {\n var cy = this.cy();\n var nodes = this.nodes();\n var node = null;\n\n // Set parameters of algorithm: # of clusters, distance metric, etc.\n var opts = setOptions$2(options);\n\n // Begin k-means algorithm\n var clusters = new Array(opts.k);\n var assignment = {};\n var centroids;\n\n // Step 1: Initialize centroid positions\n if (opts.testMode) {\n if (typeof opts.testCentroids === 'number') {\n // TODO: implement a seeded random number generator.\n opts.testCentroids;\n centroids = randomCentroids(nodes, opts.k, opts.attributes);\n } else if (_typeof(opts.testCentroids) === 'object') {\n centroids = opts.testCentroids;\n } else {\n centroids = randomCentroids(nodes, opts.k, opts.attributes);\n }\n } else {\n centroids = randomCentroids(nodes, opts.k, opts.attributes);\n }\n var isStillMoving = true;\n var iterations = 0;\n while (isStillMoving && iterations < opts.maxIterations) {\n // Step 2: Assign nodes to the nearest centroid\n for (var n = 0; n < nodes.length; n++) {\n node = nodes[n];\n // Determine which cluster this node belongs to: node id => cluster #\n assignment[node.id()] = classify(node, centroids, opts.distance, opts.attributes, 'kMeans');\n }\n\n // Step 3: For each of the k clusters, update its centroid\n isStillMoving = false;\n for (var c = 0; c < opts.k; c++) {\n // Get all nodes that belong to this cluster\n var cluster = buildCluster(c, nodes, assignment);\n if (cluster.length === 0) {\n // If cluster is empty, break out early & move to next cluster\n continue;\n }\n\n // Update centroids by calculating avg of all nodes within the cluster.\n var ndim = opts.attributes.length;\n var centroid = centroids[c]; // [ dim_1, dim_2, dim_3, ... , dim_n ]\n var newCentroid = new Array(ndim);\n var sum = new Array(ndim);\n for (var d = 0; d < ndim; d++) {\n sum[d] = 0.0;\n for (var i = 0; i < cluster.length; i++) {\n node = cluster[i];\n sum[d] += opts.attributes[d](node);\n }\n newCentroid[d] = sum[d] / cluster.length;\n\n // Check to see if algorithm has converged, i.e. when centroids no longer change\n if (!haveValuesConverged(newCentroid[d], centroid[d], opts.sensitivityThreshold)) {\n isStillMoving = true;\n }\n }\n centroids[c] = newCentroid;\n clusters[c] = cy.collection(cluster);\n }\n iterations++;\n }\n return clusters;\n};\nvar kMedoids = function kMedoids(options) {\n var cy = this.cy();\n var nodes = this.nodes();\n var node = null;\n var opts = setOptions$2(options);\n\n // Begin k-medoids algorithm\n var clusters = new Array(opts.k);\n var medoids;\n var assignment = {};\n var curCost;\n var minCosts = new Array(opts.k); // minimum cost configuration for each cluster\n\n // Step 1: Initialize k medoids\n if (opts.testMode) {\n if (typeof opts.testCentroids === 'number') ; else if (_typeof(opts.testCentroids) === 'object') {\n medoids = opts.testCentroids;\n } else {\n medoids = randomMedoids(nodes, opts.k);\n }\n } else {\n medoids = randomMedoids(nodes, opts.k);\n }\n var isStillMoving = true;\n var iterations = 0;\n while (isStillMoving && iterations < opts.maxIterations) {\n // Step 2: Assign nodes to the nearest medoid\n for (var n = 0; n < nodes.length; n++) {\n node = nodes[n];\n // Determine which cluster this node belongs to: node id => cluster #\n assignment[node.id()] = classify(node, medoids, opts.distance, opts.attributes, 'kMedoids');\n }\n isStillMoving = false;\n // Step 3: For each medoid m, and for each node associated with mediod m,\n // select the node with the lowest configuration cost as new medoid.\n for (var m = 0; m < medoids.length; m++) {\n // Get all nodes that belong to this medoid\n var cluster = buildCluster(m, nodes, assignment);\n if (cluster.length === 0) {\n // If cluster is empty, break out early & move to next cluster\n continue;\n }\n minCosts[m] = findCost(medoids[m], cluster, opts.attributes); // original cost\n\n // Select different medoid if its configuration has the lowest cost\n for (var _n = 0; _n < cluster.length; _n++) {\n curCost = findCost(cluster[_n], cluster, opts.attributes);\n if (curCost < minCosts[m]) {\n minCosts[m] = curCost;\n medoids[m] = cluster[_n];\n isStillMoving = true;\n }\n }\n clusters[m] = cy.collection(cluster);\n }\n iterations++;\n }\n return clusters;\n};\nvar updateCentroids = function updateCentroids(centroids, nodes, U, weight, opts) {\n var numerator, denominator;\n for (var n = 0; n < nodes.length; n++) {\n for (var c = 0; c < centroids.length; c++) {\n weight[n][c] = Math.pow(U[n][c], opts.m);\n }\n }\n for (var _c = 0; _c < centroids.length; _c++) {\n for (var dim = 0; dim < opts.attributes.length; dim++) {\n numerator = 0;\n denominator = 0;\n for (var _n2 = 0; _n2 < nodes.length; _n2++) {\n numerator += weight[_n2][_c] * opts.attributes[dim](nodes[_n2]);\n denominator += weight[_n2][_c];\n }\n centroids[_c][dim] = numerator / denominator;\n }\n }\n};\nvar updateMembership = function updateMembership(U, _U, centroids, nodes, opts) {\n // Save previous step\n for (var i = 0; i < U.length; i++) {\n _U[i] = U[i].slice();\n }\n var sum, numerator, denominator;\n var pow = 2 / (opts.m - 1);\n for (var c = 0; c < centroids.length; c++) {\n for (var n = 0; n < nodes.length; n++) {\n sum = 0;\n for (var k = 0; k < centroids.length; k++) {\n // against all other centroids\n numerator = getDist(opts.distance, nodes[n], centroids[c], opts.attributes, 'cmeans');\n denominator = getDist(opts.distance, nodes[n], centroids[k], opts.attributes, 'cmeans');\n sum += Math.pow(numerator / denominator, pow);\n }\n U[n][c] = 1 / sum;\n }\n }\n};\nvar assign$1 = function assign(nodes, U, opts, cy) {\n var clusters = new Array(opts.k);\n for (var c = 0; c < clusters.length; c++) {\n clusters[c] = [];\n }\n var max;\n var index;\n for (var n = 0; n < U.length; n++) {\n // for each node (U is N x C matrix)\n max = -Infinity;\n index = -1;\n // Determine which cluster the node is most likely to belong in\n for (var _c2 = 0; _c2 < U[0].length; _c2++) {\n if (U[n][_c2] > max) {\n max = U[n][_c2];\n index = _c2;\n }\n }\n clusters[index].push(nodes[n]);\n }\n\n // Turn every array into a collection of nodes\n for (var _c3 = 0; _c3 < clusters.length; _c3++) {\n clusters[_c3] = cy.collection(clusters[_c3]);\n }\n return clusters;\n};\nvar fuzzyCMeans = function fuzzyCMeans(options) {\n var cy = this.cy();\n var nodes = this.nodes();\n var opts = setOptions$2(options);\n\n // Begin fuzzy c-means algorithm\n var clusters;\n var centroids;\n var U;\n var _U;\n var weight;\n\n // Step 1: Initialize letiables.\n _U = new Array(nodes.length);\n for (var i = 0; i < nodes.length; i++) {\n // N x C matrix\n _U[i] = new Array(opts.k);\n }\n U = new Array(nodes.length);\n for (var _i3 = 0; _i3 < nodes.length; _i3++) {\n // N x C matrix\n U[_i3] = new Array(opts.k);\n }\n for (var _i4 = 0; _i4 < nodes.length; _i4++) {\n var total = 0;\n for (var j = 0; j < opts.k; j++) {\n U[_i4][j] = Math.random();\n total += U[_i4][j];\n }\n for (var _j = 0; _j < opts.k; _j++) {\n U[_i4][_j] = U[_i4][_j] / total;\n }\n }\n centroids = new Array(opts.k);\n for (var _i5 = 0; _i5 < opts.k; _i5++) {\n centroids[_i5] = new Array(opts.attributes.length);\n }\n weight = new Array(nodes.length);\n for (var _i6 = 0; _i6 < nodes.length; _i6++) {\n // N x C matrix\n weight[_i6] = new Array(opts.k);\n }\n // end init FCM\n\n var isStillMoving = true;\n var iterations = 0;\n while (isStillMoving && iterations < opts.maxIterations) {\n isStillMoving = false;\n\n // Step 2: Calculate the centroids for each step.\n updateCentroids(centroids, nodes, U, weight, opts);\n\n // Step 3: Update the partition matrix U.\n updateMembership(U, _U, centroids, nodes, opts);\n\n // Step 4: Check for convergence.\n if (!haveMatricesConverged(U, _U, opts.sensitivityThreshold)) {\n isStillMoving = true;\n }\n iterations++;\n }\n\n // Assign nodes to clusters with highest probability.\n clusters = assign$1(nodes, U, opts, cy);\n return {\n clusters: clusters,\n degreeOfMembership: U\n };\n};\nvar kClustering = {\n kMeans: kMeans,\n kMedoids: kMedoids,\n fuzzyCMeans: fuzzyCMeans,\n fcm: fuzzyCMeans\n};\n\n// Implemented by Zoe Xi @zoexi for GSOC 2016\nvar defaults$a = defaults$g({\n distance: 'euclidean',\n // distance metric to compare nodes\n linkage: 'min',\n // linkage criterion : how to determine the distance between clusters of nodes\n mode: 'threshold',\n // mode:'threshold' => clusters must be threshold distance apart\n threshold: Infinity,\n // the distance threshold\n // mode:'dendrogram' => the nodes are organised as leaves in a tree (siblings are close), merging makes clusters\n addDendrogram: false,\n // whether to add the dendrogram to the graph for viz\n dendrogramDepth: 0,\n // depth at which dendrogram branches are merged into the returned clusters\n attributes: [] // array of attr functions\n});\n\nvar linkageAliases = {\n 'single': 'min',\n 'complete': 'max'\n};\nvar setOptions$1 = function setOptions(options) {\n var opts = defaults$a(options);\n var preferredAlias = linkageAliases[opts.linkage];\n if (preferredAlias != null) {\n opts.linkage = preferredAlias;\n }\n return opts;\n};\nvar mergeClosest = function mergeClosest(clusters, index, dists, mins, opts) {\n // Find two closest clusters from cached mins\n var minKey = 0;\n var min = Infinity;\n var dist;\n var attrs = opts.attributes;\n var getDist = function getDist(n1, n2) {\n return clusteringDistance(opts.distance, attrs.length, function (i) {\n return attrs[i](n1);\n }, function (i) {\n return attrs[i](n2);\n }, n1, n2);\n };\n for (var i = 0; i < clusters.length; i++) {\n var key = clusters[i].key;\n var _dist = dists[key][mins[key]];\n if (_dist < min) {\n minKey = key;\n min = _dist;\n }\n }\n if (opts.mode === 'threshold' && min >= opts.threshold || opts.mode === 'dendrogram' && clusters.length === 1) {\n return false;\n }\n var c1 = index[minKey];\n var c2 = index[mins[minKey]];\n var merged;\n\n // Merge two closest clusters\n if (opts.mode === 'dendrogram') {\n merged = {\n left: c1,\n right: c2,\n key: c1.key\n };\n } else {\n merged = {\n value: c1.value.concat(c2.value),\n key: c1.key\n };\n }\n clusters[c1.index] = merged;\n clusters.splice(c2.index, 1);\n index[c1.key] = merged;\n\n // Update distances with new merged cluster\n for (var _i = 0; _i < clusters.length; _i++) {\n var cur = clusters[_i];\n if (c1.key === cur.key) {\n dist = Infinity;\n } else if (opts.linkage === 'min') {\n dist = dists[c1.key][cur.key];\n if (dists[c1.key][cur.key] > dists[c2.key][cur.key]) {\n dist = dists[c2.key][cur.key];\n }\n } else if (opts.linkage === 'max') {\n dist = dists[c1.key][cur.key];\n if (dists[c1.key][cur.key] < dists[c2.key][cur.key]) {\n dist = dists[c2.key][cur.key];\n }\n } else if (opts.linkage === 'mean') {\n dist = (dists[c1.key][cur.key] * c1.size + dists[c2.key][cur.key] * c2.size) / (c1.size + c2.size);\n } else {\n if (opts.mode === 'dendrogram') dist = getDist(cur.value, c1.value);else dist = getDist(cur.value[0], c1.value[0]);\n }\n dists[c1.key][cur.key] = dists[cur.key][c1.key] = dist; // distance matrix is symmetric\n }\n\n // Update cached mins\n for (var _i2 = 0; _i2 < clusters.length; _i2++) {\n var key1 = clusters[_i2].key;\n if (mins[key1] === c1.key || mins[key1] === c2.key) {\n var _min = key1;\n for (var j = 0; j < clusters.length; j++) {\n var key2 = clusters[j].key;\n if (dists[key1][key2] < dists[key1][_min]) {\n _min = key2;\n }\n }\n mins[key1] = _min;\n }\n clusters[_i2].index = _i2;\n }\n\n // Clean up meta data used for clustering\n c1.key = c2.key = c1.index = c2.index = null;\n return true;\n};\nvar getAllChildren = function getAllChildren(root, arr, cy) {\n if (!root) return;\n if (root.value) {\n arr.push(root.value);\n } else {\n if (root.left) getAllChildren(root.left, arr);\n if (root.right) getAllChildren(root.right, arr);\n }\n};\nvar buildDendrogram = function buildDendrogram(root, cy) {\n if (!root) return '';\n if (root.left && root.right) {\n var leftStr = buildDendrogram(root.left, cy);\n var rightStr = buildDendrogram(root.right, cy);\n var node = cy.add({\n group: 'nodes',\n data: {\n id: leftStr + ',' + rightStr\n }\n });\n cy.add({\n group: 'edges',\n data: {\n source: leftStr,\n target: node.id()\n }\n });\n cy.add({\n group: 'edges',\n data: {\n source: rightStr,\n target: node.id()\n }\n });\n return node.id();\n } else if (root.value) {\n return root.value.id();\n }\n};\nvar buildClustersFromTree = function buildClustersFromTree(root, k, cy) {\n if (!root) return [];\n var left = [],\n right = [],\n leaves = [];\n if (k === 0) {\n // don't cut tree, simply return all nodes as 1 single cluster\n if (root.left) getAllChildren(root.left, left);\n if (root.right) getAllChildren(root.right, right);\n leaves = left.concat(right);\n return [cy.collection(leaves)];\n } else if (k === 1) {\n // cut at root\n\n if (root.value) {\n // leaf node\n return [cy.collection(root.value)];\n } else {\n if (root.left) getAllChildren(root.left, left);\n if (root.right) getAllChildren(root.right, right);\n return [cy.collection(left), cy.collection(right)];\n }\n } else {\n if (root.value) {\n return [cy.collection(root.value)];\n } else {\n if (root.left) left = buildClustersFromTree(root.left, k - 1, cy);\n if (root.right) right = buildClustersFromTree(root.right, k - 1, cy);\n return left.concat(right);\n }\n }\n};\n\nvar hierarchicalClustering = function hierarchicalClustering(options) {\n var cy = this.cy();\n var nodes = this.nodes();\n\n // Set parameters of algorithm: linkage type, distance metric, etc.\n var opts = setOptions$1(options);\n var attrs = opts.attributes;\n var getDist = function getDist(n1, n2) {\n return clusteringDistance(opts.distance, attrs.length, function (i) {\n return attrs[i](n1);\n }, function (i) {\n return attrs[i](n2);\n }, n1, n2);\n };\n\n // Begin hierarchical algorithm\n var clusters = [];\n var dists = []; // distances between each pair of clusters\n var mins = []; // closest cluster for each cluster\n var index = []; // hash of all clusters by key\n\n // In agglomerative (bottom-up) clustering, each node starts as its own cluster\n for (var n = 0; n < nodes.length; n++) {\n var cluster = {\n value: opts.mode === 'dendrogram' ? nodes[n] : [nodes[n]],\n key: n,\n index: n\n };\n clusters[n] = cluster;\n index[n] = cluster;\n dists[n] = [];\n mins[n] = 0;\n }\n\n // Calculate the distance between each pair of clusters\n for (var i = 0; i < clusters.length; i++) {\n for (var j = 0; j <= i; j++) {\n var dist = void 0;\n if (opts.mode === 'dendrogram') {\n // modes store cluster values differently\n dist = i === j ? Infinity : getDist(clusters[i].value, clusters[j].value);\n } else {\n dist = i === j ? Infinity : getDist(clusters[i].value[0], clusters[j].value[0]);\n }\n dists[i][j] = dist;\n dists[j][i] = dist;\n if (dist < dists[i][mins[i]]) {\n mins[i] = j; // Cache mins: closest cluster to cluster i is cluster j\n }\n }\n }\n\n // Find the closest pair of clusters and merge them into a single cluster.\n // Update distances between new cluster and each of the old clusters, and loop until threshold reached.\n var merged = mergeClosest(clusters, index, dists, mins, opts);\n while (merged) {\n merged = mergeClosest(clusters, index, dists, mins, opts);\n }\n var retClusters;\n\n // Dendrogram mode builds the hierarchy and adds intermediary nodes + edges\n // in addition to returning the clusters.\n if (opts.mode === 'dendrogram') {\n retClusters = buildClustersFromTree(clusters[0], opts.dendrogramDepth, cy);\n if (opts.addDendrogram) buildDendrogram(clusters[0], cy);\n } else {\n // Regular mode simply returns the clusters\n\n retClusters = new Array(clusters.length);\n clusters.forEach(function (cluster, i) {\n // Clean up meta data used for clustering\n cluster.key = cluster.index = null;\n retClusters[i] = cy.collection(cluster.value);\n });\n }\n return retClusters;\n};\nvar hierarchicalClustering$1 = {\n hierarchicalClustering: hierarchicalClustering,\n hca: hierarchicalClustering\n};\n\n// Implemented by Zoe Xi @zoexi for GSOC 2016\nvar defaults$9 = defaults$g({\n distance: 'euclidean',\n // distance metric to compare attributes between two nodes\n preference: 'median',\n // suitability of a data point to serve as an exemplar\n damping: 0.8,\n // damping factor between [0.5, 1)\n maxIterations: 1000,\n // max number of iterations to run\n minIterations: 100,\n // min number of iterations to run in order for clustering to stop\n attributes: [// functions to quantify the similarity between any two points\n // e.g. node => node.data('weight')\n ]\n});\nvar setOptions = function setOptions(options) {\n var dmp = options.damping;\n var pref = options.preference;\n if (!(0.5 <= dmp && dmp < 1)) {\n error(\"Damping must range on [0.5, 1). Got: \".concat(dmp));\n }\n var validPrefs = ['median', 'mean', 'min', 'max'];\n if (!(validPrefs.some(function (v) {\n return v === pref;\n }) || number$1(pref))) {\n error(\"Preference must be one of [\".concat(validPrefs.map(function (p) {\n return \"'\".concat(p, \"'\");\n }).join(', '), \"] or a number. Got: \").concat(pref));\n }\n return defaults$9(options);\n};\n\nvar getSimilarity = function getSimilarity(type, n1, n2, attributes) {\n var attr = function attr(n, i) {\n return attributes[i](n);\n };\n\n // nb negative because similarity should have an inverse relationship to distance\n return -clusteringDistance(type, attributes.length, function (i) {\n return attr(n1, i);\n }, function (i) {\n return attr(n2, i);\n }, n1, n2);\n};\nvar getPreference = function getPreference(S, preference) {\n // larger preference = greater # of clusters\n var p = null;\n if (preference === 'median') {\n p = median(S);\n } else if (preference === 'mean') {\n p = mean(S);\n } else if (preference === 'min') {\n p = min(S);\n } else if (preference === 'max') {\n p = max(S);\n } else {\n // Custom preference number, as set by user\n p = preference;\n }\n return p;\n};\nvar findExemplars = function findExemplars(n, R, A) {\n var indices = [];\n for (var i = 0; i < n; i++) {\n if (R[i * n + i] + A[i * n + i] > 0) {\n indices.push(i);\n }\n }\n return indices;\n};\nvar assignClusters = function assignClusters(n, S, exemplars) {\n var clusters = [];\n for (var i = 0; i < n; i++) {\n var index = -1;\n var max = -Infinity;\n for (var ei = 0; ei < exemplars.length; ei++) {\n var e = exemplars[ei];\n if (S[i * n + e] > max) {\n index = e;\n max = S[i * n + e];\n }\n }\n if (index > 0) {\n clusters.push(index);\n }\n }\n for (var _ei = 0; _ei < exemplars.length; _ei++) {\n clusters[exemplars[_ei]] = exemplars[_ei];\n }\n return clusters;\n};\nvar assign = function assign(n, S, exemplars) {\n var clusters = assignClusters(n, S, exemplars);\n for (var ei = 0; ei < exemplars.length; ei++) {\n var ii = [];\n for (var c = 0; c < clusters.length; c++) {\n if (clusters[c] === exemplars[ei]) {\n ii.push(c);\n }\n }\n var maxI = -1;\n var maxSum = -Infinity;\n for (var i = 0; i < ii.length; i++) {\n var sum = 0;\n for (var j = 0; j < ii.length; j++) {\n sum += S[ii[j] * n + ii[i]];\n }\n if (sum > maxSum) {\n maxI = i;\n maxSum = sum;\n }\n }\n exemplars[ei] = ii[maxI];\n }\n clusters = assignClusters(n, S, exemplars);\n return clusters;\n};\nvar affinityPropagation = function affinityPropagation(options) {\n var cy = this.cy();\n var nodes = this.nodes();\n var opts = setOptions(options);\n\n // Map each node to its position in node array\n var id2position = {};\n for (var i = 0; i < nodes.length; i++) {\n id2position[nodes[i].id()] = i;\n }\n\n // Begin affinity propagation algorithm\n\n var n; // number of data points\n var n2; // size of matrices\n var S; // similarity matrix (1D array)\n var p; // preference/suitability of a data point to serve as an exemplar\n var R; // responsibility matrix (1D array)\n var A; // availability matrix (1D array)\n\n n = nodes.length;\n n2 = n * n;\n\n // Initialize and build S similarity matrix\n S = new Array(n2);\n for (var _i = 0; _i < n2; _i++) {\n S[_i] = -Infinity; // for cases where two data points shouldn't be linked together\n }\n\n for (var _i2 = 0; _i2 < n; _i2++) {\n for (var j = 0; j < n; j++) {\n if (_i2 !== j) {\n S[_i2 * n + j] = getSimilarity(opts.distance, nodes[_i2], nodes[j], opts.attributes);\n }\n }\n }\n\n // Place preferences on the diagonal of S\n p = getPreference(S, opts.preference);\n for (var _i3 = 0; _i3 < n; _i3++) {\n S[_i3 * n + _i3] = p;\n }\n\n // Initialize R responsibility matrix\n R = new Array(n2);\n for (var _i4 = 0; _i4 < n2; _i4++) {\n R[_i4] = 0.0;\n }\n\n // Initialize A availability matrix\n A = new Array(n2);\n for (var _i5 = 0; _i5 < n2; _i5++) {\n A[_i5] = 0.0;\n }\n var old = new Array(n);\n var Rp = new Array(n);\n var se = new Array(n);\n for (var _i6 = 0; _i6 < n; _i6++) {\n old[_i6] = 0.0;\n Rp[_i6] = 0.0;\n se[_i6] = 0;\n }\n var e = new Array(n * opts.minIterations);\n for (var _i7 = 0; _i7 < e.length; _i7++) {\n e[_i7] = 0;\n }\n var iter;\n for (iter = 0; iter < opts.maxIterations; iter++) {\n // main algorithmic loop\n\n // Update R responsibility matrix\n for (var _i8 = 0; _i8 < n; _i8++) {\n var max = -Infinity,\n max2 = -Infinity,\n maxI = -1,\n AS = 0.0;\n for (var _j = 0; _j < n; _j++) {\n old[_j] = R[_i8 * n + _j];\n AS = A[_i8 * n + _j] + S[_i8 * n + _j];\n if (AS >= max) {\n max2 = max;\n max = AS;\n maxI = _j;\n } else if (AS > max2) {\n max2 = AS;\n }\n }\n for (var _j2 = 0; _j2 < n; _j2++) {\n R[_i8 * n + _j2] = (1 - opts.damping) * (S[_i8 * n + _j2] - max) + opts.damping * old[_j2];\n }\n R[_i8 * n + maxI] = (1 - opts.damping) * (S[_i8 * n + maxI] - max2) + opts.damping * old[maxI];\n }\n\n // Update A availability matrix\n for (var _i9 = 0; _i9 < n; _i9++) {\n var sum = 0;\n for (var _j3 = 0; _j3 < n; _j3++) {\n old[_j3] = A[_j3 * n + _i9];\n Rp[_j3] = Math.max(0, R[_j3 * n + _i9]);\n sum += Rp[_j3];\n }\n sum -= Rp[_i9];\n Rp[_i9] = R[_i9 * n + _i9];\n sum += Rp[_i9];\n for (var _j4 = 0; _j4 < n; _j4++) {\n A[_j4 * n + _i9] = (1 - opts.damping) * Math.min(0, sum - Rp[_j4]) + opts.damping * old[_j4];\n }\n A[_i9 * n + _i9] = (1 - opts.damping) * (sum - Rp[_i9]) + opts.damping * old[_i9];\n }\n\n // Check for convergence\n var K = 0;\n for (var _i10 = 0; _i10 < n; _i10++) {\n var E = A[_i10 * n + _i10] + R[_i10 * n + _i10] > 0 ? 1 : 0;\n e[iter % opts.minIterations * n + _i10] = E;\n K += E;\n }\n if (K > 0 && (iter >= opts.minIterations - 1 || iter == opts.maxIterations - 1)) {\n var _sum = 0;\n for (var _i11 = 0; _i11 < n; _i11++) {\n se[_i11] = 0;\n for (var _j5 = 0; _j5 < opts.minIterations; _j5++) {\n se[_i11] += e[_j5 * n + _i11];\n }\n if (se[_i11] === 0 || se[_i11] === opts.minIterations) {\n _sum++;\n }\n }\n if (_sum === n) {\n // then we have convergence\n break;\n }\n }\n }\n\n // Identify exemplars (cluster centers)\n var exemplarsIndices = findExemplars(n, R, A);\n\n // Assign nodes to clusters\n var clusterIndices = assign(n, S, exemplarsIndices);\n var clusters = {};\n for (var c = 0; c < exemplarsIndices.length; c++) {\n clusters[exemplarsIndices[c]] = [];\n }\n for (var _i12 = 0; _i12 < nodes.length; _i12++) {\n var pos = id2position[nodes[_i12].id()];\n var clusterIndex = clusterIndices[pos];\n if (clusterIndex != null) {\n // the node may have not been assigned a cluster if no valid attributes were specified\n clusters[clusterIndex].push(nodes[_i12]);\n }\n }\n var retClusters = new Array(exemplarsIndices.length);\n for (var _c = 0; _c < exemplarsIndices.length; _c++) {\n retClusters[_c] = cy.collection(clusters[exemplarsIndices[_c]]);\n }\n return retClusters;\n};\nvar affinityPropagation$1 = {\n affinityPropagation: affinityPropagation,\n ap: affinityPropagation\n};\n\nvar hierholzerDefaults = defaults$g({\n root: undefined,\n directed: false\n});\nvar elesfn$k = {\n hierholzer: function hierholzer(options) {\n if (!plainObject(options)) {\n var args = arguments;\n options = {\n root: args[0],\n directed: args[1]\n };\n }\n var _hierholzerDefaults = hierholzerDefaults(options),\n root = _hierholzerDefaults.root,\n directed = _hierholzerDefaults.directed;\n var eles = this;\n var dflag = false;\n var oddIn;\n var oddOut;\n var startVertex;\n if (root) startVertex = string(root) ? this.filter(root)[0].id() : root[0].id();\n var nodes = {};\n var edges = {};\n if (directed) {\n eles.forEach(function (ele) {\n var id = ele.id();\n if (ele.isNode()) {\n var ind = ele.indegree(true);\n var outd = ele.outdegree(true);\n var d1 = ind - outd;\n var d2 = outd - ind;\n if (d1 == 1) {\n if (oddIn) dflag = true;else oddIn = id;\n } else if (d2 == 1) {\n if (oddOut) dflag = true;else oddOut = id;\n } else if (d2 > 1 || d1 > 1) {\n dflag = true;\n }\n nodes[id] = [];\n ele.outgoers().forEach(function (e) {\n if (e.isEdge()) nodes[id].push(e.id());\n });\n } else {\n edges[id] = [undefined, ele.target().id()];\n }\n });\n } else {\n eles.forEach(function (ele) {\n var id = ele.id();\n if (ele.isNode()) {\n var d = ele.degree(true);\n if (d % 2) {\n if (!oddIn) oddIn = id;else if (!oddOut) oddOut = id;else dflag = true;\n }\n nodes[id] = [];\n ele.connectedEdges().forEach(function (e) {\n return nodes[id].push(e.id());\n });\n } else {\n edges[id] = [ele.source().id(), ele.target().id()];\n }\n });\n }\n var result = {\n found: false,\n trail: undefined\n };\n if (dflag) return result;else if (oddOut && oddIn) {\n if (directed) {\n if (startVertex && oddOut != startVertex) {\n return result;\n }\n startVertex = oddOut;\n } else {\n if (startVertex && oddOut != startVertex && oddIn != startVertex) {\n return result;\n } else if (!startVertex) {\n startVertex = oddOut;\n }\n }\n } else {\n if (!startVertex) startVertex = eles[0].id();\n }\n var walk = function walk(v) {\n var currentNode = v;\n var subtour = [v];\n var adj, adjTail, adjHead;\n while (nodes[currentNode].length) {\n adj = nodes[currentNode].shift();\n adjTail = edges[adj][0];\n adjHead = edges[adj][1];\n if (currentNode != adjHead) {\n nodes[adjHead] = nodes[adjHead].filter(function (e) {\n return e != adj;\n });\n currentNode = adjHead;\n } else if (!directed && currentNode != adjTail) {\n nodes[adjTail] = nodes[adjTail].filter(function (e) {\n return e != adj;\n });\n currentNode = adjTail;\n }\n subtour.unshift(adj);\n subtour.unshift(currentNode);\n }\n return subtour;\n };\n var trail = [];\n var subtour = [];\n subtour = walk(startVertex);\n while (subtour.length != 1) {\n if (nodes[subtour[0]].length == 0) {\n trail.unshift(eles.getElementById(subtour.shift()));\n trail.unshift(eles.getElementById(subtour.shift()));\n } else {\n subtour = walk(subtour.shift()).concat(subtour);\n }\n }\n trail.unshift(eles.getElementById(subtour.shift())); // final node\n\n for (var d in nodes) {\n if (nodes[d].length) {\n return result;\n }\n }\n result.found = true;\n result.trail = this.spawn(trail, true);\n return result;\n }\n};\n\nvar hopcroftTarjanBiconnected = function hopcroftTarjanBiconnected() {\n var eles = this;\n var nodes = {};\n var id = 0;\n var edgeCount = 0;\n var components = [];\n var stack = [];\n var visitedEdges = {};\n var buildComponent = function buildComponent(x, y) {\n var i = stack.length - 1;\n var cutset = [];\n var component = eles.spawn();\n while (stack[i].x != x || stack[i].y != y) {\n cutset.push(stack.pop().edge);\n i--;\n }\n cutset.push(stack.pop().edge);\n cutset.forEach(function (edge) {\n var connectedNodes = edge.connectedNodes().intersection(eles);\n component.merge(edge);\n connectedNodes.forEach(function (node) {\n var nodeId = node.id();\n var connectedEdges = node.connectedEdges().intersection(eles);\n component.merge(node);\n if (!nodes[nodeId].cutVertex) {\n component.merge(connectedEdges);\n } else {\n component.merge(connectedEdges.filter(function (edge) {\n return edge.isLoop();\n }));\n }\n });\n });\n components.push(component);\n };\n var biconnectedSearch = function biconnectedSearch(root, currentNode, parent) {\n if (root === parent) edgeCount += 1;\n nodes[currentNode] = {\n id: id,\n low: id++,\n cutVertex: false\n };\n var edges = eles.getElementById(currentNode).connectedEdges().intersection(eles);\n if (edges.size() === 0) {\n components.push(eles.spawn(eles.getElementById(currentNode)));\n } else {\n var sourceId, targetId, otherNodeId, edgeId;\n edges.forEach(function (edge) {\n sourceId = edge.source().id();\n targetId = edge.target().id();\n otherNodeId = sourceId === currentNode ? targetId : sourceId;\n if (otherNodeId !== parent) {\n edgeId = edge.id();\n if (!visitedEdges[edgeId]) {\n visitedEdges[edgeId] = true;\n stack.push({\n x: currentNode,\n y: otherNodeId,\n edge: edge\n });\n }\n if (!(otherNodeId in nodes)) {\n biconnectedSearch(root, otherNodeId, currentNode);\n nodes[currentNode].low = Math.min(nodes[currentNode].low, nodes[otherNodeId].low);\n if (nodes[currentNode].id <= nodes[otherNodeId].low) {\n nodes[currentNode].cutVertex = true;\n buildComponent(currentNode, otherNodeId);\n }\n } else {\n nodes[currentNode].low = Math.min(nodes[currentNode].low, nodes[otherNodeId].id);\n }\n }\n });\n }\n };\n eles.forEach(function (ele) {\n if (ele.isNode()) {\n var nodeId = ele.id();\n if (!(nodeId in nodes)) {\n edgeCount = 0;\n biconnectedSearch(nodeId, nodeId);\n nodes[nodeId].cutVertex = edgeCount > 1;\n }\n }\n });\n var cutVertices = Object.keys(nodes).filter(function (id) {\n return nodes[id].cutVertex;\n }).map(function (id) {\n return eles.getElementById(id);\n });\n return {\n cut: eles.spawn(cutVertices),\n components: components\n };\n};\nvar hopcroftTarjanBiconnected$1 = {\n hopcroftTarjanBiconnected: hopcroftTarjanBiconnected,\n htbc: hopcroftTarjanBiconnected,\n htb: hopcroftTarjanBiconnected,\n hopcroftTarjanBiconnectedComponents: hopcroftTarjanBiconnected\n};\n\nvar tarjanStronglyConnected = function tarjanStronglyConnected() {\n var eles = this;\n var nodes = {};\n var index = 0;\n var components = [];\n var stack = [];\n var cut = eles.spawn(eles);\n var stronglyConnectedSearch = function stronglyConnectedSearch(sourceNodeId) {\n stack.push(sourceNodeId);\n nodes[sourceNodeId] = {\n index: index,\n low: index++,\n explored: false\n };\n var connectedEdges = eles.getElementById(sourceNodeId).connectedEdges().intersection(eles);\n connectedEdges.forEach(function (edge) {\n var targetNodeId = edge.target().id();\n if (targetNodeId !== sourceNodeId) {\n if (!(targetNodeId in nodes)) {\n stronglyConnectedSearch(targetNodeId);\n }\n if (!nodes[targetNodeId].explored) {\n nodes[sourceNodeId].low = Math.min(nodes[sourceNodeId].low, nodes[targetNodeId].low);\n }\n }\n });\n if (nodes[sourceNodeId].index === nodes[sourceNodeId].low) {\n var componentNodes = eles.spawn();\n for (;;) {\n var nodeId = stack.pop();\n componentNodes.merge(eles.getElementById(nodeId));\n nodes[nodeId].low = nodes[sourceNodeId].index;\n nodes[nodeId].explored = true;\n if (nodeId === sourceNodeId) {\n break;\n }\n }\n var componentEdges = componentNodes.edgesWith(componentNodes);\n var component = componentNodes.merge(componentEdges);\n components.push(component);\n cut = cut.difference(component);\n }\n };\n eles.forEach(function (ele) {\n if (ele.isNode()) {\n var nodeId = ele.id();\n if (!(nodeId in nodes)) {\n stronglyConnectedSearch(nodeId);\n }\n }\n });\n return {\n cut: cut,\n components: components\n };\n};\nvar tarjanStronglyConnected$1 = {\n tarjanStronglyConnected: tarjanStronglyConnected,\n tsc: tarjanStronglyConnected,\n tscc: tarjanStronglyConnected,\n tarjanStronglyConnectedComponents: tarjanStronglyConnected\n};\n\nvar elesfn$j = {};\n[elesfn$v, elesfn$u, elesfn$t, elesfn$s, elesfn$r, elesfn$q, elesfn$p, elesfn$o, elesfn$n, elesfn$m, elesfn$l, markovClustering$1, kClustering, hierarchicalClustering$1, affinityPropagation$1, elesfn$k, hopcroftTarjanBiconnected$1, tarjanStronglyConnected$1].forEach(function (props) {\n extend(elesfn$j, props);\n});\n\n/*!\nEmbeddable Minimum Strictly-Compliant Promises/A+ 1.1.1 Thenable\nCopyright (c) 2013-2014 Ralf S. Engelschall (http://engelschall.com)\nLicensed under The MIT License (http://opensource.org/licenses/MIT)\n*/\n\n/* promise states [Promises/A+ 2.1] */\nvar STATE_PENDING = 0; /* [Promises/A+ 2.1.1] */\nvar STATE_FULFILLED = 1; /* [Promises/A+ 2.1.2] */\nvar STATE_REJECTED = 2; /* [Promises/A+ 2.1.3] */\n\n/* promise object constructor */\nvar api = function api(executor) {\n /* optionally support non-constructor/plain-function call */\n if (!(this instanceof api)) return new api(executor);\n\n /* initialize object */\n this.id = 'Thenable/1.0.7';\n this.state = STATE_PENDING; /* initial state */\n this.fulfillValue = undefined; /* initial value */ /* [Promises/A+ 1.3, 2.1.2.2] */\n this.rejectReason = undefined; /* initial reason */ /* [Promises/A+ 1.5, 2.1.3.2] */\n this.onFulfilled = []; /* initial handlers */\n this.onRejected = []; /* initial handlers */\n\n /* provide optional information-hiding proxy */\n this.proxy = {\n then: this.then.bind(this)\n };\n\n /* support optional executor function */\n if (typeof executor === 'function') executor.call(this, this.fulfill.bind(this), this.reject.bind(this));\n};\n\n/* promise API methods */\napi.prototype = {\n /* promise resolving methods */\n fulfill: function fulfill(value) {\n return deliver(this, STATE_FULFILLED, 'fulfillValue', value);\n },\n reject: function reject(value) {\n return deliver(this, STATE_REJECTED, 'rejectReason', value);\n },\n /* \"The then Method\" [Promises/A+ 1.1, 1.2, 2.2] */\n then: function then(onFulfilled, onRejected) {\n var curr = this;\n var next = new api(); /* [Promises/A+ 2.2.7] */\n curr.onFulfilled.push(resolver(onFulfilled, next, 'fulfill')); /* [Promises/A+ 2.2.2/2.2.6] */\n curr.onRejected.push(resolver(onRejected, next, 'reject')); /* [Promises/A+ 2.2.3/2.2.6] */\n execute(curr);\n return next.proxy; /* [Promises/A+ 2.2.7, 3.3] */\n }\n};\n\n/* deliver an action */\nvar deliver = function deliver(curr, state, name, value) {\n if (curr.state === STATE_PENDING) {\n curr.state = state; /* [Promises/A+ 2.1.2.1, 2.1.3.1] */\n curr[name] = value; /* [Promises/A+ 2.1.2.2, 2.1.3.2] */\n execute(curr);\n }\n return curr;\n};\n\n/* execute all handlers */\nvar execute = function execute(curr) {\n if (curr.state === STATE_FULFILLED) execute_handlers(curr, 'onFulfilled', curr.fulfillValue);else if (curr.state === STATE_REJECTED) execute_handlers(curr, 'onRejected', curr.rejectReason);\n};\n\n/* execute particular set of handlers */\nvar execute_handlers = function execute_handlers(curr, name, value) {\n /* global setImmediate: true */\n /* global setTimeout: true */\n\n /* short-circuit processing */\n if (curr[name].length === 0) return;\n\n /* iterate over all handlers, exactly once */\n var handlers = curr[name];\n curr[name] = []; /* [Promises/A+ 2.2.2.3, 2.2.3.3] */\n var func = function func() {\n for (var i = 0; i < handlers.length; i++) {\n handlers[i](value);\n } /* [Promises/A+ 2.2.5] */\n };\n\n /* execute procedure asynchronously */ /* [Promises/A+ 2.2.4, 3.1] */\n if (typeof setImmediate === 'function') setImmediate(func);else setTimeout(func, 0);\n};\n\n/* generate a resolver function */\nvar resolver = function resolver(cb, next, method) {\n return function (value) {\n if (typeof cb !== 'function') /* [Promises/A+ 2.2.1, 2.2.7.3, 2.2.7.4] */\n next[method].call(next, value); /* [Promises/A+ 2.2.7.3, 2.2.7.4] */else {\n var result;\n try {\n result = cb(value);\n } /* [Promises/A+ 2.2.2.1, 2.2.3.1, 2.2.5, 3.2] */ catch (e) {\n next.reject(e); /* [Promises/A+ 2.2.7.2] */\n return;\n }\n resolve(next, result); /* [Promises/A+ 2.2.7.1] */\n }\n };\n};\n\n/* \"Promise Resolution Procedure\" */ /* [Promises/A+ 2.3] */\nvar resolve = function resolve(promise, x) {\n /* sanity check arguments */ /* [Promises/A+ 2.3.1] */\n if (promise === x || promise.proxy === x) {\n promise.reject(new TypeError('cannot resolve promise with itself'));\n return;\n }\n\n /* surgically check for a \"then\" method\n (mainly to just call the \"getter\" of \"then\" only once) */\n var then;\n if (_typeof(x) === 'object' && x !== null || typeof x === 'function') {\n try {\n then = x.then;\n } /* [Promises/A+ 2.3.3.1, 3.5] */ catch (e) {\n promise.reject(e); /* [Promises/A+ 2.3.3.2] */\n return;\n }\n }\n\n /* handle own Thenables [Promises/A+ 2.3.2]\n and similar \"thenables\" [Promises/A+ 2.3.3] */\n if (typeof then === 'function') {\n var resolved = false;\n try {\n /* call retrieved \"then\" method */ /* [Promises/A+ 2.3.3.3] */\n then.call(x, /* resolvePromise */ /* [Promises/A+ 2.3.3.3.1] */\n function (y) {\n if (resolved) return;\n resolved = true; /* [Promises/A+ 2.3.3.3.3] */\n if (y === x) /* [Promises/A+ 3.6] */\n promise.reject(new TypeError('circular thenable chain'));else resolve(promise, y);\n }, /* rejectPromise */ /* [Promises/A+ 2.3.3.3.2] */\n function (r) {\n if (resolved) return;\n resolved = true; /* [Promises/A+ 2.3.3.3.3] */\n promise.reject(r);\n });\n } catch (e) {\n if (!resolved) /* [Promises/A+ 2.3.3.3.3] */\n promise.reject(e); /* [Promises/A+ 2.3.3.3.4] */\n }\n\n return;\n }\n\n /* handle other values */\n promise.fulfill(x); /* [Promises/A+ 2.3.4, 2.3.3.4] */\n};\n\n// so we always have Promise.all()\napi.all = function (ps) {\n return new api(function (resolveAll, rejectAll) {\n var vals = new Array(ps.length);\n var doneCount = 0;\n var fulfill = function fulfill(i, val) {\n vals[i] = val;\n doneCount++;\n if (doneCount === ps.length) {\n resolveAll(vals);\n }\n };\n for (var i = 0; i < ps.length; i++) {\n (function (i) {\n var p = ps[i];\n var isPromise = p != null && p.then != null;\n if (isPromise) {\n p.then(function (val) {\n fulfill(i, val);\n }, function (err) {\n rejectAll(err);\n });\n } else {\n var val = p;\n fulfill(i, val);\n }\n })(i);\n }\n });\n};\napi.resolve = function (val) {\n return new api(function (resolve, reject) {\n resolve(val);\n });\n};\napi.reject = function (val) {\n return new api(function (resolve, reject) {\n reject(val);\n });\n};\nvar Promise$1 = typeof Promise !== 'undefined' ? Promise : api; // eslint-disable-line no-undef\n\nvar Animation = function Animation(target, opts, opts2) {\n var isCore = core(target);\n var isEle = !isCore;\n var _p = this._private = extend({\n duration: 1000\n }, opts, opts2);\n _p.target = target;\n _p.style = _p.style || _p.css;\n _p.started = false;\n _p.playing = false;\n _p.hooked = false;\n _p.applying = false;\n _p.progress = 0;\n _p.completes = [];\n _p.frames = [];\n if (_p.complete && fn$6(_p.complete)) {\n _p.completes.push(_p.complete);\n }\n if (isEle) {\n var pos = target.position();\n _p.startPosition = _p.startPosition || {\n x: pos.x,\n y: pos.y\n };\n _p.startStyle = _p.startStyle || target.cy().style().getAnimationStartStyle(target, _p.style);\n }\n if (isCore) {\n var pan = target.pan();\n _p.startPan = {\n x: pan.x,\n y: pan.y\n };\n _p.startZoom = target.zoom();\n }\n\n // for future timeline/animations impl\n this.length = 1;\n this[0] = this;\n};\nvar anifn = Animation.prototype;\nextend(anifn, {\n instanceString: function instanceString() {\n return 'animation';\n },\n hook: function hook() {\n var _p = this._private;\n if (!_p.hooked) {\n // add to target's animation queue\n var q;\n var tAni = _p.target._private.animation;\n if (_p.queue) {\n q = tAni.queue;\n } else {\n q = tAni.current;\n }\n q.push(this);\n\n // add to the animation loop pool\n if (elementOrCollection(_p.target)) {\n _p.target.cy().addToAnimationPool(_p.target);\n }\n _p.hooked = true;\n }\n return this;\n },\n play: function play() {\n var _p = this._private;\n\n // autorewind\n if (_p.progress === 1) {\n _p.progress = 0;\n }\n _p.playing = true;\n _p.started = false; // needs to be started by animation loop\n _p.stopped = false;\n this.hook();\n\n // the animation loop will start the animation...\n\n return this;\n },\n playing: function playing() {\n return this._private.playing;\n },\n apply: function apply() {\n var _p = this._private;\n _p.applying = true;\n _p.started = false; // needs to be started by animation loop\n _p.stopped = false;\n this.hook();\n\n // the animation loop will apply the animation at this progress\n\n return this;\n },\n applying: function applying() {\n return this._private.applying;\n },\n pause: function pause() {\n var _p = this._private;\n _p.playing = false;\n _p.started = false;\n return this;\n },\n stop: function stop() {\n var _p = this._private;\n _p.playing = false;\n _p.started = false;\n _p.stopped = true; // to be removed from animation queues\n\n return this;\n },\n rewind: function rewind() {\n return this.progress(0);\n },\n fastforward: function fastforward() {\n return this.progress(1);\n },\n time: function time(t) {\n var _p = this._private;\n if (t === undefined) {\n return _p.progress * _p.duration;\n } else {\n return this.progress(t / _p.duration);\n }\n },\n progress: function progress(p) {\n var _p = this._private;\n var wasPlaying = _p.playing;\n if (p === undefined) {\n return _p.progress;\n } else {\n if (wasPlaying) {\n this.pause();\n }\n _p.progress = p;\n _p.started = false;\n if (wasPlaying) {\n this.play();\n }\n }\n return this;\n },\n completed: function completed() {\n return this._private.progress === 1;\n },\n reverse: function reverse() {\n var _p = this._private;\n var wasPlaying = _p.playing;\n if (wasPlaying) {\n this.pause();\n }\n _p.progress = 1 - _p.progress;\n _p.started = false;\n var swap = function swap(a, b) {\n var _pa = _p[a];\n if (_pa == null) {\n return;\n }\n _p[a] = _p[b];\n _p[b] = _pa;\n };\n swap('zoom', 'startZoom');\n swap('pan', 'startPan');\n swap('position', 'startPosition');\n\n // swap styles\n if (_p.style) {\n for (var i = 0; i < _p.style.length; i++) {\n var prop = _p.style[i];\n var name = prop.name;\n var startStyleProp = _p.startStyle[name];\n _p.startStyle[name] = prop;\n _p.style[i] = startStyleProp;\n }\n }\n if (wasPlaying) {\n this.play();\n }\n return this;\n },\n promise: function promise(type) {\n var _p = this._private;\n var arr;\n switch (type) {\n case 'frame':\n arr = _p.frames;\n break;\n default:\n case 'complete':\n case 'completed':\n arr = _p.completes;\n }\n return new Promise$1(function (resolve, reject) {\n arr.push(function () {\n resolve();\n });\n });\n }\n});\nanifn.complete = anifn.completed;\nanifn.run = anifn.play;\nanifn.running = anifn.playing;\n\nvar define$3 = {\n animated: function animated() {\n return function animatedImpl() {\n var self = this;\n var selfIsArrayLike = self.length !== undefined;\n var all = selfIsArrayLike ? self : [self]; // put in array if not array-like\n var cy = this._private.cy || this;\n if (!cy.styleEnabled()) {\n return false;\n }\n var ele = all[0];\n if (ele) {\n return ele._private.animation.current.length > 0;\n }\n };\n },\n // animated\n\n clearQueue: function clearQueue() {\n return function clearQueueImpl() {\n var self = this;\n var selfIsArrayLike = self.length !== undefined;\n var all = selfIsArrayLike ? self : [self]; // put in array if not array-like\n var cy = this._private.cy || this;\n if (!cy.styleEnabled()) {\n return this;\n }\n for (var i = 0; i < all.length; i++) {\n var ele = all[i];\n ele._private.animation.queue = [];\n }\n return this;\n };\n },\n // clearQueue\n\n delay: function delay() {\n return function delayImpl(time, complete) {\n var cy = this._private.cy || this;\n if (!cy.styleEnabled()) {\n return this;\n }\n return this.animate({\n delay: time,\n duration: time,\n complete: complete\n });\n };\n },\n // delay\n\n delayAnimation: function delayAnimation() {\n return function delayAnimationImpl(time, complete) {\n var cy = this._private.cy || this;\n if (!cy.styleEnabled()) {\n return this;\n }\n return this.animation({\n delay: time,\n duration: time,\n complete: complete\n });\n };\n },\n // delay\n\n animation: function animation() {\n return function animationImpl(properties, params) {\n var self = this;\n var selfIsArrayLike = self.length !== undefined;\n var all = selfIsArrayLike ? self : [self]; // put in array if not array-like\n var cy = this._private.cy || this;\n var isCore = !selfIsArrayLike;\n var isEles = !isCore;\n if (!cy.styleEnabled()) {\n return this;\n }\n var style = cy.style();\n properties = extend({}, properties, params);\n var propertiesEmpty = Object.keys(properties).length === 0;\n if (propertiesEmpty) {\n return new Animation(all[0], properties); // nothing to animate\n }\n\n if (properties.duration === undefined) {\n properties.duration = 400;\n }\n switch (properties.duration) {\n case 'slow':\n properties.duration = 600;\n break;\n case 'fast':\n properties.duration = 200;\n break;\n }\n if (isEles) {\n properties.style = style.getPropsList(properties.style || properties.css);\n properties.css = undefined;\n }\n if (isEles && properties.renderedPosition != null) {\n var rpos = properties.renderedPosition;\n var pan = cy.pan();\n var zoom = cy.zoom();\n properties.position = renderedToModelPosition(rpos, zoom, pan);\n }\n\n // override pan w/ panBy if set\n if (isCore && properties.panBy != null) {\n var panBy = properties.panBy;\n var cyPan = cy.pan();\n properties.pan = {\n x: cyPan.x + panBy.x,\n y: cyPan.y + panBy.y\n };\n }\n\n // override pan w/ center if set\n var center = properties.center || properties.centre;\n if (isCore && center != null) {\n var centerPan = cy.getCenterPan(center.eles, properties.zoom);\n if (centerPan != null) {\n properties.pan = centerPan;\n }\n }\n\n // override pan & zoom w/ fit if set\n if (isCore && properties.fit != null) {\n var fit = properties.fit;\n var fitVp = cy.getFitViewport(fit.eles || fit.boundingBox, fit.padding);\n if (fitVp != null) {\n properties.pan = fitVp.pan;\n properties.zoom = fitVp.zoom;\n }\n }\n\n // override zoom (& potentially pan) w/ zoom obj if set\n if (isCore && plainObject(properties.zoom)) {\n var vp = cy.getZoomedViewport(properties.zoom);\n if (vp != null) {\n if (vp.zoomed) {\n properties.zoom = vp.zoom;\n }\n if (vp.panned) {\n properties.pan = vp.pan;\n }\n } else {\n properties.zoom = null; // an inavalid zoom (e.g. no delta) gets automatically destroyed\n }\n }\n\n return new Animation(all[0], properties);\n };\n },\n // animate\n\n animate: function animate() {\n return function animateImpl(properties, params) {\n var self = this;\n var selfIsArrayLike = self.length !== undefined;\n var all = selfIsArrayLike ? self : [self]; // put in array if not array-like\n var cy = this._private.cy || this;\n if (!cy.styleEnabled()) {\n return this;\n }\n if (params) {\n properties = extend({}, properties, params);\n }\n\n // manually hook and run the animation\n for (var i = 0; i < all.length; i++) {\n var ele = all[i];\n var queue = ele.animated() && (properties.queue === undefined || properties.queue);\n var ani = ele.animation(properties, queue ? {\n queue: true\n } : undefined);\n ani.play();\n }\n return this; // chaining\n };\n },\n\n // animate\n\n stop: function stop() {\n return function stopImpl(clearQueue, jumpToEnd) {\n var self = this;\n var selfIsArrayLike = self.length !== undefined;\n var all = selfIsArrayLike ? self : [self]; // put in array if not array-like\n var cy = this._private.cy || this;\n if (!cy.styleEnabled()) {\n return this;\n }\n for (var i = 0; i < all.length; i++) {\n var ele = all[i];\n var _p = ele._private;\n var anis = _p.animation.current;\n for (var j = 0; j < anis.length; j++) {\n var ani = anis[j];\n var ani_p = ani._private;\n if (jumpToEnd) {\n // next iteration of the animation loop, the animation\n // will go straight to the end and be removed\n ani_p.duration = 0;\n }\n }\n\n // clear the queue of future animations\n if (clearQueue) {\n _p.animation.queue = [];\n }\n if (!jumpToEnd) {\n _p.animation.current = [];\n }\n }\n\n // we have to notify (the animation loop doesn't do it for us on `stop`)\n cy.notify('draw');\n return this;\n };\n } // stop\n}; // define\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nvar isArray_1 = isArray;\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray_1(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol_1(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\nvar _isKey = isKey;\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject_1(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = _baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nvar isFunction_1 = isFunction;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = _root['__core-js_shared__'];\n\nvar _coreJsData = coreJsData;\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(_coreJsData && _coreJsData.keys && _coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nvar _isMasked = isMasked;\n\n/** Used for built-in method references. */\nvar funcProto$1 = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString$1 = funcProto$1.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString$1.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nvar _toSource = toSource;\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto$3 = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty$3 = objectProto$3.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty$3).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject_1(value) || _isMasked(value)) {\n return false;\n }\n var pattern = isFunction_1(value) ? reIsNative : reIsHostCtor;\n return pattern.test(_toSource(value));\n}\n\nvar _baseIsNative = baseIsNative;\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue$1(object, key) {\n return object == null ? undefined : object[key];\n}\n\nvar _getValue = getValue$1;\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = _getValue(object, key);\n return _baseIsNative(value) ? value : undefined;\n}\n\nvar _getNative = getNative;\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = _getNative(Object, 'create');\n\nvar _nativeCreate = nativeCreate;\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = _nativeCreate ? _nativeCreate(null) : {};\n this.size = 0;\n}\n\nvar _hashClear = hashClear;\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nvar _hashDelete = hashDelete;\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED$1 = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto$2 = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty$2 = objectProto$2.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (_nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED$1 ? undefined : result;\n }\n return hasOwnProperty$2.call(data, key) ? data[key] : undefined;\n}\n\nvar _hashGet = hashGet;\n\n/** Used for built-in method references. */\nvar objectProto$1 = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty$1 = objectProto$1.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return _nativeCreate ? (data[key] !== undefined) : hasOwnProperty$1.call(data, key);\n}\n\nvar _hashHas = hashHas;\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (_nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nvar _hashSet = hashSet;\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = _hashClear;\nHash.prototype['delete'] = _hashDelete;\nHash.prototype.get = _hashGet;\nHash.prototype.has = _hashHas;\nHash.prototype.set = _hashSet;\n\nvar _Hash = Hash;\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nvar _listCacheClear = listCacheClear;\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nvar eq_1 = eq;\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq_1(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nvar _assocIndexOf = assocIndexOf;\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = _assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nvar _listCacheDelete = listCacheDelete;\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = _assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nvar _listCacheGet = listCacheGet;\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return _assocIndexOf(this.__data__, key) > -1;\n}\n\nvar _listCacheHas = listCacheHas;\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = _assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nvar _listCacheSet = listCacheSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = _listCacheClear;\nListCache.prototype['delete'] = _listCacheDelete;\nListCache.prototype.get = _listCacheGet;\nListCache.prototype.has = _listCacheHas;\nListCache.prototype.set = _listCacheSet;\n\nvar _ListCache = ListCache;\n\n/* Built-in method references that are verified to be native. */\nvar Map$1 = _getNative(_root, 'Map');\n\nvar _Map = Map$1;\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new _Hash,\n 'map': new (_Map || _ListCache),\n 'string': new _Hash\n };\n}\n\nvar _mapCacheClear = mapCacheClear;\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nvar _isKeyable = isKeyable;\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return _isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nvar _getMapData = getMapData;\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = _getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nvar _mapCacheDelete = mapCacheDelete;\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return _getMapData(this, key).get(key);\n}\n\nvar _mapCacheGet = mapCacheGet;\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return _getMapData(this, key).has(key);\n}\n\nvar _mapCacheHas = mapCacheHas;\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = _getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nvar _mapCacheSet = mapCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = _mapCacheClear;\nMapCache.prototype['delete'] = _mapCacheDelete;\nMapCache.prototype.get = _mapCacheGet;\nMapCache.prototype.has = _mapCacheHas;\nMapCache.prototype.set = _mapCacheSet;\n\nvar _MapCache = MapCache;\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || _MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = _MapCache;\n\nvar memoize_1 = memoize;\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize_1(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nvar _memoizeCapped = memoizeCapped;\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = _memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nvar _stringToPath = stringToPath;\n\n/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nvar _arrayMap = arrayMap;\n\n/** Used as references for various `Number` constants. */\nvar INFINITY$1 = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = _Symbol ? _Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray_1(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return _arrayMap(value, baseToString) + '';\n }\n if (isSymbol_1(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY$1) ? '-0' : result;\n}\n\nvar _baseToString = baseToString;\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString$1(value) {\n return value == null ? '' : _baseToString(value);\n}\n\nvar toString_1 = toString$1;\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n if (isArray_1(value)) {\n return value;\n }\n return _isKey(value, object) ? [value] : _stringToPath(toString_1(value));\n}\n\nvar _castPath = castPath;\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol_1(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nvar _toKey = toKey;\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = _castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[_toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\nvar _baseGet = baseGet;\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : _baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nvar get_1 = get;\n\nvar defineProperty = (function() {\n try {\n var func = _getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nvar _defineProperty = defineProperty;\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && _defineProperty) {\n _defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nvar _baseAssignValue = baseAssignValue;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq_1(objValue, value)) ||\n (value === undefined && !(key in object))) {\n _baseAssignValue(object, key, value);\n }\n}\n\nvar _assignValue = assignValue;\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nvar _isIndex = isIndex;\n\n/**\n * The base implementation of `_.set`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @param {Function} [customizer] The function to customize path creation.\n * @returns {Object} Returns `object`.\n */\nfunction baseSet(object, path, value, customizer) {\n if (!isObject_1(object)) {\n return object;\n }\n path = _castPath(path, object);\n\n var index = -1,\n length = path.length,\n lastIndex = length - 1,\n nested = object;\n\n while (nested != null && ++index < length) {\n var key = _toKey(path[index]),\n newValue = value;\n\n if (key === '__proto__' || key === 'constructor' || key === 'prototype') {\n return object;\n }\n\n if (index != lastIndex) {\n var objValue = nested[key];\n newValue = customizer ? customizer(objValue, key, nested) : undefined;\n if (newValue === undefined) {\n newValue = isObject_1(objValue)\n ? objValue\n : (_isIndex(path[index + 1]) ? [] : {});\n }\n }\n _assignValue(nested, key, newValue);\n nested = nested[key];\n }\n return object;\n}\n\nvar _baseSet = baseSet;\n\n/**\n * Sets the value at `path` of `object`. If a portion of `path` doesn't exist,\n * it's created. Arrays are created for missing index properties while objects\n * are created for all other missing properties. Use `_.setWith` to customize\n * `path` creation.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.set(object, 'a[0].b.c', 4);\n * console.log(object.a[0].b.c);\n * // => 4\n *\n * _.set(object, ['x', '0', 'y', 'z'], 5);\n * console.log(object.x[0].y.z);\n * // => 5\n */\nfunction set(object, path, value) {\n return object == null ? object : _baseSet(object, path, value);\n}\n\nvar set_1 = set;\n\n/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\nvar _copyArray = copyArray;\n\n/**\n * Converts `value` to a property path array.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Util\n * @param {*} value The value to convert.\n * @returns {Array} Returns the new property path array.\n * @example\n *\n * _.toPath('a.b.c');\n * // => ['a', 'b', 'c']\n *\n * _.toPath('a[0].b.c');\n * // => ['a', '0', 'b', 'c']\n */\nfunction toPath(value) {\n if (isArray_1(value)) {\n return _arrayMap(value, _toKey);\n }\n return isSymbol_1(value) ? [value] : _copyArray(_stringToPath(toString_1(value)));\n}\n\nvar toPath_1 = toPath;\n\nvar define$2 = {\n // access data field\n data: function data(params) {\n var defaults = {\n field: 'data',\n bindingEvent: 'data',\n allowBinding: false,\n allowSetting: false,\n allowGetting: false,\n settingEvent: 'data',\n settingTriggersEvent: false,\n triggerFnName: 'trigger',\n immutableKeys: {},\n // key => true if immutable\n updateStyle: false,\n beforeGet: function beforeGet(self) {},\n beforeSet: function beforeSet(self, obj) {},\n onSet: function onSet(self) {},\n canSet: function canSet(self) {\n return true;\n }\n };\n params = extend({}, defaults, params);\n return function dataImpl(name, value) {\n var p = params;\n var self = this;\n var selfIsArrayLike = self.length !== undefined;\n var all = selfIsArrayLike ? self : [self]; // put in array if not array-like\n var single = selfIsArrayLike ? self[0] : self;\n\n // .data('foo', ...)\n if (string(name)) {\n // set or get property\n var isPathLike = name.indexOf('.') !== -1; // there might be a normal field with a dot \n var path = isPathLike && toPath_1(name);\n\n // .data('foo')\n if (p.allowGetting && value === undefined) {\n // get\n\n var ret;\n if (single) {\n p.beforeGet(single);\n\n // check if it's path and a field with the same name doesn't exist\n if (path && single._private[p.field][name] === undefined) {\n ret = get_1(single._private[p.field], path);\n } else {\n ret = single._private[p.field][name];\n }\n }\n return ret;\n\n // .data('foo', 'bar')\n } else if (p.allowSetting && value !== undefined) {\n // set\n var valid = !p.immutableKeys[name];\n if (valid) {\n var change = _defineProperty$1({}, name, value);\n p.beforeSet(self, change);\n for (var i = 0, l = all.length; i < l; i++) {\n var ele = all[i];\n if (p.canSet(ele)) {\n if (path && single._private[p.field][name] === undefined) {\n set_1(ele._private[p.field], path, value);\n } else {\n ele._private[p.field][name] = value;\n }\n }\n }\n\n // update mappers if asked\n if (p.updateStyle) {\n self.updateStyle();\n }\n\n // call onSet callback\n p.onSet(self);\n if (p.settingTriggersEvent) {\n self[p.triggerFnName](p.settingEvent);\n }\n }\n }\n\n // .data({ 'foo': 'bar' })\n } else if (p.allowSetting && plainObject(name)) {\n // extend\n var obj = name;\n var k, v;\n var keys = Object.keys(obj);\n p.beforeSet(self, obj);\n for (var _i = 0; _i < keys.length; _i++) {\n k = keys[_i];\n v = obj[k];\n var _valid = !p.immutableKeys[k];\n if (_valid) {\n for (var j = 0; j < all.length; j++) {\n var _ele = all[j];\n if (p.canSet(_ele)) {\n _ele._private[p.field][k] = v;\n }\n }\n }\n }\n\n // update mappers if asked\n if (p.updateStyle) {\n self.updateStyle();\n }\n\n // call onSet callback\n p.onSet(self);\n if (p.settingTriggersEvent) {\n self[p.triggerFnName](p.settingEvent);\n }\n\n // .data(function(){ ... })\n } else if (p.allowBinding && fn$6(name)) {\n // bind to event\n var fn = name;\n self.on(p.bindingEvent, fn);\n\n // .data()\n } else if (p.allowGetting && name === undefined) {\n // get whole object\n var _ret;\n if (single) {\n p.beforeGet(single);\n _ret = single._private[p.field];\n }\n return _ret;\n }\n return self; // maintain chainability\n }; // function\n },\n\n // data\n\n // remove data field\n removeData: function removeData(params) {\n var defaults = {\n field: 'data',\n event: 'data',\n triggerFnName: 'trigger',\n triggerEvent: false,\n immutableKeys: {} // key => true if immutable\n };\n\n params = extend({}, defaults, params);\n return function removeDataImpl(names) {\n var p = params;\n var self = this;\n var selfIsArrayLike = self.length !== undefined;\n var all = selfIsArrayLike ? self : [self]; // put in array if not array-like\n\n // .removeData('foo bar')\n if (string(names)) {\n // then get the list of keys, and delete them\n var keys = names.split(/\\s+/);\n var l = keys.length;\n for (var i = 0; i < l; i++) {\n // delete each non-empty key\n var key = keys[i];\n if (emptyString(key)) {\n continue;\n }\n var valid = !p.immutableKeys[key]; // not valid if immutable\n if (valid) {\n for (var i_a = 0, l_a = all.length; i_a < l_a; i_a++) {\n all[i_a]._private[p.field][key] = undefined;\n }\n }\n }\n if (p.triggerEvent) {\n self[p.triggerFnName](p.event);\n }\n\n // .removeData()\n } else if (names === undefined) {\n // then delete all keys\n\n for (var _i_a = 0, _l_a = all.length; _i_a < _l_a; _i_a++) {\n var _privateFields = all[_i_a]._private[p.field];\n var _keys = Object.keys(_privateFields);\n for (var _i2 = 0; _i2 < _keys.length; _i2++) {\n var _key = _keys[_i2];\n var validKeyToDelete = !p.immutableKeys[_key];\n if (validKeyToDelete) {\n _privateFields[_key] = undefined;\n }\n }\n }\n if (p.triggerEvent) {\n self[p.triggerFnName](p.event);\n }\n }\n return self; // maintain chaining\n }; // function\n } // removeData\n}; // define\n\nvar define$1 = {\n eventAliasesOn: function eventAliasesOn(proto) {\n var p = proto;\n p.addListener = p.listen = p.bind = p.on;\n p.unlisten = p.unbind = p.off = p.removeListener;\n p.trigger = p.emit;\n\n // this is just a wrapper alias of .on()\n p.pon = p.promiseOn = function (events, selector) {\n var self = this;\n var args = Array.prototype.slice.call(arguments, 0);\n return new Promise$1(function (resolve, reject) {\n var callback = function callback(e) {\n self.off.apply(self, offArgs);\n resolve(e);\n };\n var onArgs = args.concat([callback]);\n var offArgs = onArgs.concat([]);\n self.on.apply(self, onArgs);\n });\n };\n }\n}; // define\n\n// use this module to cherry pick functions into your prototype\nvar define = {};\n[define$3, define$2, define$1].forEach(function (m) {\n extend(define, m);\n});\n\nvar elesfn$i = {\n animate: define.animate(),\n animation: define.animation(),\n animated: define.animated(),\n clearQueue: define.clearQueue(),\n delay: define.delay(),\n delayAnimation: define.delayAnimation(),\n stop: define.stop()\n};\n\nvar elesfn$h = {\n classes: function classes(_classes) {\n var self = this;\n if (_classes === undefined) {\n var ret = [];\n self[0]._private.classes.forEach(function (cls) {\n return ret.push(cls);\n });\n return ret;\n } else if (!array(_classes)) {\n // extract classes from string\n _classes = (_classes || '').match(/\\S+/g) || [];\n }\n var changed = [];\n var classesSet = new Set$1(_classes);\n\n // check and update each ele\n for (var j = 0; j < self.length; j++) {\n var ele = self[j];\n var _p = ele._private;\n var eleClasses = _p.classes;\n var changedEle = false;\n\n // check if ele has all of the passed classes\n for (var i = 0; i < _classes.length; i++) {\n var cls = _classes[i];\n var eleHasClass = eleClasses.has(cls);\n if (!eleHasClass) {\n changedEle = true;\n break;\n }\n }\n\n // check if ele has classes outside of those passed\n if (!changedEle) {\n changedEle = eleClasses.size !== _classes.length;\n }\n if (changedEle) {\n _p.classes = classesSet;\n changed.push(ele);\n }\n }\n\n // trigger update style on those eles that had class changes\n if (changed.length > 0) {\n this.spawn(changed).updateStyle().emit('class');\n }\n return self;\n },\n addClass: function addClass(classes) {\n return this.toggleClass(classes, true);\n },\n hasClass: function hasClass(className) {\n var ele = this[0];\n return ele != null && ele._private.classes.has(className);\n },\n toggleClass: function toggleClass(classes, toggle) {\n if (!array(classes)) {\n // extract classes from string\n classes = classes.match(/\\S+/g) || [];\n }\n var self = this;\n var toggleUndefd = toggle === undefined;\n var changed = []; // eles who had classes changed\n\n for (var i = 0, il = self.length; i < il; i++) {\n var ele = self[i];\n var eleClasses = ele._private.classes;\n var changedEle = false;\n for (var j = 0; j < classes.length; j++) {\n var cls = classes[j];\n var hasClass = eleClasses.has(cls);\n var changedNow = false;\n if (toggle || toggleUndefd && !hasClass) {\n eleClasses.add(cls);\n changedNow = true;\n } else if (!toggle || toggleUndefd && hasClass) {\n eleClasses[\"delete\"](cls);\n changedNow = true;\n }\n if (!changedEle && changedNow) {\n changed.push(ele);\n changedEle = true;\n }\n } // for j classes\n } // for i eles\n\n // trigger update style on those eles that had class changes\n if (changed.length > 0) {\n this.spawn(changed).updateStyle().emit('class');\n }\n return self;\n },\n removeClass: function removeClass(classes) {\n return this.toggleClass(classes, false);\n },\n flashClass: function flashClass(classes, duration) {\n var self = this;\n if (duration == null) {\n duration = 250;\n } else if (duration === 0) {\n return self; // nothing to do really\n }\n\n self.addClass(classes);\n setTimeout(function () {\n self.removeClass(classes);\n }, duration);\n return self;\n }\n};\nelesfn$h.className = elesfn$h.classNames = elesfn$h.classes;\n\n// tokens in the query language\nvar tokens = {\n metaChar: '[\\\\!\\\\\"\\\\#\\\\$\\\\%\\\\&\\\\\\'\\\\(\\\\)\\\\*\\\\+\\\\,\\\\.\\\\/\\\\:\\\\;\\\\<\\\\=\\\\>\\\\?\\\\@\\\\[\\\\]\\\\^\\\\`\\\\{\\\\|\\\\}\\\\~]',\n // chars we need to escape in let names, etc\n comparatorOp: '=|\\\\!=|>|>=|<|<=|\\\\$=|\\\\^=|\\\\*=',\n // binary comparison op (used in data selectors)\n boolOp: '\\\\?|\\\\!|\\\\^',\n // boolean (unary) operators (used in data selectors)\n string: '\"(?:\\\\\\\\\"|[^\"])*\"' + '|' + \"'(?:\\\\\\\\'|[^'])*'\",\n // string literals (used in data selectors) -- doublequotes | singlequotes\n number: number,\n // number literal (used in data selectors) --- e.g. 0.1234, 1234, 12e123\n meta: 'degree|indegree|outdegree',\n // allowed metadata fields (i.e. allowed functions to use from Collection)\n separator: '\\\\s*,\\\\s*',\n // queries are separated by commas, e.g. edge[foo = 'bar'], node.someClass\n descendant: '\\\\s+',\n child: '\\\\s+>\\\\s+',\n subject: '\\\\$',\n group: 'node|edge|\\\\*',\n directedEdge: '\\\\s+->\\\\s+',\n undirectedEdge: '\\\\s+<->\\\\s+'\n};\ntokens.variable = '(?:[\\\\w-.]|(?:\\\\\\\\' + tokens.metaChar + '))+'; // a variable name can have letters, numbers, dashes, and periods\ntokens.className = '(?:[\\\\w-]|(?:\\\\\\\\' + tokens.metaChar + '))+'; // a class name has the same rules as a variable except it can't have a '.' in the name\ntokens.value = tokens.string + '|' + tokens.number; // a value literal, either a string or number\ntokens.id = tokens.variable; // an element id (follows variable conventions)\n\n(function () {\n var ops, op, i;\n\n // add @ variants to comparatorOp\n ops = tokens.comparatorOp.split('|');\n for (i = 0; i < ops.length; i++) {\n op = ops[i];\n tokens.comparatorOp += '|@' + op;\n }\n\n // add ! variants to comparatorOp\n ops = tokens.comparatorOp.split('|');\n for (i = 0; i < ops.length; i++) {\n op = ops[i];\n if (op.indexOf('!') >= 0) {\n continue;\n } // skip ops that explicitly contain !\n if (op === '=') {\n continue;\n } // skip = b/c != is explicitly defined\n\n tokens.comparatorOp += '|\\\\!' + op;\n }\n})();\n\n/**\n * Make a new query object\n *\n * @prop type {Type} The type enum (int) of the query\n * @prop checks List of checks to make against an ele to test for a match\n */\nvar newQuery = function newQuery() {\n return {\n checks: []\n };\n};\n\n/**\n * A check type enum-like object. Uses integer values for fast match() lookup.\n * The ordering does not matter as long as the ints are unique.\n */\nvar Type = {\n /** E.g. node */\n GROUP: 0,\n /** A collection of elements */\n COLLECTION: 1,\n /** A filter(ele) function */\n FILTER: 2,\n /** E.g. [foo > 1] */\n DATA_COMPARE: 3,\n /** E.g. [foo] */\n DATA_EXIST: 4,\n /** E.g. [?foo] */\n DATA_BOOL: 5,\n /** E.g. [[degree > 2]] */\n META_COMPARE: 6,\n /** E.g. :selected */\n STATE: 7,\n /** E.g. #foo */\n ID: 8,\n /** E.g. .foo */\n CLASS: 9,\n /** E.g. #foo <-> #bar */\n UNDIRECTED_EDGE: 10,\n /** E.g. #foo -> #bar */\n DIRECTED_EDGE: 11,\n /** E.g. $#foo -> #bar */\n NODE_SOURCE: 12,\n /** E.g. #foo -> $#bar */\n NODE_TARGET: 13,\n /** E.g. $#foo <-> #bar */\n NODE_NEIGHBOR: 14,\n /** E.g. #foo > #bar */\n CHILD: 15,\n /** E.g. #foo #bar */\n DESCENDANT: 16,\n /** E.g. $#foo > #bar */\n PARENT: 17,\n /** E.g. $#foo #bar */\n ANCESTOR: 18,\n /** E.g. #foo > $bar > #baz */\n COMPOUND_SPLIT: 19,\n /** Always matches, useful placeholder for subject in `COMPOUND_SPLIT` */\n TRUE: 20\n};\n\nvar stateSelectors = [{\n selector: ':selected',\n matches: function matches(ele) {\n return ele.selected();\n }\n}, {\n selector: ':unselected',\n matches: function matches(ele) {\n return !ele.selected();\n }\n}, {\n selector: ':selectable',\n matches: function matches(ele) {\n return ele.selectable();\n }\n}, {\n selector: ':unselectable',\n matches: function matches(ele) {\n return !ele.selectable();\n }\n}, {\n selector: ':locked',\n matches: function matches(ele) {\n return ele.locked();\n }\n}, {\n selector: ':unlocked',\n matches: function matches(ele) {\n return !ele.locked();\n }\n}, {\n selector: ':visible',\n matches: function matches(ele) {\n return ele.visible();\n }\n}, {\n selector: ':hidden',\n matches: function matches(ele) {\n return !ele.visible();\n }\n}, {\n selector: ':transparent',\n matches: function matches(ele) {\n return ele.transparent();\n }\n}, {\n selector: ':grabbed',\n matches: function matches(ele) {\n return ele.grabbed();\n }\n}, {\n selector: ':free',\n matches: function matches(ele) {\n return !ele.grabbed();\n }\n}, {\n selector: ':removed',\n matches: function matches(ele) {\n return ele.removed();\n }\n}, {\n selector: ':inside',\n matches: function matches(ele) {\n return !ele.removed();\n }\n}, {\n selector: ':grabbable',\n matches: function matches(ele) {\n return ele.grabbable();\n }\n}, {\n selector: ':ungrabbable',\n matches: function matches(ele) {\n return !ele.grabbable();\n }\n}, {\n selector: ':animated',\n matches: function matches(ele) {\n return ele.animated();\n }\n}, {\n selector: ':unanimated',\n matches: function matches(ele) {\n return !ele.animated();\n }\n}, {\n selector: ':parent',\n matches: function matches(ele) {\n return ele.isParent();\n }\n}, {\n selector: ':childless',\n matches: function matches(ele) {\n return ele.isChildless();\n }\n}, {\n selector: ':child',\n matches: function matches(ele) {\n return ele.isChild();\n }\n}, {\n selector: ':orphan',\n matches: function matches(ele) {\n return ele.isOrphan();\n }\n}, {\n selector: ':nonorphan',\n matches: function matches(ele) {\n return ele.isChild();\n }\n}, {\n selector: ':compound',\n matches: function matches(ele) {\n if (ele.isNode()) {\n return ele.isParent();\n } else {\n return ele.source().isParent() || ele.target().isParent();\n }\n }\n}, {\n selector: ':loop',\n matches: function matches(ele) {\n return ele.isLoop();\n }\n}, {\n selector: ':simple',\n matches: function matches(ele) {\n return ele.isSimple();\n }\n}, {\n selector: ':active',\n matches: function matches(ele) {\n return ele.active();\n }\n}, {\n selector: ':inactive',\n matches: function matches(ele) {\n return !ele.active();\n }\n}, {\n selector: ':backgrounding',\n matches: function matches(ele) {\n return ele.backgrounding();\n }\n}, {\n selector: ':nonbackgrounding',\n matches: function matches(ele) {\n return !ele.backgrounding();\n }\n}].sort(function (a, b) {\n // n.b. selectors that are starting substrings of others must have the longer ones first\n return descending(a.selector, b.selector);\n});\nvar lookup = function () {\n var selToFn = {};\n var s;\n for (var i = 0; i < stateSelectors.length; i++) {\n s = stateSelectors[i];\n selToFn[s.selector] = s.matches;\n }\n return selToFn;\n}();\nvar stateSelectorMatches = function stateSelectorMatches(sel, ele) {\n return lookup[sel](ele);\n};\nvar stateSelectorRegex = '(' + stateSelectors.map(function (s) {\n return s.selector;\n}).join('|') + ')';\n\n// when a token like a variable has escaped meta characters, we need to clean the backslashes out\n// so that values get compared properly in Selector.filter()\nvar cleanMetaChars = function cleanMetaChars(str) {\n return str.replace(new RegExp('\\\\\\\\(' + tokens.metaChar + ')', 'g'), function (match, $1) {\n return $1;\n });\n};\nvar replaceLastQuery = function replaceLastQuery(selector, examiningQuery, replacementQuery) {\n selector[selector.length - 1] = replacementQuery;\n};\n\n// NOTE: add new expression syntax here to have it recognised by the parser;\n// - a query contains all adjacent (i.e. no separator in between) expressions;\n// - the current query is stored in selector[i]\n// - you need to check the query objects in match() for it actually filter properly, but that's pretty straight forward\nvar exprs = [{\n name: 'group',\n // just used for identifying when debugging\n query: true,\n regex: '(' + tokens.group + ')',\n populate: function populate(selector, query, _ref) {\n var _ref2 = _slicedToArray(_ref, 1),\n group = _ref2[0];\n query.checks.push({\n type: Type.GROUP,\n value: group === '*' ? group : group + 's'\n });\n }\n}, {\n name: 'state',\n query: true,\n regex: stateSelectorRegex,\n populate: function populate(selector, query, _ref3) {\n var _ref4 = _slicedToArray(_ref3, 1),\n state = _ref4[0];\n query.checks.push({\n type: Type.STATE,\n value: state\n });\n }\n}, {\n name: 'id',\n query: true,\n regex: '\\\\#(' + tokens.id + ')',\n populate: function populate(selector, query, _ref5) {\n var _ref6 = _slicedToArray(_ref5, 1),\n id = _ref6[0];\n query.checks.push({\n type: Type.ID,\n value: cleanMetaChars(id)\n });\n }\n}, {\n name: 'className',\n query: true,\n regex: '\\\\.(' + tokens.className + ')',\n populate: function populate(selector, query, _ref7) {\n var _ref8 = _slicedToArray(_ref7, 1),\n className = _ref8[0];\n query.checks.push({\n type: Type.CLASS,\n value: cleanMetaChars(className)\n });\n }\n}, {\n name: 'dataExists',\n query: true,\n regex: '\\\\[\\\\s*(' + tokens.variable + ')\\\\s*\\\\]',\n populate: function populate(selector, query, _ref9) {\n var _ref10 = _slicedToArray(_ref9, 1),\n variable = _ref10[0];\n query.checks.push({\n type: Type.DATA_EXIST,\n field: cleanMetaChars(variable)\n });\n }\n}, {\n name: 'dataCompare',\n query: true,\n regex: '\\\\[\\\\s*(' + tokens.variable + ')\\\\s*(' + tokens.comparatorOp + ')\\\\s*(' + tokens.value + ')\\\\s*\\\\]',\n populate: function populate(selector, query, _ref11) {\n var _ref12 = _slicedToArray(_ref11, 3),\n variable = _ref12[0],\n comparatorOp = _ref12[1],\n value = _ref12[2];\n var valueIsString = new RegExp('^' + tokens.string + '$').exec(value) != null;\n if (valueIsString) {\n value = value.substring(1, value.length - 1);\n } else {\n value = parseFloat(value);\n }\n query.checks.push({\n type: Type.DATA_COMPARE,\n field: cleanMetaChars(variable),\n operator: comparatorOp,\n value: value\n });\n }\n}, {\n name: 'dataBool',\n query: true,\n regex: '\\\\[\\\\s*(' + tokens.boolOp + ')\\\\s*(' + tokens.variable + ')\\\\s*\\\\]',\n populate: function populate(selector, query, _ref13) {\n var _ref14 = _slicedToArray(_ref13, 2),\n boolOp = _ref14[0],\n variable = _ref14[1];\n query.checks.push({\n type: Type.DATA_BOOL,\n field: cleanMetaChars(variable),\n operator: boolOp\n });\n }\n}, {\n name: 'metaCompare',\n query: true,\n regex: '\\\\[\\\\[\\\\s*(' + tokens.meta + ')\\\\s*(' + tokens.comparatorOp + ')\\\\s*(' + tokens.number + ')\\\\s*\\\\]\\\\]',\n populate: function populate(selector, query, _ref15) {\n var _ref16 = _slicedToArray(_ref15, 3),\n meta = _ref16[0],\n comparatorOp = _ref16[1],\n number = _ref16[2];\n query.checks.push({\n type: Type.META_COMPARE,\n field: cleanMetaChars(meta),\n operator: comparatorOp,\n value: parseFloat(number)\n });\n }\n}, {\n name: 'nextQuery',\n separator: true,\n regex: tokens.separator,\n populate: function populate(selector, query) {\n var currentSubject = selector.currentSubject;\n var edgeCount = selector.edgeCount;\n var compoundCount = selector.compoundCount;\n var lastQ = selector[selector.length - 1];\n if (currentSubject != null) {\n lastQ.subject = currentSubject;\n selector.currentSubject = null;\n }\n lastQ.edgeCount = edgeCount;\n lastQ.compoundCount = compoundCount;\n selector.edgeCount = 0;\n selector.compoundCount = 0;\n\n // go on to next query\n var nextQuery = selector[selector.length++] = newQuery();\n return nextQuery; // this is the new query to be filled by the following exprs\n }\n}, {\n name: 'directedEdge',\n separator: true,\n regex: tokens.directedEdge,\n populate: function populate(selector, query) {\n if (selector.currentSubject == null) {\n // undirected edge\n var edgeQuery = newQuery();\n var source = query;\n var target = newQuery();\n edgeQuery.checks.push({\n type: Type.DIRECTED_EDGE,\n source: source,\n target: target\n });\n\n // the query in the selector should be the edge rather than the source\n replaceLastQuery(selector, query, edgeQuery);\n selector.edgeCount++;\n\n // we're now populating the target query with expressions that follow\n return target;\n } else {\n // source/target\n var srcTgtQ = newQuery();\n var _source = query;\n var _target = newQuery();\n srcTgtQ.checks.push({\n type: Type.NODE_SOURCE,\n source: _source,\n target: _target\n });\n\n // the query in the selector should be the neighbourhood rather than the node\n replaceLastQuery(selector, query, srcTgtQ);\n selector.edgeCount++;\n return _target; // now populating the target with the following expressions\n }\n }\n}, {\n name: 'undirectedEdge',\n separator: true,\n regex: tokens.undirectedEdge,\n populate: function populate(selector, query) {\n if (selector.currentSubject == null) {\n // undirected edge\n var edgeQuery = newQuery();\n var source = query;\n var target = newQuery();\n edgeQuery.checks.push({\n type: Type.UNDIRECTED_EDGE,\n nodes: [source, target]\n });\n\n // the query in the selector should be the edge rather than the source\n replaceLastQuery(selector, query, edgeQuery);\n selector.edgeCount++;\n\n // we're now populating the target query with expressions that follow\n return target;\n } else {\n // neighbourhood\n var nhoodQ = newQuery();\n var node = query;\n var neighbor = newQuery();\n nhoodQ.checks.push({\n type: Type.NODE_NEIGHBOR,\n node: node,\n neighbor: neighbor\n });\n\n // the query in the selector should be the neighbourhood rather than the node\n replaceLastQuery(selector, query, nhoodQ);\n return neighbor; // now populating the neighbor with following expressions\n }\n }\n}, {\n name: 'child',\n separator: true,\n regex: tokens.child,\n populate: function populate(selector, query) {\n if (selector.currentSubject == null) {\n // default: child query\n var parentChildQuery = newQuery();\n var child = newQuery();\n var parent = selector[selector.length - 1];\n parentChildQuery.checks.push({\n type: Type.CHILD,\n parent: parent,\n child: child\n });\n\n // the query in the selector should be the '>' itself\n replaceLastQuery(selector, query, parentChildQuery);\n selector.compoundCount++;\n\n // we're now populating the child query with expressions that follow\n return child;\n } else if (selector.currentSubject === query) {\n // compound split query\n var compound = newQuery();\n var left = selector[selector.length - 1];\n var right = newQuery();\n var subject = newQuery();\n var _child = newQuery();\n var _parent = newQuery();\n\n // set up the root compound q\n compound.checks.push({\n type: Type.COMPOUND_SPLIT,\n left: left,\n right: right,\n subject: subject\n });\n\n // populate the subject and replace the q at the old spot (within left) with TRUE\n subject.checks = query.checks; // take the checks from the left\n query.checks = [{\n type: Type.TRUE\n }]; // checks under left refs the subject implicitly\n\n // set up the right q\n _parent.checks.push({\n type: Type.TRUE\n }); // parent implicitly refs the subject\n right.checks.push({\n type: Type.PARENT,\n // type is swapped on right side queries\n parent: _parent,\n child: _child // empty for now\n });\n\n replaceLastQuery(selector, left, compound);\n\n // update the ref since we moved things around for `query`\n selector.currentSubject = subject;\n selector.compoundCount++;\n return _child; // now populating the right side's child\n } else {\n // parent query\n // info for parent query\n var _parent2 = newQuery();\n var _child2 = newQuery();\n var pcQChecks = [{\n type: Type.PARENT,\n parent: _parent2,\n child: _child2\n }];\n\n // the parent-child query takes the place of the query previously being populated\n _parent2.checks = query.checks; // the previous query contains the checks for the parent\n query.checks = pcQChecks; // pc query takes over\n\n selector.compoundCount++;\n return _child2; // we're now populating the child\n }\n }\n}, {\n name: 'descendant',\n separator: true,\n regex: tokens.descendant,\n populate: function populate(selector, query) {\n if (selector.currentSubject == null) {\n // default: descendant query\n var ancChQuery = newQuery();\n var descendant = newQuery();\n var ancestor = selector[selector.length - 1];\n ancChQuery.checks.push({\n type: Type.DESCENDANT,\n ancestor: ancestor,\n descendant: descendant\n });\n\n // the query in the selector should be the '>' itself\n replaceLastQuery(selector, query, ancChQuery);\n selector.compoundCount++;\n\n // we're now populating the descendant query with expressions that follow\n return descendant;\n } else if (selector.currentSubject === query) {\n // compound split query\n var compound = newQuery();\n var left = selector[selector.length - 1];\n var right = newQuery();\n var subject = newQuery();\n var _descendant = newQuery();\n var _ancestor = newQuery();\n\n // set up the root compound q\n compound.checks.push({\n type: Type.COMPOUND_SPLIT,\n left: left,\n right: right,\n subject: subject\n });\n\n // populate the subject and replace the q at the old spot (within left) with TRUE\n subject.checks = query.checks; // take the checks from the left\n query.checks = [{\n type: Type.TRUE\n }]; // checks under left refs the subject implicitly\n\n // set up the right q\n _ancestor.checks.push({\n type: Type.TRUE\n }); // ancestor implicitly refs the subject\n right.checks.push({\n type: Type.ANCESTOR,\n // type is swapped on right side queries\n ancestor: _ancestor,\n descendant: _descendant // empty for now\n });\n\n replaceLastQuery(selector, left, compound);\n\n // update the ref since we moved things around for `query`\n selector.currentSubject = subject;\n selector.compoundCount++;\n return _descendant; // now populating the right side's descendant\n } else {\n // ancestor query\n // info for parent query\n var _ancestor2 = newQuery();\n var _descendant2 = newQuery();\n var adQChecks = [{\n type: Type.ANCESTOR,\n ancestor: _ancestor2,\n descendant: _descendant2\n }];\n\n // the parent-child query takes the place of the query previously being populated\n _ancestor2.checks = query.checks; // the previous query contains the checks for the parent\n query.checks = adQChecks; // pc query takes over\n\n selector.compoundCount++;\n return _descendant2; // we're now populating the child\n }\n }\n}, {\n name: 'subject',\n modifier: true,\n regex: tokens.subject,\n populate: function populate(selector, query) {\n if (selector.currentSubject != null && selector.currentSubject !== query) {\n warn('Redefinition of subject in selector `' + selector.toString() + '`');\n return false;\n }\n selector.currentSubject = query;\n var topQ = selector[selector.length - 1];\n var topChk = topQ.checks[0];\n var topType = topChk == null ? null : topChk.type;\n if (topType === Type.DIRECTED_EDGE) {\n // directed edge with subject on the target\n\n // change to target node check\n topChk.type = Type.NODE_TARGET;\n } else if (topType === Type.UNDIRECTED_EDGE) {\n // undirected edge with subject on the second node\n\n // change to neighbor check\n topChk.type = Type.NODE_NEIGHBOR;\n topChk.node = topChk.nodes[1]; // second node is subject\n topChk.neighbor = topChk.nodes[0];\n\n // clean up unused fields for new type\n topChk.nodes = null;\n }\n }\n}];\nexprs.forEach(function (e) {\n return e.regexObj = new RegExp('^' + e.regex);\n});\n\n/**\n * Of all the expressions, find the first match in the remaining text.\n * @param {string} remaining The remaining text to parse\n * @returns The matched expression and the newly remaining text `{ expr, match, name, remaining }`\n */\nvar consumeExpr = function consumeExpr(remaining) {\n var expr;\n var match;\n var name;\n for (var j = 0; j < exprs.length; j++) {\n var e = exprs[j];\n var n = e.name;\n var m = remaining.match(e.regexObj);\n if (m != null) {\n match = m;\n expr = e;\n name = n;\n var consumed = m[0];\n remaining = remaining.substring(consumed.length);\n break; // we've consumed one expr, so we can return now\n }\n }\n\n return {\n expr: expr,\n match: match,\n name: name,\n remaining: remaining\n };\n};\n\n/**\n * Consume all the leading whitespace\n * @param {string} remaining The text to consume\n * @returns The text with the leading whitespace removed\n */\nvar consumeWhitespace = function consumeWhitespace(remaining) {\n var match = remaining.match(/^\\s+/);\n if (match) {\n var consumed = match[0];\n remaining = remaining.substring(consumed.length);\n }\n return remaining;\n};\n\n/**\n * Parse the string and store the parsed representation in the Selector.\n * @param {string} selector The selector string\n * @returns `true` if the selector was successfully parsed, `false` otherwise\n */\nvar parse = function parse(selector) {\n var self = this;\n var remaining = self.inputText = selector;\n var currentQuery = self[0] = newQuery();\n self.length = 1;\n remaining = consumeWhitespace(remaining); // get rid of leading whitespace\n\n for (;;) {\n var exprInfo = consumeExpr(remaining);\n if (exprInfo.expr == null) {\n warn('The selector `' + selector + '`is invalid');\n return false;\n } else {\n var args = exprInfo.match.slice(1);\n\n // let the token populate the selector object in currentQuery\n var ret = exprInfo.expr.populate(self, currentQuery, args);\n if (ret === false) {\n return false; // exit if population failed\n } else if (ret != null) {\n currentQuery = ret; // change the current query to be filled if the expr specifies\n }\n }\n\n remaining = exprInfo.remaining;\n\n // we're done when there's nothing left to parse\n if (remaining.match(/^\\s*$/)) {\n break;\n }\n }\n var lastQ = self[self.length - 1];\n if (self.currentSubject != null) {\n lastQ.subject = self.currentSubject;\n }\n lastQ.edgeCount = self.edgeCount;\n lastQ.compoundCount = self.compoundCount;\n for (var i = 0; i < self.length; i++) {\n var q = self[i];\n\n // in future, this could potentially be allowed if there were operator precedence and detection of invalid combinations\n if (q.compoundCount > 0 && q.edgeCount > 0) {\n warn('The selector `' + selector + '` is invalid because it uses both a compound selector and an edge selector');\n return false;\n }\n if (q.edgeCount > 1) {\n warn('The selector `' + selector + '` is invalid because it uses multiple edge selectors');\n return false;\n } else if (q.edgeCount === 1) {\n warn('The selector `' + selector + '` 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.');\n }\n }\n return true; // success\n};\n\n/**\n * Get the selector represented as a string. This value uses default formatting,\n * so things like spacing may differ from the input text passed to the constructor.\n * @returns {string} The selector string\n */\nvar toString = function toString() {\n if (this.toStringCache != null) {\n return this.toStringCache;\n }\n var clean = function clean(obj) {\n if (obj == null) {\n return '';\n } else {\n return obj;\n }\n };\n var cleanVal = function cleanVal(val) {\n if (string(val)) {\n return '\"' + val + '\"';\n } else {\n return clean(val);\n }\n };\n var space = function space(val) {\n return ' ' + val + ' ';\n };\n var checkToString = function checkToString(check, subject) {\n var type = check.type,\n value = check.value;\n switch (type) {\n case Type.GROUP:\n {\n var group = clean(value);\n return group.substring(0, group.length - 1);\n }\n case Type.DATA_COMPARE:\n {\n var field = check.field,\n operator = check.operator;\n return '[' + field + space(clean(operator)) + cleanVal(value) + ']';\n }\n case Type.DATA_BOOL:\n {\n var _operator = check.operator,\n _field = check.field;\n return '[' + clean(_operator) + _field + ']';\n }\n case Type.DATA_EXIST:\n {\n var _field2 = check.field;\n return '[' + _field2 + ']';\n }\n case Type.META_COMPARE:\n {\n var _operator2 = check.operator,\n _field3 = check.field;\n return '[[' + _field3 + space(clean(_operator2)) + cleanVal(value) + ']]';\n }\n case Type.STATE:\n {\n return value;\n }\n case Type.ID:\n {\n return '#' + value;\n }\n case Type.CLASS:\n {\n return '.' + value;\n }\n case Type.PARENT:\n case Type.CHILD:\n {\n return queryToString(check.parent, subject) + space('>') + queryToString(check.child, subject);\n }\n case Type.ANCESTOR:\n case Type.DESCENDANT:\n {\n return queryToString(check.ancestor, subject) + ' ' + queryToString(check.descendant, subject);\n }\n case Type.COMPOUND_SPLIT:\n {\n var lhs = queryToString(check.left, subject);\n var sub = queryToString(check.subject, subject);\n var rhs = queryToString(check.right, subject);\n return lhs + (lhs.length > 0 ? ' ' : '') + sub + rhs;\n }\n case Type.TRUE:\n {\n return '';\n }\n }\n };\n var queryToString = function queryToString(query, subject) {\n return query.checks.reduce(function (str, chk, i) {\n return str + (subject === query && i === 0 ? '$' : '') + checkToString(chk, subject);\n }, '');\n };\n var str = '';\n for (var i = 0; i < this.length; i++) {\n var query = this[i];\n str += queryToString(query, query.subject);\n if (this.length > 1 && i < this.length - 1) {\n str += ', ';\n }\n }\n this.toStringCache = str;\n return str;\n};\nvar parse$1 = {\n parse: parse,\n toString: toString\n};\n\nvar valCmp = function valCmp(fieldVal, operator, value) {\n var matches;\n var isFieldStr = string(fieldVal);\n var isFieldNum = number$1(fieldVal);\n var isValStr = string(value);\n var fieldStr, valStr;\n var caseInsensitive = false;\n var notExpr = false;\n var isIneqCmp = false;\n if (operator.indexOf('!') >= 0) {\n operator = operator.replace('!', '');\n notExpr = true;\n }\n if (operator.indexOf('@') >= 0) {\n operator = operator.replace('@', '');\n caseInsensitive = true;\n }\n if (isFieldStr || isValStr || caseInsensitive) {\n fieldStr = !isFieldStr && !isFieldNum ? '' : '' + fieldVal;\n valStr = '' + value;\n }\n\n // if we're doing a case insensitive comparison, then we're using a STRING comparison\n // even if we're comparing numbers\n if (caseInsensitive) {\n fieldVal = fieldStr = fieldStr.toLowerCase();\n value = valStr = valStr.toLowerCase();\n }\n switch (operator) {\n case '*=':\n matches = fieldStr.indexOf(valStr) >= 0;\n break;\n case '$=':\n matches = fieldStr.indexOf(valStr, fieldStr.length - valStr.length) >= 0;\n break;\n case '^=':\n matches = fieldStr.indexOf(valStr) === 0;\n break;\n case '=':\n matches = fieldVal === value;\n break;\n case '>':\n isIneqCmp = true;\n matches = fieldVal > value;\n break;\n case '>=':\n isIneqCmp = true;\n matches = fieldVal >= value;\n break;\n case '<':\n isIneqCmp = true;\n matches = fieldVal < value;\n break;\n case '<=':\n isIneqCmp = true;\n matches = fieldVal <= value;\n break;\n default:\n matches = false;\n break;\n }\n\n // apply the not op, but null vals for inequalities should always stay non-matching\n if (notExpr && (fieldVal != null || !isIneqCmp)) {\n matches = !matches;\n }\n return matches;\n};\nvar boolCmp = function boolCmp(fieldVal, operator) {\n switch (operator) {\n case '?':\n return fieldVal ? true : false;\n case '!':\n return fieldVal ? false : true;\n case '^':\n return fieldVal === undefined;\n }\n};\nvar existCmp = function existCmp(fieldVal) {\n return fieldVal !== undefined;\n};\nvar data$1 = function data(ele, field) {\n return ele.data(field);\n};\nvar meta = function meta(ele, field) {\n return ele[field]();\n};\n\n/** A lookup of `match(check, ele)` functions by `Type` int */\nvar match = [];\n\n/**\n * Returns whether the query matches for the element\n * @param query The `{ type, value, ... }` query object\n * @param ele The element to compare against\n*/\nvar matches$1 = function matches(query, ele) {\n return query.checks.every(function (chk) {\n return match[chk.type](chk, ele);\n });\n};\nmatch[Type.GROUP] = function (check, ele) {\n var group = check.value;\n return group === '*' || group === ele.group();\n};\nmatch[Type.STATE] = function (check, ele) {\n var stateSelector = check.value;\n return stateSelectorMatches(stateSelector, ele);\n};\nmatch[Type.ID] = function (check, ele) {\n var id = check.value;\n return ele.id() === id;\n};\nmatch[Type.CLASS] = function (check, ele) {\n var cls = check.value;\n return ele.hasClass(cls);\n};\nmatch[Type.META_COMPARE] = function (check, ele) {\n var field = check.field,\n operator = check.operator,\n value = check.value;\n return valCmp(meta(ele, field), operator, value);\n};\nmatch[Type.DATA_COMPARE] = function (check, ele) {\n var field = check.field,\n operator = check.operator,\n value = check.value;\n return valCmp(data$1(ele, field), operator, value);\n};\nmatch[Type.DATA_BOOL] = function (check, ele) {\n var field = check.field,\n operator = check.operator;\n return boolCmp(data$1(ele, field), operator);\n};\nmatch[Type.DATA_EXIST] = function (check, ele) {\n var field = check.field;\n check.operator;\n return existCmp(data$1(ele, field));\n};\nmatch[Type.UNDIRECTED_EDGE] = function (check, ele) {\n var qA = check.nodes[0];\n var qB = check.nodes[1];\n var src = ele.source();\n var tgt = ele.target();\n return matches$1(qA, src) && matches$1(qB, tgt) || matches$1(qB, src) && matches$1(qA, tgt);\n};\nmatch[Type.NODE_NEIGHBOR] = function (check, ele) {\n return matches$1(check.node, ele) && ele.neighborhood().some(function (n) {\n return n.isNode() && matches$1(check.neighbor, n);\n });\n};\nmatch[Type.DIRECTED_EDGE] = function (check, ele) {\n return matches$1(check.source, ele.source()) && matches$1(check.target, ele.target());\n};\nmatch[Type.NODE_SOURCE] = function (check, ele) {\n return matches$1(check.source, ele) && ele.outgoers().some(function (n) {\n return n.isNode() && matches$1(check.target, n);\n });\n};\nmatch[Type.NODE_TARGET] = function (check, ele) {\n return matches$1(check.target, ele) && ele.incomers().some(function (n) {\n return n.isNode() && matches$1(check.source, n);\n });\n};\nmatch[Type.CHILD] = function (check, ele) {\n return matches$1(check.child, ele) && matches$1(check.parent, ele.parent());\n};\nmatch[Type.PARENT] = function (check, ele) {\n return matches$1(check.parent, ele) && ele.children().some(function (c) {\n return matches$1(check.child, c);\n });\n};\nmatch[Type.DESCENDANT] = function (check, ele) {\n return matches$1(check.descendant, ele) && ele.ancestors().some(function (a) {\n return matches$1(check.ancestor, a);\n });\n};\nmatch[Type.ANCESTOR] = function (check, ele) {\n return matches$1(check.ancestor, ele) && ele.descendants().some(function (d) {\n return matches$1(check.descendant, d);\n });\n};\nmatch[Type.COMPOUND_SPLIT] = function (check, ele) {\n return matches$1(check.subject, ele) && matches$1(check.left, ele) && matches$1(check.right, ele);\n};\nmatch[Type.TRUE] = function () {\n return true;\n};\nmatch[Type.COLLECTION] = function (check, ele) {\n var collection = check.value;\n return collection.has(ele);\n};\nmatch[Type.FILTER] = function (check, ele) {\n var filter = check.value;\n return filter(ele);\n};\n\n// filter an existing collection\nvar filter = function filter(collection) {\n var self = this;\n\n // for 1 id #foo queries, just get the element\n if (self.length === 1 && self[0].checks.length === 1 && self[0].checks[0].type === Type.ID) {\n return collection.getElementById(self[0].checks[0].value).collection();\n }\n var selectorFunction = function selectorFunction(element) {\n for (var j = 0; j < self.length; j++) {\n var query = self[j];\n if (matches$1(query, element)) {\n return true;\n }\n }\n return false;\n };\n if (self.text() == null) {\n selectorFunction = function selectorFunction() {\n return true;\n };\n }\n return collection.filter(selectorFunction);\n}; // filter\n\n// does selector match a single element?\nvar matches = function matches(ele) {\n var self = this;\n for (var j = 0; j < self.length; j++) {\n var query = self[j];\n if (matches$1(query, ele)) {\n return true;\n }\n }\n return false;\n}; // matches\n\nvar matching = {\n matches: matches,\n filter: filter\n};\n\nvar Selector = function Selector(selector) {\n this.inputText = selector;\n this.currentSubject = null;\n this.compoundCount = 0;\n this.edgeCount = 0;\n this.length = 0;\n if (selector == null || string(selector) && selector.match(/^\\s*$/)) ; else if (elementOrCollection(selector)) {\n this.addQuery({\n checks: [{\n type: Type.COLLECTION,\n value: selector.collection()\n }]\n });\n } else if (fn$6(selector)) {\n this.addQuery({\n checks: [{\n type: Type.FILTER,\n value: selector\n }]\n });\n } else if (string(selector)) {\n if (!this.parse(selector)) {\n this.invalid = true;\n }\n } else {\n error('A selector must be created from a string; found ');\n }\n};\nvar selfn = Selector.prototype;\n[parse$1, matching].forEach(function (p) {\n return extend(selfn, p);\n});\nselfn.text = function () {\n return this.inputText;\n};\nselfn.size = function () {\n return this.length;\n};\nselfn.eq = function (i) {\n return this[i];\n};\nselfn.sameText = function (otherSel) {\n return !this.invalid && !otherSel.invalid && this.text() === otherSel.text();\n};\nselfn.addQuery = function (q) {\n this[this.length++] = q;\n};\nselfn.selector = selfn.toString;\n\nvar elesfn$g = {\n allAre: function allAre(selector) {\n var selObj = new Selector(selector);\n return this.every(function (ele) {\n return selObj.matches(ele);\n });\n },\n is: function is(selector) {\n var selObj = new Selector(selector);\n return this.some(function (ele) {\n return selObj.matches(ele);\n });\n },\n some: function some(fn, thisArg) {\n for (var i = 0; i < this.length; i++) {\n var ret = !thisArg ? fn(this[i], i, this) : fn.apply(thisArg, [this[i], i, this]);\n if (ret) {\n return true;\n }\n }\n return false;\n },\n every: function every(fn, thisArg) {\n for (var i = 0; i < this.length; i++) {\n var ret = !thisArg ? fn(this[i], i, this) : fn.apply(thisArg, [this[i], i, this]);\n if (!ret) {\n return false;\n }\n }\n return true;\n },\n same: function same(collection) {\n // cheap collection ref check\n if (this === collection) {\n return true;\n }\n collection = this.cy().collection(collection);\n var thisLength = this.length;\n var collectionLength = collection.length;\n\n // cheap length check\n if (thisLength !== collectionLength) {\n return false;\n }\n\n // cheap element ref check\n if (thisLength === 1) {\n return this[0] === collection[0];\n }\n return this.every(function (ele) {\n return collection.hasElementWithId(ele.id());\n });\n },\n anySame: function anySame(collection) {\n collection = this.cy().collection(collection);\n return this.some(function (ele) {\n return collection.hasElementWithId(ele.id());\n });\n },\n allAreNeighbors: function allAreNeighbors(collection) {\n collection = this.cy().collection(collection);\n var nhood = this.neighborhood();\n return collection.every(function (ele) {\n return nhood.hasElementWithId(ele.id());\n });\n },\n contains: function contains(collection) {\n collection = this.cy().collection(collection);\n var self = this;\n return collection.every(function (ele) {\n return self.hasElementWithId(ele.id());\n });\n }\n};\nelesfn$g.allAreNeighbours = elesfn$g.allAreNeighbors;\nelesfn$g.has = elesfn$g.contains;\nelesfn$g.equal = elesfn$g.equals = elesfn$g.same;\n\nvar cache = function cache(fn, name) {\n return function traversalCache(arg1, arg2, arg3, arg4) {\n var selectorOrEles = arg1;\n var eles = this;\n var key;\n if (selectorOrEles == null) {\n key = '';\n } else if (elementOrCollection(selectorOrEles) && selectorOrEles.length === 1) {\n key = selectorOrEles.id();\n }\n if (eles.length === 1 && key) {\n var _p = eles[0]._private;\n var tch = _p.traversalCache = _p.traversalCache || {};\n var ch = tch[name] = tch[name] || [];\n var hash = hashString(key);\n var cacheHit = ch[hash];\n if (cacheHit) {\n return cacheHit;\n } else {\n return ch[hash] = fn.call(eles, arg1, arg2, arg3, arg4);\n }\n } else {\n return fn.call(eles, arg1, arg2, arg3, arg4);\n }\n };\n};\n\nvar elesfn$f = {\n parent: function parent(selector) {\n var parents = [];\n\n // optimisation for single ele call\n if (this.length === 1) {\n var parent = this[0]._private.parent;\n if (parent) {\n return parent;\n }\n }\n for (var i = 0; i < this.length; i++) {\n var ele = this[i];\n var _parent = ele._private.parent;\n if (_parent) {\n parents.push(_parent);\n }\n }\n return this.spawn(parents, true).filter(selector);\n },\n parents: function parents(selector) {\n var parents = [];\n var eles = this.parent();\n while (eles.nonempty()) {\n for (var i = 0; i < eles.length; i++) {\n var ele = eles[i];\n parents.push(ele);\n }\n eles = eles.parent();\n }\n return this.spawn(parents, true).filter(selector);\n },\n commonAncestors: function commonAncestors(selector) {\n var ancestors;\n for (var i = 0; i < this.length; i++) {\n var ele = this[i];\n var parents = ele.parents();\n ancestors = ancestors || parents;\n ancestors = ancestors.intersect(parents); // current list must be common with current ele parents set\n }\n\n return ancestors.filter(selector);\n },\n orphans: function orphans(selector) {\n return this.stdFilter(function (ele) {\n return ele.isOrphan();\n }).filter(selector);\n },\n nonorphans: function nonorphans(selector) {\n return this.stdFilter(function (ele) {\n return ele.isChild();\n }).filter(selector);\n },\n children: cache(function (selector) {\n var children = [];\n for (var i = 0; i < this.length; i++) {\n var ele = this[i];\n var eleChildren = ele._private.children;\n for (var j = 0; j < eleChildren.length; j++) {\n children.push(eleChildren[j]);\n }\n }\n return this.spawn(children, true).filter(selector);\n }, 'children'),\n siblings: function siblings(selector) {\n return this.parent().children().not(this).filter(selector);\n },\n isParent: function isParent() {\n var ele = this[0];\n if (ele) {\n return ele.isNode() && ele._private.children.length !== 0;\n }\n },\n isChildless: function isChildless() {\n var ele = this[0];\n if (ele) {\n return ele.isNode() && ele._private.children.length === 0;\n }\n },\n isChild: function isChild() {\n var ele = this[0];\n if (ele) {\n return ele.isNode() && ele._private.parent != null;\n }\n },\n isOrphan: function isOrphan() {\n var ele = this[0];\n if (ele) {\n return ele.isNode() && ele._private.parent == null;\n }\n },\n descendants: function descendants(selector) {\n var elements = [];\n function add(eles) {\n for (var i = 0; i < eles.length; i++) {\n var ele = eles[i];\n elements.push(ele);\n if (ele.children().nonempty()) {\n add(ele.children());\n }\n }\n }\n add(this.children());\n return this.spawn(elements, true).filter(selector);\n }\n};\nfunction forEachCompound(eles, fn, includeSelf, recursiveStep) {\n var q = [];\n var did = new Set$1();\n var cy = eles.cy();\n var hasCompounds = cy.hasCompoundNodes();\n for (var i = 0; i < eles.length; i++) {\n var ele = eles[i];\n if (includeSelf) {\n q.push(ele);\n } else if (hasCompounds) {\n recursiveStep(q, did, ele);\n }\n }\n while (q.length > 0) {\n var _ele = q.shift();\n fn(_ele);\n did.add(_ele.id());\n if (hasCompounds) {\n recursiveStep(q, did, _ele);\n }\n }\n return eles;\n}\nfunction addChildren(q, did, ele) {\n if (ele.isParent()) {\n var children = ele._private.children;\n for (var i = 0; i < children.length; i++) {\n var child = children[i];\n if (!did.has(child.id())) {\n q.push(child);\n }\n }\n }\n}\n\n// very efficient version of eles.add( eles.descendants() ).forEach()\n// for internal use\nelesfn$f.forEachDown = function (fn) {\n var includeSelf = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n return forEachCompound(this, fn, includeSelf, addChildren);\n};\nfunction addParent(q, did, ele) {\n if (ele.isChild()) {\n var parent = ele._private.parent;\n if (!did.has(parent.id())) {\n q.push(parent);\n }\n }\n}\nelesfn$f.forEachUp = function (fn) {\n var includeSelf = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n return forEachCompound(this, fn, includeSelf, addParent);\n};\nfunction addParentAndChildren(q, did, ele) {\n addParent(q, did, ele);\n addChildren(q, did, ele);\n}\nelesfn$f.forEachUpAndDown = function (fn) {\n var includeSelf = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n return forEachCompound(this, fn, includeSelf, addParentAndChildren);\n};\n\n// aliases\nelesfn$f.ancestors = elesfn$f.parents;\n\nvar fn$5, elesfn$e;\nfn$5 = elesfn$e = {\n data: define.data({\n field: 'data',\n bindingEvent: 'data',\n allowBinding: true,\n allowSetting: true,\n settingEvent: 'data',\n settingTriggersEvent: true,\n triggerFnName: 'trigger',\n allowGetting: true,\n immutableKeys: {\n 'id': true,\n 'source': true,\n 'target': true,\n 'parent': true\n },\n updateStyle: true\n }),\n removeData: define.removeData({\n field: 'data',\n event: 'data',\n triggerFnName: 'trigger',\n triggerEvent: true,\n immutableKeys: {\n 'id': true,\n 'source': true,\n 'target': true,\n 'parent': true\n },\n updateStyle: true\n }),\n scratch: define.data({\n field: 'scratch',\n bindingEvent: 'scratch',\n allowBinding: true,\n allowSetting: true,\n settingEvent: 'scratch',\n settingTriggersEvent: true,\n triggerFnName: 'trigger',\n allowGetting: true,\n updateStyle: true\n }),\n removeScratch: define.removeData({\n field: 'scratch',\n event: 'scratch',\n triggerFnName: 'trigger',\n triggerEvent: true,\n updateStyle: true\n }),\n rscratch: define.data({\n field: 'rscratch',\n allowBinding: false,\n allowSetting: true,\n settingTriggersEvent: false,\n allowGetting: true\n }),\n removeRscratch: define.removeData({\n field: 'rscratch',\n triggerEvent: false\n }),\n id: function id() {\n var ele = this[0];\n if (ele) {\n return ele._private.data.id;\n }\n }\n};\n\n// aliases\nfn$5.attr = fn$5.data;\nfn$5.removeAttr = fn$5.removeData;\nvar data = elesfn$e;\n\nvar elesfn$d = {};\nfunction defineDegreeFunction(callback) {\n return function (includeLoops) {\n var self = this;\n if (includeLoops === undefined) {\n includeLoops = true;\n }\n if (self.length === 0) {\n return;\n }\n if (self.isNode() && !self.removed()) {\n var degree = 0;\n var node = self[0];\n var connectedEdges = node._private.edges;\n for (var i = 0; i < connectedEdges.length; i++) {\n var edge = connectedEdges[i];\n if (!includeLoops && edge.isLoop()) {\n continue;\n }\n degree += callback(node, edge);\n }\n return degree;\n } else {\n return;\n }\n };\n}\nextend(elesfn$d, {\n degree: defineDegreeFunction(function (node, edge) {\n if (edge.source().same(edge.target())) {\n return 2;\n } else {\n return 1;\n }\n }),\n indegree: defineDegreeFunction(function (node, edge) {\n if (edge.target().same(node)) {\n return 1;\n } else {\n return 0;\n }\n }),\n outdegree: defineDegreeFunction(function (node, edge) {\n if (edge.source().same(node)) {\n return 1;\n } else {\n return 0;\n }\n })\n});\nfunction defineDegreeBoundsFunction(degreeFn, callback) {\n return function (includeLoops) {\n var ret;\n var nodes = this.nodes();\n for (var i = 0; i < nodes.length; i++) {\n var ele = nodes[i];\n var degree = ele[degreeFn](includeLoops);\n if (degree !== undefined && (ret === undefined || callback(degree, ret))) {\n ret = degree;\n }\n }\n return ret;\n };\n}\nextend(elesfn$d, {\n minDegree: defineDegreeBoundsFunction('degree', function (degree, min) {\n return degree < min;\n }),\n maxDegree: defineDegreeBoundsFunction('degree', function (degree, max) {\n return degree > max;\n }),\n minIndegree: defineDegreeBoundsFunction('indegree', function (degree, min) {\n return degree < min;\n }),\n maxIndegree: defineDegreeBoundsFunction('indegree', function (degree, max) {\n return degree > max;\n }),\n minOutdegree: defineDegreeBoundsFunction('outdegree', function (degree, min) {\n return degree < min;\n }),\n maxOutdegree: defineDegreeBoundsFunction('outdegree', function (degree, max) {\n return degree > max;\n })\n});\nextend(elesfn$d, {\n totalDegree: function totalDegree(includeLoops) {\n var total = 0;\n var nodes = this.nodes();\n for (var i = 0; i < nodes.length; i++) {\n total += nodes[i].degree(includeLoops);\n }\n return total;\n }\n});\n\nvar fn$4, elesfn$c;\nvar beforePositionSet = function beforePositionSet(eles, newPos, silent) {\n for (var i = 0; i < eles.length; i++) {\n var ele = eles[i];\n if (!ele.locked()) {\n var oldPos = ele._private.position;\n var delta = {\n x: newPos.x != null ? newPos.x - oldPos.x : 0,\n y: newPos.y != null ? newPos.y - oldPos.y : 0\n };\n if (ele.isParent() && !(delta.x === 0 && delta.y === 0)) {\n ele.children().shift(delta, silent);\n }\n ele.dirtyBoundingBoxCache();\n }\n }\n};\nvar positionDef = {\n field: 'position',\n bindingEvent: 'position',\n allowBinding: true,\n allowSetting: true,\n settingEvent: 'position',\n settingTriggersEvent: true,\n triggerFnName: 'emitAndNotify',\n allowGetting: true,\n validKeys: ['x', 'y'],\n beforeGet: function beforeGet(ele) {\n ele.updateCompoundBounds();\n },\n beforeSet: function beforeSet(eles, newPos) {\n beforePositionSet(eles, newPos, false);\n },\n onSet: function onSet(eles) {\n eles.dirtyCompoundBoundsCache();\n },\n canSet: function canSet(ele) {\n return !ele.locked();\n }\n};\nfn$4 = elesfn$c = {\n position: define.data(positionDef),\n // position but no notification to renderer\n silentPosition: define.data(extend({}, positionDef, {\n allowBinding: false,\n allowSetting: true,\n settingTriggersEvent: false,\n allowGetting: false,\n beforeSet: function beforeSet(eles, newPos) {\n beforePositionSet(eles, newPos, true);\n },\n onSet: function onSet(eles) {\n eles.dirtyCompoundBoundsCache();\n }\n })),\n positions: function positions(pos, silent) {\n if (plainObject(pos)) {\n if (silent) {\n this.silentPosition(pos);\n } else {\n this.position(pos);\n }\n } else if (fn$6(pos)) {\n var _fn = pos;\n var cy = this.cy();\n cy.startBatch();\n for (var i = 0; i < this.length; i++) {\n var ele = this[i];\n var _pos = void 0;\n if (_pos = _fn(ele, i)) {\n if (silent) {\n ele.silentPosition(_pos);\n } else {\n ele.position(_pos);\n }\n }\n }\n cy.endBatch();\n }\n return this; // chaining\n },\n\n silentPositions: function silentPositions(pos) {\n return this.positions(pos, true);\n },\n shift: function shift(dim, val, silent) {\n var delta;\n if (plainObject(dim)) {\n delta = {\n x: number$1(dim.x) ? dim.x : 0,\n y: number$1(dim.y) ? dim.y : 0\n };\n silent = val;\n } else if (string(dim) && number$1(val)) {\n delta = {\n x: 0,\n y: 0\n };\n delta[dim] = val;\n }\n if (delta != null) {\n var cy = this.cy();\n cy.startBatch();\n for (var i = 0; i < this.length; i++) {\n var ele = this[i];\n\n // exclude any node that is a descendant of the calling collection\n if (cy.hasCompoundNodes() && ele.isChild() && ele.ancestors().anySame(this)) {\n continue;\n }\n var pos = ele.position();\n var newPos = {\n x: pos.x + delta.x,\n y: pos.y + delta.y\n };\n if (silent) {\n ele.silentPosition(newPos);\n } else {\n ele.position(newPos);\n }\n }\n cy.endBatch();\n }\n return this;\n },\n silentShift: function silentShift(dim, val) {\n if (plainObject(dim)) {\n this.shift(dim, true);\n } else if (string(dim) && number$1(val)) {\n this.shift(dim, val, true);\n }\n return this;\n },\n // get/set the rendered (i.e. on screen) positon of the element\n renderedPosition: function renderedPosition(dim, val) {\n var ele = this[0];\n var cy = this.cy();\n var zoom = cy.zoom();\n var pan = cy.pan();\n var rpos = plainObject(dim) ? dim : undefined;\n var setting = rpos !== undefined || val !== undefined && string(dim);\n if (ele && ele.isNode()) {\n // must have an element and must be a node to return position\n if (setting) {\n for (var i = 0; i < this.length; i++) {\n var _ele = this[i];\n if (val !== undefined) {\n // set one dimension\n _ele.position(dim, (val - pan[dim]) / zoom);\n } else if (rpos !== undefined) {\n // set whole position\n _ele.position(renderedToModelPosition(rpos, zoom, pan));\n }\n }\n } else {\n // getting\n var pos = ele.position();\n rpos = modelToRenderedPosition(pos, zoom, pan);\n if (dim === undefined) {\n // then return the whole rendered position\n return rpos;\n } else {\n // then return the specified dimension\n return rpos[dim];\n }\n }\n } else if (!setting) {\n return undefined; // for empty collection case\n }\n\n return this; // chaining\n },\n\n // get/set the position relative to the parent\n relativePosition: function relativePosition(dim, val) {\n var ele = this[0];\n var cy = this.cy();\n var ppos = plainObject(dim) ? dim : undefined;\n var setting = ppos !== undefined || val !== undefined && string(dim);\n var hasCompoundNodes = cy.hasCompoundNodes();\n if (ele && ele.isNode()) {\n // must have an element and must be a node to return position\n if (setting) {\n for (var i = 0; i < this.length; i++) {\n var _ele2 = this[i];\n var parent = hasCompoundNodes ? _ele2.parent() : null;\n var hasParent = parent && parent.length > 0;\n var relativeToParent = hasParent;\n if (hasParent) {\n parent = parent[0];\n }\n var origin = relativeToParent ? parent.position() : {\n x: 0,\n y: 0\n };\n if (val !== undefined) {\n // set one dimension\n _ele2.position(dim, val + origin[dim]);\n } else if (ppos !== undefined) {\n // set whole position\n _ele2.position({\n x: ppos.x + origin.x,\n y: ppos.y + origin.y\n });\n }\n }\n } else {\n // getting\n var pos = ele.position();\n var _parent = hasCompoundNodes ? ele.parent() : null;\n var _hasParent = _parent && _parent.length > 0;\n var _relativeToParent = _hasParent;\n if (_hasParent) {\n _parent = _parent[0];\n }\n var _origin = _relativeToParent ? _parent.position() : {\n x: 0,\n y: 0\n };\n ppos = {\n x: pos.x - _origin.x,\n y: pos.y - _origin.y\n };\n if (dim === undefined) {\n // then return the whole rendered position\n return ppos;\n } else {\n // then return the specified dimension\n return ppos[dim];\n }\n }\n } else if (!setting) {\n return undefined; // for empty collection case\n }\n\n return this; // chaining\n }\n};\n\n// aliases\nfn$4.modelPosition = fn$4.point = fn$4.position;\nfn$4.modelPositions = fn$4.points = fn$4.positions;\nfn$4.renderedPoint = fn$4.renderedPosition;\nfn$4.relativePoint = fn$4.relativePosition;\nvar position = elesfn$c;\n\nvar fn$3, elesfn$b;\nfn$3 = elesfn$b = {};\nelesfn$b.renderedBoundingBox = function (options) {\n var bb = this.boundingBox(options);\n var cy = this.cy();\n var zoom = cy.zoom();\n var pan = cy.pan();\n var x1 = bb.x1 * zoom + pan.x;\n var x2 = bb.x2 * zoom + pan.x;\n var y1 = bb.y1 * zoom + pan.y;\n var y2 = bb.y2 * zoom + pan.y;\n return {\n x1: x1,\n x2: x2,\n y1: y1,\n y2: y2,\n w: x2 - x1,\n h: y2 - y1\n };\n};\nelesfn$b.dirtyCompoundBoundsCache = function () {\n var silent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var cy = this.cy();\n if (!cy.styleEnabled() || !cy.hasCompoundNodes()) {\n return this;\n }\n this.forEachUp(function (ele) {\n if (ele.isParent()) {\n var _p = ele._private;\n _p.compoundBoundsClean = false;\n _p.bbCache = null;\n if (!silent) {\n ele.emitAndNotify('bounds');\n }\n }\n });\n return this;\n};\nelesfn$b.updateCompoundBounds = function () {\n var force = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var cy = this.cy();\n\n // not possible to do on non-compound graphs or with the style disabled\n if (!cy.styleEnabled() || !cy.hasCompoundNodes()) {\n return this;\n }\n\n // save cycles when batching -- but bounds will be stale (or not exist yet)\n if (!force && cy.batching()) {\n return this;\n }\n function update(parent) {\n if (!parent.isParent()) {\n return;\n }\n var _p = parent._private;\n var children = parent.children();\n var includeLabels = parent.pstyle('compound-sizing-wrt-labels').value === 'include';\n var min = {\n width: {\n val: parent.pstyle('min-width').pfValue,\n left: parent.pstyle('min-width-bias-left'),\n right: parent.pstyle('min-width-bias-right')\n },\n height: {\n val: parent.pstyle('min-height').pfValue,\n top: parent.pstyle('min-height-bias-top'),\n bottom: parent.pstyle('min-height-bias-bottom')\n }\n };\n var bb = children.boundingBox({\n includeLabels: includeLabels,\n includeOverlays: false,\n // updating the compound bounds happens outside of the regular\n // cache cycle (i.e. before fired events)\n useCache: false\n });\n var pos = _p.position;\n\n // if children take up zero area then keep position and fall back on stylesheet w/h\n if (bb.w === 0 || bb.h === 0) {\n bb = {\n w: parent.pstyle('width').pfValue,\n h: parent.pstyle('height').pfValue\n };\n bb.x1 = pos.x - bb.w / 2;\n bb.x2 = pos.x + bb.w / 2;\n bb.y1 = pos.y - bb.h / 2;\n bb.y2 = pos.y + bb.h / 2;\n }\n function computeBiasValues(propDiff, propBias, propBiasComplement) {\n var biasDiff = 0;\n var biasComplementDiff = 0;\n var biasTotal = propBias + propBiasComplement;\n if (propDiff > 0 && biasTotal > 0) {\n biasDiff = propBias / biasTotal * propDiff;\n biasComplementDiff = propBiasComplement / biasTotal * propDiff;\n }\n return {\n biasDiff: biasDiff,\n biasComplementDiff: biasComplementDiff\n };\n }\n function computePaddingValues(width, height, paddingObject, relativeTo) {\n // Assuming percentage is number from 0 to 1\n if (paddingObject.units === '%') {\n switch (relativeTo) {\n case 'width':\n return width > 0 ? paddingObject.pfValue * width : 0;\n case 'height':\n return height > 0 ? paddingObject.pfValue * height : 0;\n case 'average':\n return width > 0 && height > 0 ? paddingObject.pfValue * (width + height) / 2 : 0;\n case 'min':\n return width > 0 && height > 0 ? width > height ? paddingObject.pfValue * height : paddingObject.pfValue * width : 0;\n case 'max':\n return width > 0 && height > 0 ? width > height ? paddingObject.pfValue * width : paddingObject.pfValue * height : 0;\n default:\n return 0;\n }\n } else if (paddingObject.units === 'px') {\n return paddingObject.pfValue;\n } else {\n return 0;\n }\n }\n var leftVal = min.width.left.value;\n if (min.width.left.units === 'px' && min.width.val > 0) {\n leftVal = leftVal * 100 / min.width.val;\n }\n var rightVal = min.width.right.value;\n if (min.width.right.units === 'px' && min.width.val > 0) {\n rightVal = rightVal * 100 / min.width.val;\n }\n var topVal = min.height.top.value;\n if (min.height.top.units === 'px' && min.height.val > 0) {\n topVal = topVal * 100 / min.height.val;\n }\n var bottomVal = min.height.bottom.value;\n if (min.height.bottom.units === 'px' && min.height.val > 0) {\n bottomVal = bottomVal * 100 / min.height.val;\n }\n var widthBiasDiffs = computeBiasValues(min.width.val - bb.w, leftVal, rightVal);\n var diffLeft = widthBiasDiffs.biasDiff;\n var diffRight = widthBiasDiffs.biasComplementDiff;\n var heightBiasDiffs = computeBiasValues(min.height.val - bb.h, topVal, bottomVal);\n var diffTop = heightBiasDiffs.biasDiff;\n var diffBottom = heightBiasDiffs.biasComplementDiff;\n _p.autoPadding = computePaddingValues(bb.w, bb.h, parent.pstyle('padding'), parent.pstyle('padding-relative-to').value);\n _p.autoWidth = Math.max(bb.w, min.width.val);\n pos.x = (-diffLeft + bb.x1 + bb.x2 + diffRight) / 2;\n _p.autoHeight = Math.max(bb.h, min.height.val);\n pos.y = (-diffTop + bb.y1 + bb.y2 + diffBottom) / 2;\n }\n for (var i = 0; i < this.length; i++) {\n var ele = this[i];\n var _p = ele._private;\n if (!_p.compoundBoundsClean || force) {\n update(ele);\n if (!cy.batching()) {\n _p.compoundBoundsClean = true;\n }\n }\n }\n return this;\n};\nvar noninf = function noninf(x) {\n if (x === Infinity || x === -Infinity) {\n return 0;\n }\n return x;\n};\nvar updateBounds = function updateBounds(b, x1, y1, x2, y2) {\n // don't update with zero area boxes\n if (x2 - x1 === 0 || y2 - y1 === 0) {\n return;\n }\n\n // don't update with null dim\n if (x1 == null || y1 == null || x2 == null || y2 == null) {\n return;\n }\n b.x1 = x1 < b.x1 ? x1 : b.x1;\n b.x2 = x2 > b.x2 ? x2 : b.x2;\n b.y1 = y1 < b.y1 ? y1 : b.y1;\n b.y2 = y2 > b.y2 ? y2 : b.y2;\n b.w = b.x2 - b.x1;\n b.h = b.y2 - b.y1;\n};\nvar updateBoundsFromBox = function updateBoundsFromBox(b, b2) {\n if (b2 == null) {\n return b;\n }\n return updateBounds(b, b2.x1, b2.y1, b2.x2, b2.y2);\n};\nvar prefixedProperty = function prefixedProperty(obj, field, prefix) {\n return getPrefixedProperty(obj, field, prefix);\n};\nvar updateBoundsFromArrow = function updateBoundsFromArrow(bounds, ele, prefix) {\n if (ele.cy().headless()) {\n return;\n }\n var _p = ele._private;\n var rstyle = _p.rstyle;\n var halfArW = rstyle.arrowWidth / 2;\n var arrowType = ele.pstyle(prefix + '-arrow-shape').value;\n var x;\n var y;\n if (arrowType !== 'none') {\n if (prefix === 'source') {\n x = rstyle.srcX;\n y = rstyle.srcY;\n } else if (prefix === 'target') {\n x = rstyle.tgtX;\n y = rstyle.tgtY;\n } else {\n x = rstyle.midX;\n y = rstyle.midY;\n }\n\n // always store the individual arrow bounds\n var bbs = _p.arrowBounds = _p.arrowBounds || {};\n var bb = bbs[prefix] = bbs[prefix] || {};\n bb.x1 = x - halfArW;\n bb.y1 = y - halfArW;\n bb.x2 = x + halfArW;\n bb.y2 = y + halfArW;\n bb.w = bb.x2 - bb.x1;\n bb.h = bb.y2 - bb.y1;\n expandBoundingBox(bb, 1);\n updateBounds(bounds, bb.x1, bb.y1, bb.x2, bb.y2);\n }\n};\nvar updateBoundsFromLabel = function updateBoundsFromLabel(bounds, ele, prefix) {\n if (ele.cy().headless()) {\n return;\n }\n var prefixDash;\n if (prefix) {\n prefixDash = prefix + '-';\n } else {\n prefixDash = '';\n }\n var _p = ele._private;\n var rstyle = _p.rstyle;\n var label = ele.pstyle(prefixDash + 'label').strValue;\n if (label) {\n var halign = ele.pstyle('text-halign');\n var valign = ele.pstyle('text-valign');\n var labelWidth = prefixedProperty(rstyle, 'labelWidth', prefix);\n var labelHeight = prefixedProperty(rstyle, 'labelHeight', prefix);\n var labelX = prefixedProperty(rstyle, 'labelX', prefix);\n var labelY = prefixedProperty(rstyle, 'labelY', prefix);\n var marginX = ele.pstyle(prefixDash + 'text-margin-x').pfValue;\n var marginY = ele.pstyle(prefixDash + 'text-margin-y').pfValue;\n var isEdge = ele.isEdge();\n var rotation = ele.pstyle(prefixDash + 'text-rotation');\n var outlineWidth = ele.pstyle('text-outline-width').pfValue;\n var borderWidth = ele.pstyle('text-border-width').pfValue;\n var halfBorderWidth = borderWidth / 2;\n var padding = ele.pstyle('text-background-padding').pfValue;\n var marginOfError = 2; // expand to work around browser dimension inaccuracies\n\n var lh = labelHeight;\n var lw = labelWidth;\n var lw_2 = lw / 2;\n var lh_2 = lh / 2;\n var lx1, lx2, ly1, ly2;\n if (isEdge) {\n lx1 = labelX - lw_2;\n lx2 = labelX + lw_2;\n ly1 = labelY - lh_2;\n ly2 = labelY + lh_2;\n } else {\n switch (halign.value) {\n case 'left':\n lx1 = labelX - lw;\n lx2 = labelX;\n break;\n case 'center':\n lx1 = labelX - lw_2;\n lx2 = labelX + lw_2;\n break;\n case 'right':\n lx1 = labelX;\n lx2 = labelX + lw;\n break;\n }\n switch (valign.value) {\n case 'top':\n ly1 = labelY - lh;\n ly2 = labelY;\n break;\n case 'center':\n ly1 = labelY - lh_2;\n ly2 = labelY + lh_2;\n break;\n case 'bottom':\n ly1 = labelY;\n ly2 = labelY + lh;\n break;\n }\n }\n\n // shift by margin and expand by outline and border\n lx1 += marginX - Math.max(outlineWidth, halfBorderWidth) - padding - marginOfError;\n lx2 += marginX + Math.max(outlineWidth, halfBorderWidth) + padding + marginOfError;\n ly1 += marginY - Math.max(outlineWidth, halfBorderWidth) - padding - marginOfError;\n ly2 += marginY + Math.max(outlineWidth, halfBorderWidth) + padding + marginOfError;\n\n // always store the unrotated label bounds separately\n var bbPrefix = prefix || 'main';\n var bbs = _p.labelBounds;\n var bb = bbs[bbPrefix] = bbs[bbPrefix] || {};\n bb.x1 = lx1;\n bb.y1 = ly1;\n bb.x2 = lx2;\n bb.y2 = ly2;\n bb.w = lx2 - lx1;\n bb.h = ly2 - ly1;\n var isAutorotate = isEdge && rotation.strValue === 'autorotate';\n var isPfValue = rotation.pfValue != null && rotation.pfValue !== 0;\n if (isAutorotate || isPfValue) {\n var theta = isAutorotate ? prefixedProperty(_p.rstyle, 'labelAngle', prefix) : rotation.pfValue;\n var cos = Math.cos(theta);\n var sin = Math.sin(theta);\n\n // rotation point (default value for center-center)\n var xo = (lx1 + lx2) / 2;\n var yo = (ly1 + ly2) / 2;\n if (!isEdge) {\n switch (halign.value) {\n case 'left':\n xo = lx2;\n break;\n case 'right':\n xo = lx1;\n break;\n }\n switch (valign.value) {\n case 'top':\n yo = ly2;\n break;\n case 'bottom':\n yo = ly1;\n break;\n }\n }\n var rotate = function rotate(x, y) {\n x = x - xo;\n y = y - yo;\n return {\n x: x * cos - y * sin + xo,\n y: x * sin + y * cos + yo\n };\n };\n var px1y1 = rotate(lx1, ly1);\n var px1y2 = rotate(lx1, ly2);\n var px2y1 = rotate(lx2, ly1);\n var px2y2 = rotate(lx2, ly2);\n lx1 = Math.min(px1y1.x, px1y2.x, px2y1.x, px2y2.x);\n lx2 = Math.max(px1y1.x, px1y2.x, px2y1.x, px2y2.x);\n ly1 = Math.min(px1y1.y, px1y2.y, px2y1.y, px2y2.y);\n ly2 = Math.max(px1y1.y, px1y2.y, px2y1.y, px2y2.y);\n }\n var bbPrefixRot = bbPrefix + 'Rot';\n var bbRot = bbs[bbPrefixRot] = bbs[bbPrefixRot] || {};\n bbRot.x1 = lx1;\n bbRot.y1 = ly1;\n bbRot.x2 = lx2;\n bbRot.y2 = ly2;\n bbRot.w = lx2 - lx1;\n bbRot.h = ly2 - ly1;\n updateBounds(bounds, lx1, ly1, lx2, ly2);\n updateBounds(_p.labelBounds.all, lx1, ly1, lx2, ly2);\n }\n return bounds;\n};\nvar updateBoundsFromOutline = function updateBoundsFromOutline(bounds, ele) {\n if (ele.cy().headless()) {\n return;\n }\n var outlineOpacity = ele.pstyle('outline-opacity').value;\n var outlineWidth = ele.pstyle('outline-width').value;\n if (outlineOpacity > 0 && outlineWidth > 0) {\n var outlineOffset = ele.pstyle('outline-offset').value;\n var nodeShape = ele.pstyle('shape').value;\n var outlineSize = outlineWidth + outlineOffset;\n var scaleX = (bounds.w + outlineSize * 2) / bounds.w;\n var scaleY = (bounds.h + outlineSize * 2) / bounds.h;\n var xOffset = 0;\n var yOffset = 0;\n if ([\"diamond\", \"pentagon\", \"round-triangle\"].includes(nodeShape)) {\n scaleX = (bounds.w + outlineSize * 2.4) / bounds.w;\n yOffset = -outlineSize / 3.6;\n } else if ([\"concave-hexagon\", \"rhomboid\", \"right-rhomboid\"].includes(nodeShape)) {\n scaleX = (bounds.w + outlineSize * 2.4) / bounds.w;\n } else if (nodeShape === \"star\") {\n scaleX = (bounds.w + outlineSize * 2.8) / bounds.w;\n scaleY = (bounds.h + outlineSize * 2.6) / bounds.h;\n yOffset = -outlineSize / 3.8;\n } else if (nodeShape === \"triangle\") {\n scaleX = (bounds.w + outlineSize * 2.8) / bounds.w;\n scaleY = (bounds.h + outlineSize * 2.4) / bounds.h;\n yOffset = -outlineSize / 1.4;\n } else if (nodeShape === \"vee\") {\n scaleX = (bounds.w + outlineSize * 4.4) / bounds.w;\n scaleY = (bounds.h + outlineSize * 3.8) / bounds.h;\n yOffset = -outlineSize * .5;\n }\n var hDelta = bounds.h * scaleY - bounds.h;\n var wDelta = bounds.w * scaleX - bounds.w;\n expandBoundingBoxSides(bounds, [Math.ceil(hDelta / 2), Math.ceil(wDelta / 2)]);\n if (xOffset != 0 || yOffset !== 0) {\n var oBounds = shiftBoundingBox(bounds, xOffset, yOffset);\n updateBoundingBox(bounds, oBounds);\n }\n }\n};\n\n// get the bounding box of the elements (in raw model position)\nvar boundingBoxImpl = function boundingBoxImpl(ele, options) {\n var cy = ele._private.cy;\n var styleEnabled = cy.styleEnabled();\n var headless = cy.headless();\n var bounds = makeBoundingBox();\n var _p = ele._private;\n var isNode = ele.isNode();\n var isEdge = ele.isEdge();\n var ex1, ex2, ey1, ey2; // extrema of body / lines\n var x, y; // node pos\n var rstyle = _p.rstyle;\n var manualExpansion = isNode && styleEnabled ? ele.pstyle('bounds-expansion').pfValue : [0];\n\n // must use `display` prop only, as reading `compound.width()` causes recursion\n // (other factors like width values will be considered later in this function anyway)\n var isDisplayed = function isDisplayed(ele) {\n return ele.pstyle('display').value !== 'none';\n };\n var displayed = !styleEnabled || isDisplayed(ele)\n\n // must take into account connected nodes b/c of implicit edge hiding on display:none node\n && (!isEdge || isDisplayed(ele.source()) && isDisplayed(ele.target()));\n if (displayed) {\n // displayed suffices, since we will find zero area eles anyway\n var overlayOpacity = 0;\n var overlayPadding = 0;\n if (styleEnabled && options.includeOverlays) {\n overlayOpacity = ele.pstyle('overlay-opacity').value;\n if (overlayOpacity !== 0) {\n overlayPadding = ele.pstyle('overlay-padding').value;\n }\n }\n var underlayOpacity = 0;\n var underlayPadding = 0;\n if (styleEnabled && options.includeUnderlays) {\n underlayOpacity = ele.pstyle('underlay-opacity').value;\n if (underlayOpacity !== 0) {\n underlayPadding = ele.pstyle('underlay-padding').value;\n }\n }\n var padding = Math.max(overlayPadding, underlayPadding);\n var w = 0;\n var wHalf = 0;\n if (styleEnabled) {\n w = ele.pstyle('width').pfValue;\n wHalf = w / 2;\n }\n if (isNode && options.includeNodes) {\n var pos = ele.position();\n x = pos.x;\n y = pos.y;\n var _w = ele.outerWidth();\n var halfW = _w / 2;\n var h = ele.outerHeight();\n var halfH = h / 2;\n\n // handle node dimensions\n /////////////////////////\n\n ex1 = x - halfW;\n ex2 = x + halfW;\n ey1 = y - halfH;\n ey2 = y + halfH;\n updateBounds(bounds, ex1, ey1, ex2, ey2);\n if (styleEnabled && options.includeOutlines) {\n updateBoundsFromOutline(bounds, ele);\n }\n } else if (isEdge && options.includeEdges) {\n if (styleEnabled && !headless) {\n var curveStyle = ele.pstyle('curve-style').strValue;\n\n // handle edge dimensions (rough box estimate)\n //////////////////////////////////////////////\n\n ex1 = Math.min(rstyle.srcX, rstyle.midX, rstyle.tgtX);\n ex2 = Math.max(rstyle.srcX, rstyle.midX, rstyle.tgtX);\n ey1 = Math.min(rstyle.srcY, rstyle.midY, rstyle.tgtY);\n ey2 = Math.max(rstyle.srcY, rstyle.midY, rstyle.tgtY);\n\n // take into account edge width\n ex1 -= wHalf;\n ex2 += wHalf;\n ey1 -= wHalf;\n ey2 += wHalf;\n updateBounds(bounds, ex1, ey1, ex2, ey2);\n\n // precise edges\n ////////////////\n\n if (curveStyle === 'haystack') {\n var hpts = rstyle.haystackPts;\n if (hpts && hpts.length === 2) {\n ex1 = hpts[0].x;\n ey1 = hpts[0].y;\n ex2 = hpts[1].x;\n ey2 = hpts[1].y;\n if (ex1 > ex2) {\n var temp = ex1;\n ex1 = ex2;\n ex2 = temp;\n }\n if (ey1 > ey2) {\n var _temp = ey1;\n ey1 = ey2;\n ey2 = _temp;\n }\n updateBounds(bounds, ex1 - wHalf, ey1 - wHalf, ex2 + wHalf, ey2 + wHalf);\n }\n } else if (curveStyle === 'bezier' || curveStyle === 'unbundled-bezier' || curveStyle.endsWith('segments') || curveStyle.endsWith('taxi')) {\n var pts;\n switch (curveStyle) {\n case 'bezier':\n case 'unbundled-bezier':\n pts = rstyle.bezierPts;\n break;\n case 'segments':\n case 'taxi':\n case 'round-segments':\n case 'round-taxi':\n pts = rstyle.linePts;\n break;\n }\n if (pts != null) {\n for (var j = 0; j < pts.length; j++) {\n var pt = pts[j];\n ex1 = pt.x - wHalf;\n ex2 = pt.x + wHalf;\n ey1 = pt.y - wHalf;\n ey2 = pt.y + wHalf;\n updateBounds(bounds, ex1, ey1, ex2, ey2);\n }\n }\n } // bezier-like or segment-like edge\n } else {\n // headless or style disabled\n\n // fallback on source and target positions\n //////////////////////////////////////////\n\n var n1 = ele.source();\n var n1pos = n1.position();\n var n2 = ele.target();\n var n2pos = n2.position();\n ex1 = n1pos.x;\n ex2 = n2pos.x;\n ey1 = n1pos.y;\n ey2 = n2pos.y;\n if (ex1 > ex2) {\n var _temp2 = ex1;\n ex1 = ex2;\n ex2 = _temp2;\n }\n if (ey1 > ey2) {\n var _temp3 = ey1;\n ey1 = ey2;\n ey2 = _temp3;\n }\n\n // take into account edge width\n ex1 -= wHalf;\n ex2 += wHalf;\n ey1 -= wHalf;\n ey2 += wHalf;\n updateBounds(bounds, ex1, ey1, ex2, ey2);\n } // headless or style disabled\n } // edges\n\n // handle edge arrow size\n /////////////////////////\n\n if (styleEnabled && options.includeEdges && isEdge) {\n updateBoundsFromArrow(bounds, ele, 'mid-source');\n updateBoundsFromArrow(bounds, ele, 'mid-target');\n updateBoundsFromArrow(bounds, ele, 'source');\n updateBoundsFromArrow(bounds, ele, 'target');\n }\n\n // ghost\n ////////\n\n if (styleEnabled) {\n var ghost = ele.pstyle('ghost').value === 'yes';\n if (ghost) {\n var gx = ele.pstyle('ghost-offset-x').pfValue;\n var gy = ele.pstyle('ghost-offset-y').pfValue;\n updateBounds(bounds, bounds.x1 + gx, bounds.y1 + gy, bounds.x2 + gx, bounds.y2 + gy);\n }\n }\n\n // always store the body bounds separately from the labels\n var bbBody = _p.bodyBounds = _p.bodyBounds || {};\n assignBoundingBox(bbBody, bounds);\n expandBoundingBoxSides(bbBody, manualExpansion);\n expandBoundingBox(bbBody, 1); // expand to work around browser dimension inaccuracies\n\n // overlay\n //////////\n\n if (styleEnabled) {\n ex1 = bounds.x1;\n ex2 = bounds.x2;\n ey1 = bounds.y1;\n ey2 = bounds.y2;\n updateBounds(bounds, ex1 - padding, ey1 - padding, ex2 + padding, ey2 + padding);\n }\n\n // always store the body bounds separately from the labels\n var bbOverlay = _p.overlayBounds = _p.overlayBounds || {};\n assignBoundingBox(bbOverlay, bounds);\n expandBoundingBoxSides(bbOverlay, manualExpansion);\n expandBoundingBox(bbOverlay, 1); // expand to work around browser dimension inaccuracies\n\n // handle label dimensions\n //////////////////////////\n\n var bbLabels = _p.labelBounds = _p.labelBounds || {};\n if (bbLabels.all != null) {\n clearBoundingBox(bbLabels.all);\n } else {\n bbLabels.all = makeBoundingBox();\n }\n if (styleEnabled && options.includeLabels) {\n if (options.includeMainLabels) {\n updateBoundsFromLabel(bounds, ele, null);\n }\n if (isEdge) {\n if (options.includeSourceLabels) {\n updateBoundsFromLabel(bounds, ele, 'source');\n }\n if (options.includeTargetLabels) {\n updateBoundsFromLabel(bounds, ele, 'target');\n }\n }\n } // style enabled for labels\n } // if displayed\n\n bounds.x1 = noninf(bounds.x1);\n bounds.y1 = noninf(bounds.y1);\n bounds.x2 = noninf(bounds.x2);\n bounds.y2 = noninf(bounds.y2);\n bounds.w = noninf(bounds.x2 - bounds.x1);\n bounds.h = noninf(bounds.y2 - bounds.y1);\n if (bounds.w > 0 && bounds.h > 0 && displayed) {\n expandBoundingBoxSides(bounds, manualExpansion);\n\n // expand bounds by 1 because antialiasing can increase the visual/effective size by 1 on all sides\n expandBoundingBox(bounds, 1);\n }\n return bounds;\n};\nvar getKey = function getKey(opts) {\n var i = 0;\n var tf = function tf(val) {\n return (val ? 1 : 0) << i++;\n };\n var key = 0;\n key += tf(opts.incudeNodes);\n key += tf(opts.includeEdges);\n key += tf(opts.includeLabels);\n key += tf(opts.includeMainLabels);\n key += tf(opts.includeSourceLabels);\n key += tf(opts.includeTargetLabels);\n key += tf(opts.includeOverlays);\n key += tf(opts.includeOutlines);\n return key;\n};\nvar getBoundingBoxPosKey = function getBoundingBoxPosKey(ele) {\n if (ele.isEdge()) {\n var p1 = ele.source().position();\n var p2 = ele.target().position();\n var r = function r(x) {\n return Math.round(x);\n };\n return hashIntsArray([r(p1.x), r(p1.y), r(p2.x), r(p2.y)]);\n } else {\n return 0;\n }\n};\nvar cachedBoundingBoxImpl = function cachedBoundingBoxImpl(ele, opts) {\n var _p = ele._private;\n var bb;\n var isEdge = ele.isEdge();\n var key = opts == null ? defBbOptsKey : getKey(opts);\n var usingDefOpts = key === defBbOptsKey;\n var currPosKey = getBoundingBoxPosKey(ele);\n var isPosKeySame = _p.bbCachePosKey === currPosKey;\n var useCache = opts.useCache && isPosKeySame;\n var isDirty = function isDirty(ele) {\n return ele._private.bbCache == null || ele._private.styleDirty;\n };\n var needRecalc = !useCache || isDirty(ele) || isEdge && isDirty(ele.source()) || isDirty(ele.target());\n if (needRecalc) {\n if (!isPosKeySame) {\n ele.recalculateRenderedStyle(useCache);\n }\n bb = boundingBoxImpl(ele, defBbOpts);\n _p.bbCache = bb;\n _p.bbCachePosKey = currPosKey;\n } else {\n bb = _p.bbCache;\n }\n\n // not using def opts => need to build up bb from combination of sub bbs\n if (!usingDefOpts) {\n var isNode = ele.isNode();\n bb = makeBoundingBox();\n if (opts.includeNodes && isNode || opts.includeEdges && !isNode) {\n if (opts.includeOverlays) {\n updateBoundsFromBox(bb, _p.overlayBounds);\n } else {\n updateBoundsFromBox(bb, _p.bodyBounds);\n }\n }\n if (opts.includeLabels) {\n if (opts.includeMainLabels && (!isEdge || opts.includeSourceLabels && opts.includeTargetLabels)) {\n updateBoundsFromBox(bb, _p.labelBounds.all);\n } else {\n if (opts.includeMainLabels) {\n updateBoundsFromBox(bb, _p.labelBounds.mainRot);\n }\n if (opts.includeSourceLabels) {\n updateBoundsFromBox(bb, _p.labelBounds.sourceRot);\n }\n if (opts.includeTargetLabels) {\n updateBoundsFromBox(bb, _p.labelBounds.targetRot);\n }\n }\n }\n bb.w = bb.x2 - bb.x1;\n bb.h = bb.y2 - bb.y1;\n }\n return bb;\n};\nvar defBbOpts = {\n includeNodes: true,\n includeEdges: true,\n includeLabels: true,\n includeMainLabels: true,\n includeSourceLabels: true,\n includeTargetLabels: true,\n includeOverlays: true,\n includeUnderlays: true,\n includeOutlines: true,\n useCache: true\n};\nvar defBbOptsKey = getKey(defBbOpts);\nvar filledBbOpts = defaults$g(defBbOpts);\nelesfn$b.boundingBox = function (options) {\n var bounds;\n\n // the main usecase is ele.boundingBox() for a single element with no/def options\n // specified s.t. the cache is used, so check for this case to make it faster by\n // avoiding the overhead of the rest of the function\n if (this.length === 1 && this[0]._private.bbCache != null && !this[0]._private.styleDirty && (options === undefined || options.useCache === undefined || options.useCache === true)) {\n if (options === undefined) {\n options = defBbOpts;\n } else {\n options = filledBbOpts(options);\n }\n bounds = cachedBoundingBoxImpl(this[0], options);\n } else {\n bounds = makeBoundingBox();\n options = options || defBbOpts;\n var opts = filledBbOpts(options);\n var eles = this;\n var cy = eles.cy();\n var styleEnabled = cy.styleEnabled();\n if (styleEnabled) {\n for (var i = 0; i < eles.length; i++) {\n var ele = eles[i];\n var _p = ele._private;\n var currPosKey = getBoundingBoxPosKey(ele);\n var isPosKeySame = _p.bbCachePosKey === currPosKey;\n var useCache = opts.useCache && isPosKeySame && !_p.styleDirty;\n ele.recalculateRenderedStyle(useCache);\n }\n }\n this.updateCompoundBounds(!options.useCache);\n for (var _i = 0; _i < eles.length; _i++) {\n var _ele = eles[_i];\n updateBoundsFromBox(bounds, cachedBoundingBoxImpl(_ele, opts));\n }\n }\n bounds.x1 = noninf(bounds.x1);\n bounds.y1 = noninf(bounds.y1);\n bounds.x2 = noninf(bounds.x2);\n bounds.y2 = noninf(bounds.y2);\n bounds.w = noninf(bounds.x2 - bounds.x1);\n bounds.h = noninf(bounds.y2 - bounds.y1);\n return bounds;\n};\nelesfn$b.dirtyBoundingBoxCache = function () {\n for (var i = 0; i < this.length; i++) {\n var _p = this[i]._private;\n _p.bbCache = null;\n _p.bbCachePosKey = null;\n _p.bodyBounds = null;\n _p.overlayBounds = null;\n _p.labelBounds.all = null;\n _p.labelBounds.source = null;\n _p.labelBounds.target = null;\n _p.labelBounds.main = null;\n _p.labelBounds.sourceRot = null;\n _p.labelBounds.targetRot = null;\n _p.labelBounds.mainRot = null;\n _p.arrowBounds.source = null;\n _p.arrowBounds.target = null;\n _p.arrowBounds['mid-source'] = null;\n _p.arrowBounds['mid-target'] = null;\n }\n this.emitAndNotify('bounds');\n return this;\n};\n\n// private helper to get bounding box for custom node positions\n// - good for perf in certain cases but currently requires dirtying the rendered style\n// - would be better to not modify the nodes but the nodes are read directly everywhere in the renderer...\n// - try to use for only things like discrete layouts where the node position would change anyway\nelesfn$b.boundingBoxAt = function (fn) {\n var nodes = this.nodes();\n var cy = this.cy();\n var hasCompoundNodes = cy.hasCompoundNodes();\n var parents = cy.collection();\n if (hasCompoundNodes) {\n parents = nodes.filter(function (node) {\n return node.isParent();\n });\n nodes = nodes.not(parents);\n }\n if (plainObject(fn)) {\n var obj = fn;\n fn = function fn() {\n return obj;\n };\n }\n var storeOldPos = function storeOldPos(node, i) {\n return node._private.bbAtOldPos = fn(node, i);\n };\n var getOldPos = function getOldPos(node) {\n return node._private.bbAtOldPos;\n };\n cy.startBatch();\n nodes.forEach(storeOldPos).silentPositions(fn);\n if (hasCompoundNodes) {\n parents.dirtyCompoundBoundsCache();\n parents.dirtyBoundingBoxCache();\n parents.updateCompoundBounds(true); // force update b/c we're inside a batch cycle\n }\n\n var bb = copyBoundingBox(this.boundingBox({\n useCache: false\n }));\n nodes.silentPositions(getOldPos);\n if (hasCompoundNodes) {\n parents.dirtyCompoundBoundsCache();\n parents.dirtyBoundingBoxCache();\n parents.updateCompoundBounds(true); // force update b/c we're inside a batch cycle\n }\n\n cy.endBatch();\n return bb;\n};\nfn$3.boundingbox = fn$3.bb = fn$3.boundingBox;\nfn$3.renderedBoundingbox = fn$3.renderedBoundingBox;\nvar bounds = elesfn$b;\n\nvar fn$2, elesfn$a;\nfn$2 = elesfn$a = {};\nvar defineDimFns = function defineDimFns(opts) {\n opts.uppercaseName = capitalize(opts.name);\n opts.autoName = 'auto' + opts.uppercaseName;\n opts.labelName = 'label' + opts.uppercaseName;\n opts.outerName = 'outer' + opts.uppercaseName;\n opts.uppercaseOuterName = capitalize(opts.outerName);\n fn$2[opts.name] = function dimImpl() {\n var ele = this[0];\n var _p = ele._private;\n var cy = _p.cy;\n var styleEnabled = cy._private.styleEnabled;\n if (ele) {\n if (styleEnabled) {\n if (ele.isParent()) {\n ele.updateCompoundBounds();\n return _p[opts.autoName] || 0;\n }\n var d = ele.pstyle(opts.name);\n switch (d.strValue) {\n case 'label':\n ele.recalculateRenderedStyle();\n return _p.rstyle[opts.labelName] || 0;\n default:\n return d.pfValue;\n }\n } else {\n return 1;\n }\n }\n };\n fn$2['outer' + opts.uppercaseName] = function outerDimImpl() {\n var ele = this[0];\n var _p = ele._private;\n var cy = _p.cy;\n var styleEnabled = cy._private.styleEnabled;\n if (ele) {\n if (styleEnabled) {\n var dim = ele[opts.name]();\n var border = ele.pstyle('border-width').pfValue; // n.b. 1/2 each side\n var padding = 2 * ele.padding();\n return dim + border + padding;\n } else {\n return 1;\n }\n }\n };\n fn$2['rendered' + opts.uppercaseName] = function renderedDimImpl() {\n var ele = this[0];\n if (ele) {\n var d = ele[opts.name]();\n return d * this.cy().zoom();\n }\n };\n fn$2['rendered' + opts.uppercaseOuterName] = function renderedOuterDimImpl() {\n var ele = this[0];\n if (ele) {\n var od = ele[opts.outerName]();\n return od * this.cy().zoom();\n }\n };\n};\ndefineDimFns({\n name: 'width'\n});\ndefineDimFns({\n name: 'height'\n});\nelesfn$a.padding = function () {\n var ele = this[0];\n var _p = ele._private;\n if (ele.isParent()) {\n ele.updateCompoundBounds();\n if (_p.autoPadding !== undefined) {\n return _p.autoPadding;\n } else {\n return ele.pstyle('padding').pfValue;\n }\n } else {\n return ele.pstyle('padding').pfValue;\n }\n};\nelesfn$a.paddedHeight = function () {\n var ele = this[0];\n return ele.height() + 2 * ele.padding();\n};\nelesfn$a.paddedWidth = function () {\n var ele = this[0];\n return ele.width() + 2 * ele.padding();\n};\nvar widthHeight = elesfn$a;\n\nvar ifEdge = function ifEdge(ele, getValue) {\n if (ele.isEdge()) {\n return getValue(ele);\n }\n};\nvar ifEdgeRenderedPosition = function ifEdgeRenderedPosition(ele, getPoint) {\n if (ele.isEdge()) {\n var cy = ele.cy();\n return modelToRenderedPosition(getPoint(ele), cy.zoom(), cy.pan());\n }\n};\nvar ifEdgeRenderedPositions = function ifEdgeRenderedPositions(ele, getPoints) {\n if (ele.isEdge()) {\n var cy = ele.cy();\n var pan = cy.pan();\n var zoom = cy.zoom();\n return getPoints(ele).map(function (p) {\n return modelToRenderedPosition(p, zoom, pan);\n });\n }\n};\nvar controlPoints = function controlPoints(ele) {\n return ele.renderer().getControlPoints(ele);\n};\nvar segmentPoints = function segmentPoints(ele) {\n return ele.renderer().getSegmentPoints(ele);\n};\nvar sourceEndpoint = function sourceEndpoint(ele) {\n return ele.renderer().getSourceEndpoint(ele);\n};\nvar targetEndpoint = function targetEndpoint(ele) {\n return ele.renderer().getTargetEndpoint(ele);\n};\nvar midpoint = function midpoint(ele) {\n return ele.renderer().getEdgeMidpoint(ele);\n};\nvar pts = {\n controlPoints: {\n get: controlPoints,\n mult: true\n },\n segmentPoints: {\n get: segmentPoints,\n mult: true\n },\n sourceEndpoint: {\n get: sourceEndpoint\n },\n targetEndpoint: {\n get: targetEndpoint\n },\n midpoint: {\n get: midpoint\n }\n};\nvar renderedName = function renderedName(name) {\n return 'rendered' + name[0].toUpperCase() + name.substr(1);\n};\nvar edgePoints = Object.keys(pts).reduce(function (obj, name) {\n var spec = pts[name];\n var rName = renderedName(name);\n obj[name] = function () {\n return ifEdge(this, spec.get);\n };\n if (spec.mult) {\n obj[rName] = function () {\n return ifEdgeRenderedPositions(this, spec.get);\n };\n } else {\n obj[rName] = function () {\n return ifEdgeRenderedPosition(this, spec.get);\n };\n }\n return obj;\n}, {});\n\nvar dimensions = extend({}, position, bounds, widthHeight, edgePoints);\n\n/*!\nEvent object based on jQuery events, MIT license\n\nhttps://jquery.org/license/\nhttps://tldrlegal.com/license/mit-license\nhttps://github.com/jquery/jquery/blob/master/src/event.js\n*/\n\nvar Event = function Event(src, props) {\n this.recycle(src, props);\n};\nfunction returnFalse() {\n return false;\n}\nfunction returnTrue() {\n return true;\n}\n\n// http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html\nEvent.prototype = {\n instanceString: function instanceString() {\n return 'event';\n },\n recycle: function recycle(src, props) {\n this.isImmediatePropagationStopped = this.isPropagationStopped = this.isDefaultPrevented = returnFalse;\n if (src != null && src.preventDefault) {\n // Browser Event object\n this.type = src.type;\n\n // Events bubbling up the document may have been marked as prevented\n // by a handler lower down the tree; reflect the correct value.\n this.isDefaultPrevented = src.defaultPrevented ? returnTrue : returnFalse;\n } else if (src != null && src.type) {\n // Plain object containing all event details\n props = src;\n } else {\n // Event string\n this.type = src;\n }\n\n // Put explicitly provided properties onto the event object\n if (props != null) {\n // more efficient to manually copy fields we use\n this.originalEvent = props.originalEvent;\n this.type = props.type != null ? props.type : this.type;\n this.cy = props.cy;\n this.target = props.target;\n this.position = props.position;\n this.renderedPosition = props.renderedPosition;\n this.namespace = props.namespace;\n this.layout = props.layout;\n }\n if (this.cy != null && this.position != null && this.renderedPosition == null) {\n // create a rendered position based on the passed position\n var pos = this.position;\n var zoom = this.cy.zoom();\n var pan = this.cy.pan();\n this.renderedPosition = {\n x: pos.x * zoom + pan.x,\n y: pos.y * zoom + pan.y\n };\n }\n\n // Create a timestamp if incoming event doesn't have one\n this.timeStamp = src && src.timeStamp || Date.now();\n },\n preventDefault: function preventDefault() {\n this.isDefaultPrevented = returnTrue;\n var e = this.originalEvent;\n if (!e) {\n return;\n }\n\n // if preventDefault exists run it on the original event\n if (e.preventDefault) {\n e.preventDefault();\n }\n },\n stopPropagation: function stopPropagation() {\n this.isPropagationStopped = returnTrue;\n var e = this.originalEvent;\n if (!e) {\n return;\n }\n\n // if stopPropagation exists run it on the original event\n if (e.stopPropagation) {\n e.stopPropagation();\n }\n },\n stopImmediatePropagation: function stopImmediatePropagation() {\n this.isImmediatePropagationStopped = returnTrue;\n this.stopPropagation();\n },\n isDefaultPrevented: returnFalse,\n isPropagationStopped: returnFalse,\n isImmediatePropagationStopped: returnFalse\n};\n\nvar eventRegex = /^([^.]+)(\\.(?:[^.]+))?$/; // regex for matching event strings (e.g. \"click.namespace\")\nvar universalNamespace = '.*'; // matches as if no namespace specified and prevents users from unbinding accidentally\n\nvar defaults$8 = {\n qualifierCompare: function qualifierCompare(q1, q2) {\n return q1 === q2;\n },\n eventMatches: function eventMatches( /*context, listener, eventObj*/\n ) {\n return true;\n },\n addEventFields: function addEventFields( /*context, evt*/\n ) {},\n callbackContext: function callbackContext(context /*, listener, eventObj*/) {\n return context;\n },\n beforeEmit: function beforeEmit( /* context, listener, eventObj */\n ) {},\n afterEmit: function afterEmit( /* context, listener, eventObj */\n ) {},\n bubble: function bubble( /*context*/\n ) {\n return false;\n },\n parent: function parent( /*context*/\n ) {\n return null;\n },\n context: null\n};\nvar defaultsKeys = Object.keys(defaults$8);\nvar emptyOpts = {};\nfunction Emitter() {\n var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : emptyOpts;\n var context = arguments.length > 1 ? arguments[1] : undefined;\n // micro-optimisation vs Object.assign() -- reduces Element instantiation time\n for (var i = 0; i < defaultsKeys.length; i++) {\n var key = defaultsKeys[i];\n this[key] = opts[key] || defaults$8[key];\n }\n this.context = context || this.context;\n this.listeners = [];\n this.emitting = 0;\n}\nvar p = Emitter.prototype;\nvar forEachEvent = function forEachEvent(self, handler, events, qualifier, callback, conf, confOverrides) {\n if (fn$6(qualifier)) {\n callback = qualifier;\n qualifier = null;\n }\n if (confOverrides) {\n if (conf == null) {\n conf = confOverrides;\n } else {\n conf = extend({}, conf, confOverrides);\n }\n }\n var eventList = array(events) ? events : events.split(/\\s+/);\n for (var i = 0; i < eventList.length; i++) {\n var evt = eventList[i];\n if (emptyString(evt)) {\n continue;\n }\n var match = evt.match(eventRegex); // type[.namespace]\n\n if (match) {\n var type = match[1];\n var namespace = match[2] ? match[2] : null;\n var ret = handler(self, evt, type, namespace, qualifier, callback, conf);\n if (ret === false) {\n break;\n } // allow exiting early\n }\n }\n};\n\nvar makeEventObj = function makeEventObj(self, obj) {\n self.addEventFields(self.context, obj);\n return new Event(obj.type, obj);\n};\nvar forEachEventObj = function forEachEventObj(self, handler, events) {\n if (event(events)) {\n handler(self, events);\n return;\n } else if (plainObject(events)) {\n handler(self, makeEventObj(self, events));\n return;\n }\n var eventList = array(events) ? events : events.split(/\\s+/);\n for (var i = 0; i < eventList.length; i++) {\n var evt = eventList[i];\n if (emptyString(evt)) {\n continue;\n }\n var match = evt.match(eventRegex); // type[.namespace]\n\n if (match) {\n var type = match[1];\n var namespace = match[2] ? match[2] : null;\n var eventObj = makeEventObj(self, {\n type: type,\n namespace: namespace,\n target: self.context\n });\n handler(self, eventObj);\n }\n }\n};\np.on = p.addListener = function (events, qualifier, callback, conf, confOverrides) {\n forEachEvent(this, function (self, event, type, namespace, qualifier, callback, conf) {\n if (fn$6(callback)) {\n self.listeners.push({\n event: event,\n // full event string\n callback: callback,\n // callback to run\n type: type,\n // the event type (e.g. 'click')\n namespace: namespace,\n // the event namespace (e.g. \".foo\")\n qualifier: qualifier,\n // a restriction on whether to match this emitter\n conf: conf // additional configuration\n });\n }\n }, events, qualifier, callback, conf, confOverrides);\n return this;\n};\np.one = function (events, qualifier, callback, conf) {\n return this.on(events, qualifier, callback, conf, {\n one: true\n });\n};\np.removeListener = p.off = function (events, qualifier, callback, conf) {\n var _this = this;\n if (this.emitting !== 0) {\n this.listeners = copyArray$1(this.listeners);\n }\n var listeners = this.listeners;\n var _loop = function _loop(i) {\n var listener = listeners[i];\n forEachEvent(_this, function (self, event, type, namespace, qualifier, callback /*, conf*/) {\n if ((listener.type === type || events === '*') && (!namespace && listener.namespace !== '.*' || listener.namespace === namespace) && (!qualifier || self.qualifierCompare(listener.qualifier, qualifier)) && (!callback || listener.callback === callback)) {\n listeners.splice(i, 1);\n return false;\n }\n }, events, qualifier, callback, conf);\n };\n for (var i = listeners.length - 1; i >= 0; i--) {\n _loop(i);\n }\n return this;\n};\np.removeAllListeners = function () {\n return this.removeListener('*');\n};\np.emit = p.trigger = function (events, extraParams, manualCallback) {\n var listeners = this.listeners;\n var numListenersBeforeEmit = listeners.length;\n this.emitting++;\n if (!array(extraParams)) {\n extraParams = [extraParams];\n }\n forEachEventObj(this, function (self, eventObj) {\n if (manualCallback != null) {\n listeners = [{\n event: eventObj.event,\n type: eventObj.type,\n namespace: eventObj.namespace,\n callback: manualCallback\n }];\n numListenersBeforeEmit = listeners.length;\n }\n var _loop2 = function _loop2(i) {\n var listener = listeners[i];\n if (listener.type === eventObj.type && (!listener.namespace || listener.namespace === eventObj.namespace || listener.namespace === universalNamespace) && self.eventMatches(self.context, listener, eventObj)) {\n var args = [eventObj];\n if (extraParams != null) {\n push(args, extraParams);\n }\n self.beforeEmit(self.context, listener, eventObj);\n if (listener.conf && listener.conf.one) {\n self.listeners = self.listeners.filter(function (l) {\n return l !== listener;\n });\n }\n var context = self.callbackContext(self.context, listener, eventObj);\n var ret = listener.callback.apply(context, args);\n self.afterEmit(self.context, listener, eventObj);\n if (ret === false) {\n eventObj.stopPropagation();\n eventObj.preventDefault();\n }\n } // if listener matches\n };\n for (var i = 0; i < numListenersBeforeEmit; i++) {\n _loop2(i);\n } // for listener\n\n if (self.bubble(self.context) && !eventObj.isPropagationStopped()) {\n self.parent(self.context).emit(eventObj, extraParams);\n }\n }, events);\n this.emitting--;\n return this;\n};\n\nvar emitterOptions$1 = {\n qualifierCompare: function qualifierCompare(selector1, selector2) {\n if (selector1 == null || selector2 == null) {\n return selector1 == null && selector2 == null;\n } else {\n return selector1.sameText(selector2);\n }\n },\n eventMatches: function eventMatches(ele, listener, eventObj) {\n var selector = listener.qualifier;\n if (selector != null) {\n return ele !== eventObj.target && element(eventObj.target) && selector.matches(eventObj.target);\n }\n return true;\n },\n addEventFields: function addEventFields(ele, evt) {\n evt.cy = ele.cy();\n evt.target = ele;\n },\n callbackContext: function callbackContext(ele, listener, eventObj) {\n return listener.qualifier != null ? eventObj.target : ele;\n },\n beforeEmit: function beforeEmit(context, listener /*, eventObj*/) {\n if (listener.conf && listener.conf.once) {\n listener.conf.onceCollection.removeListener(listener.event, listener.qualifier, listener.callback);\n }\n },\n bubble: function bubble() {\n return true;\n },\n parent: function parent(ele) {\n return ele.isChild() ? ele.parent() : ele.cy();\n }\n};\nvar argSelector$1 = function argSelector(arg) {\n if (string(arg)) {\n return new Selector(arg);\n } else {\n return arg;\n }\n};\nvar elesfn$9 = {\n createEmitter: function createEmitter() {\n for (var i = 0; i < this.length; i++) {\n var ele = this[i];\n var _p = ele._private;\n if (!_p.emitter) {\n _p.emitter = new Emitter(emitterOptions$1, ele);\n }\n }\n return this;\n },\n emitter: function emitter() {\n return this._private.emitter;\n },\n on: function on(events, selector, callback) {\n var argSel = argSelector$1(selector);\n for (var i = 0; i < this.length; i++) {\n var ele = this[i];\n ele.emitter().on(events, argSel, callback);\n }\n return this;\n },\n removeListener: function removeListener(events, selector, callback) {\n var argSel = argSelector$1(selector);\n for (var i = 0; i < this.length; i++) {\n var ele = this[i];\n ele.emitter().removeListener(events, argSel, callback);\n }\n return this;\n },\n removeAllListeners: function removeAllListeners() {\n for (var i = 0; i < this.length; i++) {\n var ele = this[i];\n ele.emitter().removeAllListeners();\n }\n return this;\n },\n one: function one(events, selector, callback) {\n var argSel = argSelector$1(selector);\n for (var i = 0; i < this.length; i++) {\n var ele = this[i];\n ele.emitter().one(events, argSel, callback);\n }\n return this;\n },\n once: function once(events, selector, callback) {\n var argSel = argSelector$1(selector);\n for (var i = 0; i < this.length; i++) {\n var ele = this[i];\n ele.emitter().on(events, argSel, callback, {\n once: true,\n onceCollection: this\n });\n }\n },\n emit: function emit(events, extraParams) {\n for (var i = 0; i < this.length; i++) {\n var ele = this[i];\n ele.emitter().emit(events, extraParams);\n }\n return this;\n },\n emitAndNotify: function emitAndNotify(event, extraParams) {\n // for internal use only\n if (this.length === 0) {\n return;\n } // empty collections don't need to notify anything\n\n // notify renderer\n this.cy().notify(event, this);\n this.emit(event, extraParams);\n return this;\n }\n};\ndefine.eventAliasesOn(elesfn$9);\n\nvar elesfn$8 = {\n nodes: function nodes(selector) {\n return this.filter(function (ele) {\n return ele.isNode();\n }).filter(selector);\n },\n edges: function edges(selector) {\n return this.filter(function (ele) {\n return ele.isEdge();\n }).filter(selector);\n },\n // internal helper to get nodes and edges as separate collections with single iteration over elements\n byGroup: function byGroup() {\n var nodes = this.spawn();\n var edges = this.spawn();\n for (var i = 0; i < this.length; i++) {\n var ele = this[i];\n if (ele.isNode()) {\n nodes.push(ele);\n } else {\n edges.push(ele);\n }\n }\n return {\n nodes: nodes,\n edges: edges\n };\n },\n filter: function filter(_filter, thisArg) {\n if (_filter === undefined) {\n // check this first b/c it's the most common/performant case\n return this;\n } else if (string(_filter) || elementOrCollection(_filter)) {\n return new Selector(_filter).filter(this);\n } else if (fn$6(_filter)) {\n var filterEles = this.spawn();\n var eles = this;\n for (var i = 0; i < eles.length; i++) {\n var ele = eles[i];\n var include = thisArg ? _filter.apply(thisArg, [ele, i, eles]) : _filter(ele, i, eles);\n if (include) {\n filterEles.push(ele);\n }\n }\n return filterEles;\n }\n return this.spawn(); // if not handled by above, give 'em an empty collection\n },\n\n not: function not(toRemove) {\n if (!toRemove) {\n return this;\n } else {\n if (string(toRemove)) {\n toRemove = this.filter(toRemove);\n }\n var elements = this.spawn();\n for (var i = 0; i < this.length; i++) {\n var element = this[i];\n var remove = toRemove.has(element);\n if (!remove) {\n elements.push(element);\n }\n }\n return elements;\n }\n },\n absoluteComplement: function absoluteComplement() {\n var cy = this.cy();\n return cy.mutableElements().not(this);\n },\n intersect: function intersect(other) {\n // if a selector is specified, then filter by it instead\n if (string(other)) {\n var selector = other;\n return this.filter(selector);\n }\n var elements = this.spawn();\n var col1 = this;\n var col2 = other;\n var col1Smaller = this.length < other.length;\n var colS = col1Smaller ? col1 : col2;\n var colL = col1Smaller ? col2 : col1;\n for (var i = 0; i < colS.length; i++) {\n var ele = colS[i];\n if (colL.has(ele)) {\n elements.push(ele);\n }\n }\n return elements;\n },\n xor: function xor(other) {\n var cy = this._private.cy;\n if (string(other)) {\n other = cy.$(other);\n }\n var elements = this.spawn();\n var col1 = this;\n var col2 = other;\n var add = function add(col, other) {\n for (var i = 0; i < col.length; i++) {\n var ele = col[i];\n var id = ele._private.data.id;\n var inOther = other.hasElementWithId(id);\n if (!inOther) {\n elements.push(ele);\n }\n }\n };\n add(col1, col2);\n add(col2, col1);\n return elements;\n },\n diff: function diff(other) {\n var cy = this._private.cy;\n if (string(other)) {\n other = cy.$(other);\n }\n var left = this.spawn();\n var right = this.spawn();\n var both = this.spawn();\n var col1 = this;\n var col2 = other;\n var add = function add(col, other, retEles) {\n for (var i = 0; i < col.length; i++) {\n var ele = col[i];\n var id = ele._private.data.id;\n var inOther = other.hasElementWithId(id);\n if (inOther) {\n both.merge(ele);\n } else {\n retEles.push(ele);\n }\n }\n };\n add(col1, col2, left);\n add(col2, col1, right);\n return {\n left: left,\n right: right,\n both: both\n };\n },\n add: function add(toAdd) {\n var cy = this._private.cy;\n if (!toAdd) {\n return this;\n }\n if (string(toAdd)) {\n var selector = toAdd;\n toAdd = cy.mutableElements().filter(selector);\n }\n var elements = this.spawnSelf();\n for (var i = 0; i < toAdd.length; i++) {\n var ele = toAdd[i];\n var add = !this.has(ele);\n if (add) {\n elements.push(ele);\n }\n }\n return elements;\n },\n // in place merge on calling collection\n merge: function merge(toAdd) {\n var _p = this._private;\n var cy = _p.cy;\n if (!toAdd) {\n return this;\n }\n if (toAdd && string(toAdd)) {\n var selector = toAdd;\n toAdd = cy.mutableElements().filter(selector);\n }\n var map = _p.map;\n for (var i = 0; i < toAdd.length; i++) {\n var toAddEle = toAdd[i];\n var id = toAddEle._private.data.id;\n var add = !map.has(id);\n if (add) {\n var index = this.length++;\n this[index] = toAddEle;\n map.set(id, {\n ele: toAddEle,\n index: index\n });\n }\n }\n return this; // chaining\n },\n\n unmergeAt: function unmergeAt(i) {\n var ele = this[i];\n var id = ele.id();\n var _p = this._private;\n var map = _p.map;\n\n // remove ele\n this[i] = undefined;\n map[\"delete\"](id);\n var unmergedLastEle = i === this.length - 1;\n\n // replace empty spot with last ele in collection\n if (this.length > 1 && !unmergedLastEle) {\n var lastEleI = this.length - 1;\n var lastEle = this[lastEleI];\n var lastEleId = lastEle._private.data.id;\n this[lastEleI] = undefined;\n this[i] = lastEle;\n map.set(lastEleId, {\n ele: lastEle,\n index: i\n });\n }\n\n // the collection is now 1 ele smaller\n this.length--;\n return this;\n },\n // remove single ele in place in calling collection\n unmergeOne: function unmergeOne(ele) {\n ele = ele[0];\n var _p = this._private;\n var id = ele._private.data.id;\n var map = _p.map;\n var entry = map.get(id);\n if (!entry) {\n return this; // no need to remove\n }\n\n var i = entry.index;\n this.unmergeAt(i);\n return this;\n },\n // remove eles in place on calling collection\n unmerge: function unmerge(toRemove) {\n var cy = this._private.cy;\n if (!toRemove) {\n return this;\n }\n if (toRemove && string(toRemove)) {\n var selector = toRemove;\n toRemove = cy.mutableElements().filter(selector);\n }\n for (var i = 0; i < toRemove.length; i++) {\n this.unmergeOne(toRemove[i]);\n }\n return this; // chaining\n },\n\n unmergeBy: function unmergeBy(toRmFn) {\n for (var i = this.length - 1; i >= 0; i--) {\n var ele = this[i];\n if (toRmFn(ele)) {\n this.unmergeAt(i);\n }\n }\n return this;\n },\n map: function map(mapFn, thisArg) {\n var arr = [];\n var eles = this;\n for (var i = 0; i < eles.length; i++) {\n var ele = eles[i];\n var ret = thisArg ? mapFn.apply(thisArg, [ele, i, eles]) : mapFn(ele, i, eles);\n arr.push(ret);\n }\n return arr;\n },\n reduce: function reduce(fn, initialValue) {\n var val = initialValue;\n var eles = this;\n for (var i = 0; i < eles.length; i++) {\n val = fn(val, eles[i], i, eles);\n }\n return val;\n },\n max: function max(valFn, thisArg) {\n var max = -Infinity;\n var maxEle;\n var eles = this;\n for (var i = 0; i < eles.length; i++) {\n var ele = eles[i];\n var val = thisArg ? valFn.apply(thisArg, [ele, i, eles]) : valFn(ele, i, eles);\n if (val > max) {\n max = val;\n maxEle = ele;\n }\n }\n return {\n value: max,\n ele: maxEle\n };\n },\n min: function min(valFn, thisArg) {\n var min = Infinity;\n var minEle;\n var eles = this;\n for (var i = 0; i < eles.length; i++) {\n var ele = eles[i];\n var val = thisArg ? valFn.apply(thisArg, [ele, i, eles]) : valFn(ele, i, eles);\n if (val < min) {\n min = val;\n minEle = ele;\n }\n }\n return {\n value: min,\n ele: minEle\n };\n }\n};\n\n// aliases\nvar fn$1 = elesfn$8;\nfn$1['u'] = fn$1['|'] = fn$1['+'] = fn$1.union = fn$1.or = fn$1.add;\nfn$1['\\\\'] = fn$1['!'] = fn$1['-'] = fn$1.difference = fn$1.relativeComplement = fn$1.subtract = fn$1.not;\nfn$1['n'] = fn$1['&'] = fn$1['.'] = fn$1.and = fn$1.intersection = fn$1.intersect;\nfn$1['^'] = fn$1['(+)'] = fn$1['(-)'] = fn$1.symmetricDifference = fn$1.symdiff = fn$1.xor;\nfn$1.fnFilter = fn$1.filterFn = fn$1.stdFilter = fn$1.filter;\nfn$1.complement = fn$1.abscomp = fn$1.absoluteComplement;\n\nvar elesfn$7 = {\n isNode: function isNode() {\n return this.group() === 'nodes';\n },\n isEdge: function isEdge() {\n return this.group() === 'edges';\n },\n isLoop: function isLoop() {\n return this.isEdge() && this.source()[0] === this.target()[0];\n },\n isSimple: function isSimple() {\n return this.isEdge() && this.source()[0] !== this.target()[0];\n },\n group: function group() {\n var ele = this[0];\n if (ele) {\n return ele._private.group;\n }\n }\n};\n\n/**\n * Elements are drawn in a specific order based on compound depth (low to high), the element type (nodes above edges),\n * and z-index (low to high). These styles affect how this applies:\n *\n * z-compound-depth: May be `bottom | orphan | auto | top`. The first drawn is `bottom`, then `orphan` which is the\n * same depth as the root of the compound graph, followed by the default value `auto` which draws in order from\n * root to leaves of the compound graph. The last drawn is `top`.\n * z-index-compare: May be `auto | manual`. The default value is `auto` which always draws edges under nodes.\n * `manual` ignores this convention and draws based on the `z-index` value setting.\n * z-index: An integer value that affects the relative draw order of elements. In general, an element with a higher\n * `z-index` will be drawn on top of an element with a lower `z-index`.\n */\nvar zIndexSort = function zIndexSort(a, b) {\n var cy = a.cy();\n var hasCompoundNodes = cy.hasCompoundNodes();\n function getDepth(ele) {\n var style = ele.pstyle('z-compound-depth');\n if (style.value === 'auto') {\n return hasCompoundNodes ? ele.zDepth() : 0;\n } else if (style.value === 'bottom') {\n return -1;\n } else if (style.value === 'top') {\n return MAX_INT$1;\n }\n // 'orphan'\n return 0;\n }\n var depthDiff = getDepth(a) - getDepth(b);\n if (depthDiff !== 0) {\n return depthDiff;\n }\n function getEleDepth(ele) {\n var style = ele.pstyle('z-index-compare');\n if (style.value === 'auto') {\n return ele.isNode() ? 1 : 0;\n }\n // 'manual'\n return 0;\n }\n var eleDiff = getEleDepth(a) - getEleDepth(b);\n if (eleDiff !== 0) {\n return eleDiff;\n }\n var zDiff = a.pstyle('z-index').value - b.pstyle('z-index').value;\n if (zDiff !== 0) {\n return zDiff;\n }\n // compare indices in the core (order added to graph w/ last on top)\n return a.poolIndex() - b.poolIndex();\n};\n\nvar elesfn$6 = {\n forEach: function forEach(fn, thisArg) {\n if (fn$6(fn)) {\n var N = this.length;\n for (var i = 0; i < N; i++) {\n var ele = this[i];\n var ret = thisArg ? fn.apply(thisArg, [ele, i, this]) : fn(ele, i, this);\n if (ret === false) {\n break;\n } // exit each early on return false\n }\n }\n\n return this;\n },\n toArray: function toArray() {\n var array = [];\n for (var i = 0; i < this.length; i++) {\n array.push(this[i]);\n }\n return array;\n },\n slice: function slice(start, end) {\n var array = [];\n var thisSize = this.length;\n if (end == null) {\n end = thisSize;\n }\n if (start == null) {\n start = 0;\n }\n if (start < 0) {\n start = thisSize + start;\n }\n if (end < 0) {\n end = thisSize + end;\n }\n for (var i = start; i >= 0 && i < end && i < thisSize; i++) {\n array.push(this[i]);\n }\n return this.spawn(array);\n },\n size: function size() {\n return this.length;\n },\n eq: function eq(i) {\n return this[i] || this.spawn();\n },\n first: function first() {\n return this[0] || this.spawn();\n },\n last: function last() {\n return this[this.length - 1] || this.spawn();\n },\n empty: function empty() {\n return this.length === 0;\n },\n nonempty: function nonempty() {\n return !this.empty();\n },\n sort: function sort(sortFn) {\n if (!fn$6(sortFn)) {\n return this;\n }\n var sorted = this.toArray().sort(sortFn);\n return this.spawn(sorted);\n },\n sortByZIndex: function sortByZIndex() {\n return this.sort(zIndexSort);\n },\n zDepth: function zDepth() {\n var ele = this[0];\n if (!ele) {\n return undefined;\n }\n\n // let cy = ele.cy();\n var _p = ele._private;\n var group = _p.group;\n if (group === 'nodes') {\n var depth = _p.data.parent ? ele.parents().size() : 0;\n if (!ele.isParent()) {\n return MAX_INT$1 - 1; // childless nodes always on top\n }\n\n return depth;\n } else {\n var src = _p.source;\n var tgt = _p.target;\n var srcDepth = src.zDepth();\n var tgtDepth = tgt.zDepth();\n return Math.max(srcDepth, tgtDepth, 0); // depth of deepest parent\n }\n }\n};\n\nelesfn$6.each = elesfn$6.forEach;\nvar defineSymbolIterator = function defineSymbolIterator() {\n var typeofUndef = \"undefined\" ;\n var isIteratorSupported = (typeof Symbol === \"undefined\" ? \"undefined\" : _typeof(Symbol)) != typeofUndef && _typeof(Symbol.iterator) != typeofUndef; // eslint-disable-line no-undef\n\n if (isIteratorSupported) {\n elesfn$6[Symbol.iterator] = function () {\n var _this = this;\n // eslint-disable-line no-undef\n var entry = {\n value: undefined,\n done: false\n };\n var i = 0;\n var length = this.length;\n return _defineProperty$1({\n next: function next() {\n if (i < length) {\n entry.value = _this[i++];\n } else {\n entry.value = undefined;\n entry.done = true;\n }\n return entry;\n }\n }, Symbol.iterator, function () {\n // eslint-disable-line no-undef\n return this;\n });\n };\n }\n};\ndefineSymbolIterator();\n\nvar getLayoutDimensionOptions = defaults$g({\n nodeDimensionsIncludeLabels: false\n});\nvar elesfn$5 = {\n // Calculates and returns node dimensions { x, y } based on options given\n layoutDimensions: function layoutDimensions(options) {\n options = getLayoutDimensionOptions(options);\n var dims;\n if (!this.takesUpSpace()) {\n dims = {\n w: 0,\n h: 0\n };\n } else if (options.nodeDimensionsIncludeLabels) {\n var bbDim = this.boundingBox();\n dims = {\n w: bbDim.w,\n h: bbDim.h\n };\n } else {\n dims = {\n w: this.outerWidth(),\n h: this.outerHeight()\n };\n }\n\n // sanitise the dimensions for external layouts (avoid division by zero)\n if (dims.w === 0 || dims.h === 0) {\n dims.w = dims.h = 1;\n }\n return dims;\n },\n // using standard layout options, apply position function (w/ or w/o animation)\n layoutPositions: function layoutPositions(layout, options, fn) {\n var nodes = this.nodes().filter(function (n) {\n return !n.isParent();\n });\n var cy = this.cy();\n var layoutEles = options.eles; // nodes & edges\n var getMemoizeKey = function getMemoizeKey(node) {\n return node.id();\n };\n var fnMem = memoize$1(fn, getMemoizeKey); // memoized version of position function\n\n layout.emit({\n type: 'layoutstart',\n layout: layout\n });\n layout.animations = [];\n var calculateSpacing = function calculateSpacing(spacing, nodesBb, pos) {\n var center = {\n x: nodesBb.x1 + nodesBb.w / 2,\n y: nodesBb.y1 + nodesBb.h / 2\n };\n var spacingVector = {\n // scale from center of bounding box (not necessarily 0,0)\n x: (pos.x - center.x) * spacing,\n y: (pos.y - center.y) * spacing\n };\n return {\n x: center.x + spacingVector.x,\n y: center.y + spacingVector.y\n };\n };\n var useSpacingFactor = options.spacingFactor && options.spacingFactor !== 1;\n var spacingBb = function spacingBb() {\n if (!useSpacingFactor) {\n return null;\n }\n var bb = makeBoundingBox();\n for (var i = 0; i < nodes.length; i++) {\n var node = nodes[i];\n var pos = fnMem(node, i);\n expandBoundingBoxByPoint(bb, pos.x, pos.y);\n }\n return bb;\n };\n var bb = spacingBb();\n var getFinalPos = memoize$1(function (node, i) {\n var newPos = fnMem(node, i);\n if (useSpacingFactor) {\n var spacing = Math.abs(options.spacingFactor);\n newPos = calculateSpacing(spacing, bb, newPos);\n }\n if (options.transform != null) {\n newPos = options.transform(node, newPos);\n }\n return newPos;\n }, getMemoizeKey);\n if (options.animate) {\n for (var i = 0; i < nodes.length; i++) {\n var node = nodes[i];\n var newPos = getFinalPos(node, i);\n var animateNode = options.animateFilter == null || options.animateFilter(node, i);\n if (animateNode) {\n var ani = node.animation({\n position: newPos,\n duration: options.animationDuration,\n easing: options.animationEasing\n });\n layout.animations.push(ani);\n } else {\n node.position(newPos);\n }\n }\n if (options.fit) {\n var fitAni = cy.animation({\n fit: {\n boundingBox: layoutEles.boundingBoxAt(getFinalPos),\n padding: options.padding\n },\n duration: options.animationDuration,\n easing: options.animationEasing\n });\n layout.animations.push(fitAni);\n } else if (options.zoom !== undefined && options.pan !== undefined) {\n var zoomPanAni = cy.animation({\n zoom: options.zoom,\n pan: options.pan,\n duration: options.animationDuration,\n easing: options.animationEasing\n });\n layout.animations.push(zoomPanAni);\n }\n layout.animations.forEach(function (ani) {\n return ani.play();\n });\n layout.one('layoutready', options.ready);\n layout.emit({\n type: 'layoutready',\n layout: layout\n });\n Promise$1.all(layout.animations.map(function (ani) {\n return ani.promise();\n })).then(function () {\n layout.one('layoutstop', options.stop);\n layout.emit({\n type: 'layoutstop',\n layout: layout\n });\n });\n } else {\n nodes.positions(getFinalPos);\n if (options.fit) {\n cy.fit(options.eles, options.padding);\n }\n if (options.zoom != null) {\n cy.zoom(options.zoom);\n }\n if (options.pan) {\n cy.pan(options.pan);\n }\n layout.one('layoutready', options.ready);\n layout.emit({\n type: 'layoutready',\n layout: layout\n });\n layout.one('layoutstop', options.stop);\n layout.emit({\n type: 'layoutstop',\n layout: layout\n });\n }\n return this; // chaining\n },\n\n layout: function layout(options) {\n var cy = this.cy();\n return cy.makeLayout(extend({}, options, {\n eles: this\n }));\n }\n};\n\n// aliases:\nelesfn$5.createLayout = elesfn$5.makeLayout = elesfn$5.layout;\n\nfunction styleCache(key, fn, ele) {\n var _p = ele._private;\n var cache = _p.styleCache = _p.styleCache || [];\n var val;\n if ((val = cache[key]) != null) {\n return val;\n } else {\n val = cache[key] = fn(ele);\n return val;\n }\n}\nfunction cacheStyleFunction(key, fn) {\n key = hashString(key);\n return function cachedStyleFunction(ele) {\n return styleCache(key, fn, ele);\n };\n}\nfunction cachePrototypeStyleFunction(key, fn) {\n key = hashString(key);\n var selfFn = function selfFn(ele) {\n return fn.call(ele);\n };\n return function cachedPrototypeStyleFunction() {\n var ele = this[0];\n if (ele) {\n return styleCache(key, selfFn, ele);\n }\n };\n}\nvar elesfn$4 = {\n recalculateRenderedStyle: function recalculateRenderedStyle(useCache) {\n var cy = this.cy();\n var renderer = cy.renderer();\n var styleEnabled = cy.styleEnabled();\n if (renderer && styleEnabled) {\n renderer.recalculateRenderedStyle(this, useCache);\n }\n return this;\n },\n dirtyStyleCache: function dirtyStyleCache() {\n var cy = this.cy();\n var dirty = function dirty(ele) {\n return ele._private.styleCache = null;\n };\n if (cy.hasCompoundNodes()) {\n var eles;\n eles = this.spawnSelf().merge(this.descendants()).merge(this.parents());\n eles.merge(eles.connectedEdges());\n eles.forEach(dirty);\n } else {\n this.forEach(function (ele) {\n dirty(ele);\n ele.connectedEdges().forEach(dirty);\n });\n }\n return this;\n },\n // fully updates (recalculates) the style for the elements\n updateStyle: function updateStyle(notifyRenderer) {\n var cy = this._private.cy;\n if (!cy.styleEnabled()) {\n return this;\n }\n if (cy.batching()) {\n var bEles = cy._private.batchStyleEles;\n bEles.merge(this);\n return this; // chaining and exit early when batching\n }\n\n var hasCompounds = cy.hasCompoundNodes();\n var updatedEles = this;\n notifyRenderer = notifyRenderer || notifyRenderer === undefined ? true : false;\n if (hasCompounds) {\n // then add everything up and down for compound selector checks\n updatedEles = this.spawnSelf().merge(this.descendants()).merge(this.parents());\n }\n\n // let changedEles = style.apply( updatedEles );\n var changedEles = updatedEles;\n if (notifyRenderer) {\n changedEles.emitAndNotify('style'); // let renderer know we changed style\n } else {\n changedEles.emit('style'); // just fire the event\n }\n\n updatedEles.forEach(function (ele) {\n return ele._private.styleDirty = true;\n });\n return this; // chaining\n },\n\n // private: clears dirty flag and recalculates style\n cleanStyle: function cleanStyle() {\n var cy = this.cy();\n if (!cy.styleEnabled()) {\n return;\n }\n for (var i = 0; i < this.length; i++) {\n var ele = this[i];\n if (ele._private.styleDirty) {\n // n.b. this flag should be set before apply() to avoid potential infinite recursion\n ele._private.styleDirty = false;\n cy.style().apply(ele);\n }\n }\n },\n // get the internal parsed style object for the specified property\n parsedStyle: function parsedStyle(property) {\n var includeNonDefault = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var ele = this[0];\n var cy = ele.cy();\n if (!cy.styleEnabled()) {\n return;\n }\n if (ele) {\n this.cleanStyle();\n var overriddenStyle = ele._private.style[property];\n if (overriddenStyle != null) {\n return overriddenStyle;\n } else if (includeNonDefault) {\n return cy.style().getDefaultProperty(property);\n } else {\n return null;\n }\n }\n },\n numericStyle: function numericStyle(property) {\n var ele = this[0];\n if (!ele.cy().styleEnabled()) {\n return;\n }\n if (ele) {\n var pstyle = ele.pstyle(property);\n return pstyle.pfValue !== undefined ? pstyle.pfValue : pstyle.value;\n }\n },\n numericStyleUnits: function numericStyleUnits(property) {\n var ele = this[0];\n if (!ele.cy().styleEnabled()) {\n return;\n }\n if (ele) {\n return ele.pstyle(property).units;\n }\n },\n // get the specified css property as a rendered value (i.e. on-screen value)\n // or get the whole rendered style if no property specified (NB doesn't allow setting)\n renderedStyle: function renderedStyle(property) {\n var cy = this.cy();\n if (!cy.styleEnabled()) {\n return this;\n }\n var ele = this[0];\n if (ele) {\n return cy.style().getRenderedStyle(ele, property);\n }\n },\n // read the calculated css style of the element or override the style (via a bypass)\n style: function style(name, value) {\n var cy = this.cy();\n if (!cy.styleEnabled()) {\n return this;\n }\n var updateTransitions = false;\n var style = cy.style();\n if (plainObject(name)) {\n // then extend the bypass\n var props = name;\n style.applyBypass(this, props, updateTransitions);\n this.emitAndNotify('style'); // let the renderer know we've updated style\n } else if (string(name)) {\n if (value === undefined) {\n // then get the property from the style\n var ele = this[0];\n if (ele) {\n return style.getStylePropertyValue(ele, name);\n } else {\n // empty collection => can't get any value\n return;\n }\n } else {\n // then set the bypass with the property value\n style.applyBypass(this, name, value, updateTransitions);\n this.emitAndNotify('style'); // let the renderer know we've updated style\n }\n } else if (name === undefined) {\n var _ele = this[0];\n if (_ele) {\n return style.getRawStyle(_ele);\n } else {\n // empty collection => can't get any value\n return;\n }\n }\n return this; // chaining\n },\n\n removeStyle: function removeStyle(names) {\n var cy = this.cy();\n if (!cy.styleEnabled()) {\n return this;\n }\n var updateTransitions = false;\n var style = cy.style();\n var eles = this;\n if (names === undefined) {\n for (var i = 0; i < eles.length; i++) {\n var ele = eles[i];\n style.removeAllBypasses(ele, updateTransitions);\n }\n } else {\n names = names.split(/\\s+/);\n for (var _i = 0; _i < eles.length; _i++) {\n var _ele2 = eles[_i];\n style.removeBypasses(_ele2, names, updateTransitions);\n }\n }\n this.emitAndNotify('style'); // let the renderer know we've updated style\n\n return this; // chaining\n },\n\n show: function show() {\n this.css('display', 'element');\n return this; // chaining\n },\n\n hide: function hide() {\n this.css('display', 'none');\n return this; // chaining\n },\n\n effectiveOpacity: function effectiveOpacity() {\n var cy = this.cy();\n if (!cy.styleEnabled()) {\n return 1;\n }\n var hasCompoundNodes = cy.hasCompoundNodes();\n var ele = this[0];\n if (ele) {\n var _p = ele._private;\n var parentOpacity = ele.pstyle('opacity').value;\n if (!hasCompoundNodes) {\n return parentOpacity;\n }\n var parents = !_p.data.parent ? null : ele.parents();\n if (parents) {\n for (var i = 0; i < parents.length; i++) {\n var parent = parents[i];\n var opacity = parent.pstyle('opacity').value;\n parentOpacity = opacity * parentOpacity;\n }\n }\n return parentOpacity;\n }\n },\n transparent: function transparent() {\n var cy = this.cy();\n if (!cy.styleEnabled()) {\n return false;\n }\n var ele = this[0];\n var hasCompoundNodes = ele.cy().hasCompoundNodes();\n if (ele) {\n if (!hasCompoundNodes) {\n return ele.pstyle('opacity').value === 0;\n } else {\n return ele.effectiveOpacity() === 0;\n }\n }\n },\n backgrounding: function backgrounding() {\n var cy = this.cy();\n if (!cy.styleEnabled()) {\n return false;\n }\n var ele = this[0];\n return ele._private.backgrounding ? true : false;\n }\n};\nfunction checkCompound(ele, parentOk) {\n var _p = ele._private;\n var parents = _p.data.parent ? ele.parents() : null;\n if (parents) {\n for (var i = 0; i < parents.length; i++) {\n var parent = parents[i];\n if (!parentOk(parent)) {\n return false;\n }\n }\n }\n return true;\n}\nfunction defineDerivedStateFunction(specs) {\n var ok = specs.ok;\n var edgeOkViaNode = specs.edgeOkViaNode || specs.ok;\n var parentOk = specs.parentOk || specs.ok;\n return function () {\n var cy = this.cy();\n if (!cy.styleEnabled()) {\n return true;\n }\n var ele = this[0];\n var hasCompoundNodes = cy.hasCompoundNodes();\n if (ele) {\n var _p = ele._private;\n if (!ok(ele)) {\n return false;\n }\n if (ele.isNode()) {\n return !hasCompoundNodes || checkCompound(ele, parentOk);\n } else {\n var src = _p.source;\n var tgt = _p.target;\n return edgeOkViaNode(src) && (!hasCompoundNodes || checkCompound(src, edgeOkViaNode)) && (src === tgt || edgeOkViaNode(tgt) && (!hasCompoundNodes || checkCompound(tgt, edgeOkViaNode)));\n }\n }\n };\n}\nvar eleTakesUpSpace = cacheStyleFunction('eleTakesUpSpace', function (ele) {\n return ele.pstyle('display').value === 'element' && ele.width() !== 0 && (ele.isNode() ? ele.height() !== 0 : true);\n});\nelesfn$4.takesUpSpace = cachePrototypeStyleFunction('takesUpSpace', defineDerivedStateFunction({\n ok: eleTakesUpSpace\n}));\nvar eleInteractive = cacheStyleFunction('eleInteractive', function (ele) {\n return ele.pstyle('events').value === 'yes' && ele.pstyle('visibility').value === 'visible' && eleTakesUpSpace(ele);\n});\nvar parentInteractive = cacheStyleFunction('parentInteractive', function (parent) {\n return parent.pstyle('visibility').value === 'visible' && eleTakesUpSpace(parent);\n});\nelesfn$4.interactive = cachePrototypeStyleFunction('interactive', defineDerivedStateFunction({\n ok: eleInteractive,\n parentOk: parentInteractive,\n edgeOkViaNode: eleTakesUpSpace\n}));\nelesfn$4.noninteractive = function () {\n var ele = this[0];\n if (ele) {\n return !ele.interactive();\n }\n};\nvar eleVisible = cacheStyleFunction('eleVisible', function (ele) {\n return ele.pstyle('visibility').value === 'visible' && ele.pstyle('opacity').pfValue !== 0 && eleTakesUpSpace(ele);\n});\nvar edgeVisibleViaNode = eleTakesUpSpace;\nelesfn$4.visible = cachePrototypeStyleFunction('visible', defineDerivedStateFunction({\n ok: eleVisible,\n edgeOkViaNode: edgeVisibleViaNode\n}));\nelesfn$4.hidden = function () {\n var ele = this[0];\n if (ele) {\n return !ele.visible();\n }\n};\nelesfn$4.isBundledBezier = cachePrototypeStyleFunction('isBundledBezier', function () {\n if (!this.cy().styleEnabled()) {\n return false;\n }\n return !this.removed() && this.pstyle('curve-style').value === 'bezier' && this.takesUpSpace();\n});\nelesfn$4.bypass = elesfn$4.css = elesfn$4.style;\nelesfn$4.renderedCss = elesfn$4.renderedStyle;\nelesfn$4.removeBypass = elesfn$4.removeCss = elesfn$4.removeStyle;\nelesfn$4.pstyle = elesfn$4.parsedStyle;\n\nvar elesfn$3 = {};\nfunction defineSwitchFunction(params) {\n return function () {\n var args = arguments;\n var changedEles = [];\n\n // e.g. cy.nodes().select( data, handler )\n if (args.length === 2) {\n var data = args[0];\n var handler = args[1];\n this.on(params.event, data, handler);\n }\n\n // e.g. cy.nodes().select( handler )\n else if (args.length === 1 && fn$6(args[0])) {\n var _handler = args[0];\n this.on(params.event, _handler);\n }\n\n // e.g. cy.nodes().select()\n // e.g. (private) cy.nodes().select(['tapselect'])\n else if (args.length === 0 || args.length === 1 && array(args[0])) {\n var addlEvents = args.length === 1 ? args[0] : null;\n for (var i = 0; i < this.length; i++) {\n var ele = this[i];\n var able = !params.ableField || ele._private[params.ableField];\n var changed = ele._private[params.field] != params.value;\n if (params.overrideAble) {\n var overrideAble = params.overrideAble(ele);\n if (overrideAble !== undefined) {\n able = overrideAble;\n if (!overrideAble) {\n return this;\n } // to save cycles assume not able for all on override\n }\n }\n\n if (able) {\n ele._private[params.field] = params.value;\n if (changed) {\n changedEles.push(ele);\n }\n }\n }\n var changedColl = this.spawn(changedEles);\n changedColl.updateStyle(); // change of state => possible change of style\n changedColl.emit(params.event);\n if (addlEvents) {\n changedColl.emit(addlEvents);\n }\n }\n return this;\n };\n}\nfunction defineSwitchSet(params) {\n elesfn$3[params.field] = function () {\n var ele = this[0];\n if (ele) {\n if (params.overrideField) {\n var val = params.overrideField(ele);\n if (val !== undefined) {\n return val;\n }\n }\n return ele._private[params.field];\n }\n };\n elesfn$3[params.on] = defineSwitchFunction({\n event: params.on,\n field: params.field,\n ableField: params.ableField,\n overrideAble: params.overrideAble,\n value: true\n });\n elesfn$3[params.off] = defineSwitchFunction({\n event: params.off,\n field: params.field,\n ableField: params.ableField,\n overrideAble: params.overrideAble,\n value: false\n });\n}\ndefineSwitchSet({\n field: 'locked',\n overrideField: function overrideField(ele) {\n return ele.cy().autolock() ? true : undefined;\n },\n on: 'lock',\n off: 'unlock'\n});\ndefineSwitchSet({\n field: 'grabbable',\n overrideField: function overrideField(ele) {\n return ele.cy().autoungrabify() || ele.pannable() ? false : undefined;\n },\n on: 'grabify',\n off: 'ungrabify'\n});\ndefineSwitchSet({\n field: 'selected',\n ableField: 'selectable',\n overrideAble: function overrideAble(ele) {\n return ele.cy().autounselectify() ? false : undefined;\n },\n on: 'select',\n off: 'unselect'\n});\ndefineSwitchSet({\n field: 'selectable',\n overrideField: function overrideField(ele) {\n return ele.cy().autounselectify() ? false : undefined;\n },\n on: 'selectify',\n off: 'unselectify'\n});\nelesfn$3.deselect = elesfn$3.unselect;\nelesfn$3.grabbed = function () {\n var ele = this[0];\n if (ele) {\n return ele._private.grabbed;\n }\n};\ndefineSwitchSet({\n field: 'active',\n on: 'activate',\n off: 'unactivate'\n});\ndefineSwitchSet({\n field: 'pannable',\n on: 'panify',\n off: 'unpanify'\n});\nelesfn$3.inactive = function () {\n var ele = this[0];\n if (ele) {\n return !ele._private.active;\n }\n};\n\nvar elesfn$2 = {};\n\n// DAG functions\n////////////////\n\nvar defineDagExtremity = function defineDagExtremity(params) {\n return function dagExtremityImpl(selector) {\n var eles = this;\n var ret = [];\n for (var i = 0; i < eles.length; i++) {\n var ele = eles[i];\n if (!ele.isNode()) {\n continue;\n }\n var disqualified = false;\n var edges = ele.connectedEdges();\n for (var j = 0; j < edges.length; j++) {\n var edge = edges[j];\n var src = edge.source();\n var tgt = edge.target();\n if (params.noIncomingEdges && tgt === ele && src !== ele || params.noOutgoingEdges && src === ele && tgt !== ele) {\n disqualified = true;\n break;\n }\n }\n if (!disqualified) {\n ret.push(ele);\n }\n }\n return this.spawn(ret, true).filter(selector);\n };\n};\nvar defineDagOneHop = function defineDagOneHop(params) {\n return function (selector) {\n var eles = this;\n var oEles = [];\n for (var i = 0; i < eles.length; i++) {\n var ele = eles[i];\n if (!ele.isNode()) {\n continue;\n }\n var edges = ele.connectedEdges();\n for (var j = 0; j < edges.length; j++) {\n var edge = edges[j];\n var src = edge.source();\n var tgt = edge.target();\n if (params.outgoing && src === ele) {\n oEles.push(edge);\n oEles.push(tgt);\n } else if (params.incoming && tgt === ele) {\n oEles.push(edge);\n oEles.push(src);\n }\n }\n }\n return this.spawn(oEles, true).filter(selector);\n };\n};\nvar defineDagAllHops = function defineDagAllHops(params) {\n return function (selector) {\n var eles = this;\n var sEles = [];\n var sElesIds = {};\n for (;;) {\n var next = params.outgoing ? eles.outgoers() : eles.incomers();\n if (next.length === 0) {\n break;\n } // done if none left\n\n var newNext = false;\n for (var i = 0; i < next.length; i++) {\n var n = next[i];\n var nid = n.id();\n if (!sElesIds[nid]) {\n sElesIds[nid] = true;\n sEles.push(n);\n newNext = true;\n }\n }\n if (!newNext) {\n break;\n } // done if touched all outgoers already\n\n eles = next;\n }\n return this.spawn(sEles, true).filter(selector);\n };\n};\nelesfn$2.clearTraversalCache = function () {\n for (var i = 0; i < this.length; i++) {\n this[i]._private.traversalCache = null;\n }\n};\nextend(elesfn$2, {\n // get the root nodes in the DAG\n roots: defineDagExtremity({\n noIncomingEdges: true\n }),\n // get the leaf nodes in the DAG\n leaves: defineDagExtremity({\n noOutgoingEdges: true\n }),\n // normally called children in graph theory\n // these nodes =edges=> outgoing nodes\n outgoers: cache(defineDagOneHop({\n outgoing: true\n }), 'outgoers'),\n // aka DAG descendants\n successors: defineDagAllHops({\n outgoing: true\n }),\n // normally called parents in graph theory\n // these nodes <=edges= incoming nodes\n incomers: cache(defineDagOneHop({\n incoming: true\n }), 'incomers'),\n // aka DAG ancestors\n predecessors: defineDagAllHops({\n incoming: true\n })\n});\n\n// Neighbourhood functions\n//////////////////////////\n\nextend(elesfn$2, {\n neighborhood: cache(function (selector) {\n var elements = [];\n var nodes = this.nodes();\n for (var i = 0; i < nodes.length; i++) {\n // for all nodes\n var node = nodes[i];\n var connectedEdges = node.connectedEdges();\n\n // for each connected edge, add the edge and the other node\n for (var j = 0; j < connectedEdges.length; j++) {\n var edge = connectedEdges[j];\n var src = edge.source();\n var tgt = edge.target();\n var otherNode = node === src ? tgt : src;\n\n // need check in case of loop\n if (otherNode.length > 0) {\n elements.push(otherNode[0]); // add node 1 hop away\n }\n\n // add connected edge\n elements.push(edge[0]);\n }\n }\n return this.spawn(elements, true).filter(selector);\n }, 'neighborhood'),\n closedNeighborhood: function closedNeighborhood(selector) {\n return this.neighborhood().add(this).filter(selector);\n },\n openNeighborhood: function openNeighborhood(selector) {\n return this.neighborhood(selector);\n }\n});\n\n// aliases\nelesfn$2.neighbourhood = elesfn$2.neighborhood;\nelesfn$2.closedNeighbourhood = elesfn$2.closedNeighborhood;\nelesfn$2.openNeighbourhood = elesfn$2.openNeighborhood;\n\n// Edge functions\n/////////////////\n\nextend(elesfn$2, {\n source: cache(function sourceImpl(selector) {\n var ele = this[0];\n var src;\n if (ele) {\n src = ele._private.source || ele.cy().collection();\n }\n return src && selector ? src.filter(selector) : src;\n }, 'source'),\n target: cache(function targetImpl(selector) {\n var ele = this[0];\n var tgt;\n if (ele) {\n tgt = ele._private.target || ele.cy().collection();\n }\n return tgt && selector ? tgt.filter(selector) : tgt;\n }, 'target'),\n sources: defineSourceFunction({\n attr: 'source'\n }),\n targets: defineSourceFunction({\n attr: 'target'\n })\n});\nfunction defineSourceFunction(params) {\n return function sourceImpl(selector) {\n var sources = [];\n for (var i = 0; i < this.length; i++) {\n var ele = this[i];\n var src = ele._private[params.attr];\n if (src) {\n sources.push(src);\n }\n }\n return this.spawn(sources, true).filter(selector);\n };\n}\nextend(elesfn$2, {\n edgesWith: cache(defineEdgesWithFunction(), 'edgesWith'),\n edgesTo: cache(defineEdgesWithFunction({\n thisIsSrc: true\n }), 'edgesTo')\n});\nfunction defineEdgesWithFunction(params) {\n return function edgesWithImpl(otherNodes) {\n var elements = [];\n var cy = this._private.cy;\n var p = params || {};\n\n // get elements if a selector is specified\n if (string(otherNodes)) {\n otherNodes = cy.$(otherNodes);\n }\n for (var h = 0; h < otherNodes.length; h++) {\n var edges = otherNodes[h]._private.edges;\n for (var i = 0; i < edges.length; i++) {\n var edge = edges[i];\n var edgeData = edge._private.data;\n var thisToOther = this.hasElementWithId(edgeData.source) && otherNodes.hasElementWithId(edgeData.target);\n var otherToThis = otherNodes.hasElementWithId(edgeData.source) && this.hasElementWithId(edgeData.target);\n var edgeConnectsThisAndOther = thisToOther || otherToThis;\n if (!edgeConnectsThisAndOther) {\n continue;\n }\n if (p.thisIsSrc || p.thisIsTgt) {\n if (p.thisIsSrc && !thisToOther) {\n continue;\n }\n if (p.thisIsTgt && !otherToThis) {\n continue;\n }\n }\n elements.push(edge);\n }\n }\n return this.spawn(elements, true);\n };\n}\nextend(elesfn$2, {\n connectedEdges: cache(function (selector) {\n var retEles = [];\n var eles = this;\n for (var i = 0; i < eles.length; i++) {\n var node = eles[i];\n if (!node.isNode()) {\n continue;\n }\n var edges = node._private.edges;\n for (var j = 0; j < edges.length; j++) {\n var edge = edges[j];\n retEles.push(edge);\n }\n }\n return this.spawn(retEles, true).filter(selector);\n }, 'connectedEdges'),\n connectedNodes: cache(function (selector) {\n var retEles = [];\n var eles = this;\n for (var i = 0; i < eles.length; i++) {\n var edge = eles[i];\n if (!edge.isEdge()) {\n continue;\n }\n retEles.push(edge.source()[0]);\n retEles.push(edge.target()[0]);\n }\n return this.spawn(retEles, true).filter(selector);\n }, 'connectedNodes'),\n parallelEdges: cache(defineParallelEdgesFunction(), 'parallelEdges'),\n codirectedEdges: cache(defineParallelEdgesFunction({\n codirected: true\n }), 'codirectedEdges')\n});\nfunction defineParallelEdgesFunction(params) {\n var defaults = {\n codirected: false\n };\n params = extend({}, defaults, params);\n return function parallelEdgesImpl(selector) {\n // micro-optimised for renderer\n var elements = [];\n var edges = this.edges();\n var p = params;\n\n // look at all the edges in the collection\n for (var i = 0; i < edges.length; i++) {\n var edge1 = edges[i];\n var edge1_p = edge1._private;\n var src1 = edge1_p.source;\n var srcid1 = src1._private.data.id;\n var tgtid1 = edge1_p.data.target;\n var srcEdges1 = src1._private.edges;\n\n // look at edges connected to the src node of this edge\n for (var j = 0; j < srcEdges1.length; j++) {\n var edge2 = srcEdges1[j];\n var edge2data = edge2._private.data;\n var tgtid2 = edge2data.target;\n var srcid2 = edge2data.source;\n var codirected = tgtid2 === tgtid1 && srcid2 === srcid1;\n var oppdirected = srcid1 === tgtid2 && tgtid1 === srcid2;\n if (p.codirected && codirected || !p.codirected && (codirected || oppdirected)) {\n elements.push(edge2);\n }\n }\n }\n return this.spawn(elements, true).filter(selector);\n };\n}\n\n// Misc functions\n/////////////////\n\nextend(elesfn$2, {\n components: function components(root) {\n var self = this;\n var cy = self.cy();\n var visited = cy.collection();\n var unvisited = root == null ? self.nodes() : root.nodes();\n var components = [];\n if (root != null && unvisited.empty()) {\n // root may contain only edges\n unvisited = root.sources(); // doesn't matter which node to use (undirected), so just use the source sides\n }\n\n var visitInComponent = function visitInComponent(node, component) {\n visited.merge(node);\n unvisited.unmerge(node);\n component.merge(node);\n };\n if (unvisited.empty()) {\n return self.spawn();\n }\n var _loop = function _loop() {\n // each iteration yields a component\n var cmpt = cy.collection();\n components.push(cmpt);\n var root = unvisited[0];\n visitInComponent(root, cmpt);\n self.bfs({\n directed: false,\n roots: root,\n visit: function visit(v) {\n return visitInComponent(v, cmpt);\n }\n });\n cmpt.forEach(function (node) {\n node.connectedEdges().forEach(function (e) {\n // connectedEdges() usually cached\n if (self.has(e) && cmpt.has(e.source()) && cmpt.has(e.target())) {\n // has() is cheap\n cmpt.merge(e); // forEach() only considers nodes -- sets N at call time\n }\n });\n });\n };\n do {\n _loop();\n } while (unvisited.length > 0);\n return components;\n },\n component: function component() {\n var ele = this[0];\n return ele.cy().mutableElements().components(ele)[0];\n }\n});\nelesfn$2.componentsOf = elesfn$2.components;\n\n// represents a set of nodes, edges, or both together\nvar Collection = function Collection(cy, elements) {\n var unique = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var removed = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n if (cy === undefined) {\n error('A collection must have a reference to the core');\n return;\n }\n var map = new Map$2();\n var createdElements = false;\n if (!elements) {\n elements = [];\n } else if (elements.length > 0 && plainObject(elements[0]) && !element(elements[0])) {\n createdElements = true;\n\n // make elements from json and restore all at once later\n var eles = [];\n var elesIds = new Set$1();\n for (var i = 0, l = elements.length; i < l; i++) {\n var json = elements[i];\n if (json.data == null) {\n json.data = {};\n }\n var _data = json.data;\n\n // make sure newly created elements have valid ids\n if (_data.id == null) {\n _data.id = uuid();\n } else if (cy.hasElementWithId(_data.id) || elesIds.has(_data.id)) {\n continue; // can't create element if prior id already exists\n }\n\n var ele = new Element(cy, json, false);\n eles.push(ele);\n elesIds.add(_data.id);\n }\n elements = eles;\n }\n this.length = 0;\n for (var _i = 0, _l = elements.length; _i < _l; _i++) {\n var element$1 = elements[_i][0]; // [0] in case elements is an array of collections, rather than array of elements\n if (element$1 == null) {\n continue;\n }\n var id = element$1._private.data.id;\n if (!unique || !map.has(id)) {\n if (unique) {\n map.set(id, {\n index: this.length,\n ele: element$1\n });\n }\n this[this.length] = element$1;\n this.length++;\n }\n }\n this._private = {\n eles: this,\n cy: cy,\n get map() {\n if (this.lazyMap == null) {\n this.rebuildMap();\n }\n return this.lazyMap;\n },\n set map(m) {\n this.lazyMap = m;\n },\n rebuildMap: function rebuildMap() {\n var m = this.lazyMap = new Map$2();\n var eles = this.eles;\n for (var _i2 = 0; _i2 < eles.length; _i2++) {\n var _ele = eles[_i2];\n m.set(_ele.id(), {\n index: _i2,\n ele: _ele\n });\n }\n }\n };\n if (unique) {\n this._private.map = map;\n }\n\n // restore the elements if we created them from json\n if (createdElements && !removed) {\n this.restore();\n }\n};\n\n// Functions\n////////////////////////////////////////////////////////////////////////////////////////////////////\n\n// keep the prototypes in sync (an element has the same functions as a collection)\n// and use elefn and elesfn as shorthands to the prototypes\nvar elesfn$1 = Element.prototype = Collection.prototype = Object.create(Array.prototype);\nelesfn$1.instanceString = function () {\n return 'collection';\n};\nelesfn$1.spawn = function (eles, unique) {\n return new Collection(this.cy(), eles, unique);\n};\nelesfn$1.spawnSelf = function () {\n return this.spawn(this);\n};\nelesfn$1.cy = function () {\n return this._private.cy;\n};\nelesfn$1.renderer = function () {\n return this._private.cy.renderer();\n};\nelesfn$1.element = function () {\n return this[0];\n};\nelesfn$1.collection = function () {\n if (collection(this)) {\n return this;\n } else {\n // an element\n return new Collection(this._private.cy, [this]);\n }\n};\nelesfn$1.unique = function () {\n return new Collection(this._private.cy, this, true);\n};\nelesfn$1.hasElementWithId = function (id) {\n id = '' + id; // id must be string\n\n return this._private.map.has(id);\n};\nelesfn$1.getElementById = function (id) {\n id = '' + id; // id must be string\n\n var cy = this._private.cy;\n var entry = this._private.map.get(id);\n return entry ? entry.ele : new Collection(cy); // get ele or empty collection\n};\n\nelesfn$1.$id = elesfn$1.getElementById;\nelesfn$1.poolIndex = function () {\n var cy = this._private.cy;\n var eles = cy._private.elements;\n var id = this[0]._private.data.id;\n return eles._private.map.get(id).index;\n};\nelesfn$1.indexOf = function (ele) {\n var id = ele[0]._private.data.id;\n return this._private.map.get(id).index;\n};\nelesfn$1.indexOfId = function (id) {\n id = '' + id; // id must be string\n\n return this._private.map.get(id).index;\n};\nelesfn$1.json = function (obj) {\n var ele = this.element();\n var cy = this.cy();\n if (ele == null && obj) {\n return this;\n } // can't set to no eles\n\n if (ele == null) {\n return undefined;\n } // can't get from no eles\n\n var p = ele._private;\n if (plainObject(obj)) {\n // set\n\n cy.startBatch();\n if (obj.data) {\n ele.data(obj.data);\n var _data2 = p.data;\n if (ele.isEdge()) {\n // source and target are immutable via data()\n var move = false;\n var spec = {};\n var src = obj.data.source;\n var tgt = obj.data.target;\n if (src != null && src != _data2.source) {\n spec.source = '' + src; // id must be string\n move = true;\n }\n if (tgt != null && tgt != _data2.target) {\n spec.target = '' + tgt; // id must be string\n move = true;\n }\n if (move) {\n ele = ele.move(spec);\n }\n } else {\n // parent is immutable via data()\n var newParentValSpecd = ('parent' in obj.data);\n var parent = obj.data.parent;\n if (newParentValSpecd && (parent != null || _data2.parent != null) && parent != _data2.parent) {\n if (parent === undefined) {\n // can't set undefined imperatively, so use null\n parent = null;\n }\n if (parent != null) {\n parent = '' + parent; // id must be string\n }\n\n ele = ele.move({\n parent: parent\n });\n }\n }\n }\n if (obj.position) {\n ele.position(obj.position);\n }\n\n // ignore group -- immutable\n\n var checkSwitch = function checkSwitch(k, trueFnName, falseFnName) {\n var obj_k = obj[k];\n if (obj_k != null && obj_k !== p[k]) {\n if (obj_k) {\n ele[trueFnName]();\n } else {\n ele[falseFnName]();\n }\n }\n };\n checkSwitch('removed', 'remove', 'restore');\n checkSwitch('selected', 'select', 'unselect');\n checkSwitch('selectable', 'selectify', 'unselectify');\n checkSwitch('locked', 'lock', 'unlock');\n checkSwitch('grabbable', 'grabify', 'ungrabify');\n checkSwitch('pannable', 'panify', 'unpanify');\n if (obj.classes != null) {\n ele.classes(obj.classes);\n }\n cy.endBatch();\n return this;\n } else if (obj === undefined) {\n // get\n\n var json = {\n data: copy(p.data),\n position: copy(p.position),\n group: p.group,\n removed: p.removed,\n selected: p.selected,\n selectable: p.selectable,\n locked: p.locked,\n grabbable: p.grabbable,\n pannable: p.pannable,\n classes: null\n };\n json.classes = '';\n var i = 0;\n p.classes.forEach(function (cls) {\n return json.classes += i++ === 0 ? cls : ' ' + cls;\n });\n return json;\n }\n};\nelesfn$1.jsons = function () {\n var jsons = [];\n for (var i = 0; i < this.length; i++) {\n var ele = this[i];\n var json = ele.json();\n jsons.push(json);\n }\n return jsons;\n};\nelesfn$1.clone = function () {\n var cy = this.cy();\n var elesArr = [];\n for (var i = 0; i < this.length; i++) {\n var ele = this[i];\n var json = ele.json();\n var clone = new Element(cy, json, false); // NB no restore\n\n elesArr.push(clone);\n }\n return new Collection(cy, elesArr);\n};\nelesfn$1.copy = elesfn$1.clone;\nelesfn$1.restore = function () {\n var notifyRenderer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n var addToPool = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var self = this;\n var cy = self.cy();\n var cy_p = cy._private;\n\n // create arrays of nodes and edges, since we need to\n // restore the nodes first\n var nodes = [];\n var edges = [];\n var elements;\n for (var _i3 = 0, l = self.length; _i3 < l; _i3++) {\n var ele = self[_i3];\n if (addToPool && !ele.removed()) {\n // don't need to handle this ele\n continue;\n }\n\n // keep nodes first in the array and edges after\n if (ele.isNode()) {\n // put to front of array if node\n nodes.push(ele);\n } else {\n // put to end of array if edge\n edges.push(ele);\n }\n }\n elements = nodes.concat(edges);\n var i;\n var removeFromElements = function removeFromElements() {\n elements.splice(i, 1);\n i--;\n };\n\n // now, restore each element\n for (i = 0; i < elements.length; i++) {\n var _ele2 = elements[i];\n var _private = _ele2._private;\n var _data3 = _private.data;\n\n // the traversal cache should start fresh when ele is added\n _ele2.clearTraversalCache();\n\n // set id and validate\n if (!addToPool && !_private.removed) ; else if (_data3.id === undefined) {\n _data3.id = uuid();\n } else if (number$1(_data3.id)) {\n _data3.id = '' + _data3.id; // now it's a string\n } else if (emptyString(_data3.id) || !string(_data3.id)) {\n error('Can not create element with invalid string ID `' + _data3.id + '`');\n\n // can't create element if it has empty string as id or non-string id\n removeFromElements();\n continue;\n } else if (cy.hasElementWithId(_data3.id)) {\n error('Can not create second element with ID `' + _data3.id + '`');\n\n // can't create element if one already has that id\n removeFromElements();\n continue;\n }\n var id = _data3.id; // id is finalised, now let's keep a ref\n\n if (_ele2.isNode()) {\n // extra checks for nodes\n var pos = _private.position;\n\n // make sure the nodes have a defined position\n\n if (pos.x == null) {\n pos.x = 0;\n }\n if (pos.y == null) {\n pos.y = 0;\n }\n }\n if (_ele2.isEdge()) {\n // extra checks for edges\n\n var edge = _ele2;\n var fields = ['source', 'target'];\n var fieldsLength = fields.length;\n var badSourceOrTarget = false;\n for (var j = 0; j < fieldsLength; j++) {\n var field = fields[j];\n var val = _data3[field];\n if (number$1(val)) {\n val = _data3[field] = '' + _data3[field]; // now string\n }\n\n if (val == null || val === '') {\n // can't create if source or target is not defined properly\n error('Can not create edge `' + id + '` with unspecified ' + field);\n badSourceOrTarget = true;\n } else if (!cy.hasElementWithId(val)) {\n // can't create edge if one of its nodes doesn't exist\n error('Can not create edge `' + id + '` with nonexistant ' + field + ' `' + val + '`');\n badSourceOrTarget = true;\n }\n }\n if (badSourceOrTarget) {\n removeFromElements();\n continue;\n } // can't create this\n\n var src = cy.getElementById(_data3.source);\n var tgt = cy.getElementById(_data3.target);\n\n // only one edge in node if loop\n if (src.same(tgt)) {\n src._private.edges.push(edge);\n } else {\n src._private.edges.push(edge);\n tgt._private.edges.push(edge);\n }\n edge._private.source = src;\n edge._private.target = tgt;\n } // if is edge\n\n // create mock ids / indexes maps for element so it can be used like collections\n _private.map = new Map$2();\n _private.map.set(id, {\n ele: _ele2,\n index: 0\n });\n _private.removed = false;\n if (addToPool) {\n cy.addToPool(_ele2);\n }\n } // for each element\n\n // do compound node sanity checks\n for (var _i4 = 0; _i4 < nodes.length; _i4++) {\n // each node\n var node = nodes[_i4];\n var _data4 = node._private.data;\n if (number$1(_data4.parent)) {\n // then automake string\n _data4.parent = '' + _data4.parent;\n }\n var parentId = _data4.parent;\n var specifiedParent = parentId != null;\n if (specifiedParent || node._private.parent) {\n var parent = node._private.parent ? cy.collection().merge(node._private.parent) : cy.getElementById(parentId);\n if (parent.empty()) {\n // non-existant parent; just remove it\n _data4.parent = undefined;\n } else if (parent[0].removed()) {\n warn('Node added with missing parent, reference to parent removed');\n _data4.parent = undefined;\n node._private.parent = null;\n } else {\n var selfAsParent = false;\n var ancestor = parent;\n while (!ancestor.empty()) {\n if (node.same(ancestor)) {\n // mark self as parent and remove from data\n selfAsParent = true;\n _data4.parent = undefined; // remove parent reference\n\n // exit or we loop forever\n break;\n }\n ancestor = ancestor.parent();\n }\n if (!selfAsParent) {\n // connect with children\n parent[0]._private.children.push(node);\n node._private.parent = parent[0];\n\n // let the core know we have a compound graph\n cy_p.hasCompoundNodes = true;\n }\n } // else\n } // if specified parent\n } // for each node\n\n if (elements.length > 0) {\n var restored = elements.length === self.length ? self : new Collection(cy, elements);\n for (var _i5 = 0; _i5 < restored.length; _i5++) {\n var _ele3 = restored[_i5];\n if (_ele3.isNode()) {\n continue;\n }\n\n // adding an edge invalidates the traversal caches for the parallel edges\n _ele3.parallelEdges().clearTraversalCache();\n\n // adding an edge invalidates the traversal cache for the connected nodes\n _ele3.source().clearTraversalCache();\n _ele3.target().clearTraversalCache();\n }\n var toUpdateStyle;\n if (cy_p.hasCompoundNodes) {\n toUpdateStyle = cy.collection().merge(restored).merge(restored.connectedNodes()).merge(restored.parent());\n } else {\n toUpdateStyle = restored;\n }\n toUpdateStyle.dirtyCompoundBoundsCache().dirtyBoundingBoxCache().updateStyle(notifyRenderer);\n if (notifyRenderer) {\n restored.emitAndNotify('add');\n } else if (addToPool) {\n restored.emit('add');\n }\n }\n return self; // chainability\n};\n\nelesfn$1.removed = function () {\n var ele = this[0];\n return ele && ele._private.removed;\n};\nelesfn$1.inside = function () {\n var ele = this[0];\n return ele && !ele._private.removed;\n};\nelesfn$1.remove = function () {\n var notifyRenderer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n var removeFromPool = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var self = this;\n var elesToRemove = [];\n var elesToRemoveIds = {};\n var cy = self._private.cy;\n\n // add connected edges\n function addConnectedEdges(node) {\n var edges = node._private.edges;\n for (var i = 0; i < edges.length; i++) {\n add(edges[i]);\n }\n }\n\n // add descendant nodes\n function addChildren(node) {\n var children = node._private.children;\n for (var i = 0; i < children.length; i++) {\n add(children[i]);\n }\n }\n function add(ele) {\n var alreadyAdded = elesToRemoveIds[ele.id()];\n if (removeFromPool && ele.removed() || alreadyAdded) {\n return;\n } else {\n elesToRemoveIds[ele.id()] = true;\n }\n if (ele.isNode()) {\n elesToRemove.push(ele); // nodes are removed last\n\n addConnectedEdges(ele);\n addChildren(ele);\n } else {\n elesToRemove.unshift(ele); // edges are removed first\n }\n }\n\n // make the list of elements to remove\n // (may be removing more than specified due to connected edges etc)\n\n for (var i = 0, l = self.length; i < l; i++) {\n var ele = self[i];\n add(ele);\n }\n function removeEdgeRef(node, edge) {\n var connectedEdges = node._private.edges;\n removeFromArray(connectedEdges, edge);\n\n // removing an edges invalidates the traversal cache for its nodes\n node.clearTraversalCache();\n }\n function removeParallelRef(pllEdge) {\n // removing an edge invalidates the traversal caches for the parallel edges\n pllEdge.clearTraversalCache();\n }\n var alteredParents = [];\n alteredParents.ids = {};\n function removeChildRef(parent, ele) {\n ele = ele[0];\n parent = parent[0];\n var children = parent._private.children;\n var pid = parent.id();\n removeFromArray(children, ele); // remove parent => child ref\n\n ele._private.parent = null; // remove child => parent ref\n\n if (!alteredParents.ids[pid]) {\n alteredParents.ids[pid] = true;\n alteredParents.push(parent);\n }\n }\n self.dirtyCompoundBoundsCache();\n if (removeFromPool) {\n cy.removeFromPool(elesToRemove); // remove from core pool\n }\n\n for (var _i6 = 0; _i6 < elesToRemove.length; _i6++) {\n var _ele4 = elesToRemove[_i6];\n if (_ele4.isEdge()) {\n // remove references to this edge in its connected nodes\n var src = _ele4.source()[0];\n var tgt = _ele4.target()[0];\n removeEdgeRef(src, _ele4);\n removeEdgeRef(tgt, _ele4);\n var pllEdges = _ele4.parallelEdges();\n for (var j = 0; j < pllEdges.length; j++) {\n var pllEdge = pllEdges[j];\n removeParallelRef(pllEdge);\n if (pllEdge.isBundledBezier()) {\n pllEdge.dirtyBoundingBoxCache();\n }\n }\n } else {\n // remove reference to parent\n var parent = _ele4.parent();\n if (parent.length !== 0) {\n removeChildRef(parent, _ele4);\n }\n }\n if (removeFromPool) {\n // mark as removed\n _ele4._private.removed = true;\n }\n }\n\n // check to see if we have a compound graph or not\n var elesStillInside = cy._private.elements;\n cy._private.hasCompoundNodes = false;\n for (var _i7 = 0; _i7 < elesStillInside.length; _i7++) {\n var _ele5 = elesStillInside[_i7];\n if (_ele5.isParent()) {\n cy._private.hasCompoundNodes = true;\n break;\n }\n }\n var removedElements = new Collection(this.cy(), elesToRemove);\n if (removedElements.size() > 0) {\n // must manually notify since trigger won't do this automatically once removed\n\n if (notifyRenderer) {\n removedElements.emitAndNotify('remove');\n } else if (removeFromPool) {\n removedElements.emit('remove');\n }\n }\n\n // the parents who were modified by the removal need their style updated\n for (var _i8 = 0; _i8 < alteredParents.length; _i8++) {\n var _ele6 = alteredParents[_i8];\n if (!removeFromPool || !_ele6.removed()) {\n _ele6.updateStyle();\n }\n }\n return removedElements;\n};\nelesfn$1.move = function (struct) {\n var cy = this._private.cy;\n var eles = this;\n\n // just clean up refs, caches, etc. in the same way as when removing and then restoring\n // (our calls to remove/restore do not remove from the graph or make events)\n var notifyRenderer = false;\n var modifyPool = false;\n var toString = function toString(id) {\n return id == null ? id : '' + id;\n }; // id must be string\n\n if (struct.source !== undefined || struct.target !== undefined) {\n var srcId = toString(struct.source);\n var tgtId = toString(struct.target);\n var srcExists = srcId != null && cy.hasElementWithId(srcId);\n var tgtExists = tgtId != null && cy.hasElementWithId(tgtId);\n if (srcExists || tgtExists) {\n cy.batch(function () {\n // avoid duplicate style updates\n eles.remove(notifyRenderer, modifyPool); // clean up refs etc.\n eles.emitAndNotify('moveout');\n for (var i = 0; i < eles.length; i++) {\n var ele = eles[i];\n var _data5 = ele._private.data;\n if (ele.isEdge()) {\n if (srcExists) {\n _data5.source = srcId;\n }\n if (tgtExists) {\n _data5.target = tgtId;\n }\n }\n }\n eles.restore(notifyRenderer, modifyPool); // make new refs, style, etc.\n });\n\n eles.emitAndNotify('move');\n }\n } else if (struct.parent !== undefined) {\n // move node to new parent\n var parentId = toString(struct.parent);\n var parentExists = parentId === null || cy.hasElementWithId(parentId);\n if (parentExists) {\n var pidToAssign = parentId === null ? undefined : parentId;\n cy.batch(function () {\n // avoid duplicate style updates\n var updated = eles.remove(notifyRenderer, modifyPool); // clean up refs etc.\n updated.emitAndNotify('moveout');\n for (var i = 0; i < eles.length; i++) {\n var ele = eles[i];\n var _data6 = ele._private.data;\n if (ele.isNode()) {\n _data6.parent = pidToAssign;\n }\n }\n updated.restore(notifyRenderer, modifyPool); // make new refs, style, etc.\n });\n\n eles.emitAndNotify('move');\n }\n }\n return this;\n};\n[elesfn$j, elesfn$i, elesfn$h, elesfn$g, elesfn$f, data, elesfn$d, dimensions, elesfn$9, elesfn$8, elesfn$7, elesfn$6, elesfn$5, elesfn$4, elesfn$3, elesfn$2].forEach(function (props) {\n extend(elesfn$1, props);\n});\n\nvar corefn$9 = {\n add: function add(opts) {\n var elements;\n var cy = this;\n\n // add the elements\n if (elementOrCollection(opts)) {\n var eles = opts;\n if (eles._private.cy === cy) {\n // same instance => just restore\n elements = eles.restore();\n } else {\n // otherwise, copy from json\n var jsons = [];\n for (var i = 0; i < eles.length; i++) {\n var ele = eles[i];\n jsons.push(ele.json());\n }\n elements = new Collection(cy, jsons);\n }\n }\n\n // specify an array of options\n else if (array(opts)) {\n var _jsons = opts;\n elements = new Collection(cy, _jsons);\n }\n\n // specify via opts.nodes and opts.edges\n else if (plainObject(opts) && (array(opts.nodes) || array(opts.edges))) {\n var elesByGroup = opts;\n var _jsons2 = [];\n var grs = ['nodes', 'edges'];\n for (var _i = 0, il = grs.length; _i < il; _i++) {\n var group = grs[_i];\n var elesArray = elesByGroup[group];\n if (array(elesArray)) {\n for (var j = 0, jl = elesArray.length; j < jl; j++) {\n var json = extend({\n group: group\n }, elesArray[j]);\n _jsons2.push(json);\n }\n }\n }\n elements = new Collection(cy, _jsons2);\n }\n\n // specify options for one element\n else {\n var _json = opts;\n elements = new Element(cy, _json).collection();\n }\n return elements;\n },\n remove: function remove(collection) {\n if (elementOrCollection(collection)) ; else if (string(collection)) {\n var selector = collection;\n collection = this.$(selector);\n }\n return collection.remove();\n }\n};\n\n/* global Float32Array */\n\n/*! Bezier curve function generator. Copyright Gaetan Renaudeau. MIT License: http://en.wikipedia.org/wiki/MIT_License */\nfunction generateCubicBezier(mX1, mY1, mX2, mY2) {\n var NEWTON_ITERATIONS = 4,\n NEWTON_MIN_SLOPE = 0.001,\n SUBDIVISION_PRECISION = 0.0000001,\n SUBDIVISION_MAX_ITERATIONS = 10,\n kSplineTableSize = 11,\n kSampleStepSize = 1.0 / (kSplineTableSize - 1.0),\n float32ArraySupported = typeof Float32Array !== 'undefined';\n\n /* Must contain four arguments. */\n if (arguments.length !== 4) {\n return false;\n }\n\n /* Arguments must be numbers. */\n for (var i = 0; i < 4; ++i) {\n if (typeof arguments[i] !== \"number\" || isNaN(arguments[i]) || !isFinite(arguments[i])) {\n return false;\n }\n }\n\n /* X values must be in the [0, 1] range. */\n mX1 = Math.min(mX1, 1);\n mX2 = Math.min(mX2, 1);\n mX1 = Math.max(mX1, 0);\n mX2 = Math.max(mX2, 0);\n var mSampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize);\n function A(aA1, aA2) {\n return 1.0 - 3.0 * aA2 + 3.0 * aA1;\n }\n function B(aA1, aA2) {\n return 3.0 * aA2 - 6.0 * aA1;\n }\n function C(aA1) {\n return 3.0 * aA1;\n }\n function calcBezier(aT, aA1, aA2) {\n return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT;\n }\n function getSlope(aT, aA1, aA2) {\n return 3.0 * A(aA1, aA2) * aT * aT + 2.0 * B(aA1, aA2) * aT + C(aA1);\n }\n function newtonRaphsonIterate(aX, aGuessT) {\n for (var _i = 0; _i < NEWTON_ITERATIONS; ++_i) {\n var currentSlope = getSlope(aGuessT, mX1, mX2);\n if (currentSlope === 0.0) {\n return aGuessT;\n }\n var currentX = calcBezier(aGuessT, mX1, mX2) - aX;\n aGuessT -= currentX / currentSlope;\n }\n return aGuessT;\n }\n function calcSampleValues() {\n for (var _i2 = 0; _i2 < kSplineTableSize; ++_i2) {\n mSampleValues[_i2] = calcBezier(_i2 * kSampleStepSize, mX1, mX2);\n }\n }\n function binarySubdivide(aX, aA, aB) {\n var currentX,\n currentT,\n i = 0;\n do {\n currentT = aA + (aB - aA) / 2.0;\n currentX = calcBezier(currentT, mX1, mX2) - aX;\n if (currentX > 0.0) {\n aB = currentT;\n } else {\n aA = currentT;\n }\n } while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS);\n return currentT;\n }\n function getTForX(aX) {\n var intervalStart = 0.0,\n currentSample = 1,\n lastSample = kSplineTableSize - 1;\n for (; currentSample !== lastSample && mSampleValues[currentSample] <= aX; ++currentSample) {\n intervalStart += kSampleStepSize;\n }\n --currentSample;\n var dist = (aX - mSampleValues[currentSample]) / (mSampleValues[currentSample + 1] - mSampleValues[currentSample]),\n guessForT = intervalStart + dist * kSampleStepSize,\n initialSlope = getSlope(guessForT, mX1, mX2);\n if (initialSlope >= NEWTON_MIN_SLOPE) {\n return newtonRaphsonIterate(aX, guessForT);\n } else if (initialSlope === 0.0) {\n return guessForT;\n } else {\n return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize);\n }\n }\n var _precomputed = false;\n function precompute() {\n _precomputed = true;\n if (mX1 !== mY1 || mX2 !== mY2) {\n calcSampleValues();\n }\n }\n var f = function f(aX) {\n if (!_precomputed) {\n precompute();\n }\n if (mX1 === mY1 && mX2 === mY2) {\n return aX;\n }\n if (aX === 0) {\n return 0;\n }\n if (aX === 1) {\n return 1;\n }\n return calcBezier(getTForX(aX), mY1, mY2);\n };\n f.getControlPoints = function () {\n return [{\n x: mX1,\n y: mY1\n }, {\n x: mX2,\n y: mY2\n }];\n };\n var str = \"generateBezier(\" + [mX1, mY1, mX2, mY2] + \")\";\n f.toString = function () {\n return str;\n };\n return f;\n}\n\n/*! Runge-Kutta spring physics function generator. Adapted from Framer.js, copyright Koen Bok. MIT License: http://en.wikipedia.org/wiki/MIT_License */\n/* Given a tension, friction, and duration, a simulation at 60FPS will first run without a defined duration in order to calculate the full path. A second pass\n then adjusts the time delta -- using the relation between actual time and duration -- to calculate the path for the duration-constrained animation. */\nvar generateSpringRK4 = function () {\n function springAccelerationForState(state) {\n return -state.tension * state.x - state.friction * state.v;\n }\n function springEvaluateStateWithDerivative(initialState, dt, derivative) {\n var state = {\n x: initialState.x + derivative.dx * dt,\n v: initialState.v + derivative.dv * dt,\n tension: initialState.tension,\n friction: initialState.friction\n };\n return {\n dx: state.v,\n dv: springAccelerationForState(state)\n };\n }\n function springIntegrateState(state, dt) {\n var a = {\n dx: state.v,\n dv: springAccelerationForState(state)\n },\n b = springEvaluateStateWithDerivative(state, dt * 0.5, a),\n c = springEvaluateStateWithDerivative(state, dt * 0.5, b),\n d = springEvaluateStateWithDerivative(state, dt, c),\n dxdt = 1.0 / 6.0 * (a.dx + 2.0 * (b.dx + c.dx) + d.dx),\n dvdt = 1.0 / 6.0 * (a.dv + 2.0 * (b.dv + c.dv) + d.dv);\n state.x = state.x + dxdt * dt;\n state.v = state.v + dvdt * dt;\n return state;\n }\n return function springRK4Factory(tension, friction, duration) {\n var initState = {\n x: -1,\n v: 0,\n tension: null,\n friction: null\n },\n path = [0],\n time_lapsed = 0,\n tolerance = 1 / 10000,\n DT = 16 / 1000,\n have_duration,\n dt,\n last_state;\n tension = parseFloat(tension) || 500;\n friction = parseFloat(friction) || 20;\n duration = duration || null;\n initState.tension = tension;\n initState.friction = friction;\n have_duration = duration !== null;\n\n /* Calculate the actual time it takes for this animation to complete with the provided conditions. */\n if (have_duration) {\n /* Run the simulation without a duration. */\n time_lapsed = springRK4Factory(tension, friction);\n /* Compute the adjusted time delta. */\n dt = time_lapsed / duration * DT;\n } else {\n dt = DT;\n }\n for (;;) {\n /* Next/step function .*/\n last_state = springIntegrateState(last_state || initState, dt);\n /* Store the position. */\n path.push(1 + last_state.x);\n time_lapsed += 16;\n /* If the change threshold is reached, break. */\n if (!(Math.abs(last_state.x) > tolerance && Math.abs(last_state.v) > tolerance)) {\n break;\n }\n }\n\n /* If duration is not defined, return the actual time required for completing this animation. Otherwise, return a closure that holds the\n computed path and returns a snapshot of the position according to a given percentComplete. */\n return !have_duration ? time_lapsed : function (percentComplete) {\n return path[percentComplete * (path.length - 1) | 0];\n };\n };\n}();\n\nvar cubicBezier = function cubicBezier(t1, p1, t2, p2) {\n var bezier = generateCubicBezier(t1, p1, t2, p2);\n return function (start, end, percent) {\n return start + (end - start) * bezier(percent);\n };\n};\nvar easings = {\n 'linear': function linear(start, end, percent) {\n return start + (end - start) * percent;\n },\n // default easings\n 'ease': cubicBezier(0.25, 0.1, 0.25, 1),\n 'ease-in': cubicBezier(0.42, 0, 1, 1),\n 'ease-out': cubicBezier(0, 0, 0.58, 1),\n 'ease-in-out': cubicBezier(0.42, 0, 0.58, 1),\n // sine\n 'ease-in-sine': cubicBezier(0.47, 0, 0.745, 0.715),\n 'ease-out-sine': cubicBezier(0.39, 0.575, 0.565, 1),\n 'ease-in-out-sine': cubicBezier(0.445, 0.05, 0.55, 0.95),\n // quad\n 'ease-in-quad': cubicBezier(0.55, 0.085, 0.68, 0.53),\n 'ease-out-quad': cubicBezier(0.25, 0.46, 0.45, 0.94),\n 'ease-in-out-quad': cubicBezier(0.455, 0.03, 0.515, 0.955),\n // cubic\n 'ease-in-cubic': cubicBezier(0.55, 0.055, 0.675, 0.19),\n 'ease-out-cubic': cubicBezier(0.215, 0.61, 0.355, 1),\n 'ease-in-out-cubic': cubicBezier(0.645, 0.045, 0.355, 1),\n // quart\n 'ease-in-quart': cubicBezier(0.895, 0.03, 0.685, 0.22),\n 'ease-out-quart': cubicBezier(0.165, 0.84, 0.44, 1),\n 'ease-in-out-quart': cubicBezier(0.77, 0, 0.175, 1),\n // quint\n 'ease-in-quint': cubicBezier(0.755, 0.05, 0.855, 0.06),\n 'ease-out-quint': cubicBezier(0.23, 1, 0.32, 1),\n 'ease-in-out-quint': cubicBezier(0.86, 0, 0.07, 1),\n // expo\n 'ease-in-expo': cubicBezier(0.95, 0.05, 0.795, 0.035),\n 'ease-out-expo': cubicBezier(0.19, 1, 0.22, 1),\n 'ease-in-out-expo': cubicBezier(1, 0, 0, 1),\n // circ\n 'ease-in-circ': cubicBezier(0.6, 0.04, 0.98, 0.335),\n 'ease-out-circ': cubicBezier(0.075, 0.82, 0.165, 1),\n 'ease-in-out-circ': cubicBezier(0.785, 0.135, 0.15, 0.86),\n // user param easings...\n\n 'spring': function spring(tension, friction, duration) {\n if (duration === 0) {\n // can't get a spring w/ duration 0\n return easings.linear; // duration 0 => jump to end so impl doesn't matter\n }\n\n var spring = generateSpringRK4(tension, friction, duration);\n return function (start, end, percent) {\n return start + (end - start) * spring(percent);\n };\n },\n 'cubic-bezier': cubicBezier\n};\n\nfunction getEasedValue(type, start, end, percent, easingFn) {\n if (percent === 1) {\n return end;\n }\n if (start === end) {\n return end;\n }\n var val = easingFn(start, end, percent);\n if (type == null) {\n return val;\n }\n if (type.roundValue || type.color) {\n val = Math.round(val);\n }\n if (type.min !== undefined) {\n val = Math.max(val, type.min);\n }\n if (type.max !== undefined) {\n val = Math.min(val, type.max);\n }\n return val;\n}\nfunction getValue(prop, spec) {\n if (prop.pfValue != null || prop.value != null) {\n if (prop.pfValue != null && (spec == null || spec.type.units !== '%')) {\n return prop.pfValue;\n } else {\n return prop.value;\n }\n } else {\n return prop;\n }\n}\nfunction ease(startProp, endProp, percent, easingFn, propSpec) {\n var type = propSpec != null ? propSpec.type : null;\n if (percent < 0) {\n percent = 0;\n } else if (percent > 1) {\n percent = 1;\n }\n var start = getValue(startProp, propSpec);\n var end = getValue(endProp, propSpec);\n if (number$1(start) && number$1(end)) {\n return getEasedValue(type, start, end, percent, easingFn);\n } else if (array(start) && array(end)) {\n var easedArr = [];\n for (var i = 0; i < end.length; i++) {\n var si = start[i];\n var ei = end[i];\n if (si != null && ei != null) {\n var val = getEasedValue(type, si, ei, percent, easingFn);\n easedArr.push(val);\n } else {\n easedArr.push(ei);\n }\n }\n return easedArr;\n }\n return undefined;\n}\n\nfunction step$1(self, ani, now, isCore) {\n var isEles = !isCore;\n var _p = self._private;\n var ani_p = ani._private;\n var pEasing = ani_p.easing;\n var startTime = ani_p.startTime;\n var cy = isCore ? self : self.cy();\n var style = cy.style();\n if (!ani_p.easingImpl) {\n if (pEasing == null) {\n // use default\n ani_p.easingImpl = easings['linear'];\n } else {\n // then define w/ name\n var easingVals;\n if (string(pEasing)) {\n var easingProp = style.parse('transition-timing-function', pEasing);\n easingVals = easingProp.value;\n } else {\n // then assume preparsed array\n easingVals = pEasing;\n }\n var name, args;\n if (string(easingVals)) {\n name = easingVals;\n args = [];\n } else {\n name = easingVals[1];\n args = easingVals.slice(2).map(function (n) {\n return +n;\n });\n }\n if (args.length > 0) {\n // create with args\n if (name === 'spring') {\n args.push(ani_p.duration); // need duration to generate spring\n }\n\n ani_p.easingImpl = easings[name].apply(null, args);\n } else {\n // static impl by name\n ani_p.easingImpl = easings[name];\n }\n }\n }\n var easing = ani_p.easingImpl;\n var percent;\n if (ani_p.duration === 0) {\n percent = 1;\n } else {\n percent = (now - startTime) / ani_p.duration;\n }\n if (ani_p.applying) {\n percent = ani_p.progress;\n }\n if (percent < 0) {\n percent = 0;\n } else if (percent > 1) {\n percent = 1;\n }\n if (ani_p.delay == null) {\n // then update\n\n var startPos = ani_p.startPosition;\n var endPos = ani_p.position;\n if (endPos && isEles && !self.locked()) {\n var newPos = {};\n if (valid(startPos.x, endPos.x)) {\n newPos.x = ease(startPos.x, endPos.x, percent, easing);\n }\n if (valid(startPos.y, endPos.y)) {\n newPos.y = ease(startPos.y, endPos.y, percent, easing);\n }\n self.position(newPos);\n }\n var startPan = ani_p.startPan;\n var endPan = ani_p.pan;\n var pan = _p.pan;\n var animatingPan = endPan != null && isCore;\n if (animatingPan) {\n if (valid(startPan.x, endPan.x)) {\n pan.x = ease(startPan.x, endPan.x, percent, easing);\n }\n if (valid(startPan.y, endPan.y)) {\n pan.y = ease(startPan.y, endPan.y, percent, easing);\n }\n self.emit('pan');\n }\n var startZoom = ani_p.startZoom;\n var endZoom = ani_p.zoom;\n var animatingZoom = endZoom != null && isCore;\n if (animatingZoom) {\n if (valid(startZoom, endZoom)) {\n _p.zoom = bound(_p.minZoom, ease(startZoom, endZoom, percent, easing), _p.maxZoom);\n }\n self.emit('zoom');\n }\n if (animatingPan || animatingZoom) {\n self.emit('viewport');\n }\n var props = ani_p.style;\n if (props && props.length > 0 && isEles) {\n for (var i = 0; i < props.length; i++) {\n var prop = props[i];\n var _name = prop.name;\n var end = prop;\n var start = ani_p.startStyle[_name];\n var propSpec = style.properties[start.name];\n var easedVal = ease(start, end, percent, easing, propSpec);\n style.overrideBypass(self, _name, easedVal);\n } // for props\n\n self.emit('style');\n } // if\n }\n\n ani_p.progress = percent;\n return percent;\n}\nfunction valid(start, end) {\n if (start == null || end == null) {\n return false;\n }\n if (number$1(start) && number$1(end)) {\n return true;\n } else if (start && end) {\n return true;\n }\n return false;\n}\n\nfunction startAnimation(self, ani, now, isCore) {\n var ani_p = ani._private;\n ani_p.started = true;\n ani_p.startTime = now - ani_p.progress * ani_p.duration;\n}\n\nfunction stepAll(now, cy) {\n var eles = cy._private.aniEles;\n var doneEles = [];\n function stepOne(ele, isCore) {\n var _p = ele._private;\n var current = _p.animation.current;\n var queue = _p.animation.queue;\n var ranAnis = false;\n\n // if nothing currently animating, get something from the queue\n if (current.length === 0) {\n var next = queue.shift();\n if (next) {\n current.push(next);\n }\n }\n var callbacks = function callbacks(_callbacks) {\n for (var j = _callbacks.length - 1; j >= 0; j--) {\n var cb = _callbacks[j];\n cb();\n }\n _callbacks.splice(0, _callbacks.length);\n };\n\n // step and remove if done\n for (var i = current.length - 1; i >= 0; i--) {\n var ani = current[i];\n var ani_p = ani._private;\n if (ani_p.stopped) {\n current.splice(i, 1);\n ani_p.hooked = false;\n ani_p.playing = false;\n ani_p.started = false;\n callbacks(ani_p.frames);\n continue;\n }\n if (!ani_p.playing && !ani_p.applying) {\n continue;\n }\n\n // an apply() while playing shouldn't do anything\n if (ani_p.playing && ani_p.applying) {\n ani_p.applying = false;\n }\n if (!ani_p.started) {\n startAnimation(ele, ani, now);\n }\n step$1(ele, ani, now, isCore);\n if (ani_p.applying) {\n ani_p.applying = false;\n }\n callbacks(ani_p.frames);\n if (ani_p.step != null) {\n ani_p.step(now);\n }\n if (ani.completed()) {\n current.splice(i, 1);\n ani_p.hooked = false;\n ani_p.playing = false;\n ani_p.started = false;\n callbacks(ani_p.completes);\n }\n ranAnis = true;\n }\n if (!isCore && current.length === 0 && queue.length === 0) {\n doneEles.push(ele);\n }\n return ranAnis;\n } // stepElement\n\n // handle all eles\n var ranEleAni = false;\n for (var e = 0; e < eles.length; e++) {\n var ele = eles[e];\n var handledThisEle = stepOne(ele);\n ranEleAni = ranEleAni || handledThisEle;\n } // each element\n\n var ranCoreAni = stepOne(cy, true);\n\n // notify renderer\n if (ranEleAni || ranCoreAni) {\n if (eles.length > 0) {\n cy.notify('draw', eles);\n } else {\n cy.notify('draw');\n }\n }\n\n // remove elements from list of currently animating if its queues are empty\n eles.unmerge(doneEles);\n cy.emit('step');\n} // stepAll\n\nvar corefn$8 = {\n // pull in animation functions\n animate: define.animate(),\n animation: define.animation(),\n animated: define.animated(),\n clearQueue: define.clearQueue(),\n delay: define.delay(),\n delayAnimation: define.delayAnimation(),\n stop: define.stop(),\n addToAnimationPool: function addToAnimationPool(eles) {\n var cy = this;\n if (!cy.styleEnabled()) {\n return;\n } // save cycles when no style used\n\n cy._private.aniEles.merge(eles);\n },\n stopAnimationLoop: function stopAnimationLoop() {\n this._private.animationsRunning = false;\n },\n startAnimationLoop: function startAnimationLoop() {\n var cy = this;\n cy._private.animationsRunning = true;\n if (!cy.styleEnabled()) {\n return;\n } // save cycles when no style used\n\n // NB the animation loop will exec in headless environments if style enabled\n // and explicit cy.destroy() is necessary to stop the loop\n\n function headlessStep() {\n if (!cy._private.animationsRunning) {\n return;\n }\n requestAnimationFrame(function animationStep(now) {\n stepAll(now, cy);\n headlessStep();\n });\n }\n var renderer = cy.renderer();\n if (renderer && renderer.beforeRender) {\n // let the renderer schedule animations\n renderer.beforeRender(function rendererAnimationStep(willDraw, now) {\n stepAll(now, cy);\n }, renderer.beforeRenderPriorities.animations);\n } else {\n // manage the animation loop ourselves\n headlessStep(); // first call\n }\n }\n};\n\nvar emitterOptions = {\n qualifierCompare: function qualifierCompare(selector1, selector2) {\n if (selector1 == null || selector2 == null) {\n return selector1 == null && selector2 == null;\n } else {\n return selector1.sameText(selector2);\n }\n },\n eventMatches: function eventMatches(cy, listener, eventObj) {\n var selector = listener.qualifier;\n if (selector != null) {\n return cy !== eventObj.target && element(eventObj.target) && selector.matches(eventObj.target);\n }\n return true;\n },\n addEventFields: function addEventFields(cy, evt) {\n evt.cy = cy;\n evt.target = cy;\n },\n callbackContext: function callbackContext(cy, listener, eventObj) {\n return listener.qualifier != null ? eventObj.target : cy;\n }\n};\nvar argSelector = function argSelector(arg) {\n if (string(arg)) {\n return new Selector(arg);\n } else {\n return arg;\n }\n};\nvar elesfn = {\n createEmitter: function createEmitter() {\n var _p = this._private;\n if (!_p.emitter) {\n _p.emitter = new Emitter(emitterOptions, this);\n }\n return this;\n },\n emitter: function emitter() {\n return this._private.emitter;\n },\n on: function on(events, selector, callback) {\n this.emitter().on(events, argSelector(selector), callback);\n return this;\n },\n removeListener: function removeListener(events, selector, callback) {\n this.emitter().removeListener(events, argSelector(selector), callback);\n return this;\n },\n removeAllListeners: function removeAllListeners() {\n this.emitter().removeAllListeners();\n return this;\n },\n one: function one(events, selector, callback) {\n this.emitter().one(events, argSelector(selector), callback);\n return this;\n },\n once: function once(events, selector, callback) {\n this.emitter().one(events, argSelector(selector), callback);\n return this;\n },\n emit: function emit(events, extraParams) {\n this.emitter().emit(events, extraParams);\n return this;\n },\n emitAndNotify: function emitAndNotify(event, eles) {\n this.emit(event);\n this.notify(event, eles);\n return this;\n }\n};\ndefine.eventAliasesOn(elesfn);\n\nvar corefn$7 = {\n png: function png(options) {\n var renderer = this._private.renderer;\n options = options || {};\n return renderer.png(options);\n },\n jpg: function jpg(options) {\n var renderer = this._private.renderer;\n options = options || {};\n options.bg = options.bg || '#fff';\n return renderer.jpg(options);\n }\n};\ncorefn$7.jpeg = corefn$7.jpg;\n\nvar corefn$6 = {\n layout: function layout(options) {\n var cy = this;\n if (options == null) {\n error('Layout options must be specified to make a layout');\n return;\n }\n if (options.name == null) {\n error('A `name` must be specified to make a layout');\n return;\n }\n var name = options.name;\n var Layout = cy.extension('layout', name);\n if (Layout == null) {\n error('No such layout `' + name + '` found. Did you forget to import it and `cytoscape.use()` it?');\n return;\n }\n var eles;\n if (string(options.eles)) {\n eles = cy.$(options.eles);\n } else {\n eles = options.eles != null ? options.eles : cy.$();\n }\n var layout = new Layout(extend({}, options, {\n cy: cy,\n eles: eles\n }));\n return layout;\n }\n};\ncorefn$6.createLayout = corefn$6.makeLayout = corefn$6.layout;\n\nvar corefn$5 = {\n notify: function notify(eventName, eventEles) {\n var _p = this._private;\n if (this.batching()) {\n _p.batchNotifications = _p.batchNotifications || {};\n var eles = _p.batchNotifications[eventName] = _p.batchNotifications[eventName] || this.collection();\n if (eventEles != null) {\n eles.merge(eventEles);\n }\n return; // notifications are disabled during batching\n }\n\n if (!_p.notificationsEnabled) {\n return;\n } // exit on disabled\n\n var renderer = this.renderer();\n\n // exit if destroy() called on core or renderer in between frames #1499 #1528\n if (this.destroyed() || !renderer) {\n return;\n }\n renderer.notify(eventName, eventEles);\n },\n notifications: function notifications(bool) {\n var p = this._private;\n if (bool === undefined) {\n return p.notificationsEnabled;\n } else {\n p.notificationsEnabled = bool ? true : false;\n }\n return this;\n },\n noNotifications: function noNotifications(callback) {\n this.notifications(false);\n callback();\n this.notifications(true);\n },\n batching: function batching() {\n return this._private.batchCount > 0;\n },\n startBatch: function startBatch() {\n var _p = this._private;\n if (_p.batchCount == null) {\n _p.batchCount = 0;\n }\n if (_p.batchCount === 0) {\n _p.batchStyleEles = this.collection();\n _p.batchNotifications = {};\n }\n _p.batchCount++;\n return this;\n },\n endBatch: function endBatch() {\n var _p = this._private;\n if (_p.batchCount === 0) {\n return this;\n }\n _p.batchCount--;\n if (_p.batchCount === 0) {\n // update style for dirty eles\n _p.batchStyleEles.updateStyle();\n var renderer = this.renderer();\n\n // notify the renderer of queued eles and event types\n Object.keys(_p.batchNotifications).forEach(function (eventName) {\n var eles = _p.batchNotifications[eventName];\n if (eles.empty()) {\n renderer.notify(eventName);\n } else {\n renderer.notify(eventName, eles);\n }\n });\n }\n return this;\n },\n batch: function batch(callback) {\n this.startBatch();\n callback();\n this.endBatch();\n return this;\n },\n // for backwards compatibility\n batchData: function batchData(map) {\n var cy = this;\n return this.batch(function () {\n var ids = Object.keys(map);\n for (var i = 0; i < ids.length; i++) {\n var id = ids[i];\n var data = map[id];\n var ele = cy.getElementById(id);\n ele.data(data);\n }\n });\n }\n};\n\nvar rendererDefaults = defaults$g({\n hideEdgesOnViewport: false,\n textureOnViewport: false,\n motionBlur: false,\n motionBlurOpacity: 0.05,\n pixelRatio: undefined,\n desktopTapThreshold: 4,\n touchTapThreshold: 8,\n wheelSensitivity: 1,\n debug: false,\n showFps: false\n});\nvar corefn$4 = {\n renderTo: function renderTo(context, zoom, pan, pxRatio) {\n var r = this._private.renderer;\n r.renderTo(context, zoom, pan, pxRatio);\n return this;\n },\n renderer: function renderer() {\n return this._private.renderer;\n },\n forceRender: function forceRender() {\n this.notify('draw');\n return this;\n },\n resize: function resize() {\n this.invalidateSize();\n this.emitAndNotify('resize');\n return this;\n },\n initRenderer: function initRenderer(options) {\n var cy = this;\n var RendererProto = cy.extension('renderer', options.name);\n if (RendererProto == null) {\n error(\"Can not initialise: No such renderer `\".concat(options.name, \"` found. Did you forget to import it and `cytoscape.use()` it?\"));\n return;\n }\n if (options.wheelSensitivity !== undefined) {\n warn(\"You have set a custom wheel sensitivity. This will make your app zoom unnaturally when using mainstream mice. You should change this value from the default only if you can guarantee that all your users will use the same hardware and OS configuration as your current machine.\");\n }\n var rOpts = rendererDefaults(options);\n rOpts.cy = cy;\n cy._private.renderer = new RendererProto(rOpts);\n this.notify('init');\n },\n destroyRenderer: function destroyRenderer() {\n var cy = this;\n cy.notify('destroy'); // destroy the renderer\n\n var domEle = cy.container();\n if (domEle) {\n domEle._cyreg = null;\n while (domEle.childNodes.length > 0) {\n domEle.removeChild(domEle.childNodes[0]);\n }\n }\n cy._private.renderer = null; // to be extra safe, remove the ref\n cy.mutableElements().forEach(function (ele) {\n var _p = ele._private;\n _p.rscratch = {};\n _p.rstyle = {};\n _p.animation.current = [];\n _p.animation.queue = [];\n });\n },\n onRender: function onRender(fn) {\n return this.on('render', fn);\n },\n offRender: function offRender(fn) {\n return this.off('render', fn);\n }\n};\ncorefn$4.invalidateDimensions = corefn$4.resize;\n\nvar corefn$3 = {\n // get a collection\n // - empty collection on no args\n // - collection of elements in the graph on selector arg\n // - guarantee a returned collection when elements or collection specified\n collection: function collection(eles, opts) {\n if (string(eles)) {\n return this.$(eles);\n } else if (elementOrCollection(eles)) {\n return eles.collection();\n } else if (array(eles)) {\n if (!opts) {\n opts = {};\n }\n return new Collection(this, eles, opts.unique, opts.removed);\n }\n return new Collection(this);\n },\n nodes: function nodes(selector) {\n var nodes = this.$(function (ele) {\n return ele.isNode();\n });\n if (selector) {\n return nodes.filter(selector);\n }\n return nodes;\n },\n edges: function edges(selector) {\n var edges = this.$(function (ele) {\n return ele.isEdge();\n });\n if (selector) {\n return edges.filter(selector);\n }\n return edges;\n },\n // search the graph like jQuery\n $: function $(selector) {\n var eles = this._private.elements;\n if (selector) {\n return eles.filter(selector);\n } else {\n return eles.spawnSelf();\n }\n },\n mutableElements: function mutableElements() {\n return this._private.elements;\n }\n};\n\n// aliases\ncorefn$3.elements = corefn$3.filter = corefn$3.$;\n\nvar styfn$8 = {};\n\n// keys for style blocks, e.g. ttfftt\nvar TRUE = 't';\nvar FALSE = 'f';\n\n// (potentially expensive calculation)\n// apply the style to the element based on\n// - its bypass\n// - what selectors match it\nstyfn$8.apply = function (eles) {\n var self = this;\n var _p = self._private;\n var cy = _p.cy;\n var updatedEles = cy.collection();\n for (var ie = 0; ie < eles.length; ie++) {\n var ele = eles[ie];\n var cxtMeta = self.getContextMeta(ele);\n if (cxtMeta.empty) {\n continue;\n }\n var cxtStyle = self.getContextStyle(cxtMeta);\n var app = self.applyContextStyle(cxtMeta, cxtStyle, ele);\n if (ele._private.appliedInitStyle) {\n self.updateTransitions(ele, app.diffProps);\n } else {\n ele._private.appliedInitStyle = true;\n }\n var hintsDiff = self.updateStyleHints(ele);\n if (hintsDiff) {\n updatedEles.push(ele);\n }\n } // for elements\n\n return updatedEles;\n};\nstyfn$8.getPropertiesDiff = function (oldCxtKey, newCxtKey) {\n var self = this;\n var cache = self._private.propDiffs = self._private.propDiffs || {};\n var dualCxtKey = oldCxtKey + '-' + newCxtKey;\n var cachedVal = cache[dualCxtKey];\n if (cachedVal) {\n return cachedVal;\n }\n var diffProps = [];\n var addedProp = {};\n for (var i = 0; i < self.length; i++) {\n var cxt = self[i];\n var oldHasCxt = oldCxtKey[i] === TRUE;\n var newHasCxt = newCxtKey[i] === TRUE;\n var cxtHasDiffed = oldHasCxt !== newHasCxt;\n var cxtHasMappedProps = cxt.mappedProperties.length > 0;\n if (cxtHasDiffed || newHasCxt && cxtHasMappedProps) {\n var props = void 0;\n if (cxtHasDiffed && cxtHasMappedProps) {\n props = cxt.properties; // suffices b/c mappedProperties is a subset of properties\n } else if (cxtHasDiffed) {\n props = cxt.properties; // need to check them all\n } else if (cxtHasMappedProps) {\n props = cxt.mappedProperties; // only need to check mapped\n }\n\n for (var j = 0; j < props.length; j++) {\n var prop = props[j];\n var name = prop.name;\n\n // if a later context overrides this property, then the fact that this context has switched/diffed doesn't matter\n // (semi expensive check since it makes this function O(n^2) on context length, but worth it since overall result\n // is cached)\n var laterCxtOverrides = false;\n for (var k = i + 1; k < self.length; k++) {\n var laterCxt = self[k];\n var hasLaterCxt = newCxtKey[k] === TRUE;\n if (!hasLaterCxt) {\n continue;\n } // can't override unless the context is active\n\n laterCxtOverrides = laterCxt.properties[prop.name] != null;\n if (laterCxtOverrides) {\n break;\n } // exit early as long as one later context overrides\n }\n\n if (!addedProp[name] && !laterCxtOverrides) {\n addedProp[name] = true;\n diffProps.push(name);\n }\n } // for props\n } // if\n } // for contexts\n\n cache[dualCxtKey] = diffProps;\n return diffProps;\n};\nstyfn$8.getContextMeta = function (ele) {\n var self = this;\n var cxtKey = '';\n var diffProps;\n var prevKey = ele._private.styleCxtKey || '';\n\n // get the cxt key\n for (var i = 0; i < self.length; i++) {\n var context = self[i];\n var contextSelectorMatches = context.selector && context.selector.matches(ele); // NB: context.selector may be null for 'core'\n\n if (contextSelectorMatches) {\n cxtKey += TRUE;\n } else {\n cxtKey += FALSE;\n }\n } // for context\n\n diffProps = self.getPropertiesDiff(prevKey, cxtKey);\n ele._private.styleCxtKey = cxtKey;\n return {\n key: cxtKey,\n diffPropNames: diffProps,\n empty: diffProps.length === 0\n };\n};\n\n// gets a computed ele style object based on matched contexts\nstyfn$8.getContextStyle = function (cxtMeta) {\n var cxtKey = cxtMeta.key;\n var self = this;\n var cxtStyles = this._private.contextStyles = this._private.contextStyles || {};\n\n // if already computed style, returned cached copy\n if (cxtStyles[cxtKey]) {\n return cxtStyles[cxtKey];\n }\n var style = {\n _private: {\n key: cxtKey\n }\n };\n for (var i = 0; i < self.length; i++) {\n var cxt = self[i];\n var hasCxt = cxtKey[i] === TRUE;\n if (!hasCxt) {\n continue;\n }\n for (var j = 0; j < cxt.properties.length; j++) {\n var prop = cxt.properties[j];\n style[prop.name] = prop;\n }\n }\n cxtStyles[cxtKey] = style;\n return style;\n};\nstyfn$8.applyContextStyle = function (cxtMeta, cxtStyle, ele) {\n var self = this;\n var diffProps = cxtMeta.diffPropNames;\n var retDiffProps = {};\n var types = self.types;\n for (var i = 0; i < diffProps.length; i++) {\n var diffPropName = diffProps[i];\n var cxtProp = cxtStyle[diffPropName];\n var eleProp = ele.pstyle(diffPropName);\n if (!cxtProp) {\n // no context prop means delete\n if (!eleProp) {\n continue; // no existing prop means nothing needs to be removed\n // nb affects initial application on mapped values like control-point-distances\n } else if (eleProp.bypass) {\n cxtProp = {\n name: diffPropName,\n deleteBypassed: true\n };\n } else {\n cxtProp = {\n name: diffPropName,\n \"delete\": true\n };\n }\n }\n\n // save cycles when the context prop doesn't need to be applied\n if (eleProp === cxtProp) {\n continue;\n }\n\n // save cycles when a mapped context prop doesn't need to be applied\n if (cxtProp.mapped === types.fn // context prop is function mapper\n && eleProp != null // some props can be null even by default (e.g. a prop that overrides another one)\n && eleProp.mapping != null // ele prop is a concrete value from from a mapper\n && eleProp.mapping.value === cxtProp.value // the current prop on the ele is a flat prop value for the function mapper\n ) {\n // NB don't write to cxtProp, as it's shared among eles (stored in stylesheet)\n var mapping = eleProp.mapping; // can write to mapping, as it's a per-ele copy\n var fnValue = mapping.fnValue = cxtProp.value(ele); // temporarily cache the value in case of a miss\n\n if (fnValue === mapping.prevFnValue) {\n continue;\n }\n }\n var retDiffProp = retDiffProps[diffPropName] = {\n prev: eleProp\n };\n self.applyParsedProperty(ele, cxtProp);\n retDiffProp.next = ele.pstyle(diffPropName);\n if (retDiffProp.next && retDiffProp.next.bypass) {\n retDiffProp.next = retDiffProp.next.bypassed;\n }\n }\n return {\n diffProps: retDiffProps\n };\n};\nstyfn$8.updateStyleHints = function (ele) {\n var _p = ele._private;\n var self = this;\n var propNames = self.propertyGroupNames;\n var propGrKeys = self.propertyGroupKeys;\n var propHash = function propHash(ele, propNames, seedKey) {\n return self.getPropertiesHash(ele, propNames, seedKey);\n };\n var oldStyleKey = _p.styleKey;\n if (ele.removed()) {\n return false;\n }\n var isNode = _p.group === 'nodes';\n\n // get the style key hashes per prop group\n // but lazily -- only use non-default prop values to reduce the number of hashes\n //\n\n var overriddenStyles = ele._private.style;\n propNames = Object.keys(overriddenStyles);\n for (var i = 0; i < propGrKeys.length; i++) {\n var grKey = propGrKeys[i];\n _p.styleKeys[grKey] = [DEFAULT_HASH_SEED, DEFAULT_HASH_SEED_ALT];\n }\n var updateGrKey1 = function updateGrKey1(val, grKey) {\n return _p.styleKeys[grKey][0] = hashInt(val, _p.styleKeys[grKey][0]);\n };\n var updateGrKey2 = function updateGrKey2(val, grKey) {\n return _p.styleKeys[grKey][1] = hashIntAlt(val, _p.styleKeys[grKey][1]);\n };\n var updateGrKey = function updateGrKey(val, grKey) {\n updateGrKey1(val, grKey);\n updateGrKey2(val, grKey);\n };\n var updateGrKeyWStr = function updateGrKeyWStr(strVal, grKey) {\n for (var j = 0; j < strVal.length; j++) {\n var ch = strVal.charCodeAt(j);\n updateGrKey1(ch, grKey);\n updateGrKey2(ch, grKey);\n }\n };\n\n // - hashing works on 32 bit ints b/c we use bitwise ops\n // - small numbers get cut off (e.g. 0.123 is seen as 0 by the hashing function)\n // - raise up small numbers so more significant digits are seen by hashing\n // - make small numbers larger than a normal value to avoid collisions\n // - works in practice and it's relatively cheap\n var N = 2000000000;\n var cleanNum = function cleanNum(val) {\n return -128 < val && val < 128 && Math.floor(val) !== val ? N - (val * 1024 | 0) : val;\n };\n for (var _i = 0; _i < propNames.length; _i++) {\n var name = propNames[_i];\n var parsedProp = overriddenStyles[name];\n if (parsedProp == null) {\n continue;\n }\n var propInfo = this.properties[name];\n var type = propInfo.type;\n var _grKey = propInfo.groupKey;\n var normalizedNumberVal = void 0;\n if (propInfo.hashOverride != null) {\n normalizedNumberVal = propInfo.hashOverride(ele, parsedProp);\n } else if (parsedProp.pfValue != null) {\n normalizedNumberVal = parsedProp.pfValue;\n }\n\n // might not be a number if it allows enums\n var numberVal = propInfo.enums == null ? parsedProp.value : null;\n var haveNormNum = normalizedNumberVal != null;\n var haveUnitedNum = numberVal != null;\n var haveNum = haveNormNum || haveUnitedNum;\n var units = parsedProp.units;\n\n // numbers are cheaper to hash than strings\n // 1 hash op vs n hash ops (for length n string)\n if (type.number && haveNum && !type.multiple) {\n var v = haveNormNum ? normalizedNumberVal : numberVal;\n updateGrKey(cleanNum(v), _grKey);\n if (!haveNormNum && units != null) {\n updateGrKeyWStr(units, _grKey);\n }\n } else {\n updateGrKeyWStr(parsedProp.strValue, _grKey);\n }\n }\n\n // overall style key\n //\n\n var hash = [DEFAULT_HASH_SEED, DEFAULT_HASH_SEED_ALT];\n for (var _i2 = 0; _i2 < propGrKeys.length; _i2++) {\n var _grKey2 = propGrKeys[_i2];\n var grHash = _p.styleKeys[_grKey2];\n hash[0] = hashInt(grHash[0], hash[0]);\n hash[1] = hashIntAlt(grHash[1], hash[1]);\n }\n _p.styleKey = combineHashes(hash[0], hash[1]);\n\n // label dims\n //\n\n var sk = _p.styleKeys;\n _p.labelDimsKey = combineHashesArray(sk.labelDimensions);\n var labelKeys = propHash(ele, ['label'], sk.labelDimensions);\n _p.labelKey = combineHashesArray(labelKeys);\n _p.labelStyleKey = combineHashesArray(hashArrays(sk.commonLabel, labelKeys));\n if (!isNode) {\n var sourceLabelKeys = propHash(ele, ['source-label'], sk.labelDimensions);\n _p.sourceLabelKey = combineHashesArray(sourceLabelKeys);\n _p.sourceLabelStyleKey = combineHashesArray(hashArrays(sk.commonLabel, sourceLabelKeys));\n var targetLabelKeys = propHash(ele, ['target-label'], sk.labelDimensions);\n _p.targetLabelKey = combineHashesArray(targetLabelKeys);\n _p.targetLabelStyleKey = combineHashesArray(hashArrays(sk.commonLabel, targetLabelKeys));\n }\n\n // node\n //\n\n if (isNode) {\n var _p$styleKeys = _p.styleKeys,\n nodeBody = _p$styleKeys.nodeBody,\n nodeBorder = _p$styleKeys.nodeBorder,\n nodeOutline = _p$styleKeys.nodeOutline,\n backgroundImage = _p$styleKeys.backgroundImage,\n compound = _p$styleKeys.compound,\n pie = _p$styleKeys.pie;\n var nodeKeys = [nodeBody, nodeBorder, nodeOutline, backgroundImage, compound, pie].filter(function (k) {\n return k != null;\n }).reduce(hashArrays, [DEFAULT_HASH_SEED, DEFAULT_HASH_SEED_ALT]);\n _p.nodeKey = combineHashesArray(nodeKeys);\n _p.hasPie = pie != null && pie[0] !== DEFAULT_HASH_SEED && pie[1] !== DEFAULT_HASH_SEED_ALT;\n }\n return oldStyleKey !== _p.styleKey;\n};\nstyfn$8.clearStyleHints = function (ele) {\n var _p = ele._private;\n _p.styleCxtKey = '';\n _p.styleKeys = {};\n _p.styleKey = null;\n _p.labelKey = null;\n _p.labelStyleKey = null;\n _p.sourceLabelKey = null;\n _p.sourceLabelStyleKey = null;\n _p.targetLabelKey = null;\n _p.targetLabelStyleKey = null;\n _p.nodeKey = null;\n _p.hasPie = null;\n};\n\n// apply a property to the style (for internal use)\n// returns whether application was successful\n//\n// now, this function flattens the property, and here's how:\n//\n// for parsedProp:{ bypass: true, deleteBypass: true }\n// no property is generated, instead the bypass property in the\n// element's style is replaced by what's pointed to by the `bypassed`\n// field in the bypass property (i.e. restoring the property the\n// bypass was overriding)\n//\n// for parsedProp:{ mapped: truthy }\n// the generated flattenedProp:{ mapping: prop }\n//\n// for parsedProp:{ bypass: true }\n// the generated flattenedProp:{ bypassed: parsedProp }\nstyfn$8.applyParsedProperty = function (ele, parsedProp) {\n var self = this;\n var prop = parsedProp;\n var style = ele._private.style;\n var flatProp;\n var types = self.types;\n var type = self.properties[prop.name].type;\n var propIsBypass = prop.bypass;\n var origProp = style[prop.name];\n var origPropIsBypass = origProp && origProp.bypass;\n var _p = ele._private;\n var flatPropMapping = 'mapping';\n var getVal = function getVal(p) {\n if (p == null) {\n return null;\n } else if (p.pfValue != null) {\n return p.pfValue;\n } else {\n return p.value;\n }\n };\n var checkTriggers = function checkTriggers() {\n var fromVal = getVal(origProp);\n var toVal = getVal(prop);\n self.checkTriggers(ele, prop.name, fromVal, toVal);\n };\n\n // edge sanity checks to prevent the client from making serious mistakes\n if (parsedProp.name === 'curve-style' && ele.isEdge() && (\n // loops must be bundled beziers\n parsedProp.value !== 'bezier' && ele.isLoop() ||\n // edges connected to compound nodes can not be haystacks\n parsedProp.value === 'haystack' && (ele.source().isParent() || ele.target().isParent()))) {\n prop = parsedProp = this.parse(parsedProp.name, 'bezier', propIsBypass);\n }\n if (prop[\"delete\"]) {\n // delete the property and use the default value on falsey value\n style[prop.name] = undefined;\n checkTriggers();\n return true;\n }\n if (prop.deleteBypassed) {\n // delete the property that the\n if (!origProp) {\n checkTriggers();\n return true; // can't delete if no prop\n } else if (origProp.bypass) {\n // delete bypassed\n origProp.bypassed = undefined;\n checkTriggers();\n return true;\n } else {\n return false; // we're unsuccessful deleting the bypassed\n }\n }\n\n // check if we need to delete the current bypass\n if (prop.deleteBypass) {\n // then this property is just here to indicate we need to delete\n if (!origProp) {\n checkTriggers();\n return true; // property is already not defined\n } else if (origProp.bypass) {\n // then replace the bypass property with the original\n // because the bypassed property was already applied (and therefore parsed), we can just replace it (no reapplying necessary)\n style[prop.name] = origProp.bypassed;\n checkTriggers();\n return true;\n } else {\n return false; // we're unsuccessful deleting the bypass\n }\n }\n\n var printMappingErr = function printMappingErr() {\n warn('Do not assign mappings to elements without corresponding data (i.e. ele `' + ele.id() + '` has no mapping for property `' + prop.name + '` with data field `' + prop.field + '`); try a `[' + prop.field + ']` selector to limit scope to elements with `' + prop.field + '` defined');\n };\n\n // put the property in the style objects\n switch (prop.mapped) {\n // flatten the property if mapped\n case types.mapData:\n {\n // flatten the field (e.g. data.foo.bar)\n var fields = prop.field.split('.');\n var fieldVal = _p.data;\n for (var i = 0; i < fields.length && fieldVal; i++) {\n var field = fields[i];\n fieldVal = fieldVal[field];\n }\n if (fieldVal == null) {\n printMappingErr();\n return false;\n }\n var percent;\n if (!number$1(fieldVal)) {\n // then don't apply and fall back on the existing style\n warn('Do not use continuous mappers without specifying numeric data (i.e. `' + prop.field + ': ' + fieldVal + '` for `' + ele.id() + '` is non-numeric)');\n return false;\n } else {\n var fieldWidth = prop.fieldMax - prop.fieldMin;\n if (fieldWidth === 0) {\n // safety check -- not strictly necessary as no props of zero range should be passed here\n percent = 0;\n } else {\n percent = (fieldVal - prop.fieldMin) / fieldWidth;\n }\n }\n\n // make sure to bound percent value\n if (percent < 0) {\n percent = 0;\n } else if (percent > 1) {\n percent = 1;\n }\n if (type.color) {\n var r1 = prop.valueMin[0];\n var r2 = prop.valueMax[0];\n var g1 = prop.valueMin[1];\n var g2 = prop.valueMax[1];\n var b1 = prop.valueMin[2];\n var b2 = prop.valueMax[2];\n var a1 = prop.valueMin[3] == null ? 1 : prop.valueMin[3];\n var a2 = prop.valueMax[3] == null ? 1 : prop.valueMax[3];\n var clr = [Math.round(r1 + (r2 - r1) * percent), Math.round(g1 + (g2 - g1) * percent), Math.round(b1 + (b2 - b1) * percent), Math.round(a1 + (a2 - a1) * percent)];\n flatProp = {\n // colours are simple, so just create the flat property instead of expensive string parsing\n bypass: prop.bypass,\n // we're a bypass if the mapping property is a bypass\n name: prop.name,\n value: clr,\n strValue: 'rgb(' + clr[0] + ', ' + clr[1] + ', ' + clr[2] + ')'\n };\n } else if (type.number) {\n var calcValue = prop.valueMin + (prop.valueMax - prop.valueMin) * percent;\n flatProp = this.parse(prop.name, calcValue, prop.bypass, flatPropMapping);\n } else {\n return false; // can only map to colours and numbers\n }\n\n if (!flatProp) {\n // if we can't flatten the property, then don't apply the property and fall back on the existing style\n printMappingErr();\n return false;\n }\n flatProp.mapping = prop; // keep a reference to the mapping\n prop = flatProp; // the flattened (mapped) property is the one we want\n\n break;\n }\n\n // direct mapping\n case types.data:\n {\n // flatten the field (e.g. data.foo.bar)\n var _fields = prop.field.split('.');\n var _fieldVal = _p.data;\n for (var _i3 = 0; _i3 < _fields.length && _fieldVal; _i3++) {\n var _field = _fields[_i3];\n _fieldVal = _fieldVal[_field];\n }\n if (_fieldVal != null) {\n flatProp = this.parse(prop.name, _fieldVal, prop.bypass, flatPropMapping);\n }\n if (!flatProp) {\n // if we can't flatten the property, then don't apply and fall back on the existing style\n printMappingErr();\n return false;\n }\n flatProp.mapping = prop; // keep a reference to the mapping\n prop = flatProp; // the flattened (mapped) property is the one we want\n\n break;\n }\n case types.fn:\n {\n var fn = prop.value;\n var fnRetVal = prop.fnValue != null ? prop.fnValue : fn(ele); // check for cached value before calling function\n\n prop.prevFnValue = fnRetVal;\n if (fnRetVal == null) {\n warn('Custom function mappers may not return null (i.e. `' + prop.name + '` for ele `' + ele.id() + '` is null)');\n return false;\n }\n flatProp = this.parse(prop.name, fnRetVal, prop.bypass, flatPropMapping);\n if (!flatProp) {\n warn('Custom function mappers may not return invalid values for the property type (i.e. `' + prop.name + '` for ele `' + ele.id() + '` is invalid)');\n return false;\n }\n flatProp.mapping = copy(prop); // keep a reference to the mapping\n prop = flatProp; // the flattened (mapped) property is the one we want\n\n break;\n }\n case undefined:\n break;\n // just set the property\n\n default:\n return false;\n // not a valid mapping\n }\n\n // if the property is a bypass property, then link the resultant property to the original one\n if (propIsBypass) {\n if (origPropIsBypass) {\n // then this bypass overrides the existing one\n prop.bypassed = origProp.bypassed; // steal bypassed prop from old bypass\n } else {\n // then link the orig prop to the new bypass\n prop.bypassed = origProp;\n }\n style[prop.name] = prop; // and set\n } else {\n // prop is not bypass\n if (origPropIsBypass) {\n // then keep the orig prop (since it's a bypass) and link to the new prop\n origProp.bypassed = prop;\n } else {\n // then just replace the old prop with the new one\n style[prop.name] = prop;\n }\n }\n checkTriggers();\n return true;\n};\nstyfn$8.cleanElements = function (eles, keepBypasses) {\n for (var i = 0; i < eles.length; i++) {\n var ele = eles[i];\n this.clearStyleHints(ele);\n ele.dirtyCompoundBoundsCache();\n ele.dirtyBoundingBoxCache();\n if (!keepBypasses) {\n ele._private.style = {};\n } else {\n var style = ele._private.style;\n var propNames = Object.keys(style);\n for (var j = 0; j < propNames.length; j++) {\n var propName = propNames[j];\n var eleProp = style[propName];\n if (eleProp != null) {\n if (eleProp.bypass) {\n eleProp.bypassed = null;\n } else {\n style[propName] = null;\n }\n }\n }\n }\n }\n};\n\n// updates the visual style for all elements (useful for manual style modification after init)\nstyfn$8.update = function () {\n var cy = this._private.cy;\n var eles = cy.mutableElements();\n eles.updateStyle();\n};\n\n// diffProps : { name => { prev, next } }\nstyfn$8.updateTransitions = function (ele, diffProps) {\n var self = this;\n var _p = ele._private;\n var props = ele.pstyle('transition-property').value;\n var duration = ele.pstyle('transition-duration').pfValue;\n var delay = ele.pstyle('transition-delay').pfValue;\n if (props.length > 0 && duration > 0) {\n var style = {};\n\n // build up the style to animate towards\n var anyPrev = false;\n for (var i = 0; i < props.length; i++) {\n var prop = props[i];\n var styProp = ele.pstyle(prop);\n var diffProp = diffProps[prop];\n if (!diffProp) {\n continue;\n }\n var prevProp = diffProp.prev;\n var fromProp = prevProp;\n var toProp = diffProp.next != null ? diffProp.next : styProp;\n var diff = false;\n var initVal = void 0;\n var initDt = 0.000001; // delta time % value for initVal (allows animating out of init zero opacity)\n\n if (!fromProp) {\n continue;\n }\n\n // consider px values\n if (number$1(fromProp.pfValue) && number$1(toProp.pfValue)) {\n diff = toProp.pfValue - fromProp.pfValue; // nonzero is truthy\n initVal = fromProp.pfValue + initDt * diff;\n\n // consider numerical values\n } else if (number$1(fromProp.value) && number$1(toProp.value)) {\n diff = toProp.value - fromProp.value; // nonzero is truthy\n initVal = fromProp.value + initDt * diff;\n\n // consider colour values\n } else if (array(fromProp.value) && array(toProp.value)) {\n diff = fromProp.value[0] !== toProp.value[0] || fromProp.value[1] !== toProp.value[1] || fromProp.value[2] !== toProp.value[2];\n initVal = fromProp.strValue;\n }\n\n // the previous value is good for an animation only if it's different\n if (diff) {\n style[prop] = toProp.strValue; // to val\n this.applyBypass(ele, prop, initVal); // from val\n anyPrev = true;\n }\n } // end if props allow ani\n\n // can't transition if there's nothing previous to transition from\n if (!anyPrev) {\n return;\n }\n _p.transitioning = true;\n new Promise$1(function (resolve) {\n if (delay > 0) {\n ele.delayAnimation(delay).play().promise().then(resolve);\n } else {\n resolve();\n }\n }).then(function () {\n return ele.animation({\n style: style,\n duration: duration,\n easing: ele.pstyle('transition-timing-function').value,\n queue: false\n }).play().promise();\n }).then(function () {\n // if( !isBypass ){\n self.removeBypasses(ele, props);\n ele.emitAndNotify('style');\n // }\n\n _p.transitioning = false;\n });\n } else if (_p.transitioning) {\n this.removeBypasses(ele, props);\n ele.emitAndNotify('style');\n _p.transitioning = false;\n }\n};\nstyfn$8.checkTrigger = function (ele, name, fromValue, toValue, getTrigger, onTrigger) {\n var prop = this.properties[name];\n var triggerCheck = getTrigger(prop);\n if (triggerCheck != null && triggerCheck(fromValue, toValue)) {\n onTrigger(prop);\n }\n};\nstyfn$8.checkZOrderTrigger = function (ele, name, fromValue, toValue) {\n var _this = this;\n this.checkTrigger(ele, name, fromValue, toValue, function (prop) {\n return prop.triggersZOrder;\n }, function () {\n _this._private.cy.notify('zorder', ele);\n });\n};\nstyfn$8.checkBoundsTrigger = function (ele, name, fromValue, toValue) {\n this.checkTrigger(ele, name, fromValue, toValue, function (prop) {\n return prop.triggersBounds;\n }, function (prop) {\n ele.dirtyCompoundBoundsCache();\n ele.dirtyBoundingBoxCache();\n\n // if the prop change makes the bb of pll bezier edges invalid,\n // then dirty the pll edge bb cache as well\n if (\n // only for beziers -- so performance of other edges isn't affected\n prop.triggersBoundsOfParallelBeziers && name === 'curve-style' && (fromValue === 'bezier' || toValue === 'bezier')) {\n ele.parallelEdges().forEach(function (pllEdge) {\n if (pllEdge.isBundledBezier()) {\n pllEdge.dirtyBoundingBoxCache();\n }\n });\n }\n if (prop.triggersBoundsOfConnectedEdges && name === 'display' && (fromValue === 'none' || toValue === 'none')) {\n ele.connectedEdges().forEach(function (edge) {\n edge.dirtyBoundingBoxCache();\n });\n }\n });\n};\nstyfn$8.checkTriggers = function (ele, name, fromValue, toValue) {\n ele.dirtyStyleCache();\n this.checkZOrderTrigger(ele, name, fromValue, toValue);\n this.checkBoundsTrigger(ele, name, fromValue, toValue);\n};\n\nvar styfn$7 = {};\n\n// bypasses are applied to an existing style on an element, and just tacked on temporarily\n// returns true iff application was successful for at least 1 specified property\nstyfn$7.applyBypass = function (eles, name, value, updateTransitions) {\n var self = this;\n var props = [];\n var isBypass = true;\n\n // put all the properties (can specify one or many) in an array after parsing them\n if (name === '*' || name === '**') {\n // apply to all property names\n\n if (value !== undefined) {\n for (var i = 0; i < self.properties.length; i++) {\n var prop = self.properties[i];\n var _name = prop.name;\n var parsedProp = this.parse(_name, value, true);\n if (parsedProp) {\n props.push(parsedProp);\n }\n }\n }\n } else if (string(name)) {\n // then parse the single property\n var _parsedProp = this.parse(name, value, true);\n if (_parsedProp) {\n props.push(_parsedProp);\n }\n } else if (plainObject(name)) {\n // then parse each property\n var specifiedProps = name;\n updateTransitions = value;\n var names = Object.keys(specifiedProps);\n for (var _i = 0; _i < names.length; _i++) {\n var _name2 = names[_i];\n var _value = specifiedProps[_name2];\n if (_value === undefined) {\n // try camel case name too\n _value = specifiedProps[dash2camel(_name2)];\n }\n if (_value !== undefined) {\n var _parsedProp2 = this.parse(_name2, _value, true);\n if (_parsedProp2) {\n props.push(_parsedProp2);\n }\n }\n }\n } else {\n // can't do anything without well defined properties\n return false;\n }\n\n // we've failed if there are no valid properties\n if (props.length === 0) {\n return false;\n }\n\n // now, apply the bypass properties on the elements\n var ret = false; // return true if at least one succesful bypass applied\n for (var _i2 = 0; _i2 < eles.length; _i2++) {\n // for each ele\n var ele = eles[_i2];\n var diffProps = {};\n var diffProp = void 0;\n for (var j = 0; j < props.length; j++) {\n // for each prop\n var _prop = props[j];\n if (updateTransitions) {\n var prevProp = ele.pstyle(_prop.name);\n diffProp = diffProps[_prop.name] = {\n prev: prevProp\n };\n }\n ret = this.applyParsedProperty(ele, copy(_prop)) || ret;\n if (updateTransitions) {\n diffProp.next = ele.pstyle(_prop.name);\n }\n } // for props\n\n if (ret) {\n this.updateStyleHints(ele);\n }\n if (updateTransitions) {\n this.updateTransitions(ele, diffProps, isBypass);\n }\n } // for eles\n\n return ret;\n};\n\n// only useful in specific cases like animation\nstyfn$7.overrideBypass = function (eles, name, value) {\n name = camel2dash(name);\n for (var i = 0; i < eles.length; i++) {\n var ele = eles[i];\n var prop = ele._private.style[name];\n var type = this.properties[name].type;\n var isColor = type.color;\n var isMulti = type.mutiple;\n var oldValue = !prop ? null : prop.pfValue != null ? prop.pfValue : prop.value;\n if (!prop || !prop.bypass) {\n // need a bypass if one doesn't exist\n this.applyBypass(ele, name, value);\n } else {\n prop.value = value;\n if (prop.pfValue != null) {\n prop.pfValue = value;\n }\n if (isColor) {\n prop.strValue = 'rgb(' + value.join(',') + ')';\n } else if (isMulti) {\n prop.strValue = value.join(' ');\n } else {\n prop.strValue = '' + value;\n }\n this.updateStyleHints(ele);\n }\n this.checkTriggers(ele, name, oldValue, value);\n }\n};\nstyfn$7.removeAllBypasses = function (eles, updateTransitions) {\n return this.removeBypasses(eles, this.propertyNames, updateTransitions);\n};\nstyfn$7.removeBypasses = function (eles, props, updateTransitions) {\n var isBypass = true;\n for (var j = 0; j < eles.length; j++) {\n var ele = eles[j];\n var diffProps = {};\n for (var i = 0; i < props.length; i++) {\n var name = props[i];\n var prop = this.properties[name];\n var prevProp = ele.pstyle(prop.name);\n if (!prevProp || !prevProp.bypass) {\n // if a bypass doesn't exist for the prop, nothing needs to be removed\n continue;\n }\n var value = ''; // empty => remove bypass\n var parsedProp = this.parse(name, value, true);\n var diffProp = diffProps[prop.name] = {\n prev: prevProp\n };\n this.applyParsedProperty(ele, parsedProp);\n diffProp.next = ele.pstyle(prop.name);\n } // for props\n\n this.updateStyleHints(ele);\n if (updateTransitions) {\n this.updateTransitions(ele, diffProps, isBypass);\n }\n } // for eles\n};\n\nvar styfn$6 = {};\n\n// gets what an em size corresponds to in pixels relative to a dom element\nstyfn$6.getEmSizeInPixels = function () {\n var px = this.containerCss('font-size');\n if (px != null) {\n return parseFloat(px);\n } else {\n return 1; // for headless\n }\n};\n\n// gets css property from the core container\nstyfn$6.containerCss = function (propName) {\n var cy = this._private.cy;\n var domElement = cy.container();\n var containerWindow = cy.window();\n if (containerWindow && domElement && containerWindow.getComputedStyle) {\n return containerWindow.getComputedStyle(domElement).getPropertyValue(propName);\n }\n};\n\nvar styfn$5 = {};\n\n// gets the rendered style for an element\nstyfn$5.getRenderedStyle = function (ele, prop) {\n if (prop) {\n return this.getStylePropertyValue(ele, prop, true);\n } else {\n return this.getRawStyle(ele, true);\n }\n};\n\n// gets the raw style for an element\nstyfn$5.getRawStyle = function (ele, isRenderedVal) {\n var self = this;\n ele = ele[0]; // insure it's an element\n\n if (ele) {\n var rstyle = {};\n for (var i = 0; i < self.properties.length; i++) {\n var prop = self.properties[i];\n var val = self.getStylePropertyValue(ele, prop.name, isRenderedVal);\n if (val != null) {\n rstyle[prop.name] = val;\n rstyle[dash2camel(prop.name)] = val;\n }\n }\n return rstyle;\n }\n};\nstyfn$5.getIndexedStyle = function (ele, property, subproperty, index) {\n var pstyle = ele.pstyle(property)[subproperty][index];\n return pstyle != null ? pstyle : ele.cy().style().getDefaultProperty(property)[subproperty][0];\n};\nstyfn$5.getStylePropertyValue = function (ele, propName, isRenderedVal) {\n var self = this;\n ele = ele[0]; // insure it's an element\n\n if (ele) {\n var prop = self.properties[propName];\n if (prop.alias) {\n prop = prop.pointsTo;\n }\n var type = prop.type;\n var styleProp = ele.pstyle(prop.name);\n if (styleProp) {\n var value = styleProp.value,\n units = styleProp.units,\n strValue = styleProp.strValue;\n if (isRenderedVal && type.number && value != null && number$1(value)) {\n var zoom = ele.cy().zoom();\n var getRenderedValue = function getRenderedValue(val) {\n return val * zoom;\n };\n var getValueStringWithUnits = function getValueStringWithUnits(val, units) {\n return getRenderedValue(val) + units;\n };\n var isArrayValue = array(value);\n var haveUnits = isArrayValue ? units.every(function (u) {\n return u != null;\n }) : units != null;\n if (haveUnits) {\n if (isArrayValue) {\n return value.map(function (v, i) {\n return getValueStringWithUnits(v, units[i]);\n }).join(' ');\n } else {\n return getValueStringWithUnits(value, units);\n }\n } else {\n if (isArrayValue) {\n return value.map(function (v) {\n return string(v) ? v : '' + getRenderedValue(v);\n }).join(' ');\n } else {\n return '' + getRenderedValue(value);\n }\n }\n } else if (strValue != null) {\n return strValue;\n }\n }\n return null;\n }\n};\nstyfn$5.getAnimationStartStyle = function (ele, aniProps) {\n var rstyle = {};\n for (var i = 0; i < aniProps.length; i++) {\n var aniProp = aniProps[i];\n var name = aniProp.name;\n var styleProp = ele.pstyle(name);\n if (styleProp !== undefined) {\n // then make a prop of it\n if (plainObject(styleProp)) {\n styleProp = this.parse(name, styleProp.strValue);\n } else {\n styleProp = this.parse(name, styleProp);\n }\n }\n if (styleProp) {\n rstyle[name] = styleProp;\n }\n }\n return rstyle;\n};\nstyfn$5.getPropsList = function (propsObj) {\n var self = this;\n var rstyle = [];\n var style = propsObj;\n var props = self.properties;\n if (style) {\n var names = Object.keys(style);\n for (var i = 0; i < names.length; i++) {\n var name = names[i];\n var val = style[name];\n var prop = props[name] || props[camel2dash(name)];\n var styleProp = this.parse(prop.name, val);\n if (styleProp) {\n rstyle.push(styleProp);\n }\n }\n }\n return rstyle;\n};\nstyfn$5.getNonDefaultPropertiesHash = function (ele, propNames, seed) {\n var hash = seed.slice();\n var name, val, strVal, chVal;\n var i, j;\n for (i = 0; i < propNames.length; i++) {\n name = propNames[i];\n val = ele.pstyle(name, false);\n if (val == null) {\n continue;\n } else if (val.pfValue != null) {\n hash[0] = hashInt(chVal, hash[0]);\n hash[1] = hashIntAlt(chVal, hash[1]);\n } else {\n strVal = val.strValue;\n for (j = 0; j < strVal.length; j++) {\n chVal = strVal.charCodeAt(j);\n hash[0] = hashInt(chVal, hash[0]);\n hash[1] = hashIntAlt(chVal, hash[1]);\n }\n }\n }\n return hash;\n};\nstyfn$5.getPropertiesHash = styfn$5.getNonDefaultPropertiesHash;\n\nvar styfn$4 = {};\nstyfn$4.appendFromJson = function (json) {\n var style = this;\n for (var i = 0; i < json.length; i++) {\n var context = json[i];\n var selector = context.selector;\n var props = context.style || context.css;\n var names = Object.keys(props);\n style.selector(selector); // apply selector\n\n for (var j = 0; j < names.length; j++) {\n var name = names[j];\n var value = props[name];\n style.css(name, value); // apply property\n }\n }\n\n return style;\n};\n\n// accessible cy.style() function\nstyfn$4.fromJson = function (json) {\n var style = this;\n style.resetToDefault();\n style.appendFromJson(json);\n return style;\n};\n\n// get json from cy.style() api\nstyfn$4.json = function () {\n var json = [];\n for (var i = this.defaultLength; i < this.length; i++) {\n var cxt = this[i];\n var selector = cxt.selector;\n var props = cxt.properties;\n var css = {};\n for (var j = 0; j < props.length; j++) {\n var prop = props[j];\n css[prop.name] = prop.strValue;\n }\n json.push({\n selector: !selector ? 'core' : selector.toString(),\n style: css\n });\n }\n return json;\n};\n\nvar styfn$3 = {};\nstyfn$3.appendFromString = function (string) {\n var self = this;\n var style = this;\n var remaining = '' + string;\n var selAndBlockStr;\n var blockRem;\n var propAndValStr;\n\n // remove comments from the style string\n remaining = remaining.replace(/[/][*](\\s|.)+?[*][/]/g, '');\n function removeSelAndBlockFromRemaining() {\n // remove the parsed selector and block from the remaining text to parse\n if (remaining.length > selAndBlockStr.length) {\n remaining = remaining.substr(selAndBlockStr.length);\n } else {\n remaining = '';\n }\n }\n function removePropAndValFromRem() {\n // remove the parsed property and value from the remaining block text to parse\n if (blockRem.length > propAndValStr.length) {\n blockRem = blockRem.substr(propAndValStr.length);\n } else {\n blockRem = '';\n }\n }\n for (;;) {\n var nothingLeftToParse = remaining.match(/^\\s*$/);\n if (nothingLeftToParse) {\n break;\n }\n var selAndBlock = remaining.match(/^\\s*((?:.|\\s)+?)\\s*\\{((?:.|\\s)+?)\\}/);\n if (!selAndBlock) {\n warn('Halting stylesheet parsing: String stylesheet contains more to parse but no selector and block found in: ' + remaining);\n break;\n }\n selAndBlockStr = selAndBlock[0];\n\n // parse the selector\n var selectorStr = selAndBlock[1];\n if (selectorStr !== 'core') {\n var selector = new Selector(selectorStr);\n if (selector.invalid) {\n warn('Skipping parsing of block: Invalid selector found in string stylesheet: ' + selectorStr);\n\n // skip this selector and block\n removeSelAndBlockFromRemaining();\n continue;\n }\n }\n\n // parse the block of properties and values\n var blockStr = selAndBlock[2];\n var invalidBlock = false;\n blockRem = blockStr;\n var props = [];\n for (;;) {\n var _nothingLeftToParse = blockRem.match(/^\\s*$/);\n if (_nothingLeftToParse) {\n break;\n }\n var propAndVal = blockRem.match(/^\\s*(.+?)\\s*:\\s*(.+?)(?:\\s*;|\\s*$)/);\n if (!propAndVal) {\n warn('Skipping parsing of block: Invalid formatting of style property and value definitions found in:' + blockStr);\n invalidBlock = true;\n break;\n }\n propAndValStr = propAndVal[0];\n var propStr = propAndVal[1];\n var valStr = propAndVal[2];\n var prop = self.properties[propStr];\n if (!prop) {\n warn('Skipping property: Invalid property name in: ' + propAndValStr);\n\n // skip this property in the block\n removePropAndValFromRem();\n continue;\n }\n var parsedProp = style.parse(propStr, valStr);\n if (!parsedProp) {\n warn('Skipping property: Invalid property definition in: ' + propAndValStr);\n\n // skip this property in the block\n removePropAndValFromRem();\n continue;\n }\n props.push({\n name: propStr,\n val: valStr\n });\n removePropAndValFromRem();\n }\n if (invalidBlock) {\n removeSelAndBlockFromRemaining();\n break;\n }\n\n // put the parsed block in the style\n style.selector(selectorStr);\n for (var i = 0; i < props.length; i++) {\n var _prop = props[i];\n style.css(_prop.name, _prop.val);\n }\n removeSelAndBlockFromRemaining();\n }\n return style;\n};\nstyfn$3.fromString = function (string) {\n var style = this;\n style.resetToDefault();\n style.appendFromString(string);\n return style;\n};\n\nvar styfn$2 = {};\n(function () {\n var number$1 = number;\n var rgba = rgbaNoBackRefs;\n var hsla = hslaNoBackRefs;\n var hex3$1 = hex3;\n var hex6$1 = hex6;\n var data = function data(prefix) {\n return '^' + prefix + '\\\\s*\\\\(\\\\s*([\\\\w\\\\.]+)\\\\s*\\\\)$';\n };\n var mapData = function mapData(prefix) {\n var mapArg = number$1 + '|\\\\w+|' + rgba + '|' + hsla + '|' + hex3$1 + '|' + hex6$1;\n return '^' + prefix + '\\\\s*\\\\(([\\\\w\\\\.]+)\\\\s*\\\\,\\\\s*(' + number$1 + ')\\\\s*\\\\,\\\\s*(' + number$1 + ')\\\\s*,\\\\s*(' + mapArg + ')\\\\s*\\\\,\\\\s*(' + mapArg + ')\\\\)$';\n };\n var urlRegexes = ['^url\\\\s*\\\\(\\\\s*[\\'\"]?(.+?)[\\'\"]?\\\\s*\\\\)$', '^(none)$', '^(.+)$'];\n\n // each visual style property has a type and needs to be validated according to it\n styfn$2.types = {\n time: {\n number: true,\n min: 0,\n units: 's|ms',\n implicitUnits: 'ms'\n },\n percent: {\n number: true,\n min: 0,\n max: 100,\n units: '%',\n implicitUnits: '%'\n },\n percentages: {\n number: true,\n min: 0,\n max: 100,\n units: '%',\n implicitUnits: '%',\n multiple: true\n },\n zeroOneNumber: {\n number: true,\n min: 0,\n max: 1,\n unitless: true\n },\n zeroOneNumbers: {\n number: true,\n min: 0,\n max: 1,\n unitless: true,\n multiple: true\n },\n nOneOneNumber: {\n number: true,\n min: -1,\n max: 1,\n unitless: true\n },\n nonNegativeInt: {\n number: true,\n min: 0,\n integer: true,\n unitless: true\n },\n nonNegativeNumber: {\n number: true,\n min: 0,\n unitless: true\n },\n position: {\n enums: ['parent', 'origin']\n },\n nodeSize: {\n number: true,\n min: 0,\n enums: ['label']\n },\n number: {\n number: true,\n unitless: true\n },\n numbers: {\n number: true,\n unitless: true,\n multiple: true\n },\n positiveNumber: {\n number: true,\n unitless: true,\n min: 0,\n strictMin: true\n },\n size: {\n number: true,\n min: 0\n },\n bidirectionalSize: {\n number: true\n },\n // allows negative\n bidirectionalSizeMaybePercent: {\n number: true,\n allowPercent: true\n },\n // allows negative\n bidirectionalSizes: {\n number: true,\n multiple: true\n },\n // allows negative\n sizeMaybePercent: {\n number: true,\n min: 0,\n allowPercent: true\n },\n axisDirection: {\n enums: ['horizontal', 'leftward', 'rightward', 'vertical', 'upward', 'downward', 'auto']\n },\n paddingRelativeTo: {\n enums: ['width', 'height', 'average', 'min', 'max']\n },\n bgWH: {\n number: true,\n min: 0,\n allowPercent: true,\n enums: ['auto'],\n multiple: true\n },\n bgPos: {\n number: true,\n allowPercent: true,\n multiple: true\n },\n bgRelativeTo: {\n enums: ['inner', 'include-padding'],\n multiple: true\n },\n bgRepeat: {\n enums: ['repeat', 'repeat-x', 'repeat-y', 'no-repeat'],\n multiple: true\n },\n bgFit: {\n enums: ['none', 'contain', 'cover'],\n multiple: true\n },\n bgCrossOrigin: {\n enums: ['anonymous', 'use-credentials', 'null'],\n multiple: true\n },\n bgClip: {\n enums: ['none', 'node'],\n multiple: true\n },\n bgContainment: {\n enums: ['inside', 'over'],\n multiple: true\n },\n color: {\n color: true\n },\n colors: {\n color: true,\n multiple: true\n },\n fill: {\n enums: ['solid', 'linear-gradient', 'radial-gradient']\n },\n bool: {\n enums: ['yes', 'no']\n },\n bools: {\n enums: ['yes', 'no'],\n multiple: true\n },\n lineStyle: {\n enums: ['solid', 'dotted', 'dashed']\n },\n lineCap: {\n enums: ['butt', 'round', 'square']\n },\n linePosition: {\n enums: ['center', 'inside', 'outside']\n },\n lineJoin: {\n enums: ['round', 'bevel', 'miter']\n },\n borderStyle: {\n enums: ['solid', 'dotted', 'dashed', 'double']\n },\n curveStyle: {\n enums: ['bezier', 'unbundled-bezier', 'haystack', 'segments', 'straight', 'straight-triangle', 'taxi', 'round-segments', 'round-taxi']\n },\n radiusType: {\n enums: ['arc-radius', 'influence-radius'],\n multiple: true\n },\n fontFamily: {\n regex: '^([\\\\w- \\\\\"]+(?:\\\\s*,\\\\s*[\\\\w- \\\\\"]+)*)$'\n },\n fontStyle: {\n enums: ['italic', 'normal', 'oblique']\n },\n fontWeight: {\n enums: ['normal', 'bold', 'bolder', 'lighter', '100', '200', '300', '400', '500', '600', '800', '900', 100, 200, 300, 400, 500, 600, 700, 800, 900]\n },\n textDecoration: {\n enums: ['none', 'underline', 'overline', 'line-through']\n },\n textTransform: {\n enums: ['none', 'uppercase', 'lowercase']\n },\n textWrap: {\n enums: ['none', 'wrap', 'ellipsis']\n },\n textOverflowWrap: {\n enums: ['whitespace', 'anywhere']\n },\n textBackgroundShape: {\n enums: ['rectangle', 'roundrectangle', 'round-rectangle']\n },\n nodeShape: {\n enums: ['rectangle', 'roundrectangle', 'round-rectangle', 'cutrectangle', 'cut-rectangle', 'bottomroundrectangle', 'bottom-round-rectangle', 'barrel', 'ellipse', 'triangle', 'round-triangle', 'square', 'pentagon', 'round-pentagon', 'hexagon', 'round-hexagon', 'concavehexagon', 'concave-hexagon', 'heptagon', 'round-heptagon', 'octagon', 'round-octagon', 'tag', 'round-tag', 'star', 'diamond', 'round-diamond', 'vee', 'rhomboid', 'right-rhomboid', 'polygon']\n },\n overlayShape: {\n enums: ['roundrectangle', 'round-rectangle', 'ellipse']\n },\n cornerRadius: {\n number: true,\n min: 0,\n units: 'px|em',\n implicitUnits: 'px',\n enums: ['auto']\n },\n compoundIncludeLabels: {\n enums: ['include', 'exclude']\n },\n arrowShape: {\n enums: ['tee', 'triangle', 'triangle-tee', 'circle-triangle', 'triangle-cross', 'triangle-backcurve', 'vee', 'square', 'circle', 'diamond', 'chevron', 'none']\n },\n arrowFill: {\n enums: ['filled', 'hollow']\n },\n arrowWidth: {\n number: true,\n units: '%|px|em',\n implicitUnits: 'px',\n enums: ['match-line']\n },\n display: {\n enums: ['element', 'none']\n },\n visibility: {\n enums: ['hidden', 'visible']\n },\n zCompoundDepth: {\n enums: ['bottom', 'orphan', 'auto', 'top']\n },\n zIndexCompare: {\n enums: ['auto', 'manual']\n },\n valign: {\n enums: ['top', 'center', 'bottom']\n },\n halign: {\n enums: ['left', 'center', 'right']\n },\n justification: {\n enums: ['left', 'center', 'right', 'auto']\n },\n text: {\n string: true\n },\n data: {\n mapping: true,\n regex: data('data')\n },\n layoutData: {\n mapping: true,\n regex: data('layoutData')\n },\n scratch: {\n mapping: true,\n regex: data('scratch')\n },\n mapData: {\n mapping: true,\n regex: mapData('mapData')\n },\n mapLayoutData: {\n mapping: true,\n regex: mapData('mapLayoutData')\n },\n mapScratch: {\n mapping: true,\n regex: mapData('mapScratch')\n },\n fn: {\n mapping: true,\n fn: true\n },\n url: {\n regexes: urlRegexes,\n singleRegexMatchValue: true\n },\n urls: {\n regexes: urlRegexes,\n singleRegexMatchValue: true,\n multiple: true\n },\n propList: {\n propList: true\n },\n angle: {\n number: true,\n units: 'deg|rad',\n implicitUnits: 'rad'\n },\n textRotation: {\n number: true,\n units: 'deg|rad',\n implicitUnits: 'rad',\n enums: ['none', 'autorotate']\n },\n polygonPointList: {\n number: true,\n multiple: true,\n evenMultiple: true,\n min: -1,\n max: 1,\n unitless: true\n },\n edgeDistances: {\n enums: ['intersection', 'node-position', 'endpoints']\n },\n edgeEndpoint: {\n number: true,\n multiple: true,\n units: '%|px|em|deg|rad',\n implicitUnits: 'px',\n enums: ['inside-to-node', 'outside-to-node', 'outside-to-node-or-label', 'outside-to-line', 'outside-to-line-or-label'],\n singleEnum: true,\n validate: function validate(valArr, unitsArr) {\n switch (valArr.length) {\n case 2:\n // can be % or px only\n return unitsArr[0] !== 'deg' && unitsArr[0] !== 'rad' && unitsArr[1] !== 'deg' && unitsArr[1] !== 'rad';\n case 1:\n // can be enum, deg, or rad only\n return string(valArr[0]) || unitsArr[0] === 'deg' || unitsArr[0] === 'rad';\n default:\n return false;\n }\n }\n },\n easing: {\n regexes: ['^(spring)\\\\s*\\\\(\\\\s*(' + number$1 + ')\\\\s*,\\\\s*(' + number$1 + ')\\\\s*\\\\)$', '^(cubic-bezier)\\\\s*\\\\(\\\\s*(' + number$1 + ')\\\\s*,\\\\s*(' + number$1 + ')\\\\s*,\\\\s*(' + number$1 + ')\\\\s*,\\\\s*(' + number$1 + ')\\\\s*\\\\)$'],\n enums: ['linear', 'ease', 'ease-in', 'ease-out', 'ease-in-out', 'ease-in-sine', 'ease-out-sine', 'ease-in-out-sine', 'ease-in-quad', 'ease-out-quad', 'ease-in-out-quad', 'ease-in-cubic', 'ease-out-cubic', 'ease-in-out-cubic', 'ease-in-quart', 'ease-out-quart', 'ease-in-out-quart', 'ease-in-quint', 'ease-out-quint', 'ease-in-out-quint', 'ease-in-expo', 'ease-out-expo', 'ease-in-out-expo', 'ease-in-circ', 'ease-out-circ', 'ease-in-out-circ']\n },\n gradientDirection: {\n enums: ['to-bottom', 'to-top', 'to-left', 'to-right', 'to-bottom-right', 'to-bottom-left', 'to-top-right', 'to-top-left', 'to-right-bottom', 'to-left-bottom', 'to-right-top', 'to-left-top' // different order\n ]\n },\n\n boundsExpansion: {\n number: true,\n multiple: true,\n min: 0,\n validate: function validate(valArr) {\n var length = valArr.length;\n return length === 1 || length === 2 || length === 4;\n }\n }\n };\n var diff = {\n zeroNonZero: function zeroNonZero(val1, val2) {\n if ((val1 == null || val2 == null) && val1 !== val2) {\n return true; // null cases could represent any value\n }\n if (val1 == 0 && val2 != 0) {\n return true;\n } else if (val1 != 0 && val2 == 0) {\n return true;\n } else {\n return false;\n }\n },\n any: function any(val1, val2) {\n return val1 != val2;\n },\n emptyNonEmpty: function emptyNonEmpty(str1, str2) {\n var empty1 = emptyString(str1);\n var empty2 = emptyString(str2);\n return empty1 && !empty2 || !empty1 && empty2;\n }\n };\n\n // define visual style properties\n //\n // - n.b. adding a new group of props may require updates to updateStyleHints()\n // - adding new props to an existing group gets handled automatically\n\n var t = styfn$2.types;\n var mainLabel = [{\n name: 'label',\n type: t.text,\n triggersBounds: diff.any,\n triggersZOrder: diff.emptyNonEmpty\n }, {\n name: 'text-rotation',\n type: t.textRotation,\n triggersBounds: diff.any\n }, {\n name: 'text-margin-x',\n type: t.bidirectionalSize,\n triggersBounds: diff.any\n }, {\n name: 'text-margin-y',\n type: t.bidirectionalSize,\n triggersBounds: diff.any\n }];\n var sourceLabel = [{\n name: 'source-label',\n type: t.text,\n triggersBounds: diff.any\n }, {\n name: 'source-text-rotation',\n type: t.textRotation,\n triggersBounds: diff.any\n }, {\n name: 'source-text-margin-x',\n type: t.bidirectionalSize,\n triggersBounds: diff.any\n }, {\n name: 'source-text-margin-y',\n type: t.bidirectionalSize,\n triggersBounds: diff.any\n }, {\n name: 'source-text-offset',\n type: t.size,\n triggersBounds: diff.any\n }];\n var targetLabel = [{\n name: 'target-label',\n type: t.text,\n triggersBounds: diff.any\n }, {\n name: 'target-text-rotation',\n type: t.textRotation,\n triggersBounds: diff.any\n }, {\n name: 'target-text-margin-x',\n type: t.bidirectionalSize,\n triggersBounds: diff.any\n }, {\n name: 'target-text-margin-y',\n type: t.bidirectionalSize,\n triggersBounds: diff.any\n }, {\n name: 'target-text-offset',\n type: t.size,\n triggersBounds: diff.any\n }];\n var labelDimensions = [{\n name: 'font-family',\n type: t.fontFamily,\n triggersBounds: diff.any\n }, {\n name: 'font-style',\n type: t.fontStyle,\n triggersBounds: diff.any\n }, {\n name: 'font-weight',\n type: t.fontWeight,\n triggersBounds: diff.any\n }, {\n name: 'font-size',\n type: t.size,\n triggersBounds: diff.any\n }, {\n name: 'text-transform',\n type: t.textTransform,\n triggersBounds: diff.any\n }, {\n name: 'text-wrap',\n type: t.textWrap,\n triggersBounds: diff.any\n }, {\n name: 'text-overflow-wrap',\n type: t.textOverflowWrap,\n triggersBounds: diff.any\n }, {\n name: 'text-max-width',\n type: t.size,\n triggersBounds: diff.any\n }, {\n name: 'text-outline-width',\n type: t.size,\n triggersBounds: diff.any\n }, {\n name: 'line-height',\n type: t.positiveNumber,\n triggersBounds: diff.any\n }];\n var commonLabel = [{\n name: 'text-valign',\n type: t.valign,\n triggersBounds: diff.any\n }, {\n name: 'text-halign',\n type: t.halign,\n triggersBounds: diff.any\n }, {\n name: 'color',\n type: t.color\n }, {\n name: 'text-outline-color',\n type: t.color\n }, {\n name: 'text-outline-opacity',\n type: t.zeroOneNumber\n }, {\n name: 'text-background-color',\n type: t.color\n }, {\n name: 'text-background-opacity',\n type: t.zeroOneNumber\n }, {\n name: 'text-background-padding',\n type: t.size,\n triggersBounds: diff.any\n }, {\n name: 'text-border-opacity',\n type: t.zeroOneNumber\n }, {\n name: 'text-border-color',\n type: t.color\n }, {\n name: 'text-border-width',\n type: t.size,\n triggersBounds: diff.any\n }, {\n name: 'text-border-style',\n type: t.borderStyle,\n triggersBounds: diff.any\n }, {\n name: 'text-background-shape',\n type: t.textBackgroundShape,\n triggersBounds: diff.any\n }, {\n name: 'text-justification',\n type: t.justification\n }];\n var behavior = [{\n name: 'events',\n type: t.bool,\n triggersZOrder: diff.any\n }, {\n name: 'text-events',\n type: t.bool,\n triggersZOrder: diff.any\n }];\n var visibility = [{\n name: 'display',\n type: t.display,\n triggersZOrder: diff.any,\n triggersBounds: diff.any,\n triggersBoundsOfConnectedEdges: true\n }, {\n name: 'visibility',\n type: t.visibility,\n triggersZOrder: diff.any\n }, {\n name: 'opacity',\n type: t.zeroOneNumber,\n triggersZOrder: diff.zeroNonZero\n }, {\n name: 'text-opacity',\n type: t.zeroOneNumber\n }, {\n name: 'min-zoomed-font-size',\n type: t.size\n }, {\n name: 'z-compound-depth',\n type: t.zCompoundDepth,\n triggersZOrder: diff.any\n }, {\n name: 'z-index-compare',\n type: t.zIndexCompare,\n triggersZOrder: diff.any\n }, {\n name: 'z-index',\n type: t.number,\n triggersZOrder: diff.any\n }];\n var overlay = [{\n name: 'overlay-padding',\n type: t.size,\n triggersBounds: diff.any\n }, {\n name: 'overlay-color',\n type: t.color\n }, {\n name: 'overlay-opacity',\n type: t.zeroOneNumber,\n triggersBounds: diff.zeroNonZero\n }, {\n name: 'overlay-shape',\n type: t.overlayShape,\n triggersBounds: diff.any\n }, {\n name: 'overlay-corner-radius',\n type: t.cornerRadius\n }];\n var underlay = [{\n name: 'underlay-padding',\n type: t.size,\n triggersBounds: diff.any\n }, {\n name: 'underlay-color',\n type: t.color\n }, {\n name: 'underlay-opacity',\n type: t.zeroOneNumber,\n triggersBounds: diff.zeroNonZero\n }, {\n name: 'underlay-shape',\n type: t.overlayShape,\n triggersBounds: diff.any\n }, {\n name: 'underlay-corner-radius',\n type: t.cornerRadius\n }];\n var transition = [{\n name: 'transition-property',\n type: t.propList\n }, {\n name: 'transition-duration',\n type: t.time\n }, {\n name: 'transition-delay',\n type: t.time\n }, {\n name: 'transition-timing-function',\n type: t.easing\n }];\n var nodeSizeHashOverride = function nodeSizeHashOverride(ele, parsedProp) {\n if (parsedProp.value === 'label') {\n return -ele.poolIndex(); // no hash key hits is using label size (hitrate for perf probably low anyway)\n } else {\n return parsedProp.pfValue;\n }\n };\n var nodeBody = [{\n name: 'height',\n type: t.nodeSize,\n triggersBounds: diff.any,\n hashOverride: nodeSizeHashOverride\n }, {\n name: 'width',\n type: t.nodeSize,\n triggersBounds: diff.any,\n hashOverride: nodeSizeHashOverride\n }, {\n name: 'shape',\n type: t.nodeShape,\n triggersBounds: diff.any\n }, {\n name: 'shape-polygon-points',\n type: t.polygonPointList,\n triggersBounds: diff.any\n }, {\n name: 'corner-radius',\n type: t.cornerRadius\n }, {\n name: 'background-color',\n type: t.color\n }, {\n name: 'background-fill',\n type: t.fill\n }, {\n name: 'background-opacity',\n type: t.zeroOneNumber\n }, {\n name: 'background-blacken',\n type: t.nOneOneNumber\n }, {\n name: 'background-gradient-stop-colors',\n type: t.colors\n }, {\n name: 'background-gradient-stop-positions',\n type: t.percentages\n }, {\n name: 'background-gradient-direction',\n type: t.gradientDirection\n }, {\n name: 'padding',\n type: t.sizeMaybePercent,\n triggersBounds: diff.any\n }, {\n name: 'padding-relative-to',\n type: t.paddingRelativeTo,\n triggersBounds: diff.any\n }, {\n name: 'bounds-expansion',\n type: t.boundsExpansion,\n triggersBounds: diff.any\n }];\n var nodeBorder = [{\n name: 'border-color',\n type: t.color\n }, {\n name: 'border-opacity',\n type: t.zeroOneNumber\n }, {\n name: 'border-width',\n type: t.size,\n triggersBounds: diff.any\n }, {\n name: 'border-style',\n type: t.borderStyle\n }, {\n name: 'border-cap',\n type: t.lineCap\n }, {\n name: 'border-join',\n type: t.lineJoin\n }, {\n name: 'border-dash-pattern',\n type: t.numbers\n }, {\n name: 'border-dash-offset',\n type: t.number\n }, {\n name: 'border-position',\n type: t.linePosition\n }];\n var nodeOutline = [{\n name: 'outline-color',\n type: t.color\n }, {\n name: 'outline-opacity',\n type: t.zeroOneNumber\n }, {\n name: 'outline-width',\n type: t.size,\n triggersBounds: diff.any\n }, {\n name: 'outline-style',\n type: t.borderStyle\n }, {\n name: 'outline-offset',\n type: t.size,\n triggersBounds: diff.any\n }];\n var backgroundImage = [{\n name: 'background-image',\n type: t.urls\n }, {\n name: 'background-image-crossorigin',\n type: t.bgCrossOrigin\n }, {\n name: 'background-image-opacity',\n type: t.zeroOneNumbers\n }, {\n name: 'background-image-containment',\n type: t.bgContainment\n }, {\n name: 'background-image-smoothing',\n type: t.bools\n }, {\n name: 'background-position-x',\n type: t.bgPos\n }, {\n name: 'background-position-y',\n type: t.bgPos\n }, {\n name: 'background-width-relative-to',\n type: t.bgRelativeTo\n }, {\n name: 'background-height-relative-to',\n type: t.bgRelativeTo\n }, {\n name: 'background-repeat',\n type: t.bgRepeat\n }, {\n name: 'background-fit',\n type: t.bgFit\n }, {\n name: 'background-clip',\n type: t.bgClip\n }, {\n name: 'background-width',\n type: t.bgWH\n }, {\n name: 'background-height',\n type: t.bgWH\n }, {\n name: 'background-offset-x',\n type: t.bgPos\n }, {\n name: 'background-offset-y',\n type: t.bgPos\n }];\n var compound = [{\n name: 'position',\n type: t.position,\n triggersBounds: diff.any\n }, {\n name: 'compound-sizing-wrt-labels',\n type: t.compoundIncludeLabels,\n triggersBounds: diff.any\n }, {\n name: 'min-width',\n type: t.size,\n triggersBounds: diff.any\n }, {\n name: 'min-width-bias-left',\n type: t.sizeMaybePercent,\n triggersBounds: diff.any\n }, {\n name: 'min-width-bias-right',\n type: t.sizeMaybePercent,\n triggersBounds: diff.any\n }, {\n name: 'min-height',\n type: t.size,\n triggersBounds: diff.any\n }, {\n name: 'min-height-bias-top',\n type: t.sizeMaybePercent,\n triggersBounds: diff.any\n }, {\n name: 'min-height-bias-bottom',\n type: t.sizeMaybePercent,\n triggersBounds: diff.any\n }];\n var edgeLine = [{\n name: 'line-style',\n type: t.lineStyle\n }, {\n name: 'line-color',\n type: t.color\n }, {\n name: 'line-fill',\n type: t.fill\n }, {\n name: 'line-cap',\n type: t.lineCap\n }, {\n name: 'line-opacity',\n type: t.zeroOneNumber\n }, {\n name: 'line-dash-pattern',\n type: t.numbers\n }, {\n name: 'line-dash-offset',\n type: t.number\n }, {\n name: 'line-outline-width',\n type: t.size\n }, {\n name: 'line-outline-color',\n type: t.color\n }, {\n name: 'line-gradient-stop-colors',\n type: t.colors\n }, {\n name: 'line-gradient-stop-positions',\n type: t.percentages\n }, {\n name: 'curve-style',\n type: t.curveStyle,\n triggersBounds: diff.any,\n triggersBoundsOfParallelBeziers: true\n }, {\n name: 'haystack-radius',\n type: t.zeroOneNumber,\n triggersBounds: diff.any\n }, {\n name: 'source-endpoint',\n type: t.edgeEndpoint,\n triggersBounds: diff.any\n }, {\n name: 'target-endpoint',\n type: t.edgeEndpoint,\n triggersBounds: diff.any\n }, {\n name: 'control-point-step-size',\n type: t.size,\n triggersBounds: diff.any\n }, {\n name: 'control-point-distances',\n type: t.bidirectionalSizes,\n triggersBounds: diff.any\n }, {\n name: 'control-point-weights',\n type: t.numbers,\n triggersBounds: diff.any\n }, {\n name: 'segment-distances',\n type: t.bidirectionalSizes,\n triggersBounds: diff.any\n }, {\n name: 'segment-weights',\n type: t.numbers,\n triggersBounds: diff.any\n }, {\n name: 'segment-radii',\n type: t.numbers,\n triggersBounds: diff.any\n }, {\n name: 'radius-type',\n type: t.radiusType,\n triggersBounds: diff.any\n }, {\n name: 'taxi-turn',\n type: t.bidirectionalSizeMaybePercent,\n triggersBounds: diff.any\n }, {\n name: 'taxi-turn-min-distance',\n type: t.size,\n triggersBounds: diff.any\n }, {\n name: 'taxi-direction',\n type: t.axisDirection,\n triggersBounds: diff.any\n }, {\n name: 'taxi-radius',\n type: t.number,\n triggersBounds: diff.any\n }, {\n name: 'edge-distances',\n type: t.edgeDistances,\n triggersBounds: diff.any\n }, {\n name: 'arrow-scale',\n type: t.positiveNumber,\n triggersBounds: diff.any\n }, {\n name: 'loop-direction',\n type: t.angle,\n triggersBounds: diff.any\n }, {\n name: 'loop-sweep',\n type: t.angle,\n triggersBounds: diff.any\n }, {\n name: 'source-distance-from-node',\n type: t.size,\n triggersBounds: diff.any\n }, {\n name: 'target-distance-from-node',\n type: t.size,\n triggersBounds: diff.any\n }];\n var ghost = [{\n name: 'ghost',\n type: t.bool,\n triggersBounds: diff.any\n }, {\n name: 'ghost-offset-x',\n type: t.bidirectionalSize,\n triggersBounds: diff.any\n }, {\n name: 'ghost-offset-y',\n type: t.bidirectionalSize,\n triggersBounds: diff.any\n }, {\n name: 'ghost-opacity',\n type: t.zeroOneNumber\n }];\n var core = [{\n name: 'selection-box-color',\n type: t.color\n }, {\n name: 'selection-box-opacity',\n type: t.zeroOneNumber\n }, {\n name: 'selection-box-border-color',\n type: t.color\n }, {\n name: 'selection-box-border-width',\n type: t.size\n }, {\n name: 'active-bg-color',\n type: t.color\n }, {\n name: 'active-bg-opacity',\n type: t.zeroOneNumber\n }, {\n name: 'active-bg-size',\n type: t.size\n }, {\n name: 'outside-texture-bg-color',\n type: t.color\n }, {\n name: 'outside-texture-bg-opacity',\n type: t.zeroOneNumber\n }];\n\n // pie backgrounds for nodes\n var pie = [];\n styfn$2.pieBackgroundN = 16; // because the pie properties are numbered, give access to a constant N (for renderer use)\n pie.push({\n name: 'pie-size',\n type: t.sizeMaybePercent\n });\n for (var i = 1; i <= styfn$2.pieBackgroundN; i++) {\n pie.push({\n name: 'pie-' + i + '-background-color',\n type: t.color\n });\n pie.push({\n name: 'pie-' + i + '-background-size',\n type: t.percent\n });\n pie.push({\n name: 'pie-' + i + '-background-opacity',\n type: t.zeroOneNumber\n });\n }\n\n // edge arrows\n var edgeArrow = [];\n var arrowPrefixes = styfn$2.arrowPrefixes = ['source', 'mid-source', 'target', 'mid-target'];\n [{\n name: 'arrow-shape',\n type: t.arrowShape,\n triggersBounds: diff.any\n }, {\n name: 'arrow-color',\n type: t.color\n }, {\n name: 'arrow-fill',\n type: t.arrowFill\n }, {\n name: 'arrow-width',\n type: t.arrowWidth\n }].forEach(function (prop) {\n arrowPrefixes.forEach(function (prefix) {\n var name = prefix + '-' + prop.name;\n var type = prop.type,\n triggersBounds = prop.triggersBounds;\n edgeArrow.push({\n name: name,\n type: type,\n triggersBounds: triggersBounds\n });\n });\n }, {});\n var props = styfn$2.properties = [].concat(behavior, transition, visibility, overlay, underlay, ghost, commonLabel, labelDimensions, mainLabel, sourceLabel, targetLabel, nodeBody, nodeBorder, nodeOutline, backgroundImage, pie, compound, edgeLine, edgeArrow, core);\n var propGroups = styfn$2.propertyGroups = {\n // common to all eles\n behavior: behavior,\n transition: transition,\n visibility: visibility,\n overlay: overlay,\n underlay: underlay,\n ghost: ghost,\n // labels\n commonLabel: commonLabel,\n labelDimensions: labelDimensions,\n mainLabel: mainLabel,\n sourceLabel: sourceLabel,\n targetLabel: targetLabel,\n // node props\n nodeBody: nodeBody,\n nodeBorder: nodeBorder,\n nodeOutline: nodeOutline,\n backgroundImage: backgroundImage,\n pie: pie,\n compound: compound,\n // edge props\n edgeLine: edgeLine,\n edgeArrow: edgeArrow,\n core: core\n };\n var propGroupNames = styfn$2.propertyGroupNames = {};\n var propGroupKeys = styfn$2.propertyGroupKeys = Object.keys(propGroups);\n propGroupKeys.forEach(function (key) {\n propGroupNames[key] = propGroups[key].map(function (prop) {\n return prop.name;\n });\n propGroups[key].forEach(function (prop) {\n return prop.groupKey = key;\n });\n });\n\n // define aliases\n var aliases = styfn$2.aliases = [{\n name: 'content',\n pointsTo: 'label'\n }, {\n name: 'control-point-distance',\n pointsTo: 'control-point-distances'\n }, {\n name: 'control-point-weight',\n pointsTo: 'control-point-weights'\n }, {\n name: 'segment-distance',\n pointsTo: 'segment-distances'\n }, {\n name: 'segment-weight',\n pointsTo: 'segment-weights'\n }, {\n name: 'segment-radius',\n pointsTo: 'segment-radii'\n }, {\n name: 'edge-text-rotation',\n pointsTo: 'text-rotation'\n }, {\n name: 'padding-left',\n pointsTo: 'padding'\n }, {\n name: 'padding-right',\n pointsTo: 'padding'\n }, {\n name: 'padding-top',\n pointsTo: 'padding'\n }, {\n name: 'padding-bottom',\n pointsTo: 'padding'\n }];\n\n // list of property names\n styfn$2.propertyNames = props.map(function (p) {\n return p.name;\n });\n\n // allow access of properties by name ( e.g. style.properties.height )\n for (var _i = 0; _i < props.length; _i++) {\n var prop = props[_i];\n props[prop.name] = prop; // allow lookup by name\n }\n\n // map aliases\n for (var _i2 = 0; _i2 < aliases.length; _i2++) {\n var alias = aliases[_i2];\n var pointsToProp = props[alias.pointsTo];\n var aliasProp = {\n name: alias.name,\n alias: true,\n pointsTo: pointsToProp\n };\n\n // add alias prop for parsing\n props.push(aliasProp);\n props[alias.name] = aliasProp; // allow lookup by name\n }\n})();\n\nstyfn$2.getDefaultProperty = function (name) {\n return this.getDefaultProperties()[name];\n};\nstyfn$2.getDefaultProperties = function () {\n var _p = this._private;\n if (_p.defaultProperties != null) {\n return _p.defaultProperties;\n }\n var rawProps = extend({\n // core props\n 'selection-box-color': '#ddd',\n 'selection-box-opacity': 0.65,\n 'selection-box-border-color': '#aaa',\n 'selection-box-border-width': 1,\n 'active-bg-color': 'black',\n 'active-bg-opacity': 0.15,\n 'active-bg-size': 30,\n 'outside-texture-bg-color': '#000',\n 'outside-texture-bg-opacity': 0.125,\n // common node/edge props\n 'events': 'yes',\n 'text-events': 'no',\n 'text-valign': 'top',\n 'text-halign': 'center',\n 'text-justification': 'auto',\n 'line-height': 1,\n 'color': '#000',\n 'text-outline-color': '#000',\n 'text-outline-width': 0,\n 'text-outline-opacity': 1,\n 'text-opacity': 1,\n 'text-decoration': 'none',\n 'text-transform': 'none',\n 'text-wrap': 'none',\n 'text-overflow-wrap': 'whitespace',\n 'text-max-width': 9999,\n 'text-background-color': '#000',\n 'text-background-opacity': 0,\n 'text-background-shape': 'rectangle',\n 'text-background-padding': 0,\n 'text-border-opacity': 0,\n 'text-border-width': 0,\n 'text-border-style': 'solid',\n 'text-border-color': '#000',\n 'font-family': 'Helvetica Neue, Helvetica, sans-serif',\n 'font-style': 'normal',\n 'font-weight': 'normal',\n 'font-size': 16,\n 'min-zoomed-font-size': 0,\n 'text-rotation': 'none',\n 'source-text-rotation': 'none',\n 'target-text-rotation': 'none',\n 'visibility': 'visible',\n 'display': 'element',\n 'opacity': 1,\n 'z-compound-depth': 'auto',\n 'z-index-compare': 'auto',\n 'z-index': 0,\n 'label': '',\n 'text-margin-x': 0,\n 'text-margin-y': 0,\n 'source-label': '',\n 'source-text-offset': 0,\n 'source-text-margin-x': 0,\n 'source-text-margin-y': 0,\n 'target-label': '',\n 'target-text-offset': 0,\n 'target-text-margin-x': 0,\n 'target-text-margin-y': 0,\n 'overlay-opacity': 0,\n 'overlay-color': '#000',\n 'overlay-padding': 10,\n 'overlay-shape': 'round-rectangle',\n 'overlay-corner-radius': 'auto',\n 'underlay-opacity': 0,\n 'underlay-color': '#000',\n 'underlay-padding': 10,\n 'underlay-shape': 'round-rectangle',\n 'underlay-corner-radius': 'auto',\n 'transition-property': 'none',\n 'transition-duration': 0,\n 'transition-delay': 0,\n 'transition-timing-function': 'linear',\n // node props\n 'background-blacken': 0,\n 'background-color': '#999',\n 'background-fill': 'solid',\n 'background-opacity': 1,\n 'background-image': 'none',\n 'background-image-crossorigin': 'anonymous',\n 'background-image-opacity': 1,\n 'background-image-containment': 'inside',\n 'background-image-smoothing': 'yes',\n 'background-position-x': '50%',\n 'background-position-y': '50%',\n 'background-offset-x': 0,\n 'background-offset-y': 0,\n 'background-width-relative-to': 'include-padding',\n 'background-height-relative-to': 'include-padding',\n 'background-repeat': 'no-repeat',\n 'background-fit': 'none',\n 'background-clip': 'node',\n 'background-width': 'auto',\n 'background-height': 'auto',\n 'border-color': '#000',\n 'border-opacity': 1,\n 'border-width': 0,\n 'border-style': 'solid',\n 'border-dash-pattern': [4, 2],\n 'border-dash-offset': 0,\n 'border-cap': 'butt',\n 'border-join': 'miter',\n 'border-position': 'center',\n 'outline-color': '#999',\n 'outline-opacity': 1,\n 'outline-width': 0,\n 'outline-offset': 0,\n 'outline-style': 'solid',\n 'height': 30,\n 'width': 30,\n 'shape': 'ellipse',\n 'shape-polygon-points': '-1, -1, 1, -1, 1, 1, -1, 1',\n 'corner-radius': 'auto',\n 'bounds-expansion': 0,\n // node gradient\n 'background-gradient-direction': 'to-bottom',\n 'background-gradient-stop-colors': '#999',\n 'background-gradient-stop-positions': '0%',\n // ghost props\n 'ghost': 'no',\n 'ghost-offset-y': 0,\n 'ghost-offset-x': 0,\n 'ghost-opacity': 0,\n // compound props\n 'padding': 0,\n 'padding-relative-to': 'width',\n 'position': 'origin',\n 'compound-sizing-wrt-labels': 'include',\n 'min-width': 0,\n 'min-width-bias-left': 0,\n 'min-width-bias-right': 0,\n 'min-height': 0,\n 'min-height-bias-top': 0,\n 'min-height-bias-bottom': 0\n }, {\n // node pie bg\n 'pie-size': '100%'\n }, [{\n name: 'pie-{{i}}-background-color',\n value: 'black'\n }, {\n name: 'pie-{{i}}-background-size',\n value: '0%'\n }, {\n name: 'pie-{{i}}-background-opacity',\n value: 1\n }].reduce(function (css, prop) {\n for (var i = 1; i <= styfn$2.pieBackgroundN; i++) {\n var name = prop.name.replace('{{i}}', i);\n var val = prop.value;\n css[name] = val;\n }\n return css;\n }, {}), {\n // edge props\n 'line-style': 'solid',\n 'line-color': '#999',\n 'line-fill': 'solid',\n 'line-cap': 'butt',\n 'line-opacity': 1,\n 'line-outline-width': 0,\n 'line-outline-color': '#000',\n 'line-gradient-stop-colors': '#999',\n 'line-gradient-stop-positions': '0%',\n 'control-point-step-size': 40,\n 'control-point-weights': 0.5,\n 'segment-weights': 0.5,\n 'segment-distances': 20,\n 'segment-radii': 15,\n 'radius-type': 'arc-radius',\n 'taxi-turn': '50%',\n 'taxi-radius': 15,\n 'taxi-turn-min-distance': 10,\n 'taxi-direction': 'auto',\n 'edge-distances': 'intersection',\n 'curve-style': 'haystack',\n 'haystack-radius': 0,\n 'arrow-scale': 1,\n 'loop-direction': '-45deg',\n 'loop-sweep': '-90deg',\n 'source-distance-from-node': 0,\n 'target-distance-from-node': 0,\n 'source-endpoint': 'outside-to-node',\n 'target-endpoint': 'outside-to-node',\n 'line-dash-pattern': [6, 3],\n 'line-dash-offset': 0\n }, [{\n name: 'arrow-shape',\n value: 'none'\n }, {\n name: 'arrow-color',\n value: '#999'\n }, {\n name: 'arrow-fill',\n value: 'filled'\n }, {\n name: 'arrow-width',\n value: 1\n }].reduce(function (css, prop) {\n styfn$2.arrowPrefixes.forEach(function (prefix) {\n var name = prefix + '-' + prop.name;\n var val = prop.value;\n css[name] = val;\n });\n return css;\n }, {}));\n var parsedProps = {};\n for (var i = 0; i < this.properties.length; i++) {\n var prop = this.properties[i];\n if (prop.pointsTo) {\n continue;\n }\n var name = prop.name;\n var val = rawProps[name];\n var parsedProp = this.parse(name, val);\n parsedProps[name] = parsedProp;\n }\n _p.defaultProperties = parsedProps;\n return _p.defaultProperties;\n};\nstyfn$2.addDefaultStylesheet = function () {\n this.selector(':parent').css({\n 'shape': 'rectangle',\n 'padding': 10,\n 'background-color': '#eee',\n 'border-color': '#ccc',\n 'border-width': 1\n }).selector('edge').css({\n 'width': 3\n }).selector(':loop').css({\n 'curve-style': 'bezier'\n }).selector('edge:compound').css({\n 'curve-style': 'bezier',\n 'source-endpoint': 'outside-to-line',\n 'target-endpoint': 'outside-to-line'\n }).selector(':selected').css({\n 'background-color': '#0169D9',\n 'line-color': '#0169D9',\n 'source-arrow-color': '#0169D9',\n 'target-arrow-color': '#0169D9',\n 'mid-source-arrow-color': '#0169D9',\n 'mid-target-arrow-color': '#0169D9'\n }).selector(':parent:selected').css({\n 'background-color': '#CCE1F9',\n 'border-color': '#aec8e5'\n }).selector(':active').css({\n 'overlay-color': 'black',\n 'overlay-padding': 10,\n 'overlay-opacity': 0.25\n });\n this.defaultLength = this.length;\n};\n\nvar styfn$1 = {};\n\n// a caching layer for property parsing\nstyfn$1.parse = function (name, value, propIsBypass, propIsFlat) {\n var self = this;\n\n // function values can't be cached in all cases, and there isn't much benefit of caching them anyway\n if (fn$6(value)) {\n return self.parseImplWarn(name, value, propIsBypass, propIsFlat);\n }\n var flatKey = propIsFlat === 'mapping' || propIsFlat === true || propIsFlat === false || propIsFlat == null ? 'dontcare' : propIsFlat;\n var bypassKey = propIsBypass ? 't' : 'f';\n var valueKey = '' + value;\n var argHash = hashStrings(name, valueKey, bypassKey, flatKey);\n var propCache = self.propCache = self.propCache || [];\n var ret;\n if (!(ret = propCache[argHash])) {\n ret = propCache[argHash] = self.parseImplWarn(name, value, propIsBypass, propIsFlat);\n }\n\n // - bypasses can't be shared b/c the value can be changed by animations or otherwise overridden\n // - mappings can't be shared b/c mappings are per-element\n if (propIsBypass || propIsFlat === 'mapping') {\n // need a copy since props are mutated later in their lifecycles\n ret = copy(ret);\n if (ret) {\n ret.value = copy(ret.value); // because it could be an array, e.g. colour\n }\n }\n\n return ret;\n};\nstyfn$1.parseImplWarn = function (name, value, propIsBypass, propIsFlat) {\n var prop = this.parseImpl(name, value, propIsBypass, propIsFlat);\n if (!prop && value != null) {\n warn(\"The style property `\".concat(name, \": \").concat(value, \"` is invalid\"));\n }\n if (prop && (prop.name === 'width' || prop.name === 'height') && value === 'label') {\n warn('The style value of `label` is deprecated for `' + prop.name + '`');\n }\n return prop;\n};\n\n// parse a property; return null on invalid; return parsed property otherwise\n// fields :\n// - name : the name of the property\n// - value : the parsed, native-typed value of the property\n// - strValue : a string value that represents the property value in valid css\n// - bypass : true iff the property is a bypass property\nstyfn$1.parseImpl = function (name, value, propIsBypass, propIsFlat) {\n var self = this;\n name = camel2dash(name); // make sure the property name is in dash form (e.g. 'property-name' not 'propertyName')\n\n var property = self.properties[name];\n var passedValue = value;\n var types = self.types;\n if (!property) {\n return null;\n } // return null on property of unknown name\n if (value === undefined) {\n return null;\n } // can't assign undefined\n\n // the property may be an alias\n if (property.alias) {\n property = property.pointsTo;\n name = property.name;\n }\n var valueIsString = string(value);\n if (valueIsString) {\n // trim the value to make parsing easier\n value = value.trim();\n }\n var type = property.type;\n if (!type) {\n return null;\n } // no type, no luck\n\n // check if bypass is null or empty string (i.e. indication to delete bypass property)\n if (propIsBypass && (value === '' || value === null)) {\n return {\n name: name,\n value: value,\n bypass: true,\n deleteBypass: true\n };\n }\n\n // check if value is a function used as a mapper\n if (fn$6(value)) {\n return {\n name: name,\n value: value,\n strValue: 'fn',\n mapped: types.fn,\n bypass: propIsBypass\n };\n }\n\n // check if value is mapped\n var data, mapData;\n if (!valueIsString || propIsFlat || value.length < 7 || value[1] !== 'a') ; else if (value.length >= 7 && value[0] === 'd' && (data = new RegExp(types.data.regex).exec(value))) {\n if (propIsBypass) {\n return false;\n } // mappers not allowed in bypass\n\n var mapped = types.data;\n return {\n name: name,\n value: data,\n strValue: '' + value,\n mapped: mapped,\n field: data[1],\n bypass: propIsBypass\n };\n } else if (value.length >= 10 && value[0] === 'm' && (mapData = new RegExp(types.mapData.regex).exec(value))) {\n if (propIsBypass) {\n return false;\n } // mappers not allowed in bypass\n if (type.multiple) {\n return false;\n } // impossible to map to num\n\n var _mapped = types.mapData;\n\n // we can map only if the type is a colour or a number\n if (!(type.color || type.number)) {\n return false;\n }\n var valueMin = this.parse(name, mapData[4]); // parse to validate\n if (!valueMin || valueMin.mapped) {\n return false;\n } // can't be invalid or mapped\n\n var valueMax = this.parse(name, mapData[5]); // parse to validate\n if (!valueMax || valueMax.mapped) {\n return false;\n } // can't be invalid or mapped\n\n // check if valueMin and valueMax are the same\n if (valueMin.pfValue === valueMax.pfValue || valueMin.strValue === valueMax.strValue) {\n warn('`' + name + ': ' + value + '` is not a valid mapper because the output range is zero; converting to `' + name + ': ' + valueMin.strValue + '`');\n return this.parse(name, valueMin.strValue); // can't make much of a mapper without a range\n } else if (type.color) {\n var c1 = valueMin.value;\n var c2 = valueMax.value;\n var same = c1[0] === c2[0] // red\n && c1[1] === c2[1] // green\n && c1[2] === c2[2] // blue\n && (\n // optional alpha\n c1[3] === c2[3] // same alpha outright\n || (c1[3] == null || c1[3] === 1 // full opacity for colour 1?\n ) && (c2[3] == null || c2[3] === 1) // full opacity for colour 2?\n );\n\n if (same) {\n return false;\n } // can't make a mapper without a range\n }\n\n return {\n name: name,\n value: mapData,\n strValue: '' + value,\n mapped: _mapped,\n field: mapData[1],\n fieldMin: parseFloat(mapData[2]),\n // min & max are numeric\n fieldMax: parseFloat(mapData[3]),\n valueMin: valueMin.value,\n valueMax: valueMax.value,\n bypass: propIsBypass\n };\n }\n if (type.multiple && propIsFlat !== 'multiple') {\n var vals;\n if (valueIsString) {\n vals = value.split(/\\s+/);\n } else if (array(value)) {\n vals = value;\n } else {\n vals = [value];\n }\n if (type.evenMultiple && vals.length % 2 !== 0) {\n return null;\n }\n var valArr = [];\n var unitsArr = [];\n var pfValArr = [];\n var strVal = '';\n var hasEnum = false;\n for (var i = 0; i < vals.length; i++) {\n var p = self.parse(name, vals[i], propIsBypass, 'multiple');\n hasEnum = hasEnum || string(p.value);\n valArr.push(p.value);\n pfValArr.push(p.pfValue != null ? p.pfValue : p.value);\n unitsArr.push(p.units);\n strVal += (i > 0 ? ' ' : '') + p.strValue;\n }\n if (type.validate && !type.validate(valArr, unitsArr)) {\n return null;\n }\n if (type.singleEnum && hasEnum) {\n if (valArr.length === 1 && string(valArr[0])) {\n return {\n name: name,\n value: valArr[0],\n strValue: valArr[0],\n bypass: propIsBypass\n };\n } else {\n return null;\n }\n }\n return {\n name: name,\n value: valArr,\n pfValue: pfValArr,\n strValue: strVal,\n bypass: propIsBypass,\n units: unitsArr\n };\n }\n\n // several types also allow enums\n var checkEnums = function checkEnums() {\n for (var _i = 0; _i < type.enums.length; _i++) {\n var en = type.enums[_i];\n if (en === value) {\n return {\n name: name,\n value: value,\n strValue: '' + value,\n bypass: propIsBypass\n };\n }\n }\n return null;\n };\n\n // check the type and return the appropriate object\n if (type.number) {\n var units;\n var implicitUnits = 'px'; // not set => px\n\n if (type.units) {\n // use specified units if set\n units = type.units;\n }\n if (type.implicitUnits) {\n implicitUnits = type.implicitUnits;\n }\n if (!type.unitless) {\n if (valueIsString) {\n var unitsRegex = 'px|em' + (type.allowPercent ? '|\\\\%' : '');\n if (units) {\n unitsRegex = units;\n } // only allow explicit units if so set\n var match = value.match('^(' + number + ')(' + unitsRegex + ')?' + '$');\n if (match) {\n value = match[1];\n units = match[2] || implicitUnits;\n }\n } else if (!units || type.implicitUnits) {\n units = implicitUnits; // implicitly px if unspecified\n }\n }\n\n value = parseFloat(value);\n\n // if not a number and enums not allowed, then the value is invalid\n if (isNaN(value) && type.enums === undefined) {\n return null;\n }\n\n // check if this number type also accepts special keywords in place of numbers\n // (i.e. `left`, `auto`, etc)\n if (isNaN(value) && type.enums !== undefined) {\n value = passedValue;\n return checkEnums();\n }\n\n // check if value must be an integer\n if (type.integer && !integer(value)) {\n return null;\n }\n\n // check value is within range\n if (type.min !== undefined && (value < type.min || type.strictMin && value === type.min) || type.max !== undefined && (value > type.max || type.strictMax && value === type.max)) {\n return null;\n }\n var ret = {\n name: name,\n value: value,\n strValue: '' + value + (units ? units : ''),\n units: units,\n bypass: propIsBypass\n };\n\n // normalise value in pixels\n if (type.unitless || units !== 'px' && units !== 'em') {\n ret.pfValue = value;\n } else {\n ret.pfValue = units === 'px' || !units ? value : this.getEmSizeInPixels() * value;\n }\n\n // normalise value in ms\n if (units === 'ms' || units === 's') {\n ret.pfValue = units === 'ms' ? value : 1000 * value;\n }\n\n // normalise value in rad\n if (units === 'deg' || units === 'rad') {\n ret.pfValue = units === 'rad' ? value : deg2rad(value);\n }\n\n // normalize value in %\n if (units === '%') {\n ret.pfValue = value / 100;\n }\n return ret;\n } else if (type.propList) {\n var props = [];\n var propsStr = '' + value;\n if (propsStr === 'none') ; else {\n // go over each prop\n\n var propsSplit = propsStr.split(/\\s*,\\s*|\\s+/);\n for (var _i2 = 0; _i2 < propsSplit.length; _i2++) {\n var propName = propsSplit[_i2].trim();\n if (self.properties[propName]) {\n props.push(propName);\n } else {\n warn('`' + propName + '` is not a valid property name');\n }\n }\n if (props.length === 0) {\n return null;\n }\n }\n return {\n name: name,\n value: props,\n strValue: props.length === 0 ? 'none' : props.join(' '),\n bypass: propIsBypass\n };\n } else if (type.color) {\n var tuple = color2tuple(value);\n if (!tuple) {\n return null;\n }\n return {\n name: name,\n value: tuple,\n pfValue: tuple,\n strValue: 'rgb(' + tuple[0] + ',' + tuple[1] + ',' + tuple[2] + ')',\n // n.b. no spaces b/c of multiple support\n bypass: propIsBypass\n };\n } else if (type.regex || type.regexes) {\n // first check enums\n if (type.enums) {\n var enumProp = checkEnums();\n if (enumProp) {\n return enumProp;\n }\n }\n var regexes = type.regexes ? type.regexes : [type.regex];\n for (var _i3 = 0; _i3 < regexes.length; _i3++) {\n var regex = new RegExp(regexes[_i3]); // make a regex from the type string\n var m = regex.exec(value);\n if (m) {\n // regex matches\n return {\n name: name,\n value: type.singleRegexMatchValue ? m[1] : m,\n strValue: '' + value,\n bypass: propIsBypass\n };\n }\n }\n return null; // didn't match any\n } else if (type.string) {\n // just return\n return {\n name: name,\n value: '' + value,\n strValue: '' + value,\n bypass: propIsBypass\n };\n } else if (type.enums) {\n // check enums last because it's a combo type in others\n return checkEnums();\n } else {\n return null; // not a type we can handle\n }\n};\n\nvar Style = function Style(cy) {\n if (!(this instanceof Style)) {\n return new Style(cy);\n }\n if (!core(cy)) {\n error('A style must have a core reference');\n return;\n }\n this._private = {\n cy: cy,\n coreStyle: {}\n };\n this.length = 0;\n this.resetToDefault();\n};\nvar styfn = Style.prototype;\nstyfn.instanceString = function () {\n return 'style';\n};\n\n// remove all contexts\nstyfn.clear = function () {\n var _p = this._private;\n var cy = _p.cy;\n var eles = cy.elements();\n for (var i = 0; i < this.length; i++) {\n this[i] = undefined;\n }\n this.length = 0;\n _p.contextStyles = {};\n _p.propDiffs = {};\n this.cleanElements(eles, true);\n eles.forEach(function (ele) {\n var ele_p = ele[0]._private;\n ele_p.styleDirty = true;\n ele_p.appliedInitStyle = false;\n });\n return this; // chaining\n};\n\nstyfn.resetToDefault = function () {\n this.clear();\n this.addDefaultStylesheet();\n return this;\n};\n\n// builds a style object for the 'core' selector\nstyfn.core = function (propName) {\n return this._private.coreStyle[propName] || this.getDefaultProperty(propName);\n};\n\n// create a new context from the specified selector string and switch to that context\nstyfn.selector = function (selectorStr) {\n // 'core' is a special case and does not need a selector\n var selector = selectorStr === 'core' ? null : new Selector(selectorStr);\n var i = this.length++; // new context means new index\n this[i] = {\n selector: selector,\n properties: [],\n mappedProperties: [],\n index: i\n };\n return this; // chaining\n};\n\n// add one or many css rules to the current context\nstyfn.css = function () {\n var self = this;\n var args = arguments;\n if (args.length === 1) {\n var map = args[0];\n for (var i = 0; i < self.properties.length; i++) {\n var prop = self.properties[i];\n var mapVal = map[prop.name];\n if (mapVal === undefined) {\n mapVal = map[dash2camel(prop.name)];\n }\n if (mapVal !== undefined) {\n this.cssRule(prop.name, mapVal);\n }\n }\n } else if (args.length === 2) {\n this.cssRule(args[0], args[1]);\n }\n\n // do nothing if args are invalid\n\n return this; // chaining\n};\n\nstyfn.style = styfn.css;\n\n// add a single css rule to the current context\nstyfn.cssRule = function (name, value) {\n // name-value pair\n var property = this.parse(name, value);\n\n // add property to current context if valid\n if (property) {\n var i = this.length - 1;\n this[i].properties.push(property);\n this[i].properties[property.name] = property; // allow access by name as well\n\n if (property.name.match(/pie-(\\d+)-background-size/) && property.value) {\n this._private.hasPie = true;\n }\n if (property.mapped) {\n this[i].mappedProperties.push(property);\n }\n\n // add to core style if necessary\n var currentSelectorIsCore = !this[i].selector;\n if (currentSelectorIsCore) {\n this._private.coreStyle[property.name] = property;\n }\n }\n return this; // chaining\n};\n\nstyfn.append = function (style) {\n if (stylesheet(style)) {\n style.appendToStyle(this);\n } else if (array(style)) {\n this.appendFromJson(style);\n } else if (string(style)) {\n this.appendFromString(style);\n } // you probably wouldn't want to append a Style, since you'd duplicate the default parts\n\n return this;\n};\n\n// static function\nStyle.fromJson = function (cy, json) {\n var style = new Style(cy);\n style.fromJson(json);\n return style;\n};\nStyle.fromString = function (cy, string) {\n return new Style(cy).fromString(string);\n};\n[styfn$8, styfn$7, styfn$6, styfn$5, styfn$4, styfn$3, styfn$2, styfn$1].forEach(function (props) {\n extend(styfn, props);\n});\nStyle.types = styfn.types;\nStyle.properties = styfn.properties;\nStyle.propertyGroups = styfn.propertyGroups;\nStyle.propertyGroupNames = styfn.propertyGroupNames;\nStyle.propertyGroupKeys = styfn.propertyGroupKeys;\n\nvar corefn$2 = {\n style: function style(newStyle) {\n if (newStyle) {\n var s = this.setStyle(newStyle);\n s.update();\n }\n return this._private.style;\n },\n setStyle: function setStyle(style) {\n var _p = this._private;\n if (stylesheet(style)) {\n _p.style = style.generateStyle(this);\n } else if (array(style)) {\n _p.style = Style.fromJson(this, style);\n } else if (string(style)) {\n _p.style = Style.fromString(this, style);\n } else {\n _p.style = Style(this);\n }\n return _p.style;\n },\n // e.g. cy.data() changed => recalc ele mappers\n updateStyle: function updateStyle() {\n this.mutableElements().updateStyle(); // just send to all eles\n }\n};\n\nvar defaultSelectionType = 'single';\nvar corefn$1 = {\n autolock: function autolock(bool) {\n if (bool !== undefined) {\n this._private.autolock = bool ? true : false;\n } else {\n return this._private.autolock;\n }\n return this; // chaining\n },\n\n autoungrabify: function autoungrabify(bool) {\n if (bool !== undefined) {\n this._private.autoungrabify = bool ? true : false;\n } else {\n return this._private.autoungrabify;\n }\n return this; // chaining\n },\n\n autounselectify: function autounselectify(bool) {\n if (bool !== undefined) {\n this._private.autounselectify = bool ? true : false;\n } else {\n return this._private.autounselectify;\n }\n return this; // chaining\n },\n\n selectionType: function selectionType(selType) {\n var _p = this._private;\n if (_p.selectionType == null) {\n _p.selectionType = defaultSelectionType;\n }\n if (selType !== undefined) {\n if (selType === 'additive' || selType === 'single') {\n _p.selectionType = selType;\n }\n } else {\n return _p.selectionType;\n }\n return this;\n },\n panningEnabled: function panningEnabled(bool) {\n if (bool !== undefined) {\n this._private.panningEnabled = bool ? true : false;\n } else {\n return this._private.panningEnabled;\n }\n return this; // chaining\n },\n\n userPanningEnabled: function userPanningEnabled(bool) {\n if (bool !== undefined) {\n this._private.userPanningEnabled = bool ? true : false;\n } else {\n return this._private.userPanningEnabled;\n }\n return this; // chaining\n },\n\n zoomingEnabled: function zoomingEnabled(bool) {\n if (bool !== undefined) {\n this._private.zoomingEnabled = bool ? true : false;\n } else {\n return this._private.zoomingEnabled;\n }\n return this; // chaining\n },\n\n userZoomingEnabled: function userZoomingEnabled(bool) {\n if (bool !== undefined) {\n this._private.userZoomingEnabled = bool ? true : false;\n } else {\n return this._private.userZoomingEnabled;\n }\n return this; // chaining\n },\n\n boxSelectionEnabled: function boxSelectionEnabled(bool) {\n if (bool !== undefined) {\n this._private.boxSelectionEnabled = bool ? true : false;\n } else {\n return this._private.boxSelectionEnabled;\n }\n return this; // chaining\n },\n\n pan: function pan() {\n var args = arguments;\n var pan = this._private.pan;\n var dim, val, dims, x, y;\n switch (args.length) {\n case 0:\n // .pan()\n return pan;\n case 1:\n if (string(args[0])) {\n // .pan('x')\n dim = args[0];\n return pan[dim];\n } else if (plainObject(args[0])) {\n // .pan({ x: 0, y: 100 })\n if (!this._private.panningEnabled) {\n return this;\n }\n dims = args[0];\n x = dims.x;\n y = dims.y;\n if (number$1(x)) {\n pan.x = x;\n }\n if (number$1(y)) {\n pan.y = y;\n }\n this.emit('pan viewport');\n }\n break;\n case 2:\n // .pan('x', 100)\n if (!this._private.panningEnabled) {\n return this;\n }\n dim = args[0];\n val = args[1];\n if ((dim === 'x' || dim === 'y') && number$1(val)) {\n pan[dim] = val;\n }\n this.emit('pan viewport');\n break;\n // invalid\n }\n\n this.notify('viewport');\n return this; // chaining\n },\n\n panBy: function panBy(arg0, arg1) {\n var args = arguments;\n var pan = this._private.pan;\n var dim, val, dims, x, y;\n if (!this._private.panningEnabled) {\n return this;\n }\n switch (args.length) {\n case 1:\n if (plainObject(arg0)) {\n // .panBy({ x: 0, y: 100 })\n dims = args[0];\n x = dims.x;\n y = dims.y;\n if (number$1(x)) {\n pan.x += x;\n }\n if (number$1(y)) {\n pan.y += y;\n }\n this.emit('pan viewport');\n }\n break;\n case 2:\n // .panBy('x', 100)\n dim = arg0;\n val = arg1;\n if ((dim === 'x' || dim === 'y') && number$1(val)) {\n pan[dim] += val;\n }\n this.emit('pan viewport');\n break;\n // invalid\n }\n\n this.notify('viewport');\n return this; // chaining\n },\n\n fit: function fit(elements, padding) {\n var viewportState = this.getFitViewport(elements, padding);\n if (viewportState) {\n var _p = this._private;\n _p.zoom = viewportState.zoom;\n _p.pan = viewportState.pan;\n this.emit('pan zoom viewport');\n this.notify('viewport');\n }\n return this; // chaining\n },\n\n getFitViewport: function getFitViewport(elements, padding) {\n if (number$1(elements) && padding === undefined) {\n // elements is optional\n padding = elements;\n elements = undefined;\n }\n if (!this._private.panningEnabled || !this._private.zoomingEnabled) {\n return;\n }\n var bb;\n if (string(elements)) {\n var sel = elements;\n elements = this.$(sel);\n } else if (boundingBox(elements)) {\n // assume bb\n var bbe = elements;\n bb = {\n x1: bbe.x1,\n y1: bbe.y1,\n x2: bbe.x2,\n y2: bbe.y2\n };\n bb.w = bb.x2 - bb.x1;\n bb.h = bb.y2 - bb.y1;\n } else if (!elementOrCollection(elements)) {\n elements = this.mutableElements();\n }\n if (elementOrCollection(elements) && elements.empty()) {\n return;\n } // can't fit to nothing\n\n bb = bb || elements.boundingBox();\n var w = this.width();\n var h = this.height();\n var zoom;\n padding = number$1(padding) ? padding : 0;\n if (!isNaN(w) && !isNaN(h) && w > 0 && h > 0 && !isNaN(bb.w) && !isNaN(bb.h) && bb.w > 0 && bb.h > 0) {\n zoom = Math.min((w - 2 * padding) / bb.w, (h - 2 * padding) / bb.h);\n\n // crop zoom\n zoom = zoom > this._private.maxZoom ? this._private.maxZoom : zoom;\n zoom = zoom < this._private.minZoom ? this._private.minZoom : zoom;\n var pan = {\n // now pan to middle\n x: (w - zoom * (bb.x1 + bb.x2)) / 2,\n y: (h - zoom * (bb.y1 + bb.y2)) / 2\n };\n return {\n zoom: zoom,\n pan: pan\n };\n }\n return;\n },\n zoomRange: function zoomRange(min, max) {\n var _p = this._private;\n if (max == null) {\n var opts = min;\n min = opts.min;\n max = opts.max;\n }\n if (number$1(min) && number$1(max) && min <= max) {\n _p.minZoom = min;\n _p.maxZoom = max;\n } else if (number$1(min) && max === undefined && min <= _p.maxZoom) {\n _p.minZoom = min;\n } else if (number$1(max) && min === undefined && max >= _p.minZoom) {\n _p.maxZoom = max;\n }\n return this;\n },\n minZoom: function minZoom(zoom) {\n if (zoom === undefined) {\n return this._private.minZoom;\n } else {\n return this.zoomRange({\n min: zoom\n });\n }\n },\n maxZoom: function maxZoom(zoom) {\n if (zoom === undefined) {\n return this._private.maxZoom;\n } else {\n return this.zoomRange({\n max: zoom\n });\n }\n },\n getZoomedViewport: function getZoomedViewport(params) {\n var _p = this._private;\n var currentPan = _p.pan;\n var currentZoom = _p.zoom;\n var pos; // in rendered px\n var zoom;\n var bail = false;\n if (!_p.zoomingEnabled) {\n // zooming disabled\n bail = true;\n }\n if (number$1(params)) {\n // then set the zoom\n zoom = params;\n } else if (plainObject(params)) {\n // then zoom about a point\n zoom = params.level;\n if (params.position != null) {\n pos = modelToRenderedPosition(params.position, currentZoom, currentPan);\n } else if (params.renderedPosition != null) {\n pos = params.renderedPosition;\n }\n if (pos != null && !_p.panningEnabled) {\n // panning disabled\n bail = true;\n }\n }\n\n // crop zoom\n zoom = zoom > _p.maxZoom ? _p.maxZoom : zoom;\n zoom = zoom < _p.minZoom ? _p.minZoom : zoom;\n\n // can't zoom with invalid params\n if (bail || !number$1(zoom) || zoom === currentZoom || pos != null && (!number$1(pos.x) || !number$1(pos.y))) {\n return null;\n }\n if (pos != null) {\n // set zoom about position\n var pan1 = currentPan;\n var zoom1 = currentZoom;\n var zoom2 = zoom;\n var pan2 = {\n x: -zoom2 / zoom1 * (pos.x - pan1.x) + pos.x,\n y: -zoom2 / zoom1 * (pos.y - pan1.y) + pos.y\n };\n return {\n zoomed: true,\n panned: true,\n zoom: zoom2,\n pan: pan2\n };\n } else {\n // just set the zoom\n return {\n zoomed: true,\n panned: false,\n zoom: zoom,\n pan: currentPan\n };\n }\n },\n zoom: function zoom(params) {\n if (params === undefined) {\n // get\n return this._private.zoom;\n } else {\n // set\n var vp = this.getZoomedViewport(params);\n var _p = this._private;\n if (vp == null || !vp.zoomed) {\n return this;\n }\n _p.zoom = vp.zoom;\n if (vp.panned) {\n _p.pan.x = vp.pan.x;\n _p.pan.y = vp.pan.y;\n }\n this.emit('zoom' + (vp.panned ? ' pan' : '') + ' viewport');\n this.notify('viewport');\n return this; // chaining\n }\n },\n\n viewport: function viewport(opts) {\n var _p = this._private;\n var zoomDefd = true;\n var panDefd = true;\n var events = []; // to trigger\n var zoomFailed = false;\n var panFailed = false;\n if (!opts) {\n return this;\n }\n if (!number$1(opts.zoom)) {\n zoomDefd = false;\n }\n if (!plainObject(opts.pan)) {\n panDefd = false;\n }\n if (!zoomDefd && !panDefd) {\n return this;\n }\n if (zoomDefd) {\n var z = opts.zoom;\n if (z < _p.minZoom || z > _p.maxZoom || !_p.zoomingEnabled) {\n zoomFailed = true;\n } else {\n _p.zoom = z;\n events.push('zoom');\n }\n }\n if (panDefd && (!zoomFailed || !opts.cancelOnFailedZoom) && _p.panningEnabled) {\n var p = opts.pan;\n if (number$1(p.x)) {\n _p.pan.x = p.x;\n panFailed = false;\n }\n if (number$1(p.y)) {\n _p.pan.y = p.y;\n panFailed = false;\n }\n if (!panFailed) {\n events.push('pan');\n }\n }\n if (events.length > 0) {\n events.push('viewport');\n this.emit(events.join(' '));\n this.notify('viewport');\n }\n return this; // chaining\n },\n\n center: function center(elements) {\n var pan = this.getCenterPan(elements);\n if (pan) {\n this._private.pan = pan;\n this.emit('pan viewport');\n this.notify('viewport');\n }\n return this; // chaining\n },\n\n getCenterPan: function getCenterPan(elements, zoom) {\n if (!this._private.panningEnabled) {\n return;\n }\n if (string(elements)) {\n var selector = elements;\n elements = this.mutableElements().filter(selector);\n } else if (!elementOrCollection(elements)) {\n elements = this.mutableElements();\n }\n if (elements.length === 0) {\n return;\n } // can't centre pan to nothing\n\n var bb = elements.boundingBox();\n var w = this.width();\n var h = this.height();\n zoom = zoom === undefined ? this._private.zoom : zoom;\n var pan = {\n // middle\n x: (w - zoom * (bb.x1 + bb.x2)) / 2,\n y: (h - zoom * (bb.y1 + bb.y2)) / 2\n };\n return pan;\n },\n reset: function reset() {\n if (!this._private.panningEnabled || !this._private.zoomingEnabled) {\n return this;\n }\n this.viewport({\n pan: {\n x: 0,\n y: 0\n },\n zoom: 1\n });\n return this; // chaining\n },\n\n invalidateSize: function invalidateSize() {\n this._private.sizeCache = null;\n },\n size: function size() {\n var _p = this._private;\n var container = _p.container;\n var cy = this;\n return _p.sizeCache = _p.sizeCache || (container ? function () {\n var style = cy.window().getComputedStyle(container);\n var val = function val(name) {\n return parseFloat(style.getPropertyValue(name));\n };\n return {\n width: container.clientWidth - val('padding-left') - val('padding-right'),\n height: container.clientHeight - val('padding-top') - val('padding-bottom')\n };\n }() : {\n // fallback if no container (not 0 b/c can be used for dividing etc)\n width: 1,\n height: 1\n });\n },\n width: function width() {\n return this.size().width;\n },\n height: function height() {\n return this.size().height;\n },\n extent: function extent() {\n var pan = this._private.pan;\n var zoom = this._private.zoom;\n var rb = this.renderedExtent();\n var b = {\n x1: (rb.x1 - pan.x) / zoom,\n x2: (rb.x2 - pan.x) / zoom,\n y1: (rb.y1 - pan.y) / zoom,\n y2: (rb.y2 - pan.y) / zoom\n };\n b.w = b.x2 - b.x1;\n b.h = b.y2 - b.y1;\n return b;\n },\n renderedExtent: function renderedExtent() {\n var width = this.width();\n var height = this.height();\n return {\n x1: 0,\n y1: 0,\n x2: width,\n y2: height,\n w: width,\n h: height\n };\n },\n multiClickDebounceTime: function multiClickDebounceTime(_int) {\n if (_int) this._private.multiClickDebounceTime = _int;else return this._private.multiClickDebounceTime;\n return this; // chaining\n }\n};\n\n// aliases\ncorefn$1.centre = corefn$1.center;\n\n// backwards compatibility\ncorefn$1.autolockNodes = corefn$1.autolock;\ncorefn$1.autoungrabifyNodes = corefn$1.autoungrabify;\n\nvar fn = {\n data: define.data({\n field: 'data',\n bindingEvent: 'data',\n allowBinding: true,\n allowSetting: true,\n settingEvent: 'data',\n settingTriggersEvent: true,\n triggerFnName: 'trigger',\n allowGetting: true,\n updateStyle: true\n }),\n removeData: define.removeData({\n field: 'data',\n event: 'data',\n triggerFnName: 'trigger',\n triggerEvent: true,\n updateStyle: true\n }),\n scratch: define.data({\n field: 'scratch',\n bindingEvent: 'scratch',\n allowBinding: true,\n allowSetting: true,\n settingEvent: 'scratch',\n settingTriggersEvent: true,\n triggerFnName: 'trigger',\n allowGetting: true,\n updateStyle: true\n }),\n removeScratch: define.removeData({\n field: 'scratch',\n event: 'scratch',\n triggerFnName: 'trigger',\n triggerEvent: true,\n updateStyle: true\n })\n};\n\n// aliases\nfn.attr = fn.data;\nfn.removeAttr = fn.removeData;\n\nvar Core = function Core(opts) {\n var cy = this;\n opts = extend({}, opts);\n var container = opts.container;\n\n // allow for passing a wrapped jquery object\n // e.g. cytoscape({ container: $('#cy') })\n if (container && !htmlElement(container) && htmlElement(container[0])) {\n container = container[0];\n }\n var reg = container ? container._cyreg : null; // e.g. already registered some info (e.g. readies) via jquery\n reg = reg || {};\n if (reg && reg.cy) {\n reg.cy.destroy();\n reg = {}; // old instance => replace reg completely\n }\n\n var readies = reg.readies = reg.readies || [];\n if (container) {\n container._cyreg = reg;\n } // make sure container assoc'd reg points to this cy\n reg.cy = cy;\n var head = _window !== undefined && container !== undefined && !opts.headless;\n var options = opts;\n options.layout = extend({\n name: head ? 'grid' : 'null'\n }, options.layout);\n options.renderer = extend({\n name: head ? 'canvas' : 'null'\n }, options.renderer);\n var defVal = function defVal(def, val, altVal) {\n if (val !== undefined) {\n return val;\n } else if (altVal !== undefined) {\n return altVal;\n } else {\n return def;\n }\n };\n var _p = this._private = {\n container: container,\n // html dom ele container\n ready: false,\n // whether ready has been triggered\n options: options,\n // cached options\n elements: new Collection(this),\n // elements in the graph\n listeners: [],\n // list of listeners\n aniEles: new Collection(this),\n // elements being animated\n data: options.data || {},\n // data for the core\n scratch: {},\n // scratch object for core\n layout: null,\n renderer: null,\n destroyed: false,\n // whether destroy was called\n notificationsEnabled: true,\n // whether notifications are sent to the renderer\n minZoom: 1e-50,\n maxZoom: 1e50,\n zoomingEnabled: defVal(true, options.zoomingEnabled),\n userZoomingEnabled: defVal(true, options.userZoomingEnabled),\n panningEnabled: defVal(true, options.panningEnabled),\n userPanningEnabled: defVal(true, options.userPanningEnabled),\n boxSelectionEnabled: defVal(true, options.boxSelectionEnabled),\n autolock: defVal(false, options.autolock, options.autolockNodes),\n autoungrabify: defVal(false, options.autoungrabify, options.autoungrabifyNodes),\n autounselectify: defVal(false, options.autounselectify),\n styleEnabled: options.styleEnabled === undefined ? head : options.styleEnabled,\n zoom: number$1(options.zoom) ? options.zoom : 1,\n pan: {\n x: plainObject(options.pan) && number$1(options.pan.x) ? options.pan.x : 0,\n y: plainObject(options.pan) && number$1(options.pan.y) ? options.pan.y : 0\n },\n animation: {\n // object for currently-running animations\n current: [],\n queue: []\n },\n hasCompoundNodes: false,\n multiClickDebounceTime: defVal(250, options.multiClickDebounceTime)\n };\n this.createEmitter();\n\n // set selection type\n this.selectionType(options.selectionType);\n\n // init zoom bounds\n this.zoomRange({\n min: options.minZoom,\n max: options.maxZoom\n });\n var loadExtData = function loadExtData(extData, next) {\n var anyIsPromise = extData.some(promise);\n if (anyIsPromise) {\n return Promise$1.all(extData).then(next); // load all data asynchronously, then exec rest of init\n } else {\n next(extData); // exec synchronously for convenience\n }\n };\n\n // start with the default stylesheet so we have something before loading an external stylesheet\n if (_p.styleEnabled) {\n cy.setStyle([]);\n }\n\n // create the renderer\n var rendererOptions = extend({}, options, options.renderer); // allow rendering hints in top level options\n cy.initRenderer(rendererOptions);\n var setElesAndLayout = function setElesAndLayout(elements, onload, ondone) {\n cy.notifications(false);\n\n // remove old elements\n var oldEles = cy.mutableElements();\n if (oldEles.length > 0) {\n oldEles.remove();\n }\n if (elements != null) {\n if (plainObject(elements) || array(elements)) {\n cy.add(elements);\n }\n }\n cy.one('layoutready', function (e) {\n cy.notifications(true);\n cy.emit(e); // we missed this event by turning notifications off, so pass it on\n\n cy.one('load', onload);\n cy.emitAndNotify('load');\n }).one('layoutstop', function () {\n cy.one('done', ondone);\n cy.emit('done');\n });\n var layoutOpts = extend({}, cy._private.options.layout);\n layoutOpts.eles = cy.elements();\n cy.layout(layoutOpts).run();\n };\n loadExtData([options.style, options.elements], function (thens) {\n var initStyle = thens[0];\n var initEles = thens[1];\n\n // init style\n if (_p.styleEnabled) {\n cy.style().append(initStyle);\n }\n\n // initial load\n setElesAndLayout(initEles, function () {\n // onready\n cy.startAnimationLoop();\n _p.ready = true;\n\n // if a ready callback is specified as an option, the bind it\n if (fn$6(options.ready)) {\n cy.on('ready', options.ready);\n }\n\n // bind all the ready handlers registered before creating this instance\n for (var i = 0; i < readies.length; i++) {\n var fn = readies[i];\n cy.on('ready', fn);\n }\n if (reg) {\n reg.readies = [];\n } // clear b/c we've bound them all and don't want to keep it around in case a new core uses the same div etc\n\n cy.emit('ready');\n }, options.done);\n });\n};\nvar corefn = Core.prototype; // short alias\n\nextend(corefn, {\n instanceString: function instanceString() {\n return 'core';\n },\n isReady: function isReady() {\n return this._private.ready;\n },\n destroyed: function destroyed() {\n return this._private.destroyed;\n },\n ready: function ready(fn) {\n if (this.isReady()) {\n this.emitter().emit('ready', [], fn); // just calls fn as though triggered via ready event\n } else {\n this.on('ready', fn);\n }\n return this;\n },\n destroy: function destroy() {\n var cy = this;\n if (cy.destroyed()) return;\n cy.stopAnimationLoop();\n cy.destroyRenderer();\n this.emit('destroy');\n cy._private.destroyed = true;\n return cy;\n },\n hasElementWithId: function hasElementWithId(id) {\n return this._private.elements.hasElementWithId(id);\n },\n getElementById: function getElementById(id) {\n return this._private.elements.getElementById(id);\n },\n hasCompoundNodes: function hasCompoundNodes() {\n return this._private.hasCompoundNodes;\n },\n headless: function headless() {\n return this._private.renderer.isHeadless();\n },\n styleEnabled: function styleEnabled() {\n return this._private.styleEnabled;\n },\n addToPool: function addToPool(eles) {\n this._private.elements.merge(eles);\n return this; // chaining\n },\n\n removeFromPool: function removeFromPool(eles) {\n this._private.elements.unmerge(eles);\n return this;\n },\n container: function container() {\n return this._private.container || null;\n },\n window: function window() {\n var container = this._private.container;\n if (container == null) return _window;\n var ownerDocument = this._private.container.ownerDocument;\n if (ownerDocument === undefined || ownerDocument == null) {\n return _window;\n }\n return ownerDocument.defaultView || _window;\n },\n mount: function mount(container) {\n if (container == null) {\n return;\n }\n var cy = this;\n var _p = cy._private;\n var options = _p.options;\n if (!htmlElement(container) && htmlElement(container[0])) {\n container = container[0];\n }\n cy.stopAnimationLoop();\n cy.destroyRenderer();\n _p.container = container;\n _p.styleEnabled = true;\n cy.invalidateSize();\n cy.initRenderer(extend({}, options, options.renderer, {\n // allow custom renderer name to be re-used, otherwise use canvas\n name: options.renderer.name === 'null' ? 'canvas' : options.renderer.name\n }));\n cy.startAnimationLoop();\n cy.style(options.style);\n cy.emit('mount');\n return cy;\n },\n unmount: function unmount() {\n var cy = this;\n cy.stopAnimationLoop();\n cy.destroyRenderer();\n cy.initRenderer({\n name: 'null'\n });\n cy.emit('unmount');\n return cy;\n },\n options: function options() {\n return copy(this._private.options);\n },\n json: function json(obj) {\n var cy = this;\n var _p = cy._private;\n var eles = cy.mutableElements();\n var getFreshRef = function getFreshRef(ele) {\n return cy.getElementById(ele.id());\n };\n if (plainObject(obj)) {\n // set\n\n cy.startBatch();\n if (obj.elements) {\n var idInJson = {};\n var updateEles = function updateEles(jsons, gr) {\n var toAdd = [];\n var toMod = [];\n for (var i = 0; i < jsons.length; i++) {\n var json = jsons[i];\n if (!json.data.id) {\n warn('cy.json() cannot handle elements without an ID attribute');\n continue;\n }\n var id = '' + json.data.id; // id must be string\n var ele = cy.getElementById(id);\n idInJson[id] = true;\n if (ele.length !== 0) {\n // existing element should be updated\n toMod.push({\n ele: ele,\n json: json\n });\n } else {\n // otherwise should be added\n if (gr) {\n json.group = gr;\n toAdd.push(json);\n } else {\n toAdd.push(json);\n }\n }\n }\n cy.add(toAdd);\n for (var _i = 0; _i < toMod.length; _i++) {\n var _toMod$_i = toMod[_i],\n _ele = _toMod$_i.ele,\n _json = _toMod$_i.json;\n _ele.json(_json);\n }\n };\n if (array(obj.elements)) {\n // elements: []\n updateEles(obj.elements);\n } else {\n // elements: { nodes: [], edges: [] }\n var grs = ['nodes', 'edges'];\n for (var i = 0; i < grs.length; i++) {\n var gr = grs[i];\n var elements = obj.elements[gr];\n if (array(elements)) {\n updateEles(elements, gr);\n }\n }\n }\n var parentsToRemove = cy.collection();\n eles.filter(function (ele) {\n return !idInJson[ele.id()];\n }).forEach(function (ele) {\n if (ele.isParent()) {\n parentsToRemove.merge(ele);\n } else {\n ele.remove();\n }\n });\n\n // so that children are not removed w/parent\n parentsToRemove.forEach(function (ele) {\n return ele.children().move({\n parent: null\n });\n });\n\n // intermediate parents may be moved by prior line, so make sure we remove by fresh refs\n parentsToRemove.forEach(function (ele) {\n return getFreshRef(ele).remove();\n });\n }\n if (obj.style) {\n cy.style(obj.style);\n }\n if (obj.zoom != null && obj.zoom !== _p.zoom) {\n cy.zoom(obj.zoom);\n }\n if (obj.pan) {\n if (obj.pan.x !== _p.pan.x || obj.pan.y !== _p.pan.y) {\n cy.pan(obj.pan);\n }\n }\n if (obj.data) {\n cy.data(obj.data);\n }\n var fields = ['minZoom', 'maxZoom', 'zoomingEnabled', 'userZoomingEnabled', 'panningEnabled', 'userPanningEnabled', 'boxSelectionEnabled', 'autolock', 'autoungrabify', 'autounselectify', 'multiClickDebounceTime'];\n for (var _i2 = 0; _i2 < fields.length; _i2++) {\n var f = fields[_i2];\n if (obj[f] != null) {\n cy[f](obj[f]);\n }\n }\n cy.endBatch();\n return this; // chaining\n } else {\n // get\n var flat = !!obj;\n var json = {};\n if (flat) {\n json.elements = this.elements().map(function (ele) {\n return ele.json();\n });\n } else {\n json.elements = {};\n eles.forEach(function (ele) {\n var group = ele.group();\n if (!json.elements[group]) {\n json.elements[group] = [];\n }\n json.elements[group].push(ele.json());\n });\n }\n if (this._private.styleEnabled) {\n json.style = cy.style().json();\n }\n json.data = copy(cy.data());\n var options = _p.options;\n json.zoomingEnabled = _p.zoomingEnabled;\n json.userZoomingEnabled = _p.userZoomingEnabled;\n json.zoom = _p.zoom;\n json.minZoom = _p.minZoom;\n json.maxZoom = _p.maxZoom;\n json.panningEnabled = _p.panningEnabled;\n json.userPanningEnabled = _p.userPanningEnabled;\n json.pan = copy(_p.pan);\n json.boxSelectionEnabled = _p.boxSelectionEnabled;\n json.renderer = copy(options.renderer);\n json.hideEdgesOnViewport = options.hideEdgesOnViewport;\n json.textureOnViewport = options.textureOnViewport;\n json.wheelSensitivity = options.wheelSensitivity;\n json.motionBlur = options.motionBlur;\n json.multiClickDebounceTime = options.multiClickDebounceTime;\n return json;\n }\n }\n});\ncorefn.$id = corefn.getElementById;\n[corefn$9, corefn$8, elesfn, corefn$7, corefn$6, corefn$5, corefn$4, corefn$3, corefn$2, corefn$1, fn].forEach(function (props) {\n extend(corefn, props);\n});\n\n/* eslint-disable no-unused-vars */\nvar defaults$7 = {\n fit: true,\n // whether to fit the viewport to the graph\n directed: false,\n // whether the tree is directed downwards (or edges can point in any direction if false)\n padding: 30,\n // padding on fit\n circle: false,\n // put depths in concentric circles if true, put depths top down if false\n grid: false,\n // whether to create an even grid into which the DAG is placed (circle:false only)\n spacingFactor: 1.75,\n // positive spacing factor, larger => more space between nodes (N.B. n/a if causes overlap)\n boundingBox: undefined,\n // constrain layout bounds; { x1, y1, x2, y2 } or { x1, y1, w, h }\n avoidOverlap: true,\n // prevents node overlap, may overflow boundingBox if not enough space\n nodeDimensionsIncludeLabels: false,\n // Excludes the label when calculating node bounding boxes for the layout algorithm\n roots: undefined,\n // the roots of the trees\n depthSort: undefined,\n // a sorting function to order nodes at equal depth. e.g. function(a, b){ return a.data('weight') - b.data('weight') }\n animate: false,\n // whether to transition the node positions\n animationDuration: 500,\n // duration of animation in ms if enabled\n animationEasing: undefined,\n // easing of animation if enabled,\n animateFilter: function animateFilter(node, i) {\n return true;\n },\n // a function that determines whether the node should be animated. All nodes animated by default on animate enabled. Non-animated nodes are positioned immediately when the layout starts\n ready: undefined,\n // callback on layoutready\n stop: undefined,\n // callback on layoutstop\n transform: function transform(node, position) {\n return position;\n } // transform a given node position. Useful for changing flow direction in discrete layouts\n};\n\nvar deprecatedOptionDefaults = {\n maximal: false,\n // whether to shift nodes down their natural BFS depths in order to avoid upwards edges (DAGS only); setting acyclic to true sets maximal to true also\n acyclic: false // whether the tree is acyclic and thus a node could be shifted (due to the maximal option) multiple times without causing an infinite loop; setting to true sets maximal to true also; if you are uncertain whether a tree is acyclic, set to false to avoid potential infinite loops\n};\n\n/* eslint-enable */\n\nvar getInfo = function getInfo(ele) {\n return ele.scratch('breadthfirst');\n};\nvar setInfo = function setInfo(ele, obj) {\n return ele.scratch('breadthfirst', obj);\n};\nfunction BreadthFirstLayout(options) {\n this.options = extend({}, defaults$7, deprecatedOptionDefaults, options);\n}\nBreadthFirstLayout.prototype.run = function () {\n var params = this.options;\n var options = params;\n var cy = params.cy;\n var eles = options.eles;\n var nodes = eles.nodes().filter(function (n) {\n return !n.isParent();\n });\n var graph = eles;\n var directed = options.directed;\n var maximal = options.acyclic || options.maximal || options.maximalAdjustments > 0; // maximalAdjustments for compat. w/ old code; also, setting acyclic to true sets maximal to true\n\n var bb = makeBoundingBox(options.boundingBox ? options.boundingBox : {\n x1: 0,\n y1: 0,\n w: cy.width(),\n h: cy.height()\n });\n var roots;\n if (elementOrCollection(options.roots)) {\n roots = options.roots;\n } else if (array(options.roots)) {\n var rootsArray = [];\n for (var i = 0; i < options.roots.length; i++) {\n var id = options.roots[i];\n var ele = cy.getElementById(id);\n rootsArray.push(ele);\n }\n roots = cy.collection(rootsArray);\n } else if (string(options.roots)) {\n roots = cy.$(options.roots);\n } else {\n if (directed) {\n roots = nodes.roots();\n } else {\n var components = eles.components();\n roots = cy.collection();\n var _loop = function _loop(_i) {\n var comp = components[_i];\n var maxDegree = comp.maxDegree(false);\n var compRoots = comp.filter(function (ele) {\n return ele.degree(false) === maxDegree;\n });\n roots = roots.add(compRoots);\n };\n for (var _i = 0; _i < components.length; _i++) {\n _loop(_i);\n }\n }\n }\n var depths = [];\n var foundByBfs = {};\n var addToDepth = function addToDepth(ele, d) {\n if (depths[d] == null) {\n depths[d] = [];\n }\n var i = depths[d].length;\n depths[d].push(ele);\n setInfo(ele, {\n index: i,\n depth: d\n });\n };\n var changeDepth = function changeDepth(ele, newDepth) {\n var _getInfo = getInfo(ele),\n depth = _getInfo.depth,\n index = _getInfo.index;\n depths[depth][index] = null;\n addToDepth(ele, newDepth);\n };\n\n // find the depths of the nodes\n graph.bfs({\n roots: roots,\n directed: options.directed,\n visit: function visit(node, edge, pNode, i, depth) {\n var ele = node[0];\n var id = ele.id();\n addToDepth(ele, depth);\n foundByBfs[id] = true;\n }\n });\n\n // check for nodes not found by bfs\n var orphanNodes = [];\n for (var _i2 = 0; _i2 < nodes.length; _i2++) {\n var _ele = nodes[_i2];\n if (foundByBfs[_ele.id()]) {\n continue;\n } else {\n orphanNodes.push(_ele);\n }\n }\n\n // assign the nodes a depth and index\n\n var assignDepthsAt = function assignDepthsAt(i) {\n var eles = depths[i];\n for (var j = 0; j < eles.length; j++) {\n var _ele2 = eles[j];\n if (_ele2 == null) {\n eles.splice(j, 1);\n j--;\n continue;\n }\n setInfo(_ele2, {\n depth: i,\n index: j\n });\n }\n };\n var assignDepths = function assignDepths() {\n for (var _i3 = 0; _i3 < depths.length; _i3++) {\n assignDepthsAt(_i3);\n }\n };\n var adjustMaximally = function adjustMaximally(ele, shifted) {\n var eInfo = getInfo(ele);\n var incomers = ele.incomers().filter(function (el) {\n return el.isNode() && eles.has(el);\n });\n var maxDepth = -1;\n var id = ele.id();\n for (var k = 0; k < incomers.length; k++) {\n var incmr = incomers[k];\n var iInfo = getInfo(incmr);\n maxDepth = Math.max(maxDepth, iInfo.depth);\n }\n if (eInfo.depth <= maxDepth) {\n if (!options.acyclic && shifted[id]) {\n return null;\n }\n var newDepth = maxDepth + 1;\n changeDepth(ele, newDepth);\n shifted[id] = newDepth;\n return true;\n }\n return false;\n };\n\n // for the directed case, try to make the edges all go down (i.e. depth i => depth i + 1)\n if (directed && maximal) {\n var Q = [];\n var shifted = {};\n var enqueue = function enqueue(n) {\n return Q.push(n);\n };\n var dequeue = function dequeue() {\n return Q.shift();\n };\n nodes.forEach(function (n) {\n return Q.push(n);\n });\n while (Q.length > 0) {\n var _ele3 = dequeue();\n var didShift = adjustMaximally(_ele3, shifted);\n if (didShift) {\n _ele3.outgoers().filter(function (el) {\n return el.isNode() && eles.has(el);\n }).forEach(enqueue);\n } else if (didShift === null) {\n warn('Detected double maximal shift for node `' + _ele3.id() + '`. Bailing maximal adjustment due to cycle. Use `options.maximal: true` only on DAGs.');\n break; // exit on failure\n }\n }\n }\n\n assignDepths(); // clear holes\n\n // find min distance we need to leave between nodes\n var minDistance = 0;\n if (options.avoidOverlap) {\n for (var _i4 = 0; _i4 < nodes.length; _i4++) {\n var n = nodes[_i4];\n var nbb = n.layoutDimensions(options);\n var w = nbb.w;\n var h = nbb.h;\n minDistance = Math.max(minDistance, w, h);\n }\n }\n\n // get the weighted percent for an element based on its connectivity to other levels\n var cachedWeightedPercent = {};\n var getWeightedPercent = function getWeightedPercent(ele) {\n if (cachedWeightedPercent[ele.id()]) {\n return cachedWeightedPercent[ele.id()];\n }\n var eleDepth = getInfo(ele).depth;\n var neighbors = ele.neighborhood();\n var percent = 0;\n var samples = 0;\n for (var _i5 = 0; _i5 < neighbors.length; _i5++) {\n var neighbor = neighbors[_i5];\n if (neighbor.isEdge() || neighbor.isParent() || !nodes.has(neighbor)) {\n continue;\n }\n var bf = getInfo(neighbor);\n if (bf == null) {\n continue;\n }\n var index = bf.index;\n var depth = bf.depth;\n\n // unassigned neighbours shouldn't affect the ordering\n if (index == null || depth == null) {\n continue;\n }\n var nDepth = depths[depth].length;\n if (depth < eleDepth) {\n // only get influenced by elements above\n percent += index / nDepth;\n samples++;\n }\n }\n samples = Math.max(1, samples);\n percent = percent / samples;\n if (samples === 0) {\n // put lone nodes at the start\n percent = 0;\n }\n cachedWeightedPercent[ele.id()] = percent;\n return percent;\n };\n\n // rearrange the indices in each depth level based on connectivity\n\n var sortFn = function sortFn(a, b) {\n var apct = getWeightedPercent(a);\n var bpct = getWeightedPercent(b);\n var diff = apct - bpct;\n if (diff === 0) {\n return ascending(a.id(), b.id()); // make sure sort doesn't have don't-care comparisons\n } else {\n return diff;\n }\n };\n if (options.depthSort !== undefined) {\n sortFn = options.depthSort;\n }\n\n // sort each level to make connected nodes closer\n for (var _i6 = 0; _i6 < depths.length; _i6++) {\n depths[_i6].sort(sortFn);\n assignDepthsAt(_i6);\n }\n\n // assign orphan nodes to a new top-level depth\n var orphanDepth = [];\n for (var _i7 = 0; _i7 < orphanNodes.length; _i7++) {\n orphanDepth.push(orphanNodes[_i7]);\n }\n depths.unshift(orphanDepth);\n assignDepths();\n var biggestDepthSize = 0;\n for (var _i8 = 0; _i8 < depths.length; _i8++) {\n biggestDepthSize = Math.max(depths[_i8].length, biggestDepthSize);\n }\n var center = {\n x: bb.x1 + bb.w / 2,\n y: bb.x1 + bb.h / 2\n };\n var maxDepthSize = depths.reduce(function (max, eles) {\n return Math.max(max, eles.length);\n }, 0);\n var getPosition = function getPosition(ele) {\n var _getInfo2 = getInfo(ele),\n depth = _getInfo2.depth,\n index = _getInfo2.index;\n var depthSize = depths[depth].length;\n var distanceX = Math.max(bb.w / ((options.grid ? maxDepthSize : depthSize) + 1), minDistance);\n var distanceY = Math.max(bb.h / (depths.length + 1), minDistance);\n var radiusStepSize = Math.min(bb.w / 2 / depths.length, bb.h / 2 / depths.length);\n radiusStepSize = Math.max(radiusStepSize, minDistance);\n if (!options.circle) {\n var epos = {\n x: center.x + (index + 1 - (depthSize + 1) / 2) * distanceX,\n y: (depth + 1) * distanceY\n };\n return epos;\n } else {\n var radius = radiusStepSize * depth + radiusStepSize - (depths.length > 0 && depths[0].length <= 3 ? radiusStepSize / 2 : 0);\n var theta = 2 * Math.PI / depths[depth].length * index;\n if (depth === 0 && depths[0].length === 1) {\n radius = 1;\n }\n return {\n x: center.x + radius * Math.cos(theta),\n y: center.y + radius * Math.sin(theta)\n };\n }\n };\n eles.nodes().layoutPositions(this, options, getPosition);\n return this; // chaining\n};\n\nvar defaults$6 = {\n fit: true,\n // whether to fit the viewport to the graph\n padding: 30,\n // the padding on fit\n boundingBox: undefined,\n // constrain layout bounds; { x1, y1, x2, y2 } or { x1, y1, w, h }\n avoidOverlap: true,\n // prevents node overlap, may overflow boundingBox and radius if not enough space\n nodeDimensionsIncludeLabels: false,\n // Excludes the label when calculating node bounding boxes for the layout algorithm\n spacingFactor: undefined,\n // Applies a multiplicative factor (>0) to expand or compress the overall area that the nodes take up\n radius: undefined,\n // the radius of the circle\n startAngle: 3 / 2 * Math.PI,\n // where nodes start in radians\n sweep: undefined,\n // how many radians should be between the first and last node (defaults to full circle)\n clockwise: true,\n // whether the layout should go clockwise (true) or counterclockwise/anticlockwise (false)\n sort: undefined,\n // a sorting function to order the nodes; e.g. function(a, b){ return a.data('weight') - b.data('weight') }\n animate: false,\n // whether to transition the node positions\n animationDuration: 500,\n // duration of animation in ms if enabled\n animationEasing: undefined,\n // easing of animation if enabled\n animateFilter: function animateFilter(node, i) {\n return true;\n },\n // a function that determines whether the node should be animated. All nodes animated by default on animate enabled. Non-animated nodes are positioned immediately when the layout starts\n ready: undefined,\n // callback on layoutready\n stop: undefined,\n // callback on layoutstop\n transform: function transform(node, position) {\n return position;\n } // transform a given node position. Useful for changing flow direction in discrete layouts \n};\n\nfunction CircleLayout(options) {\n this.options = extend({}, defaults$6, options);\n}\nCircleLayout.prototype.run = function () {\n var params = this.options;\n var options = params;\n var cy = params.cy;\n var eles = options.eles;\n var clockwise = options.counterclockwise !== undefined ? !options.counterclockwise : options.clockwise;\n var nodes = eles.nodes().not(':parent');\n if (options.sort) {\n nodes = nodes.sort(options.sort);\n }\n var bb = makeBoundingBox(options.boundingBox ? options.boundingBox : {\n x1: 0,\n y1: 0,\n w: cy.width(),\n h: cy.height()\n });\n var center = {\n x: bb.x1 + bb.w / 2,\n y: bb.y1 + bb.h / 2\n };\n var sweep = options.sweep === undefined ? 2 * Math.PI - 2 * Math.PI / nodes.length : options.sweep;\n var dTheta = sweep / Math.max(1, nodes.length - 1);\n var r;\n var minDistance = 0;\n for (var i = 0; i < nodes.length; i++) {\n var n = nodes[i];\n var nbb = n.layoutDimensions(options);\n var w = nbb.w;\n var h = nbb.h;\n minDistance = Math.max(minDistance, w, h);\n }\n if (number$1(options.radius)) {\n r = options.radius;\n } else if (nodes.length <= 1) {\n r = 0;\n } else {\n r = Math.min(bb.h, bb.w) / 2 - minDistance;\n }\n\n // calculate the radius\n if (nodes.length > 1 && options.avoidOverlap) {\n // but only if more than one node (can't overlap)\n minDistance *= 1.75; // just to have some nice spacing\n\n var dcos = Math.cos(dTheta) - Math.cos(0);\n var dsin = Math.sin(dTheta) - Math.sin(0);\n var rMin = Math.sqrt(minDistance * minDistance / (dcos * dcos + dsin * dsin)); // s.t. no nodes overlapping\n r = Math.max(rMin, r);\n }\n var getPos = function getPos(ele, i) {\n var theta = options.startAngle + i * dTheta * (clockwise ? 1 : -1);\n var rx = r * Math.cos(theta);\n var ry = r * Math.sin(theta);\n var pos = {\n x: center.x + rx,\n y: center.y + ry\n };\n return pos;\n };\n eles.nodes().layoutPositions(this, options, getPos);\n return this; // chaining\n};\n\nvar defaults$5 = {\n fit: true,\n // whether to fit the viewport to the graph\n padding: 30,\n // the padding on fit\n startAngle: 3 / 2 * Math.PI,\n // where nodes start in radians\n sweep: undefined,\n // how many radians should be between the first and last node (defaults to full circle)\n clockwise: true,\n // whether the layout should go clockwise (true) or counterclockwise/anticlockwise (false)\n equidistant: false,\n // whether levels have an equal radial distance betwen them, may cause bounding box overflow\n minNodeSpacing: 10,\n // min spacing between outside of nodes (used for radius adjustment)\n boundingBox: undefined,\n // constrain layout bounds; { x1, y1, x2, y2 } or { x1, y1, w, h }\n avoidOverlap: true,\n // prevents node overlap, may overflow boundingBox if not enough space\n nodeDimensionsIncludeLabels: false,\n // Excludes the label when calculating node bounding boxes for the layout algorithm\n height: undefined,\n // height of layout area (overrides container height)\n width: undefined,\n // width of layout area (overrides container width)\n spacingFactor: undefined,\n // Applies a multiplicative factor (>0) to expand or compress the overall area that the nodes take up\n concentric: function concentric(node) {\n // returns numeric value for each node, placing higher nodes in levels towards the centre\n return node.degree();\n },\n levelWidth: function levelWidth(nodes) {\n // the variation of concentric values in each level\n return nodes.maxDegree() / 4;\n },\n animate: false,\n // whether to transition the node positions\n animationDuration: 500,\n // duration of animation in ms if enabled\n animationEasing: undefined,\n // easing of animation if enabled\n animateFilter: function animateFilter(node, i) {\n return true;\n },\n // a function that determines whether the node should be animated. All nodes animated by default on animate enabled. Non-animated nodes are positioned immediately when the layout starts\n ready: undefined,\n // callback on layoutready\n stop: undefined,\n // callback on layoutstop\n transform: function transform(node, position) {\n return position;\n } // transform a given node position. Useful for changing flow direction in discrete layouts\n};\n\nfunction ConcentricLayout(options) {\n this.options = extend({}, defaults$5, options);\n}\nConcentricLayout.prototype.run = function () {\n var params = this.options;\n var options = params;\n var clockwise = options.counterclockwise !== undefined ? !options.counterclockwise : options.clockwise;\n var cy = params.cy;\n var eles = options.eles;\n var nodes = eles.nodes().not(':parent');\n var bb = makeBoundingBox(options.boundingBox ? options.boundingBox : {\n x1: 0,\n y1: 0,\n w: cy.width(),\n h: cy.height()\n });\n var center = {\n x: bb.x1 + bb.w / 2,\n y: bb.y1 + bb.h / 2\n };\n var nodeValues = []; // { node, value }\n var maxNodeSize = 0;\n for (var i = 0; i < nodes.length; i++) {\n var node = nodes[i];\n var value = void 0;\n\n // calculate the node value\n value = options.concentric(node);\n nodeValues.push({\n value: value,\n node: node\n });\n\n // for style mapping\n node._private.scratch.concentric = value;\n }\n\n // in case we used the `concentric` in style\n nodes.updateStyle();\n\n // calculate max size now based on potentially updated mappers\n for (var _i = 0; _i < nodes.length; _i++) {\n var _node = nodes[_i];\n var nbb = _node.layoutDimensions(options);\n maxNodeSize = Math.max(maxNodeSize, nbb.w, nbb.h);\n }\n\n // sort node values in descreasing order\n nodeValues.sort(function (a, b) {\n return b.value - a.value;\n });\n var levelWidth = options.levelWidth(nodes);\n\n // put the values into levels\n var levels = [[]];\n var currentLevel = levels[0];\n for (var _i2 = 0; _i2 < nodeValues.length; _i2++) {\n var val = nodeValues[_i2];\n if (currentLevel.length > 0) {\n var diff = Math.abs(currentLevel[0].value - val.value);\n if (diff >= levelWidth) {\n currentLevel = [];\n levels.push(currentLevel);\n }\n }\n currentLevel.push(val);\n }\n\n // create positions from levels\n\n var minDist = maxNodeSize + options.minNodeSpacing; // min dist between nodes\n\n if (!options.avoidOverlap) {\n // then strictly constrain to bb\n var firstLvlHasMulti = levels.length > 0 && levels[0].length > 1;\n var maxR = Math.min(bb.w, bb.h) / 2 - minDist;\n var rStep = maxR / (levels.length + firstLvlHasMulti ? 1 : 0);\n minDist = Math.min(minDist, rStep);\n }\n\n // find the metrics for each level\n var r = 0;\n for (var _i3 = 0; _i3 < levels.length; _i3++) {\n var level = levels[_i3];\n var sweep = options.sweep === undefined ? 2 * Math.PI - 2 * Math.PI / level.length : options.sweep;\n var dTheta = level.dTheta = sweep / Math.max(1, level.length - 1);\n\n // calculate the radius\n if (level.length > 1 && options.avoidOverlap) {\n // but only if more than one node (can't overlap)\n var dcos = Math.cos(dTheta) - Math.cos(0);\n var dsin = Math.sin(dTheta) - Math.sin(0);\n var rMin = Math.sqrt(minDist * minDist / (dcos * dcos + dsin * dsin)); // s.t. no nodes overlapping\n\n r = Math.max(rMin, r);\n }\n level.r = r;\n r += minDist;\n }\n if (options.equidistant) {\n var rDeltaMax = 0;\n var _r = 0;\n for (var _i4 = 0; _i4 < levels.length; _i4++) {\n var _level = levels[_i4];\n var rDelta = _level.r - _r;\n rDeltaMax = Math.max(rDeltaMax, rDelta);\n }\n _r = 0;\n for (var _i5 = 0; _i5 < levels.length; _i5++) {\n var _level2 = levels[_i5];\n if (_i5 === 0) {\n _r = _level2.r;\n }\n _level2.r = _r;\n _r += rDeltaMax;\n }\n }\n\n // calculate the node positions\n var pos = {}; // id => position\n for (var _i6 = 0; _i6 < levels.length; _i6++) {\n var _level3 = levels[_i6];\n var _dTheta = _level3.dTheta;\n var _r2 = _level3.r;\n for (var j = 0; j < _level3.length; j++) {\n var _val = _level3[j];\n var theta = options.startAngle + (clockwise ? 1 : -1) * _dTheta * j;\n var p = {\n x: center.x + _r2 * Math.cos(theta),\n y: center.y + _r2 * Math.sin(theta)\n };\n pos[_val.node.id()] = p;\n }\n }\n\n // position the nodes\n eles.nodes().layoutPositions(this, options, function (ele) {\n var id = ele.id();\n return pos[id];\n });\n return this; // chaining\n};\n\n/*\nThe CoSE layout was written by Gerardo Huck.\nhttps://www.linkedin.com/in/gerardohuck/\n\nBased on the following article:\nhttp://dl.acm.org/citation.cfm?id=1498047\n\nModifications tracked on Github.\n*/\nvar DEBUG;\n\n/**\n * @brief : default layout options\n */\nvar defaults$4 = {\n // Called on `layoutready`\n ready: function ready() {},\n // Called on `layoutstop`\n stop: function stop() {},\n // Whether to animate while running the layout\n // true : Animate continuously as the layout is running\n // false : Just show the end result\n // 'end' : Animate with the end result, from the initial positions to the end positions\n animate: true,\n // Easing of the animation for animate:'end'\n animationEasing: undefined,\n // The duration of the animation for animate:'end'\n animationDuration: undefined,\n // A function that determines whether the node should be animated\n // All nodes animated by default on animate enabled\n // Non-animated nodes are positioned immediately when the layout starts\n animateFilter: function animateFilter(node, i) {\n return true;\n },\n // The layout animates only after this many milliseconds for animate:true\n // (prevents flashing on fast runs)\n animationThreshold: 250,\n // Number of iterations between consecutive screen positions update\n refresh: 20,\n // Whether to fit the network view after when done\n fit: true,\n // Padding on fit\n padding: 30,\n // Constrain layout bounds; { x1, y1, x2, y2 } or { x1, y1, w, h }\n boundingBox: undefined,\n // Excludes the label when calculating node bounding boxes for the layout algorithm\n nodeDimensionsIncludeLabels: false,\n // Randomize the initial positions of the nodes (true) or use existing positions (false)\n randomize: false,\n // Extra spacing between components in non-compound graphs\n componentSpacing: 40,\n // Node repulsion (non overlapping) multiplier\n nodeRepulsion: function nodeRepulsion(node) {\n return 2048;\n },\n // Node repulsion (overlapping) multiplier\n nodeOverlap: 4,\n // Ideal edge (non nested) length\n idealEdgeLength: function idealEdgeLength(edge) {\n return 32;\n },\n // Divisor to compute edge forces\n edgeElasticity: function edgeElasticity(edge) {\n return 32;\n },\n // Nesting factor (multiplier) to compute ideal edge length for nested edges\n nestingFactor: 1.2,\n // Gravity force (constant)\n gravity: 1,\n // Maximum number of iterations to perform\n numIter: 1000,\n // Initial temperature (maximum node displacement)\n initialTemp: 1000,\n // Cooling factor (how the temperature is reduced between consecutive iterations\n coolingFactor: 0.99,\n // Lower temperature threshold (below this point the layout will end)\n minTemp: 1.0\n};\n\n/**\n * @brief : constructor\n * @arg options : object containing layout options\n */\nfunction CoseLayout(options) {\n this.options = extend({}, defaults$4, options);\n this.options.layout = this;\n\n // Exclude any edge that has a source or target node that is not in the set of passed-in nodes\n var nodes = this.options.eles.nodes();\n var edges = this.options.eles.edges();\n var notEdges = edges.filter(function (e) {\n var sourceId = e.source().data('id');\n var targetId = e.target().data('id');\n var hasSource = nodes.some(function (n) {\n return n.data('id') === sourceId;\n });\n var hasTarget = nodes.some(function (n) {\n return n.data('id') === targetId;\n });\n return !hasSource || !hasTarget;\n });\n this.options.eles = this.options.eles.not(notEdges);\n}\n\n/**\n * @brief : runs the layout\n */\nCoseLayout.prototype.run = function () {\n var options = this.options;\n var cy = options.cy;\n var layout = this;\n layout.stopped = false;\n if (options.animate === true || options.animate === false) {\n layout.emit({\n type: 'layoutstart',\n layout: layout\n });\n }\n\n // Set DEBUG - Global variable\n if (true === options.debug) {\n DEBUG = true;\n } else {\n DEBUG = false;\n }\n\n // Initialize layout info\n var layoutInfo = createLayoutInfo(cy, layout, options);\n\n // Show LayoutInfo contents if debugging\n if (DEBUG) {\n printLayoutInfo(layoutInfo);\n }\n\n // If required, randomize node positions\n if (options.randomize) {\n randomizePositions(layoutInfo);\n }\n var startTime = performanceNow();\n var refresh = function refresh() {\n refreshPositions(layoutInfo, cy, options);\n\n // Fit the graph if necessary\n if (true === options.fit) {\n cy.fit(options.padding);\n }\n };\n var mainLoop = function mainLoop(i) {\n if (layout.stopped || i >= options.numIter) {\n // logDebug(\"Layout manually stopped. Stopping computation in step \" + i);\n return false;\n }\n\n // Do one step in the phisical simulation\n step(layoutInfo, options);\n\n // Update temperature\n layoutInfo.temperature = layoutInfo.temperature * options.coolingFactor;\n // logDebug(\"New temperature: \" + layoutInfo.temperature);\n\n if (layoutInfo.temperature < options.minTemp) {\n // logDebug(\"Temperature drop below minimum threshold. Stopping computation in step \" + i);\n return false;\n }\n return true;\n };\n var done = function done() {\n if (options.animate === true || options.animate === false) {\n refresh();\n\n // Layout has finished\n layout.one('layoutstop', options.stop);\n layout.emit({\n type: 'layoutstop',\n layout: layout\n });\n } else {\n var nodes = options.eles.nodes();\n var getScaledPos = getScaleInBoundsFn(layoutInfo, options, nodes);\n nodes.layoutPositions(layout, options, getScaledPos);\n }\n };\n var i = 0;\n var loopRet = true;\n if (options.animate === true) {\n var frame = function frame() {\n var f = 0;\n while (loopRet && f < options.refresh) {\n loopRet = mainLoop(i);\n i++;\n f++;\n }\n if (!loopRet) {\n // it's done\n separateComponents(layoutInfo, options);\n done();\n } else {\n var now = performanceNow();\n if (now - startTime >= options.animationThreshold) {\n refresh();\n }\n requestAnimationFrame(frame);\n }\n };\n frame();\n } else {\n while (loopRet) {\n loopRet = mainLoop(i);\n i++;\n }\n separateComponents(layoutInfo, options);\n done();\n }\n return this; // chaining\n};\n\n/**\n * @brief : called on continuous layouts to stop them before they finish\n */\nCoseLayout.prototype.stop = function () {\n this.stopped = true;\n if (this.thread) {\n this.thread.stop();\n }\n this.emit('layoutstop');\n return this; // chaining\n};\n\nCoseLayout.prototype.destroy = function () {\n if (this.thread) {\n this.thread.stop();\n }\n return this; // chaining\n};\n\n/**\n * @brief : Creates an object which is contains all the data\n * used in the layout process\n * @arg cy : cytoscape.js object\n * @return : layoutInfo object initialized\n */\nvar createLayoutInfo = function createLayoutInfo(cy, layout, options) {\n // Shortcut\n var edges = options.eles.edges();\n var nodes = options.eles.nodes();\n var bb = makeBoundingBox(options.boundingBox ? options.boundingBox : {\n x1: 0,\n y1: 0,\n w: cy.width(),\n h: cy.height()\n });\n var layoutInfo = {\n isCompound: cy.hasCompoundNodes(),\n layoutNodes: [],\n idToIndex: {},\n nodeSize: nodes.size(),\n graphSet: [],\n indexToGraph: [],\n layoutEdges: [],\n edgeSize: edges.size(),\n temperature: options.initialTemp,\n clientWidth: bb.w,\n clientHeight: bb.h,\n boundingBox: bb\n };\n var components = options.eles.components();\n var id2cmptId = {};\n for (var i = 0; i < components.length; i++) {\n var component = components[i];\n for (var j = 0; j < component.length; j++) {\n var node = component[j];\n id2cmptId[node.id()] = i;\n }\n }\n\n // Iterate over all nodes, creating layout nodes\n for (var i = 0; i < layoutInfo.nodeSize; i++) {\n var n = nodes[i];\n var nbb = n.layoutDimensions(options);\n var tempNode = {};\n tempNode.isLocked = n.locked();\n tempNode.id = n.data('id');\n tempNode.parentId = n.data('parent');\n tempNode.cmptId = id2cmptId[n.id()];\n tempNode.children = [];\n tempNode.positionX = n.position('x');\n tempNode.positionY = n.position('y');\n tempNode.offsetX = 0;\n tempNode.offsetY = 0;\n tempNode.height = nbb.w;\n tempNode.width = nbb.h;\n tempNode.maxX = tempNode.positionX + tempNode.width / 2;\n tempNode.minX = tempNode.positionX - tempNode.width / 2;\n tempNode.maxY = tempNode.positionY + tempNode.height / 2;\n tempNode.minY = tempNode.positionY - tempNode.height / 2;\n tempNode.padLeft = parseFloat(n.style('padding'));\n tempNode.padRight = parseFloat(n.style('padding'));\n tempNode.padTop = parseFloat(n.style('padding'));\n tempNode.padBottom = parseFloat(n.style('padding'));\n\n // forces\n tempNode.nodeRepulsion = fn$6(options.nodeRepulsion) ? options.nodeRepulsion(n) : options.nodeRepulsion;\n\n // Add new node\n layoutInfo.layoutNodes.push(tempNode);\n // Add entry to id-index map\n layoutInfo.idToIndex[tempNode.id] = i;\n }\n\n // Inline implementation of a queue, used for traversing the graph in BFS order\n var queue = [];\n var start = 0; // Points to the start the queue\n var end = -1; // Points to the end of the queue\n\n var tempGraph = [];\n\n // Second pass to add child information and\n // initialize queue for hierarchical traversal\n for (var i = 0; i < layoutInfo.nodeSize; i++) {\n var n = layoutInfo.layoutNodes[i];\n var p_id = n.parentId;\n // Check if node n has a parent node\n if (null != p_id) {\n // Add node Id to parent's list of children\n layoutInfo.layoutNodes[layoutInfo.idToIndex[p_id]].children.push(n.id);\n } else {\n // If a node doesn't have a parent, then it's in the root graph\n queue[++end] = n.id;\n tempGraph.push(n.id);\n }\n }\n\n // Add root graph to graphSet\n layoutInfo.graphSet.push(tempGraph);\n\n // Traverse the graph, level by level,\n while (start <= end) {\n // Get the node to visit and remove it from queue\n var node_id = queue[start++];\n var node_ix = layoutInfo.idToIndex[node_id];\n var node = layoutInfo.layoutNodes[node_ix];\n var children = node.children;\n if (children.length > 0) {\n // Add children nodes as a new graph to graph set\n layoutInfo.graphSet.push(children);\n // Add children to que queue to be visited\n for (var i = 0; i < children.length; i++) {\n queue[++end] = children[i];\n }\n }\n }\n\n // Create indexToGraph map\n for (var i = 0; i < layoutInfo.graphSet.length; i++) {\n var graph = layoutInfo.graphSet[i];\n for (var j = 0; j < graph.length; j++) {\n var index = layoutInfo.idToIndex[graph[j]];\n layoutInfo.indexToGraph[index] = i;\n }\n }\n\n // Iterate over all edges, creating Layout Edges\n for (var i = 0; i < layoutInfo.edgeSize; i++) {\n var e = edges[i];\n var tempEdge = {};\n tempEdge.id = e.data('id');\n tempEdge.sourceId = e.data('source');\n tempEdge.targetId = e.data('target');\n\n // Compute ideal length\n var idealLength = fn$6(options.idealEdgeLength) ? options.idealEdgeLength(e) : options.idealEdgeLength;\n var elasticity = fn$6(options.edgeElasticity) ? options.edgeElasticity(e) : options.edgeElasticity;\n\n // Check if it's an inter graph edge\n var sourceIx = layoutInfo.idToIndex[tempEdge.sourceId];\n var targetIx = layoutInfo.idToIndex[tempEdge.targetId];\n var sourceGraph = layoutInfo.indexToGraph[sourceIx];\n var targetGraph = layoutInfo.indexToGraph[targetIx];\n if (sourceGraph != targetGraph) {\n // Find lowest common graph ancestor\n var lca = findLCA(tempEdge.sourceId, tempEdge.targetId, layoutInfo);\n\n // Compute sum of node depths, relative to lca graph\n var lcaGraph = layoutInfo.graphSet[lca];\n var depth = 0;\n\n // Source depth\n var tempNode = layoutInfo.layoutNodes[sourceIx];\n while (-1 === lcaGraph.indexOf(tempNode.id)) {\n tempNode = layoutInfo.layoutNodes[layoutInfo.idToIndex[tempNode.parentId]];\n depth++;\n }\n\n // Target depth\n tempNode = layoutInfo.layoutNodes[targetIx];\n while (-1 === lcaGraph.indexOf(tempNode.id)) {\n tempNode = layoutInfo.layoutNodes[layoutInfo.idToIndex[tempNode.parentId]];\n depth++;\n }\n\n // logDebug('LCA of nodes ' + tempEdge.sourceId + ' and ' + tempEdge.targetId +\n // \". Index: \" + lca + \" Contents: \" + lcaGraph.toString() +\n // \". Depth: \" + depth);\n\n // Update idealLength\n idealLength *= depth * options.nestingFactor;\n }\n tempEdge.idealLength = idealLength;\n tempEdge.elasticity = elasticity;\n layoutInfo.layoutEdges.push(tempEdge);\n }\n\n // Finally, return layoutInfo object\n return layoutInfo;\n};\n\n/**\n * @brief : This function finds the index of the lowest common\n * graph ancestor between 2 nodes in the subtree\n * (from the graph hierarchy induced tree) whose\n * root is graphIx\n *\n * @arg node1: node1's ID\n * @arg node2: node2's ID\n * @arg layoutInfo: layoutInfo object\n *\n */\nvar findLCA = function findLCA(node1, node2, layoutInfo) {\n // Find their common ancester, starting from the root graph\n var res = findLCA_aux(node1, node2, 0, layoutInfo);\n if (2 > res.count) {\n // If aux function couldn't find the common ancester,\n // then it is the root graph\n return 0;\n } else {\n return res.graph;\n }\n};\n\n/**\n * @brief : Auxiliary function used for LCA computation\n *\n * @arg node1 : node1's ID\n * @arg node2 : node2's ID\n * @arg graphIx : subgraph index\n * @arg layoutInfo : layoutInfo object\n *\n * @return : object of the form {count: X, graph: Y}, where:\n * X is the number of ancestors (max: 2) found in\n * graphIx (and it's subgraphs),\n * Y is the graph index of the lowest graph containing\n * all X nodes\n */\nvar findLCA_aux = function findLCA_aux(node1, node2, graphIx, layoutInfo) {\n var graph = layoutInfo.graphSet[graphIx];\n // If both nodes belongs to graphIx\n if (-1 < graph.indexOf(node1) && -1 < graph.indexOf(node2)) {\n return {\n count: 2,\n graph: graphIx\n };\n }\n\n // Make recursive calls for all subgraphs\n var c = 0;\n for (var i = 0; i < graph.length; i++) {\n var nodeId = graph[i];\n var nodeIx = layoutInfo.idToIndex[nodeId];\n var children = layoutInfo.layoutNodes[nodeIx].children;\n\n // If the node has no child, skip it\n if (0 === children.length) {\n continue;\n }\n var childGraphIx = layoutInfo.indexToGraph[layoutInfo.idToIndex[children[0]]];\n var result = findLCA_aux(node1, node2, childGraphIx, layoutInfo);\n if (0 === result.count) {\n // Neither node1 nor node2 are present in this subgraph\n continue;\n } else if (1 === result.count) {\n // One of (node1, node2) is present in this subgraph\n c++;\n if (2 === c) {\n // We've already found both nodes, no need to keep searching\n break;\n }\n } else {\n // Both nodes are present in this subgraph\n return result;\n }\n }\n return {\n count: c,\n graph: graphIx\n };\n};\n\n/**\n * @brief: printsLayoutInfo into js console\n * Only used for debbuging\n */\nvar printLayoutInfo; \n\n/**\n * @brief : Randomizes the position of all nodes\n */\nvar randomizePositions = function randomizePositions(layoutInfo, cy) {\n var width = layoutInfo.clientWidth;\n var height = layoutInfo.clientHeight;\n for (var i = 0; i < layoutInfo.nodeSize; i++) {\n var n = layoutInfo.layoutNodes[i];\n\n // No need to randomize compound nodes or locked nodes\n if (0 === n.children.length && !n.isLocked) {\n n.positionX = Math.random() * width;\n n.positionY = Math.random() * height;\n }\n }\n};\nvar getScaleInBoundsFn = function getScaleInBoundsFn(layoutInfo, options, nodes) {\n var bb = layoutInfo.boundingBox;\n var coseBB = {\n x1: Infinity,\n x2: -Infinity,\n y1: Infinity,\n y2: -Infinity\n };\n if (options.boundingBox) {\n nodes.forEach(function (node) {\n var lnode = layoutInfo.layoutNodes[layoutInfo.idToIndex[node.data('id')]];\n coseBB.x1 = Math.min(coseBB.x1, lnode.positionX);\n coseBB.x2 = Math.max(coseBB.x2, lnode.positionX);\n coseBB.y1 = Math.min(coseBB.y1, lnode.positionY);\n coseBB.y2 = Math.max(coseBB.y2, lnode.positionY);\n });\n coseBB.w = coseBB.x2 - coseBB.x1;\n coseBB.h = coseBB.y2 - coseBB.y1;\n }\n return function (ele, i) {\n var lnode = layoutInfo.layoutNodes[layoutInfo.idToIndex[ele.data('id')]];\n if (options.boundingBox) {\n // then add extra bounding box constraint\n var pctX = (lnode.positionX - coseBB.x1) / coseBB.w;\n var pctY = (lnode.positionY - coseBB.y1) / coseBB.h;\n return {\n x: bb.x1 + pctX * bb.w,\n y: bb.y1 + pctY * bb.h\n };\n } else {\n return {\n x: lnode.positionX,\n y: lnode.positionY\n };\n }\n };\n};\n\n/**\n * @brief : Updates the positions of nodes in the network\n * @arg layoutInfo : LayoutInfo object\n * @arg cy : Cytoscape object\n * @arg options : Layout options\n */\nvar refreshPositions = function refreshPositions(layoutInfo, cy, options) {\n // var s = 'Refreshing positions';\n // logDebug(s);\n\n var layout = options.layout;\n var nodes = options.eles.nodes();\n var getScaledPos = getScaleInBoundsFn(layoutInfo, options, nodes);\n nodes.positions(getScaledPos);\n\n // Trigger layoutReady only on first call\n if (true !== layoutInfo.ready) {\n // s = 'Triggering layoutready';\n // logDebug(s);\n layoutInfo.ready = true;\n layout.one('layoutready', options.ready);\n layout.emit({\n type: 'layoutready',\n layout: this\n });\n }\n};\n\n/**\n * @brief : Logs a debug message in JS console, if DEBUG is ON\n */\n// var logDebug = function(text) {\n// if (DEBUG) {\n// console.debug(text);\n// }\n// };\n\n/**\n * @brief : Performs one iteration of the physical simulation\n * @arg layoutInfo : LayoutInfo object already initialized\n * @arg cy : Cytoscape object\n * @arg options : Layout options\n */\nvar step = function step(layoutInfo, options, _step) {\n // var s = \"\\n\\n###############################\";\n // s += \"\\nSTEP: \" + step;\n // s += \"\\n###############################\\n\";\n // logDebug(s);\n\n // Calculate node repulsions\n calculateNodeForces(layoutInfo, options);\n // Calculate edge forces\n calculateEdgeForces(layoutInfo);\n // Calculate gravity forces\n calculateGravityForces(layoutInfo, options);\n // Propagate forces from parent to child\n propagateForces(layoutInfo);\n // Update positions based on calculated forces\n updatePositions(layoutInfo);\n};\n\n/**\n * @brief : Computes the node repulsion forces\n */\nvar calculateNodeForces = function calculateNodeForces(layoutInfo, options) {\n // Go through each of the graphs in graphSet\n // Nodes only repel each other if they belong to the same graph\n // var s = 'calculateNodeForces';\n // logDebug(s);\n for (var i = 0; i < layoutInfo.graphSet.length; i++) {\n var graph = layoutInfo.graphSet[i];\n var numNodes = graph.length;\n\n // s = \"Set: \" + graph.toString();\n // logDebug(s);\n\n // Now get all the pairs of nodes\n // Only get each pair once, (A, B) = (B, A)\n for (var j = 0; j < numNodes; j++) {\n var node1 = layoutInfo.layoutNodes[layoutInfo.idToIndex[graph[j]]];\n for (var k = j + 1; k < numNodes; k++) {\n var node2 = layoutInfo.layoutNodes[layoutInfo.idToIndex[graph[k]]];\n nodeRepulsion(node1, node2, layoutInfo, options);\n }\n }\n }\n};\nvar randomDistance = function randomDistance(max) {\n return -max + 2 * max * Math.random();\n};\n\n/**\n * @brief : Compute the node repulsion forces between a pair of nodes\n */\nvar nodeRepulsion = function nodeRepulsion(node1, node2, layoutInfo, options) {\n // var s = \"Node repulsion. Node1: \" + node1.id + \" Node2: \" + node2.id;\n\n var cmptId1 = node1.cmptId;\n var cmptId2 = node2.cmptId;\n if (cmptId1 !== cmptId2 && !layoutInfo.isCompound) {\n return;\n }\n\n // Get direction of line connecting both node centers\n var directionX = node2.positionX - node1.positionX;\n var directionY = node2.positionY - node1.positionY;\n var maxRandDist = 1;\n // s += \"\\ndirectionX: \" + directionX + \", directionY: \" + directionY;\n\n // If both centers are the same, apply a random force\n if (0 === directionX && 0 === directionY) {\n directionX = randomDistance(maxRandDist);\n directionY = randomDistance(maxRandDist);\n }\n var overlap = nodesOverlap(node1, node2, directionX, directionY);\n if (overlap > 0) {\n // s += \"\\nNodes DO overlap.\";\n // s += \"\\nOverlap: \" + overlap;\n // If nodes overlap, repulsion force is proportional\n // to the overlap\n var force = options.nodeOverlap * overlap;\n\n // Compute the module and components of the force vector\n var distance = Math.sqrt(directionX * directionX + directionY * directionY);\n // s += \"\\nDistance: \" + distance;\n var forceX = force * directionX / distance;\n var forceY = force * directionY / distance;\n } else {\n // s += \"\\nNodes do NOT overlap.\";\n // If there's no overlap, force is inversely proportional\n // to squared distance\n\n // Get clipping points for both nodes\n var point1 = findClippingPoint(node1, directionX, directionY);\n var point2 = findClippingPoint(node2, -1 * directionX, -1 * directionY);\n\n // Use clipping points to compute distance\n var distanceX = point2.x - point1.x;\n var distanceY = point2.y - point1.y;\n var distanceSqr = distanceX * distanceX + distanceY * distanceY;\n var distance = Math.sqrt(distanceSqr);\n // s += \"\\nDistance: \" + distance;\n\n // Compute the module and components of the force vector\n var force = (node1.nodeRepulsion + node2.nodeRepulsion) / distanceSqr;\n var forceX = force * distanceX / distance;\n var forceY = force * distanceY / distance;\n }\n\n // Apply force\n if (!node1.isLocked) {\n node1.offsetX -= forceX;\n node1.offsetY -= forceY;\n }\n if (!node2.isLocked) {\n node2.offsetX += forceX;\n node2.offsetY += forceY;\n }\n\n // s += \"\\nForceX: \" + forceX + \" ForceY: \" + forceY;\n // logDebug(s);\n\n return;\n};\n\n/**\n * @brief : Determines whether two nodes overlap or not\n * @return : Amount of overlapping (0 => no overlap)\n */\nvar nodesOverlap = function nodesOverlap(node1, node2, dX, dY) {\n if (dX > 0) {\n var overlapX = node1.maxX - node2.minX;\n } else {\n var overlapX = node2.maxX - node1.minX;\n }\n if (dY > 0) {\n var overlapY = node1.maxY - node2.minY;\n } else {\n var overlapY = node2.maxY - node1.minY;\n }\n if (overlapX >= 0 && overlapY >= 0) {\n return Math.sqrt(overlapX * overlapX + overlapY * overlapY);\n } else {\n return 0;\n }\n};\n\n/**\n * @brief : Finds the point in which an edge (direction dX, dY) intersects\n * the rectangular bounding box of it's source/target node\n */\nvar findClippingPoint = function findClippingPoint(node, dX, dY) {\n // Shorcuts\n var X = node.positionX;\n var Y = node.positionY;\n var H = node.height || 1;\n var W = node.width || 1;\n var dirSlope = dY / dX;\n var nodeSlope = H / W;\n\n // var s = 'Computing clipping point of node ' + node.id +\n // \" . Height: \" + H + \", Width: \" + W +\n // \"\\nDirection \" + dX + \", \" + dY;\n //\n // Compute intersection\n var res = {};\n\n // Case: Vertical direction (up)\n if (0 === dX && 0 < dY) {\n res.x = X;\n // s += \"\\nUp direction\";\n res.y = Y + H / 2;\n return res;\n }\n\n // Case: Vertical direction (down)\n if (0 === dX && 0 > dY) {\n res.x = X;\n res.y = Y + H / 2;\n // s += \"\\nDown direction\";\n\n return res;\n }\n\n // Case: Intersects the right border\n if (0 < dX && -1 * nodeSlope <= dirSlope && dirSlope <= nodeSlope) {\n res.x = X + W / 2;\n res.y = Y + W * dY / 2 / dX;\n // s += \"\\nRightborder\";\n\n return res;\n }\n\n // Case: Intersects the left border\n if (0 > dX && -1 * nodeSlope <= dirSlope && dirSlope <= nodeSlope) {\n res.x = X - W / 2;\n res.y = Y - W * dY / 2 / dX;\n // s += \"\\nLeftborder\";\n\n return res;\n }\n\n // Case: Intersects the top border\n if (0 < dY && (dirSlope <= -1 * nodeSlope || dirSlope >= nodeSlope)) {\n res.x = X + H * dX / 2 / dY;\n res.y = Y + H / 2;\n // s += \"\\nTop border\";\n\n return res;\n }\n\n // Case: Intersects the bottom border\n if (0 > dY && (dirSlope <= -1 * nodeSlope || dirSlope >= nodeSlope)) {\n res.x = X - H * dX / 2 / dY;\n res.y = Y - H / 2;\n // s += \"\\nBottom border\";\n\n return res;\n }\n\n // s += \"\\nClipping point found at \" + res.x + \", \" + res.y;\n // logDebug(s);\n return res;\n};\n\n/**\n * @brief : Calculates all edge forces\n */\nvar calculateEdgeForces = function calculateEdgeForces(layoutInfo, options) {\n // Iterate over all edges\n for (var i = 0; i < layoutInfo.edgeSize; i++) {\n // Get edge, source & target nodes\n var edge = layoutInfo.layoutEdges[i];\n var sourceIx = layoutInfo.idToIndex[edge.sourceId];\n var source = layoutInfo.layoutNodes[sourceIx];\n var targetIx = layoutInfo.idToIndex[edge.targetId];\n var target = layoutInfo.layoutNodes[targetIx];\n\n // Get direction of line connecting both node centers\n var directionX = target.positionX - source.positionX;\n var directionY = target.positionY - source.positionY;\n\n // If both centers are the same, do nothing.\n // A random force has already been applied as node repulsion\n if (0 === directionX && 0 === directionY) {\n continue;\n }\n\n // Get clipping points for both nodes\n var point1 = findClippingPoint(source, directionX, directionY);\n var point2 = findClippingPoint(target, -1 * directionX, -1 * directionY);\n var lx = point2.x - point1.x;\n var ly = point2.y - point1.y;\n var l = Math.sqrt(lx * lx + ly * ly);\n var force = Math.pow(edge.idealLength - l, 2) / edge.elasticity;\n if (0 !== l) {\n var forceX = force * lx / l;\n var forceY = force * ly / l;\n } else {\n var forceX = 0;\n var forceY = 0;\n }\n\n // Add this force to target and source nodes\n if (!source.isLocked) {\n source.offsetX += forceX;\n source.offsetY += forceY;\n }\n if (!target.isLocked) {\n target.offsetX -= forceX;\n target.offsetY -= forceY;\n }\n\n // var s = 'Edge force between nodes ' + source.id + ' and ' + target.id;\n // s += \"\\nDistance: \" + l + \" Force: (\" + forceX + \", \" + forceY + \")\";\n // logDebug(s);\n }\n};\n\n/**\n * @brief : Computes gravity forces for all nodes\n */\nvar calculateGravityForces = function calculateGravityForces(layoutInfo, options) {\n if (options.gravity === 0) {\n return;\n }\n var distThreshold = 1;\n\n // var s = 'calculateGravityForces';\n // logDebug(s);\n for (var i = 0; i < layoutInfo.graphSet.length; i++) {\n var graph = layoutInfo.graphSet[i];\n var numNodes = graph.length;\n\n // s = \"Set: \" + graph.toString();\n // logDebug(s);\n\n // Compute graph center\n if (0 === i) {\n var centerX = layoutInfo.clientHeight / 2;\n var centerY = layoutInfo.clientWidth / 2;\n } else {\n // Get Parent node for this graph, and use its position as center\n var temp = layoutInfo.layoutNodes[layoutInfo.idToIndex[graph[0]]];\n var parent = layoutInfo.layoutNodes[layoutInfo.idToIndex[temp.parentId]];\n var centerX = parent.positionX;\n var centerY = parent.positionY;\n }\n // s = \"Center found at: \" + centerX + \", \" + centerY;\n // logDebug(s);\n\n // Apply force to all nodes in graph\n for (var j = 0; j < numNodes; j++) {\n var node = layoutInfo.layoutNodes[layoutInfo.idToIndex[graph[j]]];\n // s = \"Node: \" + node.id;\n\n if (node.isLocked) {\n continue;\n }\n var dx = centerX - node.positionX;\n var dy = centerY - node.positionY;\n var d = Math.sqrt(dx * dx + dy * dy);\n if (d > distThreshold) {\n var fx = options.gravity * dx / d;\n var fy = options.gravity * dy / d;\n node.offsetX += fx;\n node.offsetY += fy;\n // s += \": Applied force: \" + fx + \", \" + fy;\n }\n // logDebug(s);\n }\n }\n};\n\n/**\n * @brief : This function propagates the existing offsets from\n * parent nodes to its descendents.\n * @arg layoutInfo : layoutInfo Object\n * @arg cy : cytoscape Object\n * @arg options : Layout options\n */\nvar propagateForces = function propagateForces(layoutInfo, options) {\n // Inline implementation of a queue, used for traversing the graph in BFS order\n var queue = [];\n var start = 0; // Points to the start the queue\n var end = -1; // Points to the end of the queue\n\n // logDebug('propagateForces');\n\n // Start by visiting the nodes in the root graph\n queue.push.apply(queue, layoutInfo.graphSet[0]);\n end += layoutInfo.graphSet[0].length;\n\n // Traverse the graph, level by level,\n while (start <= end) {\n // Get the node to visit and remove it from queue\n var nodeId = queue[start++];\n var nodeIndex = layoutInfo.idToIndex[nodeId];\n var node = layoutInfo.layoutNodes[nodeIndex];\n var children = node.children;\n\n // We only need to process the node if it's compound\n if (0 < children.length && !node.isLocked) {\n var offX = node.offsetX;\n var offY = node.offsetY;\n\n // var s = \"Propagating offset from parent node : \" + node.id +\n // \". OffsetX: \" + offX + \". OffsetY: \" + offY;\n // s += \"\\n Children: \" + children.toString();\n // logDebug(s);\n\n for (var i = 0; i < children.length; i++) {\n var childNode = layoutInfo.layoutNodes[layoutInfo.idToIndex[children[i]]];\n // Propagate offset\n childNode.offsetX += offX;\n childNode.offsetY += offY;\n // Add children to queue to be visited\n queue[++end] = children[i];\n }\n\n // Reset parent offsets\n node.offsetX = 0;\n node.offsetY = 0;\n }\n }\n};\n\n/**\n * @brief : Updates the layout model positions, based on\n * the accumulated forces\n */\nvar updatePositions = function updatePositions(layoutInfo, options) {\n // var s = 'Updating positions';\n // logDebug(s);\n\n // Reset boundaries for compound nodes\n for (var i = 0; i < layoutInfo.nodeSize; i++) {\n var n = layoutInfo.layoutNodes[i];\n if (0 < n.children.length) {\n // logDebug(\"Resetting boundaries of compound node: \" + n.id);\n n.maxX = undefined;\n n.minX = undefined;\n n.maxY = undefined;\n n.minY = undefined;\n }\n }\n for (var i = 0; i < layoutInfo.nodeSize; i++) {\n var n = layoutInfo.layoutNodes[i];\n if (0 < n.children.length || n.isLocked) {\n // No need to set compound or locked node position\n // logDebug(\"Skipping position update of node: \" + n.id);\n continue;\n }\n // s = \"Node: \" + n.id + \" Previous position: (\" +\n // n.positionX + \", \" + n.positionY + \").\";\n\n // Limit displacement in order to improve stability\n var tempForce = limitForce(n.offsetX, n.offsetY, layoutInfo.temperature);\n n.positionX += tempForce.x;\n n.positionY += tempForce.y;\n n.offsetX = 0;\n n.offsetY = 0;\n n.minX = n.positionX - n.width;\n n.maxX = n.positionX + n.width;\n n.minY = n.positionY - n.height;\n n.maxY = n.positionY + n.height;\n // s += \" New Position: (\" + n.positionX + \", \" + n.positionY + \").\";\n // logDebug(s);\n\n // Update ancestry boudaries\n updateAncestryBoundaries(n, layoutInfo);\n }\n\n // Update size, position of compund nodes\n for (var i = 0; i < layoutInfo.nodeSize; i++) {\n var n = layoutInfo.layoutNodes[i];\n if (0 < n.children.length && !n.isLocked) {\n n.positionX = (n.maxX + n.minX) / 2;\n n.positionY = (n.maxY + n.minY) / 2;\n n.width = n.maxX - n.minX;\n n.height = n.maxY - n.minY;\n // s = \"Updating position, size of compound node \" + n.id;\n // s += \"\\nPositionX: \" + n.positionX + \", PositionY: \" + n.positionY;\n // s += \"\\nWidth: \" + n.width + \", Height: \" + n.height;\n // logDebug(s);\n }\n }\n};\n\n/**\n * @brief : Limits a force (forceX, forceY) to be not\n * greater (in modulo) than max.\n 8 Preserves force direction.\n */\nvar limitForce = function limitForce(forceX, forceY, max) {\n // var s = \"Limiting force: (\" + forceX + \", \" + forceY + \"). Max: \" + max;\n var force = Math.sqrt(forceX * forceX + forceY * forceY);\n if (force > max) {\n var res = {\n x: max * forceX / force,\n y: max * forceY / force\n };\n } else {\n var res = {\n x: forceX,\n y: forceY\n };\n }\n\n // s += \".\\nResult: (\" + res.x + \", \" + res.y + \")\";\n // logDebug(s);\n\n return res;\n};\n\n/**\n * @brief : Function used for keeping track of compound node\n * sizes, since they should bound all their subnodes.\n */\nvar updateAncestryBoundaries = function updateAncestryBoundaries(node, layoutInfo) {\n // var s = \"Propagating new position/size of node \" + node.id;\n var parentId = node.parentId;\n if (null == parentId) {\n // If there's no parent, we are done\n // s += \". No parent node.\";\n // logDebug(s);\n return;\n }\n\n // Get Parent Node\n var p = layoutInfo.layoutNodes[layoutInfo.idToIndex[parentId]];\n var flag = false;\n\n // MaxX\n if (null == p.maxX || node.maxX + p.padRight > p.maxX) {\n p.maxX = node.maxX + p.padRight;\n flag = true;\n // s += \"\\nNew maxX for parent node \" + p.id + \": \" + p.maxX;\n }\n\n // MinX\n if (null == p.minX || node.minX - p.padLeft < p.minX) {\n p.minX = node.minX - p.padLeft;\n flag = true;\n // s += \"\\nNew minX for parent node \" + p.id + \": \" + p.minX;\n }\n\n // MaxY\n if (null == p.maxY || node.maxY + p.padBottom > p.maxY) {\n p.maxY = node.maxY + p.padBottom;\n flag = true;\n // s += \"\\nNew maxY for parent node \" + p.id + \": \" + p.maxY;\n }\n\n // MinY\n if (null == p.minY || node.minY - p.padTop < p.minY) {\n p.minY = node.minY - p.padTop;\n flag = true;\n // s += \"\\nNew minY for parent node \" + p.id + \": \" + p.minY;\n }\n\n // If updated boundaries, propagate changes upward\n if (flag) {\n // logDebug(s);\n return updateAncestryBoundaries(p, layoutInfo);\n }\n\n // s += \". No changes in boundaries/position of parent node \" + p.id;\n // logDebug(s);\n return;\n};\nvar separateComponents = function separateComponents(layoutInfo, options) {\n var nodes = layoutInfo.layoutNodes;\n var components = [];\n for (var i = 0; i < nodes.length; i++) {\n var node = nodes[i];\n var cid = node.cmptId;\n var component = components[cid] = components[cid] || [];\n component.push(node);\n }\n var totalA = 0;\n for (var i = 0; i < components.length; i++) {\n var c = components[i];\n if (!c) {\n continue;\n }\n c.x1 = Infinity;\n c.x2 = -Infinity;\n c.y1 = Infinity;\n c.y2 = -Infinity;\n for (var j = 0; j < c.length; j++) {\n var n = c[j];\n c.x1 = Math.min(c.x1, n.positionX - n.width / 2);\n c.x2 = Math.max(c.x2, n.positionX + n.width / 2);\n c.y1 = Math.min(c.y1, n.positionY - n.height / 2);\n c.y2 = Math.max(c.y2, n.positionY + n.height / 2);\n }\n c.w = c.x2 - c.x1;\n c.h = c.y2 - c.y1;\n totalA += c.w * c.h;\n }\n components.sort(function (c1, c2) {\n return c2.w * c2.h - c1.w * c1.h;\n });\n var x = 0;\n var y = 0;\n var usedW = 0;\n var rowH = 0;\n var maxRowW = Math.sqrt(totalA) * layoutInfo.clientWidth / layoutInfo.clientHeight;\n for (var i = 0; i < components.length; i++) {\n var c = components[i];\n if (!c) {\n continue;\n }\n for (var j = 0; j < c.length; j++) {\n var n = c[j];\n if (!n.isLocked) {\n n.positionX += x - c.x1;\n n.positionY += y - c.y1;\n }\n }\n x += c.w + options.componentSpacing;\n usedW += c.w + options.componentSpacing;\n rowH = Math.max(rowH, c.h);\n if (usedW > maxRowW) {\n y += rowH + options.componentSpacing;\n x = 0;\n usedW = 0;\n rowH = 0;\n }\n }\n};\n\nvar defaults$3 = {\n fit: true,\n // whether to fit the viewport to the graph\n padding: 30,\n // padding used on fit\n boundingBox: undefined,\n // constrain layout bounds; { x1, y1, x2, y2 } or { x1, y1, w, h }\n avoidOverlap: true,\n // prevents node overlap, may overflow boundingBox if not enough space\n avoidOverlapPadding: 10,\n // extra spacing around nodes when avoidOverlap: true\n nodeDimensionsIncludeLabels: false,\n // Excludes the label when calculating node bounding boxes for the layout algorithm\n spacingFactor: undefined,\n // Applies a multiplicative factor (>0) to expand or compress the overall area that the nodes take up\n condense: false,\n // uses all available space on false, uses minimal space on true\n rows: undefined,\n // force num of rows in the grid\n cols: undefined,\n // force num of columns in the grid\n position: function position(node) {},\n // returns { row, col } for element\n sort: undefined,\n // a sorting function to order the nodes; e.g. function(a, b){ return a.data('weight') - b.data('weight') }\n animate: false,\n // whether to transition the node positions\n animationDuration: 500,\n // duration of animation in ms if enabled\n animationEasing: undefined,\n // easing of animation if enabled\n animateFilter: function animateFilter(node, i) {\n return true;\n },\n // a function that determines whether the node should be animated. All nodes animated by default on animate enabled. Non-animated nodes are positioned immediately when the layout starts\n ready: undefined,\n // callback on layoutready\n stop: undefined,\n // callback on layoutstop\n transform: function transform(node, position) {\n return position;\n } // transform a given node position. Useful for changing flow direction in discrete layouts \n};\n\nfunction GridLayout(options) {\n this.options = extend({}, defaults$3, options);\n}\nGridLayout.prototype.run = function () {\n var params = this.options;\n var options = params;\n var cy = params.cy;\n var eles = options.eles;\n var nodes = eles.nodes().not(':parent');\n if (options.sort) {\n nodes = nodes.sort(options.sort);\n }\n var bb = makeBoundingBox(options.boundingBox ? options.boundingBox : {\n x1: 0,\n y1: 0,\n w: cy.width(),\n h: cy.height()\n });\n if (bb.h === 0 || bb.w === 0) {\n eles.nodes().layoutPositions(this, options, function (ele) {\n return {\n x: bb.x1,\n y: bb.y1\n };\n });\n } else {\n // width/height * splits^2 = cells where splits is number of times to split width\n var cells = nodes.size();\n var splits = Math.sqrt(cells * bb.h / bb.w);\n var rows = Math.round(splits);\n var cols = Math.round(bb.w / bb.h * splits);\n var small = function small(val) {\n if (val == null) {\n return Math.min(rows, cols);\n } else {\n var min = Math.min(rows, cols);\n if (min == rows) {\n rows = val;\n } else {\n cols = val;\n }\n }\n };\n var large = function large(val) {\n if (val == null) {\n return Math.max(rows, cols);\n } else {\n var max = Math.max(rows, cols);\n if (max == rows) {\n rows = val;\n } else {\n cols = val;\n }\n }\n };\n var oRows = options.rows;\n var oCols = options.cols != null ? options.cols : options.columns;\n\n // if rows or columns were set in options, use those values\n if (oRows != null && oCols != null) {\n rows = oRows;\n cols = oCols;\n } else if (oRows != null && oCols == null) {\n rows = oRows;\n cols = Math.ceil(cells / rows);\n } else if (oRows == null && oCols != null) {\n cols = oCols;\n rows = Math.ceil(cells / cols);\n }\n\n // otherwise use the automatic values and adjust accordingly\n\n // if rounding was up, see if we can reduce rows or columns\n else if (cols * rows > cells) {\n var sm = small();\n var lg = large();\n\n // reducing the small side takes away the most cells, so try it first\n if ((sm - 1) * lg >= cells) {\n small(sm - 1);\n } else if ((lg - 1) * sm >= cells) {\n large(lg - 1);\n }\n } else {\n // if rounding was too low, add rows or columns\n while (cols * rows < cells) {\n var _sm = small();\n var _lg = large();\n\n // try to add to larger side first (adds less in multiplication)\n if ((_lg + 1) * _sm >= cells) {\n large(_lg + 1);\n } else {\n small(_sm + 1);\n }\n }\n }\n var cellWidth = bb.w / cols;\n var cellHeight = bb.h / rows;\n if (options.condense) {\n cellWidth = 0;\n cellHeight = 0;\n }\n if (options.avoidOverlap) {\n for (var i = 0; i < nodes.length; i++) {\n var node = nodes[i];\n var pos = node._private.position;\n if (pos.x == null || pos.y == null) {\n // for bb\n pos.x = 0;\n pos.y = 0;\n }\n var nbb = node.layoutDimensions(options);\n var p = options.avoidOverlapPadding;\n var w = nbb.w + p;\n var h = nbb.h + p;\n cellWidth = Math.max(cellWidth, w);\n cellHeight = Math.max(cellHeight, h);\n }\n }\n var cellUsed = {}; // e.g. 'c-0-2' => true\n\n var used = function used(row, col) {\n return cellUsed['c-' + row + '-' + col] ? true : false;\n };\n var use = function use(row, col) {\n cellUsed['c-' + row + '-' + col] = true;\n };\n\n // to keep track of current cell position\n var row = 0;\n var col = 0;\n var moveToNextCell = function moveToNextCell() {\n col++;\n if (col >= cols) {\n col = 0;\n row++;\n }\n };\n\n // get a cache of all the manual positions\n var id2manPos = {};\n for (var _i = 0; _i < nodes.length; _i++) {\n var _node = nodes[_i];\n var rcPos = options.position(_node);\n if (rcPos && (rcPos.row !== undefined || rcPos.col !== undefined)) {\n // must have at least row or col def'd\n var _pos = {\n row: rcPos.row,\n col: rcPos.col\n };\n if (_pos.col === undefined) {\n // find unused col\n _pos.col = 0;\n while (used(_pos.row, _pos.col)) {\n _pos.col++;\n }\n } else if (_pos.row === undefined) {\n // find unused row\n _pos.row = 0;\n while (used(_pos.row, _pos.col)) {\n _pos.row++;\n }\n }\n id2manPos[_node.id()] = _pos;\n use(_pos.row, _pos.col);\n }\n }\n var getPos = function getPos(element, i) {\n var x, y;\n if (element.locked() || element.isParent()) {\n return false;\n }\n\n // see if we have a manual position set\n var rcPos = id2manPos[element.id()];\n if (rcPos) {\n x = rcPos.col * cellWidth + cellWidth / 2 + bb.x1;\n y = rcPos.row * cellHeight + cellHeight / 2 + bb.y1;\n } else {\n // otherwise set automatically\n\n while (used(row, col)) {\n moveToNextCell();\n }\n x = col * cellWidth + cellWidth / 2 + bb.x1;\n y = row * cellHeight + cellHeight / 2 + bb.y1;\n use(row, col);\n moveToNextCell();\n }\n return {\n x: x,\n y: y\n };\n };\n nodes.layoutPositions(this, options, getPos);\n }\n return this; // chaining\n};\n\n// default layout options\nvar defaults$2 = {\n ready: function ready() {},\n // on layoutready\n stop: function stop() {} // on layoutstop\n};\n\n// constructor\n// options : object containing layout options\nfunction NullLayout(options) {\n this.options = extend({}, defaults$2, options);\n}\n\n// runs the layout\nNullLayout.prototype.run = function () {\n var options = this.options;\n var eles = options.eles; // elements to consider in the layout\n var layout = this;\n\n // cy is automatically populated for us in the constructor\n // (disable eslint for next line as this serves as example layout code to external developers)\n // eslint-disable-next-line no-unused-vars\n options.cy;\n layout.emit('layoutstart');\n\n // puts all nodes at (0, 0)\n // n.b. most layouts would use layoutPositions(), instead of positions() and manual events\n eles.nodes().positions(function () {\n return {\n x: 0,\n y: 0\n };\n });\n\n // trigger layoutready when each node has had its position set at least once\n layout.one('layoutready', options.ready);\n layout.emit('layoutready');\n\n // trigger layoutstop when the layout stops (e.g. finishes)\n layout.one('layoutstop', options.stop);\n layout.emit('layoutstop');\n return this; // chaining\n};\n\n// called on continuous layouts to stop them before they finish\nNullLayout.prototype.stop = function () {\n return this; // chaining\n};\n\nvar defaults$1 = {\n positions: undefined,\n // map of (node id) => (position obj); or function(node){ return somPos; }\n zoom: undefined,\n // the zoom level to set (prob want fit = false if set)\n pan: undefined,\n // the pan level to set (prob want fit = false if set)\n fit: true,\n // whether to fit to viewport\n padding: 30,\n // padding on fit\n spacingFactor: undefined,\n // Applies a multiplicative factor (>0) to expand or compress the overall area that the nodes take up\n animate: false,\n // whether to transition the node positions\n animationDuration: 500,\n // duration of animation in ms if enabled\n animationEasing: undefined,\n // easing of animation if enabled\n animateFilter: function animateFilter(node, i) {\n return true;\n },\n // a function that determines whether the node should be animated. All nodes animated by default on animate enabled. Non-animated nodes are positioned immediately when the layout starts\n ready: undefined,\n // callback on layoutready\n stop: undefined,\n // callback on layoutstop\n transform: function transform(node, position) {\n return position;\n } // transform a given node position. Useful for changing flow direction in discrete layouts\n};\n\nfunction PresetLayout(options) {\n this.options = extend({}, defaults$1, options);\n}\nPresetLayout.prototype.run = function () {\n var options = this.options;\n var eles = options.eles;\n var nodes = eles.nodes();\n var posIsFn = fn$6(options.positions);\n function getPosition(node) {\n if (options.positions == null) {\n return copyPosition(node.position());\n }\n if (posIsFn) {\n return options.positions(node);\n }\n var pos = options.positions[node._private.data.id];\n if (pos == null) {\n return null;\n }\n return pos;\n }\n nodes.layoutPositions(this, options, function (node, i) {\n var position = getPosition(node);\n if (node.locked() || position == null) {\n return false;\n }\n return position;\n });\n return this; // chaining\n};\n\nvar defaults = {\n fit: true,\n // whether to fit to viewport\n padding: 30,\n // fit padding\n boundingBox: undefined,\n // constrain layout bounds; { x1, y1, x2, y2 } or { x1, y1, w, h }\n animate: false,\n // whether to transition the node positions\n animationDuration: 500,\n // duration of animation in ms if enabled\n animationEasing: undefined,\n // easing of animation if enabled\n animateFilter: function animateFilter(node, i) {\n return true;\n },\n // a function that determines whether the node should be animated. All nodes animated by default on animate enabled. Non-animated nodes are positioned immediately when the layout starts\n ready: undefined,\n // callback on layoutready\n stop: undefined,\n // callback on layoutstop\n transform: function transform(node, position) {\n return position;\n } // transform a given node position. Useful for changing flow direction in discrete layouts \n};\n\nfunction RandomLayout(options) {\n this.options = extend({}, defaults, options);\n}\nRandomLayout.prototype.run = function () {\n var options = this.options;\n var cy = options.cy;\n var eles = options.eles;\n var bb = makeBoundingBox(options.boundingBox ? options.boundingBox : {\n x1: 0,\n y1: 0,\n w: cy.width(),\n h: cy.height()\n });\n var getPos = function getPos(node, i) {\n return {\n x: bb.x1 + Math.round(Math.random() * bb.w),\n y: bb.y1 + Math.round(Math.random() * bb.h)\n };\n };\n eles.nodes().layoutPositions(this, options, getPos);\n return this; // chaining\n};\n\nvar layout = [{\n name: 'breadthfirst',\n impl: BreadthFirstLayout\n}, {\n name: 'circle',\n impl: CircleLayout\n}, {\n name: 'concentric',\n impl: ConcentricLayout\n}, {\n name: 'cose',\n impl: CoseLayout\n}, {\n name: 'grid',\n impl: GridLayout\n}, {\n name: 'null',\n impl: NullLayout\n}, {\n name: 'preset',\n impl: PresetLayout\n}, {\n name: 'random',\n impl: RandomLayout\n}];\n\nfunction NullRenderer(options) {\n this.options = options;\n this.notifications = 0; // for testing\n}\n\nvar noop = function noop() {};\nvar throwImgErr = function throwImgErr() {\n throw new Error('A headless instance can not render images');\n};\nNullRenderer.prototype = {\n recalculateRenderedStyle: noop,\n notify: function notify() {\n this.notifications++;\n },\n init: noop,\n isHeadless: function isHeadless() {\n return true;\n },\n png: throwImgErr,\n jpg: throwImgErr\n};\n\nvar BRp$f = {};\nBRp$f.arrowShapeWidth = 0.3;\nBRp$f.registerArrowShapes = function () {\n var arrowShapes = this.arrowShapes = {};\n var renderer = this;\n\n // Contract for arrow shapes:\n // 0, 0 is arrow tip\n // (0, 1) is direction towards node\n // (1, 0) is right\n //\n // functional api:\n // collide: check x, y in shape\n // roughCollide: called before collide, no false negatives\n // draw: draw\n // spacing: dist(arrowTip, nodeBoundary)\n // gap: dist(edgeTip, nodeBoundary), edgeTip may != arrowTip\n\n var bbCollide = function bbCollide(x, y, size, angle, translation, edgeWidth, padding) {\n var x1 = translation.x - size / 2 - padding;\n var x2 = translation.x + size / 2 + padding;\n var y1 = translation.y - size / 2 - padding;\n var y2 = translation.y + size / 2 + padding;\n var inside = x1 <= x && x <= x2 && y1 <= y && y <= y2;\n return inside;\n };\n var transform = function transform(x, y, size, angle, translation) {\n var xRotated = x * Math.cos(angle) - y * Math.sin(angle);\n var yRotated = x * Math.sin(angle) + y * Math.cos(angle);\n var xScaled = xRotated * size;\n var yScaled = yRotated * size;\n var xTranslated = xScaled + translation.x;\n var yTranslated = yScaled + translation.y;\n return {\n x: xTranslated,\n y: yTranslated\n };\n };\n var transformPoints = function transformPoints(pts, size, angle, translation) {\n var retPts = [];\n for (var i = 0; i < pts.length; i += 2) {\n var x = pts[i];\n var y = pts[i + 1];\n retPts.push(transform(x, y, size, angle, translation));\n }\n return retPts;\n };\n var pointsToArr = function pointsToArr(pts) {\n var ret = [];\n for (var i = 0; i < pts.length; i++) {\n var p = pts[i];\n ret.push(p.x, p.y);\n }\n return ret;\n };\n var standardGap = function standardGap(edge) {\n return edge.pstyle('width').pfValue * edge.pstyle('arrow-scale').pfValue * 2;\n };\n var defineArrowShape = function defineArrowShape(name, defn) {\n if (string(defn)) {\n defn = arrowShapes[defn];\n }\n arrowShapes[name] = extend({\n name: name,\n points: [-0.15, -0.3, 0.15, -0.3, 0.15, 0.3, -0.15, 0.3],\n collide: function collide(x, y, size, angle, translation, padding) {\n var points = pointsToArr(transformPoints(this.points, size + 2 * padding, angle, translation));\n var inside = pointInsidePolygonPoints(x, y, points);\n return inside;\n },\n roughCollide: bbCollide,\n draw: function draw(context, size, angle, translation) {\n var points = transformPoints(this.points, size, angle, translation);\n renderer.arrowShapeImpl('polygon')(context, points);\n },\n spacing: function spacing(edge) {\n return 0;\n },\n gap: standardGap\n }, defn);\n };\n defineArrowShape('none', {\n collide: falsify,\n roughCollide: falsify,\n draw: noop$1,\n spacing: zeroify,\n gap: zeroify\n });\n defineArrowShape('triangle', {\n points: [-0.15, -0.3, 0, 0, 0.15, -0.3]\n });\n defineArrowShape('arrow', 'triangle');\n defineArrowShape('triangle-backcurve', {\n points: arrowShapes['triangle'].points,\n controlPoint: [0, -0.15],\n roughCollide: bbCollide,\n draw: function draw(context, size, angle, translation, edgeWidth) {\n var ptsTrans = transformPoints(this.points, size, angle, translation);\n var ctrlPt = this.controlPoint;\n var ctrlPtTrans = transform(ctrlPt[0], ctrlPt[1], size, angle, translation);\n renderer.arrowShapeImpl(this.name)(context, ptsTrans, ctrlPtTrans);\n },\n gap: function gap(edge) {\n return standardGap(edge) * 0.8;\n }\n });\n defineArrowShape('triangle-tee', {\n points: [0, 0, 0.15, -0.3, -0.15, -0.3, 0, 0],\n pointsTee: [-0.15, -0.4, -0.15, -0.5, 0.15, -0.5, 0.15, -0.4],\n collide: function collide(x, y, size, angle, translation, edgeWidth, padding) {\n var triPts = pointsToArr(transformPoints(this.points, size + 2 * padding, angle, translation));\n var teePts = pointsToArr(transformPoints(this.pointsTee, size + 2 * padding, angle, translation));\n var inside = pointInsidePolygonPoints(x, y, triPts) || pointInsidePolygonPoints(x, y, teePts);\n return inside;\n },\n draw: function draw(context, size, angle, translation, edgeWidth) {\n var triPts = transformPoints(this.points, size, angle, translation);\n var teePts = transformPoints(this.pointsTee, size, angle, translation);\n renderer.arrowShapeImpl(this.name)(context, triPts, teePts);\n }\n });\n defineArrowShape('circle-triangle', {\n radius: 0.15,\n pointsTr: [0, -0.15, 0.15, -0.45, -0.15, -0.45, 0, -0.15],\n collide: function collide(x, y, size, angle, translation, edgeWidth, padding) {\n var t = translation;\n var circleInside = Math.pow(t.x - x, 2) + Math.pow(t.y - y, 2) <= Math.pow((size + 2 * padding) * this.radius, 2);\n var triPts = pointsToArr(transformPoints(this.points, size + 2 * padding, angle, translation));\n return pointInsidePolygonPoints(x, y, triPts) || circleInside;\n },\n draw: function draw(context, size, angle, translation, edgeWidth) {\n var triPts = transformPoints(this.pointsTr, size, angle, translation);\n renderer.arrowShapeImpl(this.name)(context, triPts, translation.x, translation.y, this.radius * size);\n },\n spacing: function spacing(edge) {\n return renderer.getArrowWidth(edge.pstyle('width').pfValue, edge.pstyle('arrow-scale').value) * this.radius;\n }\n });\n defineArrowShape('triangle-cross', {\n points: [0, 0, 0.15, -0.3, -0.15, -0.3, 0, 0],\n baseCrossLinePts: [-0.15, -0.4,\n // first half of the rectangle\n -0.15, -0.4, 0.15, -0.4,\n // second half of the rectangle\n 0.15, -0.4],\n crossLinePts: function crossLinePts(size, edgeWidth) {\n // shift points so that the distance between the cross points matches edge width\n var p = this.baseCrossLinePts.slice();\n var shiftFactor = edgeWidth / size;\n var y0 = 3;\n var y1 = 5;\n p[y0] = p[y0] - shiftFactor;\n p[y1] = p[y1] - shiftFactor;\n return p;\n },\n collide: function collide(x, y, size, angle, translation, edgeWidth, padding) {\n var triPts = pointsToArr(transformPoints(this.points, size + 2 * padding, angle, translation));\n var teePts = pointsToArr(transformPoints(this.crossLinePts(size, edgeWidth), size + 2 * padding, angle, translation));\n var inside = pointInsidePolygonPoints(x, y, triPts) || pointInsidePolygonPoints(x, y, teePts);\n return inside;\n },\n draw: function draw(context, size, angle, translation, edgeWidth) {\n var triPts = transformPoints(this.points, size, angle, translation);\n var crossLinePts = transformPoints(this.crossLinePts(size, edgeWidth), size, angle, translation);\n renderer.arrowShapeImpl(this.name)(context, triPts, crossLinePts);\n }\n });\n defineArrowShape('vee', {\n points: [-0.15, -0.3, 0, 0, 0.15, -0.3, 0, -0.15],\n gap: function gap(edge) {\n return standardGap(edge) * 0.525;\n }\n });\n defineArrowShape('circle', {\n radius: 0.15,\n collide: function collide(x, y, size, angle, translation, edgeWidth, padding) {\n var t = translation;\n var inside = Math.pow(t.x - x, 2) + Math.pow(t.y - y, 2) <= Math.pow((size + 2 * padding) * this.radius, 2);\n return inside;\n },\n draw: function draw(context, size, angle, translation, edgeWidth) {\n renderer.arrowShapeImpl(this.name)(context, translation.x, translation.y, this.radius * size);\n },\n spacing: function spacing(edge) {\n return renderer.getArrowWidth(edge.pstyle('width').pfValue, edge.pstyle('arrow-scale').value) * this.radius;\n }\n });\n defineArrowShape('tee', {\n points: [-0.15, 0, -0.15, -0.1, 0.15, -0.1, 0.15, 0],\n spacing: function spacing(edge) {\n return 1;\n },\n gap: function gap(edge) {\n return 1;\n }\n });\n defineArrowShape('square', {\n points: [-0.15, 0.00, 0.15, 0.00, 0.15, -0.3, -0.15, -0.3]\n });\n defineArrowShape('diamond', {\n points: [-0.15, -0.15, 0, -0.3, 0.15, -0.15, 0, 0],\n gap: function gap(edge) {\n return edge.pstyle('width').pfValue * edge.pstyle('arrow-scale').value;\n }\n });\n defineArrowShape('chevron', {\n points: [0, 0, -0.15, -0.15, -0.1, -0.2, 0, -0.1, 0.1, -0.2, 0.15, -0.15],\n gap: function gap(edge) {\n return 0.95 * edge.pstyle('width').pfValue * edge.pstyle('arrow-scale').value;\n }\n });\n};\n\nvar BRp$e = {};\n\n// Project mouse\nBRp$e.projectIntoViewport = function (clientX, clientY) {\n var cy = this.cy;\n var offsets = this.findContainerClientCoords();\n var offsetLeft = offsets[0];\n var offsetTop = offsets[1];\n var scale = offsets[4];\n var pan = cy.pan();\n var zoom = cy.zoom();\n var x = ((clientX - offsetLeft) / scale - pan.x) / zoom;\n var y = ((clientY - offsetTop) / scale - pan.y) / zoom;\n return [x, y];\n};\nBRp$e.findContainerClientCoords = function () {\n if (this.containerBB) {\n return this.containerBB;\n }\n var container = this.container;\n var rect = container.getBoundingClientRect();\n var style = this.cy.window().getComputedStyle(container);\n var styleValue = function styleValue(name) {\n return parseFloat(style.getPropertyValue(name));\n };\n var padding = {\n left: styleValue('padding-left'),\n right: styleValue('padding-right'),\n top: styleValue('padding-top'),\n bottom: styleValue('padding-bottom')\n };\n var border = {\n left: styleValue('border-left-width'),\n right: styleValue('border-right-width'),\n top: styleValue('border-top-width'),\n bottom: styleValue('border-bottom-width')\n };\n var clientWidth = container.clientWidth;\n var clientHeight = container.clientHeight;\n var paddingHor = padding.left + padding.right;\n var paddingVer = padding.top + padding.bottom;\n var borderHor = border.left + border.right;\n var scale = rect.width / (clientWidth + borderHor);\n var unscaledW = clientWidth - paddingHor;\n var unscaledH = clientHeight - paddingVer;\n var left = rect.left + padding.left + border.left;\n var top = rect.top + padding.top + border.top;\n return this.containerBB = [left, top, unscaledW, unscaledH, scale];\n};\nBRp$e.invalidateContainerClientCoordsCache = function () {\n this.containerBB = null;\n};\nBRp$e.findNearestElement = function (x, y, interactiveElementsOnly, isTouch) {\n return this.findNearestElements(x, y, interactiveElementsOnly, isTouch)[0];\n};\nBRp$e.findNearestElements = function (x, y, interactiveElementsOnly, isTouch) {\n var self = this;\n var r = this;\n var eles = r.getCachedZSortedEles();\n var near = []; // 1 node max, 1 edge max\n var zoom = r.cy.zoom();\n var hasCompounds = r.cy.hasCompoundNodes();\n var edgeThreshold = (isTouch ? 24 : 8) / zoom;\n var nodeThreshold = (isTouch ? 8 : 2) / zoom;\n var labelThreshold = (isTouch ? 8 : 2) / zoom;\n var minSqDist = Infinity;\n var nearEdge;\n var nearNode;\n if (interactiveElementsOnly) {\n eles = eles.interactive;\n }\n function addEle(ele, sqDist) {\n if (ele.isNode()) {\n if (nearNode) {\n return; // can't replace node\n } else {\n nearNode = ele;\n near.push(ele);\n }\n }\n if (ele.isEdge() && (sqDist == null || sqDist < minSqDist)) {\n if (nearEdge) {\n // then replace existing edge\n // can replace only if same z-index\n if (nearEdge.pstyle('z-compound-depth').value === ele.pstyle('z-compound-depth').value && nearEdge.pstyle('z-compound-depth').value === ele.pstyle('z-compound-depth').value) {\n for (var i = 0; i < near.length; i++) {\n if (near[i].isEdge()) {\n near[i] = ele;\n nearEdge = ele;\n minSqDist = sqDist != null ? sqDist : minSqDist;\n break;\n }\n }\n }\n } else {\n near.push(ele);\n nearEdge = ele;\n minSqDist = sqDist != null ? sqDist : minSqDist;\n }\n }\n }\n function checkNode(node) {\n var width = node.outerWidth() + 2 * nodeThreshold;\n var height = node.outerHeight() + 2 * nodeThreshold;\n var hw = width / 2;\n var hh = height / 2;\n var pos = node.position();\n var cornerRadius = node.pstyle('corner-radius').value === 'auto' ? 'auto' : node.pstyle('corner-radius').pfValue;\n var rs = node._private.rscratch;\n if (pos.x - hw <= x && x <= pos.x + hw // bb check x\n && pos.y - hh <= y && y <= pos.y + hh // bb check y\n ) {\n var shape = r.nodeShapes[self.getNodeShape(node)];\n if (shape.checkPoint(x, y, 0, width, height, pos.x, pos.y, cornerRadius, rs)) {\n addEle(node, 0);\n return true;\n }\n }\n }\n function checkEdge(edge) {\n var _p = edge._private;\n var rs = _p.rscratch;\n var styleWidth = edge.pstyle('width').pfValue;\n var scale = edge.pstyle('arrow-scale').value;\n var width = styleWidth / 2 + edgeThreshold; // more like a distance radius from centre\n var widthSq = width * width;\n var width2 = width * 2;\n var src = _p.source;\n var tgt = _p.target;\n var sqDist;\n if (rs.edgeType === 'segments' || rs.edgeType === 'straight' || rs.edgeType === 'haystack') {\n var pts = rs.allpts;\n for (var i = 0; i + 3 < pts.length; i += 2) {\n if (inLineVicinity(x, y, pts[i], pts[i + 1], pts[i + 2], pts[i + 3], width2) && widthSq > (sqDist = sqdistToFiniteLine(x, y, pts[i], pts[i + 1], pts[i + 2], pts[i + 3]))) {\n addEle(edge, sqDist);\n return true;\n }\n }\n } else if (rs.edgeType === 'bezier' || rs.edgeType === 'multibezier' || rs.edgeType === 'self' || rs.edgeType === 'compound') {\n var pts = rs.allpts;\n for (var i = 0; i + 5 < rs.allpts.length; i += 4) {\n if (inBezierVicinity(x, y, pts[i], pts[i + 1], pts[i + 2], pts[i + 3], pts[i + 4], pts[i + 5], width2) && widthSq > (sqDist = sqdistToQuadraticBezier(x, y, pts[i], pts[i + 1], pts[i + 2], pts[i + 3], pts[i + 4], pts[i + 5]))) {\n addEle(edge, sqDist);\n return true;\n }\n }\n }\n\n // if we're close to the edge but didn't hit it, maybe we hit its arrows\n\n var src = src || _p.source;\n var tgt = tgt || _p.target;\n var arSize = self.getArrowWidth(styleWidth, scale);\n var arrows = [{\n name: 'source',\n x: rs.arrowStartX,\n y: rs.arrowStartY,\n angle: rs.srcArrowAngle\n }, {\n name: 'target',\n x: rs.arrowEndX,\n y: rs.arrowEndY,\n angle: rs.tgtArrowAngle\n }, {\n name: 'mid-source',\n x: rs.midX,\n y: rs.midY,\n angle: rs.midsrcArrowAngle\n }, {\n name: 'mid-target',\n x: rs.midX,\n y: rs.midY,\n angle: rs.midtgtArrowAngle\n }];\n for (var i = 0; i < arrows.length; i++) {\n var ar = arrows[i];\n var shape = r.arrowShapes[edge.pstyle(ar.name + '-arrow-shape').value];\n var edgeWidth = edge.pstyle('width').pfValue;\n if (shape.roughCollide(x, y, arSize, ar.angle, {\n x: ar.x,\n y: ar.y\n }, edgeWidth, edgeThreshold) && shape.collide(x, y, arSize, ar.angle, {\n x: ar.x,\n y: ar.y\n }, edgeWidth, edgeThreshold)) {\n addEle(edge);\n return true;\n }\n }\n\n // for compound graphs, hitting edge may actually want a connected node instead (b/c edge may have greater z-index precedence)\n if (hasCompounds && near.length > 0) {\n checkNode(src);\n checkNode(tgt);\n }\n }\n function preprop(obj, name, pre) {\n return getPrefixedProperty(obj, name, pre);\n }\n function checkLabel(ele, prefix) {\n var _p = ele._private;\n var th = labelThreshold;\n var prefixDash;\n if (prefix) {\n prefixDash = prefix + '-';\n } else {\n prefixDash = '';\n }\n ele.boundingBox();\n var bb = _p.labelBounds[prefix || 'main'];\n var text = ele.pstyle(prefixDash + 'label').value;\n var eventsEnabled = ele.pstyle('text-events').strValue === 'yes';\n if (!eventsEnabled || !text) {\n return;\n }\n var lx = preprop(_p.rscratch, 'labelX', prefix);\n var ly = preprop(_p.rscratch, 'labelY', prefix);\n var theta = preprop(_p.rscratch, 'labelAngle', prefix);\n var ox = ele.pstyle(prefixDash + 'text-margin-x').pfValue;\n var oy = ele.pstyle(prefixDash + 'text-margin-y').pfValue;\n var lx1 = bb.x1 - th - ox; // (-ox, -oy) as bb already includes margin\n var lx2 = bb.x2 + th - ox; // and rotation is about (lx, ly)\n var ly1 = bb.y1 - th - oy;\n var ly2 = bb.y2 + th - oy;\n if (theta) {\n var cos = Math.cos(theta);\n var sin = Math.sin(theta);\n var rotate = function rotate(x, y) {\n x = x - lx;\n y = y - ly;\n return {\n x: x * cos - y * sin + lx,\n y: x * sin + y * cos + ly\n };\n };\n var px1y1 = rotate(lx1, ly1);\n var px1y2 = rotate(lx1, ly2);\n var px2y1 = rotate(lx2, ly1);\n var px2y2 = rotate(lx2, ly2);\n var points = [\n // with the margin added after the rotation is applied\n px1y1.x + ox, px1y1.y + oy, px2y1.x + ox, px2y1.y + oy, px2y2.x + ox, px2y2.y + oy, px1y2.x + ox, px1y2.y + oy];\n if (pointInsidePolygonPoints(x, y, points)) {\n addEle(ele);\n return true;\n }\n } else {\n // do a cheaper bb check\n if (inBoundingBox(bb, x, y)) {\n addEle(ele);\n return true;\n }\n }\n }\n for (var i = eles.length - 1; i >= 0; i--) {\n // reverse order for precedence\n var ele = eles[i];\n if (ele.isNode()) {\n checkNode(ele) || checkLabel(ele);\n } else {\n // then edge\n checkEdge(ele) || checkLabel(ele) || checkLabel(ele, 'source') || checkLabel(ele, 'target');\n }\n }\n return near;\n};\n\n// 'Give me everything from this box'\nBRp$e.getAllInBox = function (x1, y1, x2, y2) {\n var eles = this.getCachedZSortedEles().interactive;\n var box = [];\n var x1c = Math.min(x1, x2);\n var x2c = Math.max(x1, x2);\n var y1c = Math.min(y1, y2);\n var y2c = Math.max(y1, y2);\n x1 = x1c;\n x2 = x2c;\n y1 = y1c;\n y2 = y2c;\n var boxBb = makeBoundingBox({\n x1: x1,\n y1: y1,\n x2: x2,\n y2: y2\n });\n for (var e = 0; e < eles.length; e++) {\n var ele = eles[e];\n if (ele.isNode()) {\n var node = ele;\n var nodeBb = node.boundingBox({\n includeNodes: true,\n includeEdges: false,\n includeLabels: false\n });\n if (boundingBoxesIntersect(boxBb, nodeBb) && !boundingBoxInBoundingBox(nodeBb, boxBb)) {\n box.push(node);\n }\n } else {\n var edge = ele;\n var _p = edge._private;\n var rs = _p.rscratch;\n if (rs.startX != null && rs.startY != null && !inBoundingBox(boxBb, rs.startX, rs.startY)) {\n continue;\n }\n if (rs.endX != null && rs.endY != null && !inBoundingBox(boxBb, rs.endX, rs.endY)) {\n continue;\n }\n if (rs.edgeType === 'bezier' || rs.edgeType === 'multibezier' || rs.edgeType === 'self' || rs.edgeType === 'compound' || rs.edgeType === 'segments' || rs.edgeType === 'haystack') {\n var pts = _p.rstyle.bezierPts || _p.rstyle.linePts || _p.rstyle.haystackPts;\n var allInside = true;\n for (var i = 0; i < pts.length; i++) {\n if (!pointInBoundingBox(boxBb, pts[i])) {\n allInside = false;\n break;\n }\n }\n if (allInside) {\n box.push(edge);\n }\n } else if (rs.edgeType === 'haystack' || rs.edgeType === 'straight') {\n box.push(edge);\n }\n }\n }\n return box;\n};\n\nvar BRp$d = {};\nBRp$d.calculateArrowAngles = function (edge) {\n var rs = edge._private.rscratch;\n var isHaystack = rs.edgeType === 'haystack';\n var isBezier = rs.edgeType === 'bezier';\n var isMultibezier = rs.edgeType === 'multibezier';\n var isSegments = rs.edgeType === 'segments';\n var isCompound = rs.edgeType === 'compound';\n var isSelf = rs.edgeType === 'self';\n\n // Displacement gives direction for arrowhead orientation\n var dispX, dispY;\n var startX, startY, endX, endY, midX, midY;\n if (isHaystack) {\n startX = rs.haystackPts[0];\n startY = rs.haystackPts[1];\n endX = rs.haystackPts[2];\n endY = rs.haystackPts[3];\n } else {\n startX = rs.arrowStartX;\n startY = rs.arrowStartY;\n endX = rs.arrowEndX;\n endY = rs.arrowEndY;\n }\n midX = rs.midX;\n midY = rs.midY;\n\n // source\n //\n\n if (isSegments) {\n dispX = startX - rs.segpts[0];\n dispY = startY - rs.segpts[1];\n } else if (isMultibezier || isCompound || isSelf || isBezier) {\n var pts = rs.allpts;\n var bX = qbezierAt(pts[0], pts[2], pts[4], 0.1);\n var bY = qbezierAt(pts[1], pts[3], pts[5], 0.1);\n dispX = startX - bX;\n dispY = startY - bY;\n } else {\n dispX = startX - midX;\n dispY = startY - midY;\n }\n rs.srcArrowAngle = getAngleFromDisp(dispX, dispY);\n\n // mid target\n //\n\n var midX = rs.midX;\n var midY = rs.midY;\n if (isHaystack) {\n midX = (startX + endX) / 2;\n midY = (startY + endY) / 2;\n }\n dispX = endX - startX;\n dispY = endY - startY;\n if (isSegments) {\n var pts = rs.allpts;\n if (pts.length / 2 % 2 === 0) {\n var i2 = pts.length / 2;\n var i1 = i2 - 2;\n dispX = pts[i2] - pts[i1];\n dispY = pts[i2 + 1] - pts[i1 + 1];\n } else if (rs.isRound) {\n dispX = rs.midVector[1];\n dispY = -rs.midVector[0];\n } else {\n var i2 = pts.length / 2 - 1;\n var i1 = i2 - 2;\n dispX = pts[i2] - pts[i1];\n dispY = pts[i2 + 1] - pts[i1 + 1];\n }\n } else if (isMultibezier || isCompound || isSelf) {\n var pts = rs.allpts;\n var cpts = rs.ctrlpts;\n var bp0x, bp0y;\n var bp1x, bp1y;\n if (cpts.length / 2 % 2 === 0) {\n var p0 = pts.length / 2 - 1; // startpt\n var ic = p0 + 2;\n var p1 = ic + 2;\n bp0x = qbezierAt(pts[p0], pts[ic], pts[p1], 0.0);\n bp0y = qbezierAt(pts[p0 + 1], pts[ic + 1], pts[p1 + 1], 0.0);\n bp1x = qbezierAt(pts[p0], pts[ic], pts[p1], 0.0001);\n bp1y = qbezierAt(pts[p0 + 1], pts[ic + 1], pts[p1 + 1], 0.0001);\n } else {\n var ic = pts.length / 2 - 1; // ctrpt\n var p0 = ic - 2; // startpt\n var p1 = ic + 2; // endpt\n\n bp0x = qbezierAt(pts[p0], pts[ic], pts[p1], 0.4999);\n bp0y = qbezierAt(pts[p0 + 1], pts[ic + 1], pts[p1 + 1], 0.4999);\n bp1x = qbezierAt(pts[p0], pts[ic], pts[p1], 0.5);\n bp1y = qbezierAt(pts[p0 + 1], pts[ic + 1], pts[p1 + 1], 0.5);\n }\n dispX = bp1x - bp0x;\n dispY = bp1y - bp0y;\n }\n rs.midtgtArrowAngle = getAngleFromDisp(dispX, dispY);\n rs.midDispX = dispX;\n rs.midDispY = dispY;\n\n // mid source\n //\n\n dispX *= -1;\n dispY *= -1;\n if (isSegments) {\n var pts = rs.allpts;\n if (pts.length / 2 % 2 === 0) ; else if (!rs.isRound) {\n var i2 = pts.length / 2 - 1;\n var i3 = i2 + 2;\n dispX = -(pts[i3] - pts[i2]);\n dispY = -(pts[i3 + 1] - pts[i2 + 1]);\n }\n }\n rs.midsrcArrowAngle = getAngleFromDisp(dispX, dispY);\n\n // target\n //\n\n if (isSegments) {\n dispX = endX - rs.segpts[rs.segpts.length - 2];\n dispY = endY - rs.segpts[rs.segpts.length - 1];\n } else if (isMultibezier || isCompound || isSelf || isBezier) {\n var pts = rs.allpts;\n var l = pts.length;\n var bX = qbezierAt(pts[l - 6], pts[l - 4], pts[l - 2], 0.9);\n var bY = qbezierAt(pts[l - 5], pts[l - 3], pts[l - 1], 0.9);\n dispX = endX - bX;\n dispY = endY - bY;\n } else {\n dispX = endX - midX;\n dispY = endY - midY;\n }\n rs.tgtArrowAngle = getAngleFromDisp(dispX, dispY);\n};\nBRp$d.getArrowWidth = BRp$d.getArrowHeight = function (edgeWidth, scale) {\n var cache = this.arrowWidthCache = this.arrowWidthCache || {};\n var cachedVal = cache[edgeWidth + ', ' + scale];\n if (cachedVal) {\n return cachedVal;\n }\n cachedVal = Math.max(Math.pow(edgeWidth * 13.37, 0.9), 29) * scale;\n cache[edgeWidth + ', ' + scale] = cachedVal;\n return cachedVal;\n};\n\n/**\n * Explained by Blindman67 at https://stackoverflow.com/a/44856925/11028828\n */\n\n// Declare reused variable to avoid reallocating variables every time the function is called\nvar x,\n y,\n v1 = {},\n v2 = {},\n sinA,\n sinA90,\n radDirection,\n drawDirection,\n angle,\n halfAngle,\n cRadius,\n lenOut,\n radius,\n limit;\nvar startX, startY, stopX, stopY;\nvar lastPoint;\n\n// convert 2 points into vector form, polar form, and normalised\nvar asVec = function asVec(p, pp, v) {\n v.x = pp.x - p.x;\n v.y = pp.y - p.y;\n v.len = Math.sqrt(v.x * v.x + v.y * v.y);\n v.nx = v.x / v.len;\n v.ny = v.y / v.len;\n v.ang = Math.atan2(v.ny, v.nx);\n};\nvar invertVec = function invertVec(originalV, invertedV) {\n invertedV.x = originalV.x * -1;\n invertedV.y = originalV.y * -1;\n invertedV.nx = originalV.nx * -1;\n invertedV.ny = originalV.ny * -1;\n invertedV.ang = originalV.ang > 0 ? -(Math.PI - originalV.ang) : Math.PI + originalV.ang;\n};\nvar calcCornerArc = function calcCornerArc(previousPoint, currentPoint, nextPoint, radiusMax, isArcRadius) {\n //-----------------------------------------\n // Part 1\n previousPoint !== lastPoint ? asVec(currentPoint, previousPoint, v1) : invertVec(v2, v1); // Avoid recalculating vec if it is the invert of the last one calculated\n asVec(currentPoint, nextPoint, v2);\n sinA = v1.nx * v2.ny - v1.ny * v2.nx;\n sinA90 = v1.nx * v2.nx - v1.ny * -v2.ny;\n angle = Math.asin(Math.max(-1, Math.min(1, sinA)));\n if (Math.abs(angle) < 1e-6) {\n x = currentPoint.x;\n y = currentPoint.y;\n cRadius = radius = 0;\n return;\n }\n //-----------------------------------------\n radDirection = 1;\n drawDirection = false;\n if (sinA90 < 0) {\n if (angle < 0) {\n angle = Math.PI + angle;\n } else {\n angle = Math.PI - angle;\n radDirection = -1;\n drawDirection = true;\n }\n } else {\n if (angle > 0) {\n radDirection = -1;\n drawDirection = true;\n }\n }\n if (currentPoint.radius !== undefined) {\n radius = currentPoint.radius;\n } else {\n radius = radiusMax;\n }\n //-----------------------------------------\n // Part 2\n halfAngle = angle / 2;\n //-----------------------------------------\n\n limit = Math.min(v1.len / 2, v2.len / 2);\n if (isArcRadius) {\n //-----------------------------------------\n // Part 3\n lenOut = Math.abs(Math.cos(halfAngle) * radius / Math.sin(halfAngle));\n\n //-----------------------------------------\n // Special part A\n if (lenOut > limit) {\n lenOut = limit;\n cRadius = Math.abs(lenOut * Math.sin(halfAngle) / Math.cos(halfAngle));\n } else {\n cRadius = radius;\n }\n } else {\n lenOut = Math.min(limit, radius);\n cRadius = Math.abs(lenOut * Math.sin(halfAngle) / Math.cos(halfAngle));\n }\n //-----------------------------------------\n\n //-----------------------------------------\n // Part 4\n stopX = currentPoint.x + v2.nx * lenOut;\n stopY = currentPoint.y + v2.ny * lenOut;\n //-----------------------------------------\n // Part 5\n x = stopX - v2.ny * cRadius * radDirection;\n y = stopY + v2.nx * cRadius * radDirection;\n //-----------------------------------------\n // Additional Part : calculate start point E\n startX = currentPoint.x + v1.nx * lenOut;\n startY = currentPoint.y + v1.ny * lenOut;\n\n // Save last point to avoid recalculating vector when not needed\n lastPoint = currentPoint;\n};\n\n/**\n * Draw corner provided by {@link getRoundCorner}\n *\n * @param ctx :CanvasRenderingContext2D\n * @param roundCorner {{cx:number, cy:number, radius:number, endAngle: number, startAngle: number, counterClockwise: boolean}}\n */\nfunction drawPreparedRoundCorner(ctx, roundCorner) {\n if (roundCorner.radius === 0) ctx.lineTo(roundCorner.cx, roundCorner.cy);else ctx.arc(roundCorner.cx, roundCorner.cy, roundCorner.radius, roundCorner.startAngle, roundCorner.endAngle, roundCorner.counterClockwise);\n}\n\n/**\n * Get round corner from a point and its previous and next neighbours in a path\n *\n * @param previousPoint {{x: number, y:number, radius: number?}}\n * @param currentPoint {{x: number, y:number, radius: number?}}\n * @param nextPoint {{x: number, y:number, radius: number?}}\n * @param radiusMax :number\n * @param isArcRadius :boolean\n * @return {{\n * cx:number, cy:number, radius:number,\n * startX:number, startY:number,\n * stopX:number, stopY: number,\n * endAngle: number, startAngle: number, counterClockwise: boolean\n * }}\n */\nfunction getRoundCorner(previousPoint, currentPoint, nextPoint, radiusMax) {\n var isArcRadius = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : true;\n if (radiusMax === 0 || currentPoint.radius === 0) return {\n cx: currentPoint.x,\n cy: currentPoint.y,\n radius: 0,\n startX: currentPoint.x,\n startY: currentPoint.y,\n stopX: currentPoint.x,\n stopY: currentPoint.y,\n startAngle: undefined,\n endAngle: undefined,\n counterClockwise: undefined\n };\n calcCornerArc(previousPoint, currentPoint, nextPoint, radiusMax, isArcRadius);\n return {\n cx: x,\n cy: y,\n radius: cRadius,\n startX: startX,\n startY: startY,\n stopX: stopX,\n stopY: stopY,\n startAngle: v1.ang + Math.PI / 2 * radDirection,\n endAngle: v2.ang - Math.PI / 2 * radDirection,\n counterClockwise: drawDirection\n };\n}\n\nvar BRp$c = {};\nBRp$c.findMidptPtsEtc = function (edge, pairInfo) {\n var posPts = pairInfo.posPts,\n intersectionPts = pairInfo.intersectionPts,\n vectorNormInverse = pairInfo.vectorNormInverse;\n var midptPts;\n\n // n.b. assumes all edges in bezier bundle have same endpoints specified\n var srcManEndpt = edge.pstyle('source-endpoint');\n var tgtManEndpt = edge.pstyle('target-endpoint');\n var haveManualEndPts = srcManEndpt.units != null && tgtManEndpt.units != null;\n var recalcVectorNormInverse = function recalcVectorNormInverse(x1, y1, x2, y2) {\n var dy = y2 - y1;\n var dx = x2 - x1;\n var l = Math.sqrt(dx * dx + dy * dy);\n return {\n x: -dy / l,\n y: dx / l\n };\n };\n var edgeDistances = edge.pstyle('edge-distances').value;\n switch (edgeDistances) {\n case 'node-position':\n midptPts = posPts;\n break;\n case 'intersection':\n midptPts = intersectionPts;\n break;\n case 'endpoints':\n {\n if (haveManualEndPts) {\n var _this$manualEndptToPx = this.manualEndptToPx(edge.source()[0], srcManEndpt),\n _this$manualEndptToPx2 = _slicedToArray(_this$manualEndptToPx, 2),\n x1 = _this$manualEndptToPx2[0],\n y1 = _this$manualEndptToPx2[1];\n var _this$manualEndptToPx3 = this.manualEndptToPx(edge.target()[0], tgtManEndpt),\n _this$manualEndptToPx4 = _slicedToArray(_this$manualEndptToPx3, 2),\n x2 = _this$manualEndptToPx4[0],\n y2 = _this$manualEndptToPx4[1];\n var endPts = {\n x1: x1,\n y1: y1,\n x2: x2,\n y2: y2\n };\n vectorNormInverse = recalcVectorNormInverse(x1, y1, x2, y2);\n midptPts = endPts;\n } else {\n warn(\"Edge \".concat(edge.id(), \" has edge-distances:endpoints specified without manual endpoints specified via source-endpoint and target-endpoint. Falling back on edge-distances:intersection (default).\"));\n midptPts = intersectionPts; // back to default\n }\n\n break;\n }\n }\n return {\n midptPts: midptPts,\n vectorNormInverse: vectorNormInverse\n };\n};\nBRp$c.findHaystackPoints = function (edges) {\n for (var i = 0; i < edges.length; i++) {\n var edge = edges[i];\n var _p = edge._private;\n var rs = _p.rscratch;\n if (!rs.haystack) {\n var angle = Math.random() * 2 * Math.PI;\n rs.source = {\n x: Math.cos(angle),\n y: Math.sin(angle)\n };\n angle = Math.random() * 2 * Math.PI;\n rs.target = {\n x: Math.cos(angle),\n y: Math.sin(angle)\n };\n }\n var src = _p.source;\n var tgt = _p.target;\n var srcPos = src.position();\n var tgtPos = tgt.position();\n var srcW = src.width();\n var tgtW = tgt.width();\n var srcH = src.height();\n var tgtH = tgt.height();\n var radius = edge.pstyle('haystack-radius').value;\n var halfRadius = radius / 2; // b/c have to half width/height\n\n rs.haystackPts = rs.allpts = [rs.source.x * srcW * halfRadius + srcPos.x, rs.source.y * srcH * halfRadius + srcPos.y, rs.target.x * tgtW * halfRadius + tgtPos.x, rs.target.y * tgtH * halfRadius + tgtPos.y];\n rs.midX = (rs.allpts[0] + rs.allpts[2]) / 2;\n rs.midY = (rs.allpts[1] + rs.allpts[3]) / 2;\n\n // always override as haystack in case set to different type previously\n rs.edgeType = 'haystack';\n rs.haystack = true;\n this.storeEdgeProjections(edge);\n this.calculateArrowAngles(edge);\n this.recalculateEdgeLabelProjections(edge);\n this.calculateLabelAngles(edge);\n }\n};\nBRp$c.findSegmentsPoints = function (edge, pairInfo) {\n // Segments (multiple straight lines)\n\n var rs = edge._private.rscratch;\n var segmentWs = edge.pstyle('segment-weights');\n var segmentDs = edge.pstyle('segment-distances');\n var segmentRs = edge.pstyle('segment-radii');\n var segmentTs = edge.pstyle('radius-type');\n var segmentsN = Math.min(segmentWs.pfValue.length, segmentDs.pfValue.length);\n var lastRadius = segmentRs.pfValue[segmentRs.pfValue.length - 1];\n var lastRadiusType = segmentTs.pfValue[segmentTs.pfValue.length - 1];\n rs.edgeType = 'segments';\n rs.segpts = [];\n rs.radii = [];\n rs.isArcRadius = [];\n for (var s = 0; s < segmentsN; s++) {\n var w = segmentWs.pfValue[s];\n var d = segmentDs.pfValue[s];\n var w1 = 1 - w;\n var w2 = w;\n var _this$findMidptPtsEtc = this.findMidptPtsEtc(edge, pairInfo),\n midptPts = _this$findMidptPtsEtc.midptPts,\n vectorNormInverse = _this$findMidptPtsEtc.vectorNormInverse;\n var adjustedMidpt = {\n x: midptPts.x1 * w1 + midptPts.x2 * w2,\n y: midptPts.y1 * w1 + midptPts.y2 * w2\n };\n rs.segpts.push(adjustedMidpt.x + vectorNormInverse.x * d, adjustedMidpt.y + vectorNormInverse.y * d);\n rs.radii.push(segmentRs.pfValue[s] !== undefined ? segmentRs.pfValue[s] : lastRadius);\n rs.isArcRadius.push((segmentTs.pfValue[s] !== undefined ? segmentTs.pfValue[s] : lastRadiusType) === 'arc-radius');\n }\n};\nBRp$c.findLoopPoints = function (edge, pairInfo, i, edgeIsUnbundled) {\n // Self-edge\n\n var rs = edge._private.rscratch;\n var dirCounts = pairInfo.dirCounts,\n srcPos = pairInfo.srcPos;\n var ctrlptDists = edge.pstyle('control-point-distances');\n var ctrlptDist = ctrlptDists ? ctrlptDists.pfValue[0] : undefined;\n var loopDir = edge.pstyle('loop-direction').pfValue;\n var loopSwp = edge.pstyle('loop-sweep').pfValue;\n var stepSize = edge.pstyle('control-point-step-size').pfValue;\n rs.edgeType = 'self';\n var j = i;\n var loopDist = stepSize;\n if (edgeIsUnbundled) {\n j = 0;\n loopDist = ctrlptDist;\n }\n var loopAngle = loopDir - Math.PI / 2;\n var outAngle = loopAngle - loopSwp / 2;\n var inAngle = loopAngle + loopSwp / 2;\n\n // increase by step size for overlapping loops, keyed on direction and sweep values\n var dc = String(loopDir + '_' + loopSwp);\n j = dirCounts[dc] === undefined ? dirCounts[dc] = 0 : ++dirCounts[dc];\n rs.ctrlpts = [srcPos.x + Math.cos(outAngle) * 1.4 * loopDist * (j / 3 + 1), srcPos.y + Math.sin(outAngle) * 1.4 * loopDist * (j / 3 + 1), srcPos.x + Math.cos(inAngle) * 1.4 * loopDist * (j / 3 + 1), srcPos.y + Math.sin(inAngle) * 1.4 * loopDist * (j / 3 + 1)];\n};\nBRp$c.findCompoundLoopPoints = function (edge, pairInfo, i, edgeIsUnbundled) {\n // Compound edge\n\n var rs = edge._private.rscratch;\n rs.edgeType = 'compound';\n var srcPos = pairInfo.srcPos,\n tgtPos = pairInfo.tgtPos,\n srcW = pairInfo.srcW,\n srcH = pairInfo.srcH,\n tgtW = pairInfo.tgtW,\n tgtH = pairInfo.tgtH;\n var stepSize = edge.pstyle('control-point-step-size').pfValue;\n var ctrlptDists = edge.pstyle('control-point-distances');\n var ctrlptDist = ctrlptDists ? ctrlptDists.pfValue[0] : undefined;\n var j = i;\n var loopDist = stepSize;\n if (edgeIsUnbundled) {\n j = 0;\n loopDist = ctrlptDist;\n }\n var loopW = 50;\n var loopaPos = {\n x: srcPos.x - srcW / 2,\n y: srcPos.y - srcH / 2\n };\n var loopbPos = {\n x: tgtPos.x - tgtW / 2,\n y: tgtPos.y - tgtH / 2\n };\n var loopPos = {\n x: Math.min(loopaPos.x, loopbPos.x),\n y: Math.min(loopaPos.y, loopbPos.y)\n };\n\n // avoids cases with impossible beziers\n var minCompoundStretch = 0.5;\n var compoundStretchA = Math.max(minCompoundStretch, Math.log(srcW * 0.01));\n var compoundStretchB = Math.max(minCompoundStretch, Math.log(tgtW * 0.01));\n rs.ctrlpts = [loopPos.x, loopPos.y - (1 + Math.pow(loopW, 1.12) / 100) * loopDist * (j / 3 + 1) * compoundStretchA, loopPos.x - (1 + Math.pow(loopW, 1.12) / 100) * loopDist * (j / 3 + 1) * compoundStretchB, loopPos.y];\n};\nBRp$c.findStraightEdgePoints = function (edge) {\n // Straight edge within bundle\n\n edge._private.rscratch.edgeType = 'straight';\n};\nBRp$c.findBezierPoints = function (edge, pairInfo, i, edgeIsUnbundled, edgeIsSwapped) {\n var rs = edge._private.rscratch;\n var stepSize = edge.pstyle('control-point-step-size').pfValue;\n var ctrlptDists = edge.pstyle('control-point-distances');\n var ctrlptWs = edge.pstyle('control-point-weights');\n var bezierN = ctrlptDists && ctrlptWs ? Math.min(ctrlptDists.value.length, ctrlptWs.value.length) : 1;\n var ctrlptDist = ctrlptDists ? ctrlptDists.pfValue[0] : undefined;\n var ctrlptWeight = ctrlptWs.value[0];\n\n // (Multi)bezier\n\n var multi = edgeIsUnbundled;\n rs.edgeType = multi ? 'multibezier' : 'bezier';\n rs.ctrlpts = [];\n for (var b = 0; b < bezierN; b++) {\n var normctrlptDist = (0.5 - pairInfo.eles.length / 2 + i) * stepSize * (edgeIsSwapped ? -1 : 1);\n var manctrlptDist = void 0;\n var sign = signum(normctrlptDist);\n if (multi) {\n ctrlptDist = ctrlptDists ? ctrlptDists.pfValue[b] : stepSize; // fall back on step size\n ctrlptWeight = ctrlptWs.value[b];\n }\n if (edgeIsUnbundled) {\n // multi or single unbundled\n manctrlptDist = ctrlptDist;\n } else {\n manctrlptDist = ctrlptDist !== undefined ? sign * ctrlptDist : undefined;\n }\n var distanceFromMidpoint = manctrlptDist !== undefined ? manctrlptDist : normctrlptDist;\n var w1 = 1 - ctrlptWeight;\n var w2 = ctrlptWeight;\n var _this$findMidptPtsEtc2 = this.findMidptPtsEtc(edge, pairInfo),\n midptPts = _this$findMidptPtsEtc2.midptPts,\n vectorNormInverse = _this$findMidptPtsEtc2.vectorNormInverse;\n var adjustedMidpt = {\n x: midptPts.x1 * w1 + midptPts.x2 * w2,\n y: midptPts.y1 * w1 + midptPts.y2 * w2\n };\n rs.ctrlpts.push(adjustedMidpt.x + vectorNormInverse.x * distanceFromMidpoint, adjustedMidpt.y + vectorNormInverse.y * distanceFromMidpoint);\n }\n};\nBRp$c.findTaxiPoints = function (edge, pairInfo) {\n // Taxicab geometry with two turns maximum\n\n var rs = edge._private.rscratch;\n rs.edgeType = 'segments';\n var VERTICAL = 'vertical';\n var HORIZONTAL = 'horizontal';\n var LEFTWARD = 'leftward';\n var RIGHTWARD = 'rightward';\n var DOWNWARD = 'downward';\n var UPWARD = 'upward';\n var AUTO = 'auto';\n var posPts = pairInfo.posPts,\n srcW = pairInfo.srcW,\n srcH = pairInfo.srcH,\n tgtW = pairInfo.tgtW,\n tgtH = pairInfo.tgtH;\n var edgeDistances = edge.pstyle('edge-distances').value;\n var dIncludesNodeBody = edgeDistances !== 'node-position';\n var taxiDir = edge.pstyle('taxi-direction').value;\n var rawTaxiDir = taxiDir; // unprocessed value\n var taxiTurn = edge.pstyle('taxi-turn');\n var turnIsPercent = taxiTurn.units === '%';\n var taxiTurnPfVal = taxiTurn.pfValue;\n var turnIsNegative = taxiTurnPfVal < 0; // i.e. from target side\n var minD = edge.pstyle('taxi-turn-min-distance').pfValue;\n var dw = dIncludesNodeBody ? (srcW + tgtW) / 2 : 0;\n var dh = dIncludesNodeBody ? (srcH + tgtH) / 2 : 0;\n var pdx = posPts.x2 - posPts.x1;\n var pdy = posPts.y2 - posPts.y1;\n\n // take away the effective w/h from the magnitude of the delta value\n var subDWH = function subDWH(dxy, dwh) {\n if (dxy > 0) {\n return Math.max(dxy - dwh, 0);\n } else {\n return Math.min(dxy + dwh, 0);\n }\n };\n var dx = subDWH(pdx, dw);\n var dy = subDWH(pdy, dh);\n var isExplicitDir = false;\n if (rawTaxiDir === AUTO) {\n taxiDir = Math.abs(dx) > Math.abs(dy) ? HORIZONTAL : VERTICAL;\n } else if (rawTaxiDir === UPWARD || rawTaxiDir === DOWNWARD) {\n taxiDir = VERTICAL;\n isExplicitDir = true;\n } else if (rawTaxiDir === LEFTWARD || rawTaxiDir === RIGHTWARD) {\n taxiDir = HORIZONTAL;\n isExplicitDir = true;\n }\n var isVert = taxiDir === VERTICAL;\n var l = isVert ? dy : dx;\n var pl = isVert ? pdy : pdx;\n var sgnL = signum(pl);\n var forcedDir = false;\n if (!(isExplicitDir && (turnIsPercent || turnIsNegative)) // forcing in this case would cause weird growing in the opposite direction\n && (rawTaxiDir === DOWNWARD && pl < 0 || rawTaxiDir === UPWARD && pl > 0 || rawTaxiDir === LEFTWARD && pl > 0 || rawTaxiDir === RIGHTWARD && pl < 0)) {\n sgnL *= -1;\n l = sgnL * Math.abs(l);\n forcedDir = true;\n }\n var d;\n if (turnIsPercent) {\n var p = taxiTurnPfVal < 0 ? 1 + taxiTurnPfVal : taxiTurnPfVal;\n d = p * l;\n } else {\n var k = taxiTurnPfVal < 0 ? l : 0;\n d = k + taxiTurnPfVal * sgnL;\n }\n var getIsTooClose = function getIsTooClose(d) {\n return Math.abs(d) < minD || Math.abs(d) >= Math.abs(l);\n };\n var isTooCloseSrc = getIsTooClose(d);\n var isTooCloseTgt = getIsTooClose(Math.abs(l) - Math.abs(d));\n var isTooClose = isTooCloseSrc || isTooCloseTgt;\n if (isTooClose && !forcedDir) {\n // non-ideal routing\n if (isVert) {\n // vertical fallbacks\n var lShapeInsideSrc = Math.abs(pl) <= srcH / 2;\n var lShapeInsideTgt = Math.abs(pdx) <= tgtW / 2;\n if (lShapeInsideSrc) {\n // horizontal Z-shape (direction not respected)\n var x = (posPts.x1 + posPts.x2) / 2;\n var y1 = posPts.y1,\n y2 = posPts.y2;\n rs.segpts = [x, y1, x, y2];\n } else if (lShapeInsideTgt) {\n // vertical Z-shape (distance not respected)\n var y = (posPts.y1 + posPts.y2) / 2;\n var x1 = posPts.x1,\n x2 = posPts.x2;\n rs.segpts = [x1, y, x2, y];\n } else {\n // L-shape fallback (turn distance not respected, but works well with tree siblings)\n rs.segpts = [posPts.x1, posPts.y2];\n }\n } else {\n // horizontal fallbacks\n var _lShapeInsideSrc = Math.abs(pl) <= srcW / 2;\n var _lShapeInsideTgt = Math.abs(pdy) <= tgtH / 2;\n if (_lShapeInsideSrc) {\n // vertical Z-shape (direction not respected)\n var _y = (posPts.y1 + posPts.y2) / 2;\n var _x = posPts.x1,\n _x2 = posPts.x2;\n rs.segpts = [_x, _y, _x2, _y];\n } else if (_lShapeInsideTgt) {\n // horizontal Z-shape (turn distance not respected)\n var _x3 = (posPts.x1 + posPts.x2) / 2;\n var _y2 = posPts.y1,\n _y3 = posPts.y2;\n rs.segpts = [_x3, _y2, _x3, _y3];\n } else {\n // L-shape (turn distance not respected, but works well for tree siblings)\n rs.segpts = [posPts.x2, posPts.y1];\n }\n }\n } else {\n // ideal routing\n if (isVert) {\n var _y4 = posPts.y1 + d + (dIncludesNodeBody ? srcH / 2 * sgnL : 0);\n var _x4 = posPts.x1,\n _x5 = posPts.x2;\n rs.segpts = [_x4, _y4, _x5, _y4];\n } else {\n // horizontal\n var _x6 = posPts.x1 + d + (dIncludesNodeBody ? srcW / 2 * sgnL : 0);\n var _y5 = posPts.y1,\n _y6 = posPts.y2;\n rs.segpts = [_x6, _y5, _x6, _y6];\n }\n }\n if (rs.isRound) {\n var radius = edge.pstyle('taxi-radius').value;\n var isArcRadius = edge.pstyle('radius-type').value[0] === 'arc-radius';\n rs.radii = new Array(rs.segpts.length / 2).fill(radius);\n rs.isArcRadius = new Array(rs.segpts.length / 2).fill(isArcRadius);\n }\n};\nBRp$c.tryToCorrectInvalidPoints = function (edge, pairInfo) {\n var rs = edge._private.rscratch;\n\n // can only correct beziers for now...\n if (rs.edgeType === 'bezier') {\n var srcPos = pairInfo.srcPos,\n tgtPos = pairInfo.tgtPos,\n srcW = pairInfo.srcW,\n srcH = pairInfo.srcH,\n tgtW = pairInfo.tgtW,\n tgtH = pairInfo.tgtH,\n srcShape = pairInfo.srcShape,\n tgtShape = pairInfo.tgtShape,\n srcCornerRadius = pairInfo.srcCornerRadius,\n tgtCornerRadius = pairInfo.tgtCornerRadius,\n srcRs = pairInfo.srcRs,\n tgtRs = pairInfo.tgtRs;\n var badStart = !number$1(rs.startX) || !number$1(rs.startY);\n var badAStart = !number$1(rs.arrowStartX) || !number$1(rs.arrowStartY);\n var badEnd = !number$1(rs.endX) || !number$1(rs.endY);\n var badAEnd = !number$1(rs.arrowEndX) || !number$1(rs.arrowEndY);\n var minCpADistFactor = 3;\n var arrowW = this.getArrowWidth(edge.pstyle('width').pfValue, edge.pstyle('arrow-scale').value) * this.arrowShapeWidth;\n var minCpADist = minCpADistFactor * arrowW;\n var startACpDist = dist({\n x: rs.ctrlpts[0],\n y: rs.ctrlpts[1]\n }, {\n x: rs.startX,\n y: rs.startY\n });\n var closeStartACp = startACpDist < minCpADist;\n var endACpDist = dist({\n x: rs.ctrlpts[0],\n y: rs.ctrlpts[1]\n }, {\n x: rs.endX,\n y: rs.endY\n });\n var closeEndACp = endACpDist < minCpADist;\n var overlapping = false;\n if (badStart || badAStart || closeStartACp) {\n overlapping = true;\n\n // project control point along line from src centre to outside the src shape\n // (otherwise intersection will yield nothing)\n var cpD = {\n // delta\n x: rs.ctrlpts[0] - srcPos.x,\n y: rs.ctrlpts[1] - srcPos.y\n };\n var cpL = Math.sqrt(cpD.x * cpD.x + cpD.y * cpD.y); // length of line\n var cpM = {\n // normalised delta\n x: cpD.x / cpL,\n y: cpD.y / cpL\n };\n var radius = Math.max(srcW, srcH);\n var cpProj = {\n // *2 radius guarantees outside shape\n x: rs.ctrlpts[0] + cpM.x * 2 * radius,\n y: rs.ctrlpts[1] + cpM.y * 2 * radius\n };\n var srcCtrlPtIntn = srcShape.intersectLine(srcPos.x, srcPos.y, srcW, srcH, cpProj.x, cpProj.y, 0, srcCornerRadius, srcRs);\n if (closeStartACp) {\n rs.ctrlpts[0] = rs.ctrlpts[0] + cpM.x * (minCpADist - startACpDist);\n rs.ctrlpts[1] = rs.ctrlpts[1] + cpM.y * (minCpADist - startACpDist);\n } else {\n rs.ctrlpts[0] = srcCtrlPtIntn[0] + cpM.x * minCpADist;\n rs.ctrlpts[1] = srcCtrlPtIntn[1] + cpM.y * minCpADist;\n }\n }\n if (badEnd || badAEnd || closeEndACp) {\n overlapping = true;\n\n // project control point along line from tgt centre to outside the tgt shape\n // (otherwise intersection will yield nothing)\n var _cpD = {\n // delta\n x: rs.ctrlpts[0] - tgtPos.x,\n y: rs.ctrlpts[1] - tgtPos.y\n };\n var _cpL = Math.sqrt(_cpD.x * _cpD.x + _cpD.y * _cpD.y); // length of line\n var _cpM = {\n // normalised delta\n x: _cpD.x / _cpL,\n y: _cpD.y / _cpL\n };\n var _radius = Math.max(srcW, srcH);\n var _cpProj = {\n // *2 radius guarantees outside shape\n x: rs.ctrlpts[0] + _cpM.x * 2 * _radius,\n y: rs.ctrlpts[1] + _cpM.y * 2 * _radius\n };\n var tgtCtrlPtIntn = tgtShape.intersectLine(tgtPos.x, tgtPos.y, tgtW, tgtH, _cpProj.x, _cpProj.y, 0, tgtCornerRadius, tgtRs);\n if (closeEndACp) {\n rs.ctrlpts[0] = rs.ctrlpts[0] + _cpM.x * (minCpADist - endACpDist);\n rs.ctrlpts[1] = rs.ctrlpts[1] + _cpM.y * (minCpADist - endACpDist);\n } else {\n rs.ctrlpts[0] = tgtCtrlPtIntn[0] + _cpM.x * minCpADist;\n rs.ctrlpts[1] = tgtCtrlPtIntn[1] + _cpM.y * minCpADist;\n }\n }\n if (overlapping) {\n // recalc endpts\n this.findEndpoints(edge);\n }\n }\n};\nBRp$c.storeAllpts = function (edge) {\n var rs = edge._private.rscratch;\n if (rs.edgeType === 'multibezier' || rs.edgeType === 'bezier' || rs.edgeType === 'self' || rs.edgeType === 'compound') {\n rs.allpts = [];\n rs.allpts.push(rs.startX, rs.startY);\n for (var b = 0; b + 1 < rs.ctrlpts.length; b += 2) {\n // ctrl pt itself\n rs.allpts.push(rs.ctrlpts[b], rs.ctrlpts[b + 1]);\n\n // the midpt between ctrlpts as intermediate destination pts\n if (b + 3 < rs.ctrlpts.length) {\n rs.allpts.push((rs.ctrlpts[b] + rs.ctrlpts[b + 2]) / 2, (rs.ctrlpts[b + 1] + rs.ctrlpts[b + 3]) / 2);\n }\n }\n rs.allpts.push(rs.endX, rs.endY);\n var m, mt;\n if (rs.ctrlpts.length / 2 % 2 === 0) {\n m = rs.allpts.length / 2 - 1;\n rs.midX = rs.allpts[m];\n rs.midY = rs.allpts[m + 1];\n } else {\n m = rs.allpts.length / 2 - 3;\n mt = 0.5;\n rs.midX = qbezierAt(rs.allpts[m], rs.allpts[m + 2], rs.allpts[m + 4], mt);\n rs.midY = qbezierAt(rs.allpts[m + 1], rs.allpts[m + 3], rs.allpts[m + 5], mt);\n }\n } else if (rs.edgeType === 'straight') {\n // need to calc these after endpts\n rs.allpts = [rs.startX, rs.startY, rs.endX, rs.endY];\n\n // default midpt for labels etc\n rs.midX = (rs.startX + rs.endX + rs.arrowStartX + rs.arrowEndX) / 4;\n rs.midY = (rs.startY + rs.endY + rs.arrowStartY + rs.arrowEndY) / 4;\n } else if (rs.edgeType === 'segments') {\n rs.allpts = [];\n rs.allpts.push(rs.startX, rs.startY);\n rs.allpts.push.apply(rs.allpts, rs.segpts);\n rs.allpts.push(rs.endX, rs.endY);\n if (rs.isRound) {\n rs.roundCorners = [];\n for (var i = 2; i + 3 < rs.allpts.length; i += 2) {\n var radius = rs.radii[i / 2 - 1];\n var isArcRadius = rs.isArcRadius[i / 2 - 1];\n rs.roundCorners.push(getRoundCorner({\n x: rs.allpts[i - 2],\n y: rs.allpts[i - 1]\n }, {\n x: rs.allpts[i],\n y: rs.allpts[i + 1],\n radius: radius\n }, {\n x: rs.allpts[i + 2],\n y: rs.allpts[i + 3]\n }, radius, isArcRadius));\n }\n }\n if (rs.segpts.length % 4 === 0) {\n var i2 = rs.segpts.length / 2;\n var i1 = i2 - 2;\n rs.midX = (rs.segpts[i1] + rs.segpts[i2]) / 2;\n rs.midY = (rs.segpts[i1 + 1] + rs.segpts[i2 + 1]) / 2;\n } else {\n var _i = rs.segpts.length / 2 - 1;\n if (!rs.isRound) {\n rs.midX = rs.segpts[_i];\n rs.midY = rs.segpts[_i + 1];\n } else {\n var point = {\n x: rs.segpts[_i],\n y: rs.segpts[_i + 1]\n };\n var corner = rs.roundCorners[_i / 2];\n var v = [point.x - corner.cx, point.y - corner.cy];\n var factor = corner.radius / Math.sqrt(Math.pow(v[0], 2) + Math.pow(v[1], 2));\n v = v.map(function (c) {\n return c * factor;\n });\n rs.midX = corner.cx + v[0];\n rs.midY = corner.cy + v[1];\n rs.midVector = v;\n }\n }\n }\n};\nBRp$c.checkForInvalidEdgeWarning = function (edge) {\n var rs = edge[0]._private.rscratch;\n if (rs.nodesOverlap || number$1(rs.startX) && number$1(rs.startY) && number$1(rs.endX) && number$1(rs.endY)) {\n rs.loggedErr = false;\n } else {\n if (!rs.loggedErr) {\n rs.loggedErr = true;\n warn('Edge `' + edge.id() + '` has invalid endpoints and so it is impossible to draw. Adjust your edge style (e.g. control points) accordingly or use an alternative edge type. This is expected behaviour when the source node and the target node overlap.');\n }\n }\n};\nBRp$c.findEdgeControlPoints = function (edges) {\n var _this = this;\n if (!edges || edges.length === 0) {\n return;\n }\n var r = this;\n var cy = r.cy;\n var hasCompounds = cy.hasCompoundNodes();\n var hashTable = {\n map: new Map$2(),\n get: function get(pairId) {\n var map2 = this.map.get(pairId[0]);\n if (map2 != null) {\n return map2.get(pairId[1]);\n } else {\n return null;\n }\n },\n set: function set(pairId, val) {\n var map2 = this.map.get(pairId[0]);\n if (map2 == null) {\n map2 = new Map$2();\n this.map.set(pairId[0], map2);\n }\n map2.set(pairId[1], val);\n }\n };\n var pairIds = [];\n var haystackEdges = [];\n\n // create a table of edge (src, tgt) => list of edges between them\n for (var i = 0; i < edges.length; i++) {\n var edge = edges[i];\n var _p = edge._private;\n var curveStyle = edge.pstyle('curve-style').value;\n\n // ignore edges who are not to be displayed\n // they shouldn't take up space\n if (edge.removed() || !edge.takesUpSpace()) {\n continue;\n }\n if (curveStyle === 'haystack') {\n haystackEdges.push(edge);\n continue;\n }\n var edgeIsUnbundled = curveStyle === 'unbundled-bezier' || curveStyle.endsWith('segments') || curveStyle === 'straight' || curveStyle === 'straight-triangle' || curveStyle.endsWith('taxi');\n var edgeIsBezier = curveStyle === 'unbundled-bezier' || curveStyle === 'bezier';\n var src = _p.source;\n var tgt = _p.target;\n var srcIndex = src.poolIndex();\n var tgtIndex = tgt.poolIndex();\n var pairId = [srcIndex, tgtIndex].sort();\n var tableEntry = hashTable.get(pairId);\n if (tableEntry == null) {\n tableEntry = {\n eles: []\n };\n hashTable.set(pairId, tableEntry);\n pairIds.push(pairId);\n }\n tableEntry.eles.push(edge);\n if (edgeIsUnbundled) {\n tableEntry.hasUnbundled = true;\n }\n if (edgeIsBezier) {\n tableEntry.hasBezier = true;\n }\n }\n\n // for each pair (src, tgt), create the ctrl pts\n // Nested for loop is OK; total number of iterations for both loops = edgeCount\n var _loop = function _loop(p) {\n var pairId = pairIds[p];\n var pairInfo = hashTable.get(pairId);\n var swappedpairInfo = void 0;\n if (!pairInfo.hasUnbundled) {\n var pllEdges = pairInfo.eles[0].parallelEdges().filter(function (e) {\n return e.isBundledBezier();\n });\n clearArray(pairInfo.eles);\n pllEdges.forEach(function (edge) {\n return pairInfo.eles.push(edge);\n });\n\n // for each pair id, the edges should be sorted by index\n pairInfo.eles.sort(function (edge1, edge2) {\n return edge1.poolIndex() - edge2.poolIndex();\n });\n }\n var firstEdge = pairInfo.eles[0];\n var src = firstEdge.source();\n var tgt = firstEdge.target();\n\n // make sure src/tgt distinction is consistent w.r.t. pairId\n if (src.poolIndex() > tgt.poolIndex()) {\n var temp = src;\n src = tgt;\n tgt = temp;\n }\n var srcPos = pairInfo.srcPos = src.position();\n var tgtPos = pairInfo.tgtPos = tgt.position();\n var srcW = pairInfo.srcW = src.outerWidth();\n var srcH = pairInfo.srcH = src.outerHeight();\n var tgtW = pairInfo.tgtW = tgt.outerWidth();\n var tgtH = pairInfo.tgtH = tgt.outerHeight();\n var srcShape = pairInfo.srcShape = r.nodeShapes[_this.getNodeShape(src)];\n var tgtShape = pairInfo.tgtShape = r.nodeShapes[_this.getNodeShape(tgt)];\n var srcCornerRadius = pairInfo.srcCornerRadius = src.pstyle('corner-radius').value === 'auto' ? 'auto' : src.pstyle('corner-radius').pfValue;\n var tgtCornerRadius = pairInfo.tgtCornerRadius = tgt.pstyle('corner-radius').value === 'auto' ? 'auto' : tgt.pstyle('corner-radius').pfValue;\n var tgtRs = pairInfo.tgtRs = tgt._private.rscratch;\n var srcRs = pairInfo.srcRs = src._private.rscratch;\n pairInfo.dirCounts = {\n 'north': 0,\n 'west': 0,\n 'south': 0,\n 'east': 0,\n 'northwest': 0,\n 'southwest': 0,\n 'northeast': 0,\n 'southeast': 0\n };\n for (var _i2 = 0; _i2 < pairInfo.eles.length; _i2++) {\n var _edge = pairInfo.eles[_i2];\n var rs = _edge[0]._private.rscratch;\n var _curveStyle = _edge.pstyle('curve-style').value;\n var _edgeIsUnbundled = _curveStyle === 'unbundled-bezier' || _curveStyle.endsWith('segments') || _curveStyle.endsWith('taxi');\n\n // whether the normalised pair order is the reverse of the edge's src-tgt order\n var edgeIsSwapped = !src.same(_edge.source());\n if (!pairInfo.calculatedIntersection && src !== tgt && (pairInfo.hasBezier || pairInfo.hasUnbundled)) {\n pairInfo.calculatedIntersection = true;\n\n // pt outside src shape to calc distance/displacement from src to tgt\n var srcOutside = srcShape.intersectLine(srcPos.x, srcPos.y, srcW, srcH, tgtPos.x, tgtPos.y, 0, srcCornerRadius, srcRs);\n var srcIntn = pairInfo.srcIntn = srcOutside;\n\n // pt outside tgt shape to calc distance/displacement from src to tgt\n var tgtOutside = tgtShape.intersectLine(tgtPos.x, tgtPos.y, tgtW, tgtH, srcPos.x, srcPos.y, 0, tgtCornerRadius, tgtRs);\n var tgtIntn = pairInfo.tgtIntn = tgtOutside;\n var intersectionPts = pairInfo.intersectionPts = {\n x1: srcOutside[0],\n x2: tgtOutside[0],\n y1: srcOutside[1],\n y2: tgtOutside[1]\n };\n var posPts = pairInfo.posPts = {\n x1: srcPos.x,\n x2: tgtPos.x,\n y1: srcPos.y,\n y2: tgtPos.y\n };\n var dy = tgtOutside[1] - srcOutside[1];\n var dx = tgtOutside[0] - srcOutside[0];\n var l = Math.sqrt(dx * dx + dy * dy);\n var vector = pairInfo.vector = {\n x: dx,\n y: dy\n };\n var vectorNorm = pairInfo.vectorNorm = {\n x: vector.x / l,\n y: vector.y / l\n };\n var vectorNormInverse = {\n x: -vectorNorm.y,\n y: vectorNorm.x\n };\n\n // if node shapes overlap, then no ctrl pts to draw\n pairInfo.nodesOverlap = !number$1(l) || tgtShape.checkPoint(srcOutside[0], srcOutside[1], 0, tgtW, tgtH, tgtPos.x, tgtPos.y, tgtCornerRadius, tgtRs) || srcShape.checkPoint(tgtOutside[0], tgtOutside[1], 0, srcW, srcH, srcPos.x, srcPos.y, srcCornerRadius, srcRs);\n pairInfo.vectorNormInverse = vectorNormInverse;\n swappedpairInfo = {\n nodesOverlap: pairInfo.nodesOverlap,\n dirCounts: pairInfo.dirCounts,\n calculatedIntersection: true,\n hasBezier: pairInfo.hasBezier,\n hasUnbundled: pairInfo.hasUnbundled,\n eles: pairInfo.eles,\n srcPos: tgtPos,\n tgtPos: srcPos,\n srcW: tgtW,\n srcH: tgtH,\n tgtW: srcW,\n tgtH: srcH,\n srcIntn: tgtIntn,\n tgtIntn: srcIntn,\n srcShape: tgtShape,\n tgtShape: srcShape,\n posPts: {\n x1: posPts.x2,\n y1: posPts.y2,\n x2: posPts.x1,\n y2: posPts.y1\n },\n intersectionPts: {\n x1: intersectionPts.x2,\n y1: intersectionPts.y2,\n x2: intersectionPts.x1,\n y2: intersectionPts.y1\n },\n vector: {\n x: -vector.x,\n y: -vector.y\n },\n vectorNorm: {\n x: -vectorNorm.x,\n y: -vectorNorm.y\n },\n vectorNormInverse: {\n x: -vectorNormInverse.x,\n y: -vectorNormInverse.y\n }\n };\n }\n var passedPairInfo = edgeIsSwapped ? swappedpairInfo : pairInfo;\n rs.nodesOverlap = passedPairInfo.nodesOverlap;\n rs.srcIntn = passedPairInfo.srcIntn;\n rs.tgtIntn = passedPairInfo.tgtIntn;\n rs.isRound = _curveStyle.startsWith('round');\n if (hasCompounds && (src.isParent() || src.isChild() || tgt.isParent() || tgt.isChild()) && (src.parents().anySame(tgt) || tgt.parents().anySame(src) || src.same(tgt) && src.isParent())) {\n _this.findCompoundLoopPoints(_edge, passedPairInfo, _i2, _edgeIsUnbundled);\n } else if (src === tgt) {\n _this.findLoopPoints(_edge, passedPairInfo, _i2, _edgeIsUnbundled);\n } else if (_curveStyle.endsWith('segments')) {\n _this.findSegmentsPoints(_edge, passedPairInfo);\n } else if (_curveStyle.endsWith('taxi')) {\n _this.findTaxiPoints(_edge, passedPairInfo);\n } else if (_curveStyle === 'straight' || !_edgeIsUnbundled && pairInfo.eles.length % 2 === 1 && _i2 === Math.floor(pairInfo.eles.length / 2)) {\n _this.findStraightEdgePoints(_edge);\n } else {\n _this.findBezierPoints(_edge, passedPairInfo, _i2, _edgeIsUnbundled, edgeIsSwapped);\n }\n _this.findEndpoints(_edge);\n _this.tryToCorrectInvalidPoints(_edge, passedPairInfo);\n _this.checkForInvalidEdgeWarning(_edge);\n _this.storeAllpts(_edge);\n _this.storeEdgeProjections(_edge);\n _this.calculateArrowAngles(_edge);\n _this.recalculateEdgeLabelProjections(_edge);\n _this.calculateLabelAngles(_edge);\n } // for pair edges\n };\n for (var p = 0; p < pairIds.length; p++) {\n _loop(p);\n } // for pair ids\n\n // haystacks avoid the expense of pairInfo stuff (intersections etc.)\n this.findHaystackPoints(haystackEdges);\n};\nfunction getPts(pts) {\n var retPts = [];\n if (pts == null) {\n return;\n }\n for (var i = 0; i < pts.length; i += 2) {\n var x = pts[i];\n var y = pts[i + 1];\n retPts.push({\n x: x,\n y: y\n });\n }\n return retPts;\n}\nBRp$c.getSegmentPoints = function (edge) {\n var rs = edge[0]._private.rscratch;\n var type = rs.edgeType;\n if (type === 'segments') {\n this.recalculateRenderedStyle(edge);\n return getPts(rs.segpts);\n }\n};\nBRp$c.getControlPoints = function (edge) {\n var rs = edge[0]._private.rscratch;\n var type = rs.edgeType;\n if (type === 'bezier' || type === 'multibezier' || type === 'self' || type === 'compound') {\n this.recalculateRenderedStyle(edge);\n return getPts(rs.ctrlpts);\n }\n};\nBRp$c.getEdgeMidpoint = function (edge) {\n var rs = edge[0]._private.rscratch;\n this.recalculateRenderedStyle(edge);\n return {\n x: rs.midX,\n y: rs.midY\n };\n};\n\nvar BRp$b = {};\nBRp$b.manualEndptToPx = function (node, prop) {\n var r = this;\n var npos = node.position();\n var w = node.outerWidth();\n var h = node.outerHeight();\n var rs = node._private.rscratch;\n if (prop.value.length === 2) {\n var p = [prop.pfValue[0], prop.pfValue[1]];\n if (prop.units[0] === '%') {\n p[0] = p[0] * w;\n }\n if (prop.units[1] === '%') {\n p[1] = p[1] * h;\n }\n p[0] += npos.x;\n p[1] += npos.y;\n return p;\n } else {\n var angle = prop.pfValue[0];\n angle = -Math.PI / 2 + angle; // start at 12 o'clock\n\n var l = 2 * Math.max(w, h);\n var _p = [npos.x + Math.cos(angle) * l, npos.y + Math.sin(angle) * l];\n return r.nodeShapes[this.getNodeShape(node)].intersectLine(npos.x, npos.y, w, h, _p[0], _p[1], 0, node.pstyle('corner-radius').value === 'auto' ? 'auto' : node.pstyle('corner-radius').pfValue, rs);\n }\n};\nBRp$b.findEndpoints = function (edge) {\n var r = this;\n var intersect;\n var source = edge.source()[0];\n var target = edge.target()[0];\n var srcPos = source.position();\n var tgtPos = target.position();\n var tgtArShape = edge.pstyle('target-arrow-shape').value;\n var srcArShape = edge.pstyle('source-arrow-shape').value;\n var tgtDist = edge.pstyle('target-distance-from-node').pfValue;\n var srcDist = edge.pstyle('source-distance-from-node').pfValue;\n var srcRs = source._private.rscratch;\n var tgtRs = target._private.rscratch;\n var curveStyle = edge.pstyle('curve-style').value;\n var rs = edge._private.rscratch;\n var et = rs.edgeType;\n var taxi = curveStyle === 'taxi';\n var self = et === 'self' || et === 'compound';\n var bezier = et === 'bezier' || et === 'multibezier' || self;\n var multi = et !== 'bezier';\n var lines = et === 'straight' || et === 'segments';\n var segments = et === 'segments';\n var hasEndpts = bezier || multi || lines;\n var overrideEndpts = self || taxi;\n var srcManEndpt = edge.pstyle('source-endpoint');\n var srcManEndptVal = overrideEndpts ? 'outside-to-node' : srcManEndpt.value;\n var srcCornerRadius = source.pstyle('corner-radius').value === 'auto' ? 'auto' : source.pstyle('corner-radius').pfValue;\n var tgtManEndpt = edge.pstyle('target-endpoint');\n var tgtManEndptVal = overrideEndpts ? 'outside-to-node' : tgtManEndpt.value;\n var tgtCornerRadius = target.pstyle('corner-radius').value === 'auto' ? 'auto' : target.pstyle('corner-radius').pfValue;\n rs.srcManEndpt = srcManEndpt;\n rs.tgtManEndpt = tgtManEndpt;\n var p1; // last known point of edge on target side\n var p2; // last known point of edge on source side\n\n var p1_i; // point to intersect with target shape\n var p2_i; // point to intersect with source shape\n\n if (bezier) {\n var cpStart = [rs.ctrlpts[0], rs.ctrlpts[1]];\n var cpEnd = multi ? [rs.ctrlpts[rs.ctrlpts.length - 2], rs.ctrlpts[rs.ctrlpts.length - 1]] : cpStart;\n p1 = cpEnd;\n p2 = cpStart;\n } else if (lines) {\n var srcArrowFromPt = !segments ? [tgtPos.x, tgtPos.y] : rs.segpts.slice(0, 2);\n var tgtArrowFromPt = !segments ? [srcPos.x, srcPos.y] : rs.segpts.slice(rs.segpts.length - 2);\n p1 = tgtArrowFromPt;\n p2 = srcArrowFromPt;\n }\n if (tgtManEndptVal === 'inside-to-node') {\n intersect = [tgtPos.x, tgtPos.y];\n } else if (tgtManEndpt.units) {\n intersect = this.manualEndptToPx(target, tgtManEndpt);\n } else if (tgtManEndptVal === 'outside-to-line') {\n intersect = rs.tgtIntn; // use cached value from ctrlpt calc\n } else {\n if (tgtManEndptVal === 'outside-to-node' || tgtManEndptVal === 'outside-to-node-or-label') {\n p1_i = p1;\n } else if (tgtManEndptVal === 'outside-to-line' || tgtManEndptVal === 'outside-to-line-or-label') {\n p1_i = [srcPos.x, srcPos.y];\n }\n intersect = r.nodeShapes[this.getNodeShape(target)].intersectLine(tgtPos.x, tgtPos.y, target.outerWidth(), target.outerHeight(), p1_i[0], p1_i[1], 0, tgtCornerRadius, tgtRs);\n if (tgtManEndptVal === 'outside-to-node-or-label' || tgtManEndptVal === 'outside-to-line-or-label') {\n var trs = target._private.rscratch;\n var lw = trs.labelWidth;\n var lh = trs.labelHeight;\n var lx = trs.labelX;\n var ly = trs.labelY;\n var lw2 = lw / 2;\n var lh2 = lh / 2;\n var va = target.pstyle('text-valign').value;\n if (va === 'top') {\n ly -= lh2;\n } else if (va === 'bottom') {\n ly += lh2;\n }\n var ha = target.pstyle('text-halign').value;\n if (ha === 'left') {\n lx -= lw2;\n } else if (ha === 'right') {\n lx += lw2;\n }\n var labelIntersect = polygonIntersectLine(p1_i[0], p1_i[1], [lx - lw2, ly - lh2, lx + lw2, ly - lh2, lx + lw2, ly + lh2, lx - lw2, ly + lh2], tgtPos.x, tgtPos.y);\n if (labelIntersect.length > 0) {\n var refPt = srcPos;\n var intSqdist = sqdist(refPt, array2point(intersect));\n var labIntSqdist = sqdist(refPt, array2point(labelIntersect));\n var minSqDist = intSqdist;\n if (labIntSqdist < intSqdist) {\n intersect = labelIntersect;\n minSqDist = labIntSqdist;\n }\n if (labelIntersect.length > 2) {\n var labInt2SqDist = sqdist(refPt, {\n x: labelIntersect[2],\n y: labelIntersect[3]\n });\n if (labInt2SqDist < minSqDist) {\n intersect = [labelIntersect[2], labelIntersect[3]];\n }\n }\n }\n }\n }\n var arrowEnd = shortenIntersection(intersect, p1, r.arrowShapes[tgtArShape].spacing(edge) + tgtDist);\n var edgeEnd = shortenIntersection(intersect, p1, r.arrowShapes[tgtArShape].gap(edge) + tgtDist);\n rs.endX = edgeEnd[0];\n rs.endY = edgeEnd[1];\n rs.arrowEndX = arrowEnd[0];\n rs.arrowEndY = arrowEnd[1];\n if (srcManEndptVal === 'inside-to-node') {\n intersect = [srcPos.x, srcPos.y];\n } else if (srcManEndpt.units) {\n intersect = this.manualEndptToPx(source, srcManEndpt);\n } else if (srcManEndptVal === 'outside-to-line') {\n intersect = rs.srcIntn; // use cached value from ctrlpt calc\n } else {\n if (srcManEndptVal === 'outside-to-node' || srcManEndptVal === 'outside-to-node-or-label') {\n p2_i = p2;\n } else if (srcManEndptVal === 'outside-to-line' || srcManEndptVal === 'outside-to-line-or-label') {\n p2_i = [tgtPos.x, tgtPos.y];\n }\n intersect = r.nodeShapes[this.getNodeShape(source)].intersectLine(srcPos.x, srcPos.y, source.outerWidth(), source.outerHeight(), p2_i[0], p2_i[1], 0, srcCornerRadius, srcRs);\n if (srcManEndptVal === 'outside-to-node-or-label' || srcManEndptVal === 'outside-to-line-or-label') {\n var srs = source._private.rscratch;\n var _lw = srs.labelWidth;\n var _lh = srs.labelHeight;\n var _lx = srs.labelX;\n var _ly = srs.labelY;\n var _lw2 = _lw / 2;\n var _lh2 = _lh / 2;\n var _va = source.pstyle('text-valign').value;\n if (_va === 'top') {\n _ly -= _lh2;\n } else if (_va === 'bottom') {\n _ly += _lh2;\n }\n var _ha = source.pstyle('text-halign').value;\n if (_ha === 'left') {\n _lx -= _lw2;\n } else if (_ha === 'right') {\n _lx += _lw2;\n }\n var _labelIntersect = polygonIntersectLine(p2_i[0], p2_i[1], [_lx - _lw2, _ly - _lh2, _lx + _lw2, _ly - _lh2, _lx + _lw2, _ly + _lh2, _lx - _lw2, _ly + _lh2], srcPos.x, srcPos.y);\n if (_labelIntersect.length > 0) {\n var _refPt = tgtPos;\n var _intSqdist = sqdist(_refPt, array2point(intersect));\n var _labIntSqdist = sqdist(_refPt, array2point(_labelIntersect));\n var _minSqDist = _intSqdist;\n if (_labIntSqdist < _intSqdist) {\n intersect = [_labelIntersect[0], _labelIntersect[1]];\n _minSqDist = _labIntSqdist;\n }\n if (_labelIntersect.length > 2) {\n var _labInt2SqDist = sqdist(_refPt, {\n x: _labelIntersect[2],\n y: _labelIntersect[3]\n });\n if (_labInt2SqDist < _minSqDist) {\n intersect = [_labelIntersect[2], _labelIntersect[3]];\n }\n }\n }\n }\n }\n var arrowStart = shortenIntersection(intersect, p2, r.arrowShapes[srcArShape].spacing(edge) + srcDist);\n var edgeStart = shortenIntersection(intersect, p2, r.arrowShapes[srcArShape].gap(edge) + srcDist);\n rs.startX = edgeStart[0];\n rs.startY = edgeStart[1];\n rs.arrowStartX = arrowStart[0];\n rs.arrowStartY = arrowStart[1];\n if (hasEndpts) {\n if (!number$1(rs.startX) || !number$1(rs.startY) || !number$1(rs.endX) || !number$1(rs.endY)) {\n rs.badLine = true;\n } else {\n rs.badLine = false;\n }\n }\n};\nBRp$b.getSourceEndpoint = function (edge) {\n var rs = edge[0]._private.rscratch;\n this.recalculateRenderedStyle(edge);\n switch (rs.edgeType) {\n case 'haystack':\n return {\n x: rs.haystackPts[0],\n y: rs.haystackPts[1]\n };\n default:\n return {\n x: rs.arrowStartX,\n y: rs.arrowStartY\n };\n }\n};\nBRp$b.getTargetEndpoint = function (edge) {\n var rs = edge[0]._private.rscratch;\n this.recalculateRenderedStyle(edge);\n switch (rs.edgeType) {\n case 'haystack':\n return {\n x: rs.haystackPts[2],\n y: rs.haystackPts[3]\n };\n default:\n return {\n x: rs.arrowEndX,\n y: rs.arrowEndY\n };\n }\n};\n\nvar BRp$a = {};\nfunction pushBezierPts(r, edge, pts) {\n var qbezierAt$1 = function qbezierAt$1(p1, p2, p3, t) {\n return qbezierAt(p1, p2, p3, t);\n };\n var _p = edge._private;\n var bpts = _p.rstyle.bezierPts;\n for (var i = 0; i < r.bezierProjPcts.length; i++) {\n var p = r.bezierProjPcts[i];\n bpts.push({\n x: qbezierAt$1(pts[0], pts[2], pts[4], p),\n y: qbezierAt$1(pts[1], pts[3], pts[5], p)\n });\n }\n}\nBRp$a.storeEdgeProjections = function (edge) {\n var _p = edge._private;\n var rs = _p.rscratch;\n var et = rs.edgeType;\n\n // clear the cached points state\n _p.rstyle.bezierPts = null;\n _p.rstyle.linePts = null;\n _p.rstyle.haystackPts = null;\n if (et === 'multibezier' || et === 'bezier' || et === 'self' || et === 'compound') {\n _p.rstyle.bezierPts = [];\n for (var i = 0; i + 5 < rs.allpts.length; i += 4) {\n pushBezierPts(this, edge, rs.allpts.slice(i, i + 6));\n }\n } else if (et === 'segments') {\n var lpts = _p.rstyle.linePts = [];\n for (var i = 0; i + 1 < rs.allpts.length; i += 2) {\n lpts.push({\n x: rs.allpts[i],\n y: rs.allpts[i + 1]\n });\n }\n } else if (et === 'haystack') {\n var hpts = rs.haystackPts;\n _p.rstyle.haystackPts = [{\n x: hpts[0],\n y: hpts[1]\n }, {\n x: hpts[2],\n y: hpts[3]\n }];\n }\n _p.rstyle.arrowWidth = this.getArrowWidth(edge.pstyle('width').pfValue, edge.pstyle('arrow-scale').value) * this.arrowShapeWidth;\n};\nBRp$a.recalculateEdgeProjections = function (edges) {\n this.findEdgeControlPoints(edges);\n};\n\nvar BRp$9 = {};\nBRp$9.recalculateNodeLabelProjection = function (node) {\n var content = node.pstyle('label').strValue;\n if (emptyString(content)) {\n return;\n }\n var textX, textY;\n var _p = node._private;\n var nodeWidth = node.width();\n var nodeHeight = node.height();\n var padding = node.padding();\n var nodePos = node.position();\n var textHalign = node.pstyle('text-halign').strValue;\n var textValign = node.pstyle('text-valign').strValue;\n var rs = _p.rscratch;\n var rstyle = _p.rstyle;\n switch (textHalign) {\n case 'left':\n textX = nodePos.x - nodeWidth / 2 - padding;\n break;\n case 'right':\n textX = nodePos.x + nodeWidth / 2 + padding;\n break;\n default:\n // e.g. center\n textX = nodePos.x;\n }\n switch (textValign) {\n case 'top':\n textY = nodePos.y - nodeHeight / 2 - padding;\n break;\n case 'bottom':\n textY = nodePos.y + nodeHeight / 2 + padding;\n break;\n default:\n // e.g. middle\n textY = nodePos.y;\n }\n rs.labelX = textX;\n rs.labelY = textY;\n rstyle.labelX = textX;\n rstyle.labelY = textY;\n this.calculateLabelAngles(node);\n this.applyLabelDimensions(node);\n};\nvar lineAngleFromDelta = function lineAngleFromDelta(dx, dy) {\n var angle = Math.atan(dy / dx);\n if (dx === 0 && angle < 0) {\n angle = angle * -1;\n }\n return angle;\n};\nvar lineAngle = function lineAngle(p0, p1) {\n var dx = p1.x - p0.x;\n var dy = p1.y - p0.y;\n return lineAngleFromDelta(dx, dy);\n};\nvar bezierAngle = function bezierAngle(p0, p1, p2, t) {\n var t0 = bound(0, t - 0.001, 1);\n var t1 = bound(0, t + 0.001, 1);\n var lp0 = qbezierPtAt(p0, p1, p2, t0);\n var lp1 = qbezierPtAt(p0, p1, p2, t1);\n return lineAngle(lp0, lp1);\n};\nBRp$9.recalculateEdgeLabelProjections = function (edge) {\n var p;\n var _p = edge._private;\n var rs = _p.rscratch;\n var r = this;\n var content = {\n mid: edge.pstyle('label').strValue,\n source: edge.pstyle('source-label').strValue,\n target: edge.pstyle('target-label').strValue\n };\n if (content.mid || content.source || content.target) ; else {\n return; // no labels => no calcs\n }\n\n // add center point to style so bounding box calculations can use it\n //\n p = {\n x: rs.midX,\n y: rs.midY\n };\n var setRs = function setRs(propName, prefix, value) {\n setPrefixedProperty(_p.rscratch, propName, prefix, value);\n setPrefixedProperty(_p.rstyle, propName, prefix, value);\n };\n setRs('labelX', null, p.x);\n setRs('labelY', null, p.y);\n var midAngle = lineAngleFromDelta(rs.midDispX, rs.midDispY);\n setRs('labelAutoAngle', null, midAngle);\n var createControlPointInfo = function createControlPointInfo() {\n if (createControlPointInfo.cache) {\n return createControlPointInfo.cache;\n } // use cache so only 1x per edge\n\n var ctrlpts = [];\n\n // store each ctrlpt info init\n for (var i = 0; i + 5 < rs.allpts.length; i += 4) {\n var p0 = {\n x: rs.allpts[i],\n y: rs.allpts[i + 1]\n };\n var p1 = {\n x: rs.allpts[i + 2],\n y: rs.allpts[i + 3]\n }; // ctrlpt\n var p2 = {\n x: rs.allpts[i + 4],\n y: rs.allpts[i + 5]\n };\n ctrlpts.push({\n p0: p0,\n p1: p1,\n p2: p2,\n startDist: 0,\n length: 0,\n segments: []\n });\n }\n var bpts = _p.rstyle.bezierPts;\n var nProjs = r.bezierProjPcts.length;\n function addSegment(cp, p0, p1, t0, t1) {\n var length = dist(p0, p1);\n var prevSegment = cp.segments[cp.segments.length - 1];\n var segment = {\n p0: p0,\n p1: p1,\n t0: t0,\n t1: t1,\n startDist: prevSegment ? prevSegment.startDist + prevSegment.length : 0,\n length: length\n };\n cp.segments.push(segment);\n cp.length += length;\n }\n\n // update each ctrlpt with segment info\n for (var _i = 0; _i < ctrlpts.length; _i++) {\n var cp = ctrlpts[_i];\n var prevCp = ctrlpts[_i - 1];\n if (prevCp) {\n cp.startDist = prevCp.startDist + prevCp.length;\n }\n addSegment(cp, cp.p0, bpts[_i * nProjs], 0, r.bezierProjPcts[0]); // first\n\n for (var j = 0; j < nProjs - 1; j++) {\n addSegment(cp, bpts[_i * nProjs + j], bpts[_i * nProjs + j + 1], r.bezierProjPcts[j], r.bezierProjPcts[j + 1]);\n }\n addSegment(cp, bpts[_i * nProjs + nProjs - 1], cp.p2, r.bezierProjPcts[nProjs - 1], 1); // last\n }\n\n return createControlPointInfo.cache = ctrlpts;\n };\n var calculateEndProjection = function calculateEndProjection(prefix) {\n var angle;\n var isSrc = prefix === 'source';\n if (!content[prefix]) {\n return;\n }\n var offset = edge.pstyle(prefix + '-text-offset').pfValue;\n switch (rs.edgeType) {\n case 'self':\n case 'compound':\n case 'bezier':\n case 'multibezier':\n {\n var cps = createControlPointInfo();\n var selected;\n var startDist = 0;\n var totalDist = 0;\n\n // find the segment we're on\n for (var i = 0; i < cps.length; i++) {\n var _cp = cps[isSrc ? i : cps.length - 1 - i];\n for (var j = 0; j < _cp.segments.length; j++) {\n var _seg = _cp.segments[isSrc ? j : _cp.segments.length - 1 - j];\n var lastSeg = i === cps.length - 1 && j === _cp.segments.length - 1;\n startDist = totalDist;\n totalDist += _seg.length;\n if (totalDist >= offset || lastSeg) {\n selected = {\n cp: _cp,\n segment: _seg\n };\n break;\n }\n }\n if (selected) {\n break;\n }\n }\n var cp = selected.cp;\n var seg = selected.segment;\n var tSegment = (offset - startDist) / seg.length;\n var segDt = seg.t1 - seg.t0;\n var t = isSrc ? seg.t0 + segDt * tSegment : seg.t1 - segDt * tSegment;\n t = bound(0, t, 1);\n p = qbezierPtAt(cp.p0, cp.p1, cp.p2, t);\n angle = bezierAngle(cp.p0, cp.p1, cp.p2, t);\n break;\n }\n case 'straight':\n case 'segments':\n case 'haystack':\n {\n var d = 0,\n di,\n d0;\n var p0, p1;\n var l = rs.allpts.length;\n for (var _i2 = 0; _i2 + 3 < l; _i2 += 2) {\n if (isSrc) {\n p0 = {\n x: rs.allpts[_i2],\n y: rs.allpts[_i2 + 1]\n };\n p1 = {\n x: rs.allpts[_i2 + 2],\n y: rs.allpts[_i2 + 3]\n };\n } else {\n p0 = {\n x: rs.allpts[l - 2 - _i2],\n y: rs.allpts[l - 1 - _i2]\n };\n p1 = {\n x: rs.allpts[l - 4 - _i2],\n y: rs.allpts[l - 3 - _i2]\n };\n }\n di = dist(p0, p1);\n d0 = d;\n d += di;\n if (d >= offset) {\n break;\n }\n }\n var pD = offset - d0;\n var _t = pD / di;\n _t = bound(0, _t, 1);\n p = lineAt(p0, p1, _t);\n angle = lineAngle(p0, p1);\n break;\n }\n }\n setRs('labelX', prefix, p.x);\n setRs('labelY', prefix, p.y);\n setRs('labelAutoAngle', prefix, angle);\n };\n calculateEndProjection('source');\n calculateEndProjection('target');\n this.applyLabelDimensions(edge);\n};\nBRp$9.applyLabelDimensions = function (ele) {\n this.applyPrefixedLabelDimensions(ele);\n if (ele.isEdge()) {\n this.applyPrefixedLabelDimensions(ele, 'source');\n this.applyPrefixedLabelDimensions(ele, 'target');\n }\n};\nBRp$9.applyPrefixedLabelDimensions = function (ele, prefix) {\n var _p = ele._private;\n var text = this.getLabelText(ele, prefix);\n var labelDims = this.calculateLabelDimensions(ele, text);\n var lineHeight = ele.pstyle('line-height').pfValue;\n var textWrap = ele.pstyle('text-wrap').strValue;\n var lines = getPrefixedProperty(_p.rscratch, 'labelWrapCachedLines', prefix) || [];\n var numLines = textWrap !== 'wrap' ? 1 : Math.max(lines.length, 1);\n var normPerLineHeight = labelDims.height / numLines;\n var labelLineHeight = normPerLineHeight * lineHeight;\n var width = labelDims.width;\n var height = labelDims.height + (numLines - 1) * (lineHeight - 1) * normPerLineHeight;\n setPrefixedProperty(_p.rstyle, 'labelWidth', prefix, width);\n setPrefixedProperty(_p.rscratch, 'labelWidth', prefix, width);\n setPrefixedProperty(_p.rstyle, 'labelHeight', prefix, height);\n setPrefixedProperty(_p.rscratch, 'labelHeight', prefix, height);\n setPrefixedProperty(_p.rscratch, 'labelLineHeight', prefix, labelLineHeight);\n};\nBRp$9.getLabelText = function (ele, prefix) {\n var _p = ele._private;\n var pfd = prefix ? prefix + '-' : '';\n var text = ele.pstyle(pfd + 'label').strValue;\n var textTransform = ele.pstyle('text-transform').value;\n var rscratch = function rscratch(propName, value) {\n if (value) {\n setPrefixedProperty(_p.rscratch, propName, prefix, value);\n return value;\n } else {\n return getPrefixedProperty(_p.rscratch, propName, prefix);\n }\n };\n\n // for empty text, skip all processing\n if (!text) {\n return '';\n }\n if (textTransform == 'none') ; else if (textTransform == 'uppercase') {\n text = text.toUpperCase();\n } else if (textTransform == 'lowercase') {\n text = text.toLowerCase();\n }\n var wrapStyle = ele.pstyle('text-wrap').value;\n if (wrapStyle === 'wrap') {\n var labelKey = rscratch('labelKey');\n\n // save recalc if the label is the same as before\n if (labelKey != null && rscratch('labelWrapKey') === labelKey) {\n return rscratch('labelWrapCachedText');\n }\n var zwsp = \"\\u200B\";\n var lines = text.split('\\n');\n var maxW = ele.pstyle('text-max-width').pfValue;\n var overflow = ele.pstyle('text-overflow-wrap').value;\n var overflowAny = overflow === 'anywhere';\n var wrappedLines = [];\n var separatorRegex = /[\\s\\u200b]+|$/g; // Include end of string to add last word\n\n for (var l = 0; l < lines.length; l++) {\n var line = lines[l];\n var lineDims = this.calculateLabelDimensions(ele, line);\n var lineW = lineDims.width;\n if (overflowAny) {\n var processedLine = line.split('').join(zwsp);\n line = processedLine;\n }\n if (lineW > maxW) {\n // line is too long\n var separatorMatches = line.matchAll(separatorRegex);\n var subline = '';\n var previousIndex = 0;\n // Add fake match\n var _iterator = _createForOfIteratorHelper(separatorMatches),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var separatorMatch = _step.value;\n var wordSeparator = separatorMatch[0];\n var word = line.substring(previousIndex, separatorMatch.index);\n previousIndex = separatorMatch.index + wordSeparator.length;\n var testLine = subline.length === 0 ? word : subline + word + wordSeparator;\n var testDims = this.calculateLabelDimensions(ele, testLine);\n var testW = testDims.width;\n if (testW <= maxW) {\n // word fits on current line\n subline += word + wordSeparator;\n } else {\n // word starts new line\n if (subline) {\n wrappedLines.push(subline);\n }\n subline = word + wordSeparator;\n }\n }\n\n // if there's remaining text, put it in a wrapped line\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n if (!subline.match(/^[\\s\\u200b]+$/)) {\n wrappedLines.push(subline);\n }\n } else {\n // line is already short enough\n wrappedLines.push(line);\n }\n } // for\n\n rscratch('labelWrapCachedLines', wrappedLines);\n text = rscratch('labelWrapCachedText', wrappedLines.join('\\n'));\n rscratch('labelWrapKey', labelKey);\n } else if (wrapStyle === 'ellipsis') {\n var _maxW = ele.pstyle('text-max-width').pfValue;\n var ellipsized = '';\n var ellipsis = \"\\u2026\";\n var incLastCh = false;\n if (this.calculateLabelDimensions(ele, text).width < _maxW) {\n // the label already fits\n return text;\n }\n for (var i = 0; i < text.length; i++) {\n var widthWithNextCh = this.calculateLabelDimensions(ele, ellipsized + text[i] + ellipsis).width;\n if (widthWithNextCh > _maxW) {\n break;\n }\n ellipsized += text[i];\n if (i === text.length - 1) {\n incLastCh = true;\n }\n }\n if (!incLastCh) {\n ellipsized += ellipsis;\n }\n return ellipsized;\n } // if ellipsize\n\n return text;\n};\nBRp$9.getLabelJustification = function (ele) {\n var justification = ele.pstyle('text-justification').strValue;\n var textHalign = ele.pstyle('text-halign').strValue;\n if (justification === 'auto') {\n if (ele.isNode()) {\n switch (textHalign) {\n case 'left':\n return 'right';\n case 'right':\n return 'left';\n default:\n return 'center';\n }\n } else {\n return 'center';\n }\n } else {\n return justification;\n }\n};\nBRp$9.calculateLabelDimensions = function (ele, text) {\n var r = this;\n var containerWindow = r.cy.window();\n var document = containerWindow.document;\n var cacheKey = hashString(text, ele._private.labelDimsKey);\n var cache = r.labelDimCache || (r.labelDimCache = []);\n var existingVal = cache[cacheKey];\n if (existingVal != null) {\n return existingVal;\n }\n var padding = 0; // add padding around text dims, as the measurement isn't that accurate\n var fStyle = ele.pstyle('font-style').strValue;\n var size = ele.pstyle('font-size').pfValue;\n var family = ele.pstyle('font-family').strValue;\n var weight = ele.pstyle('font-weight').strValue;\n var canvas = this.labelCalcCanvas;\n var c2d = this.labelCalcCanvasContext;\n if (!canvas) {\n canvas = this.labelCalcCanvas = document.createElement('canvas');\n c2d = this.labelCalcCanvasContext = canvas.getContext('2d');\n var ds = canvas.style;\n ds.position = 'absolute';\n ds.left = '-9999px';\n ds.top = '-9999px';\n ds.zIndex = '-1';\n ds.visibility = 'hidden';\n ds.pointerEvents = 'none';\n }\n c2d.font = \"\".concat(fStyle, \" \").concat(weight, \" \").concat(size, \"px \").concat(family);\n var width = 0;\n var height = 0;\n var lines = text.split('\\n');\n for (var i = 0; i < lines.length; i++) {\n var line = lines[i];\n var metrics = c2d.measureText(line);\n var w = Math.ceil(metrics.width);\n var h = size;\n width = Math.max(w, width);\n height += h;\n }\n width += padding;\n height += padding;\n return cache[cacheKey] = {\n width: width,\n height: height\n };\n};\nBRp$9.calculateLabelAngle = function (ele, prefix) {\n var _p = ele._private;\n var rs = _p.rscratch;\n var isEdge = ele.isEdge();\n var prefixDash = prefix ? prefix + '-' : '';\n var rot = ele.pstyle(prefixDash + 'text-rotation');\n var rotStr = rot.strValue;\n if (rotStr === 'none') {\n return 0;\n } else if (isEdge && rotStr === 'autorotate') {\n return rs.labelAutoAngle;\n } else if (rotStr === 'autorotate') {\n return 0;\n } else {\n return rot.pfValue;\n }\n};\nBRp$9.calculateLabelAngles = function (ele) {\n var r = this;\n var isEdge = ele.isEdge();\n var _p = ele._private;\n var rs = _p.rscratch;\n rs.labelAngle = r.calculateLabelAngle(ele);\n if (isEdge) {\n rs.sourceLabelAngle = r.calculateLabelAngle(ele, 'source');\n rs.targetLabelAngle = r.calculateLabelAngle(ele, 'target');\n }\n};\n\nvar BRp$8 = {};\nvar TOO_SMALL_CUT_RECT = 28;\nvar warnedCutRect = false;\nBRp$8.getNodeShape = function (node) {\n var r = this;\n var shape = node.pstyle('shape').value;\n if (shape === 'cutrectangle' && (node.width() < TOO_SMALL_CUT_RECT || node.height() < TOO_SMALL_CUT_RECT)) {\n if (!warnedCutRect) {\n warn('The `cutrectangle` node shape can not be used at small sizes so `rectangle` is used instead');\n warnedCutRect = true;\n }\n return 'rectangle';\n }\n if (node.isParent()) {\n if (shape === 'rectangle' || shape === 'roundrectangle' || shape === 'round-rectangle' || shape === 'cutrectangle' || shape === 'cut-rectangle' || shape === 'barrel') {\n return shape;\n } else {\n return 'rectangle';\n }\n }\n if (shape === 'polygon') {\n var points = node.pstyle('shape-polygon-points').value;\n return r.nodeShapes.makePolygon(points).name;\n }\n return shape;\n};\n\nvar BRp$7 = {};\nBRp$7.registerCalculationListeners = function () {\n var cy = this.cy;\n var elesToUpdate = cy.collection();\n var r = this;\n var enqueue = function enqueue(eles) {\n var dirtyStyleCaches = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n elesToUpdate.merge(eles);\n if (dirtyStyleCaches) {\n for (var i = 0; i < eles.length; i++) {\n var ele = eles[i];\n var _p = ele._private;\n var rstyle = _p.rstyle;\n rstyle.clean = false;\n rstyle.cleanConnected = false;\n }\n }\n };\n r.binder(cy).on('bounds.* dirty.*', function onDirtyBounds(e) {\n var ele = e.target;\n enqueue(ele);\n }).on('style.* background.*', function onDirtyStyle(e) {\n var ele = e.target;\n enqueue(ele, false);\n });\n var updateEleCalcs = function updateEleCalcs(willDraw) {\n if (willDraw) {\n var fns = r.onUpdateEleCalcsFns;\n\n // because we need to have up-to-date style (e.g. stylesheet mappers)\n // before calculating rendered style (and pstyle might not be called yet)\n elesToUpdate.cleanStyle();\n for (var i = 0; i < elesToUpdate.length; i++) {\n var ele = elesToUpdate[i];\n var rstyle = ele._private.rstyle;\n if (ele.isNode() && !rstyle.cleanConnected) {\n enqueue(ele.connectedEdges());\n rstyle.cleanConnected = true;\n }\n }\n if (fns) {\n for (var _i = 0; _i < fns.length; _i++) {\n var fn = fns[_i];\n fn(willDraw, elesToUpdate);\n }\n }\n r.recalculateRenderedStyle(elesToUpdate);\n elesToUpdate = cy.collection();\n }\n };\n r.flushRenderedStyleQueue = function () {\n updateEleCalcs(true);\n };\n r.beforeRender(updateEleCalcs, r.beforeRenderPriorities.eleCalcs);\n};\nBRp$7.onUpdateEleCalcs = function (fn) {\n var fns = this.onUpdateEleCalcsFns = this.onUpdateEleCalcsFns || [];\n fns.push(fn);\n};\nBRp$7.recalculateRenderedStyle = function (eles, useCache) {\n var isCleanConnected = function isCleanConnected(ele) {\n return ele._private.rstyle.cleanConnected;\n };\n var edges = [];\n var nodes = [];\n\n // the renderer can't be used for calcs when destroyed, e.g. ele.boundingBox()\n if (this.destroyed) {\n return;\n }\n\n // use cache by default for perf\n if (useCache === undefined) {\n useCache = true;\n }\n for (var i = 0; i < eles.length; i++) {\n var ele = eles[i];\n var _p = ele._private;\n var rstyle = _p.rstyle;\n\n // an edge may be implicitly dirty b/c of one of its connected nodes\n // (and a request for recalc may come in between frames)\n if (ele.isEdge() && (!isCleanConnected(ele.source()) || !isCleanConnected(ele.target()))) {\n rstyle.clean = false;\n }\n\n // only update if dirty and in graph\n if (useCache && rstyle.clean || ele.removed()) {\n continue;\n }\n\n // only update if not display: none\n if (ele.pstyle('display').value === 'none') {\n continue;\n }\n if (_p.group === 'nodes') {\n nodes.push(ele);\n } else {\n // edges\n edges.push(ele);\n }\n rstyle.clean = true;\n }\n\n // update node data from projections\n for (var _i2 = 0; _i2 < nodes.length; _i2++) {\n var _ele = nodes[_i2];\n var _p2 = _ele._private;\n var _rstyle = _p2.rstyle;\n var pos = _ele.position();\n this.recalculateNodeLabelProjection(_ele);\n _rstyle.nodeX = pos.x;\n _rstyle.nodeY = pos.y;\n _rstyle.nodeW = _ele.pstyle('width').pfValue;\n _rstyle.nodeH = _ele.pstyle('height').pfValue;\n }\n this.recalculateEdgeProjections(edges);\n\n // update edge data from projections\n for (var _i3 = 0; _i3 < edges.length; _i3++) {\n var _ele2 = edges[_i3];\n var _p3 = _ele2._private;\n var _rstyle2 = _p3.rstyle;\n var rs = _p3.rscratch;\n\n // update rstyle positions\n _rstyle2.srcX = rs.arrowStartX;\n _rstyle2.srcY = rs.arrowStartY;\n _rstyle2.tgtX = rs.arrowEndX;\n _rstyle2.tgtY = rs.arrowEndY;\n _rstyle2.midX = rs.midX;\n _rstyle2.midY = rs.midY;\n _rstyle2.labelAngle = rs.labelAngle;\n _rstyle2.sourceLabelAngle = rs.sourceLabelAngle;\n _rstyle2.targetLabelAngle = rs.targetLabelAngle;\n }\n};\n\nvar BRp$6 = {};\nBRp$6.updateCachedGrabbedEles = function () {\n var eles = this.cachedZSortedEles;\n if (!eles) {\n // just let this be recalculated on the next z sort tick\n return;\n }\n eles.drag = [];\n eles.nondrag = [];\n var grabTargets = [];\n for (var i = 0; i < eles.length; i++) {\n var ele = eles[i];\n var rs = ele._private.rscratch;\n if (ele.grabbed() && !ele.isParent()) {\n grabTargets.push(ele);\n } else if (rs.inDragLayer) {\n eles.drag.push(ele);\n } else {\n eles.nondrag.push(ele);\n }\n }\n\n // put the grab target nodes last so it's on top of its neighbourhood\n for (var i = 0; i < grabTargets.length; i++) {\n var ele = grabTargets[i];\n eles.drag.push(ele);\n }\n};\nBRp$6.invalidateCachedZSortedEles = function () {\n this.cachedZSortedEles = null;\n};\nBRp$6.getCachedZSortedEles = function (forceRecalc) {\n if (forceRecalc || !this.cachedZSortedEles) {\n var eles = this.cy.mutableElements().toArray();\n eles.sort(zIndexSort);\n eles.interactive = eles.filter(function (ele) {\n return ele.interactive();\n });\n this.cachedZSortedEles = eles;\n this.updateCachedGrabbedEles();\n } else {\n eles = this.cachedZSortedEles;\n }\n return eles;\n};\n\nvar BRp$5 = {};\n[BRp$e, BRp$d, BRp$c, BRp$b, BRp$a, BRp$9, BRp$8, BRp$7, BRp$6].forEach(function (props) {\n extend(BRp$5, props);\n});\n\nvar BRp$4 = {};\nBRp$4.getCachedImage = function (url, crossOrigin, onLoad) {\n var r = this;\n var imageCache = r.imageCache = r.imageCache || {};\n var cache = imageCache[url];\n if (cache) {\n if (!cache.image.complete) {\n cache.image.addEventListener('load', onLoad);\n }\n return cache.image;\n } else {\n cache = imageCache[url] = imageCache[url] || {};\n var image = cache.image = new Image(); // eslint-disable-line no-undef\n\n image.addEventListener('load', onLoad);\n image.addEventListener('error', function () {\n image.error = true;\n });\n\n // #1582 safari doesn't load data uris with crossOrigin properly\n // https://bugs.webkit.org/show_bug.cgi?id=123978\n var dataUriPrefix = 'data:';\n var isDataUri = url.substring(0, dataUriPrefix.length).toLowerCase() === dataUriPrefix;\n if (!isDataUri) {\n // if crossorigin is 'null'(stringified), then manually set it to null \n crossOrigin = crossOrigin === 'null' ? null : crossOrigin;\n image.crossOrigin = crossOrigin; // prevent tainted canvas\n }\n\n image.src = url;\n return image;\n }\n};\n\nvar BRp$3 = {};\n\n/* global document, ResizeObserver, MutationObserver */\n\nBRp$3.registerBinding = function (target, event, handler, useCapture) {\n // eslint-disable-line no-unused-vars\n var args = Array.prototype.slice.apply(arguments, [1]); // copy\n var b = this.binder(target);\n return b.on.apply(b, args);\n};\nBRp$3.binder = function (tgt) {\n var r = this;\n var containerWindow = r.cy.window();\n var tgtIsDom = tgt === containerWindow || tgt === containerWindow.document || tgt === containerWindow.document.body || domElement(tgt);\n if (r.supportsPassiveEvents == null) {\n // from https://github.com/WICG/EventListenerOptions/blob/gh-pages/explainer.md#feature-detection\n var supportsPassive = false;\n try {\n var opts = Object.defineProperty({}, 'passive', {\n get: function get() {\n supportsPassive = true;\n return true;\n }\n });\n containerWindow.addEventListener('test', null, opts);\n } catch (err) {\n // not supported\n }\n r.supportsPassiveEvents = supportsPassive;\n }\n var on = function on(event, handler, useCapture) {\n var args = Array.prototype.slice.call(arguments);\n if (tgtIsDom && r.supportsPassiveEvents) {\n // replace useCapture w/ opts obj\n args[2] = {\n capture: useCapture != null ? useCapture : false,\n passive: false,\n once: false\n };\n }\n r.bindings.push({\n target: tgt,\n args: args\n });\n (tgt.addEventListener || tgt.on).apply(tgt, args);\n return this;\n };\n return {\n on: on,\n addEventListener: on,\n addListener: on,\n bind: on\n };\n};\nBRp$3.nodeIsDraggable = function (node) {\n return node && node.isNode() && !node.locked() && node.grabbable();\n};\nBRp$3.nodeIsGrabbable = function (node) {\n return this.nodeIsDraggable(node) && node.interactive();\n};\nBRp$3.load = function () {\n var r = this;\n var containerWindow = r.cy.window();\n var isSelected = function isSelected(ele) {\n return ele.selected();\n };\n var triggerEvents = function triggerEvents(target, names, e, position) {\n if (target == null) {\n target = r.cy;\n }\n for (var i = 0; i < names.length; i++) {\n var name = names[i];\n target.emit({\n originalEvent: e,\n type: name,\n position: position\n });\n }\n };\n var isMultSelKeyDown = function isMultSelKeyDown(e) {\n return e.shiftKey || e.metaKey || e.ctrlKey; // maybe e.altKey\n };\n\n var allowPanningPassthrough = function allowPanningPassthrough(down, downs) {\n var allowPassthrough = true;\n if (r.cy.hasCompoundNodes() && down && down.pannable()) {\n // a grabbable compound node below the ele => no passthrough panning\n for (var i = 0; downs && i < downs.length; i++) {\n var down = downs[i];\n\n //if any parent node in event hierarchy isn't pannable, reject passthrough\n if (down.isNode() && down.isParent() && !down.pannable()) {\n allowPassthrough = false;\n break;\n }\n }\n } else {\n allowPassthrough = true;\n }\n return allowPassthrough;\n };\n var setGrabbed = function setGrabbed(ele) {\n ele[0]._private.grabbed = true;\n };\n var setFreed = function setFreed(ele) {\n ele[0]._private.grabbed = false;\n };\n var setInDragLayer = function setInDragLayer(ele) {\n ele[0]._private.rscratch.inDragLayer = true;\n };\n var setOutDragLayer = function setOutDragLayer(ele) {\n ele[0]._private.rscratch.inDragLayer = false;\n };\n var setGrabTarget = function setGrabTarget(ele) {\n ele[0]._private.rscratch.isGrabTarget = true;\n };\n var removeGrabTarget = function removeGrabTarget(ele) {\n ele[0]._private.rscratch.isGrabTarget = false;\n };\n var addToDragList = function addToDragList(ele, opts) {\n var list = opts.addToList;\n var listHasEle = list.has(ele);\n if (!listHasEle && ele.grabbable() && !ele.locked()) {\n list.merge(ele);\n setGrabbed(ele);\n }\n };\n\n // helper function to determine which child nodes and inner edges\n // of a compound node to be dragged as well as the grabbed and selected nodes\n var addDescendantsToDrag = function addDescendantsToDrag(node, opts) {\n if (!node.cy().hasCompoundNodes()) {\n return;\n }\n if (opts.inDragLayer == null && opts.addToList == null) {\n return;\n } // nothing to do\n\n var innerNodes = node.descendants();\n if (opts.inDragLayer) {\n innerNodes.forEach(setInDragLayer);\n innerNodes.connectedEdges().forEach(setInDragLayer);\n }\n if (opts.addToList) {\n addToDragList(innerNodes, opts);\n }\n };\n\n // adds the given nodes and its neighbourhood to the drag layer\n var addNodesToDrag = function addNodesToDrag(nodes, opts) {\n opts = opts || {};\n var hasCompoundNodes = nodes.cy().hasCompoundNodes();\n if (opts.inDragLayer) {\n nodes.forEach(setInDragLayer);\n nodes.neighborhood().stdFilter(function (ele) {\n return !hasCompoundNodes || ele.isEdge();\n }).forEach(setInDragLayer);\n }\n if (opts.addToList) {\n nodes.forEach(function (ele) {\n addToDragList(ele, opts);\n });\n }\n addDescendantsToDrag(nodes, opts); // always add to drag\n\n // also add nodes and edges related to the topmost ancestor\n updateAncestorsInDragLayer(nodes, {\n inDragLayer: opts.inDragLayer\n });\n r.updateCachedGrabbedEles();\n };\n var addNodeToDrag = addNodesToDrag;\n var freeDraggedElements = function freeDraggedElements(grabbedEles) {\n if (!grabbedEles) {\n return;\n }\n\n // just go over all elements rather than doing a bunch of (possibly expensive) traversals\n r.getCachedZSortedEles().forEach(function (ele) {\n setFreed(ele);\n setOutDragLayer(ele);\n removeGrabTarget(ele);\n });\n r.updateCachedGrabbedEles();\n };\n\n // helper function to determine which ancestor nodes and edges should go\n // to the drag layer (or should be removed from drag layer).\n var updateAncestorsInDragLayer = function updateAncestorsInDragLayer(node, opts) {\n if (opts.inDragLayer == null && opts.addToList == null) {\n return;\n } // nothing to do\n\n if (!node.cy().hasCompoundNodes()) {\n return;\n }\n\n // find top-level parent\n var parent = node.ancestors().orphans();\n\n // no parent node: no nodes to add to the drag layer\n if (parent.same(node)) {\n return;\n }\n var nodes = parent.descendants().spawnSelf().merge(parent).unmerge(node).unmerge(node.descendants());\n var edges = nodes.connectedEdges();\n if (opts.inDragLayer) {\n edges.forEach(setInDragLayer);\n nodes.forEach(setInDragLayer);\n }\n if (opts.addToList) {\n nodes.forEach(function (ele) {\n addToDragList(ele, opts);\n });\n }\n };\n var blurActiveDomElement = function blurActiveDomElement() {\n if (document.activeElement != null && document.activeElement.blur != null) {\n document.activeElement.blur();\n }\n };\n var haveMutationsApi = typeof MutationObserver !== 'undefined';\n var haveResizeObserverApi = typeof ResizeObserver !== 'undefined';\n\n // watch for when the cy container is removed from the dom\n if (haveMutationsApi) {\n r.removeObserver = new MutationObserver(function (mutns) {\n // eslint-disable-line no-undef\n for (var i = 0; i < mutns.length; i++) {\n var mutn = mutns[i];\n var rNodes = mutn.removedNodes;\n if (rNodes) {\n for (var j = 0; j < rNodes.length; j++) {\n var rNode = rNodes[j];\n if (rNode === r.container) {\n r.destroy();\n break;\n }\n }\n }\n }\n });\n if (r.container.parentNode) {\n r.removeObserver.observe(r.container.parentNode, {\n childList: true\n });\n }\n } else {\n r.registerBinding(r.container, 'DOMNodeRemoved', function (e) {\n // eslint-disable-line no-unused-vars\n r.destroy();\n });\n }\n var onResize = debounce_1(function () {\n r.cy.resize();\n }, 100);\n if (haveMutationsApi) {\n r.styleObserver = new MutationObserver(onResize); // eslint-disable-line no-undef\n\n r.styleObserver.observe(r.container, {\n attributes: true\n });\n }\n\n // auto resize\n r.registerBinding(containerWindow, 'resize', onResize); // eslint-disable-line no-undef\n\n if (haveResizeObserverApi) {\n r.resizeObserver = new ResizeObserver(onResize); // eslint-disable-line no-undef\n\n r.resizeObserver.observe(r.container);\n }\n var forEachUp = function forEachUp(domEle, fn) {\n while (domEle != null) {\n fn(domEle);\n domEle = domEle.parentNode;\n }\n };\n var invalidateCoords = function invalidateCoords() {\n r.invalidateContainerClientCoordsCache();\n };\n forEachUp(r.container, function (domEle) {\n r.registerBinding(domEle, 'transitionend', invalidateCoords);\n r.registerBinding(domEle, 'animationend', invalidateCoords);\n r.registerBinding(domEle, 'scroll', invalidateCoords);\n });\n\n // stop right click menu from appearing on cy\n r.registerBinding(r.container, 'contextmenu', function (e) {\n e.preventDefault();\n });\n var inBoxSelection = function inBoxSelection() {\n return r.selection[4] !== 0;\n };\n var eventInContainer = function eventInContainer(e) {\n // save cycles if mouse events aren't to be captured\n var containerPageCoords = r.findContainerClientCoords();\n var x = containerPageCoords[0];\n var y = containerPageCoords[1];\n var width = containerPageCoords[2];\n var height = containerPageCoords[3];\n var positions = e.touches ? e.touches : [e];\n var atLeastOnePosInside = false;\n for (var i = 0; i < positions.length; i++) {\n var p = positions[i];\n if (x <= p.clientX && p.clientX <= x + width && y <= p.clientY && p.clientY <= y + height) {\n atLeastOnePosInside = true;\n break;\n }\n }\n if (!atLeastOnePosInside) {\n return false;\n }\n var container = r.container;\n var target = e.target;\n var tParent = target.parentNode;\n var containerIsTarget = false;\n while (tParent) {\n if (tParent === container) {\n containerIsTarget = true;\n break;\n }\n tParent = tParent.parentNode;\n }\n if (!containerIsTarget) {\n return false;\n } // if target is outisde cy container, then this event is not for us\n\n return true;\n };\n\n // Primary key\n r.registerBinding(r.container, 'mousedown', function mousedownHandler(e) {\n if (!eventInContainer(e)) {\n return;\n }\n\n // during left mouse button gestures, ignore other buttons\n if (r.hoverData.which === 1 && e.which !== 1) {\n return;\n }\n e.preventDefault();\n blurActiveDomElement();\n r.hoverData.capture = true;\n r.hoverData.which = e.which;\n var cy = r.cy;\n var gpos = [e.clientX, e.clientY];\n var pos = r.projectIntoViewport(gpos[0], gpos[1]);\n var select = r.selection;\n var nears = r.findNearestElements(pos[0], pos[1], true, false);\n var near = nears[0];\n var draggedElements = r.dragData.possibleDragElements;\n r.hoverData.mdownPos = pos;\n r.hoverData.mdownGPos = gpos;\n var checkForTaphold = function checkForTaphold() {\n r.hoverData.tapholdCancelled = false;\n clearTimeout(r.hoverData.tapholdTimeout);\n r.hoverData.tapholdTimeout = setTimeout(function () {\n if (r.hoverData.tapholdCancelled) {\n return;\n } else {\n var ele = r.hoverData.down;\n if (ele) {\n ele.emit({\n originalEvent: e,\n type: 'taphold',\n position: {\n x: pos[0],\n y: pos[1]\n }\n });\n } else {\n cy.emit({\n originalEvent: e,\n type: 'taphold',\n position: {\n x: pos[0],\n y: pos[1]\n }\n });\n }\n }\n }, r.tapholdDuration);\n };\n\n // Right click button\n if (e.which == 3) {\n r.hoverData.cxtStarted = true;\n var cxtEvt = {\n originalEvent: e,\n type: 'cxttapstart',\n position: {\n x: pos[0],\n y: pos[1]\n }\n };\n if (near) {\n near.activate();\n near.emit(cxtEvt);\n r.hoverData.down = near;\n } else {\n cy.emit(cxtEvt);\n }\n r.hoverData.downTime = new Date().getTime();\n r.hoverData.cxtDragged = false;\n\n // Primary button\n } else if (e.which == 1) {\n if (near) {\n near.activate();\n }\n\n // Element dragging\n {\n // If something is under the cursor and it is draggable, prepare to grab it\n if (near != null) {\n if (r.nodeIsGrabbable(near)) {\n var makeEvent = function makeEvent(type) {\n return {\n originalEvent: e,\n type: type,\n position: {\n x: pos[0],\n y: pos[1]\n }\n };\n };\n var triggerGrab = function triggerGrab(ele) {\n ele.emit(makeEvent('grab'));\n };\n setGrabTarget(near);\n if (!near.selected()) {\n draggedElements = r.dragData.possibleDragElements = cy.collection();\n addNodeToDrag(near, {\n addToList: draggedElements\n });\n near.emit(makeEvent('grabon')).emit(makeEvent('grab'));\n } else {\n draggedElements = r.dragData.possibleDragElements = cy.collection();\n var selectedNodes = cy.$(function (ele) {\n return ele.isNode() && ele.selected() && r.nodeIsGrabbable(ele);\n });\n addNodesToDrag(selectedNodes, {\n addToList: draggedElements\n });\n near.emit(makeEvent('grabon'));\n selectedNodes.forEach(triggerGrab);\n }\n r.redrawHint('eles', true);\n r.redrawHint('drag', true);\n }\n }\n r.hoverData.down = near;\n r.hoverData.downs = nears;\n r.hoverData.downTime = new Date().getTime();\n }\n triggerEvents(near, ['mousedown', 'tapstart', 'vmousedown'], e, {\n x: pos[0],\n y: pos[1]\n });\n if (near == null) {\n select[4] = 1;\n r.data.bgActivePosistion = {\n x: pos[0],\n y: pos[1]\n };\n r.redrawHint('select', true);\n r.redraw();\n } else if (near.pannable()) {\n select[4] = 1; // for future pan\n }\n\n checkForTaphold();\n }\n\n // Initialize selection box coordinates\n select[0] = select[2] = pos[0];\n select[1] = select[3] = pos[1];\n }, false);\n r.registerBinding(containerWindow, 'mousemove', function mousemoveHandler(e) {\n // eslint-disable-line no-undef\n var capture = r.hoverData.capture;\n if (!capture && !eventInContainer(e)) {\n return;\n }\n var preventDefault = false;\n var cy = r.cy;\n var zoom = cy.zoom();\n var gpos = [e.clientX, e.clientY];\n var pos = r.projectIntoViewport(gpos[0], gpos[1]);\n var mdownPos = r.hoverData.mdownPos;\n var mdownGPos = r.hoverData.mdownGPos;\n var select = r.selection;\n var near = null;\n if (!r.hoverData.draggingEles && !r.hoverData.dragging && !r.hoverData.selecting) {\n near = r.findNearestElement(pos[0], pos[1], true, false);\n }\n var last = r.hoverData.last;\n var down = r.hoverData.down;\n var disp = [pos[0] - select[2], pos[1] - select[3]];\n var draggedElements = r.dragData.possibleDragElements;\n var isOverThresholdDrag;\n if (mdownGPos) {\n var dx = gpos[0] - mdownGPos[0];\n var dx2 = dx * dx;\n var dy = gpos[1] - mdownGPos[1];\n var dy2 = dy * dy;\n var dist2 = dx2 + dy2;\n r.hoverData.isOverThresholdDrag = isOverThresholdDrag = dist2 >= r.desktopTapThreshold2;\n }\n var multSelKeyDown = isMultSelKeyDown(e);\n if (isOverThresholdDrag) {\n r.hoverData.tapholdCancelled = true;\n }\n var updateDragDelta = function updateDragDelta() {\n var dragDelta = r.hoverData.dragDelta = r.hoverData.dragDelta || [];\n if (dragDelta.length === 0) {\n dragDelta.push(disp[0]);\n dragDelta.push(disp[1]);\n } else {\n dragDelta[0] += disp[0];\n dragDelta[1] += disp[1];\n }\n };\n preventDefault = true;\n triggerEvents(near, ['mousemove', 'vmousemove', 'tapdrag'], e, {\n x: pos[0],\n y: pos[1]\n });\n var goIntoBoxMode = function goIntoBoxMode() {\n r.data.bgActivePosistion = undefined;\n if (!r.hoverData.selecting) {\n cy.emit({\n originalEvent: e,\n type: 'boxstart',\n position: {\n x: pos[0],\n y: pos[1]\n }\n });\n }\n select[4] = 1;\n r.hoverData.selecting = true;\n r.redrawHint('select', true);\n r.redraw();\n };\n\n // trigger context drag if rmouse down\n if (r.hoverData.which === 3) {\n // but only if over threshold\n if (isOverThresholdDrag) {\n var cxtEvt = {\n originalEvent: e,\n type: 'cxtdrag',\n position: {\n x: pos[0],\n y: pos[1]\n }\n };\n if (down) {\n down.emit(cxtEvt);\n } else {\n cy.emit(cxtEvt);\n }\n r.hoverData.cxtDragged = true;\n if (!r.hoverData.cxtOver || near !== r.hoverData.cxtOver) {\n if (r.hoverData.cxtOver) {\n r.hoverData.cxtOver.emit({\n originalEvent: e,\n type: 'cxtdragout',\n position: {\n x: pos[0],\n y: pos[1]\n }\n });\n }\n r.hoverData.cxtOver = near;\n if (near) {\n near.emit({\n originalEvent: e,\n type: 'cxtdragover',\n position: {\n x: pos[0],\n y: pos[1]\n }\n });\n }\n }\n }\n\n // Check if we are drag panning the entire graph\n } else if (r.hoverData.dragging) {\n preventDefault = true;\n if (cy.panningEnabled() && cy.userPanningEnabled()) {\n var deltaP;\n if (r.hoverData.justStartedPan) {\n var mdPos = r.hoverData.mdownPos;\n deltaP = {\n x: (pos[0] - mdPos[0]) * zoom,\n y: (pos[1] - mdPos[1]) * zoom\n };\n r.hoverData.justStartedPan = false;\n } else {\n deltaP = {\n x: disp[0] * zoom,\n y: disp[1] * zoom\n };\n }\n cy.panBy(deltaP);\n cy.emit('dragpan');\n r.hoverData.dragged = true;\n }\n\n // Needs reproject due to pan changing viewport\n pos = r.projectIntoViewport(e.clientX, e.clientY);\n\n // Checks primary button down & out of time & mouse not moved much\n } else if (select[4] == 1 && (down == null || down.pannable())) {\n if (isOverThresholdDrag) {\n if (!r.hoverData.dragging && cy.boxSelectionEnabled() && (multSelKeyDown || !cy.panningEnabled() || !cy.userPanningEnabled())) {\n goIntoBoxMode();\n } else if (!r.hoverData.selecting && cy.panningEnabled() && cy.userPanningEnabled()) {\n var allowPassthrough = allowPanningPassthrough(down, r.hoverData.downs);\n if (allowPassthrough) {\n r.hoverData.dragging = true;\n r.hoverData.justStartedPan = true;\n select[4] = 0;\n r.data.bgActivePosistion = array2point(mdownPos);\n r.redrawHint('select', true);\n r.redraw();\n }\n }\n if (down && down.pannable() && down.active()) {\n down.unactivate();\n }\n }\n } else {\n if (down && down.pannable() && down.active()) {\n down.unactivate();\n }\n if ((!down || !down.grabbed()) && near != last) {\n if (last) {\n triggerEvents(last, ['mouseout', 'tapdragout'], e, {\n x: pos[0],\n y: pos[1]\n });\n }\n if (near) {\n triggerEvents(near, ['mouseover', 'tapdragover'], e, {\n x: pos[0],\n y: pos[1]\n });\n }\n r.hoverData.last = near;\n }\n if (down) {\n if (isOverThresholdDrag) {\n // then we can take action\n\n if (cy.boxSelectionEnabled() && multSelKeyDown) {\n // then selection overrides\n if (down && down.grabbed()) {\n freeDraggedElements(draggedElements);\n down.emit('freeon');\n draggedElements.emit('free');\n if (r.dragData.didDrag) {\n down.emit('dragfreeon');\n draggedElements.emit('dragfree');\n }\n }\n goIntoBoxMode();\n } else if (down && down.grabbed() && r.nodeIsDraggable(down)) {\n // drag node\n var justStartedDrag = !r.dragData.didDrag;\n if (justStartedDrag) {\n r.redrawHint('eles', true);\n }\n r.dragData.didDrag = true; // indicate that we actually did drag the node\n\n // now, add the elements to the drag layer if not done already\n if (!r.hoverData.draggingEles) {\n addNodesToDrag(draggedElements, {\n inDragLayer: true\n });\n }\n var totalShift = {\n x: 0,\n y: 0\n };\n if (number$1(disp[0]) && number$1(disp[1])) {\n totalShift.x += disp[0];\n totalShift.y += disp[1];\n if (justStartedDrag) {\n var dragDelta = r.hoverData.dragDelta;\n if (dragDelta && number$1(dragDelta[0]) && number$1(dragDelta[1])) {\n totalShift.x += dragDelta[0];\n totalShift.y += dragDelta[1];\n }\n }\n }\n r.hoverData.draggingEles = true;\n draggedElements.silentShift(totalShift).emit('position drag');\n r.redrawHint('drag', true);\n r.redraw();\n }\n } else {\n // otherwise save drag delta for when we actually start dragging so the relative grab pos is constant\n updateDragDelta();\n }\n }\n\n // prevent the dragging from triggering text selection on the page\n preventDefault = true;\n }\n select[2] = pos[0];\n select[3] = pos[1];\n if (preventDefault) {\n if (e.stopPropagation) e.stopPropagation();\n if (e.preventDefault) e.preventDefault();\n return false;\n }\n }, false);\n var clickTimeout, didDoubleClick, prevClickTimeStamp;\n r.registerBinding(containerWindow, 'mouseup', function mouseupHandler(e) {\n // eslint-disable-line no-undef\n // during left mouse button gestures, ignore other buttons\n if (r.hoverData.which === 1 && e.which !== 1 && r.hoverData.capture) {\n return;\n }\n var capture = r.hoverData.capture;\n if (!capture) {\n return;\n }\n r.hoverData.capture = false;\n var cy = r.cy;\n var pos = r.projectIntoViewport(e.clientX, e.clientY);\n var select = r.selection;\n var near = r.findNearestElement(pos[0], pos[1], true, false);\n var draggedElements = r.dragData.possibleDragElements;\n var down = r.hoverData.down;\n var multSelKeyDown = isMultSelKeyDown(e);\n if (r.data.bgActivePosistion) {\n r.redrawHint('select', true);\n r.redraw();\n }\n r.hoverData.tapholdCancelled = true;\n r.data.bgActivePosistion = undefined; // not active bg now\n\n if (down) {\n down.unactivate();\n }\n if (r.hoverData.which === 3) {\n var cxtEvt = {\n originalEvent: e,\n type: 'cxttapend',\n position: {\n x: pos[0],\n y: pos[1]\n }\n };\n if (down) {\n down.emit(cxtEvt);\n } else {\n cy.emit(cxtEvt);\n }\n if (!r.hoverData.cxtDragged) {\n var cxtTap = {\n originalEvent: e,\n type: 'cxttap',\n position: {\n x: pos[0],\n y: pos[1]\n }\n };\n if (down) {\n down.emit(cxtTap);\n } else {\n cy.emit(cxtTap);\n }\n }\n r.hoverData.cxtDragged = false;\n r.hoverData.which = null;\n } else if (r.hoverData.which === 1) {\n triggerEvents(near, ['mouseup', 'tapend', 'vmouseup'], e, {\n x: pos[0],\n y: pos[1]\n });\n if (!r.dragData.didDrag &&\n // didn't move a node around\n !r.hoverData.dragged &&\n // didn't pan\n !r.hoverData.selecting &&\n // not box selection\n !r.hoverData.isOverThresholdDrag // didn't move too much\n ) {\n triggerEvents(down, [\"click\", \"tap\", \"vclick\"], e, {\n x: pos[0],\n y: pos[1]\n });\n didDoubleClick = false;\n if (e.timeStamp - prevClickTimeStamp <= cy.multiClickDebounceTime()) {\n clickTimeout && clearTimeout(clickTimeout);\n didDoubleClick = true;\n prevClickTimeStamp = null;\n triggerEvents(down, [\"dblclick\", \"dbltap\", \"vdblclick\"], e, {\n x: pos[0],\n y: pos[1]\n });\n } else {\n clickTimeout = setTimeout(function () {\n if (didDoubleClick) return;\n triggerEvents(down, [\"oneclick\", \"onetap\", \"voneclick\"], e, {\n x: pos[0],\n y: pos[1]\n });\n }, cy.multiClickDebounceTime());\n prevClickTimeStamp = e.timeStamp;\n }\n }\n\n // Deselect all elements if nothing is currently under the mouse cursor and we aren't dragging something\n if (down == null // not mousedown on node\n && !r.dragData.didDrag // didn't move the node around\n && !r.hoverData.selecting // not box selection\n && !r.hoverData.dragged // didn't pan\n && !isMultSelKeyDown(e)) {\n cy.$(isSelected).unselect(['tapunselect']);\n if (draggedElements.length > 0) {\n r.redrawHint('eles', true);\n }\n r.dragData.possibleDragElements = draggedElements = cy.collection();\n }\n\n // Single selection\n if (near == down && !r.dragData.didDrag && !r.hoverData.selecting) {\n if (near != null && near._private.selectable) {\n if (r.hoverData.dragging) ; else if (cy.selectionType() === 'additive' || multSelKeyDown) {\n if (near.selected()) {\n near.unselect(['tapunselect']);\n } else {\n near.select(['tapselect']);\n }\n } else {\n if (!multSelKeyDown) {\n cy.$(isSelected).unmerge(near).unselect(['tapunselect']);\n near.select(['tapselect']);\n }\n }\n r.redrawHint('eles', true);\n }\n }\n if (r.hoverData.selecting) {\n var box = cy.collection(r.getAllInBox(select[0], select[1], select[2], select[3]));\n r.redrawHint('select', true);\n if (box.length > 0) {\n r.redrawHint('eles', true);\n }\n cy.emit({\n type: 'boxend',\n originalEvent: e,\n position: {\n x: pos[0],\n y: pos[1]\n }\n });\n var eleWouldBeSelected = function eleWouldBeSelected(ele) {\n return ele.selectable() && !ele.selected();\n };\n if (cy.selectionType() === 'additive') {\n box.emit('box').stdFilter(eleWouldBeSelected).select().emit('boxselect');\n } else {\n if (!multSelKeyDown) {\n cy.$(isSelected).unmerge(box).unselect();\n }\n box.emit('box').stdFilter(eleWouldBeSelected).select().emit('boxselect');\n }\n\n // always need redraw in case eles unselectable\n r.redraw();\n }\n\n // Cancel drag pan\n if (r.hoverData.dragging) {\n r.hoverData.dragging = false;\n r.redrawHint('select', true);\n r.redrawHint('eles', true);\n r.redraw();\n }\n if (!select[4]) {\n r.redrawHint('drag', true);\n r.redrawHint('eles', true);\n var downWasGrabbed = down && down.grabbed();\n freeDraggedElements(draggedElements);\n if (downWasGrabbed) {\n down.emit('freeon');\n draggedElements.emit('free');\n if (r.dragData.didDrag) {\n down.emit('dragfreeon');\n draggedElements.emit('dragfree');\n }\n }\n }\n } // else not right mouse\n\n select[4] = 0;\n r.hoverData.down = null;\n r.hoverData.cxtStarted = false;\n r.hoverData.draggingEles = false;\n r.hoverData.selecting = false;\n r.hoverData.isOverThresholdDrag = false;\n r.dragData.didDrag = false;\n r.hoverData.dragged = false;\n r.hoverData.dragDelta = [];\n r.hoverData.mdownPos = null;\n r.hoverData.mdownGPos = null;\n r.hoverData.which = null;\n }, false);\n var wheelHandler = function wheelHandler(e) {\n if (r.scrollingPage) {\n return;\n } // while scrolling, ignore wheel-to-zoom\n\n var cy = r.cy;\n var zoom = cy.zoom();\n var pan = cy.pan();\n var pos = r.projectIntoViewport(e.clientX, e.clientY);\n var rpos = [pos[0] * zoom + pan.x, pos[1] * zoom + pan.y];\n if (r.hoverData.draggingEles || r.hoverData.dragging || r.hoverData.cxtStarted || inBoxSelection()) {\n // if pan dragging or cxt dragging, wheel movements make no zoom\n e.preventDefault();\n return;\n }\n if (cy.panningEnabled() && cy.userPanningEnabled() && cy.zoomingEnabled() && cy.userZoomingEnabled()) {\n e.preventDefault();\n r.data.wheelZooming = true;\n clearTimeout(r.data.wheelTimeout);\n r.data.wheelTimeout = setTimeout(function () {\n r.data.wheelZooming = false;\n r.redrawHint('eles', true);\n r.redraw();\n }, 150);\n var diff;\n if (e.deltaY != null) {\n diff = e.deltaY / -250;\n } else if (e.wheelDeltaY != null) {\n diff = e.wheelDeltaY / 1000;\n } else {\n diff = e.wheelDelta / 1000;\n }\n diff = diff * r.wheelSensitivity;\n var needsWheelFix = e.deltaMode === 1;\n if (needsWheelFix) {\n // fixes slow wheel events on ff/linux and ff/windows\n diff *= 33;\n }\n var newZoom = cy.zoom() * Math.pow(10, diff);\n if (e.type === 'gesturechange') {\n newZoom = r.gestureStartZoom * e.scale;\n }\n cy.zoom({\n level: newZoom,\n renderedPosition: {\n x: rpos[0],\n y: rpos[1]\n }\n });\n cy.emit(e.type === 'gesturechange' ? 'pinchzoom' : 'scrollzoom');\n }\n };\n\n // Functions to help with whether mouse wheel should trigger zooming\n // --\n r.registerBinding(r.container, 'wheel', wheelHandler, true);\n\n // disable nonstandard wheel events\n // r.registerBinding(r.container, 'mousewheel', wheelHandler, true);\n // r.registerBinding(r.container, 'DOMMouseScroll', wheelHandler, true);\n // r.registerBinding(r.container, 'MozMousePixelScroll', wheelHandler, true); // older firefox\n\n r.registerBinding(containerWindow, 'scroll', function scrollHandler(e) {\n // eslint-disable-line no-unused-vars\n r.scrollingPage = true;\n clearTimeout(r.scrollingPageTimeout);\n r.scrollingPageTimeout = setTimeout(function () {\n r.scrollingPage = false;\n }, 250);\n }, true);\n\n // desktop safari pinch to zoom start\n r.registerBinding(r.container, 'gesturestart', function gestureStartHandler(e) {\n r.gestureStartZoom = r.cy.zoom();\n if (!r.hasTouchStarted) {\n // don't affect touch devices like iphone\n e.preventDefault();\n }\n }, true);\n r.registerBinding(r.container, 'gesturechange', function (e) {\n if (!r.hasTouchStarted) {\n // don't affect touch devices like iphone\n wheelHandler(e);\n }\n }, true);\n\n // Functions to help with handling mouseout/mouseover on the Cytoscape container\n // Handle mouseout on Cytoscape container\n r.registerBinding(r.container, 'mouseout', function mouseOutHandler(e) {\n var pos = r.projectIntoViewport(e.clientX, e.clientY);\n r.cy.emit({\n originalEvent: e,\n type: 'mouseout',\n position: {\n x: pos[0],\n y: pos[1]\n }\n });\n }, false);\n r.registerBinding(r.container, 'mouseover', function mouseOverHandler(e) {\n var pos = r.projectIntoViewport(e.clientX, e.clientY);\n r.cy.emit({\n originalEvent: e,\n type: 'mouseover',\n position: {\n x: pos[0],\n y: pos[1]\n }\n });\n }, false);\n var f1x1, f1y1, f2x1, f2y1; // starting points for pinch-to-zoom\n var distance1, distance1Sq; // initial distance between finger 1 and finger 2 for pinch-to-zoom\n var center1, modelCenter1; // center point on start pinch to zoom\n var offsetLeft, offsetTop;\n var containerWidth, containerHeight;\n var twoFingersStartInside;\n var distance = function distance(x1, y1, x2, y2) {\n return Math.sqrt((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1));\n };\n var distanceSq = function distanceSq(x1, y1, x2, y2) {\n return (x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1);\n };\n var touchstartHandler;\n r.registerBinding(r.container, 'touchstart', touchstartHandler = function touchstartHandler(e) {\n r.hasTouchStarted = true;\n if (!eventInContainer(e)) {\n return;\n }\n blurActiveDomElement();\n r.touchData.capture = true;\n r.data.bgActivePosistion = undefined;\n var cy = r.cy;\n var now = r.touchData.now;\n var earlier = r.touchData.earlier;\n if (e.touches[0]) {\n var pos = r.projectIntoViewport(e.touches[0].clientX, e.touches[0].clientY);\n now[0] = pos[0];\n now[1] = pos[1];\n }\n if (e.touches[1]) {\n var pos = r.projectIntoViewport(e.touches[1].clientX, e.touches[1].clientY);\n now[2] = pos[0];\n now[3] = pos[1];\n }\n if (e.touches[2]) {\n var pos = r.projectIntoViewport(e.touches[2].clientX, e.touches[2].clientY);\n now[4] = pos[0];\n now[5] = pos[1];\n }\n\n // record starting points for pinch-to-zoom\n if (e.touches[1]) {\n r.touchData.singleTouchMoved = true;\n freeDraggedElements(r.dragData.touchDragEles);\n var offsets = r.findContainerClientCoords();\n offsetLeft = offsets[0];\n offsetTop = offsets[1];\n containerWidth = offsets[2];\n containerHeight = offsets[3];\n f1x1 = e.touches[0].clientX - offsetLeft;\n f1y1 = e.touches[0].clientY - offsetTop;\n f2x1 = e.touches[1].clientX - offsetLeft;\n f2y1 = e.touches[1].clientY - offsetTop;\n twoFingersStartInside = 0 <= f1x1 && f1x1 <= containerWidth && 0 <= f2x1 && f2x1 <= containerWidth && 0 <= f1y1 && f1y1 <= containerHeight && 0 <= f2y1 && f2y1 <= containerHeight;\n var pan = cy.pan();\n var zoom = cy.zoom();\n distance1 = distance(f1x1, f1y1, f2x1, f2y1);\n distance1Sq = distanceSq(f1x1, f1y1, f2x1, f2y1);\n center1 = [(f1x1 + f2x1) / 2, (f1y1 + f2y1) / 2];\n modelCenter1 = [(center1[0] - pan.x) / zoom, (center1[1] - pan.y) / zoom];\n\n // consider context tap\n var cxtDistThreshold = 200;\n var cxtDistThresholdSq = cxtDistThreshold * cxtDistThreshold;\n if (distance1Sq < cxtDistThresholdSq && !e.touches[2]) {\n var near1 = r.findNearestElement(now[0], now[1], true, true);\n var near2 = r.findNearestElement(now[2], now[3], true, true);\n if (near1 && near1.isNode()) {\n near1.activate().emit({\n originalEvent: e,\n type: 'cxttapstart',\n position: {\n x: now[0],\n y: now[1]\n }\n });\n r.touchData.start = near1;\n } else if (near2 && near2.isNode()) {\n near2.activate().emit({\n originalEvent: e,\n type: 'cxttapstart',\n position: {\n x: now[0],\n y: now[1]\n }\n });\n r.touchData.start = near2;\n } else {\n cy.emit({\n originalEvent: e,\n type: 'cxttapstart',\n position: {\n x: now[0],\n y: now[1]\n }\n });\n }\n if (r.touchData.start) {\n r.touchData.start._private.grabbed = false;\n }\n r.touchData.cxt = true;\n r.touchData.cxtDragged = false;\n r.data.bgActivePosistion = undefined;\n r.redraw();\n return;\n }\n }\n if (e.touches[2]) {\n // ignore\n\n // safari on ios pans the page otherwise (normally you should be able to preventdefault on touchmove...)\n if (cy.boxSelectionEnabled()) {\n e.preventDefault();\n }\n } else if (e.touches[1]) ; else if (e.touches[0]) {\n var nears = r.findNearestElements(now[0], now[1], true, true);\n var near = nears[0];\n if (near != null) {\n near.activate();\n r.touchData.start = near;\n r.touchData.starts = nears;\n if (r.nodeIsGrabbable(near)) {\n var draggedEles = r.dragData.touchDragEles = cy.collection();\n var selectedNodes = null;\n r.redrawHint('eles', true);\n r.redrawHint('drag', true);\n if (near.selected()) {\n // reset drag elements, since near will be added again\n\n selectedNodes = cy.$(function (ele) {\n return ele.selected() && r.nodeIsGrabbable(ele);\n });\n addNodesToDrag(selectedNodes, {\n addToList: draggedEles\n });\n } else {\n addNodeToDrag(near, {\n addToList: draggedEles\n });\n }\n setGrabTarget(near);\n var makeEvent = function makeEvent(type) {\n return {\n originalEvent: e,\n type: type,\n position: {\n x: now[0],\n y: now[1]\n }\n };\n };\n near.emit(makeEvent('grabon'));\n if (selectedNodes) {\n selectedNodes.forEach(function (n) {\n n.emit(makeEvent('grab'));\n });\n } else {\n near.emit(makeEvent('grab'));\n }\n }\n }\n triggerEvents(near, ['touchstart', 'tapstart', 'vmousedown'], e, {\n x: now[0],\n y: now[1]\n });\n if (near == null) {\n r.data.bgActivePosistion = {\n x: pos[0],\n y: pos[1]\n };\n r.redrawHint('select', true);\n r.redraw();\n }\n\n // Tap, taphold\n // -----\n\n r.touchData.singleTouchMoved = false;\n r.touchData.singleTouchStartTime = +new Date();\n clearTimeout(r.touchData.tapholdTimeout);\n r.touchData.tapholdTimeout = setTimeout(function () {\n if (r.touchData.singleTouchMoved === false && !r.pinching // if pinching, then taphold unselect shouldn't take effect\n && !r.touchData.selecting // box selection shouldn't allow taphold through\n ) {\n triggerEvents(r.touchData.start, ['taphold'], e, {\n x: now[0],\n y: now[1]\n });\n }\n }, r.tapholdDuration);\n }\n if (e.touches.length >= 1) {\n var sPos = r.touchData.startPosition = [null, null, null, null, null, null];\n for (var i = 0; i < now.length; i++) {\n sPos[i] = earlier[i] = now[i];\n }\n var touch0 = e.touches[0];\n r.touchData.startGPosition = [touch0.clientX, touch0.clientY];\n }\n }, false);\n var touchmoveHandler;\n r.registerBinding(containerWindow, 'touchmove', touchmoveHandler = function touchmoveHandler(e) {\n // eslint-disable-line no-undef\n var capture = r.touchData.capture;\n if (!capture && !eventInContainer(e)) {\n return;\n }\n var select = r.selection;\n var cy = r.cy;\n var now = r.touchData.now;\n var earlier = r.touchData.earlier;\n var zoom = cy.zoom();\n if (e.touches[0]) {\n var pos = r.projectIntoViewport(e.touches[0].clientX, e.touches[0].clientY);\n now[0] = pos[0];\n now[1] = pos[1];\n }\n if (e.touches[1]) {\n var pos = r.projectIntoViewport(e.touches[1].clientX, e.touches[1].clientY);\n now[2] = pos[0];\n now[3] = pos[1];\n }\n if (e.touches[2]) {\n var pos = r.projectIntoViewport(e.touches[2].clientX, e.touches[2].clientY);\n now[4] = pos[0];\n now[5] = pos[1];\n }\n var startGPos = r.touchData.startGPosition;\n var isOverThresholdDrag;\n if (capture && e.touches[0] && startGPos) {\n var disp = [];\n for (var j = 0; j < now.length; j++) {\n disp[j] = now[j] - earlier[j];\n }\n var dx = e.touches[0].clientX - startGPos[0];\n var dx2 = dx * dx;\n var dy = e.touches[0].clientY - startGPos[1];\n var dy2 = dy * dy;\n var dist2 = dx2 + dy2;\n isOverThresholdDrag = dist2 >= r.touchTapThreshold2;\n }\n\n // context swipe cancelling\n if (capture && r.touchData.cxt) {\n e.preventDefault();\n var f1x2 = e.touches[0].clientX - offsetLeft,\n f1y2 = e.touches[0].clientY - offsetTop;\n var f2x2 = e.touches[1].clientX - offsetLeft,\n f2y2 = e.touches[1].clientY - offsetTop;\n // var distance2 = distance( f1x2, f1y2, f2x2, f2y2 );\n var distance2Sq = distanceSq(f1x2, f1y2, f2x2, f2y2);\n var factorSq = distance2Sq / distance1Sq;\n var distThreshold = 150;\n var distThresholdSq = distThreshold * distThreshold;\n var factorThreshold = 1.5;\n var factorThresholdSq = factorThreshold * factorThreshold;\n\n // cancel ctx gestures if the distance b/t the fingers increases\n if (factorSq >= factorThresholdSq || distance2Sq >= distThresholdSq) {\n r.touchData.cxt = false;\n r.data.bgActivePosistion = undefined;\n r.redrawHint('select', true);\n var cxtEvt = {\n originalEvent: e,\n type: 'cxttapend',\n position: {\n x: now[0],\n y: now[1]\n }\n };\n if (r.touchData.start) {\n r.touchData.start.unactivate().emit(cxtEvt);\n r.touchData.start = null;\n } else {\n cy.emit(cxtEvt);\n }\n }\n }\n\n // context swipe\n if (capture && r.touchData.cxt) {\n var cxtEvt = {\n originalEvent: e,\n type: 'cxtdrag',\n position: {\n x: now[0],\n y: now[1]\n }\n };\n r.data.bgActivePosistion = undefined;\n r.redrawHint('select', true);\n if (r.touchData.start) {\n r.touchData.start.emit(cxtEvt);\n } else {\n cy.emit(cxtEvt);\n }\n if (r.touchData.start) {\n r.touchData.start._private.grabbed = false;\n }\n r.touchData.cxtDragged = true;\n var near = r.findNearestElement(now[0], now[1], true, true);\n if (!r.touchData.cxtOver || near !== r.touchData.cxtOver) {\n if (r.touchData.cxtOver) {\n r.touchData.cxtOver.emit({\n originalEvent: e,\n type: 'cxtdragout',\n position: {\n x: now[0],\n y: now[1]\n }\n });\n }\n r.touchData.cxtOver = near;\n if (near) {\n near.emit({\n originalEvent: e,\n type: 'cxtdragover',\n position: {\n x: now[0],\n y: now[1]\n }\n });\n }\n }\n\n // box selection\n } else if (capture && e.touches[2] && cy.boxSelectionEnabled()) {\n e.preventDefault();\n r.data.bgActivePosistion = undefined;\n this.lastThreeTouch = +new Date();\n if (!r.touchData.selecting) {\n cy.emit({\n originalEvent: e,\n type: 'boxstart',\n position: {\n x: now[0],\n y: now[1]\n }\n });\n }\n r.touchData.selecting = true;\n r.touchData.didSelect = true;\n select[4] = 1;\n if (!select || select.length === 0 || select[0] === undefined) {\n select[0] = (now[0] + now[2] + now[4]) / 3;\n select[1] = (now[1] + now[3] + now[5]) / 3;\n select[2] = (now[0] + now[2] + now[4]) / 3 + 1;\n select[3] = (now[1] + now[3] + now[5]) / 3 + 1;\n } else {\n select[2] = (now[0] + now[2] + now[4]) / 3;\n select[3] = (now[1] + now[3] + now[5]) / 3;\n }\n r.redrawHint('select', true);\n r.redraw();\n\n // pinch to zoom\n } else if (capture && e.touches[1] && !r.touchData.didSelect // don't allow box selection to degrade to pinch-to-zoom\n && cy.zoomingEnabled() && cy.panningEnabled() && cy.userZoomingEnabled() && cy.userPanningEnabled()) {\n // two fingers => pinch to zoom\n e.preventDefault();\n r.data.bgActivePosistion = undefined;\n r.redrawHint('select', true);\n var draggedEles = r.dragData.touchDragEles;\n if (draggedEles) {\n r.redrawHint('drag', true);\n for (var i = 0; i < draggedEles.length; i++) {\n var de_p = draggedEles[i]._private;\n de_p.grabbed = false;\n de_p.rscratch.inDragLayer = false;\n }\n }\n var _start = r.touchData.start;\n\n // (x2, y2) for fingers 1 and 2\n var f1x2 = e.touches[0].clientX - offsetLeft,\n f1y2 = e.touches[0].clientY - offsetTop;\n var f2x2 = e.touches[1].clientX - offsetLeft,\n f2y2 = e.touches[1].clientY - offsetTop;\n var distance2 = distance(f1x2, f1y2, f2x2, f2y2);\n // var distance2Sq = distanceSq( f1x2, f1y2, f2x2, f2y2 );\n // var factor = Math.sqrt( distance2Sq ) / Math.sqrt( distance1Sq );\n var factor = distance2 / distance1;\n if (twoFingersStartInside) {\n // delta finger1\n var df1x = f1x2 - f1x1;\n var df1y = f1y2 - f1y1;\n\n // delta finger 2\n var df2x = f2x2 - f2x1;\n var df2y = f2y2 - f2y1;\n\n // translation is the normalised vector of the two fingers movement\n // i.e. so pinching cancels out and moving together pans\n var tx = (df1x + df2x) / 2;\n var ty = (df1y + df2y) / 2;\n\n // now calculate the zoom\n var zoom1 = cy.zoom();\n var zoom2 = zoom1 * factor;\n var pan1 = cy.pan();\n\n // the model center point converted to the current rendered pos\n var ctrx = modelCenter1[0] * zoom1 + pan1.x;\n var ctry = modelCenter1[1] * zoom1 + pan1.y;\n var pan2 = {\n x: -zoom2 / zoom1 * (ctrx - pan1.x - tx) + ctrx,\n y: -zoom2 / zoom1 * (ctry - pan1.y - ty) + ctry\n };\n\n // remove dragged eles\n if (_start && _start.active()) {\n var draggedEles = r.dragData.touchDragEles;\n freeDraggedElements(draggedEles);\n r.redrawHint('drag', true);\n r.redrawHint('eles', true);\n _start.unactivate().emit('freeon');\n draggedEles.emit('free');\n if (r.dragData.didDrag) {\n _start.emit('dragfreeon');\n draggedEles.emit('dragfree');\n }\n }\n cy.viewport({\n zoom: zoom2,\n pan: pan2,\n cancelOnFailedZoom: true\n });\n cy.emit('pinchzoom');\n distance1 = distance2;\n f1x1 = f1x2;\n f1y1 = f1y2;\n f2x1 = f2x2;\n f2y1 = f2y2;\n r.pinching = true;\n }\n\n // Re-project\n if (e.touches[0]) {\n var pos = r.projectIntoViewport(e.touches[0].clientX, e.touches[0].clientY);\n now[0] = pos[0];\n now[1] = pos[1];\n }\n if (e.touches[1]) {\n var pos = r.projectIntoViewport(e.touches[1].clientX, e.touches[1].clientY);\n now[2] = pos[0];\n now[3] = pos[1];\n }\n if (e.touches[2]) {\n var pos = r.projectIntoViewport(e.touches[2].clientX, e.touches[2].clientY);\n now[4] = pos[0];\n now[5] = pos[1];\n }\n } else if (e.touches[0] && !r.touchData.didSelect // don't allow box selection to degrade to single finger events like panning\n ) {\n var start = r.touchData.start;\n var last = r.touchData.last;\n var near;\n if (!r.hoverData.draggingEles && !r.swipePanning) {\n near = r.findNearestElement(now[0], now[1], true, true);\n }\n if (capture && start != null) {\n e.preventDefault();\n }\n\n // dragging nodes\n if (capture && start != null && r.nodeIsDraggable(start)) {\n if (isOverThresholdDrag) {\n // then dragging can happen\n var draggedEles = r.dragData.touchDragEles;\n var justStartedDrag = !r.dragData.didDrag;\n if (justStartedDrag) {\n addNodesToDrag(draggedEles, {\n inDragLayer: true\n });\n }\n r.dragData.didDrag = true;\n var totalShift = {\n x: 0,\n y: 0\n };\n if (number$1(disp[0]) && number$1(disp[1])) {\n totalShift.x += disp[0];\n totalShift.y += disp[1];\n if (justStartedDrag) {\n r.redrawHint('eles', true);\n var dragDelta = r.touchData.dragDelta;\n if (dragDelta && number$1(dragDelta[0]) && number$1(dragDelta[1])) {\n totalShift.x += dragDelta[0];\n totalShift.y += dragDelta[1];\n }\n }\n }\n r.hoverData.draggingEles = true;\n draggedEles.silentShift(totalShift).emit('position drag');\n r.redrawHint('drag', true);\n if (r.touchData.startPosition[0] == earlier[0] && r.touchData.startPosition[1] == earlier[1]) {\n r.redrawHint('eles', true);\n }\n r.redraw();\n } else {\n // otherwise keep track of drag delta for later\n var dragDelta = r.touchData.dragDelta = r.touchData.dragDelta || [];\n if (dragDelta.length === 0) {\n dragDelta.push(disp[0]);\n dragDelta.push(disp[1]);\n } else {\n dragDelta[0] += disp[0];\n dragDelta[1] += disp[1];\n }\n }\n }\n\n // touchmove\n {\n triggerEvents(start || near, ['touchmove', 'tapdrag', 'vmousemove'], e, {\n x: now[0],\n y: now[1]\n });\n if ((!start || !start.grabbed()) && near != last) {\n if (last) {\n last.emit({\n originalEvent: e,\n type: 'tapdragout',\n position: {\n x: now[0],\n y: now[1]\n }\n });\n }\n if (near) {\n near.emit({\n originalEvent: e,\n type: 'tapdragover',\n position: {\n x: now[0],\n y: now[1]\n }\n });\n }\n }\n r.touchData.last = near;\n }\n\n // check to cancel taphold\n if (capture) {\n for (var i = 0; i < now.length; i++) {\n if (now[i] && r.touchData.startPosition[i] && isOverThresholdDrag) {\n r.touchData.singleTouchMoved = true;\n }\n }\n }\n\n // panning\n if (capture && (start == null || start.pannable()) && cy.panningEnabled() && cy.userPanningEnabled()) {\n var allowPassthrough = allowPanningPassthrough(start, r.touchData.starts);\n if (allowPassthrough) {\n e.preventDefault();\n if (!r.data.bgActivePosistion) {\n r.data.bgActivePosistion = array2point(r.touchData.startPosition);\n }\n if (r.swipePanning) {\n cy.panBy({\n x: disp[0] * zoom,\n y: disp[1] * zoom\n });\n cy.emit('dragpan');\n } else if (isOverThresholdDrag) {\n r.swipePanning = true;\n cy.panBy({\n x: dx * zoom,\n y: dy * zoom\n });\n cy.emit('dragpan');\n if (start) {\n start.unactivate();\n r.redrawHint('select', true);\n r.touchData.start = null;\n }\n }\n }\n\n // Re-project\n var pos = r.projectIntoViewport(e.touches[0].clientX, e.touches[0].clientY);\n now[0] = pos[0];\n now[1] = pos[1];\n }\n }\n for (var j = 0; j < now.length; j++) {\n earlier[j] = now[j];\n }\n\n // the active bg indicator should be removed when making a swipe that is neither for dragging nodes or panning\n if (capture && e.touches.length > 0 && !r.hoverData.draggingEles && !r.swipePanning && r.data.bgActivePosistion != null) {\n r.data.bgActivePosistion = undefined;\n r.redrawHint('select', true);\n r.redraw();\n }\n }, false);\n var touchcancelHandler;\n r.registerBinding(containerWindow, 'touchcancel', touchcancelHandler = function touchcancelHandler(e) {\n // eslint-disable-line no-unused-vars\n var start = r.touchData.start;\n r.touchData.capture = false;\n if (start) {\n start.unactivate();\n }\n });\n var touchendHandler, didDoubleTouch, touchTimeout, prevTouchTimeStamp;\n r.registerBinding(containerWindow, 'touchend', touchendHandler = function touchendHandler(e) {\n // eslint-disable-line no-unused-vars\n var start = r.touchData.start;\n var capture = r.touchData.capture;\n if (capture) {\n if (e.touches.length === 0) {\n r.touchData.capture = false;\n }\n e.preventDefault();\n } else {\n return;\n }\n var select = r.selection;\n r.swipePanning = false;\n r.hoverData.draggingEles = false;\n var cy = r.cy;\n var zoom = cy.zoom();\n var now = r.touchData.now;\n var earlier = r.touchData.earlier;\n if (e.touches[0]) {\n var pos = r.projectIntoViewport(e.touches[0].clientX, e.touches[0].clientY);\n now[0] = pos[0];\n now[1] = pos[1];\n }\n if (e.touches[1]) {\n var pos = r.projectIntoViewport(e.touches[1].clientX, e.touches[1].clientY);\n now[2] = pos[0];\n now[3] = pos[1];\n }\n if (e.touches[2]) {\n var pos = r.projectIntoViewport(e.touches[2].clientX, e.touches[2].clientY);\n now[4] = pos[0];\n now[5] = pos[1];\n }\n if (start) {\n start.unactivate();\n }\n var ctxTapend;\n if (r.touchData.cxt) {\n ctxTapend = {\n originalEvent: e,\n type: 'cxttapend',\n position: {\n x: now[0],\n y: now[1]\n }\n };\n if (start) {\n start.emit(ctxTapend);\n } else {\n cy.emit(ctxTapend);\n }\n if (!r.touchData.cxtDragged) {\n var ctxTap = {\n originalEvent: e,\n type: 'cxttap',\n position: {\n x: now[0],\n y: now[1]\n }\n };\n if (start) {\n start.emit(ctxTap);\n } else {\n cy.emit(ctxTap);\n }\n }\n if (r.touchData.start) {\n r.touchData.start._private.grabbed = false;\n }\n r.touchData.cxt = false;\n r.touchData.start = null;\n r.redraw();\n return;\n }\n\n // no more box selection if we don't have three fingers\n if (!e.touches[2] && cy.boxSelectionEnabled() && r.touchData.selecting) {\n r.touchData.selecting = false;\n var box = cy.collection(r.getAllInBox(select[0], select[1], select[2], select[3]));\n select[0] = undefined;\n select[1] = undefined;\n select[2] = undefined;\n select[3] = undefined;\n select[4] = 0;\n r.redrawHint('select', true);\n cy.emit({\n type: 'boxend',\n originalEvent: e,\n position: {\n x: now[0],\n y: now[1]\n }\n });\n var eleWouldBeSelected = function eleWouldBeSelected(ele) {\n return ele.selectable() && !ele.selected();\n };\n box.emit('box').stdFilter(eleWouldBeSelected).select().emit('boxselect');\n if (box.nonempty()) {\n r.redrawHint('eles', true);\n }\n r.redraw();\n }\n if (start != null) {\n start.unactivate();\n }\n if (e.touches[2]) {\n r.data.bgActivePosistion = undefined;\n r.redrawHint('select', true);\n } else if (e.touches[1]) ; else if (e.touches[0]) ; else if (!e.touches[0]) {\n r.data.bgActivePosistion = undefined;\n r.redrawHint('select', true);\n var draggedEles = r.dragData.touchDragEles;\n if (start != null) {\n var startWasGrabbed = start._private.grabbed;\n freeDraggedElements(draggedEles);\n r.redrawHint('drag', true);\n r.redrawHint('eles', true);\n if (startWasGrabbed) {\n start.emit('freeon');\n draggedEles.emit('free');\n if (r.dragData.didDrag) {\n start.emit('dragfreeon');\n draggedEles.emit('dragfree');\n }\n }\n triggerEvents(start, ['touchend', 'tapend', 'vmouseup', 'tapdragout'], e, {\n x: now[0],\n y: now[1]\n });\n start.unactivate();\n r.touchData.start = null;\n } else {\n var near = r.findNearestElement(now[0], now[1], true, true);\n triggerEvents(near, ['touchend', 'tapend', 'vmouseup', 'tapdragout'], e, {\n x: now[0],\n y: now[1]\n });\n }\n var dx = r.touchData.startPosition[0] - now[0];\n var dx2 = dx * dx;\n var dy = r.touchData.startPosition[1] - now[1];\n var dy2 = dy * dy;\n var dist2 = dx2 + dy2;\n var rdist2 = dist2 * zoom * zoom;\n\n // Tap event, roughly same as mouse click event for touch\n if (!r.touchData.singleTouchMoved) {\n if (!start) {\n cy.$(':selected').unselect(['tapunselect']);\n }\n triggerEvents(start, ['tap', 'vclick'], e, {\n x: now[0],\n y: now[1]\n });\n didDoubleTouch = false;\n if (e.timeStamp - prevTouchTimeStamp <= cy.multiClickDebounceTime()) {\n touchTimeout && clearTimeout(touchTimeout);\n didDoubleTouch = true;\n prevTouchTimeStamp = null;\n triggerEvents(start, ['dbltap', 'vdblclick'], e, {\n x: now[0],\n y: now[1]\n });\n } else {\n touchTimeout = setTimeout(function () {\n if (didDoubleTouch) return;\n triggerEvents(start, ['onetap', 'voneclick'], e, {\n x: now[0],\n y: now[1]\n });\n }, cy.multiClickDebounceTime());\n prevTouchTimeStamp = e.timeStamp;\n }\n }\n\n // Prepare to select the currently touched node, only if it hasn't been dragged past a certain distance\n if (start != null && !r.dragData.didDrag // didn't drag nodes around\n && start._private.selectable && rdist2 < r.touchTapThreshold2 && !r.pinching // pinch to zoom should not affect selection\n ) {\n if (cy.selectionType() === 'single') {\n cy.$(isSelected).unmerge(start).unselect(['tapunselect']);\n start.select(['tapselect']);\n } else {\n if (start.selected()) {\n start.unselect(['tapunselect']);\n } else {\n start.select(['tapselect']);\n }\n }\n r.redrawHint('eles', true);\n }\n r.touchData.singleTouchMoved = true;\n }\n for (var j = 0; j < now.length; j++) {\n earlier[j] = now[j];\n }\n r.dragData.didDrag = false; // reset for next touchstart\n\n if (e.touches.length === 0) {\n r.touchData.dragDelta = [];\n r.touchData.startPosition = [null, null, null, null, null, null];\n r.touchData.startGPosition = null;\n r.touchData.didSelect = false;\n }\n if (e.touches.length < 2) {\n if (e.touches.length === 1) {\n // the old start global pos'n may not be the same finger that remains\n r.touchData.startGPosition = [e.touches[0].clientX, e.touches[0].clientY];\n }\n r.pinching = false;\n r.redrawHint('eles', true);\n r.redraw();\n }\n\n //r.redraw();\n }, false);\n\n // fallback compatibility layer for ms pointer events\n if (typeof TouchEvent === 'undefined') {\n var pointers = [];\n var makeTouch = function makeTouch(e) {\n return {\n clientX: e.clientX,\n clientY: e.clientY,\n force: 1,\n identifier: e.pointerId,\n pageX: e.pageX,\n pageY: e.pageY,\n radiusX: e.width / 2,\n radiusY: e.height / 2,\n screenX: e.screenX,\n screenY: e.screenY,\n target: e.target\n };\n };\n var makePointer = function makePointer(e) {\n return {\n event: e,\n touch: makeTouch(e)\n };\n };\n var addPointer = function addPointer(e) {\n pointers.push(makePointer(e));\n };\n var removePointer = function removePointer(e) {\n for (var i = 0; i < pointers.length; i++) {\n var p = pointers[i];\n if (p.event.pointerId === e.pointerId) {\n pointers.splice(i, 1);\n return;\n }\n }\n };\n var updatePointer = function updatePointer(e) {\n var p = pointers.filter(function (p) {\n return p.event.pointerId === e.pointerId;\n })[0];\n p.event = e;\n p.touch = makeTouch(e);\n };\n var addTouchesToEvent = function addTouchesToEvent(e) {\n e.touches = pointers.map(function (p) {\n return p.touch;\n });\n };\n var pointerIsMouse = function pointerIsMouse(e) {\n return e.pointerType === 'mouse' || e.pointerType === 4;\n };\n r.registerBinding(r.container, 'pointerdown', function (e) {\n if (pointerIsMouse(e)) {\n return;\n } // mouse already handled\n\n e.preventDefault();\n addPointer(e);\n addTouchesToEvent(e);\n touchstartHandler(e);\n });\n r.registerBinding(r.container, 'pointerup', function (e) {\n if (pointerIsMouse(e)) {\n return;\n } // mouse already handled\n\n removePointer(e);\n addTouchesToEvent(e);\n touchendHandler(e);\n });\n r.registerBinding(r.container, 'pointercancel', function (e) {\n if (pointerIsMouse(e)) {\n return;\n } // mouse already handled\n\n removePointer(e);\n addTouchesToEvent(e);\n touchcancelHandler(e);\n });\n r.registerBinding(r.container, 'pointermove', function (e) {\n if (pointerIsMouse(e)) {\n return;\n } // mouse already handled\n\n e.preventDefault();\n updatePointer(e);\n addTouchesToEvent(e);\n touchmoveHandler(e);\n });\n }\n};\n\nvar BRp$2 = {};\nBRp$2.generatePolygon = function (name, points) {\n return this.nodeShapes[name] = {\n renderer: this,\n name: name,\n points: points,\n draw: function draw(context, centerX, centerY, width, height, cornerRadius) {\n this.renderer.nodeShapeImpl('polygon', context, centerX, centerY, width, height, this.points);\n },\n intersectLine: function intersectLine(nodeX, nodeY, width, height, x, y, padding, cornerRadius) {\n return polygonIntersectLine(x, y, this.points, nodeX, nodeY, width / 2, height / 2, padding);\n },\n checkPoint: function checkPoint(x, y, padding, width, height, centerX, centerY, cornerRadius) {\n return pointInsidePolygon(x, y, this.points, centerX, centerY, width, height, [0, -1], padding);\n }\n };\n};\nBRp$2.generateEllipse = function () {\n return this.nodeShapes['ellipse'] = {\n renderer: this,\n name: 'ellipse',\n draw: function draw(context, centerX, centerY, width, height, cornerRadius) {\n this.renderer.nodeShapeImpl(this.name, context, centerX, centerY, width, height);\n },\n intersectLine: function intersectLine(nodeX, nodeY, width, height, x, y, padding, cornerRadius) {\n return intersectLineEllipse(x, y, nodeX, nodeY, width / 2 + padding, height / 2 + padding);\n },\n checkPoint: function checkPoint(x, y, padding, width, height, centerX, centerY, cornerRadius) {\n return checkInEllipse(x, y, width, height, centerX, centerY, padding);\n }\n };\n};\nBRp$2.generateRoundPolygon = function (name, points) {\n return this.nodeShapes[name] = {\n renderer: this,\n name: name,\n points: points,\n getOrCreateCorners: function getOrCreateCorners(centerX, centerY, width, height, cornerRadius, rs, field) {\n if (rs[field] !== undefined && rs[field + '-cx'] === centerX && rs[field + '-cy'] === centerY) {\n return rs[field];\n }\n rs[field] = new Array(points.length / 2);\n rs[field + '-cx'] = centerX;\n rs[field + '-cy'] = centerY;\n var halfW = width / 2;\n var halfH = height / 2;\n cornerRadius = cornerRadius === 'auto' ? getRoundPolygonRadius(width, height) : cornerRadius;\n var p = new Array(points.length / 2);\n for (var _i = 0; _i < points.length / 2; _i++) {\n p[_i] = {\n x: centerX + halfW * points[_i * 2],\n y: centerY + halfH * points[_i * 2 + 1]\n };\n }\n var i,\n p1,\n p2,\n p3,\n len = p.length;\n p1 = p[len - 1];\n // for each point\n for (i = 0; i < len; i++) {\n p2 = p[i % len];\n p3 = p[(i + 1) % len];\n rs[field][i] = getRoundCorner(p1, p2, p3, cornerRadius);\n p1 = p2;\n p2 = p3;\n }\n return rs[field];\n },\n draw: function draw(context, centerX, centerY, width, height, cornerRadius, rs) {\n this.renderer.nodeShapeImpl('round-polygon', context, centerX, centerY, width, height, this.points, this.getOrCreateCorners(centerX, centerY, width, height, cornerRadius, rs, 'drawCorners'));\n },\n intersectLine: function intersectLine(nodeX, nodeY, width, height, x, y, padding, cornerRadius, rs) {\n return roundPolygonIntersectLine(x, y, this.points, nodeX, nodeY, width, height, padding, this.getOrCreateCorners(nodeX, nodeY, width, height, cornerRadius, rs, 'corners'));\n },\n checkPoint: function checkPoint(x, y, padding, width, height, centerX, centerY, cornerRadius, rs) {\n return pointInsideRoundPolygon(x, y, this.points, centerX, centerY, width, height, this.getOrCreateCorners(centerX, centerY, width, height, cornerRadius, rs, 'corners'));\n }\n };\n};\nBRp$2.generateRoundRectangle = function () {\n return this.nodeShapes['round-rectangle'] = this.nodeShapes['roundrectangle'] = {\n renderer: this,\n name: 'round-rectangle',\n points: generateUnitNgonPointsFitToSquare(4, 0),\n draw: function draw(context, centerX, centerY, width, height, cornerRadius) {\n this.renderer.nodeShapeImpl(this.name, context, centerX, centerY, width, height, this.points, cornerRadius);\n },\n intersectLine: function intersectLine(nodeX, nodeY, width, height, x, y, padding, cornerRadius) {\n return roundRectangleIntersectLine(x, y, nodeX, nodeY, width, height, padding, cornerRadius);\n },\n checkPoint: function checkPoint(x, y, padding, width, height, centerX, centerY, cornerRadius) {\n var halfWidth = width / 2;\n var halfHeight = height / 2;\n cornerRadius = cornerRadius === 'auto' ? getRoundRectangleRadius(width, height) : cornerRadius;\n cornerRadius = Math.min(halfWidth, halfHeight, cornerRadius);\n var diam = cornerRadius * 2;\n\n // Check hBox\n if (pointInsidePolygon(x, y, this.points, centerX, centerY, width, height - diam, [0, -1], padding)) {\n return true;\n }\n\n // Check vBox\n if (pointInsidePolygon(x, y, this.points, centerX, centerY, width - diam, height, [0, -1], padding)) {\n return true;\n }\n\n // Check top left quarter circle\n if (checkInEllipse(x, y, diam, diam, centerX - halfWidth + cornerRadius, centerY - halfHeight + cornerRadius, padding)) {\n return true;\n }\n\n // Check top right quarter circle\n if (checkInEllipse(x, y, diam, diam, centerX + halfWidth - cornerRadius, centerY - halfHeight + cornerRadius, padding)) {\n return true;\n }\n\n // Check bottom right quarter circle\n if (checkInEllipse(x, y, diam, diam, centerX + halfWidth - cornerRadius, centerY + halfHeight - cornerRadius, padding)) {\n return true;\n }\n\n // Check bottom left quarter circle\n if (checkInEllipse(x, y, diam, diam, centerX - halfWidth + cornerRadius, centerY + halfHeight - cornerRadius, padding)) {\n return true;\n }\n return false;\n }\n };\n};\nBRp$2.generateCutRectangle = function () {\n return this.nodeShapes['cut-rectangle'] = this.nodeShapes['cutrectangle'] = {\n renderer: this,\n name: 'cut-rectangle',\n cornerLength: getCutRectangleCornerLength(),\n points: generateUnitNgonPointsFitToSquare(4, 0),\n draw: function draw(context, centerX, centerY, width, height, cornerRadius) {\n this.renderer.nodeShapeImpl(this.name, context, centerX, centerY, width, height, null, cornerRadius);\n },\n generateCutTrianglePts: function generateCutTrianglePts(width, height, centerX, centerY, cornerRadius) {\n var cl = cornerRadius === 'auto' ? this.cornerLength : cornerRadius;\n var hh = height / 2;\n var hw = width / 2;\n var xBegin = centerX - hw;\n var xEnd = centerX + hw;\n var yBegin = centerY - hh;\n var yEnd = centerY + hh;\n\n // points are in clockwise order, inner (imaginary) triangle pt on [4, 5]\n return {\n topLeft: [xBegin, yBegin + cl, xBegin + cl, yBegin, xBegin + cl, yBegin + cl],\n topRight: [xEnd - cl, yBegin, xEnd, yBegin + cl, xEnd - cl, yBegin + cl],\n bottomRight: [xEnd, yEnd - cl, xEnd - cl, yEnd, xEnd - cl, yEnd - cl],\n bottomLeft: [xBegin + cl, yEnd, xBegin, yEnd - cl, xBegin + cl, yEnd - cl]\n };\n },\n intersectLine: function intersectLine(nodeX, nodeY, width, height, x, y, padding, cornerRadius) {\n var cPts = this.generateCutTrianglePts(width + 2 * padding, height + 2 * padding, nodeX, nodeY, cornerRadius);\n var pts = [].concat.apply([], [cPts.topLeft.splice(0, 4), cPts.topRight.splice(0, 4), cPts.bottomRight.splice(0, 4), cPts.bottomLeft.splice(0, 4)]);\n return polygonIntersectLine(x, y, pts, nodeX, nodeY);\n },\n checkPoint: function checkPoint(x, y, padding, width, height, centerX, centerY, cornerRadius) {\n var cl = cornerRadius === 'auto' ? this.cornerLength : cornerRadius;\n // Check hBox\n if (pointInsidePolygon(x, y, this.points, centerX, centerY, width, height - 2 * cl, [0, -1], padding)) {\n return true;\n }\n\n // Check vBox\n if (pointInsidePolygon(x, y, this.points, centerX, centerY, width - 2 * cl, height, [0, -1], padding)) {\n return true;\n }\n var cutTrianglePts = this.generateCutTrianglePts(width, height, centerX, centerY);\n return pointInsidePolygonPoints(x, y, cutTrianglePts.topLeft) || pointInsidePolygonPoints(x, y, cutTrianglePts.topRight) || pointInsidePolygonPoints(x, y, cutTrianglePts.bottomRight) || pointInsidePolygonPoints(x, y, cutTrianglePts.bottomLeft);\n }\n };\n};\nBRp$2.generateBarrel = function () {\n return this.nodeShapes['barrel'] = {\n renderer: this,\n name: 'barrel',\n points: generateUnitNgonPointsFitToSquare(4, 0),\n draw: function draw(context, centerX, centerY, width, height, cornerRadius) {\n this.renderer.nodeShapeImpl(this.name, context, centerX, centerY, width, height);\n },\n intersectLine: function intersectLine(nodeX, nodeY, width, height, x, y, padding, cornerRadius) {\n // use two fixed t values for the bezier curve approximation\n\n var t0 = 0.15;\n var t1 = 0.5;\n var t2 = 0.85;\n var bPts = this.generateBarrelBezierPts(width + 2 * padding, height + 2 * padding, nodeX, nodeY);\n var approximateBarrelCurvePts = function approximateBarrelCurvePts(pts) {\n // approximate curve pts based on the two t values\n var m0 = qbezierPtAt({\n x: pts[0],\n y: pts[1]\n }, {\n x: pts[2],\n y: pts[3]\n }, {\n x: pts[4],\n y: pts[5]\n }, t0);\n var m1 = qbezierPtAt({\n x: pts[0],\n y: pts[1]\n }, {\n x: pts[2],\n y: pts[3]\n }, {\n x: pts[4],\n y: pts[5]\n }, t1);\n var m2 = qbezierPtAt({\n x: pts[0],\n y: pts[1]\n }, {\n x: pts[2],\n y: pts[3]\n }, {\n x: pts[4],\n y: pts[5]\n }, t2);\n return [pts[0], pts[1], m0.x, m0.y, m1.x, m1.y, m2.x, m2.y, pts[4], pts[5]];\n };\n var pts = [].concat(approximateBarrelCurvePts(bPts.topLeft), approximateBarrelCurvePts(bPts.topRight), approximateBarrelCurvePts(bPts.bottomRight), approximateBarrelCurvePts(bPts.bottomLeft));\n return polygonIntersectLine(x, y, pts, nodeX, nodeY);\n },\n generateBarrelBezierPts: function generateBarrelBezierPts(width, height, centerX, centerY) {\n var hh = height / 2;\n var hw = width / 2;\n var xBegin = centerX - hw;\n var xEnd = centerX + hw;\n var yBegin = centerY - hh;\n var yEnd = centerY + hh;\n var curveConstants = getBarrelCurveConstants(width, height);\n var hOffset = curveConstants.heightOffset;\n var wOffset = curveConstants.widthOffset;\n var ctrlPtXOffset = curveConstants.ctrlPtOffsetPct * width;\n\n // points are in clockwise order, inner (imaginary) control pt on [4, 5]\n var pts = {\n topLeft: [xBegin, yBegin + hOffset, xBegin + ctrlPtXOffset, yBegin, xBegin + wOffset, yBegin],\n topRight: [xEnd - wOffset, yBegin, xEnd - ctrlPtXOffset, yBegin, xEnd, yBegin + hOffset],\n bottomRight: [xEnd, yEnd - hOffset, xEnd - ctrlPtXOffset, yEnd, xEnd - wOffset, yEnd],\n bottomLeft: [xBegin + wOffset, yEnd, xBegin + ctrlPtXOffset, yEnd, xBegin, yEnd - hOffset]\n };\n pts.topLeft.isTop = true;\n pts.topRight.isTop = true;\n pts.bottomLeft.isBottom = true;\n pts.bottomRight.isBottom = true;\n return pts;\n },\n checkPoint: function checkPoint(x, y, padding, width, height, centerX, centerY, cornerRadius) {\n var curveConstants = getBarrelCurveConstants(width, height);\n var hOffset = curveConstants.heightOffset;\n var wOffset = curveConstants.widthOffset;\n\n // Check hBox\n if (pointInsidePolygon(x, y, this.points, centerX, centerY, width, height - 2 * hOffset, [0, -1], padding)) {\n return true;\n }\n\n // Check vBox\n if (pointInsidePolygon(x, y, this.points, centerX, centerY, width - 2 * wOffset, height, [0, -1], padding)) {\n return true;\n }\n var barrelCurvePts = this.generateBarrelBezierPts(width, height, centerX, centerY);\n var getCurveT = function getCurveT(x, y, curvePts) {\n var x0 = curvePts[4];\n var x1 = curvePts[2];\n var x2 = curvePts[0];\n var y0 = curvePts[5];\n // var y1 = curvePts[ 3 ];\n var y2 = curvePts[1];\n var xMin = Math.min(x0, x2);\n var xMax = Math.max(x0, x2);\n var yMin = Math.min(y0, y2);\n var yMax = Math.max(y0, y2);\n if (xMin <= x && x <= xMax && yMin <= y && y <= yMax) {\n var coeff = bezierPtsToQuadCoeff(x0, x1, x2);\n var roots = solveQuadratic(coeff[0], coeff[1], coeff[2], x);\n var validRoots = roots.filter(function (r) {\n return 0 <= r && r <= 1;\n });\n if (validRoots.length > 0) {\n return validRoots[0];\n }\n }\n return null;\n };\n var curveRegions = Object.keys(barrelCurvePts);\n for (var i = 0; i < curveRegions.length; i++) {\n var corner = curveRegions[i];\n var cornerPts = barrelCurvePts[corner];\n var t = getCurveT(x, y, cornerPts);\n if (t == null) {\n continue;\n }\n var y0 = cornerPts[5];\n var y1 = cornerPts[3];\n var y2 = cornerPts[1];\n var bezY = qbezierAt(y0, y1, y2, t);\n if (cornerPts.isTop && bezY <= y) {\n return true;\n }\n if (cornerPts.isBottom && y <= bezY) {\n return true;\n }\n }\n return false;\n }\n };\n};\nBRp$2.generateBottomRoundrectangle = function () {\n return this.nodeShapes['bottom-round-rectangle'] = this.nodeShapes['bottomroundrectangle'] = {\n renderer: this,\n name: 'bottom-round-rectangle',\n points: generateUnitNgonPointsFitToSquare(4, 0),\n draw: function draw(context, centerX, centerY, width, height, cornerRadius) {\n this.renderer.nodeShapeImpl(this.name, context, centerX, centerY, width, height, this.points, cornerRadius);\n },\n intersectLine: function intersectLine(nodeX, nodeY, width, height, x, y, padding, cornerRadius) {\n var topStartX = nodeX - (width / 2 + padding);\n var topStartY = nodeY - (height / 2 + padding);\n var topEndY = topStartY;\n var topEndX = nodeX + (width / 2 + padding);\n var topIntersections = finiteLinesIntersect(x, y, nodeX, nodeY, topStartX, topStartY, topEndX, topEndY, false);\n if (topIntersections.length > 0) {\n return topIntersections;\n }\n return roundRectangleIntersectLine(x, y, nodeX, nodeY, width, height, padding, cornerRadius);\n },\n checkPoint: function checkPoint(x, y, padding, width, height, centerX, centerY, cornerRadius) {\n cornerRadius = cornerRadius === 'auto' ? getRoundRectangleRadius(width, height) : cornerRadius;\n var diam = 2 * cornerRadius;\n\n // Check hBox\n if (pointInsidePolygon(x, y, this.points, centerX, centerY, width, height - diam, [0, -1], padding)) {\n return true;\n }\n\n // Check vBox\n if (pointInsidePolygon(x, y, this.points, centerX, centerY, width - diam, height, [0, -1], padding)) {\n return true;\n }\n\n // check non-rounded top side\n var outerWidth = width / 2 + 2 * padding;\n var outerHeight = height / 2 + 2 * padding;\n var points = [centerX - outerWidth, centerY - outerHeight, centerX - outerWidth, centerY, centerX + outerWidth, centerY, centerX + outerWidth, centerY - outerHeight];\n if (pointInsidePolygonPoints(x, y, points)) {\n return true;\n }\n\n // Check bottom right quarter circle\n if (checkInEllipse(x, y, diam, diam, centerX + width / 2 - cornerRadius, centerY + height / 2 - cornerRadius, padding)) {\n return true;\n }\n\n // Check bottom left quarter circle\n if (checkInEllipse(x, y, diam, diam, centerX - width / 2 + cornerRadius, centerY + height / 2 - cornerRadius, padding)) {\n return true;\n }\n return false;\n }\n };\n};\nBRp$2.registerNodeShapes = function () {\n var nodeShapes = this.nodeShapes = {};\n var renderer = this;\n this.generateEllipse();\n this.generatePolygon('triangle', generateUnitNgonPointsFitToSquare(3, 0));\n this.generateRoundPolygon('round-triangle', generateUnitNgonPointsFitToSquare(3, 0));\n this.generatePolygon('rectangle', generateUnitNgonPointsFitToSquare(4, 0));\n nodeShapes['square'] = nodeShapes['rectangle'];\n this.generateRoundRectangle();\n this.generateCutRectangle();\n this.generateBarrel();\n this.generateBottomRoundrectangle();\n {\n var diamondPoints = [0, 1, 1, 0, 0, -1, -1, 0];\n this.generatePolygon('diamond', diamondPoints);\n this.generateRoundPolygon('round-diamond', diamondPoints);\n }\n this.generatePolygon('pentagon', generateUnitNgonPointsFitToSquare(5, 0));\n this.generateRoundPolygon('round-pentagon', generateUnitNgonPointsFitToSquare(5, 0));\n this.generatePolygon('hexagon', generateUnitNgonPointsFitToSquare(6, 0));\n this.generateRoundPolygon('round-hexagon', generateUnitNgonPointsFitToSquare(6, 0));\n this.generatePolygon('heptagon', generateUnitNgonPointsFitToSquare(7, 0));\n this.generateRoundPolygon('round-heptagon', generateUnitNgonPointsFitToSquare(7, 0));\n this.generatePolygon('octagon', generateUnitNgonPointsFitToSquare(8, 0));\n this.generateRoundPolygon('round-octagon', generateUnitNgonPointsFitToSquare(8, 0));\n var star5Points = new Array(20);\n {\n var outerPoints = generateUnitNgonPoints(5, 0);\n var innerPoints = generateUnitNgonPoints(5, Math.PI / 5);\n\n // Outer radius is 1; inner radius of star is smaller\n var innerRadius = 0.5 * (3 - Math.sqrt(5));\n innerRadius *= 1.57;\n for (var i = 0; i < innerPoints.length / 2; i++) {\n innerPoints[i * 2] *= innerRadius;\n innerPoints[i * 2 + 1] *= innerRadius;\n }\n for (var i = 0; i < 20 / 4; i++) {\n star5Points[i * 4] = outerPoints[i * 2];\n star5Points[i * 4 + 1] = outerPoints[i * 2 + 1];\n star5Points[i * 4 + 2] = innerPoints[i * 2];\n star5Points[i * 4 + 3] = innerPoints[i * 2 + 1];\n }\n }\n star5Points = fitPolygonToSquare(star5Points);\n this.generatePolygon('star', star5Points);\n this.generatePolygon('vee', [-1, -1, 0, -0.333, 1, -1, 0, 1]);\n this.generatePolygon('rhomboid', [-1, -1, 0.333, -1, 1, 1, -0.333, 1]);\n this.generatePolygon('right-rhomboid', [-0.333, -1, 1, -1, 0.333, 1, -1, 1]);\n this.nodeShapes['concavehexagon'] = this.generatePolygon('concave-hexagon', [-1, -0.95, -0.75, 0, -1, 0.95, 1, 0.95, 0.75, 0, 1, -0.95]);\n {\n var tagPoints = [-1, -1, 0.25, -1, 1, 0, 0.25, 1, -1, 1];\n this.generatePolygon('tag', tagPoints);\n this.generateRoundPolygon('round-tag', tagPoints);\n }\n nodeShapes.makePolygon = function (points) {\n // use caching on user-specified polygons so they are as fast as native shapes\n\n var key = points.join('$');\n var name = 'polygon-' + key;\n var shape;\n if (shape = this[name]) {\n // got cached shape\n return shape;\n }\n\n // create and cache new shape\n return renderer.generatePolygon(name, points);\n };\n};\n\nvar BRp$1 = {};\nBRp$1.timeToRender = function () {\n return this.redrawTotalTime / this.redrawCount;\n};\nBRp$1.redraw = function (options) {\n options = options || staticEmptyObject();\n var r = this;\n if (r.averageRedrawTime === undefined) {\n r.averageRedrawTime = 0;\n }\n if (r.lastRedrawTime === undefined) {\n r.lastRedrawTime = 0;\n }\n if (r.lastDrawTime === undefined) {\n r.lastDrawTime = 0;\n }\n r.requestedFrame = true;\n r.renderOptions = options;\n};\nBRp$1.beforeRender = function (fn, priority) {\n // the renderer can't add tick callbacks when destroyed\n if (this.destroyed) {\n return;\n }\n if (priority == null) {\n error('Priority is not optional for beforeRender');\n }\n var cbs = this.beforeRenderCallbacks;\n cbs.push({\n fn: fn,\n priority: priority\n });\n\n // higher priority callbacks executed first\n cbs.sort(function (a, b) {\n return b.priority - a.priority;\n });\n};\nvar beforeRenderCallbacks = function beforeRenderCallbacks(r, willDraw, startTime) {\n var cbs = r.beforeRenderCallbacks;\n for (var i = 0; i < cbs.length; i++) {\n cbs[i].fn(willDraw, startTime);\n }\n};\nBRp$1.startRenderLoop = function () {\n var r = this;\n var cy = r.cy;\n if (r.renderLoopStarted) {\n return;\n } else {\n r.renderLoopStarted = true;\n }\n var renderFn = function renderFn(requestTime) {\n if (r.destroyed) {\n return;\n }\n if (cy.batching()) ; else if (r.requestedFrame && !r.skipFrame) {\n beforeRenderCallbacks(r, true, requestTime);\n var startTime = performanceNow();\n r.render(r.renderOptions);\n var endTime = r.lastDrawTime = performanceNow();\n if (r.averageRedrawTime === undefined) {\n r.averageRedrawTime = endTime - startTime;\n }\n if (r.redrawCount === undefined) {\n r.redrawCount = 0;\n }\n r.redrawCount++;\n if (r.redrawTotalTime === undefined) {\n r.redrawTotalTime = 0;\n }\n var duration = endTime - startTime;\n r.redrawTotalTime += duration;\n r.lastRedrawTime = duration;\n\n // use a weighted average with a bias from the previous average so we don't spike so easily\n r.averageRedrawTime = r.averageRedrawTime / 2 + duration / 2;\n r.requestedFrame = false;\n } else {\n beforeRenderCallbacks(r, false, requestTime);\n }\n r.skipFrame = false;\n requestAnimationFrame(renderFn);\n };\n requestAnimationFrame(renderFn);\n};\n\nvar BaseRenderer = function BaseRenderer(options) {\n this.init(options);\n};\nvar BR = BaseRenderer;\nvar BRp = BR.prototype;\nBRp.clientFunctions = ['redrawHint', 'render', 'renderTo', 'matchCanvasSize', 'nodeShapeImpl', 'arrowShapeImpl'];\nBRp.init = function (options) {\n var r = this;\n r.options = options;\n r.cy = options.cy;\n var ctr = r.container = options.cy.container();\n var containerWindow = r.cy.window();\n\n // prepend a stylesheet in the head such that\n if (containerWindow) {\n var document = containerWindow.document;\n var head = document.head;\n var stylesheetId = '__________cytoscape_stylesheet';\n var className = '__________cytoscape_container';\n var stylesheetAlreadyExists = document.getElementById(stylesheetId) != null;\n if (ctr.className.indexOf(className) < 0) {\n ctr.className = (ctr.className || '') + ' ' + className;\n }\n if (!stylesheetAlreadyExists) {\n var stylesheet = document.createElement('style');\n stylesheet.id = stylesheetId;\n stylesheet.textContent = '.' + className + ' { position: relative; }';\n head.insertBefore(stylesheet, head.children[0]); // first so lowest priority\n }\n\n var computedStyle = containerWindow.getComputedStyle(ctr);\n var position = computedStyle.getPropertyValue('position');\n if (position === 'static') {\n warn('A Cytoscape container has style position:static and so can not use UI extensions properly');\n }\n }\n r.selection = [undefined, undefined, undefined, undefined, 0]; // Coordinates for selection box, plus enabled flag\n\n r.bezierProjPcts = [0.05, 0.225, 0.4, 0.5, 0.6, 0.775, 0.95];\n\n //--Pointer-related data\n r.hoverData = {\n down: null,\n last: null,\n downTime: null,\n triggerMode: null,\n dragging: false,\n initialPan: [null, null],\n capture: false\n };\n r.dragData = {\n possibleDragElements: []\n };\n r.touchData = {\n start: null,\n capture: false,\n // These 3 fields related to tap, taphold events\n startPosition: [null, null, null, null, null, null],\n singleTouchStartTime: null,\n singleTouchMoved: true,\n now: [null, null, null, null, null, null],\n earlier: [null, null, null, null, null, null]\n };\n r.redraws = 0;\n r.showFps = options.showFps;\n r.debug = options.debug;\n r.hideEdgesOnViewport = options.hideEdgesOnViewport;\n r.textureOnViewport = options.textureOnViewport;\n r.wheelSensitivity = options.wheelSensitivity;\n r.motionBlurEnabled = options.motionBlur; // on by default\n r.forcedPixelRatio = number$1(options.pixelRatio) ? options.pixelRatio : null;\n r.motionBlur = options.motionBlur; // for initial kick off\n r.motionBlurOpacity = options.motionBlurOpacity;\n r.motionBlurTransparency = 1 - r.motionBlurOpacity;\n r.motionBlurPxRatio = 1;\n r.mbPxRBlurry = 1; //0.8;\n r.minMbLowQualFrames = 4;\n r.fullQualityMb = false;\n r.clearedForMotionBlur = [];\n r.desktopTapThreshold = options.desktopTapThreshold;\n r.desktopTapThreshold2 = options.desktopTapThreshold * options.desktopTapThreshold;\n r.touchTapThreshold = options.touchTapThreshold;\n r.touchTapThreshold2 = options.touchTapThreshold * options.touchTapThreshold;\n r.tapholdDuration = 500;\n r.bindings = [];\n r.beforeRenderCallbacks = [];\n r.beforeRenderPriorities = {\n // higher priority execs before lower one\n animations: 400,\n eleCalcs: 300,\n eleTxrDeq: 200,\n lyrTxrDeq: 150,\n lyrTxrSkip: 100\n };\n r.registerNodeShapes();\n r.registerArrowShapes();\n r.registerCalculationListeners();\n};\nBRp.notify = function (eventName, eles) {\n var r = this;\n var cy = r.cy;\n\n // the renderer can't be notified after it's destroyed\n if (this.destroyed) {\n return;\n }\n if (eventName === 'init') {\n r.load();\n return;\n }\n if (eventName === 'destroy') {\n r.destroy();\n return;\n }\n if (eventName === 'add' || eventName === 'remove' || eventName === 'move' && cy.hasCompoundNodes() || eventName === 'load' || eventName === 'zorder' || eventName === 'mount') {\n r.invalidateCachedZSortedEles();\n }\n if (eventName === 'viewport') {\n r.redrawHint('select', true);\n }\n if (eventName === 'load' || eventName === 'resize' || eventName === 'mount') {\n r.invalidateContainerClientCoordsCache();\n r.matchCanvasSize(r.container);\n }\n r.redrawHint('eles', true);\n r.redrawHint('drag', true);\n this.startRenderLoop();\n this.redraw();\n};\nBRp.destroy = function () {\n var r = this;\n r.destroyed = true;\n r.cy.stopAnimationLoop();\n for (var i = 0; i < r.bindings.length; i++) {\n var binding = r.bindings[i];\n var b = binding;\n var tgt = b.target;\n (tgt.off || tgt.removeEventListener).apply(tgt, b.args);\n }\n r.bindings = [];\n r.beforeRenderCallbacks = [];\n r.onUpdateEleCalcsFns = [];\n if (r.removeObserver) {\n r.removeObserver.disconnect();\n }\n if (r.styleObserver) {\n r.styleObserver.disconnect();\n }\n if (r.resizeObserver) {\n r.resizeObserver.disconnect();\n }\n if (r.labelCalcDiv) {\n try {\n document.body.removeChild(r.labelCalcDiv); // eslint-disable-line no-undef\n } catch (e) {\n // ie10 issue #1014\n }\n }\n};\nBRp.isHeadless = function () {\n return false;\n};\n[BRp$f, BRp$5, BRp$4, BRp$3, BRp$2, BRp$1].forEach(function (props) {\n extend(BRp, props);\n});\n\nvar fullFpsTime = 1000 / 60; // assume 60 frames per second\n\nvar defs = {\n setupDequeueing: function setupDequeueing(opts) {\n return function setupDequeueingImpl() {\n var self = this;\n var r = this.renderer;\n if (self.dequeueingSetup) {\n return;\n } else {\n self.dequeueingSetup = true;\n }\n var queueRedraw = debounce_1(function () {\n r.redrawHint('eles', true);\n r.redrawHint('drag', true);\n r.redraw();\n }, opts.deqRedrawThreshold);\n var dequeue = function dequeue(willDraw, frameStartTime) {\n var startTime = performanceNow();\n var avgRenderTime = r.averageRedrawTime;\n var renderTime = r.lastRedrawTime;\n var deqd = [];\n var extent = r.cy.extent();\n var pixelRatio = r.getPixelRatio();\n\n // if we aren't in a tick that causes a draw, then the rendered style\n // queue won't automatically be flushed before dequeueing starts\n if (!willDraw) {\n r.flushRenderedStyleQueue();\n }\n while (true) {\n // eslint-disable-line no-constant-condition\n var now = performanceNow();\n var duration = now - startTime;\n var frameDuration = now - frameStartTime;\n if (renderTime < fullFpsTime) {\n // if we're rendering faster than the ideal fps, then do dequeueing\n // during all of the remaining frame time\n\n var timeAvailable = fullFpsTime - (willDraw ? avgRenderTime : 0);\n if (frameDuration >= opts.deqFastCost * timeAvailable) {\n break;\n }\n } else {\n if (willDraw) {\n if (duration >= opts.deqCost * renderTime || duration >= opts.deqAvgCost * avgRenderTime) {\n break;\n }\n } else if (frameDuration >= opts.deqNoDrawCost * fullFpsTime) {\n break;\n }\n }\n var thisDeqd = opts.deq(self, pixelRatio, extent);\n if (thisDeqd.length > 0) {\n for (var i = 0; i < thisDeqd.length; i++) {\n deqd.push(thisDeqd[i]);\n }\n } else {\n break;\n }\n }\n\n // callbacks on dequeue\n if (deqd.length > 0) {\n opts.onDeqd(self, deqd);\n if (!willDraw && opts.shouldRedraw(self, deqd, pixelRatio, extent)) {\n queueRedraw();\n }\n }\n };\n var priority = opts.priority || noop$1;\n r.beforeRender(dequeue, priority(self));\n };\n }\n};\n\n// Allows lookups for (ele, lvl) => cache.\n// Uses keys so elements may share the same cache.\nvar ElementTextureCacheLookup = /*#__PURE__*/function () {\n function ElementTextureCacheLookup(getKey) {\n var doesEleInvalidateKey = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : falsify;\n _classCallCheck(this, ElementTextureCacheLookup);\n this.idsByKey = new Map$2();\n this.keyForId = new Map$2();\n this.cachesByLvl = new Map$2();\n this.lvls = [];\n this.getKey = getKey;\n this.doesEleInvalidateKey = doesEleInvalidateKey;\n }\n _createClass(ElementTextureCacheLookup, [{\n key: \"getIdsFor\",\n value: function getIdsFor(key) {\n if (key == null) {\n error(\"Can not get id list for null key\");\n }\n var idsByKey = this.idsByKey;\n var ids = this.idsByKey.get(key);\n if (!ids) {\n ids = new Set$1();\n idsByKey.set(key, ids);\n }\n return ids;\n }\n }, {\n key: \"addIdForKey\",\n value: function addIdForKey(key, id) {\n if (key != null) {\n this.getIdsFor(key).add(id);\n }\n }\n }, {\n key: \"deleteIdForKey\",\n value: function deleteIdForKey(key, id) {\n if (key != null) {\n this.getIdsFor(key)[\"delete\"](id);\n }\n }\n }, {\n key: \"getNumberOfIdsForKey\",\n value: function getNumberOfIdsForKey(key) {\n if (key == null) {\n return 0;\n } else {\n return this.getIdsFor(key).size;\n }\n }\n }, {\n key: \"updateKeyMappingFor\",\n value: function updateKeyMappingFor(ele) {\n var id = ele.id();\n var prevKey = this.keyForId.get(id);\n var currKey = this.getKey(ele);\n this.deleteIdForKey(prevKey, id);\n this.addIdForKey(currKey, id);\n this.keyForId.set(id, currKey);\n }\n }, {\n key: \"deleteKeyMappingFor\",\n value: function deleteKeyMappingFor(ele) {\n var id = ele.id();\n var prevKey = this.keyForId.get(id);\n this.deleteIdForKey(prevKey, id);\n this.keyForId[\"delete\"](id);\n }\n }, {\n key: \"keyHasChangedFor\",\n value: function keyHasChangedFor(ele) {\n var id = ele.id();\n var prevKey = this.keyForId.get(id);\n var newKey = this.getKey(ele);\n return prevKey !== newKey;\n }\n }, {\n key: \"isInvalid\",\n value: function isInvalid(ele) {\n return this.keyHasChangedFor(ele) || this.doesEleInvalidateKey(ele);\n }\n }, {\n key: \"getCachesAt\",\n value: function getCachesAt(lvl) {\n var cachesByLvl = this.cachesByLvl,\n lvls = this.lvls;\n var caches = cachesByLvl.get(lvl);\n if (!caches) {\n caches = new Map$2();\n cachesByLvl.set(lvl, caches);\n lvls.push(lvl);\n }\n return caches;\n }\n }, {\n key: \"getCache\",\n value: function getCache(key, lvl) {\n return this.getCachesAt(lvl).get(key);\n }\n }, {\n key: \"get\",\n value: function get(ele, lvl) {\n var key = this.getKey(ele);\n var cache = this.getCache(key, lvl);\n\n // getting for an element may need to add to the id list b/c eles can share keys\n if (cache != null) {\n this.updateKeyMappingFor(ele);\n }\n return cache;\n }\n }, {\n key: \"getForCachedKey\",\n value: function getForCachedKey(ele, lvl) {\n var key = this.keyForId.get(ele.id()); // n.b. use cached key, not newly computed key\n var cache = this.getCache(key, lvl);\n return cache;\n }\n }, {\n key: \"hasCache\",\n value: function hasCache(key, lvl) {\n return this.getCachesAt(lvl).has(key);\n }\n }, {\n key: \"has\",\n value: function has(ele, lvl) {\n var key = this.getKey(ele);\n return this.hasCache(key, lvl);\n }\n }, {\n key: \"setCache\",\n value: function setCache(key, lvl, cache) {\n cache.key = key;\n this.getCachesAt(lvl).set(key, cache);\n }\n }, {\n key: \"set\",\n value: function set(ele, lvl, cache) {\n var key = this.getKey(ele);\n this.setCache(key, lvl, cache);\n this.updateKeyMappingFor(ele);\n }\n }, {\n key: \"deleteCache\",\n value: function deleteCache(key, lvl) {\n this.getCachesAt(lvl)[\"delete\"](key);\n }\n }, {\n key: \"delete\",\n value: function _delete(ele, lvl) {\n var key = this.getKey(ele);\n this.deleteCache(key, lvl);\n }\n }, {\n key: \"invalidateKey\",\n value: function invalidateKey(key) {\n var _this = this;\n this.lvls.forEach(function (lvl) {\n return _this.deleteCache(key, lvl);\n });\n }\n\n // returns true if no other eles reference the invalidated cache (n.b. other eles may need the cache with the same key)\n }, {\n key: \"invalidate\",\n value: function invalidate(ele) {\n var id = ele.id();\n var key = this.keyForId.get(id); // n.b. use stored key rather than current (potential key)\n\n this.deleteKeyMappingFor(ele);\n var entireKeyInvalidated = this.doesEleInvalidateKey(ele);\n if (entireKeyInvalidated) {\n // clear mapping for current key\n this.invalidateKey(key);\n }\n return entireKeyInvalidated || this.getNumberOfIdsForKey(key) === 0;\n }\n }]);\n return ElementTextureCacheLookup;\n}();\n\nvar minTxrH = 25; // the size of the texture cache for small height eles (special case)\nvar txrStepH = 50; // the min size of the regular cache, and the size it increases with each step up\nvar minLvl$1 = -4; // when scaling smaller than that we don't need to re-render\nvar maxLvl$1 = 3; // when larger than this scale just render directly (caching is not helpful)\nvar maxZoom$1 = 7.99; // beyond this zoom level, layered textures are not used\nvar eleTxrSpacing = 8; // spacing between elements on textures to avoid blitting overlaps\nvar defTxrWidth = 1024; // default/minimum texture width\nvar maxTxrW = 1024; // the maximum width of a texture\nvar maxTxrH = 1024; // the maximum height of a texture\nvar minUtility = 0.2; // if usage of texture is less than this, it is retired\nvar maxFullness = 0.8; // fullness of texture after which queue removal is checked\nvar maxFullnessChecks = 10; // dequeued after this many checks\nvar deqCost$1 = 0.15; // % of add'l rendering cost allowed for dequeuing ele caches each frame\nvar deqAvgCost$1 = 0.1; // % of add'l rendering cost compared to average overall redraw time\nvar deqNoDrawCost$1 = 0.9; // % of avg frame time that can be used for dequeueing when not drawing\nvar deqFastCost$1 = 0.9; // % of frame time to be used when >60fps\nvar deqRedrawThreshold$1 = 100; // time to batch redraws together from dequeueing to allow more dequeueing calcs to happen in the meanwhile\nvar maxDeqSize$1 = 1; // number of eles to dequeue and render at higher texture in each batch\n\nvar getTxrReasons = {\n dequeue: 'dequeue',\n downscale: 'downscale',\n highQuality: 'highQuality'\n};\nvar initDefaults = defaults$g({\n getKey: null,\n doesEleInvalidateKey: falsify,\n drawElement: null,\n getBoundingBox: null,\n getRotationPoint: null,\n getRotationOffset: null,\n isVisible: trueify,\n allowEdgeTxrCaching: true,\n allowParentTxrCaching: true\n});\nvar ElementTextureCache = function ElementTextureCache(renderer, initOptions) {\n var self = this;\n self.renderer = renderer;\n self.onDequeues = [];\n var opts = initDefaults(initOptions);\n extend(self, opts);\n self.lookup = new ElementTextureCacheLookup(opts.getKey, opts.doesEleInvalidateKey);\n self.setupDequeueing();\n};\nvar ETCp = ElementTextureCache.prototype;\nETCp.reasons = getTxrReasons;\n\n// the list of textures in which new subtextures for elements can be placed\nETCp.getTextureQueue = function (txrH) {\n var self = this;\n self.eleImgCaches = self.eleImgCaches || {};\n return self.eleImgCaches[txrH] = self.eleImgCaches[txrH] || [];\n};\n\n// the list of usused textures which can be recycled (in use in texture queue)\nETCp.getRetiredTextureQueue = function (txrH) {\n var self = this;\n var rtxtrQs = self.eleImgCaches.retired = self.eleImgCaches.retired || {};\n var rtxtrQ = rtxtrQs[txrH] = rtxtrQs[txrH] || [];\n return rtxtrQ;\n};\n\n// queue of element draw requests at different scale levels\nETCp.getElementQueue = function () {\n var self = this;\n var q = self.eleCacheQueue = self.eleCacheQueue || new heap(function (a, b) {\n return b.reqs - a.reqs;\n });\n return q;\n};\n\n// queue of element draw requests at different scale levels (element id lookup)\nETCp.getElementKeyToQueue = function () {\n var self = this;\n var k2q = self.eleKeyToCacheQueue = self.eleKeyToCacheQueue || {};\n return k2q;\n};\nETCp.getElement = function (ele, bb, pxRatio, lvl, reason) {\n var self = this;\n var r = this.renderer;\n var zoom = r.cy.zoom();\n var lookup = this.lookup;\n if (!bb || bb.w === 0 || bb.h === 0 || isNaN(bb.w) || isNaN(bb.h) || !ele.visible() || ele.removed()) {\n return null;\n }\n if (!self.allowEdgeTxrCaching && ele.isEdge() || !self.allowParentTxrCaching && ele.isParent()) {\n return null;\n }\n if (lvl == null) {\n lvl = Math.ceil(log2(zoom * pxRatio));\n }\n if (lvl < minLvl$1) {\n lvl = minLvl$1;\n } else if (zoom >= maxZoom$1 || lvl > maxLvl$1) {\n return null;\n }\n var scale = Math.pow(2, lvl);\n var eleScaledH = bb.h * scale;\n var eleScaledW = bb.w * scale;\n var scaledLabelShown = r.eleTextBiggerThanMin(ele, scale);\n if (!this.isVisible(ele, scaledLabelShown)) {\n return null;\n }\n var eleCache = lookup.get(ele, lvl);\n\n // if this get was on an unused/invalidated cache, then restore the texture usage metric\n if (eleCache && eleCache.invalidated) {\n eleCache.invalidated = false;\n eleCache.texture.invalidatedWidth -= eleCache.width;\n }\n if (eleCache) {\n return eleCache;\n }\n var txrH; // which texture height this ele belongs to\n\n if (eleScaledH <= minTxrH) {\n txrH = minTxrH;\n } else if (eleScaledH <= txrStepH) {\n txrH = txrStepH;\n } else {\n txrH = Math.ceil(eleScaledH / txrStepH) * txrStepH;\n }\n if (eleScaledH > maxTxrH || eleScaledW > maxTxrW) {\n return null; // caching large elements is not efficient\n }\n\n var txrQ = self.getTextureQueue(txrH);\n\n // first try the second last one in case it has space at the end\n var txr = txrQ[txrQ.length - 2];\n var addNewTxr = function addNewTxr() {\n return self.recycleTexture(txrH, eleScaledW) || self.addTexture(txrH, eleScaledW);\n };\n\n // try the last one if there is no second last one\n if (!txr) {\n txr = txrQ[txrQ.length - 1];\n }\n\n // if the last one doesn't exist, we need a first one\n if (!txr) {\n txr = addNewTxr();\n }\n\n // if there's no room in the current texture, we need a new one\n if (txr.width - txr.usedWidth < eleScaledW) {\n txr = addNewTxr();\n }\n var scalableFrom = function scalableFrom(otherCache) {\n return otherCache && otherCache.scaledLabelShown === scaledLabelShown;\n };\n var deqing = reason && reason === getTxrReasons.dequeue;\n var highQualityReq = reason && reason === getTxrReasons.highQuality;\n var downscaleReq = reason && reason === getTxrReasons.downscale;\n var higherCache; // the nearest cache with a higher level\n for (var l = lvl + 1; l <= maxLvl$1; l++) {\n var c = lookup.get(ele, l);\n if (c) {\n higherCache = c;\n break;\n }\n }\n var oneUpCache = higherCache && higherCache.level === lvl + 1 ? higherCache : null;\n var downscale = function downscale() {\n txr.context.drawImage(oneUpCache.texture.canvas, oneUpCache.x, 0, oneUpCache.width, oneUpCache.height, txr.usedWidth, 0, eleScaledW, eleScaledH);\n };\n\n // reset ele area in texture\n txr.context.setTransform(1, 0, 0, 1, 0, 0);\n txr.context.clearRect(txr.usedWidth, 0, eleScaledW, txrH);\n if (scalableFrom(oneUpCache)) {\n // then we can relatively cheaply rescale the existing image w/o rerendering\n downscale();\n } else if (scalableFrom(higherCache)) {\n // then use the higher cache for now and queue the next level down\n // to cheaply scale towards the smaller level\n\n if (highQualityReq) {\n for (var _l = higherCache.level; _l > lvl; _l--) {\n oneUpCache = self.getElement(ele, bb, pxRatio, _l, getTxrReasons.downscale);\n }\n downscale();\n } else {\n self.queueElement(ele, higherCache.level - 1);\n return higherCache;\n }\n } else {\n var lowerCache; // the nearest cache with a lower level\n if (!deqing && !highQualityReq && !downscaleReq) {\n for (var _l2 = lvl - 1; _l2 >= minLvl$1; _l2--) {\n var _c = lookup.get(ele, _l2);\n if (_c) {\n lowerCache = _c;\n break;\n }\n }\n }\n if (scalableFrom(lowerCache)) {\n // then use the lower quality cache for now and queue the better one for later\n\n self.queueElement(ele, lvl);\n return lowerCache;\n }\n txr.context.translate(txr.usedWidth, 0);\n txr.context.scale(scale, scale);\n this.drawElement(txr.context, ele, bb, scaledLabelShown, false);\n txr.context.scale(1 / scale, 1 / scale);\n txr.context.translate(-txr.usedWidth, 0);\n }\n eleCache = {\n x: txr.usedWidth,\n texture: txr,\n level: lvl,\n scale: scale,\n width: eleScaledW,\n height: eleScaledH,\n scaledLabelShown: scaledLabelShown\n };\n txr.usedWidth += Math.ceil(eleScaledW + eleTxrSpacing);\n txr.eleCaches.push(eleCache);\n lookup.set(ele, lvl, eleCache);\n self.checkTextureFullness(txr);\n return eleCache;\n};\nETCp.invalidateElements = function (eles) {\n for (var i = 0; i < eles.length; i++) {\n this.invalidateElement(eles[i]);\n }\n};\nETCp.invalidateElement = function (ele) {\n var self = this;\n var lookup = self.lookup;\n var caches = [];\n var invalid = lookup.isInvalid(ele);\n if (!invalid) {\n return; // override the invalidation request if the element key has not changed\n }\n\n for (var lvl = minLvl$1; lvl <= maxLvl$1; lvl++) {\n var cache = lookup.getForCachedKey(ele, lvl);\n if (cache) {\n caches.push(cache);\n }\n }\n var noOtherElesUseCache = lookup.invalidate(ele);\n if (noOtherElesUseCache) {\n for (var i = 0; i < caches.length; i++) {\n var _cache = caches[i];\n var txr = _cache.texture;\n\n // remove space from the texture it belongs to\n txr.invalidatedWidth += _cache.width;\n\n // mark the cache as invalidated\n _cache.invalidated = true;\n\n // retire the texture if its utility is low\n self.checkTextureUtility(txr);\n }\n }\n\n // remove from queue since the old req was for the old state\n self.removeFromQueue(ele);\n};\nETCp.checkTextureUtility = function (txr) {\n // invalidate all entries in the cache if the cache size is small\n if (txr.invalidatedWidth >= minUtility * txr.width) {\n this.retireTexture(txr);\n }\n};\nETCp.checkTextureFullness = function (txr) {\n // if texture has been mostly filled and passed over several times, remove\n // it from the queue so we don't need to waste time looking at it to put new things\n\n var self = this;\n var txrQ = self.getTextureQueue(txr.height);\n if (txr.usedWidth / txr.width > maxFullness && txr.fullnessChecks >= maxFullnessChecks) {\n removeFromArray(txrQ, txr);\n } else {\n txr.fullnessChecks++;\n }\n};\nETCp.retireTexture = function (txr) {\n var self = this;\n var txrH = txr.height;\n var txrQ = self.getTextureQueue(txrH);\n var lookup = this.lookup;\n\n // retire the texture from the active / searchable queue:\n\n removeFromArray(txrQ, txr);\n txr.retired = true;\n\n // remove the refs from the eles to the caches:\n\n var eleCaches = txr.eleCaches;\n for (var i = 0; i < eleCaches.length; i++) {\n var eleCache = eleCaches[i];\n lookup.deleteCache(eleCache.key, eleCache.level);\n }\n clearArray(eleCaches);\n\n // add the texture to a retired queue so it can be recycled in future:\n\n var rtxtrQ = self.getRetiredTextureQueue(txrH);\n rtxtrQ.push(txr);\n};\nETCp.addTexture = function (txrH, minW) {\n var self = this;\n var txrQ = self.getTextureQueue(txrH);\n var txr = {};\n txrQ.push(txr);\n txr.eleCaches = [];\n txr.height = txrH;\n txr.width = Math.max(defTxrWidth, minW);\n txr.usedWidth = 0;\n txr.invalidatedWidth = 0;\n txr.fullnessChecks = 0;\n txr.canvas = self.renderer.makeOffscreenCanvas(txr.width, txr.height);\n txr.context = txr.canvas.getContext('2d');\n return txr;\n};\nETCp.recycleTexture = function (txrH, minW) {\n var self = this;\n var txrQ = self.getTextureQueue(txrH);\n var rtxtrQ = self.getRetiredTextureQueue(txrH);\n for (var i = 0; i < rtxtrQ.length; i++) {\n var txr = rtxtrQ[i];\n if (txr.width >= minW) {\n txr.retired = false;\n txr.usedWidth = 0;\n txr.invalidatedWidth = 0;\n txr.fullnessChecks = 0;\n clearArray(txr.eleCaches);\n txr.context.setTransform(1, 0, 0, 1, 0, 0);\n txr.context.clearRect(0, 0, txr.width, txr.height);\n removeFromArray(rtxtrQ, txr);\n txrQ.push(txr);\n return txr;\n }\n }\n};\nETCp.queueElement = function (ele, lvl) {\n var self = this;\n var q = self.getElementQueue();\n var k2q = self.getElementKeyToQueue();\n var key = this.getKey(ele);\n var existingReq = k2q[key];\n if (existingReq) {\n // use the max lvl b/c in between lvls are cheap to make\n existingReq.level = Math.max(existingReq.level, lvl);\n existingReq.eles.merge(ele);\n existingReq.reqs++;\n q.updateItem(existingReq);\n } else {\n var req = {\n eles: ele.spawn().merge(ele),\n level: lvl,\n reqs: 1,\n key: key\n };\n q.push(req);\n k2q[key] = req;\n }\n};\nETCp.dequeue = function (pxRatio /*, extent*/) {\n var self = this;\n var q = self.getElementQueue();\n var k2q = self.getElementKeyToQueue();\n var dequeued = [];\n var lookup = self.lookup;\n for (var i = 0; i < maxDeqSize$1; i++) {\n if (q.size() > 0) {\n var req = q.pop();\n var key = req.key;\n var ele = req.eles[0]; // all eles have the same key\n var cacheExists = lookup.hasCache(ele, req.level);\n\n // clear out the key to req lookup\n k2q[key] = null;\n\n // dequeueing isn't necessary with an existing cache\n if (cacheExists) {\n continue;\n }\n dequeued.push(req);\n var bb = self.getBoundingBox(ele);\n self.getElement(ele, bb, pxRatio, req.level, getTxrReasons.dequeue);\n } else {\n break;\n }\n }\n return dequeued;\n};\nETCp.removeFromQueue = function (ele) {\n var self = this;\n var q = self.getElementQueue();\n var k2q = self.getElementKeyToQueue();\n var key = this.getKey(ele);\n var req = k2q[key];\n if (req != null) {\n if (req.eles.length === 1) {\n // remove if last ele in the req\n // bring to front of queue\n req.reqs = MAX_INT$1;\n q.updateItem(req);\n q.pop(); // remove from queue\n\n k2q[key] = null; // remove from lookup map\n } else {\n // otherwise just remove ele from req\n req.eles.unmerge(ele);\n }\n }\n};\nETCp.onDequeue = function (fn) {\n this.onDequeues.push(fn);\n};\nETCp.offDequeue = function (fn) {\n removeFromArray(this.onDequeues, fn);\n};\nETCp.setupDequeueing = defs.setupDequeueing({\n deqRedrawThreshold: deqRedrawThreshold$1,\n deqCost: deqCost$1,\n deqAvgCost: deqAvgCost$1,\n deqNoDrawCost: deqNoDrawCost$1,\n deqFastCost: deqFastCost$1,\n deq: function deq(self, pxRatio, extent) {\n return self.dequeue(pxRatio, extent);\n },\n onDeqd: function onDeqd(self, deqd) {\n for (var i = 0; i < self.onDequeues.length; i++) {\n var fn = self.onDequeues[i];\n fn(deqd);\n }\n },\n shouldRedraw: function shouldRedraw(self, deqd, pxRatio, extent) {\n for (var i = 0; i < deqd.length; i++) {\n var eles = deqd[i].eles;\n for (var j = 0; j < eles.length; j++) {\n var bb = eles[j].boundingBox();\n if (boundingBoxesIntersect(bb, extent)) {\n return true;\n }\n }\n }\n return false;\n },\n priority: function priority(self) {\n return self.renderer.beforeRenderPriorities.eleTxrDeq;\n }\n});\n\nvar defNumLayers = 1; // default number of layers to use\nvar minLvl = -4; // when scaling smaller than that we don't need to re-render\nvar maxLvl = 2; // when larger than this scale just render directly (caching is not helpful)\nvar maxZoom = 3.99; // beyond this zoom level, layered textures are not used\nvar deqRedrawThreshold = 50; // time to batch redraws together from dequeueing to allow more dequeueing calcs to happen in the meanwhile\nvar refineEleDebounceTime = 50; // time to debounce sharper ele texture updates\nvar deqCost = 0.15; // % of add'l rendering cost allowed for dequeuing ele caches each frame\nvar deqAvgCost = 0.1; // % of add'l rendering cost compared to average overall redraw time\nvar deqNoDrawCost = 0.9; // % of avg frame time that can be used for dequeueing when not drawing\nvar deqFastCost = 0.9; // % of frame time to be used when >60fps\nvar maxDeqSize = 1; // number of eles to dequeue and render at higher texture in each batch\nvar invalidThreshold = 250; // time threshold for disabling b/c of invalidations\nvar maxLayerArea = 4000 * 4000; // layers can't be bigger than this\nvar useHighQualityEleTxrReqs = true; // whether to use high quality ele txr requests (generally faster and cheaper in the longterm)\n\n// var log = function(){ console.log.apply( console, arguments ); };\n\nvar LayeredTextureCache = function LayeredTextureCache(renderer) {\n var self = this;\n var r = self.renderer = renderer;\n var cy = r.cy;\n self.layersByLevel = {}; // e.g. 2 => [ layer1, layer2, ..., layerN ]\n\n self.firstGet = true;\n self.lastInvalidationTime = performanceNow() - 2 * invalidThreshold;\n self.skipping = false;\n self.eleTxrDeqs = cy.collection();\n self.scheduleElementRefinement = debounce_1(function () {\n self.refineElementTextures(self.eleTxrDeqs);\n self.eleTxrDeqs.unmerge(self.eleTxrDeqs);\n }, refineEleDebounceTime);\n r.beforeRender(function (willDraw, now) {\n if (now - self.lastInvalidationTime <= invalidThreshold) {\n self.skipping = true;\n } else {\n self.skipping = false;\n }\n }, r.beforeRenderPriorities.lyrTxrSkip);\n var qSort = function qSort(a, b) {\n return b.reqs - a.reqs;\n };\n self.layersQueue = new heap(qSort);\n self.setupDequeueing();\n};\nvar LTCp = LayeredTextureCache.prototype;\nvar layerIdPool = 0;\nvar MAX_INT = Math.pow(2, 53) - 1;\nLTCp.makeLayer = function (bb, lvl) {\n var scale = Math.pow(2, lvl);\n var w = Math.ceil(bb.w * scale);\n var h = Math.ceil(bb.h * scale);\n var canvas = this.renderer.makeOffscreenCanvas(w, h);\n var layer = {\n id: layerIdPool = ++layerIdPool % MAX_INT,\n bb: bb,\n level: lvl,\n width: w,\n height: h,\n canvas: canvas,\n context: canvas.getContext('2d'),\n eles: [],\n elesQueue: [],\n reqs: 0\n };\n\n // log('make layer %s with w %s and h %s and lvl %s', layer.id, layer.width, layer.height, layer.level);\n\n var cxt = layer.context;\n var dx = -layer.bb.x1;\n var dy = -layer.bb.y1;\n\n // do the transform on creation to save cycles (it's the same for all eles)\n cxt.scale(scale, scale);\n cxt.translate(dx, dy);\n return layer;\n};\nLTCp.getLayers = function (eles, pxRatio, lvl) {\n var self = this;\n var r = self.renderer;\n var cy = r.cy;\n var zoom = cy.zoom();\n var firstGet = self.firstGet;\n self.firstGet = false;\n\n // log('--\\nget layers with %s eles', eles.length);\n //log eles.map(function(ele){ return ele.id() }) );\n\n if (lvl == null) {\n lvl = Math.ceil(log2(zoom * pxRatio));\n if (lvl < minLvl) {\n lvl = minLvl;\n } else if (zoom >= maxZoom || lvl > maxLvl) {\n return null;\n }\n }\n self.validateLayersElesOrdering(lvl, eles);\n var layersByLvl = self.layersByLevel;\n var scale = Math.pow(2, lvl);\n var layers = layersByLvl[lvl] = layersByLvl[lvl] || [];\n var bb;\n var lvlComplete = self.levelIsComplete(lvl, eles);\n var tmpLayers;\n var checkTempLevels = function checkTempLevels() {\n var canUseAsTmpLvl = function canUseAsTmpLvl(l) {\n self.validateLayersElesOrdering(l, eles);\n if (self.levelIsComplete(l, eles)) {\n tmpLayers = layersByLvl[l];\n return true;\n }\n };\n var checkLvls = function checkLvls(dir) {\n if (tmpLayers) {\n return;\n }\n for (var l = lvl + dir; minLvl <= l && l <= maxLvl; l += dir) {\n if (canUseAsTmpLvl(l)) {\n break;\n }\n }\n };\n checkLvls(+1);\n checkLvls(-1);\n\n // remove the invalid layers; they will be replaced as needed later in this function\n for (var i = layers.length - 1; i >= 0; i--) {\n var layer = layers[i];\n if (layer.invalid) {\n removeFromArray(layers, layer);\n }\n }\n };\n if (!lvlComplete) {\n // if the current level is incomplete, then use the closest, best quality layerset temporarily\n // and later queue the current layerset so we can get the proper quality level soon\n\n checkTempLevels();\n } else {\n // log('level complete, using existing layers\\n--');\n return layers;\n }\n var getBb = function getBb() {\n if (!bb) {\n bb = makeBoundingBox();\n for (var i = 0; i < eles.length; i++) {\n updateBoundingBox(bb, eles[i].boundingBox());\n }\n }\n return bb;\n };\n var makeLayer = function makeLayer(opts) {\n opts = opts || {};\n var after = opts.after;\n getBb();\n var area = bb.w * scale * (bb.h * scale);\n if (area > maxLayerArea) {\n return null;\n }\n var layer = self.makeLayer(bb, lvl);\n if (after != null) {\n var index = layers.indexOf(after) + 1;\n layers.splice(index, 0, layer);\n } else if (opts.insert === undefined || opts.insert) {\n // no after specified => first layer made so put at start\n layers.unshift(layer);\n }\n\n // if( tmpLayers ){\n //self.queueLayer( layer );\n // }\n\n return layer;\n };\n if (self.skipping && !firstGet) {\n // log('skip layers');\n return null;\n }\n\n // log('do layers');\n\n var layer = null;\n var maxElesPerLayer = eles.length / defNumLayers;\n var allowLazyQueueing = !firstGet;\n for (var i = 0; i < eles.length; i++) {\n var ele = eles[i];\n var rs = ele._private.rscratch;\n var caches = rs.imgLayerCaches = rs.imgLayerCaches || {};\n\n // log('look at ele', ele.id());\n\n var existingLayer = caches[lvl];\n if (existingLayer) {\n // reuse layer for later eles\n // log('reuse layer for', ele.id());\n layer = existingLayer;\n continue;\n }\n if (!layer || layer.eles.length >= maxElesPerLayer || !boundingBoxInBoundingBox(layer.bb, ele.boundingBox())) {\n // log('make new layer for ele %s', ele.id());\n\n layer = makeLayer({\n insert: true,\n after: layer\n });\n\n // if now layer can be built then we can't use layers at this level\n if (!layer) {\n return null;\n }\n\n // log('new layer with id %s', layer.id);\n }\n\n if (tmpLayers || allowLazyQueueing) {\n // log('queue ele %s in layer %s', ele.id(), layer.id);\n self.queueLayer(layer, ele);\n } else {\n // log('draw ele %s in layer %s', ele.id(), layer.id);\n self.drawEleInLayer(layer, ele, lvl, pxRatio);\n }\n layer.eles.push(ele);\n caches[lvl] = layer;\n }\n\n // log('--');\n\n if (tmpLayers) {\n // then we only queued the current layerset and can't draw it yet\n return tmpLayers;\n }\n if (allowLazyQueueing) {\n // log('lazy queue level', lvl);\n return null;\n }\n return layers;\n};\n\n// a layer may want to use an ele cache of a higher level to avoid blurriness\n// so the layer level might not equal the ele level\nLTCp.getEleLevelForLayerLevel = function (lvl, pxRatio) {\n return lvl;\n};\nLTCp.drawEleInLayer = function (layer, ele, lvl, pxRatio) {\n var self = this;\n var r = this.renderer;\n var context = layer.context;\n var bb = ele.boundingBox();\n if (bb.w === 0 || bb.h === 0 || !ele.visible()) {\n return;\n }\n lvl = self.getEleLevelForLayerLevel(lvl, pxRatio);\n {\n r.setImgSmoothing(context, false);\n }\n {\n r.drawCachedElement(context, ele, null, null, lvl, useHighQualityEleTxrReqs);\n }\n {\n r.setImgSmoothing(context, true);\n }\n};\nLTCp.levelIsComplete = function (lvl, eles) {\n var self = this;\n var layers = self.layersByLevel[lvl];\n if (!layers || layers.length === 0) {\n return false;\n }\n var numElesInLayers = 0;\n for (var i = 0; i < layers.length; i++) {\n var layer = layers[i];\n\n // if there are any eles needed to be drawn yet, the level is not complete\n if (layer.reqs > 0) {\n return false;\n }\n\n // if the layer is invalid, the level is not complete\n if (layer.invalid) {\n return false;\n }\n numElesInLayers += layer.eles.length;\n }\n\n // we should have exactly the number of eles passed in to be complete\n if (numElesInLayers !== eles.length) {\n return false;\n }\n return true;\n};\nLTCp.validateLayersElesOrdering = function (lvl, eles) {\n var layers = this.layersByLevel[lvl];\n if (!layers) {\n return;\n }\n\n // if in a layer the eles are not in the same order, then the layer is invalid\n // (i.e. there is an ele in between the eles in the layer)\n\n for (var i = 0; i < layers.length; i++) {\n var layer = layers[i];\n var offset = -1;\n\n // find the offset\n for (var j = 0; j < eles.length; j++) {\n if (layer.eles[0] === eles[j]) {\n offset = j;\n break;\n }\n }\n if (offset < 0) {\n // then the layer has nonexistent elements and is invalid\n this.invalidateLayer(layer);\n continue;\n }\n\n // the eles in the layer must be in the same continuous order, else the layer is invalid\n\n var o = offset;\n for (var j = 0; j < layer.eles.length; j++) {\n if (layer.eles[j] !== eles[o + j]) {\n // log('invalidate based on ordering', layer.id);\n\n this.invalidateLayer(layer);\n break;\n }\n }\n }\n};\nLTCp.updateElementsInLayers = function (eles, update) {\n var self = this;\n var isEles = element(eles[0]);\n\n // collect udpated elements (cascaded from the layers) and update each\n // layer itself along the way\n for (var i = 0; i < eles.length; i++) {\n var req = isEles ? null : eles[i];\n var ele = isEles ? eles[i] : eles[i].ele;\n var rs = ele._private.rscratch;\n var caches = rs.imgLayerCaches = rs.imgLayerCaches || {};\n for (var l = minLvl; l <= maxLvl; l++) {\n var layer = caches[l];\n if (!layer) {\n continue;\n }\n\n // if update is a request from the ele cache, then it affects only\n // the matching level\n if (req && self.getEleLevelForLayerLevel(layer.level) !== req.level) {\n continue;\n }\n update(layer, ele, req);\n }\n }\n};\nLTCp.haveLayers = function () {\n var self = this;\n var haveLayers = false;\n for (var l = minLvl; l <= maxLvl; l++) {\n var layers = self.layersByLevel[l];\n if (layers && layers.length > 0) {\n haveLayers = true;\n break;\n }\n }\n return haveLayers;\n};\nLTCp.invalidateElements = function (eles) {\n var self = this;\n if (eles.length === 0) {\n return;\n }\n self.lastInvalidationTime = performanceNow();\n\n // log('update invalidate layer time from eles');\n\n if (eles.length === 0 || !self.haveLayers()) {\n return;\n }\n self.updateElementsInLayers(eles, function invalAssocLayers(layer, ele, req) {\n self.invalidateLayer(layer);\n });\n};\nLTCp.invalidateLayer = function (layer) {\n // log('update invalidate layer time');\n\n this.lastInvalidationTime = performanceNow();\n if (layer.invalid) {\n return;\n } // save cycles\n\n var lvl = layer.level;\n var eles = layer.eles;\n var layers = this.layersByLevel[lvl];\n\n // log('invalidate layer', layer.id );\n\n removeFromArray(layers, layer);\n // layer.eles = [];\n\n layer.elesQueue = [];\n layer.invalid = true;\n if (layer.replacement) {\n layer.replacement.invalid = true;\n }\n for (var i = 0; i < eles.length; i++) {\n var caches = eles[i]._private.rscratch.imgLayerCaches;\n if (caches) {\n caches[lvl] = null;\n }\n }\n};\nLTCp.refineElementTextures = function (eles) {\n var self = this;\n\n // log('refine', eles.length);\n\n self.updateElementsInLayers(eles, function refineEachEle(layer, ele, req) {\n var rLyr = layer.replacement;\n if (!rLyr) {\n rLyr = layer.replacement = self.makeLayer(layer.bb, layer.level);\n rLyr.replaces = layer;\n rLyr.eles = layer.eles;\n\n // log('make replacement layer %s for %s with level %s', rLyr.id, layer.id, rLyr.level);\n }\n\n if (!rLyr.reqs) {\n for (var i = 0; i < rLyr.eles.length; i++) {\n self.queueLayer(rLyr, rLyr.eles[i]);\n }\n\n // log('queue replacement layer refinement', rLyr.id);\n }\n });\n};\n\nLTCp.enqueueElementRefinement = function (ele) {\n this.eleTxrDeqs.merge(ele);\n this.scheduleElementRefinement();\n};\nLTCp.queueLayer = function (layer, ele) {\n var self = this;\n var q = self.layersQueue;\n var elesQ = layer.elesQueue;\n var hasId = elesQ.hasId = elesQ.hasId || {};\n\n // if a layer is going to be replaced, queuing is a waste of time\n if (layer.replacement) {\n return;\n }\n if (ele) {\n if (hasId[ele.id()]) {\n return;\n }\n elesQ.push(ele);\n hasId[ele.id()] = true;\n }\n if (layer.reqs) {\n layer.reqs++;\n q.updateItem(layer);\n } else {\n layer.reqs = 1;\n q.push(layer);\n }\n};\nLTCp.dequeue = function (pxRatio) {\n var self = this;\n var q = self.layersQueue;\n var deqd = [];\n var eleDeqs = 0;\n while (eleDeqs < maxDeqSize) {\n if (q.size() === 0) {\n break;\n }\n var layer = q.peek();\n\n // if a layer has been or will be replaced, then don't waste time with it\n if (layer.replacement) {\n // log('layer %s in queue skipped b/c it already has a replacement', layer.id);\n q.pop();\n continue;\n }\n\n // if this is a replacement layer that has been superceded, then forget it\n if (layer.replaces && layer !== layer.replaces.replacement) {\n // log('layer is no longer the most uptodate replacement; dequeued', layer.id)\n q.pop();\n continue;\n }\n if (layer.invalid) {\n // log('replacement layer %s is invalid; dequeued', layer.id);\n q.pop();\n continue;\n }\n var ele = layer.elesQueue.shift();\n if (ele) {\n // log('dequeue layer %s', layer.id);\n\n self.drawEleInLayer(layer, ele, layer.level, pxRatio);\n eleDeqs++;\n }\n if (deqd.length === 0) {\n // we need only one entry in deqd to queue redrawing etc\n deqd.push(true);\n }\n\n // if the layer has all its eles done, then remove from the queue\n if (layer.elesQueue.length === 0) {\n q.pop();\n layer.reqs = 0;\n\n // log('dequeue of layer %s complete', layer.id);\n\n // when a replacement layer is dequeued, it replaces the old layer in the level\n if (layer.replaces) {\n self.applyLayerReplacement(layer);\n }\n self.requestRedraw();\n }\n }\n return deqd;\n};\nLTCp.applyLayerReplacement = function (layer) {\n var self = this;\n var layersInLevel = self.layersByLevel[layer.level];\n var replaced = layer.replaces;\n var index = layersInLevel.indexOf(replaced);\n\n // if the replaced layer is not in the active list for the level, then replacing\n // refs would be a mistake (i.e. overwriting the true active layer)\n if (index < 0 || replaced.invalid) {\n // log('replacement layer would have no effect', layer.id);\n return;\n }\n layersInLevel[index] = layer; // replace level ref\n\n // replace refs in eles\n for (var i = 0; i < layer.eles.length; i++) {\n var _p = layer.eles[i]._private;\n var cache = _p.imgLayerCaches = _p.imgLayerCaches || {};\n if (cache) {\n cache[layer.level] = layer;\n }\n }\n\n // log('apply replacement layer %s over %s', layer.id, replaced.id);\n\n self.requestRedraw();\n};\nLTCp.requestRedraw = debounce_1(function () {\n var r = this.renderer;\n r.redrawHint('eles', true);\n r.redrawHint('drag', true);\n r.redraw();\n}, 100);\nLTCp.setupDequeueing = defs.setupDequeueing({\n deqRedrawThreshold: deqRedrawThreshold,\n deqCost: deqCost,\n deqAvgCost: deqAvgCost,\n deqNoDrawCost: deqNoDrawCost,\n deqFastCost: deqFastCost,\n deq: function deq(self, pxRatio) {\n return self.dequeue(pxRatio);\n },\n onDeqd: noop$1,\n shouldRedraw: trueify,\n priority: function priority(self) {\n return self.renderer.beforeRenderPriorities.lyrTxrDeq;\n }\n});\n\nvar CRp$a = {};\nvar impl;\nfunction polygon(context, points) {\n for (var i = 0; i < points.length; i++) {\n var pt = points[i];\n context.lineTo(pt.x, pt.y);\n }\n}\nfunction triangleBackcurve(context, points, controlPoint) {\n var firstPt;\n for (var i = 0; i < points.length; i++) {\n var pt = points[i];\n if (i === 0) {\n firstPt = pt;\n }\n context.lineTo(pt.x, pt.y);\n }\n context.quadraticCurveTo(controlPoint.x, controlPoint.y, firstPt.x, firstPt.y);\n}\nfunction triangleTee(context, trianglePoints, teePoints) {\n if (context.beginPath) {\n context.beginPath();\n }\n var triPts = trianglePoints;\n for (var i = 0; i < triPts.length; i++) {\n var pt = triPts[i];\n context.lineTo(pt.x, pt.y);\n }\n var teePts = teePoints;\n var firstTeePt = teePoints[0];\n context.moveTo(firstTeePt.x, firstTeePt.y);\n for (var i = 1; i < teePts.length; i++) {\n var pt = teePts[i];\n context.lineTo(pt.x, pt.y);\n }\n if (context.closePath) {\n context.closePath();\n }\n}\nfunction circleTriangle(context, trianglePoints, rx, ry, r) {\n if (context.beginPath) {\n context.beginPath();\n }\n context.arc(rx, ry, r, 0, Math.PI * 2, false);\n var triPts = trianglePoints;\n var firstTrPt = triPts[0];\n context.moveTo(firstTrPt.x, firstTrPt.y);\n for (var i = 0; i < triPts.length; i++) {\n var pt = triPts[i];\n context.lineTo(pt.x, pt.y);\n }\n if (context.closePath) {\n context.closePath();\n }\n}\nfunction circle(context, rx, ry, r) {\n context.arc(rx, ry, r, 0, Math.PI * 2, false);\n}\nCRp$a.arrowShapeImpl = function (name) {\n return (impl || (impl = {\n 'polygon': polygon,\n 'triangle-backcurve': triangleBackcurve,\n 'triangle-tee': triangleTee,\n 'circle-triangle': circleTriangle,\n 'triangle-cross': triangleTee,\n 'circle': circle\n }))[name];\n};\n\nvar CRp$9 = {};\nCRp$9.drawElement = function (context, ele, shiftToOriginWithBb, showLabel, showOverlay, showOpacity) {\n var r = this;\n if (ele.isNode()) {\n r.drawNode(context, ele, shiftToOriginWithBb, showLabel, showOverlay, showOpacity);\n } else {\n r.drawEdge(context, ele, shiftToOriginWithBb, showLabel, showOverlay, showOpacity);\n }\n};\nCRp$9.drawElementOverlay = function (context, ele) {\n var r = this;\n if (ele.isNode()) {\n r.drawNodeOverlay(context, ele);\n } else {\n r.drawEdgeOverlay(context, ele);\n }\n};\nCRp$9.drawElementUnderlay = function (context, ele) {\n var r = this;\n if (ele.isNode()) {\n r.drawNodeUnderlay(context, ele);\n } else {\n r.drawEdgeUnderlay(context, ele);\n }\n};\nCRp$9.drawCachedElementPortion = function (context, ele, eleTxrCache, pxRatio, lvl, reason, getRotation, getOpacity) {\n var r = this;\n var bb = eleTxrCache.getBoundingBox(ele);\n if (bb.w === 0 || bb.h === 0) {\n return;\n } // ignore zero size case\n\n var eleCache = eleTxrCache.getElement(ele, bb, pxRatio, lvl, reason);\n if (eleCache != null) {\n var opacity = getOpacity(r, ele);\n if (opacity === 0) {\n return;\n }\n var theta = getRotation(r, ele);\n var x1 = bb.x1,\n y1 = bb.y1,\n w = bb.w,\n h = bb.h;\n var x, y, sx, sy, smooth;\n if (theta !== 0) {\n var rotPt = eleTxrCache.getRotationPoint(ele);\n sx = rotPt.x;\n sy = rotPt.y;\n context.translate(sx, sy);\n context.rotate(theta);\n smooth = r.getImgSmoothing(context);\n if (!smooth) {\n r.setImgSmoothing(context, true);\n }\n var off = eleTxrCache.getRotationOffset(ele);\n x = off.x;\n y = off.y;\n } else {\n x = x1;\n y = y1;\n }\n var oldGlobalAlpha;\n if (opacity !== 1) {\n oldGlobalAlpha = context.globalAlpha;\n context.globalAlpha = oldGlobalAlpha * opacity;\n }\n context.drawImage(eleCache.texture.canvas, eleCache.x, 0, eleCache.width, eleCache.height, x, y, w, h);\n if (opacity !== 1) {\n context.globalAlpha = oldGlobalAlpha;\n }\n if (theta !== 0) {\n context.rotate(-theta);\n context.translate(-sx, -sy);\n if (!smooth) {\n r.setImgSmoothing(context, false);\n }\n }\n } else {\n eleTxrCache.drawElement(context, ele); // direct draw fallback\n }\n};\n\nvar getZeroRotation = function getZeroRotation() {\n return 0;\n};\nvar getLabelRotation = function getLabelRotation(r, ele) {\n return r.getTextAngle(ele, null);\n};\nvar getSourceLabelRotation = function getSourceLabelRotation(r, ele) {\n return r.getTextAngle(ele, 'source');\n};\nvar getTargetLabelRotation = function getTargetLabelRotation(r, ele) {\n return r.getTextAngle(ele, 'target');\n};\nvar getOpacity = function getOpacity(r, ele) {\n return ele.effectiveOpacity();\n};\nvar getTextOpacity = function getTextOpacity(e, ele) {\n return ele.pstyle('text-opacity').pfValue * ele.effectiveOpacity();\n};\nCRp$9.drawCachedElement = function (context, ele, pxRatio, extent, lvl, requestHighQuality) {\n var r = this;\n var _r$data = r.data,\n eleTxrCache = _r$data.eleTxrCache,\n lblTxrCache = _r$data.lblTxrCache,\n slbTxrCache = _r$data.slbTxrCache,\n tlbTxrCache = _r$data.tlbTxrCache;\n var bb = ele.boundingBox();\n var reason = requestHighQuality === true ? eleTxrCache.reasons.highQuality : null;\n if (bb.w === 0 || bb.h === 0 || !ele.visible()) {\n return;\n }\n if (!extent || boundingBoxesIntersect(bb, extent)) {\n var isEdge = ele.isEdge();\n var badLine = ele.element()._private.rscratch.badLine;\n r.drawElementUnderlay(context, ele);\n r.drawCachedElementPortion(context, ele, eleTxrCache, pxRatio, lvl, reason, getZeroRotation, getOpacity);\n if (!isEdge || !badLine) {\n r.drawCachedElementPortion(context, ele, lblTxrCache, pxRatio, lvl, reason, getLabelRotation, getTextOpacity);\n }\n if (isEdge && !badLine) {\n r.drawCachedElementPortion(context, ele, slbTxrCache, pxRatio, lvl, reason, getSourceLabelRotation, getTextOpacity);\n r.drawCachedElementPortion(context, ele, tlbTxrCache, pxRatio, lvl, reason, getTargetLabelRotation, getTextOpacity);\n }\n r.drawElementOverlay(context, ele);\n }\n};\nCRp$9.drawElements = function (context, eles) {\n var r = this;\n for (var i = 0; i < eles.length; i++) {\n var ele = eles[i];\n r.drawElement(context, ele);\n }\n};\nCRp$9.drawCachedElements = function (context, eles, pxRatio, extent) {\n var r = this;\n for (var i = 0; i < eles.length; i++) {\n var ele = eles[i];\n r.drawCachedElement(context, ele, pxRatio, extent);\n }\n};\nCRp$9.drawCachedNodes = function (context, eles, pxRatio, extent) {\n var r = this;\n for (var i = 0; i < eles.length; i++) {\n var ele = eles[i];\n if (!ele.isNode()) {\n continue;\n }\n r.drawCachedElement(context, ele, pxRatio, extent);\n }\n};\nCRp$9.drawLayeredElements = function (context, eles, pxRatio, extent) {\n var r = this;\n var layers = r.data.lyrTxrCache.getLayers(eles, pxRatio);\n if (layers) {\n for (var i = 0; i < layers.length; i++) {\n var layer = layers[i];\n var bb = layer.bb;\n if (bb.w === 0 || bb.h === 0) {\n continue;\n }\n context.drawImage(layer.canvas, bb.x1, bb.y1, bb.w, bb.h);\n }\n } else {\n // fall back on plain caching if no layers\n r.drawCachedElements(context, eles, pxRatio, extent);\n }\n};\n\nvar CRp$8 = {};\nCRp$8.drawEdge = function (context, edge, shiftToOriginWithBb) {\n var drawLabel = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;\n var shouldDrawOverlay = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : true;\n var shouldDrawOpacity = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : true;\n var r = this;\n var rs = edge._private.rscratch;\n if (shouldDrawOpacity && !edge.visible()) {\n return;\n }\n\n // if bezier ctrl pts can not be calculated, then die\n if (rs.badLine || rs.allpts == null || isNaN(rs.allpts[0])) {\n // isNaN in case edge is impossible and browser bugs (e.g. safari)\n return;\n }\n var bb;\n if (shiftToOriginWithBb) {\n bb = shiftToOriginWithBb;\n context.translate(-bb.x1, -bb.y1);\n }\n var opacity = shouldDrawOpacity ? edge.pstyle('opacity').value : 1;\n var lineOpacity = shouldDrawOpacity ? edge.pstyle('line-opacity').value : 1;\n var curveStyle = edge.pstyle('curve-style').value;\n var lineStyle = edge.pstyle('line-style').value;\n var edgeWidth = edge.pstyle('width').pfValue;\n var lineCap = edge.pstyle('line-cap').value;\n var lineOutlineWidth = edge.pstyle('line-outline-width').value;\n var lineOutlineColor = edge.pstyle('line-outline-color').value;\n var effectiveLineOpacity = opacity * lineOpacity;\n // separate arrow opacity would require arrow-opacity property\n var effectiveArrowOpacity = opacity * lineOpacity;\n var drawLine = function drawLine() {\n var strokeOpacity = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : effectiveLineOpacity;\n if (curveStyle === 'straight-triangle') {\n r.eleStrokeStyle(context, edge, strokeOpacity);\n r.drawEdgeTrianglePath(edge, context, rs.allpts);\n } else {\n context.lineWidth = edgeWidth;\n context.lineCap = lineCap;\n r.eleStrokeStyle(context, edge, strokeOpacity);\n r.drawEdgePath(edge, context, rs.allpts, lineStyle);\n context.lineCap = 'butt'; // reset for other drawing functions\n }\n };\n\n var drawLineOutline = function drawLineOutline() {\n var strokeOpacity = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : effectiveLineOpacity;\n context.lineWidth = edgeWidth + lineOutlineWidth;\n context.lineCap = lineCap;\n if (lineOutlineWidth > 0) {\n r.colorStrokeStyle(context, lineOutlineColor[0], lineOutlineColor[1], lineOutlineColor[2], strokeOpacity);\n } else {\n // do not draw any lineOutline\n context.lineCap = 'butt'; // reset for other drawing functions\n return;\n }\n if (curveStyle === 'straight-triangle') {\n r.drawEdgeTrianglePath(edge, context, rs.allpts);\n } else {\n r.drawEdgePath(edge, context, rs.allpts, lineStyle);\n context.lineCap = 'butt'; // reset for other drawing functions\n }\n };\n\n var drawOverlay = function drawOverlay() {\n if (!shouldDrawOverlay) {\n return;\n }\n r.drawEdgeOverlay(context, edge);\n };\n var drawUnderlay = function drawUnderlay() {\n if (!shouldDrawOverlay) {\n return;\n }\n r.drawEdgeUnderlay(context, edge);\n };\n var drawArrows = function drawArrows() {\n var arrowOpacity = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : effectiveArrowOpacity;\n r.drawArrowheads(context, edge, arrowOpacity);\n };\n var drawText = function drawText() {\n r.drawElementText(context, edge, null, drawLabel);\n };\n context.lineJoin = 'round';\n var ghost = edge.pstyle('ghost').value === 'yes';\n if (ghost) {\n var gx = edge.pstyle('ghost-offset-x').pfValue;\n var gy = edge.pstyle('ghost-offset-y').pfValue;\n var ghostOpacity = edge.pstyle('ghost-opacity').value;\n var effectiveGhostOpacity = effectiveLineOpacity * ghostOpacity;\n context.translate(gx, gy);\n drawLine(effectiveGhostOpacity);\n drawArrows(effectiveGhostOpacity);\n context.translate(-gx, -gy);\n } else {\n drawLineOutline();\n }\n drawUnderlay();\n drawLine();\n drawArrows();\n drawOverlay();\n drawText();\n if (shiftToOriginWithBb) {\n context.translate(bb.x1, bb.y1);\n }\n};\nvar drawEdgeOverlayUnderlay = function drawEdgeOverlayUnderlay(overlayOrUnderlay) {\n if (!['overlay', 'underlay'].includes(overlayOrUnderlay)) {\n throw new Error('Invalid state');\n }\n return function (context, edge) {\n if (!edge.visible()) {\n return;\n }\n var opacity = edge.pstyle(\"\".concat(overlayOrUnderlay, \"-opacity\")).value;\n if (opacity === 0) {\n return;\n }\n var r = this;\n var usePaths = r.usePaths();\n var rs = edge._private.rscratch;\n var padding = edge.pstyle(\"\".concat(overlayOrUnderlay, \"-padding\")).pfValue;\n var width = 2 * padding;\n var color = edge.pstyle(\"\".concat(overlayOrUnderlay, \"-color\")).value;\n context.lineWidth = width;\n if (rs.edgeType === 'self' && !usePaths) {\n context.lineCap = 'butt';\n } else {\n context.lineCap = 'round';\n }\n r.colorStrokeStyle(context, color[0], color[1], color[2], opacity);\n r.drawEdgePath(edge, context, rs.allpts, 'solid');\n };\n};\nCRp$8.drawEdgeOverlay = drawEdgeOverlayUnderlay('overlay');\nCRp$8.drawEdgeUnderlay = drawEdgeOverlayUnderlay('underlay');\nCRp$8.drawEdgePath = function (edge, context, pts, type) {\n var rs = edge._private.rscratch;\n var canvasCxt = context;\n var path;\n var pathCacheHit = false;\n var usePaths = this.usePaths();\n var lineDashPattern = edge.pstyle('line-dash-pattern').pfValue;\n var lineDashOffset = edge.pstyle('line-dash-offset').pfValue;\n if (usePaths) {\n var pathCacheKey = pts.join('$');\n var keyMatches = rs.pathCacheKey && rs.pathCacheKey === pathCacheKey;\n if (keyMatches) {\n path = context = rs.pathCache;\n pathCacheHit = true;\n } else {\n path = context = new Path2D();\n rs.pathCacheKey = pathCacheKey;\n rs.pathCache = path;\n }\n }\n if (canvasCxt.setLineDash) {\n // for very outofdate browsers\n switch (type) {\n case 'dotted':\n canvasCxt.setLineDash([1, 1]);\n break;\n case 'dashed':\n canvasCxt.setLineDash(lineDashPattern);\n canvasCxt.lineDashOffset = lineDashOffset;\n break;\n case 'solid':\n canvasCxt.setLineDash([]);\n break;\n }\n }\n if (!pathCacheHit && !rs.badLine) {\n if (context.beginPath) {\n context.beginPath();\n }\n context.moveTo(pts[0], pts[1]);\n switch (rs.edgeType) {\n case 'bezier':\n case 'self':\n case 'compound':\n case 'multibezier':\n for (var i = 2; i + 3 < pts.length; i += 4) {\n context.quadraticCurveTo(pts[i], pts[i + 1], pts[i + 2], pts[i + 3]);\n }\n break;\n case 'straight':\n case 'haystack':\n for (var _i = 2; _i + 1 < pts.length; _i += 2) {\n context.lineTo(pts[_i], pts[_i + 1]);\n }\n break;\n case 'segments':\n if (rs.isRound) {\n var _iterator = _createForOfIteratorHelper(rs.roundCorners),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var corner = _step.value;\n drawPreparedRoundCorner(context, corner);\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n context.lineTo(pts[pts.length - 2], pts[pts.length - 1]);\n } else {\n for (var _i2 = 2; _i2 + 1 < pts.length; _i2 += 2) {\n context.lineTo(pts[_i2], pts[_i2 + 1]);\n }\n }\n break;\n }\n }\n context = canvasCxt;\n if (usePaths) {\n context.stroke(path);\n } else {\n context.stroke();\n }\n\n // reset any line dashes\n if (context.setLineDash) {\n // for very outofdate browsers\n context.setLineDash([]);\n }\n};\nCRp$8.drawEdgeTrianglePath = function (edge, context, pts) {\n // use line stroke style for triangle fill style\n context.fillStyle = context.strokeStyle;\n var edgeWidth = edge.pstyle('width').pfValue;\n for (var i = 0; i + 1 < pts.length; i += 2) {\n var vector = [pts[i + 2] - pts[i], pts[i + 3] - pts[i + 1]];\n var length = Math.sqrt(vector[0] * vector[0] + vector[1] * vector[1]);\n var normal = [vector[1] / length, -vector[0] / length];\n var triangleHead = [normal[0] * edgeWidth / 2, normal[1] * edgeWidth / 2];\n context.beginPath();\n context.moveTo(pts[i] - triangleHead[0], pts[i + 1] - triangleHead[1]);\n context.lineTo(pts[i] + triangleHead[0], pts[i + 1] + triangleHead[1]);\n context.lineTo(pts[i + 2], pts[i + 3]);\n context.closePath();\n context.fill();\n }\n};\nCRp$8.drawArrowheads = function (context, edge, opacity) {\n var rs = edge._private.rscratch;\n var isHaystack = rs.edgeType === 'haystack';\n if (!isHaystack) {\n this.drawArrowhead(context, edge, 'source', rs.arrowStartX, rs.arrowStartY, rs.srcArrowAngle, opacity);\n }\n this.drawArrowhead(context, edge, 'mid-target', rs.midX, rs.midY, rs.midtgtArrowAngle, opacity);\n this.drawArrowhead(context, edge, 'mid-source', rs.midX, rs.midY, rs.midsrcArrowAngle, opacity);\n if (!isHaystack) {\n this.drawArrowhead(context, edge, 'target', rs.arrowEndX, rs.arrowEndY, rs.tgtArrowAngle, opacity);\n }\n};\nCRp$8.drawArrowhead = function (context, edge, prefix, x, y, angle, opacity) {\n if (isNaN(x) || x == null || isNaN(y) || y == null || isNaN(angle) || angle == null) {\n return;\n }\n var self = this;\n var arrowShape = edge.pstyle(prefix + '-arrow-shape').value;\n if (arrowShape === 'none') {\n return;\n }\n var arrowClearFill = edge.pstyle(prefix + '-arrow-fill').value === 'hollow' ? 'both' : 'filled';\n var arrowFill = edge.pstyle(prefix + '-arrow-fill').value;\n var edgeWidth = edge.pstyle('width').pfValue;\n var pArrowWidth = edge.pstyle(prefix + '-arrow-width');\n var arrowWidth = pArrowWidth.value === 'match-line' ? edgeWidth : pArrowWidth.pfValue;\n if (pArrowWidth.units === '%') arrowWidth *= edgeWidth;\n var edgeOpacity = edge.pstyle('opacity').value;\n if (opacity === undefined) {\n opacity = edgeOpacity;\n }\n var gco = context.globalCompositeOperation;\n if (opacity !== 1 || arrowFill === 'hollow') {\n // then extra clear is needed\n context.globalCompositeOperation = 'destination-out';\n self.colorFillStyle(context, 255, 255, 255, 1);\n self.colorStrokeStyle(context, 255, 255, 255, 1);\n self.drawArrowShape(edge, context, arrowClearFill, edgeWidth, arrowShape, arrowWidth, x, y, angle);\n context.globalCompositeOperation = gco;\n } // otherwise, the opaque arrow clears it for free :)\n\n var color = edge.pstyle(prefix + '-arrow-color').value;\n self.colorFillStyle(context, color[0], color[1], color[2], opacity);\n self.colorStrokeStyle(context, color[0], color[1], color[2], opacity);\n self.drawArrowShape(edge, context, arrowFill, edgeWidth, arrowShape, arrowWidth, x, y, angle);\n};\nCRp$8.drawArrowShape = function (edge, context, fill, edgeWidth, shape, shapeWidth, x, y, angle) {\n var r = this;\n var usePaths = this.usePaths() && shape !== 'triangle-cross';\n var pathCacheHit = false;\n var path;\n var canvasContext = context;\n var translation = {\n x: x,\n y: y\n };\n var scale = edge.pstyle('arrow-scale').value;\n var size = this.getArrowWidth(edgeWidth, scale);\n var shapeImpl = r.arrowShapes[shape];\n if (usePaths) {\n var cache = r.arrowPathCache = r.arrowPathCache || [];\n var key = hashString(shape);\n var cachedPath = cache[key];\n if (cachedPath != null) {\n path = context = cachedPath;\n pathCacheHit = true;\n } else {\n path = context = new Path2D();\n cache[key] = path;\n }\n }\n if (!pathCacheHit) {\n if (context.beginPath) {\n context.beginPath();\n }\n if (usePaths) {\n // store in the path cache with values easily manipulated later\n shapeImpl.draw(context, 1, 0, {\n x: 0,\n y: 0\n }, 1);\n } else {\n shapeImpl.draw(context, size, angle, translation, edgeWidth);\n }\n if (context.closePath) {\n context.closePath();\n }\n }\n context = canvasContext;\n if (usePaths) {\n // set transform to arrow position/orientation\n context.translate(x, y);\n context.rotate(angle);\n context.scale(size, size);\n }\n if (fill === 'filled' || fill === 'both') {\n if (usePaths) {\n context.fill(path);\n } else {\n context.fill();\n }\n }\n if (fill === 'hollow' || fill === 'both') {\n context.lineWidth = shapeWidth / (usePaths ? size : 1);\n context.lineJoin = 'miter';\n if (usePaths) {\n context.stroke(path);\n } else {\n context.stroke();\n }\n }\n if (usePaths) {\n // reset transform by applying inverse\n context.scale(1 / size, 1 / size);\n context.rotate(-angle);\n context.translate(-x, -y);\n }\n};\n\nvar CRp$7 = {};\nCRp$7.safeDrawImage = function (context, img, ix, iy, iw, ih, x, y, w, h) {\n // detect problematic cases for old browsers with bad images (cheaper than try-catch)\n if (iw <= 0 || ih <= 0 || w <= 0 || h <= 0) {\n return;\n }\n try {\n context.drawImage(img, ix, iy, iw, ih, x, y, w, h);\n } catch (e) {\n warn(e);\n }\n};\nCRp$7.drawInscribedImage = function (context, img, node, index, nodeOpacity) {\n var r = this;\n var pos = node.position();\n var nodeX = pos.x;\n var nodeY = pos.y;\n var styleObj = node.cy().style();\n var getIndexedStyle = styleObj.getIndexedStyle.bind(styleObj);\n var fit = getIndexedStyle(node, 'background-fit', 'value', index);\n var repeat = getIndexedStyle(node, 'background-repeat', 'value', index);\n var nodeW = node.width();\n var nodeH = node.height();\n var paddingX2 = node.padding() * 2;\n var nodeTW = nodeW + (getIndexedStyle(node, 'background-width-relative-to', 'value', index) === 'inner' ? 0 : paddingX2);\n var nodeTH = nodeH + (getIndexedStyle(node, 'background-height-relative-to', 'value', index) === 'inner' ? 0 : paddingX2);\n var rs = node._private.rscratch;\n var clip = getIndexedStyle(node, 'background-clip', 'value', index);\n var shouldClip = clip === 'node';\n var imgOpacity = getIndexedStyle(node, 'background-image-opacity', 'value', index) * nodeOpacity;\n var smooth = getIndexedStyle(node, 'background-image-smoothing', 'value', index);\n var cornerRadius = node.pstyle('corner-radius').value;\n if (cornerRadius !== 'auto') cornerRadius = node.pstyle('corner-radius').pfValue;\n var imgW = img.width || img.cachedW;\n var imgH = img.height || img.cachedH;\n\n // workaround for broken browsers like ie\n if (null == imgW || null == imgH) {\n document.body.appendChild(img); // eslint-disable-line no-undef\n\n imgW = img.cachedW = img.width || img.offsetWidth;\n imgH = img.cachedH = img.height || img.offsetHeight;\n document.body.removeChild(img); // eslint-disable-line no-undef\n }\n\n var w = imgW;\n var h = imgH;\n if (getIndexedStyle(node, 'background-width', 'value', index) !== 'auto') {\n if (getIndexedStyle(node, 'background-width', 'units', index) === '%') {\n w = getIndexedStyle(node, 'background-width', 'pfValue', index) * nodeTW;\n } else {\n w = getIndexedStyle(node, 'background-width', 'pfValue', index);\n }\n }\n if (getIndexedStyle(node, 'background-height', 'value', index) !== 'auto') {\n if (getIndexedStyle(node, 'background-height', 'units', index) === '%') {\n h = getIndexedStyle(node, 'background-height', 'pfValue', index) * nodeTH;\n } else {\n h = getIndexedStyle(node, 'background-height', 'pfValue', index);\n }\n }\n if (w === 0 || h === 0) {\n return; // no point in drawing empty image (and chrome is broken in this case)\n }\n\n if (fit === 'contain') {\n var scale = Math.min(nodeTW / w, nodeTH / h);\n w *= scale;\n h *= scale;\n } else if (fit === 'cover') {\n var scale = Math.max(nodeTW / w, nodeTH / h);\n w *= scale;\n h *= scale;\n }\n var x = nodeX - nodeTW / 2; // left\n var posXUnits = getIndexedStyle(node, 'background-position-x', 'units', index);\n var posXPfVal = getIndexedStyle(node, 'background-position-x', 'pfValue', index);\n if (posXUnits === '%') {\n x += (nodeTW - w) * posXPfVal;\n } else {\n x += posXPfVal;\n }\n var offXUnits = getIndexedStyle(node, 'background-offset-x', 'units', index);\n var offXPfVal = getIndexedStyle(node, 'background-offset-x', 'pfValue', index);\n if (offXUnits === '%') {\n x += (nodeTW - w) * offXPfVal;\n } else {\n x += offXPfVal;\n }\n var y = nodeY - nodeTH / 2; // top\n var posYUnits = getIndexedStyle(node, 'background-position-y', 'units', index);\n var posYPfVal = getIndexedStyle(node, 'background-position-y', 'pfValue', index);\n if (posYUnits === '%') {\n y += (nodeTH - h) * posYPfVal;\n } else {\n y += posYPfVal;\n }\n var offYUnits = getIndexedStyle(node, 'background-offset-y', 'units', index);\n var offYPfVal = getIndexedStyle(node, 'background-offset-y', 'pfValue', index);\n if (offYUnits === '%') {\n y += (nodeTH - h) * offYPfVal;\n } else {\n y += offYPfVal;\n }\n if (rs.pathCache) {\n x -= nodeX;\n y -= nodeY;\n nodeX = 0;\n nodeY = 0;\n }\n var gAlpha = context.globalAlpha;\n context.globalAlpha = imgOpacity;\n var smoothingEnabled = r.getImgSmoothing(context);\n var isSmoothingSwitched = false;\n if (smooth === 'no' && smoothingEnabled) {\n r.setImgSmoothing(context, false);\n isSmoothingSwitched = true;\n } else if (smooth === 'yes' && !smoothingEnabled) {\n r.setImgSmoothing(context, true);\n isSmoothingSwitched = true;\n }\n if (repeat === 'no-repeat') {\n if (shouldClip) {\n context.save();\n if (rs.pathCache) {\n context.clip(rs.pathCache);\n } else {\n r.nodeShapes[r.getNodeShape(node)].draw(context, nodeX, nodeY, nodeTW, nodeTH, cornerRadius, rs);\n context.clip();\n }\n }\n r.safeDrawImage(context, img, 0, 0, imgW, imgH, x, y, w, h);\n if (shouldClip) {\n context.restore();\n }\n } else {\n var pattern = context.createPattern(img, repeat);\n context.fillStyle = pattern;\n r.nodeShapes[r.getNodeShape(node)].draw(context, nodeX, nodeY, nodeTW, nodeTH, cornerRadius, rs);\n context.translate(x, y);\n context.fill();\n context.translate(-x, -y);\n }\n context.globalAlpha = gAlpha;\n if (isSmoothingSwitched) {\n r.setImgSmoothing(context, smoothingEnabled);\n }\n};\n\nvar CRp$6 = {};\nCRp$6.eleTextBiggerThanMin = function (ele, scale) {\n if (!scale) {\n var zoom = ele.cy().zoom();\n var pxRatio = this.getPixelRatio();\n var lvl = Math.ceil(log2(zoom * pxRatio)); // the effective texture level\n\n scale = Math.pow(2, lvl);\n }\n var computedSize = ele.pstyle('font-size').pfValue * scale;\n var minSize = ele.pstyle('min-zoomed-font-size').pfValue;\n if (computedSize < minSize) {\n return false;\n }\n return true;\n};\nCRp$6.drawElementText = function (context, ele, shiftToOriginWithBb, force, prefix) {\n var useEleOpacity = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : true;\n var r = this;\n if (force == null) {\n if (useEleOpacity && !r.eleTextBiggerThanMin(ele)) {\n return;\n }\n } else if (force === false) {\n return;\n }\n if (ele.isNode()) {\n var label = ele.pstyle('label');\n if (!label || !label.value) {\n return;\n }\n var justification = r.getLabelJustification(ele);\n context.textAlign = justification;\n context.textBaseline = 'bottom';\n } else {\n var badLine = ele.element()._private.rscratch.badLine;\n var _label = ele.pstyle('label');\n var srcLabel = ele.pstyle('source-label');\n var tgtLabel = ele.pstyle('target-label');\n if (badLine || (!_label || !_label.value) && (!srcLabel || !srcLabel.value) && (!tgtLabel || !tgtLabel.value)) {\n return;\n }\n context.textAlign = 'center';\n context.textBaseline = 'bottom';\n }\n var applyRotation = !shiftToOriginWithBb;\n var bb;\n if (shiftToOriginWithBb) {\n bb = shiftToOriginWithBb;\n context.translate(-bb.x1, -bb.y1);\n }\n if (prefix == null) {\n r.drawText(context, ele, null, applyRotation, useEleOpacity);\n if (ele.isEdge()) {\n r.drawText(context, ele, 'source', applyRotation, useEleOpacity);\n r.drawText(context, ele, 'target', applyRotation, useEleOpacity);\n }\n } else {\n r.drawText(context, ele, prefix, applyRotation, useEleOpacity);\n }\n if (shiftToOriginWithBb) {\n context.translate(bb.x1, bb.y1);\n }\n};\nCRp$6.getFontCache = function (context) {\n var cache;\n this.fontCaches = this.fontCaches || [];\n for (var i = 0; i < this.fontCaches.length; i++) {\n cache = this.fontCaches[i];\n if (cache.context === context) {\n return cache;\n }\n }\n cache = {\n context: context\n };\n this.fontCaches.push(cache);\n return cache;\n};\n\n// set up canvas context with font\n// returns transformed text string\nCRp$6.setupTextStyle = function (context, ele) {\n var useEleOpacity = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n // Font style\n var labelStyle = ele.pstyle('font-style').strValue;\n var labelSize = ele.pstyle('font-size').pfValue + 'px';\n var labelFamily = ele.pstyle('font-family').strValue;\n var labelWeight = ele.pstyle('font-weight').strValue;\n var opacity = useEleOpacity ? ele.effectiveOpacity() * ele.pstyle('text-opacity').value : 1;\n var outlineOpacity = ele.pstyle('text-outline-opacity').value * opacity;\n var color = ele.pstyle('color').value;\n var outlineColor = ele.pstyle('text-outline-color').value;\n context.font = labelStyle + ' ' + labelWeight + ' ' + labelSize + ' ' + labelFamily;\n context.lineJoin = 'round'; // so text outlines aren't jagged\n\n this.colorFillStyle(context, color[0], color[1], color[2], opacity);\n this.colorStrokeStyle(context, outlineColor[0], outlineColor[1], outlineColor[2], outlineOpacity);\n};\n\n// TODO ensure re-used\nfunction roundRect(ctx, x, y, width, height) {\n var radius = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 5;\n var stroke = arguments.length > 6 ? arguments[6] : undefined;\n ctx.beginPath();\n ctx.moveTo(x + radius, y);\n ctx.lineTo(x + width - radius, y);\n ctx.quadraticCurveTo(x + width, y, x + width, y + radius);\n ctx.lineTo(x + width, y + height - radius);\n ctx.quadraticCurveTo(x + width, y + height, x + width - radius, y + height);\n ctx.lineTo(x + radius, y + height);\n ctx.quadraticCurveTo(x, y + height, x, y + height - radius);\n ctx.lineTo(x, y + radius);\n ctx.quadraticCurveTo(x, y, x + radius, y);\n ctx.closePath();\n if (stroke) ctx.stroke();else ctx.fill();\n}\nCRp$6.getTextAngle = function (ele, prefix) {\n var theta;\n var _p = ele._private;\n var rscratch = _p.rscratch;\n var pdash = prefix ? prefix + '-' : '';\n var rotation = ele.pstyle(pdash + 'text-rotation');\n var textAngle = getPrefixedProperty(rscratch, 'labelAngle', prefix);\n if (rotation.strValue === 'autorotate') {\n theta = ele.isEdge() ? textAngle : 0;\n } else if (rotation.strValue === 'none') {\n theta = 0;\n } else {\n theta = rotation.pfValue;\n }\n return theta;\n};\nCRp$6.drawText = function (context, ele, prefix) {\n var applyRotation = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;\n var useEleOpacity = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : true;\n var _p = ele._private;\n var rscratch = _p.rscratch;\n var parentOpacity = useEleOpacity ? ele.effectiveOpacity() : 1;\n if (useEleOpacity && (parentOpacity === 0 || ele.pstyle('text-opacity').value === 0)) {\n return;\n }\n\n // use 'main' as an alias for the main label (i.e. null prefix)\n if (prefix === 'main') {\n prefix = null;\n }\n var textX = getPrefixedProperty(rscratch, 'labelX', prefix);\n var textY = getPrefixedProperty(rscratch, 'labelY', prefix);\n var orgTextX, orgTextY; // used for rotation\n var text = this.getLabelText(ele, prefix);\n if (text != null && text !== '' && !isNaN(textX) && !isNaN(textY)) {\n this.setupTextStyle(context, ele, useEleOpacity);\n var pdash = prefix ? prefix + '-' : '';\n var textW = getPrefixedProperty(rscratch, 'labelWidth', prefix);\n var textH = getPrefixedProperty(rscratch, 'labelHeight', prefix);\n var marginX = ele.pstyle(pdash + 'text-margin-x').pfValue;\n var marginY = ele.pstyle(pdash + 'text-margin-y').pfValue;\n var isEdge = ele.isEdge();\n var halign = ele.pstyle('text-halign').value;\n var valign = ele.pstyle('text-valign').value;\n if (isEdge) {\n halign = 'center';\n valign = 'center';\n }\n textX += marginX;\n textY += marginY;\n var theta;\n if (!applyRotation) {\n theta = 0;\n } else {\n theta = this.getTextAngle(ele, prefix);\n }\n if (theta !== 0) {\n orgTextX = textX;\n orgTextY = textY;\n context.translate(orgTextX, orgTextY);\n context.rotate(theta);\n textX = 0;\n textY = 0;\n }\n switch (valign) {\n case 'top':\n break;\n case 'center':\n textY += textH / 2;\n break;\n case 'bottom':\n textY += textH;\n break;\n }\n var backgroundOpacity = ele.pstyle('text-background-opacity').value;\n var borderOpacity = ele.pstyle('text-border-opacity').value;\n var textBorderWidth = ele.pstyle('text-border-width').pfValue;\n var backgroundPadding = ele.pstyle('text-background-padding').pfValue;\n var styleShape = ele.pstyle('text-background-shape').strValue;\n var rounded = styleShape.indexOf('round') === 0;\n var roundRadius = 2;\n if (backgroundOpacity > 0 || textBorderWidth > 0 && borderOpacity > 0) {\n var bgX = textX - backgroundPadding;\n switch (halign) {\n case 'left':\n bgX -= textW;\n break;\n case 'center':\n bgX -= textW / 2;\n break;\n }\n var bgY = textY - textH - backgroundPadding;\n var bgW = textW + 2 * backgroundPadding;\n var bgH = textH + 2 * backgroundPadding;\n if (backgroundOpacity > 0) {\n var textFill = context.fillStyle;\n var textBackgroundColor = ele.pstyle('text-background-color').value;\n context.fillStyle = 'rgba(' + textBackgroundColor[0] + ',' + textBackgroundColor[1] + ',' + textBackgroundColor[2] + ',' + backgroundOpacity * parentOpacity + ')';\n if (rounded) {\n roundRect(context, bgX, bgY, bgW, bgH, roundRadius);\n } else {\n context.fillRect(bgX, bgY, bgW, bgH);\n }\n context.fillStyle = textFill;\n }\n if (textBorderWidth > 0 && borderOpacity > 0) {\n var textStroke = context.strokeStyle;\n var textLineWidth = context.lineWidth;\n var textBorderColor = ele.pstyle('text-border-color').value;\n var textBorderStyle = ele.pstyle('text-border-style').value;\n context.strokeStyle = 'rgba(' + textBorderColor[0] + ',' + textBorderColor[1] + ',' + textBorderColor[2] + ',' + borderOpacity * parentOpacity + ')';\n context.lineWidth = textBorderWidth;\n if (context.setLineDash) {\n // for very outofdate browsers\n switch (textBorderStyle) {\n case 'dotted':\n context.setLineDash([1, 1]);\n break;\n case 'dashed':\n context.setLineDash([4, 2]);\n break;\n case 'double':\n context.lineWidth = textBorderWidth / 4; // 50% reserved for white between the two borders\n context.setLineDash([]);\n break;\n case 'solid':\n context.setLineDash([]);\n break;\n }\n }\n if (rounded) {\n roundRect(context, bgX, bgY, bgW, bgH, roundRadius, 'stroke');\n } else {\n context.strokeRect(bgX, bgY, bgW, bgH);\n }\n if (textBorderStyle === 'double') {\n var whiteWidth = textBorderWidth / 2;\n if (rounded) {\n roundRect(context, bgX + whiteWidth, bgY + whiteWidth, bgW - whiteWidth * 2, bgH - whiteWidth * 2, roundRadius, 'stroke');\n } else {\n context.strokeRect(bgX + whiteWidth, bgY + whiteWidth, bgW - whiteWidth * 2, bgH - whiteWidth * 2);\n }\n }\n if (context.setLineDash) {\n // for very outofdate browsers\n context.setLineDash([]);\n }\n context.lineWidth = textLineWidth;\n context.strokeStyle = textStroke;\n }\n }\n var lineWidth = 2 * ele.pstyle('text-outline-width').pfValue; // *2 b/c the stroke is drawn centred on the middle\n\n if (lineWidth > 0) {\n context.lineWidth = lineWidth;\n }\n if (ele.pstyle('text-wrap').value === 'wrap') {\n var lines = getPrefixedProperty(rscratch, 'labelWrapCachedLines', prefix);\n var lineHeight = getPrefixedProperty(rscratch, 'labelLineHeight', prefix);\n var halfTextW = textW / 2;\n var justification = this.getLabelJustification(ele);\n if (justification === 'auto') ; else if (halign === 'left') {\n // auto justification : right\n if (justification === 'left') {\n textX += -textW;\n } else if (justification === 'center') {\n textX += -halfTextW;\n } // else same as auto\n } else if (halign === 'center') {\n // auto justfication : center\n if (justification === 'left') {\n textX += -halfTextW;\n } else if (justification === 'right') {\n textX += halfTextW;\n } // else same as auto\n } else if (halign === 'right') {\n // auto justification : left\n if (justification === 'center') {\n textX += halfTextW;\n } else if (justification === 'right') {\n textX += textW;\n } // else same as auto\n }\n\n switch (valign) {\n case 'top':\n textY -= (lines.length - 1) * lineHeight;\n break;\n case 'center':\n case 'bottom':\n textY -= (lines.length - 1) * lineHeight;\n break;\n }\n for (var l = 0; l < lines.length; l++) {\n if (lineWidth > 0) {\n context.strokeText(lines[l], textX, textY);\n }\n context.fillText(lines[l], textX, textY);\n textY += lineHeight;\n }\n } else {\n if (lineWidth > 0) {\n context.strokeText(text, textX, textY);\n }\n context.fillText(text, textX, textY);\n }\n if (theta !== 0) {\n context.rotate(-theta);\n context.translate(-orgTextX, -orgTextY);\n }\n }\n};\n\n/* global Path2D */\nvar CRp$5 = {};\nCRp$5.drawNode = function (context, node, shiftToOriginWithBb) {\n var drawLabel = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;\n var shouldDrawOverlay = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : true;\n var shouldDrawOpacity = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : true;\n var r = this;\n var nodeWidth, nodeHeight;\n var _p = node._private;\n var rs = _p.rscratch;\n var pos = node.position();\n if (!number$1(pos.x) || !number$1(pos.y)) {\n return; // can't draw node with undefined position\n }\n\n if (shouldDrawOpacity && !node.visible()) {\n return;\n }\n var eleOpacity = shouldDrawOpacity ? node.effectiveOpacity() : 1;\n var usePaths = r.usePaths();\n var path;\n var pathCacheHit = false;\n var padding = node.padding();\n nodeWidth = node.width() + 2 * padding;\n nodeHeight = node.height() + 2 * padding;\n\n //\n // setup shift\n\n var bb;\n if (shiftToOriginWithBb) {\n bb = shiftToOriginWithBb;\n context.translate(-bb.x1, -bb.y1);\n }\n\n //\n // load bg image\n\n var bgImgProp = node.pstyle('background-image');\n var urls = bgImgProp.value;\n var urlDefined = new Array(urls.length);\n var image = new Array(urls.length);\n var numImages = 0;\n for (var i = 0; i < urls.length; i++) {\n var url = urls[i];\n var defd = urlDefined[i] = url != null && url !== 'none';\n if (defd) {\n var bgImgCrossOrigin = node.cy().style().getIndexedStyle(node, 'background-image-crossorigin', 'value', i);\n numImages++;\n\n // get image, and if not loaded then ask to redraw when later loaded\n image[i] = r.getCachedImage(url, bgImgCrossOrigin, function () {\n _p.backgroundTimestamp = Date.now();\n node.emitAndNotify('background');\n });\n }\n }\n\n //\n // setup styles\n\n var darkness = node.pstyle('background-blacken').value;\n var borderWidth = node.pstyle('border-width').pfValue;\n var bgOpacity = node.pstyle('background-opacity').value * eleOpacity;\n var borderColor = node.pstyle('border-color').value;\n var borderStyle = node.pstyle('border-style').value;\n var borderJoin = node.pstyle('border-join').value;\n var borderCap = node.pstyle('border-cap').value;\n var borderPosition = node.pstyle('border-position').value;\n var borderPattern = node.pstyle('border-dash-pattern').pfValue;\n var borderOffset = node.pstyle('border-dash-offset').pfValue;\n var borderOpacity = node.pstyle('border-opacity').value * eleOpacity;\n var outlineWidth = node.pstyle('outline-width').pfValue;\n var outlineColor = node.pstyle('outline-color').value;\n var outlineStyle = node.pstyle('outline-style').value;\n var outlineOpacity = node.pstyle('outline-opacity').value * eleOpacity;\n var outlineOffset = node.pstyle('outline-offset').value;\n var cornerRadius = node.pstyle('corner-radius').value;\n if (cornerRadius !== 'auto') cornerRadius = node.pstyle('corner-radius').pfValue;\n var setupShapeColor = function setupShapeColor() {\n var bgOpy = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : bgOpacity;\n r.eleFillStyle(context, node, bgOpy);\n };\n var setupBorderColor = function setupBorderColor() {\n var bdrOpy = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : borderOpacity;\n r.colorStrokeStyle(context, borderColor[0], borderColor[1], borderColor[2], bdrOpy);\n };\n var setupOutlineColor = function setupOutlineColor() {\n var otlnOpy = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : outlineOpacity;\n r.colorStrokeStyle(context, outlineColor[0], outlineColor[1], outlineColor[2], otlnOpy);\n };\n\n //\n // setup shape\n\n var getPath = function getPath(width, height, shape, points) {\n var pathCache = r.nodePathCache = r.nodePathCache || [];\n var key = hashStrings(shape === 'polygon' ? shape + ',' + points.join(',') : shape, '' + height, '' + width, '' + cornerRadius);\n var cachedPath = pathCache[key];\n var path;\n var cacheHit = false;\n if (cachedPath != null) {\n path = cachedPath;\n cacheHit = true;\n rs.pathCache = path;\n } else {\n path = new Path2D();\n pathCache[key] = rs.pathCache = path;\n }\n return {\n path: path,\n cacheHit: cacheHit\n };\n };\n var styleShape = node.pstyle('shape').strValue;\n var shapePts = node.pstyle('shape-polygon-points').pfValue;\n if (usePaths) {\n context.translate(pos.x, pos.y);\n var shapePath = getPath(nodeWidth, nodeHeight, styleShape, shapePts);\n path = shapePath.path;\n pathCacheHit = shapePath.cacheHit;\n }\n var drawShape = function drawShape() {\n if (!pathCacheHit) {\n var npos = pos;\n if (usePaths) {\n npos = {\n x: 0,\n y: 0\n };\n }\n r.nodeShapes[r.getNodeShape(node)].draw(path || context, npos.x, npos.y, nodeWidth, nodeHeight, cornerRadius, rs);\n }\n if (usePaths) {\n context.fill(path);\n } else {\n context.fill();\n }\n };\n var drawImages = function drawImages() {\n var nodeOpacity = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : eleOpacity;\n var inside = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var prevBging = _p.backgrounding;\n var totalCompleted = 0;\n for (var _i = 0; _i < image.length; _i++) {\n var bgContainment = node.cy().style().getIndexedStyle(node, 'background-image-containment', 'value', _i);\n if (inside && bgContainment === 'over' || !inside && bgContainment === 'inside') {\n totalCompleted++;\n continue;\n }\n if (urlDefined[_i] && image[_i].complete && !image[_i].error) {\n totalCompleted++;\n r.drawInscribedImage(context, image[_i], node, _i, nodeOpacity);\n }\n }\n _p.backgrounding = !(totalCompleted === numImages);\n if (prevBging !== _p.backgrounding) {\n // update style b/c :backgrounding state changed\n node.updateStyle(false);\n }\n };\n var drawPie = function drawPie() {\n var redrawShape = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var pieOpacity = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : eleOpacity;\n if (r.hasPie(node)) {\n r.drawPie(context, node, pieOpacity);\n\n // redraw/restore path if steps after pie need it\n if (redrawShape) {\n if (!usePaths) {\n r.nodeShapes[r.getNodeShape(node)].draw(context, pos.x, pos.y, nodeWidth, nodeHeight, cornerRadius, rs);\n }\n }\n }\n };\n var darken = function darken() {\n var darkenOpacity = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : eleOpacity;\n var opacity = (darkness > 0 ? darkness : -darkness) * darkenOpacity;\n var c = darkness > 0 ? 0 : 255;\n if (darkness !== 0) {\n r.colorFillStyle(context, c, c, c, opacity);\n if (usePaths) {\n context.fill(path);\n } else {\n context.fill();\n }\n }\n };\n var drawBorder = function drawBorder() {\n if (borderWidth > 0) {\n context.lineWidth = borderWidth;\n context.lineCap = borderCap;\n context.lineJoin = borderJoin;\n if (context.setLineDash) {\n // for very outofdate browsers\n switch (borderStyle) {\n case 'dotted':\n context.setLineDash([1, 1]);\n break;\n case 'dashed':\n context.setLineDash(borderPattern);\n context.lineDashOffset = borderOffset;\n break;\n case 'solid':\n case 'double':\n context.setLineDash([]);\n break;\n }\n }\n if (borderPosition !== 'center') {\n context.save();\n context.lineWidth *= 2;\n if (borderPosition === 'inside') {\n usePaths ? context.clip(path) : context.clip();\n } else {\n var region = new Path2D();\n region.rect(-nodeWidth / 2 - borderWidth, -nodeHeight / 2 - borderWidth, nodeWidth + 2 * borderWidth, nodeHeight + 2 * borderWidth);\n region.addPath(path);\n context.clip(region, 'evenodd');\n }\n usePaths ? context.stroke(path) : context.stroke();\n context.restore();\n } else {\n usePaths ? context.stroke(path) : context.stroke();\n }\n if (borderStyle === 'double') {\n context.lineWidth = borderWidth / 3;\n var gco = context.globalCompositeOperation;\n context.globalCompositeOperation = 'destination-out';\n if (usePaths) {\n context.stroke(path);\n } else {\n context.stroke();\n }\n context.globalCompositeOperation = gco;\n }\n\n // reset in case we changed the border style\n if (context.setLineDash) {\n // for very outofdate browsers\n context.setLineDash([]);\n }\n }\n };\n var drawOutline = function drawOutline() {\n if (outlineWidth > 0) {\n context.lineWidth = outlineWidth;\n context.lineCap = 'butt';\n if (context.setLineDash) {\n // for very outofdate browsers\n switch (outlineStyle) {\n case 'dotted':\n context.setLineDash([1, 1]);\n break;\n case 'dashed':\n context.setLineDash([4, 2]);\n break;\n case 'solid':\n case 'double':\n context.setLineDash([]);\n break;\n }\n }\n var npos = pos;\n if (usePaths) {\n npos = {\n x: 0,\n y: 0\n };\n }\n var shape = r.getNodeShape(node);\n var bWidth = borderWidth;\n if (borderPosition === 'inside') bWidth = 0;\n if (borderPosition === 'outside') bWidth *= 2;\n var scaleX = (nodeWidth + bWidth + (outlineWidth + outlineOffset)) / nodeWidth;\n var scaleY = (nodeHeight + bWidth + (outlineWidth + outlineOffset)) / nodeHeight;\n var sWidth = nodeWidth * scaleX;\n var sHeight = nodeHeight * scaleY;\n var points = r.nodeShapes[shape].points;\n var _path;\n if (usePaths) {\n var outlinePath = getPath(sWidth, sHeight, shape, points);\n _path = outlinePath.path;\n }\n\n // draw the outline path, either by using expanded points or by scaling \n // the dimensions, depending on shape\n if (shape === \"ellipse\") {\n r.drawEllipsePath(_path || context, npos.x, npos.y, sWidth, sHeight);\n } else if (['round-diamond', 'round-heptagon', 'round-hexagon', 'round-octagon', 'round-pentagon', 'round-polygon', 'round-triangle', 'round-tag'].includes(shape)) {\n var sMult = 0;\n var offsetX = 0;\n var offsetY = 0;\n if (shape === 'round-diamond') {\n sMult = (bWidth + outlineOffset + outlineWidth) * 1.4;\n } else if (shape === 'round-heptagon') {\n sMult = (bWidth + outlineOffset + outlineWidth) * 1.075;\n offsetY = -(bWidth / 2 + outlineOffset + outlineWidth) / 35;\n } else if (shape === 'round-hexagon') {\n sMult = (bWidth + outlineOffset + outlineWidth) * 1.12;\n } else if (shape === 'round-pentagon') {\n sMult = (bWidth + outlineOffset + outlineWidth) * 1.13;\n offsetY = -(bWidth / 2 + outlineOffset + outlineWidth) / 15;\n } else if (shape === 'round-tag') {\n sMult = (bWidth + outlineOffset + outlineWidth) * 1.12;\n offsetX = (bWidth / 2 + outlineWidth + outlineOffset) * .07;\n } else if (shape === 'round-triangle') {\n sMult = (bWidth + outlineOffset + outlineWidth) * (Math.PI / 2);\n offsetY = -(bWidth + outlineOffset / 2 + outlineWidth) / Math.PI;\n }\n if (sMult !== 0) {\n scaleX = (nodeWidth + sMult) / nodeWidth;\n sWidth = nodeWidth * scaleX;\n if (!['round-hexagon', 'round-tag'].includes(shape)) {\n scaleY = (nodeHeight + sMult) / nodeHeight;\n sHeight = nodeHeight * scaleY;\n }\n }\n cornerRadius = cornerRadius === 'auto' ? getRoundPolygonRadius(sWidth, sHeight) : cornerRadius;\n var halfW = sWidth / 2;\n var halfH = sHeight / 2;\n var radius = cornerRadius + (bWidth + outlineWidth + outlineOffset) / 2;\n var p = new Array(points.length / 2);\n var corners = new Array(points.length / 2);\n for (var _i3 = 0; _i3 < points.length / 2; _i3++) {\n p[_i3] = {\n x: npos.x + offsetX + halfW * points[_i3 * 2],\n y: npos.y + offsetY + halfH * points[_i3 * 2 + 1]\n };\n }\n var _i2,\n p1,\n p2,\n p3,\n len = p.length;\n p1 = p[len - 1];\n // for each point\n for (_i2 = 0; _i2 < len; _i2++) {\n p2 = p[_i2 % len];\n p3 = p[(_i2 + 1) % len];\n corners[_i2] = getRoundCorner(p1, p2, p3, radius);\n p1 = p2;\n p2 = p3;\n }\n r.drawRoundPolygonPath(_path || context, npos.x + offsetX, npos.y + offsetY, nodeWidth * scaleX, nodeHeight * scaleY, points, corners);\n } else if (['roundrectangle', 'round-rectangle'].includes(shape)) {\n cornerRadius = cornerRadius === 'auto' ? getRoundRectangleRadius(sWidth, sHeight) : cornerRadius;\n r.drawRoundRectanglePath(_path || context, npos.x, npos.y, sWidth, sHeight, cornerRadius + (bWidth + outlineWidth + outlineOffset) / 2);\n } else if (['cutrectangle', 'cut-rectangle'].includes(shape)) {\n cornerRadius = cornerRadius === 'auto' ? getCutRectangleCornerLength() : cornerRadius;\n r.drawCutRectanglePath(_path || context, npos.x, npos.y, sWidth, sHeight, null, cornerRadius + (bWidth + outlineWidth + outlineOffset) / 4);\n } else if (['bottomroundrectangle', 'bottom-round-rectangle'].includes(shape)) {\n cornerRadius = cornerRadius === 'auto' ? getRoundRectangleRadius(sWidth, sHeight) : cornerRadius;\n r.drawBottomRoundRectanglePath(_path || context, npos.x, npos.y, sWidth, sHeight, cornerRadius + (bWidth + outlineWidth + outlineOffset) / 2);\n } else if (shape === \"barrel\") {\n r.drawBarrelPath(_path || context, npos.x, npos.y, sWidth, sHeight);\n } else if (shape.startsWith(\"polygon\") || ['rhomboid', 'right-rhomboid', 'round-tag', 'tag', 'vee'].includes(shape)) {\n var pad = (bWidth + outlineWidth + outlineOffset) / nodeWidth;\n points = joinLines(expandPolygon(points, pad));\n r.drawPolygonPath(_path || context, npos.x, npos.y, nodeWidth, nodeHeight, points);\n } else {\n var _pad = (bWidth + outlineWidth + outlineOffset) / nodeWidth;\n points = joinLines(expandPolygon(points, -_pad));\n r.drawPolygonPath(_path || context, npos.x, npos.y, nodeWidth, nodeHeight, points);\n }\n if (usePaths) {\n context.stroke(_path);\n } else {\n context.stroke();\n }\n if (outlineStyle === 'double') {\n context.lineWidth = bWidth / 3;\n var gco = context.globalCompositeOperation;\n context.globalCompositeOperation = 'destination-out';\n if (usePaths) {\n context.stroke(_path);\n } else {\n context.stroke();\n }\n context.globalCompositeOperation = gco;\n }\n\n // reset in case we changed the border style\n if (context.setLineDash) {\n // for very outofdate browsers\n context.setLineDash([]);\n }\n }\n };\n var drawOverlay = function drawOverlay() {\n if (shouldDrawOverlay) {\n r.drawNodeOverlay(context, node, pos, nodeWidth, nodeHeight);\n }\n };\n var drawUnderlay = function drawUnderlay() {\n if (shouldDrawOverlay) {\n r.drawNodeUnderlay(context, node, pos, nodeWidth, nodeHeight);\n }\n };\n var drawText = function drawText() {\n r.drawElementText(context, node, null, drawLabel);\n };\n var ghost = node.pstyle('ghost').value === 'yes';\n if (ghost) {\n var gx = node.pstyle('ghost-offset-x').pfValue;\n var gy = node.pstyle('ghost-offset-y').pfValue;\n var ghostOpacity = node.pstyle('ghost-opacity').value;\n var effGhostOpacity = ghostOpacity * eleOpacity;\n context.translate(gx, gy);\n setupOutlineColor();\n drawOutline();\n setupShapeColor(ghostOpacity * bgOpacity);\n drawShape();\n drawImages(effGhostOpacity, true);\n setupBorderColor(ghostOpacity * borderOpacity);\n drawBorder();\n drawPie(darkness !== 0 || borderWidth !== 0);\n drawImages(effGhostOpacity, false);\n darken(effGhostOpacity);\n context.translate(-gx, -gy);\n }\n if (usePaths) {\n context.translate(-pos.x, -pos.y);\n }\n drawUnderlay();\n if (usePaths) {\n context.translate(pos.x, pos.y);\n }\n setupOutlineColor();\n drawOutline();\n setupShapeColor();\n drawShape();\n drawImages(eleOpacity, true);\n setupBorderColor();\n drawBorder();\n drawPie(darkness !== 0 || borderWidth !== 0);\n drawImages(eleOpacity, false);\n darken();\n if (usePaths) {\n context.translate(-pos.x, -pos.y);\n }\n drawText();\n drawOverlay();\n\n //\n // clean up shift\n\n if (shiftToOriginWithBb) {\n context.translate(bb.x1, bb.y1);\n }\n};\nvar drawNodeOverlayUnderlay = function drawNodeOverlayUnderlay(overlayOrUnderlay) {\n if (!['overlay', 'underlay'].includes(overlayOrUnderlay)) {\n throw new Error('Invalid state');\n }\n return function (context, node, pos, nodeWidth, nodeHeight) {\n var r = this;\n if (!node.visible()) {\n return;\n }\n var padding = node.pstyle(\"\".concat(overlayOrUnderlay, \"-padding\")).pfValue;\n var opacity = node.pstyle(\"\".concat(overlayOrUnderlay, \"-opacity\")).value;\n var color = node.pstyle(\"\".concat(overlayOrUnderlay, \"-color\")).value;\n var shape = node.pstyle(\"\".concat(overlayOrUnderlay, \"-shape\")).value;\n var radius = node.pstyle(\"\".concat(overlayOrUnderlay, \"-corner-radius\")).value;\n if (opacity > 0) {\n pos = pos || node.position();\n if (nodeWidth == null || nodeHeight == null) {\n var _padding = node.padding();\n nodeWidth = node.width() + 2 * _padding;\n nodeHeight = node.height() + 2 * _padding;\n }\n r.colorFillStyle(context, color[0], color[1], color[2], opacity);\n r.nodeShapes[shape].draw(context, pos.x, pos.y, nodeWidth + padding * 2, nodeHeight + padding * 2, radius);\n context.fill();\n }\n };\n};\nCRp$5.drawNodeOverlay = drawNodeOverlayUnderlay('overlay');\nCRp$5.drawNodeUnderlay = drawNodeOverlayUnderlay('underlay');\n\n// does the node have at least one pie piece?\nCRp$5.hasPie = function (node) {\n node = node[0]; // ensure ele ref\n\n return node._private.hasPie;\n};\nCRp$5.drawPie = function (context, node, nodeOpacity, pos) {\n node = node[0]; // ensure ele ref\n pos = pos || node.position();\n var cyStyle = node.cy().style();\n var pieSize = node.pstyle('pie-size');\n var x = pos.x;\n var y = pos.y;\n var nodeW = node.width();\n var nodeH = node.height();\n var radius = Math.min(nodeW, nodeH) / 2; // must fit in node\n var lastPercent = 0; // what % to continue drawing pie slices from on [0, 1]\n var usePaths = this.usePaths();\n if (usePaths) {\n x = 0;\n y = 0;\n }\n if (pieSize.units === '%') {\n radius = radius * pieSize.pfValue;\n } else if (pieSize.pfValue !== undefined) {\n radius = pieSize.pfValue / 2;\n }\n for (var i = 1; i <= cyStyle.pieBackgroundN; i++) {\n // 1..N\n var size = node.pstyle('pie-' + i + '-background-size').value;\n var color = node.pstyle('pie-' + i + '-background-color').value;\n var opacity = node.pstyle('pie-' + i + '-background-opacity').value * nodeOpacity;\n var percent = size / 100; // map integer range [0, 100] to [0, 1]\n\n // percent can't push beyond 1\n if (percent + lastPercent > 1) {\n percent = 1 - lastPercent;\n }\n var angleStart = 1.5 * Math.PI + 2 * Math.PI * lastPercent; // start at 12 o'clock and go clockwise\n var angleDelta = 2 * Math.PI * percent;\n var angleEnd = angleStart + angleDelta;\n\n // ignore if\n // - zero size\n // - we're already beyond the full circle\n // - adding the current slice would go beyond the full circle\n if (size === 0 || lastPercent >= 1 || lastPercent + percent > 1) {\n continue;\n }\n context.beginPath();\n context.moveTo(x, y);\n context.arc(x, y, radius, angleStart, angleEnd);\n context.closePath();\n this.colorFillStyle(context, color[0], color[1], color[2], opacity);\n context.fill();\n lastPercent += percent;\n }\n};\n\nvar CRp$4 = {};\nvar motionBlurDelay = 100;\n\n// var isFirefox = typeof InstallTrigger !== 'undefined';\n\nCRp$4.getPixelRatio = function () {\n var context = this.data.contexts[0];\n if (this.forcedPixelRatio != null) {\n return this.forcedPixelRatio;\n }\n var containerWindow = this.cy.window();\n var backingStore = context.backingStorePixelRatio || context.webkitBackingStorePixelRatio || context.mozBackingStorePixelRatio || context.msBackingStorePixelRatio || context.oBackingStorePixelRatio || context.backingStorePixelRatio || 1;\n return (containerWindow.devicePixelRatio || 1) / backingStore; // eslint-disable-line no-undef\n};\n\nCRp$4.paintCache = function (context) {\n var caches = this.paintCaches = this.paintCaches || [];\n var needToCreateCache = true;\n var cache;\n for (var i = 0; i < caches.length; i++) {\n cache = caches[i];\n if (cache.context === context) {\n needToCreateCache = false;\n break;\n }\n }\n if (needToCreateCache) {\n cache = {\n context: context\n };\n caches.push(cache);\n }\n return cache;\n};\nCRp$4.createGradientStyleFor = function (context, shapeStyleName, ele, fill, opacity) {\n var gradientStyle;\n var usePaths = this.usePaths();\n var colors = ele.pstyle(shapeStyleName + '-gradient-stop-colors').value,\n positions = ele.pstyle(shapeStyleName + '-gradient-stop-positions').pfValue;\n if (fill === 'radial-gradient') {\n if (ele.isEdge()) {\n var start = ele.sourceEndpoint(),\n end = ele.targetEndpoint(),\n mid = ele.midpoint();\n var d1 = dist(start, mid);\n var d2 = dist(end, mid);\n gradientStyle = context.createRadialGradient(mid.x, mid.y, 0, mid.x, mid.y, Math.max(d1, d2));\n } else {\n var pos = usePaths ? {\n x: 0,\n y: 0\n } : ele.position(),\n width = ele.paddedWidth(),\n height = ele.paddedHeight();\n gradientStyle = context.createRadialGradient(pos.x, pos.y, 0, pos.x, pos.y, Math.max(width, height));\n }\n } else {\n if (ele.isEdge()) {\n var _start = ele.sourceEndpoint(),\n _end = ele.targetEndpoint();\n gradientStyle = context.createLinearGradient(_start.x, _start.y, _end.x, _end.y);\n } else {\n var _pos = usePaths ? {\n x: 0,\n y: 0\n } : ele.position(),\n _width = ele.paddedWidth(),\n _height = ele.paddedHeight(),\n halfWidth = _width / 2,\n halfHeight = _height / 2;\n var direction = ele.pstyle('background-gradient-direction').value;\n switch (direction) {\n case 'to-bottom':\n gradientStyle = context.createLinearGradient(_pos.x, _pos.y - halfHeight, _pos.x, _pos.y + halfHeight);\n break;\n case 'to-top':\n gradientStyle = context.createLinearGradient(_pos.x, _pos.y + halfHeight, _pos.x, _pos.y - halfHeight);\n break;\n case 'to-left':\n gradientStyle = context.createLinearGradient(_pos.x + halfWidth, _pos.y, _pos.x - halfWidth, _pos.y);\n break;\n case 'to-right':\n gradientStyle = context.createLinearGradient(_pos.x - halfWidth, _pos.y, _pos.x + halfWidth, _pos.y);\n break;\n case 'to-bottom-right':\n case 'to-right-bottom':\n gradientStyle = context.createLinearGradient(_pos.x - halfWidth, _pos.y - halfHeight, _pos.x + halfWidth, _pos.y + halfHeight);\n break;\n case 'to-top-right':\n case 'to-right-top':\n gradientStyle = context.createLinearGradient(_pos.x - halfWidth, _pos.y + halfHeight, _pos.x + halfWidth, _pos.y - halfHeight);\n break;\n case 'to-bottom-left':\n case 'to-left-bottom':\n gradientStyle = context.createLinearGradient(_pos.x + halfWidth, _pos.y - halfHeight, _pos.x - halfWidth, _pos.y + halfHeight);\n break;\n case 'to-top-left':\n case 'to-left-top':\n gradientStyle = context.createLinearGradient(_pos.x + halfWidth, _pos.y + halfHeight, _pos.x - halfWidth, _pos.y - halfHeight);\n break;\n }\n }\n }\n if (!gradientStyle) return null; // invalid gradient style\n\n var hasPositions = positions.length === colors.length;\n var length = colors.length;\n for (var i = 0; i < length; i++) {\n gradientStyle.addColorStop(hasPositions ? positions[i] : i / (length - 1), 'rgba(' + colors[i][0] + ',' + colors[i][1] + ',' + colors[i][2] + ',' + opacity + ')');\n }\n return gradientStyle;\n};\nCRp$4.gradientFillStyle = function (context, ele, fill, opacity) {\n var gradientStyle = this.createGradientStyleFor(context, 'background', ele, fill, opacity);\n if (!gradientStyle) return null; // error\n context.fillStyle = gradientStyle;\n};\nCRp$4.colorFillStyle = function (context, r, g, b, a) {\n context.fillStyle = 'rgba(' + r + ',' + g + ',' + b + ',' + a + ')';\n // turn off for now, seems context does its own caching\n\n // var cache = this.paintCache(context);\n\n // var fillStyle = 'rgba(' + r + ',' + g + ',' + b + ',' + a + ')';\n\n // if( cache.fillStyle !== fillStyle ){\n // context.fillStyle = cache.fillStyle = fillStyle;\n // }\n};\n\nCRp$4.eleFillStyle = function (context, ele, opacity) {\n var backgroundFill = ele.pstyle('background-fill').value;\n if (backgroundFill === 'linear-gradient' || backgroundFill === 'radial-gradient') {\n this.gradientFillStyle(context, ele, backgroundFill, opacity);\n } else {\n var backgroundColor = ele.pstyle('background-color').value;\n this.colorFillStyle(context, backgroundColor[0], backgroundColor[1], backgroundColor[2], opacity);\n }\n};\nCRp$4.gradientStrokeStyle = function (context, ele, fill, opacity) {\n var gradientStyle = this.createGradientStyleFor(context, 'line', ele, fill, opacity);\n if (!gradientStyle) return null; // error\n context.strokeStyle = gradientStyle;\n};\nCRp$4.colorStrokeStyle = function (context, r, g, b, a) {\n context.strokeStyle = 'rgba(' + r + ',' + g + ',' + b + ',' + a + ')';\n // turn off for now, seems context does its own caching\n\n // var cache = this.paintCache(context);\n\n // var strokeStyle = 'rgba(' + r + ',' + g + ',' + b + ',' + a + ')';\n\n // if( cache.strokeStyle !== strokeStyle ){\n // context.strokeStyle = cache.strokeStyle = strokeStyle;\n // }\n};\n\nCRp$4.eleStrokeStyle = function (context, ele, opacity) {\n var lineFill = ele.pstyle('line-fill').value;\n if (lineFill === 'linear-gradient' || lineFill === 'radial-gradient') {\n this.gradientStrokeStyle(context, ele, lineFill, opacity);\n } else {\n var lineColor = ele.pstyle('line-color').value;\n this.colorStrokeStyle(context, lineColor[0], lineColor[1], lineColor[2], opacity);\n }\n};\n\n// Resize canvas\nCRp$4.matchCanvasSize = function (container) {\n var r = this;\n var data = r.data;\n var bb = r.findContainerClientCoords();\n var width = bb[2];\n var height = bb[3];\n var pixelRatio = r.getPixelRatio();\n var mbPxRatio = r.motionBlurPxRatio;\n if (container === r.data.bufferCanvases[r.MOTIONBLUR_BUFFER_NODE] || container === r.data.bufferCanvases[r.MOTIONBLUR_BUFFER_DRAG]) {\n pixelRatio = mbPxRatio;\n }\n var canvasWidth = width * pixelRatio;\n var canvasHeight = height * pixelRatio;\n var canvas;\n if (canvasWidth === r.canvasWidth && canvasHeight === r.canvasHeight) {\n return; // save cycles if same\n }\n\n r.fontCaches = null; // resizing resets the style\n\n var canvasContainer = data.canvasContainer;\n canvasContainer.style.width = width + 'px';\n canvasContainer.style.height = height + 'px';\n for (var i = 0; i < r.CANVAS_LAYERS; i++) {\n canvas = data.canvases[i];\n canvas.width = canvasWidth;\n canvas.height = canvasHeight;\n canvas.style.width = width + 'px';\n canvas.style.height = height + 'px';\n }\n for (var i = 0; i < r.BUFFER_COUNT; i++) {\n canvas = data.bufferCanvases[i];\n canvas.width = canvasWidth;\n canvas.height = canvasHeight;\n canvas.style.width = width + 'px';\n canvas.style.height = height + 'px';\n }\n r.textureMult = 1;\n if (pixelRatio <= 1) {\n canvas = data.bufferCanvases[r.TEXTURE_BUFFER];\n r.textureMult = 2;\n canvas.width = canvasWidth * r.textureMult;\n canvas.height = canvasHeight * r.textureMult;\n }\n r.canvasWidth = canvasWidth;\n r.canvasHeight = canvasHeight;\n};\nCRp$4.renderTo = function (cxt, zoom, pan, pxRatio) {\n this.render({\n forcedContext: cxt,\n forcedZoom: zoom,\n forcedPan: pan,\n drawAllLayers: true,\n forcedPxRatio: pxRatio\n });\n};\nCRp$4.render = function (options) {\n options = options || staticEmptyObject();\n var forcedContext = options.forcedContext;\n var drawAllLayers = options.drawAllLayers;\n var drawOnlyNodeLayer = options.drawOnlyNodeLayer;\n var forcedZoom = options.forcedZoom;\n var forcedPan = options.forcedPan;\n var r = this;\n var pixelRatio = options.forcedPxRatio === undefined ? this.getPixelRatio() : options.forcedPxRatio;\n var cy = r.cy;\n var data = r.data;\n var needDraw = data.canvasNeedsRedraw;\n var textureDraw = r.textureOnViewport && !forcedContext && (r.pinching || r.hoverData.dragging || r.swipePanning || r.data.wheelZooming);\n var motionBlur = options.motionBlur !== undefined ? options.motionBlur : r.motionBlur;\n var mbPxRatio = r.motionBlurPxRatio;\n var hasCompoundNodes = cy.hasCompoundNodes();\n var inNodeDragGesture = r.hoverData.draggingEles;\n var inBoxSelection = r.hoverData.selecting || r.touchData.selecting ? true : false;\n motionBlur = motionBlur && !forcedContext && r.motionBlurEnabled && !inBoxSelection;\n var motionBlurFadeEffect = motionBlur;\n if (!forcedContext) {\n if (r.prevPxRatio !== pixelRatio) {\n r.invalidateContainerClientCoordsCache();\n r.matchCanvasSize(r.container);\n r.redrawHint('eles', true);\n r.redrawHint('drag', true);\n }\n r.prevPxRatio = pixelRatio;\n }\n if (!forcedContext && r.motionBlurTimeout) {\n clearTimeout(r.motionBlurTimeout);\n }\n if (motionBlur) {\n if (r.mbFrames == null) {\n r.mbFrames = 0;\n }\n r.mbFrames++;\n if (r.mbFrames < 3) {\n // need several frames before even high quality motionblur\n motionBlurFadeEffect = false;\n }\n\n // go to lower quality blurry frames when several m/b frames have been rendered (avoids flashing)\n if (r.mbFrames > r.minMbLowQualFrames) {\n //r.fullQualityMb = false;\n r.motionBlurPxRatio = r.mbPxRBlurry;\n }\n }\n if (r.clearingMotionBlur) {\n r.motionBlurPxRatio = 1;\n }\n\n // b/c drawToContext() may be async w.r.t. redraw(), keep track of last texture frame\n // because a rogue async texture frame would clear needDraw\n if (r.textureDrawLastFrame && !textureDraw) {\n needDraw[r.NODE] = true;\n needDraw[r.SELECT_BOX] = true;\n }\n var style = cy.style();\n var zoom = cy.zoom();\n var effectiveZoom = forcedZoom !== undefined ? forcedZoom : zoom;\n var pan = cy.pan();\n var effectivePan = {\n x: pan.x,\n y: pan.y\n };\n var vp = {\n zoom: zoom,\n pan: {\n x: pan.x,\n y: pan.y\n }\n };\n var prevVp = r.prevViewport;\n var viewportIsDiff = prevVp === undefined || vp.zoom !== prevVp.zoom || vp.pan.x !== prevVp.pan.x || vp.pan.y !== prevVp.pan.y;\n\n // we want the low quality motionblur only when the viewport is being manipulated etc (where it's not noticed)\n if (!viewportIsDiff && !(inNodeDragGesture && !hasCompoundNodes)) {\n r.motionBlurPxRatio = 1;\n }\n if (forcedPan) {\n effectivePan = forcedPan;\n }\n\n // apply pixel ratio\n\n effectiveZoom *= pixelRatio;\n effectivePan.x *= pixelRatio;\n effectivePan.y *= pixelRatio;\n var eles = r.getCachedZSortedEles();\n function mbclear(context, x, y, w, h) {\n var gco = context.globalCompositeOperation;\n context.globalCompositeOperation = 'destination-out';\n r.colorFillStyle(context, 255, 255, 255, r.motionBlurTransparency);\n context.fillRect(x, y, w, h);\n context.globalCompositeOperation = gco;\n }\n function setContextTransform(context, clear) {\n var ePan, eZoom, w, h;\n if (!r.clearingMotionBlur && (context === data.bufferContexts[r.MOTIONBLUR_BUFFER_NODE] || context === data.bufferContexts[r.MOTIONBLUR_BUFFER_DRAG])) {\n ePan = {\n x: pan.x * mbPxRatio,\n y: pan.y * mbPxRatio\n };\n eZoom = zoom * mbPxRatio;\n w = r.canvasWidth * mbPxRatio;\n h = r.canvasHeight * mbPxRatio;\n } else {\n ePan = effectivePan;\n eZoom = effectiveZoom;\n w = r.canvasWidth;\n h = r.canvasHeight;\n }\n context.setTransform(1, 0, 0, 1, 0, 0);\n if (clear === 'motionBlur') {\n mbclear(context, 0, 0, w, h);\n } else if (!forcedContext && (clear === undefined || clear)) {\n context.clearRect(0, 0, w, h);\n }\n if (!drawAllLayers) {\n context.translate(ePan.x, ePan.y);\n context.scale(eZoom, eZoom);\n }\n if (forcedPan) {\n context.translate(forcedPan.x, forcedPan.y);\n }\n if (forcedZoom) {\n context.scale(forcedZoom, forcedZoom);\n }\n }\n if (!textureDraw) {\n r.textureDrawLastFrame = false;\n }\n if (textureDraw) {\n r.textureDrawLastFrame = true;\n if (!r.textureCache) {\n r.textureCache = {};\n r.textureCache.bb = cy.mutableElements().boundingBox();\n r.textureCache.texture = r.data.bufferCanvases[r.TEXTURE_BUFFER];\n var cxt = r.data.bufferContexts[r.TEXTURE_BUFFER];\n cxt.setTransform(1, 0, 0, 1, 0, 0);\n cxt.clearRect(0, 0, r.canvasWidth * r.textureMult, r.canvasHeight * r.textureMult);\n r.render({\n forcedContext: cxt,\n drawOnlyNodeLayer: true,\n forcedPxRatio: pixelRatio * r.textureMult\n });\n var vp = r.textureCache.viewport = {\n zoom: cy.zoom(),\n pan: cy.pan(),\n width: r.canvasWidth,\n height: r.canvasHeight\n };\n vp.mpan = {\n x: (0 - vp.pan.x) / vp.zoom,\n y: (0 - vp.pan.y) / vp.zoom\n };\n }\n needDraw[r.DRAG] = false;\n needDraw[r.NODE] = false;\n var context = data.contexts[r.NODE];\n var texture = r.textureCache.texture;\n var vp = r.textureCache.viewport;\n context.setTransform(1, 0, 0, 1, 0, 0);\n if (motionBlur) {\n mbclear(context, 0, 0, vp.width, vp.height);\n } else {\n context.clearRect(0, 0, vp.width, vp.height);\n }\n var outsideBgColor = style.core('outside-texture-bg-color').value;\n var outsideBgOpacity = style.core('outside-texture-bg-opacity').value;\n r.colorFillStyle(context, outsideBgColor[0], outsideBgColor[1], outsideBgColor[2], outsideBgOpacity);\n context.fillRect(0, 0, vp.width, vp.height);\n var zoom = cy.zoom();\n setContextTransform(context, false);\n context.clearRect(vp.mpan.x, vp.mpan.y, vp.width / vp.zoom / pixelRatio, vp.height / vp.zoom / pixelRatio);\n context.drawImage(texture, vp.mpan.x, vp.mpan.y, vp.width / vp.zoom / pixelRatio, vp.height / vp.zoom / pixelRatio);\n } else if (r.textureOnViewport && !forcedContext) {\n // clear the cache since we don't need it\n r.textureCache = null;\n }\n var extent = cy.extent();\n var vpManip = r.pinching || r.hoverData.dragging || r.swipePanning || r.data.wheelZooming || r.hoverData.draggingEles || r.cy.animated();\n var hideEdges = r.hideEdgesOnViewport && vpManip;\n var needMbClear = [];\n needMbClear[r.NODE] = !needDraw[r.NODE] && motionBlur && !r.clearedForMotionBlur[r.NODE] || r.clearingMotionBlur;\n if (needMbClear[r.NODE]) {\n r.clearedForMotionBlur[r.NODE] = true;\n }\n needMbClear[r.DRAG] = !needDraw[r.DRAG] && motionBlur && !r.clearedForMotionBlur[r.DRAG] || r.clearingMotionBlur;\n if (needMbClear[r.DRAG]) {\n r.clearedForMotionBlur[r.DRAG] = true;\n }\n if (needDraw[r.NODE] || drawAllLayers || drawOnlyNodeLayer || needMbClear[r.NODE]) {\n var useBuffer = motionBlur && !needMbClear[r.NODE] && mbPxRatio !== 1;\n var context = forcedContext || (useBuffer ? r.data.bufferContexts[r.MOTIONBLUR_BUFFER_NODE] : data.contexts[r.NODE]);\n var clear = motionBlur && !useBuffer ? 'motionBlur' : undefined;\n setContextTransform(context, clear);\n if (hideEdges) {\n r.drawCachedNodes(context, eles.nondrag, pixelRatio, extent);\n } else {\n r.drawLayeredElements(context, eles.nondrag, pixelRatio, extent);\n }\n if (r.debug) {\n r.drawDebugPoints(context, eles.nondrag);\n }\n if (!drawAllLayers && !motionBlur) {\n needDraw[r.NODE] = false;\n }\n }\n if (!drawOnlyNodeLayer && (needDraw[r.DRAG] || drawAllLayers || needMbClear[r.DRAG])) {\n var useBuffer = motionBlur && !needMbClear[r.DRAG] && mbPxRatio !== 1;\n var context = forcedContext || (useBuffer ? r.data.bufferContexts[r.MOTIONBLUR_BUFFER_DRAG] : data.contexts[r.DRAG]);\n setContextTransform(context, motionBlur && !useBuffer ? 'motionBlur' : undefined);\n if (hideEdges) {\n r.drawCachedNodes(context, eles.drag, pixelRatio, extent);\n } else {\n r.drawCachedElements(context, eles.drag, pixelRatio, extent);\n }\n if (r.debug) {\n r.drawDebugPoints(context, eles.drag);\n }\n if (!drawAllLayers && !motionBlur) {\n needDraw[r.DRAG] = false;\n }\n }\n if (r.showFps || !drawOnlyNodeLayer && needDraw[r.SELECT_BOX] && !drawAllLayers) {\n var context = forcedContext || data.contexts[r.SELECT_BOX];\n setContextTransform(context);\n if (r.selection[4] == 1 && (r.hoverData.selecting || r.touchData.selecting)) {\n var zoom = r.cy.zoom();\n var borderWidth = style.core('selection-box-border-width').value / zoom;\n context.lineWidth = borderWidth;\n context.fillStyle = 'rgba(' + style.core('selection-box-color').value[0] + ',' + style.core('selection-box-color').value[1] + ',' + style.core('selection-box-color').value[2] + ',' + style.core('selection-box-opacity').value + ')';\n context.fillRect(r.selection[0], r.selection[1], r.selection[2] - r.selection[0], r.selection[3] - r.selection[1]);\n if (borderWidth > 0) {\n context.strokeStyle = 'rgba(' + style.core('selection-box-border-color').value[0] + ',' + style.core('selection-box-border-color').value[1] + ',' + style.core('selection-box-border-color').value[2] + ',' + style.core('selection-box-opacity').value + ')';\n context.strokeRect(r.selection[0], r.selection[1], r.selection[2] - r.selection[0], r.selection[3] - r.selection[1]);\n }\n }\n if (data.bgActivePosistion && !r.hoverData.selecting) {\n var zoom = r.cy.zoom();\n var pos = data.bgActivePosistion;\n context.fillStyle = 'rgba(' + style.core('active-bg-color').value[0] + ',' + style.core('active-bg-color').value[1] + ',' + style.core('active-bg-color').value[2] + ',' + style.core('active-bg-opacity').value + ')';\n context.beginPath();\n context.arc(pos.x, pos.y, style.core('active-bg-size').pfValue / zoom, 0, 2 * Math.PI);\n context.fill();\n }\n var timeToRender = r.lastRedrawTime;\n if (r.showFps && timeToRender) {\n timeToRender = Math.round(timeToRender);\n var fps = Math.round(1000 / timeToRender);\n context.setTransform(1, 0, 0, 1, 0, 0);\n context.fillStyle = 'rgba(255, 0, 0, 0.75)';\n context.strokeStyle = 'rgba(255, 0, 0, 0.75)';\n context.lineWidth = 1;\n context.fillText('1 frame = ' + timeToRender + ' ms = ' + fps + ' fps', 0, 20);\n var maxFps = 60;\n context.strokeRect(0, 30, 250, 20);\n context.fillRect(0, 30, 250 * Math.min(fps / maxFps, 1), 20);\n }\n if (!drawAllLayers) {\n needDraw[r.SELECT_BOX] = false;\n }\n }\n\n // motionblur: blit rendered blurry frames\n if (motionBlur && mbPxRatio !== 1) {\n var cxtNode = data.contexts[r.NODE];\n var txtNode = r.data.bufferCanvases[r.MOTIONBLUR_BUFFER_NODE];\n var cxtDrag = data.contexts[r.DRAG];\n var txtDrag = r.data.bufferCanvases[r.MOTIONBLUR_BUFFER_DRAG];\n var drawMotionBlur = function drawMotionBlur(cxt, txt, needClear) {\n cxt.setTransform(1, 0, 0, 1, 0, 0);\n if (needClear || !motionBlurFadeEffect) {\n cxt.clearRect(0, 0, r.canvasWidth, r.canvasHeight);\n } else {\n mbclear(cxt, 0, 0, r.canvasWidth, r.canvasHeight);\n }\n var pxr = mbPxRatio;\n cxt.drawImage(txt,\n // img\n 0, 0,\n // sx, sy\n r.canvasWidth * pxr, r.canvasHeight * pxr,\n // sw, sh\n 0, 0,\n // x, y\n r.canvasWidth, r.canvasHeight // w, h\n );\n };\n\n if (needDraw[r.NODE] || needMbClear[r.NODE]) {\n drawMotionBlur(cxtNode, txtNode, needMbClear[r.NODE]);\n needDraw[r.NODE] = false;\n }\n if (needDraw[r.DRAG] || needMbClear[r.DRAG]) {\n drawMotionBlur(cxtDrag, txtDrag, needMbClear[r.DRAG]);\n needDraw[r.DRAG] = false;\n }\n }\n r.prevViewport = vp;\n if (r.clearingMotionBlur) {\n r.clearingMotionBlur = false;\n r.motionBlurCleared = true;\n r.motionBlur = true;\n }\n if (motionBlur) {\n r.motionBlurTimeout = setTimeout(function () {\n r.motionBlurTimeout = null;\n r.clearedForMotionBlur[r.NODE] = false;\n r.clearedForMotionBlur[r.DRAG] = false;\n r.motionBlur = false;\n r.clearingMotionBlur = !textureDraw;\n r.mbFrames = 0;\n needDraw[r.NODE] = true;\n needDraw[r.DRAG] = true;\n r.redraw();\n }, motionBlurDelay);\n }\n if (!forcedContext) {\n cy.emit('render');\n }\n};\n\nvar CRp$3 = {};\n\n// @O Polygon drawing\nCRp$3.drawPolygonPath = function (context, x, y, width, height, points) {\n var halfW = width / 2;\n var halfH = height / 2;\n if (context.beginPath) {\n context.beginPath();\n }\n context.moveTo(x + halfW * points[0], y + halfH * points[1]);\n for (var i = 1; i < points.length / 2; i++) {\n context.lineTo(x + halfW * points[i * 2], y + halfH * points[i * 2 + 1]);\n }\n context.closePath();\n};\nCRp$3.drawRoundPolygonPath = function (context, x, y, width, height, points, corners) {\n corners.forEach(function (corner) {\n return drawPreparedRoundCorner(context, corner);\n });\n context.closePath();\n};\n\n// Round rectangle drawing\nCRp$3.drawRoundRectanglePath = function (context, x, y, width, height, radius) {\n var halfWidth = width / 2;\n var halfHeight = height / 2;\n var cornerRadius = radius === 'auto' ? getRoundRectangleRadius(width, height) : Math.min(radius, halfHeight, halfWidth);\n if (context.beginPath) {\n context.beginPath();\n }\n\n // Start at top middle\n context.moveTo(x, y - halfHeight);\n // Arc from middle top to right side\n context.arcTo(x + halfWidth, y - halfHeight, x + halfWidth, y, cornerRadius);\n // Arc from right side to bottom\n context.arcTo(x + halfWidth, y + halfHeight, x, y + halfHeight, cornerRadius);\n // Arc from bottom to left side\n context.arcTo(x - halfWidth, y + halfHeight, x - halfWidth, y, cornerRadius);\n // Arc from left side to topBorder\n context.arcTo(x - halfWidth, y - halfHeight, x, y - halfHeight, cornerRadius);\n // Join line\n context.lineTo(x, y - halfHeight);\n context.closePath();\n};\nCRp$3.drawBottomRoundRectanglePath = function (context, x, y, width, height, radius) {\n var halfWidth = width / 2;\n var halfHeight = height / 2;\n var cornerRadius = radius === 'auto' ? getRoundRectangleRadius(width, height) : radius;\n if (context.beginPath) {\n context.beginPath();\n }\n\n // Start at top middle\n context.moveTo(x, y - halfHeight);\n context.lineTo(x + halfWidth, y - halfHeight);\n context.lineTo(x + halfWidth, y);\n context.arcTo(x + halfWidth, y + halfHeight, x, y + halfHeight, cornerRadius);\n context.arcTo(x - halfWidth, y + halfHeight, x - halfWidth, y, cornerRadius);\n context.lineTo(x - halfWidth, y - halfHeight);\n context.lineTo(x, y - halfHeight);\n context.closePath();\n};\nCRp$3.drawCutRectanglePath = function (context, x, y, width, height, points, corners) {\n var halfWidth = width / 2;\n var halfHeight = height / 2;\n var cornerLength = corners === 'auto' ? getCutRectangleCornerLength() : corners;\n if (context.beginPath) {\n context.beginPath();\n }\n context.moveTo(x - halfWidth + cornerLength, y - halfHeight);\n context.lineTo(x + halfWidth - cornerLength, y - halfHeight);\n context.lineTo(x + halfWidth, y - halfHeight + cornerLength);\n context.lineTo(x + halfWidth, y + halfHeight - cornerLength);\n context.lineTo(x + halfWidth - cornerLength, y + halfHeight);\n context.lineTo(x - halfWidth + cornerLength, y + halfHeight);\n context.lineTo(x - halfWidth, y + halfHeight - cornerLength);\n context.lineTo(x - halfWidth, y - halfHeight + cornerLength);\n context.closePath();\n};\nCRp$3.drawBarrelPath = function (context, x, y, width, height) {\n var halfWidth = width / 2;\n var halfHeight = height / 2;\n var xBegin = x - halfWidth;\n var xEnd = x + halfWidth;\n var yBegin = y - halfHeight;\n var yEnd = y + halfHeight;\n var barrelCurveConstants = getBarrelCurveConstants(width, height);\n var wOffset = barrelCurveConstants.widthOffset;\n var hOffset = barrelCurveConstants.heightOffset;\n var ctrlPtXOffset = barrelCurveConstants.ctrlPtOffsetPct * wOffset;\n if (context.beginPath) {\n context.beginPath();\n }\n context.moveTo(xBegin, yBegin + hOffset);\n context.lineTo(xBegin, yEnd - hOffset);\n context.quadraticCurveTo(xBegin + ctrlPtXOffset, yEnd, xBegin + wOffset, yEnd);\n context.lineTo(xEnd - wOffset, yEnd);\n context.quadraticCurveTo(xEnd - ctrlPtXOffset, yEnd, xEnd, yEnd - hOffset);\n context.lineTo(xEnd, yBegin + hOffset);\n context.quadraticCurveTo(xEnd - ctrlPtXOffset, yBegin, xEnd - wOffset, yBegin);\n context.lineTo(xBegin + wOffset, yBegin);\n context.quadraticCurveTo(xBegin + ctrlPtXOffset, yBegin, xBegin, yBegin + hOffset);\n context.closePath();\n};\nvar sin0 = Math.sin(0);\nvar cos0 = Math.cos(0);\nvar sin = {};\nvar cos = {};\nvar ellipseStepSize = Math.PI / 40;\nfor (var i = 0 * Math.PI; i < 2 * Math.PI; i += ellipseStepSize) {\n sin[i] = Math.sin(i);\n cos[i] = Math.cos(i);\n}\nCRp$3.drawEllipsePath = function (context, centerX, centerY, width, height) {\n if (context.beginPath) {\n context.beginPath();\n }\n if (context.ellipse) {\n context.ellipse(centerX, centerY, width / 2, height / 2, 0, 0, 2 * Math.PI);\n } else {\n var xPos, yPos;\n var rw = width / 2;\n var rh = height / 2;\n for (var i = 0 * Math.PI; i < 2 * Math.PI; i += ellipseStepSize) {\n xPos = centerX - rw * sin[i] * sin0 + rw * cos[i] * cos0;\n yPos = centerY + rh * cos[i] * sin0 + rh * sin[i] * cos0;\n if (i === 0) {\n context.moveTo(xPos, yPos);\n } else {\n context.lineTo(xPos, yPos);\n }\n }\n }\n context.closePath();\n};\n\n/* global atob, ArrayBuffer, Uint8Array, Blob */\nvar CRp$2 = {};\nCRp$2.createBuffer = function (w, h) {\n var buffer = document.createElement('canvas'); // eslint-disable-line no-undef\n buffer.width = w;\n buffer.height = h;\n return [buffer, buffer.getContext('2d')];\n};\nCRp$2.bufferCanvasImage = function (options) {\n var cy = this.cy;\n var eles = cy.mutableElements();\n var bb = eles.boundingBox();\n var ctrRect = this.findContainerClientCoords();\n var width = options.full ? Math.ceil(bb.w) : ctrRect[2];\n var height = options.full ? Math.ceil(bb.h) : ctrRect[3];\n var specdMaxDims = number$1(options.maxWidth) || number$1(options.maxHeight);\n var pxRatio = this.getPixelRatio();\n var scale = 1;\n if (options.scale !== undefined) {\n width *= options.scale;\n height *= options.scale;\n scale = options.scale;\n } else if (specdMaxDims) {\n var maxScaleW = Infinity;\n var maxScaleH = Infinity;\n if (number$1(options.maxWidth)) {\n maxScaleW = scale * options.maxWidth / width;\n }\n if (number$1(options.maxHeight)) {\n maxScaleH = scale * options.maxHeight / height;\n }\n scale = Math.min(maxScaleW, maxScaleH);\n width *= scale;\n height *= scale;\n }\n if (!specdMaxDims) {\n width *= pxRatio;\n height *= pxRatio;\n scale *= pxRatio;\n }\n var buffCanvas = document.createElement('canvas'); // eslint-disable-line no-undef\n\n buffCanvas.width = width;\n buffCanvas.height = height;\n buffCanvas.style.width = width + 'px';\n buffCanvas.style.height = height + 'px';\n var buffCxt = buffCanvas.getContext('2d');\n\n // Rasterize the layers, but only if container has nonzero size\n if (width > 0 && height > 0) {\n buffCxt.clearRect(0, 0, width, height);\n buffCxt.globalCompositeOperation = 'source-over';\n var zsortedEles = this.getCachedZSortedEles();\n if (options.full) {\n // draw the full bounds of the graph\n buffCxt.translate(-bb.x1 * scale, -bb.y1 * scale);\n buffCxt.scale(scale, scale);\n this.drawElements(buffCxt, zsortedEles);\n buffCxt.scale(1 / scale, 1 / scale);\n buffCxt.translate(bb.x1 * scale, bb.y1 * scale);\n } else {\n // draw the current view\n var pan = cy.pan();\n var translation = {\n x: pan.x * scale,\n y: pan.y * scale\n };\n scale *= cy.zoom();\n buffCxt.translate(translation.x, translation.y);\n buffCxt.scale(scale, scale);\n this.drawElements(buffCxt, zsortedEles);\n buffCxt.scale(1 / scale, 1 / scale);\n buffCxt.translate(-translation.x, -translation.y);\n }\n\n // need to fill bg at end like this in order to fill cleared transparent pixels in jpgs\n if (options.bg) {\n buffCxt.globalCompositeOperation = 'destination-over';\n buffCxt.fillStyle = options.bg;\n buffCxt.rect(0, 0, width, height);\n buffCxt.fill();\n }\n }\n return buffCanvas;\n};\nfunction b64ToBlob(b64, mimeType) {\n var bytes = atob(b64);\n var buff = new ArrayBuffer(bytes.length);\n var buffUint8 = new Uint8Array(buff);\n for (var i = 0; i < bytes.length; i++) {\n buffUint8[i] = bytes.charCodeAt(i);\n }\n return new Blob([buff], {\n type: mimeType\n });\n}\nfunction b64UriToB64(b64uri) {\n var i = b64uri.indexOf(',');\n return b64uri.substr(i + 1);\n}\nfunction output(options, canvas, mimeType) {\n var getB64Uri = function getB64Uri() {\n return canvas.toDataURL(mimeType, options.quality);\n };\n switch (options.output) {\n case 'blob-promise':\n return new Promise$1(function (resolve, reject) {\n try {\n canvas.toBlob(function (blob) {\n if (blob != null) {\n resolve(blob);\n } else {\n reject(new Error('`canvas.toBlob()` sent a null value in its callback'));\n }\n }, mimeType, options.quality);\n } catch (err) {\n reject(err);\n }\n });\n case 'blob':\n return b64ToBlob(b64UriToB64(getB64Uri()), mimeType);\n case 'base64':\n return b64UriToB64(getB64Uri());\n case 'base64uri':\n default:\n return getB64Uri();\n }\n}\nCRp$2.png = function (options) {\n return output(options, this.bufferCanvasImage(options), 'image/png');\n};\nCRp$2.jpg = function (options) {\n return output(options, this.bufferCanvasImage(options), 'image/jpeg');\n};\n\nvar CRp$1 = {};\nCRp$1.nodeShapeImpl = function (name, context, centerX, centerY, width, height, points, corners) {\n switch (name) {\n case 'ellipse':\n return this.drawEllipsePath(context, centerX, centerY, width, height);\n case 'polygon':\n return this.drawPolygonPath(context, centerX, centerY, width, height, points);\n case 'round-polygon':\n return this.drawRoundPolygonPath(context, centerX, centerY, width, height, points, corners);\n case 'roundrectangle':\n case 'round-rectangle':\n return this.drawRoundRectanglePath(context, centerX, centerY, width, height, corners);\n case 'cutrectangle':\n case 'cut-rectangle':\n return this.drawCutRectanglePath(context, centerX, centerY, width, height, points, corners);\n case 'bottomroundrectangle':\n case 'bottom-round-rectangle':\n return this.drawBottomRoundRectanglePath(context, centerX, centerY, width, height, corners);\n case 'barrel':\n return this.drawBarrelPath(context, centerX, centerY, width, height);\n }\n};\n\nvar CR = CanvasRenderer;\nvar CRp = CanvasRenderer.prototype;\nCRp.CANVAS_LAYERS = 3;\n//\nCRp.SELECT_BOX = 0;\nCRp.DRAG = 1;\nCRp.NODE = 2;\nCRp.BUFFER_COUNT = 3;\n//\nCRp.TEXTURE_BUFFER = 0;\nCRp.MOTIONBLUR_BUFFER_NODE = 1;\nCRp.MOTIONBLUR_BUFFER_DRAG = 2;\nfunction CanvasRenderer(options) {\n var r = this;\n var containerWindow = r.cy.window();\n var document = containerWindow.document;\n r.data = {\n canvases: new Array(CRp.CANVAS_LAYERS),\n contexts: new Array(CRp.CANVAS_LAYERS),\n canvasNeedsRedraw: new Array(CRp.CANVAS_LAYERS),\n bufferCanvases: new Array(CRp.BUFFER_COUNT),\n bufferContexts: new Array(CRp.CANVAS_LAYERS)\n };\n var tapHlOffAttr = '-webkit-tap-highlight-color';\n var tapHlOffStyle = 'rgba(0,0,0,0)';\n r.data.canvasContainer = document.createElement('div'); // eslint-disable-line no-undef\n var containerStyle = r.data.canvasContainer.style;\n r.data.canvasContainer.style[tapHlOffAttr] = tapHlOffStyle;\n containerStyle.position = 'relative';\n containerStyle.zIndex = '0';\n containerStyle.overflow = 'hidden';\n var container = options.cy.container();\n container.appendChild(r.data.canvasContainer);\n container.style[tapHlOffAttr] = tapHlOffStyle;\n var styleMap = {\n '-webkit-user-select': 'none',\n '-moz-user-select': '-moz-none',\n 'user-select': 'none',\n '-webkit-tap-highlight-color': 'rgba(0,0,0,0)',\n 'outline-style': 'none'\n };\n if (ms()) {\n styleMap['-ms-touch-action'] = 'none';\n styleMap['touch-action'] = 'none';\n }\n for (var i = 0; i < CRp.CANVAS_LAYERS; i++) {\n var canvas = r.data.canvases[i] = document.createElement('canvas'); // eslint-disable-line no-undef\n r.data.contexts[i] = canvas.getContext('2d');\n Object.keys(styleMap).forEach(function (k) {\n canvas.style[k] = styleMap[k];\n });\n canvas.style.position = 'absolute';\n canvas.setAttribute('data-id', 'layer' + i);\n canvas.style.zIndex = String(CRp.CANVAS_LAYERS - i);\n r.data.canvasContainer.appendChild(canvas);\n r.data.canvasNeedsRedraw[i] = false;\n }\n r.data.topCanvas = r.data.canvases[0];\n r.data.canvases[CRp.NODE].setAttribute('data-id', 'layer' + CRp.NODE + '-node');\n r.data.canvases[CRp.SELECT_BOX].setAttribute('data-id', 'layer' + CRp.SELECT_BOX + '-selectbox');\n r.data.canvases[CRp.DRAG].setAttribute('data-id', 'layer' + CRp.DRAG + '-drag');\n for (var i = 0; i < CRp.BUFFER_COUNT; i++) {\n r.data.bufferCanvases[i] = document.createElement('canvas'); // eslint-disable-line no-undef\n r.data.bufferContexts[i] = r.data.bufferCanvases[i].getContext('2d');\n r.data.bufferCanvases[i].style.position = 'absolute';\n r.data.bufferCanvases[i].setAttribute('data-id', 'buffer' + i);\n r.data.bufferCanvases[i].style.zIndex = String(-i - 1);\n r.data.bufferCanvases[i].style.visibility = 'hidden';\n //r.data.canvasContainer.appendChild(r.data.bufferCanvases[i]);\n }\n\n r.pathsEnabled = true;\n var emptyBb = makeBoundingBox();\n var getBoxCenter = function getBoxCenter(bb) {\n return {\n x: (bb.x1 + bb.x2) / 2,\n y: (bb.y1 + bb.y2) / 2\n };\n };\n var getCenterOffset = function getCenterOffset(bb) {\n return {\n x: -bb.w / 2,\n y: -bb.h / 2\n };\n };\n var backgroundTimestampHasChanged = function backgroundTimestampHasChanged(ele) {\n var _p = ele[0]._private;\n var same = _p.oldBackgroundTimestamp === _p.backgroundTimestamp;\n return !same;\n };\n var getStyleKey = function getStyleKey(ele) {\n return ele[0]._private.nodeKey;\n };\n var getLabelKey = function getLabelKey(ele) {\n return ele[0]._private.labelStyleKey;\n };\n var getSourceLabelKey = function getSourceLabelKey(ele) {\n return ele[0]._private.sourceLabelStyleKey;\n };\n var getTargetLabelKey = function getTargetLabelKey(ele) {\n return ele[0]._private.targetLabelStyleKey;\n };\n var drawElement = function drawElement(context, ele, bb, scaledLabelShown, useEleOpacity) {\n return r.drawElement(context, ele, bb, false, false, useEleOpacity);\n };\n var drawLabel = function drawLabel(context, ele, bb, scaledLabelShown, useEleOpacity) {\n return r.drawElementText(context, ele, bb, scaledLabelShown, 'main', useEleOpacity);\n };\n var drawSourceLabel = function drawSourceLabel(context, ele, bb, scaledLabelShown, useEleOpacity) {\n return r.drawElementText(context, ele, bb, scaledLabelShown, 'source', useEleOpacity);\n };\n var drawTargetLabel = function drawTargetLabel(context, ele, bb, scaledLabelShown, useEleOpacity) {\n return r.drawElementText(context, ele, bb, scaledLabelShown, 'target', useEleOpacity);\n };\n var getElementBox = function getElementBox(ele) {\n ele.boundingBox();\n return ele[0]._private.bodyBounds;\n };\n var getLabelBox = function getLabelBox(ele) {\n ele.boundingBox();\n return ele[0]._private.labelBounds.main || emptyBb;\n };\n var getSourceLabelBox = function getSourceLabelBox(ele) {\n ele.boundingBox();\n return ele[0]._private.labelBounds.source || emptyBb;\n };\n var getTargetLabelBox = function getTargetLabelBox(ele) {\n ele.boundingBox();\n return ele[0]._private.labelBounds.target || emptyBb;\n };\n var isLabelVisibleAtScale = function isLabelVisibleAtScale(ele, scaledLabelShown) {\n return scaledLabelShown;\n };\n var getElementRotationPoint = function getElementRotationPoint(ele) {\n return getBoxCenter(getElementBox(ele));\n };\n var addTextMargin = function addTextMargin(prefix, pt, ele) {\n var pre = prefix ? prefix + '-' : '';\n return {\n x: pt.x + ele.pstyle(pre + 'text-margin-x').pfValue,\n y: pt.y + ele.pstyle(pre + 'text-margin-y').pfValue\n };\n };\n var getRsPt = function getRsPt(ele, x, y) {\n var rs = ele[0]._private.rscratch;\n return {\n x: rs[x],\n y: rs[y]\n };\n };\n var getLabelRotationPoint = function getLabelRotationPoint(ele) {\n return addTextMargin('', getRsPt(ele, 'labelX', 'labelY'), ele);\n };\n var getSourceLabelRotationPoint = function getSourceLabelRotationPoint(ele) {\n return addTextMargin('source', getRsPt(ele, 'sourceLabelX', 'sourceLabelY'), ele);\n };\n var getTargetLabelRotationPoint = function getTargetLabelRotationPoint(ele) {\n return addTextMargin('target', getRsPt(ele, 'targetLabelX', 'targetLabelY'), ele);\n };\n var getElementRotationOffset = function getElementRotationOffset(ele) {\n return getCenterOffset(getElementBox(ele));\n };\n var getSourceLabelRotationOffset = function getSourceLabelRotationOffset(ele) {\n return getCenterOffset(getSourceLabelBox(ele));\n };\n var getTargetLabelRotationOffset = function getTargetLabelRotationOffset(ele) {\n return getCenterOffset(getTargetLabelBox(ele));\n };\n var getLabelRotationOffset = function getLabelRotationOffset(ele) {\n var bb = getLabelBox(ele);\n var p = getCenterOffset(getLabelBox(ele));\n if (ele.isNode()) {\n switch (ele.pstyle('text-halign').value) {\n case 'left':\n p.x = -bb.w;\n break;\n case 'right':\n p.x = 0;\n break;\n }\n switch (ele.pstyle('text-valign').value) {\n case 'top':\n p.y = -bb.h;\n break;\n case 'bottom':\n p.y = 0;\n break;\n }\n }\n return p;\n };\n var eleTxrCache = r.data.eleTxrCache = new ElementTextureCache(r, {\n getKey: getStyleKey,\n doesEleInvalidateKey: backgroundTimestampHasChanged,\n drawElement: drawElement,\n getBoundingBox: getElementBox,\n getRotationPoint: getElementRotationPoint,\n getRotationOffset: getElementRotationOffset,\n allowEdgeTxrCaching: false,\n allowParentTxrCaching: false\n });\n var lblTxrCache = r.data.lblTxrCache = new ElementTextureCache(r, {\n getKey: getLabelKey,\n drawElement: drawLabel,\n getBoundingBox: getLabelBox,\n getRotationPoint: getLabelRotationPoint,\n getRotationOffset: getLabelRotationOffset,\n isVisible: isLabelVisibleAtScale\n });\n var slbTxrCache = r.data.slbTxrCache = new ElementTextureCache(r, {\n getKey: getSourceLabelKey,\n drawElement: drawSourceLabel,\n getBoundingBox: getSourceLabelBox,\n getRotationPoint: getSourceLabelRotationPoint,\n getRotationOffset: getSourceLabelRotationOffset,\n isVisible: isLabelVisibleAtScale\n });\n var tlbTxrCache = r.data.tlbTxrCache = new ElementTextureCache(r, {\n getKey: getTargetLabelKey,\n drawElement: drawTargetLabel,\n getBoundingBox: getTargetLabelBox,\n getRotationPoint: getTargetLabelRotationPoint,\n getRotationOffset: getTargetLabelRotationOffset,\n isVisible: isLabelVisibleAtScale\n });\n var lyrTxrCache = r.data.lyrTxrCache = new LayeredTextureCache(r);\n r.onUpdateEleCalcs(function invalidateTextureCaches(willDraw, eles) {\n // each cache should check for sub-key diff to see that the update affects that cache particularly\n eleTxrCache.invalidateElements(eles);\n lblTxrCache.invalidateElements(eles);\n slbTxrCache.invalidateElements(eles);\n tlbTxrCache.invalidateElements(eles);\n\n // any change invalidates the layers\n lyrTxrCache.invalidateElements(eles);\n\n // update the old bg timestamp so diffs can be done in the ele txr caches\n for (var _i = 0; _i < eles.length; _i++) {\n var _p = eles[_i]._private;\n _p.oldBackgroundTimestamp = _p.backgroundTimestamp;\n }\n });\n var refineInLayers = function refineInLayers(reqs) {\n for (var i = 0; i < reqs.length; i++) {\n lyrTxrCache.enqueueElementRefinement(reqs[i].ele);\n }\n };\n eleTxrCache.onDequeue(refineInLayers);\n lblTxrCache.onDequeue(refineInLayers);\n slbTxrCache.onDequeue(refineInLayers);\n tlbTxrCache.onDequeue(refineInLayers);\n}\nCRp.redrawHint = function (group, bool) {\n var r = this;\n switch (group) {\n case 'eles':\n r.data.canvasNeedsRedraw[CRp.NODE] = bool;\n break;\n case 'drag':\n r.data.canvasNeedsRedraw[CRp.DRAG] = bool;\n break;\n case 'select':\n r.data.canvasNeedsRedraw[CRp.SELECT_BOX] = bool;\n break;\n }\n};\n\n// whether to use Path2D caching for drawing\nvar pathsImpld = typeof Path2D !== 'undefined';\nCRp.path2dEnabled = function (on) {\n if (on === undefined) {\n return this.pathsEnabled;\n }\n this.pathsEnabled = on ? true : false;\n};\nCRp.usePaths = function () {\n return pathsImpld && this.pathsEnabled;\n};\nCRp.setImgSmoothing = function (context, bool) {\n if (context.imageSmoothingEnabled != null) {\n context.imageSmoothingEnabled = bool;\n } else {\n context.webkitImageSmoothingEnabled = bool;\n context.mozImageSmoothingEnabled = bool;\n context.msImageSmoothingEnabled = bool;\n }\n};\nCRp.getImgSmoothing = function (context) {\n if (context.imageSmoothingEnabled != null) {\n return context.imageSmoothingEnabled;\n } else {\n return context.webkitImageSmoothingEnabled || context.mozImageSmoothingEnabled || context.msImageSmoothingEnabled;\n }\n};\nCRp.makeOffscreenCanvas = function (width, height) {\n var canvas;\n if ((typeof OffscreenCanvas === \"undefined\" ? \"undefined\" : _typeof(OffscreenCanvas)) !== (\"undefined\" )) {\n canvas = new OffscreenCanvas(width, height);\n } else {\n var containerWindow = this.cy.window();\n var document = containerWindow.document;\n canvas = document.createElement('canvas'); // eslint-disable-line no-undef\n canvas.width = width;\n canvas.height = height;\n }\n return canvas;\n};\n[CRp$a, CRp$9, CRp$8, CRp$7, CRp$6, CRp$5, CRp$4, CRp$3, CRp$2, CRp$1].forEach(function (props) {\n extend(CRp, props);\n});\n\nvar renderer = [{\n name: 'null',\n impl: NullRenderer\n}, {\n name: 'base',\n impl: BR\n}, {\n name: 'canvas',\n impl: CR\n}];\n\nvar incExts = [{\n type: 'layout',\n extensions: layout\n}, {\n type: 'renderer',\n extensions: renderer\n}];\n\n// registered extensions to cytoscape, indexed by name\nvar extensions = {};\n\n// registered modules for extensions, indexed by name\nvar modules = {};\nfunction setExtension(type, name, registrant) {\n var ext = registrant;\n var overrideErr = function overrideErr(field) {\n warn('Can not register `' + name + '` for `' + type + '` since `' + field + '` already exists in the prototype and can not be overridden');\n };\n if (type === 'core') {\n if (Core.prototype[name]) {\n return overrideErr(name);\n } else {\n Core.prototype[name] = registrant;\n }\n } else if (type === 'collection') {\n if (Collection.prototype[name]) {\n return overrideErr(name);\n } else {\n Collection.prototype[name] = registrant;\n }\n } else if (type === 'layout') {\n // fill in missing layout functions in the prototype\n\n var Layout = function Layout(options) {\n this.options = options;\n registrant.call(this, options);\n\n // make sure layout has _private for use w/ std apis like .on()\n if (!plainObject(this._private)) {\n this._private = {};\n }\n this._private.cy = options.cy;\n this._private.listeners = [];\n this.createEmitter();\n };\n var layoutProto = Layout.prototype = Object.create(registrant.prototype);\n var optLayoutFns = [];\n for (var i = 0; i < optLayoutFns.length; i++) {\n var fnName = optLayoutFns[i];\n layoutProto[fnName] = layoutProto[fnName] || function () {\n return this;\n };\n }\n\n // either .start() or .run() is defined, so autogen the other\n if (layoutProto.start && !layoutProto.run) {\n layoutProto.run = function () {\n this.start();\n return this;\n };\n } else if (!layoutProto.start && layoutProto.run) {\n layoutProto.start = function () {\n this.run();\n return this;\n };\n }\n var regStop = registrant.prototype.stop;\n layoutProto.stop = function () {\n var opts = this.options;\n if (opts && opts.animate) {\n var anis = this.animations;\n if (anis) {\n for (var _i = 0; _i < anis.length; _i++) {\n anis[_i].stop();\n }\n }\n }\n if (regStop) {\n regStop.call(this);\n } else {\n this.emit('layoutstop');\n }\n return this;\n };\n if (!layoutProto.destroy) {\n layoutProto.destroy = function () {\n return this;\n };\n }\n layoutProto.cy = function () {\n return this._private.cy;\n };\n var getCy = function getCy(layout) {\n return layout._private.cy;\n };\n var emitterOpts = {\n addEventFields: function addEventFields(layout, evt) {\n evt.layout = layout;\n evt.cy = getCy(layout);\n evt.target = layout;\n },\n bubble: function bubble() {\n return true;\n },\n parent: function parent(layout) {\n return getCy(layout);\n }\n };\n extend(layoutProto, {\n createEmitter: function createEmitter() {\n this._private.emitter = new Emitter(emitterOpts, this);\n return this;\n },\n emitter: function emitter() {\n return this._private.emitter;\n },\n on: function on(evt, cb) {\n this.emitter().on(evt, cb);\n return this;\n },\n one: function one(evt, cb) {\n this.emitter().one(evt, cb);\n return this;\n },\n once: function once(evt, cb) {\n this.emitter().one(evt, cb);\n return this;\n },\n removeListener: function removeListener(evt, cb) {\n this.emitter().removeListener(evt, cb);\n return this;\n },\n removeAllListeners: function removeAllListeners() {\n this.emitter().removeAllListeners();\n return this;\n },\n emit: function emit(evt, params) {\n this.emitter().emit(evt, params);\n return this;\n }\n });\n define.eventAliasesOn(layoutProto);\n ext = Layout; // replace with our wrapped layout\n } else if (type === 'renderer' && name !== 'null' && name !== 'base') {\n // user registered renderers inherit from base\n\n var BaseRenderer = getExtension('renderer', 'base');\n var bProto = BaseRenderer.prototype;\n var RegistrantRenderer = registrant;\n var rProto = registrant.prototype;\n var Renderer = function Renderer() {\n BaseRenderer.apply(this, arguments);\n RegistrantRenderer.apply(this, arguments);\n };\n var proto = Renderer.prototype;\n for (var pName in bProto) {\n var pVal = bProto[pName];\n var existsInR = rProto[pName] != null;\n if (existsInR) {\n return overrideErr(pName);\n }\n proto[pName] = pVal; // take impl from base\n }\n\n for (var _pName in rProto) {\n proto[_pName] = rProto[_pName]; // take impl from registrant\n }\n\n bProto.clientFunctions.forEach(function (name) {\n proto[name] = proto[name] || function () {\n error('Renderer does not implement `renderer.' + name + '()` on its prototype');\n };\n });\n ext = Renderer;\n } else if (type === '__proto__' || type === 'constructor' || type === 'prototype') {\n // to avoid potential prototype pollution\n return error(type + ' is an illegal type to be registered, possibly lead to prototype pollutions');\n }\n return setMap({\n map: extensions,\n keys: [type, name],\n value: ext\n });\n}\nfunction getExtension(type, name) {\n return getMap({\n map: extensions,\n keys: [type, name]\n });\n}\nfunction setModule(type, name, moduleType, moduleName, registrant) {\n return setMap({\n map: modules,\n keys: [type, name, moduleType, moduleName],\n value: registrant\n });\n}\nfunction getModule(type, name, moduleType, moduleName) {\n return getMap({\n map: modules,\n keys: [type, name, moduleType, moduleName]\n });\n}\nvar extension = function extension() {\n // e.g. extension('renderer', 'svg')\n if (arguments.length === 2) {\n return getExtension.apply(null, arguments);\n }\n\n // e.g. extension('renderer', 'svg', { ... })\n else if (arguments.length === 3) {\n return setExtension.apply(null, arguments);\n }\n\n // e.g. extension('renderer', 'svg', 'nodeShape', 'ellipse')\n else if (arguments.length === 4) {\n return getModule.apply(null, arguments);\n }\n\n // e.g. extension('renderer', 'svg', 'nodeShape', 'ellipse', { ... })\n else if (arguments.length === 5) {\n return setModule.apply(null, arguments);\n } else {\n error('Invalid extension access syntax');\n }\n};\n\n// allows a core instance to access extensions internally\nCore.prototype.extension = extension;\n\n// included extensions\nincExts.forEach(function (group) {\n group.extensions.forEach(function (ext) {\n setExtension(group.type, ext.name, ext.impl);\n });\n});\n\n// a dummy stylesheet object that doesn't need a reference to the core\n// (useful for init)\nvar Stylesheet = function Stylesheet() {\n if (!(this instanceof Stylesheet)) {\n return new Stylesheet();\n }\n this.length = 0;\n};\nvar sheetfn = Stylesheet.prototype;\nsheetfn.instanceString = function () {\n return 'stylesheet';\n};\n\n// just store the selector to be parsed later\nsheetfn.selector = function (selector) {\n var i = this.length++;\n this[i] = {\n selector: selector,\n properties: []\n };\n return this; // chaining\n};\n\n// just store the property to be parsed later\nsheetfn.css = function (name, value) {\n var i = this.length - 1;\n if (string(name)) {\n this[i].properties.push({\n name: name,\n value: value\n });\n } else if (plainObject(name)) {\n var map = name;\n var propNames = Object.keys(map);\n for (var j = 0; j < propNames.length; j++) {\n var key = propNames[j];\n var mapVal = map[key];\n if (mapVal == null) {\n continue;\n }\n var prop = Style.properties[key] || Style.properties[dash2camel(key)];\n if (prop == null) {\n continue;\n }\n var _name = prop.name;\n var _value = mapVal;\n this[i].properties.push({\n name: _name,\n value: _value\n });\n }\n }\n return this; // chaining\n};\n\nsheetfn.style = sheetfn.css;\n\n// generate a real style object from the dummy stylesheet\nsheetfn.generateStyle = function (cy) {\n var style = new Style(cy);\n return this.appendToStyle(style);\n};\n\n// append a dummy stylesheet object on a real style object\nsheetfn.appendToStyle = function (style) {\n for (var i = 0; i < this.length; i++) {\n var context = this[i];\n var selector = context.selector;\n var props = context.properties;\n style.selector(selector); // apply selector\n\n for (var j = 0; j < props.length; j++) {\n var prop = props[j];\n style.css(prop.name, prop.value); // apply property\n }\n }\n\n return style;\n};\n\nvar version = \"3.30.2\";\n\nvar cytoscape = function cytoscape(options) {\n // if no options specified, use default\n if (options === undefined) {\n options = {};\n }\n\n // create instance\n if (plainObject(options)) {\n return new Core(options);\n }\n\n // allow for registration of extensions\n else if (string(options)) {\n return extension.apply(extension, arguments);\n }\n};\n\n// e.g. cytoscape.use( require('cytoscape-foo'), bar )\ncytoscape.use = function (ext) {\n var args = Array.prototype.slice.call(arguments, 1); // args to pass to ext\n\n args.unshift(cytoscape); // cytoscape is first arg to ext\n\n ext.apply(null, args);\n return this;\n};\ncytoscape.warnings = function (bool) {\n return warnings(bool);\n};\n\n// replaced by build system\ncytoscape.version = version;\n\n// expose public apis (mostly for extensions)\ncytoscape.stylesheet = cytoscape.Stylesheet = Stylesheet;\n\nexport { cytoscape as default };\n"], + "mappings": "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", + "names": ["_typeof", "obj", "_classCallCheck", "instance", "Constructor", "_defineProperties", "target", "props", "i", "descriptor", "_createClass", "protoProps", "staticProps", "_defineProperty$1", "key", "value", "_slicedToArray", "arr", "_arrayWithHoles", "_iterableToArrayLimit", "_unsupportedIterableToArray", "_nonIterableRest", "_i", "_arr", "_n", "_d", "_s", "_e", "err", "o", "minLen", "_arrayLikeToArray", "n", "len", "arr2", "_createForOfIteratorHelper", "allowArrayLike", "it", "F", "e", "normalCompletion", "didErr", "step", "_window", "navigator", "typeofstr", "typeofobj", "typeoffn", "typeofhtmlele", "instanceStr", "fn$6", "string", "array", "elementOrCollection", "plainObject", "object", "number$1", "integer", "htmlElement", "element", "collection", "core", "stylesheet", "event", "emptyString", "domElement", "boundingBox", "promise", "ms", "memoize$1", "fn", "keyFn", "args", "memoizedFn", "self", "ret", "k", "cache", "camel2dash", "str", "v", "dash2camel", "prependCamel", "prefix", "capitalize", "number", "rgba", "rgbaNoBackRefs", "hsla", "hslaNoBackRefs", "hex3", "hex6", "ascending", "a", "b", "descending", "extend", "tgt", "keys", "j", "hex2tuple", "hex", "shortHex", "r", "g", "base", "hsl2tuple", "hsl", "h", "s", "l", "hue2rgb", "p", "q", "t", "m", "rgb2tuple", "rgb", "isPct", "channel", "atLeastOneIsPct", "allArePct", "alpha", "colorname2tuple", "color", "colors", "color2tuple", "setMap", "options", "getMap", "isObject", "type", "isObject_1", "commonjsGlobal", "createCommonjsModule", "module", "freeGlobal", "_freeGlobal", "freeSelf", "root", "_root", "now", "now_1", "reWhitespace", "trimmedEndIndex", "index", "_trimmedEndIndex", "reTrimStart", "baseTrim", "_baseTrim", "Symbol$1", "_Symbol", "objectProto$5", "hasOwnProperty$4", "nativeObjectToString$1", "symToStringTag$1", "getRawTag", "isOwn", "tag", "unmasked", "result", "_getRawTag", "objectProto$4", "nativeObjectToString", "objectToString", "_objectToString", "nullTag", "undefinedTag", "symToStringTag", "baseGetTag", "_baseGetTag", "isObjectLike", "isObjectLike_1", "symbolTag", "isSymbol", "isSymbol_1", "NAN", "reIsBadHex", "reIsBinary", "reIsOctal", "freeParseInt", "toNumber", "other", "isBinary", "toNumber_1", "FUNC_ERROR_TEXT$1", "nativeMax", "nativeMin", "debounce", "func", "wait", "lastArgs", "lastThis", "maxWait", "timerId", "lastCallTime", "lastInvokeTime", "leading", "maxing", "trailing", "invokeFunc", "time", "thisArg", "leadingEdge", "timerExpired", "remainingWait", "timeSinceLastCall", "timeSinceLastInvoke", "timeWaiting", "shouldInvoke", "trailingEdge", "cancel", "flush", "debounced", "isInvoking", "debounce_1", "performance", "pnow", "raf", "requestAnimationFrame", "performanceNow", "DEFAULT_HASH_SEED", "K", "DEFAULT_HASH_SEED_ALT", "hashIterableInts", "iterator", "seed", "hash", "entry", "hashInt", "num", "hashIntAlt", "combineHashes", "hash1", "hash2", "combineHashesArray", "hashes", "hashArrays", "hashes1", "hashes2", "hashIntsArray", "ints", "length", "hashString", "hashStrings", "hashStringsArray", "strs", "warningsEnabled", "warnSupported", "traceSupported", "MAX_INT$1", "trueify", "falsify", "zeroify", "noop$1", "error", "msg", "warnings", "enabled", "warn", "clone", "copy", "copyArray$1", "uuid", "_staticEmptyObject", "staticEmptyObject", "defaults$g", "_defaults", "opts", "filledOpts", "optVal", "removeFromArray", "ele", "oneCopy", "clearArray", "push", "otherArr", "el", "getPrefixedProperty", "propName", "setPrefixedProperty", "ObjectMap", "val", "Map$2", "undef", "ObjectSet", "arrayOrObjectSet", "_this", "callback", "Set$1", "Element", "cy", "params", "restore", "group", "_p", "rpos", "pan", "zoom", "classes", "cls", "bypass", "defineSearch", "roots", "directed", "Q", "connectedNodes", "connectedBy", "id2depth", "V", "found", "_this$byGroup", "nodes", "edges", "vi", "viId", "_loop", "vId", "depth", "prevEdge", "src", "prevNode", "vwEdges", "_i2", "w", "wId", "_ret", "connectedEles", "node", "edge", "elesfn$v", "heap$1", "exports", "Heap", "defaultCmp", "floor", "heapify", "heappop", "heappush", "heappushpop", "heapreplace", "insort", "min", "nlargest", "nsmallest", "updateItem", "_siftdown", "_siftup", "x", "y", "lo", "hi", "cmp", "mid", "item", "lastelt", "returnitem", "_ref", "_len", "_ref1", "_results", "_results1", "_j", "pos", "elem", "los", "startpos", "newitem", "parent", "parentpos", "childpos", "endpos", "rightpos", "heap", "factory", "dijkstraDefaults", "elesfn$u", "_dijkstraDefaults", "weight", "eles", "weightFn", "source", "dist", "prev", "knownDist", "getDist", "setDist", "d", "distBetween", "u", "uvs", "smallestDistance", "smallestEdge", "_weight", "smalletsDist", "uid", "neighbors", "vid", "vDist", "alt", "S", "elesfn$t", "numNodes", "forest", "A", "findSetIndex", "setUIndex", "setVIndex", "setU", "setV", "aStarDefaults", "elesfn$s", "_aStarDefaults", "goal", "heuristic", "sid", "tid", "gScore", "fScore", "closedSetIds", "openSet", "openSetIds", "cameFrom", "cameFromEdge", "addToOpenSet", "id", "cMin", "cMinId", "popFromOpenSet", "isInOpenSet", "steps", "path", "pathNode", "pathNodeId", "pathEdge", "wSrc", "wTgt", "wid", "tempScore", "floydWarshallDefaults", "elesfn$r", "_floydWarshallDefault", "N", "Nsq", "indexOf", "atIndex", "next", "edgeNext", "st", "ts", "ik", "ij", "kj", "getArgEle", "indexOfArgEle", "res", "from", "to", "fromNode", "bellmanFordDefaults", "elesfn$q", "_bellmanFordDefaults", "infoMap", "hasNegativeWeightCycle", "negativeWeightCycles", "numEdges", "getInfo", "getNodeFromTo", "distanceTo", "pathTo", "thisStart", "end", "_getInfo", "pred", "info", "replacedEdge", "checkForEdgeReplacement", "node1", "node2", "info1", "info2", "srcInfo", "tgtInfo", "negativeWeightCycleIds", "_edge", "_src", "_tgt", "_weight2", "srcDist", "tgtDist", "negativeNodes", "numNegativeNodes", "start", "cycle", "_node", "smallestId", "smallestIndex", "c", "cycleId", "sqrt2", "collapse", "edgeIndex", "nodeMap", "remainingEdges", "edgeInfo", "sourceIn", "targetIn", "partition1", "partition2", "newEdges", "contractUntil", "metaNodeMap", "size", "sizeLimit", "elesfn$p", "numIter", "stopSize", "edgeIndexes", "minCutSize", "minCutEdgeIndexes", "minCutNodeMap", "metaNodeMap2", "copyNodesMap", "_i3", "iter", "_i4", "edgesState", "edgesState2", "res1", "res2", "cut", "witnessNodePartition", "_i5", "partitionId", "constructComponent", "subset", "component", "components", "copyPosition", "modelToRenderedPosition", "renderedToModelPosition", "array2point", "begin", "max", "mean", "total", "median", "sort", "includeHoles", "off", "deg2rad", "deg", "getAngleFromDisp", "dispX", "dispY", "log2", "signum", "p1", "p2", "sqdist", "dx", "dy", "inPlaceSumNormalize", "qbezierAt", "p0", "qbezierPtAt", "lineAt", "vec", "vecDist", "normVec", "bound", "makeBoundingBox", "bb", "copyBoundingBox", "clearBoundingBox", "shiftBoundingBox", "updateBoundingBox", "bb1", "bb2", "expandBoundingBoxByPoint", "expandBoundingBox", "padding", "expandBoundingBoxSides", "top", "right", "bottom", "left", "_padding", "assignBoundingBox", "boundingBoxesIntersect", "inBoundingBox", "pointInBoundingBox", "pt", "boundingBoxInBoundingBox", "roundRectangleIntersectLine", "nodeX", "nodeY", "width", "height", "radius", "cornerRadius", "getRoundRectangleRadius", "halfWidth", "halfHeight", "doWidth", "doHeight", "straightLineIntersections", "topStartX", "topStartY", "topEndX", "topEndY", "finiteLinesIntersect", "rightStartX", "rightStartY", "rightEndX", "rightEndY", "bottomStartX", "bottomStartY", "bottomEndX", "bottomEndY", "leftStartX", "leftStartY", "leftEndX", "leftEndY", "arcIntersections", "topLeftCenterX", "topLeftCenterY", "intersectLineCircle", "topRightCenterX", "topRightCenterY", "bottomRightCenterX", "bottomRightCenterY", "bottomLeftCenterX", "bottomLeftCenterY", "inLineVicinity", "lx1", "ly1", "lx2", "ly2", "tolerance", "x1", "x2", "y1", "y2", "inBezierVicinity", "x3", "y3", "solveQuadratic", "sqrtR", "denom", "root1", "root2", "solveCubic", "epsilon", "discriminant", "dum1", "term1", "r13", "sqdistToQuadraticBezier", "zeroThreshold", "minDistanceSquared", "curX", "curY", "distSquared", "sqdistToFiniteLine", "offset", "line", "lineSq", "hypSq", "dotProduct", "adjSq", "pointInsidePolygonPoints", "points", "up", "pointInsidePolygon", "basePoints", "centerX", "centerY", "direction", "transformedPoints", "angle", "cos", "sin", "expandedLineSet", "expandPolygon", "joinLines", "pointInsideRoundPolygon", "corners", "cutPolygonPoints", "corner", "squaredDistance", "lineSet", "vertices", "currentLineStartX", "currentLineStartY", "currentLineEndX", "currentLineEndY", "nextLineStartX", "nextLineStartY", "nextLineEndX", "nextLineEndY", "intersection", "pad", "currentPointX", "currentPointY", "nextPointX", "nextPointY", "offsetX", "offsetY", "offsetLength", "normalizedOffsetX", "normalizedOffsetY", "intersectLineEllipse", "ellipseWradius", "ellipseHradius", "newLength", "lenProportion", "checkInEllipse", "f", "t1", "t2", "tMin", "tMax", "inRangeParams", "nearIntersectionX", "nearIntersectionY", "farIntersectionX", "farIntersectionY", "midOfThree", "x4", "y4", "infiniteLines", "dx13", "dx21", "dx43", "dy13", "dy21", "dy43", "ua_t", "ub_t", "u_b", "ua", "ub", "flptThreshold", "_min", "_max", "polygonIntersectLine", "intersections", "doTransform", "currentX", "currentY", "nextX", "nextY", "roundPolygonIntersectLine", "lines", "lowestIntersection", "lowestSquaredDistance", "shortenIntersection", "amount", "disp", "lenRatio", "generateUnitNgonPointsFitToSquare", "sides", "rotationRadians", "generateUnitNgonPoints", "fitPolygonToSquare", "minX", "minY", "maxX", "maxY", "sx", "sy", "increment", "startAngle", "currentAngle", "getRoundPolygonRadius", "getCutRectangleCornerLength", "bezierPtsToQuadCoeff", "getBarrelCurveConstants", "pageRankDefaults", "elesfn$o", "_pageRankDefaults", "dampingFactor", "precision", "iterations", "numNodesSqd", "matrix", "columnSum", "additionalProb", "srcId", "tgtId", "_n2", "_n3", "eigenvector", "temp", "previous", "_i6", "_j2", "_n4", "diff", "_i7", "delta", "defaults$f", "elesfn$n", "indegrees", "outdegrees", "maxIndegree", "maxOutdegree", "_currDegree", "degrees", "maxDegree", "currDegree", "callingEles", "_options", "incoming", "outgoing", "k_in", "k_out", "s_in", "s_out", "connEdges", "defaults$e", "elesfn$m", "harmonic", "closenesses", "maxCloseness", "fw", "currCloseness", "node_i", "_defaults2", "dijkstra", "totalDistance", "defaults$d", "elesfn$l", "weighted", "_C", "C", "P", "_vid", "_v", "vEle", "edgeWeight", "_w", "_w2", "_v2", "defaults$c", "setOptions$3", "getSimilarity$1", "attributes", "addLoops", "M", "normalize", "sum", "col", "row", "_row", "mmult", "B", "expand", "expandFactor", "_M", "inflate", "inflateFactor", "hasConverged", "n2", "roundFactor", "v1", "v2", "assign$2", "clusters", "cluster", "isDuplicate", "c1", "c2", "removeDuplicates", "markovClustering", "id2position", "sim", "isStillMoving", "markovClustering$1", "identity", "absDiff", "addAbsDiff", "addSquaredDiff", "sqrt", "maxAbsDiff", "currentMax", "getDistance", "getP", "getQ", "init", "visit", "post", "dim", "distances", "clusteringDistance", "method", "nodeP", "nodeQ", "impl", "defaults$b", "setOptions$2", "centroid", "mode", "noNodeP", "randomCentroids", "ndim", "centroids", "classify", "distance", "buildCluster", "assignment", "haveValuesConverged", "sensitivityThreshold", "haveMatricesConverged", "seenBefore", "medoids", "randomMedoids", "findCost", "potentialNewMedoid", "cost", "kMeans", "newCentroid", "kMedoids", "curCost", "minCosts", "updateCentroids", "U", "numerator", "denominator", "_c", "updateMembership", "_U", "pow", "assign$1", "_c2", "_c3", "fuzzyCMeans", "kClustering", "defaults$a", "linkageAliases", "setOptions$1", "preferredAlias", "mergeClosest", "dists", "mins", "minKey", "attrs", "n1", "_dist", "merged", "cur", "key1", "key2", "getAllChildren", "buildDendrogram", "leftStr", "rightStr", "buildClustersFromTree", "leaves", "hierarchicalClustering", "retClusters", "hierarchicalClustering$1", "defaults$9", "setOptions", "dmp", "pref", "validPrefs", "getSimilarity", "attr", "getPreference", "preference", "findExemplars", "R", "indices", "assignClusters", "exemplars", "ei", "_ei", "assign", "ii", "maxI", "maxSum", "affinityPropagation", "old", "Rp", "se", "_i8", "max2", "AS", "_i9", "_j3", "_j4", "_i10", "E", "_sum", "_i11", "_j5", "exemplarsIndices", "clusterIndices", "_i12", "clusterIndex", "affinityPropagation$1", "hierholzerDefaults", "elesfn$k", "_hierholzerDefaults", "dflag", "oddIn", "oddOut", "startVertex", "ind", "outd", "d1", "d2", "walk", "currentNode", "subtour", "adj", "adjTail", "adjHead", "trail", "hopcroftTarjanBiconnected", "edgeCount", "stack", "visitedEdges", "buildComponent", "cutset", "nodeId", "connectedEdges", "biconnectedSearch", "sourceId", "targetId", "otherNodeId", "edgeId", "cutVertices", "hopcroftTarjanBiconnected$1", "tarjanStronglyConnected", "stronglyConnectedSearch", "sourceNodeId", "targetNodeId", "componentNodes", "componentEdges", "tarjanStronglyConnected$1", "elesfn$j", "STATE_PENDING", "STATE_FULFILLED", "STATE_REJECTED", "api", "executor", "deliver", "onFulfilled", "onRejected", "curr", "resolver", "execute", "state", "name", "execute_handlers", "handlers", "cb", "resolve", "then", "resolved", "ps", "resolveAll", "rejectAll", "vals", "doneCount", "fulfill", "isPromise", "reject", "Promise$1", "Animation", "opts2", "isCore", "isEle", "anifn", "tAni", "wasPlaying", "swap", "_pa", "prop", "startStyleProp", "define$3", "selfIsArrayLike", "all", "complete", "properties", "isEles", "style", "propertiesEmpty", "panBy", "cyPan", "center", "centerPan", "fit", "fitVp", "vp", "queue", "ani", "clearQueue", "jumpToEnd", "anis", "ani_p", "isArray", "isArray_1", "reIsDeepProp", "reIsPlainProp", "isKey", "_isKey", "asyncTag", "funcTag", "genTag", "proxyTag", "isFunction", "isFunction_1", "coreJsData", "_coreJsData", "maskSrcKey", "isMasked", "_isMasked", "funcProto$1", "funcToString$1", "toSource", "_toSource", "reRegExpChar", "reIsHostCtor", "funcProto", "objectProto$3", "funcToString", "hasOwnProperty$3", "reIsNative", "baseIsNative", "pattern", "_baseIsNative", "getValue$1", "_getValue", "getNative", "_getNative", "nativeCreate", "_nativeCreate", "hashClear", "_hashClear", "hashDelete", "_hashDelete", "HASH_UNDEFINED$1", "objectProto$2", "hasOwnProperty$2", "hashGet", "data", "_hashGet", "objectProto$1", "hasOwnProperty$1", "hashHas", "_hashHas", "HASH_UNDEFINED", "hashSet", "_hashSet", "Hash", "entries", "_Hash", "listCacheClear", "_listCacheClear", "eq", "eq_1", "assocIndexOf", "_assocIndexOf", "arrayProto", "splice", "listCacheDelete", "lastIndex", "_listCacheDelete", "listCacheGet", "_listCacheGet", "listCacheHas", "_listCacheHas", "listCacheSet", "_listCacheSet", "ListCache", "_ListCache", "Map$1", "_Map", "mapCacheClear", "_mapCacheClear", "isKeyable", "_isKeyable", "getMapData", "map", "_getMapData", "mapCacheDelete", "_mapCacheDelete", "mapCacheGet", "_mapCacheGet", "mapCacheHas", "_mapCacheHas", "mapCacheSet", "_mapCacheSet", "MapCache", "_MapCache", "FUNC_ERROR_TEXT", "memoize", "memoized", "memoize_1", "MAX_MEMOIZE_SIZE", "memoizeCapped", "_memoizeCapped", "rePropName", "reEscapeChar", "stringToPath", "match", "quote", "subString", "_stringToPath", "arrayMap", "iteratee", "_arrayMap", "INFINITY$1", "symbolProto", "symbolToString", "baseToString", "_baseToString", "toString$1", "toString_1", "castPath", "_castPath", "INFINITY", "toKey", "_toKey", "baseGet", "_baseGet", "get", "defaultValue", "get_1", "defineProperty", "_defineProperty", "baseAssignValue", "_baseAssignValue", "objectProto", "hasOwnProperty", "assignValue", "objValue", "_assignValue", "MAX_SAFE_INTEGER", "reIsUint", "isIndex", "_isIndex", "baseSet", "customizer", "nested", "newValue", "_baseSet", "set", "set_1", "copyArray", "_copyArray", "toPath", "toPath_1", "define$2", "defaults", "single", "isPathLike", "valid", "change", "_valid", "_ele", "names", "i_a", "l_a", "_i_a", "_l_a", "_privateFields", "_keys", "_key", "validKeyToDelete", "define$1", "proto", "events", "selector", "offArgs", "onArgs", "define", "elesfn$i", "elesfn$h", "_classes", "changed", "classesSet", "eleClasses", "changedEle", "eleHasClass", "className", "toggle", "toggleUndefd", "il", "hasClass", "changedNow", "duration", "tokens", "ops", "op", "newQuery", "Type", "stateSelectors", "lookup", "selToFn", "stateSelectorMatches", "sel", "stateSelectorRegex", "cleanMetaChars", "$1", "replaceLastQuery", "examiningQuery", "replacementQuery", "exprs", "query", "_ref2", "_ref3", "_ref4", "_ref5", "_ref6", "_ref7", "_ref8", "_ref9", "_ref10", "variable", "_ref11", "_ref12", "comparatorOp", "valueIsString", "_ref13", "_ref14", "boolOp", "_ref15", "_ref16", "meta", "currentSubject", "compoundCount", "lastQ", "nextQuery", "edgeQuery", "srcTgtQ", "_source", "_target", "nhoodQ", "neighbor", "parentChildQuery", "child", "compound", "subject", "_child", "_parent", "_parent2", "_child2", "pcQChecks", "ancChQuery", "descendant", "ancestor", "_descendant", "_ancestor", "_ancestor2", "_descendant2", "adQChecks", "topQ", "topChk", "topType", "consumeExpr", "remaining", "expr", "consumed", "consumeWhitespace", "parse", "currentQuery", "exprInfo", "toString", "clean", "cleanVal", "space", "checkToString", "check", "field", "operator", "_operator", "_field", "_field2", "_operator2", "_field3", "queryToString", "lhs", "sub", "rhs", "chk", "parse$1", "valCmp", "fieldVal", "matches", "isFieldStr", "isFieldNum", "isValStr", "fieldStr", "valStr", "caseInsensitive", "notExpr", "isIneqCmp", "boolCmp", "existCmp", "data$1", "matches$1", "stateSelector", "qA", "qB", "filter", "selectorFunction", "matching", "Selector", "selfn", "otherSel", "elesfn$g", "selObj", "thisLength", "collectionLength", "nhood", "arg1", "arg2", "arg3", "arg4", "selectorOrEles", "tch", "ch", "cacheHit", "elesfn$f", "parents", "ancestors", "children", "eleChildren", "elements", "add", "forEachCompound", "includeSelf", "recursiveStep", "did", "hasCompounds", "addChildren", "addParent", "addParentAndChildren", "fn$5", "elesfn$e", "elesfn$d", "defineDegreeFunction", "includeLoops", "degree", "defineDegreeBoundsFunction", "degreeFn", "fn$4", "elesfn$c", "beforePositionSet", "newPos", "silent", "oldPos", "positionDef", "_fn", "_pos", "setting", "ppos", "hasCompoundNodes", "_ele2", "hasParent", "relativeToParent", "origin", "_hasParent", "_relativeToParent", "_origin", "position", "fn$3", "elesfn$b", "force", "update", "includeLabels", "computeBiasValues", "propDiff", "propBias", "propBiasComplement", "biasDiff", "biasComplementDiff", "biasTotal", "computePaddingValues", "paddingObject", "relativeTo", "leftVal", "rightVal", "topVal", "bottomVal", "widthBiasDiffs", "diffLeft", "diffRight", "heightBiasDiffs", "diffTop", "diffBottom", "noninf", "updateBounds", "updateBoundsFromBox", "b2", "prefixedProperty", "updateBoundsFromArrow", "bounds", "rstyle", "halfArW", "arrowType", "bbs", "updateBoundsFromLabel", "prefixDash", "label", "halign", "valign", "labelWidth", "labelHeight", "labelX", "labelY", "marginX", "marginY", "isEdge", "rotation", "outlineWidth", "borderWidth", "halfBorderWidth", "marginOfError", "lh", "lw", "lw_2", "lh_2", "bbPrefix", "isAutorotate", "isPfValue", "theta", "xo", "yo", "rotate", "px1y1", "px1y2", "px2y1", "px2y2", "bbPrefixRot", "bbRot", "updateBoundsFromOutline", "outlineOpacity", "outlineOffset", "nodeShape", "outlineSize", "scaleX", "scaleY", "xOffset", "yOffset", "hDelta", "wDelta", "oBounds", "boundingBoxImpl", "styleEnabled", "headless", "isNode", "ex1", "ex2", "ey1", "ey2", "manualExpansion", "isDisplayed", "displayed", "overlayOpacity", "overlayPadding", "underlayOpacity", "underlayPadding", "wHalf", "halfW", "halfH", "curveStyle", "hpts", "_temp", "pts", "n1pos", "n2pos", "_temp2", "_temp3", "ghost", "gx", "gy", "bbBody", "bbOverlay", "bbLabels", "getKey", "tf", "getBoundingBoxPosKey", "cachedBoundingBoxImpl", "defBbOptsKey", "usingDefOpts", "currPosKey", "isPosKeySame", "useCache", "isDirty", "needRecalc", "defBbOpts", "filledBbOpts", "storeOldPos", "getOldPos", "fn$2", "elesfn$a", "defineDimFns", "border", "od", "widthHeight", "ifEdge", "getValue", "ifEdgeRenderedPosition", "getPoint", "ifEdgeRenderedPositions", "getPoints", "controlPoints", "segmentPoints", "sourceEndpoint", "targetEndpoint", "midpoint", "renderedName", "edgePoints", "spec", "rName", "dimensions", "Event", "returnFalse", "returnTrue", "eventRegex", "universalNamespace", "defaults$8", "q1", "q2", "context", "defaultsKeys", "emptyOpts", "Emitter", "forEachEvent", "handler", "qualifier", "conf", "confOverrides", "eventList", "evt", "namespace", "makeEventObj", "forEachEventObj", "eventObj", "listeners", "listener", "extraParams", "manualCallback", "numListenersBeforeEmit", "_loop2", "emitterOptions$1", "selector1", "selector2", "argSelector$1", "arg", "elesfn$9", "argSel", "elesfn$8", "_filter", "filterEles", "include", "toRemove", "remove", "col1", "col2", "col1Smaller", "colS", "colL", "inOther", "both", "retEles", "toAdd", "toAddEle", "unmergedLastEle", "lastEleI", "lastEle", "lastEleId", "toRmFn", "mapFn", "initialValue", "valFn", "maxEle", "minEle", "fn$1", "elesfn$7", "zIndexSort", "getDepth", "depthDiff", "getEleDepth", "eleDiff", "zDiff", "elesfn$6", "thisSize", "sortFn", "sorted", "srcDepth", "tgtDepth", "defineSymbolIterator", "typeofUndef", "isIteratorSupported", "getLayoutDimensionOptions", "elesfn$5", "dims", "bbDim", "layout", "layoutEles", "getMemoizeKey", "fnMem", "calculateSpacing", "spacing", "nodesBb", "spacingVector", "useSpacingFactor", "spacingBb", "getFinalPos", "animateNode", "fitAni", "zoomPanAni", "styleCache", "cacheStyleFunction", "cachePrototypeStyleFunction", "selfFn", "elesfn$4", "renderer", "dirty", "notifyRenderer", "bEles", "updatedEles", "changedEles", "property", "includeNonDefault", "overriddenStyle", "pstyle", "updateTransitions", "parentOpacity", "opacity", "checkCompound", "parentOk", "defineDerivedStateFunction", "specs", "ok", "edgeOkViaNode", "eleTakesUpSpace", "eleInteractive", "parentInteractive", "eleVisible", "edgeVisibleViaNode", "elesfn$3", "defineSwitchFunction", "_handler", "addlEvents", "able", "overrideAble", "changedColl", "defineSwitchSet", "elesfn$2", "defineDagExtremity", "disqualified", "defineDagOneHop", "oEles", "defineDagAllHops", "sEles", "sElesIds", "newNext", "nid", "otherNode", "defineSourceFunction", "sources", "defineEdgesWithFunction", "otherNodes", "edgeData", "thisToOther", "otherToThis", "edgeConnectsThisAndOther", "defineParallelEdgesFunction", "edge1", "edge1_p", "src1", "srcid1", "tgtid1", "srcEdges1", "edge2", "edge2data", "tgtid2", "srcid2", "codirected", "oppdirected", "visited", "unvisited", "visitInComponent", "cmpt", "Collection", "unique", "removed", "createdElements", "elesIds", "json", "_data", "_l", "element$1", "elesfn$1", "_data2", "move", "newParentValSpecd", "checkSwitch", "trueFnName", "falseFnName", "obj_k", "jsons", "elesArr", "addToPool", "cy_p", "removeFromElements", "_private", "_data3", "fields", "fieldsLength", "badSourceOrTarget", "_data4", "parentId", "specifiedParent", "selfAsParent", "restored", "_ele3", "toUpdateStyle", "removeFromPool", "elesToRemove", "elesToRemoveIds", "addConnectedEdges", "alreadyAdded", "removeEdgeRef", "removeParallelRef", "pllEdge", "alteredParents", "removeChildRef", "pid", "_ele4", "pllEdges", "elesStillInside", "_ele5", "removedElements", "_ele6", "struct", "modifyPool", "srcExists", "tgtExists", "_data5", "parentExists", "pidToAssign", "updated", "_data6", "corefn$9", "_jsons", "elesByGroup", "_jsons2", "grs", "elesArray", "jl", "_json", "generateCubicBezier", "mX1", "mY1", "mX2", "mY2", "NEWTON_ITERATIONS", "NEWTON_MIN_SLOPE", "SUBDIVISION_PRECISION", "SUBDIVISION_MAX_ITERATIONS", "kSplineTableSize", "kSampleStepSize", "float32ArraySupported", "mSampleValues", "aA1", "aA2", "calcBezier", "aT", "getSlope", "newtonRaphsonIterate", "aX", "aGuessT", "currentSlope", "calcSampleValues", "binarySubdivide", "aA", "aB", "currentT", "getTForX", "intervalStart", "currentSample", "lastSample", "guessForT", "initialSlope", "_precomputed", "precompute", "generateSpringRK4", "springAccelerationForState", "springEvaluateStateWithDerivative", "initialState", "dt", "derivative", "springIntegrateState", "dxdt", "dvdt", "springRK4Factory", "tension", "friction", "initState", "time_lapsed", "DT", "have_duration", "last_state", "percentComplete", "cubicBezier", "bezier", "percent", "easings", "spring", "getEasedValue", "easingFn", "ease", "startProp", "endProp", "propSpec", "easedArr", "si", "step$1", "pEasing", "startTime", "easingVals", "easingProp", "easing", "startPos", "endPos", "startPan", "endPan", "animatingPan", "startZoom", "endZoom", "animatingZoom", "_name", "easedVal", "startAnimation", "stepAll", "doneEles", "stepOne", "current", "ranAnis", "callbacks", "_callbacks", "ranEleAni", "handledThisEle", "ranCoreAni", "corefn$8", "headlessStep", "willDraw", "emitterOptions", "argSelector", "elesfn", "corefn$7", "corefn$6", "Layout", "corefn$5", "eventName", "eventEles", "bool", "ids", "rendererDefaults", "corefn$4", "pxRatio", "RendererProto", "rOpts", "domEle", "corefn$3", "styfn$8", "TRUE", "FALSE", "ie", "cxtMeta", "cxtStyle", "app", "hintsDiff", "oldCxtKey", "newCxtKey", "dualCxtKey", "cachedVal", "diffProps", "addedProp", "cxt", "oldHasCxt", "newHasCxt", "cxtHasDiffed", "cxtHasMappedProps", "laterCxtOverrides", "laterCxt", "hasLaterCxt", "cxtKey", "prevKey", "contextSelectorMatches", "cxtStyles", "hasCxt", "retDiffProps", "types", "diffPropName", "cxtProp", "eleProp", "mapping", "fnValue", "retDiffProp", "propNames", "propGrKeys", "propHash", "seedKey", "oldStyleKey", "overriddenStyles", "grKey", "updateGrKey1", "updateGrKey2", "updateGrKey", "updateGrKeyWStr", "strVal", "cleanNum", "parsedProp", "propInfo", "_grKey", "normalizedNumberVal", "numberVal", "haveNormNum", "haveUnitedNum", "haveNum", "units", "_grKey2", "grHash", "sk", "labelKeys", "sourceLabelKeys", "targetLabelKeys", "_p$styleKeys", "nodeBody", "nodeBorder", "nodeOutline", "backgroundImage", "pie", "nodeKeys", "flatProp", "propIsBypass", "origProp", "origPropIsBypass", "flatPropMapping", "getVal", "checkTriggers", "fromVal", "toVal", "printMappingErr", "fieldWidth", "r1", "r2", "g1", "g2", "b1", "a1", "a2", "clr", "calcValue", "_fields", "_fieldVal", "fnRetVal", "keepBypasses", "delay", "anyPrev", "styProp", "diffProp", "prevProp", "fromProp", "toProp", "initVal", "initDt", "fromValue", "toValue", "getTrigger", "onTrigger", "triggerCheck", "styfn$7", "isBypass", "_parsedProp", "specifiedProps", "_name2", "_value", "_parsedProp2", "_prop", "isColor", "isMulti", "oldValue", "styfn$6", "px", "containerWindow", "styfn$5", "isRenderedVal", "subproperty", "styleProp", "strValue", "getRenderedValue", "getValueStringWithUnits", "isArrayValue", "haveUnits", "aniProps", "aniProp", "propsObj", "chVal", "styfn$4", "css", "styfn$3", "selAndBlockStr", "blockRem", "propAndValStr", "removeSelAndBlockFromRemaining", "removePropAndValFromRem", "nothingLeftToParse", "selAndBlock", "selectorStr", "blockStr", "invalidBlock", "_nothingLeftToParse", "propAndVal", "propStr", "styfn$2", "hex3$1", "hex6$1", "mapData", "mapArg", "urlRegexes", "valArr", "unitsArr", "val1", "val2", "str1", "str2", "empty1", "empty2", "mainLabel", "sourceLabel", "targetLabel", "labelDimensions", "commonLabel", "behavior", "visibility", "overlay", "underlay", "transition", "nodeSizeHashOverride", "edgeLine", "edgeArrow", "arrowPrefixes", "triggersBounds", "propGroups", "propGroupNames", "propGroupKeys", "aliases", "alias", "pointsToProp", "aliasProp", "rawProps", "parsedProps", "styfn$1", "propIsFlat", "flatKey", "bypassKey", "valueKey", "argHash", "propCache", "passedValue", "mapped", "_mapped", "valueMin", "valueMax", "same", "pfValArr", "hasEnum", "checkEnums", "en", "implicitUnits", "unitsRegex", "propsStr", "propsSplit", "tuple", "enumProp", "regexes", "regex", "Style", "styfn", "ele_p", "mapVal", "currentSelectorIsCore", "corefn$2", "newStyle", "defaultSelectionType", "corefn$1", "selType", "arg0", "viewportState", "bbe", "currentPan", "currentZoom", "bail", "pan1", "zoom1", "zoom2", "pan2", "zoomDefd", "panDefd", "zoomFailed", "panFailed", "z", "container", "rb", "_int", "Core", "reg", "readies", "head", "defVal", "def", "altVal", "loadExtData", "extData", "anyIsPromise", "rendererOptions", "setElesAndLayout", "onload", "ondone", "oldEles", "layoutOpts", "thens", "initStyle", "initEles", "corefn", "ownerDocument", "getFreshRef", "idInJson", "updateEles", "gr", "toMod", "_toMod$_i", "parentsToRemove", "flat", "defaults$7", "deprecatedOptionDefaults", "setInfo", "BreadthFirstLayout", "graph", "maximal", "rootsArray", "comp", "compRoots", "depths", "foundByBfs", "addToDepth", "changeDepth", "newDepth", "pNode", "orphanNodes", "assignDepthsAt", "assignDepths", "adjustMaximally", "shifted", "eInfo", "incomers", "maxDepth", "incmr", "iInfo", "enqueue", "dequeue", "didShift", "minDistance", "nbb", "cachedWeightedPercent", "getWeightedPercent", "eleDepth", "samples", "bf", "nDepth", "apct", "bpct", "orphanDepth", "biggestDepthSize", "maxDepthSize", "getPosition", "_getInfo2", "depthSize", "distanceX", "distanceY", "radiusStepSize", "epos", "defaults$6", "CircleLayout", "clockwise", "sweep", "dTheta", "dcos", "dsin", "rMin", "getPos", "rx", "ry", "defaults$5", "ConcentricLayout", "nodeValues", "maxNodeSize", "levelWidth", "levels", "currentLevel", "minDist", "firstLvlHasMulti", "maxR", "rStep", "level", "rDeltaMax", "_r", "_level", "rDelta", "_level2", "_level3", "_dTheta", "_r2", "_val", "DEBUG", "defaults$4", "CoseLayout", "notEdges", "hasSource", "hasTarget", "layoutInfo", "createLayoutInfo", "printLayoutInfo", "randomizePositions", "refresh", "refreshPositions", "mainLoop", "done", "getScaledPos", "getScaleInBoundsFn", "loopRet", "frame", "separateComponents", "id2cmptId", "tempNode", "tempGraph", "p_id", "node_id", "node_ix", "tempEdge", "idealLength", "elasticity", "sourceIx", "targetIx", "sourceGraph", "targetGraph", "lca", "findLCA", "lcaGraph", "findLCA_aux", "graphIx", "nodeIx", "childGraphIx", "coseBB", "lnode", "pctX", "pctY", "_step", "calculateNodeForces", "calculateEdgeForces", "calculateGravityForces", "propagateForces", "updatePositions", "nodeRepulsion", "randomDistance", "cmptId1", "cmptId2", "directionX", "directionY", "maxRandDist", "overlap", "nodesOverlap", "forceX", "forceY", "point1", "findClippingPoint", "point2", "distanceSqr", "dX", "dY", "overlapX", "overlapY", "X", "Y", "H", "W", "dirSlope", "nodeSlope", "lx", "ly", "distThreshold", "fx", "fy", "nodeIndex", "offX", "offY", "childNode", "tempForce", "limitForce", "updateAncestryBoundaries", "flag", "cid", "totalA", "usedW", "rowH", "maxRowW", "defaults$3", "GridLayout", "cells", "splits", "rows", "cols", "small", "large", "oRows", "oCols", "sm", "lg", "_sm", "_lg", "cellWidth", "cellHeight", "cellUsed", "used", "use", "moveToNextCell", "id2manPos", "rcPos", "defaults$2", "NullLayout", "defaults$1", "PresetLayout", "posIsFn", "RandomLayout", "NullRenderer", "noop", "throwImgErr", "BRp$f", "arrowShapes", "bbCollide", "translation", "edgeWidth", "inside", "transform", "xRotated", "yRotated", "xScaled", "yScaled", "xTranslated", "yTranslated", "transformPoints", "retPts", "pointsToArr", "standardGap", "defineArrowShape", "defn", "ptsTrans", "ctrlPt", "ctrlPtTrans", "triPts", "teePts", "circleInside", "shiftFactor", "y0", "crossLinePts", "BRp$e", "clientX", "clientY", "offsets", "offsetLeft", "offsetTop", "scale", "rect", "styleValue", "clientWidth", "clientHeight", "paddingHor", "paddingVer", "borderHor", "unscaledW", "unscaledH", "interactiveElementsOnly", "isTouch", "near", "edgeThreshold", "nodeThreshold", "labelThreshold", "minSqDist", "nearEdge", "nearNode", "addEle", "sqDist", "checkNode", "hw", "hh", "rs", "shape", "checkEdge", "styleWidth", "widthSq", "width2", "arSize", "arrows", "ar", "preprop", "pre", "checkLabel", "th", "text", "eventsEnabled", "ox", "oy", "box", "x1c", "x2c", "y1c", "y2c", "boxBb", "nodeBb", "allInside", "BRp$d", "isHaystack", "isBezier", "isMultibezier", "isSegments", "isCompound", "isSelf", "startX", "startY", "endX", "endY", "midX", "midY", "bX", "bY", "i2", "i1", "cpts", "bp0x", "bp0y", "bp1x", "bp1y", "ic", "i3", "sinA", "sinA90", "radDirection", "drawDirection", "halfAngle", "cRadius", "lenOut", "limit", "stopX", "stopY", "lastPoint", "asVec", "pp", "invertVec", "originalV", "invertedV", "calcCornerArc", "previousPoint", "currentPoint", "nextPoint", "radiusMax", "isArcRadius", "drawPreparedRoundCorner", "ctx", "roundCorner", "getRoundCorner", "BRp$c", "pairInfo", "posPts", "intersectionPts", "vectorNormInverse", "midptPts", "srcManEndpt", "tgtManEndpt", "haveManualEndPts", "recalcVectorNormInverse", "edgeDistances", "_this$manualEndptToPx", "_this$manualEndptToPx2", "_this$manualEndptToPx3", "_this$manualEndptToPx4", "endPts", "srcPos", "tgtPos", "srcW", "tgtW", "srcH", "tgtH", "halfRadius", "segmentWs", "segmentDs", "segmentRs", "segmentTs", "segmentsN", "lastRadius", "lastRadiusType", "w1", "w2", "_this$findMidptPtsEtc", "adjustedMidpt", "edgeIsUnbundled", "dirCounts", "ctrlptDists", "ctrlptDist", "loopDir", "loopSwp", "stepSize", "loopDist", "loopAngle", "outAngle", "inAngle", "dc", "loopW", "loopaPos", "loopbPos", "loopPos", "minCompoundStretch", "compoundStretchA", "compoundStretchB", "edgeIsSwapped", "ctrlptWs", "bezierN", "ctrlptWeight", "multi", "normctrlptDist", "manctrlptDist", "sign", "distanceFromMidpoint", "_this$findMidptPtsEtc2", "VERTICAL", "HORIZONTAL", "LEFTWARD", "RIGHTWARD", "DOWNWARD", "UPWARD", "AUTO", "dIncludesNodeBody", "taxiDir", "rawTaxiDir", "taxiTurn", "turnIsPercent", "taxiTurnPfVal", "turnIsNegative", "minD", "dw", "dh", "pdx", "pdy", "subDWH", "dxy", "dwh", "isExplicitDir", "isVert", "pl", "sgnL", "forcedDir", "getIsTooClose", "isTooCloseSrc", "isTooCloseTgt", "isTooClose", "lShapeInsideSrc", "lShapeInsideTgt", "_lShapeInsideSrc", "_lShapeInsideTgt", "_y", "_x", "_x2", "_x3", "_y2", "_y3", "_y4", "_x4", "_x5", "_x6", "_y5", "_y6", "srcShape", "tgtShape", "srcCornerRadius", "tgtCornerRadius", "srcRs", "tgtRs", "badStart", "badAStart", "badEnd", "badAEnd", "minCpADistFactor", "arrowW", "minCpADist", "startACpDist", "closeStartACp", "endACpDist", "closeEndACp", "overlapping", "cpD", "cpL", "cpM", "cpProj", "srcCtrlPtIntn", "_cpD", "_cpL", "_cpM", "_radius", "_cpProj", "tgtCtrlPtIntn", "mt", "point", "factor", "hashTable", "pairId", "map2", "pairIds", "haystackEdges", "edgeIsBezier", "srcIndex", "tgtIndex", "tableEntry", "swappedpairInfo", "firstEdge", "_curveStyle", "_edgeIsUnbundled", "srcOutside", "srcIntn", "tgtOutside", "tgtIntn", "vector", "vectorNorm", "passedPairInfo", "getPts", "BRp$b", "npos", "intersect", "tgtArShape", "srcArShape", "et", "taxi", "segments", "hasEndpts", "overrideEndpts", "srcManEndptVal", "tgtManEndptVal", "p1_i", "p2_i", "cpStart", "cpEnd", "srcArrowFromPt", "tgtArrowFromPt", "trs", "lw2", "lh2", "va", "ha", "labelIntersect", "refPt", "intSqdist", "labIntSqdist", "labInt2SqDist", "arrowEnd", "edgeEnd", "srs", "_lw", "_lh", "_lx", "_ly", "_lw2", "_lh2", "_va", "_ha", "_labelIntersect", "_refPt", "_intSqdist", "_labIntSqdist", "_minSqDist", "_labInt2SqDist", "arrowStart", "edgeStart", "BRp$a", "pushBezierPts", "qbezierAt$1", "p3", "bpts", "lpts", "BRp$9", "content", "textX", "textY", "nodeWidth", "nodeHeight", "nodePos", "textHalign", "textValign", "lineAngleFromDelta", "lineAngle", "bezierAngle", "t0", "lp0", "lp1", "setRs", "midAngle", "createControlPointInfo", "ctrlpts", "nProjs", "addSegment", "cp", "prevSegment", "segment", "prevCp", "calculateEndProjection", "isSrc", "cps", "selected", "startDist", "totalDist", "_cp", "_seg", "lastSeg", "seg", "tSegment", "segDt", "di", "d0", "pD", "_t", "labelDims", "lineHeight", "textWrap", "numLines", "normPerLineHeight", "labelLineHeight", "pfd", "textTransform", "rscratch", "wrapStyle", "labelKey", "zwsp", "maxW", "overflow", "overflowAny", "wrappedLines", "separatorRegex", "lineDims", "lineW", "processedLine", "separatorMatches", "subline", "previousIndex", "_iterator", "separatorMatch", "wordSeparator", "word", "testLine", "testDims", "testW", "_maxW", "ellipsized", "ellipsis", "incLastCh", "widthWithNextCh", "justification", "document", "cacheKey", "existingVal", "fStyle", "family", "canvas", "c2d", "ds", "metrics", "rot", "rotStr", "BRp$8", "TOO_SMALL_CUT_RECT", "warnedCutRect", "BRp$7", "elesToUpdate", "dirtyStyleCaches", "updateEleCalcs", "fns", "isCleanConnected", "_p2", "_rstyle", "_p3", "_rstyle2", "BRp$6", "grabTargets", "forceRecalc", "BRp$5", "BRp$4", "url", "crossOrigin", "onLoad", "imageCache", "image", "dataUriPrefix", "isDataUri", "BRp$3", "useCapture", "tgtIsDom", "supportsPassive", "on", "isSelected", "triggerEvents", "isMultSelKeyDown", "allowPanningPassthrough", "down", "downs", "allowPassthrough", "setGrabbed", "setFreed", "setInDragLayer", "setOutDragLayer", "setGrabTarget", "removeGrabTarget", "addToDragList", "list", "listHasEle", "addDescendantsToDrag", "innerNodes", "addNodesToDrag", "updateAncestorsInDragLayer", "addNodeToDrag", "freeDraggedElements", "grabbedEles", "blurActiveDomElement", "haveMutationsApi", "haveResizeObserverApi", "mutns", "mutn", "rNodes", "rNode", "onResize", "forEachUp", "invalidateCoords", "inBoxSelection", "eventInContainer", "containerPageCoords", "positions", "atLeastOnePosInside", "tParent", "containerIsTarget", "gpos", "select", "nears", "draggedElements", "checkForTaphold", "cxtEvt", "makeEvent", "triggerGrab", "selectedNodes", "capture", "preventDefault", "mdownPos", "mdownGPos", "last", "isOverThresholdDrag", "dx2", "dy2", "dist2", "multSelKeyDown", "updateDragDelta", "dragDelta", "goIntoBoxMode", "deltaP", "mdPos", "justStartedDrag", "totalShift", "clickTimeout", "didDoubleClick", "prevClickTimeStamp", "cxtTap", "eleWouldBeSelected", "downWasGrabbed", "wheelHandler", "needsWheelFix", "newZoom", "f1x1", "f1y1", "f2x1", "f2y1", "distance1", "distance1Sq", "center1", "modelCenter1", "containerWidth", "containerHeight", "twoFingersStartInside", "distanceSq", "touchstartHandler", "earlier", "cxtDistThreshold", "cxtDistThresholdSq", "near1", "near2", "draggedEles", "sPos", "touch0", "touchmoveHandler", "startGPos", "f1x2", "f1y2", "f2x2", "f2y2", "distance2Sq", "factorSq", "distThresholdSq", "factorThreshold", "factorThresholdSq", "de_p", "_start", "distance2", "df1x", "df1y", "df2x", "df2y", "tx", "ty", "ctrx", "ctry", "touchcancelHandler", "touchendHandler", "didDoubleTouch", "touchTimeout", "prevTouchTimeStamp", "ctxTapend", "ctxTap", "startWasGrabbed", "rdist2", "pointers", "makeTouch", "makePointer", "addPointer", "removePointer", "updatePointer", "addTouchesToEvent", "pointerIsMouse", "BRp$2", "diam", "cl", "xBegin", "xEnd", "yBegin", "yEnd", "cPts", "cutTrianglePts", "bPts", "approximateBarrelCurvePts", "m0", "m1", "m2", "curveConstants", "hOffset", "wOffset", "ctrlPtXOffset", "barrelCurvePts", "getCurveT", "curvePts", "x0", "xMin", "xMax", "yMin", "yMax", "coeff", "validRoots", "curveRegions", "cornerPts", "bezY", "topIntersections", "outerWidth", "outerHeight", "nodeShapes", "diamondPoints", "star5Points", "outerPoints", "innerPoints", "innerRadius", "tagPoints", "BRp$1", "priority", "cbs", "beforeRenderCallbacks", "renderFn", "requestTime", "endTime", "BaseRenderer", "BR", "BRp", "ctr", "stylesheetId", "stylesheetAlreadyExists", "computedStyle", "binding", "fullFpsTime", "defs", "queueRedraw", "frameStartTime", "avgRenderTime", "renderTime", "deqd", "extent", "pixelRatio", "frameDuration", "timeAvailable", "thisDeqd", "ElementTextureCacheLookup", "doesEleInvalidateKey", "idsByKey", "currKey", "newKey", "lvl", "cachesByLvl", "lvls", "caches", "entireKeyInvalidated", "minTxrH", "txrStepH", "minLvl$1", "maxLvl$1", "maxZoom$1", "eleTxrSpacing", "defTxrWidth", "maxTxrW", "maxTxrH", "minUtility", "maxFullness", "maxFullnessChecks", "deqCost$1", "deqAvgCost$1", "deqNoDrawCost$1", "deqFastCost$1", "deqRedrawThreshold$1", "maxDeqSize$1", "getTxrReasons", "initDefaults", "ElementTextureCache", "initOptions", "ETCp", "txrH", "rtxtrQs", "rtxtrQ", "k2q", "reason", "eleScaledH", "eleScaledW", "scaledLabelShown", "eleCache", "txrQ", "txr", "addNewTxr", "scalableFrom", "otherCache", "deqing", "highQualityReq", "downscaleReq", "higherCache", "oneUpCache", "downscale", "lowerCache", "_l2", "invalid", "noOtherElesUseCache", "_cache", "eleCaches", "minW", "existingReq", "req", "dequeued", "cacheExists", "defNumLayers", "minLvl", "maxLvl", "maxZoom", "deqRedrawThreshold", "refineEleDebounceTime", "deqCost", "deqAvgCost", "deqNoDrawCost", "deqFastCost", "maxDeqSize", "invalidThreshold", "maxLayerArea", "useHighQualityEleTxrReqs", "LayeredTextureCache", "qSort", "LTCp", "layerIdPool", "MAX_INT", "layer", "firstGet", "layersByLvl", "layers", "lvlComplete", "tmpLayers", "checkTempLevels", "canUseAsTmpLvl", "checkLvls", "dir", "getBb", "makeLayer", "after", "area", "maxElesPerLayer", "allowLazyQueueing", "existingLayer", "numElesInLayers", "haveLayers", "rLyr", "elesQ", "hasId", "eleDeqs", "layersInLevel", "replaced", "CRp$a", "polygon", "triangleBackcurve", "controlPoint", "firstPt", "triangleTee", "trianglePoints", "teePoints", "firstTeePt", "circleTriangle", "firstTrPt", "circle", "CRp$9", "shiftToOriginWithBb", "showLabel", "showOverlay", "showOpacity", "eleTxrCache", "getRotation", "getOpacity", "smooth", "rotPt", "oldGlobalAlpha", "getZeroRotation", "getLabelRotation", "getSourceLabelRotation", "getTargetLabelRotation", "getTextOpacity", "requestHighQuality", "_r$data", "lblTxrCache", "slbTxrCache", "tlbTxrCache", "badLine", "CRp$8", "drawLabel", "shouldDrawOverlay", "shouldDrawOpacity", "lineOpacity", "lineStyle", "lineCap", "lineOutlineWidth", "lineOutlineColor", "effectiveLineOpacity", "effectiveArrowOpacity", "drawLine", "strokeOpacity", "drawLineOutline", "drawOverlay", "drawUnderlay", "drawArrows", "arrowOpacity", "drawText", "ghostOpacity", "effectiveGhostOpacity", "drawEdgeOverlayUnderlay", "overlayOrUnderlay", "usePaths", "canvasCxt", "pathCacheHit", "lineDashPattern", "lineDashOffset", "pathCacheKey", "keyMatches", "normal", "triangleHead", "arrowShape", "arrowClearFill", "arrowFill", "pArrowWidth", "arrowWidth", "edgeOpacity", "gco", "fill", "shapeWidth", "canvasContext", "shapeImpl", "cachedPath", "CRp$7", "img", "ix", "iy", "iw", "ih", "nodeOpacity", "styleObj", "getIndexedStyle", "repeat", "nodeW", "nodeH", "paddingX2", "nodeTW", "nodeTH", "clip", "shouldClip", "imgOpacity", "imgW", "imgH", "posXUnits", "posXPfVal", "offXUnits", "offXPfVal", "posYUnits", "posYPfVal", "offYUnits", "offYPfVal", "gAlpha", "smoothingEnabled", "isSmoothingSwitched", "CRp$6", "computedSize", "minSize", "useEleOpacity", "_label", "srcLabel", "tgtLabel", "applyRotation", "labelStyle", "labelSize", "labelFamily", "labelWeight", "outlineColor", "roundRect", "stroke", "pdash", "textAngle", "orgTextX", "orgTextY", "textW", "textH", "backgroundOpacity", "borderOpacity", "textBorderWidth", "backgroundPadding", "styleShape", "rounded", "roundRadius", "bgX", "bgY", "bgW", "bgH", "textFill", "textBackgroundColor", "textStroke", "textLineWidth", "textBorderColor", "textBorderStyle", "whiteWidth", "lineWidth", "halfTextW", "CRp$5", "eleOpacity", "bgImgProp", "urls", "urlDefined", "numImages", "defd", "bgImgCrossOrigin", "darkness", "bgOpacity", "borderColor", "borderStyle", "borderJoin", "borderCap", "borderPosition", "borderPattern", "borderOffset", "outlineStyle", "setupShapeColor", "bgOpy", "setupBorderColor", "bdrOpy", "setupOutlineColor", "otlnOpy", "getPath", "pathCache", "shapePts", "shapePath", "drawShape", "drawImages", "prevBging", "totalCompleted", "bgContainment", "drawPie", "redrawShape", "pieOpacity", "darken", "darkenOpacity", "drawBorder", "region", "drawOutline", "bWidth", "sWidth", "sHeight", "_path", "outlinePath", "sMult", "_pad", "effGhostOpacity", "drawNodeOverlayUnderlay", "cyStyle", "pieSize", "lastPercent", "angleStart", "angleDelta", "angleEnd", "CRp$4", "motionBlurDelay", "backingStore", "needToCreateCache", "shapeStyleName", "gradientStyle", "_end", "_width", "_height", "hasPositions", "backgroundFill", "backgroundColor", "lineFill", "lineColor", "mbPxRatio", "canvasWidth", "canvasHeight", "canvasContainer", "forcedContext", "drawAllLayers", "drawOnlyNodeLayer", "forcedZoom", "forcedPan", "needDraw", "textureDraw", "motionBlur", "inNodeDragGesture", "motionBlurFadeEffect", "effectiveZoom", "effectivePan", "prevVp", "viewportIsDiff", "mbclear", "setContextTransform", "clear", "ePan", "eZoom", "texture", "outsideBgColor", "outsideBgOpacity", "vpManip", "hideEdges", "needMbClear", "useBuffer", "timeToRender", "fps", "maxFps", "cxtNode", "txtNode", "cxtDrag", "txtDrag", "drawMotionBlur", "txt", "needClear", "pxr", "CRp$3", "cornerLength", "barrelCurveConstants", "sin0", "cos0", "ellipseStepSize", "xPos", "yPos", "rw", "rh", "CRp$2", "buffer", "ctrRect", "specdMaxDims", "maxScaleW", "maxScaleH", "buffCanvas", "buffCxt", "zsortedEles", "b64ToBlob", "b64", "mimeType", "bytes", "buff", "buffUint8", "b64UriToB64", "b64uri", "output", "getB64Uri", "blob", "CRp$1", "CR", "CanvasRenderer", "CRp", "tapHlOffAttr", "tapHlOffStyle", "containerStyle", "styleMap", "emptyBb", "getBoxCenter", "getCenterOffset", "backgroundTimestampHasChanged", "getStyleKey", "getLabelKey", "getSourceLabelKey", "getTargetLabelKey", "drawElement", "drawSourceLabel", "drawTargetLabel", "getElementBox", "getLabelBox", "getSourceLabelBox", "getTargetLabelBox", "isLabelVisibleAtScale", "getElementRotationPoint", "addTextMargin", "getRsPt", "getLabelRotationPoint", "getSourceLabelRotationPoint", "getTargetLabelRotationPoint", "getElementRotationOffset", "getSourceLabelRotationOffset", "getTargetLabelRotationOffset", "getLabelRotationOffset", "lyrTxrCache", "refineInLayers", "reqs", "pathsImpld", "incExts", "extensions", "modules", "setExtension", "registrant", "ext", "overrideErr", "layoutProto", "optLayoutFns", "fnName", "regStop", "getCy", "emitterOpts", "getExtension", "bProto", "RegistrantRenderer", "rProto", "Renderer", "pName", "pVal", "existsInR", "_pName", "setModule", "moduleType", "moduleName", "getModule", "extension", "Stylesheet", "sheetfn", "version", "cytoscape"] +} diff --git a/docs/_site/public/chunk-WXIN66R4.min.js b/docs/_site/public/chunk-WXIN66R4.min.js new file mode 100644 index 0000000..c626fe1 --- /dev/null +++ b/docs/_site/public/chunk-WXIN66R4.min.js @@ -0,0 +1,4 @@ +import{f as t}from"./chunk-BIJFJY5F.min.js";var a={},o={info:t(async()=>{let{createInfoServices:e}=await import("./info-46DW6VJ7-RDUIJSMX.min.js"),r=e().Info.parser.LangiumParser;a.info=r},"info"),packet:t(async()=>{let{createPacketServices:e}=await import("./packet-W2GHVCYJ-ZZMTAWKW.min.js"),r=e().Packet.parser.LangiumParser;a.packet=r},"packet"),pie:t(async()=>{let{createPieServices:e}=await import("./pie-BEWT4RHE-VFWRUT6J.min.js"),r=e().Pie.parser.LangiumParser;a.pie=r},"pie"),architecture:t(async()=>{let{createArchitectureServices:e}=await import("./architecture-I3QFYML2-2T2ZUHXO.min.js"),r=e().Architecture.parser.LangiumParser;a.architecture=r},"architecture"),gitGraph:t(async()=>{let{createGitGraphServices:e}=await import("./gitGraph-YCYPL57B-3XOJ53I6.min.js"),r=e().GitGraph.parser.LangiumParser;a.gitGraph=r},"gitGraph")};async function n(e,r){let i=o[e];if(!i)throw new Error(`Unknown diagram type: ${e}`);a[e]||await i();let s=a[e].parse(r);if(s.lexerErrors.length>0||s.parserErrors.length>0)throw new p(s);return s.value}t(n,"parse");var p=class extends Error{constructor(e){let r=e.lexerErrors.map(c=>c.message).join(` +`),i=e.parserErrors.map(c=>c.message).join(` +`);super(`Parsing failed: ${r} ${i}`),this.result=e}static{t(this,"MermaidParseError")}};export{n as a}; +//# sourceMappingURL=chunk-WXIN66R4.min.js.map diff --git a/docs/_site/public/chunk-WXIN66R4.min.js.map b/docs/_site/public/chunk-WXIN66R4.min.js.map new file mode 100644 index 0000000..b845f22 --- /dev/null +++ b/docs/_site/public/chunk-WXIN66R4.min.js.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": ["../../node_modules/@mermaid-js/parser/dist/mermaid-parser.core.mjs"], + "sourcesContent": ["import {\n GitGraphModule,\n createGitGraphServices\n} from \"./chunks/mermaid-parser.core/chunk-NCMFTTUW.mjs\";\nimport {\n InfoModule,\n createInfoServices\n} from \"./chunks/mermaid-parser.core/chunk-4YFB5VUC.mjs\";\nimport {\n PacketModule,\n createPacketServices\n} from \"./chunks/mermaid-parser.core/chunk-EQFLFMNE.mjs\";\nimport {\n PieModule,\n createPieServices\n} from \"./chunks/mermaid-parser.core/chunk-BI6EQKOQ.mjs\";\nimport {\n ArchitectureModule,\n createArchitectureServices\n} from \"./chunks/mermaid-parser.core/chunk-FF7BQXOH.mjs\";\nimport {\n AbstractMermaidTokenBuilder,\n AbstractMermaidValueConverter,\n Architecture,\n ArchitectureGeneratedModule,\n Branch,\n Commit,\n CommonTokenBuilder,\n CommonValueConverter,\n GitGraph,\n GitGraphGeneratedModule,\n Info,\n InfoGeneratedModule,\n Merge,\n MermaidGeneratedSharedModule,\n Packet,\n PacketBlock,\n PacketGeneratedModule,\n Pie,\n PieGeneratedModule,\n PieSection,\n Statement,\n __name,\n isArchitecture,\n isBranch,\n isCommit,\n isCommon,\n isGitGraph,\n isInfo,\n isMerge,\n isPacket,\n isPacketBlock,\n isPie,\n isPieSection\n} from \"./chunks/mermaid-parser.core/chunk-Y27MQZ3U.mjs\";\n\n// src/parse.ts\nvar parsers = {};\nvar initializers = {\n info: /* @__PURE__ */ __name(async () => {\n const { createInfoServices: createInfoServices2 } = await import(\"./chunks/mermaid-parser.core/info-46DW6VJ7.mjs\");\n const parser = createInfoServices2().Info.parser.LangiumParser;\n parsers.info = parser;\n }, \"info\"),\n packet: /* @__PURE__ */ __name(async () => {\n const { createPacketServices: createPacketServices2 } = await import(\"./chunks/mermaid-parser.core/packet-W2GHVCYJ.mjs\");\n const parser = createPacketServices2().Packet.parser.LangiumParser;\n parsers.packet = parser;\n }, \"packet\"),\n pie: /* @__PURE__ */ __name(async () => {\n const { createPieServices: createPieServices2 } = await import(\"./chunks/mermaid-parser.core/pie-BEWT4RHE.mjs\");\n const parser = createPieServices2().Pie.parser.LangiumParser;\n parsers.pie = parser;\n }, \"pie\"),\n architecture: /* @__PURE__ */ __name(async () => {\n const { createArchitectureServices: createArchitectureServices2 } = await import(\"./chunks/mermaid-parser.core/architecture-I3QFYML2.mjs\");\n const parser = createArchitectureServices2().Architecture.parser.LangiumParser;\n parsers.architecture = parser;\n }, \"architecture\"),\n gitGraph: /* @__PURE__ */ __name(async () => {\n const { createGitGraphServices: createGitGraphServices2 } = await import(\"./chunks/mermaid-parser.core/gitGraph-YCYPL57B.mjs\");\n const parser = createGitGraphServices2().GitGraph.parser.LangiumParser;\n parsers.gitGraph = parser;\n }, \"gitGraph\")\n};\nasync function parse(diagramType, text) {\n const initializer = initializers[diagramType];\n if (!initializer) {\n throw new Error(`Unknown diagram type: ${diagramType}`);\n }\n if (!parsers[diagramType]) {\n await initializer();\n }\n const parser = parsers[diagramType];\n const result = parser.parse(text);\n if (result.lexerErrors.length > 0 || result.parserErrors.length > 0) {\n throw new MermaidParseError(result);\n }\n return result.value;\n}\n__name(parse, \"parse\");\nvar MermaidParseError = class extends Error {\n constructor(result) {\n const lexerErrors = result.lexerErrors.map((err) => err.message).join(\"\\n\");\n const parserErrors = result.parserErrors.map((err) => err.message).join(\"\\n\");\n super(`Parsing failed: ${lexerErrors} ${parserErrors}`);\n this.result = result;\n }\n static {\n __name(this, \"MermaidParseError\");\n }\n};\nexport {\n AbstractMermaidTokenBuilder,\n AbstractMermaidValueConverter,\n Architecture,\n ArchitectureGeneratedModule,\n ArchitectureModule,\n Branch,\n Commit,\n CommonTokenBuilder,\n CommonValueConverter,\n GitGraph,\n GitGraphGeneratedModule,\n GitGraphModule,\n Info,\n InfoGeneratedModule,\n InfoModule,\n Merge,\n MermaidGeneratedSharedModule,\n MermaidParseError,\n Packet,\n PacketBlock,\n PacketGeneratedModule,\n PacketModule,\n Pie,\n PieGeneratedModule,\n PieModule,\n PieSection,\n Statement,\n createArchitectureServices,\n createGitGraphServices,\n createInfoServices,\n createPacketServices,\n createPieServices,\n isArchitecture,\n isBranch,\n isCommit,\n isCommon,\n isGitGraph,\n isInfo,\n isMerge,\n isPacket,\n isPacketBlock,\n isPie,\n isPieSection,\n parse\n};\n"], + "mappings": "4CAyDA,IAAIA,EAAU,CAAC,EACXC,EAAe,CACjB,KAAsBC,EAAO,SAAY,CACvC,GAAM,CAAE,mBAAoBC,CAAoB,EAAI,KAAM,QAAO,iCAAgD,EAC3GC,EAASD,EAAoB,EAAE,KAAK,OAAO,cACjDH,EAAQ,KAAOI,CACjB,EAAG,MAAM,EACT,OAAwBF,EAAO,SAAY,CACzC,GAAM,CAAE,qBAAsBG,CAAsB,EAAI,KAAM,QAAO,mCAAkD,EACjHD,EAASC,EAAsB,EAAE,OAAO,OAAO,cACrDL,EAAQ,OAASI,CACnB,EAAG,QAAQ,EACX,IAAqBF,EAAO,SAAY,CACtC,GAAM,CAAE,kBAAmBI,CAAmB,EAAI,KAAM,QAAO,gCAA+C,EACxGF,EAASE,EAAmB,EAAE,IAAI,OAAO,cAC/CN,EAAQ,IAAMI,CAChB,EAAG,KAAK,EACR,aAA8BF,EAAO,SAAY,CAC/C,GAAM,CAAE,2BAA4BK,CAA4B,EAAI,KAAM,QAAO,yCAAwD,EACnIH,EAASG,EAA4B,EAAE,aAAa,OAAO,cACjEP,EAAQ,aAAeI,CACzB,EAAG,cAAc,EACjB,SAA0BF,EAAO,SAAY,CAC3C,GAAM,CAAE,uBAAwBM,CAAwB,EAAI,KAAM,QAAO,qCAAoD,EACvHJ,EAASI,EAAwB,EAAE,SAAS,OAAO,cACzDR,EAAQ,SAAWI,CACrB,EAAG,UAAU,CACf,EACA,eAAeK,EAAMC,EAAaC,EAAM,CACtC,IAAMC,EAAcX,EAAaS,CAAW,EAC5C,GAAI,CAACE,EACH,MAAM,IAAI,MAAM,yBAAyBF,CAAW,EAAE,EAEnDV,EAAQU,CAAW,GACtB,MAAME,EAAY,EAGpB,IAAMC,EADSb,EAAQU,CAAW,EACZ,MAAMC,CAAI,EAChC,GAAIE,EAAO,YAAY,OAAS,GAAKA,EAAO,aAAa,OAAS,EAChE,MAAM,IAAIC,EAAkBD,CAAM,EAEpC,OAAOA,EAAO,KAChB,CACAX,EAAOO,EAAO,OAAO,EACrB,IAAIK,EAAoB,cAAc,KAAM,CAC1C,YAAYD,EAAQ,CAClB,IAAME,EAAcF,EAAO,YAAY,IAAKG,GAAQA,EAAI,OAAO,EAAE,KAAK;AAAA,CAAI,EACpEC,EAAeJ,EAAO,aAAa,IAAKG,GAAQA,EAAI,OAAO,EAAE,KAAK;AAAA,CAAI,EAC5E,MAAM,mBAAmBD,CAAW,IAAIE,CAAY,EAAE,EACtD,KAAK,OAASJ,CAChB,CACA,MAAO,CACLX,EAAO,KAAM,mBAAmB,CAClC,CACF", + "names": ["parsers", "initializers", "__name", "createInfoServices2", "parser", "createPacketServices2", "createPieServices2", "createArchitectureServices2", "createGitGraphServices2", "parse", "diagramType", "text", "initializer", "result", "MermaidParseError", "lexerErrors", "err", "parserErrors"] +} diff --git a/docs/_site/public/classDiagram-LNE6IOMH-VZ67B4ZP.min.js b/docs/_site/public/classDiagram-LNE6IOMH-VZ67B4ZP.min.js new file mode 100644 index 0000000..daa0dfd --- /dev/null +++ b/docs/_site/public/classDiagram-LNE6IOMH-VZ67B4ZP.min.js @@ -0,0 +1,2 @@ +import{a as e,b as a,c as i,d as s}from"./chunk-54U54PUP.min.js";import"./chunk-ISDTAGDN.min.js";import"./chunk-JL3VILNY.min.js";import"./chunk-TLYS76Q7.min.js";import"./chunk-CLIYZZ5Y.min.js";import"./chunk-N6ME3NZU.min.js";import"./chunk-V55NTXQN.min.js";import"./chunk-BD4P4Z7J.min.js";import"./chunk-AUO2PXKS.min.js";import"./chunk-PYPO7LRM.min.js";import"./chunk-CM5D5KZN.min.js";import{h as t}from"./chunk-U3SD26FK.min.js";import"./chunk-CXRPJJJE.min.js";import"./chunk-OSRY5VT3.min.js";var g={parser:e,db:a,renderer:s,styles:i,init:t(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute,a.clear()},"init")};export{g as diagram}; +//# sourceMappingURL=classDiagram-LNE6IOMH-VZ67B4ZP.min.js.map diff --git a/docs/_site/public/classDiagram-LNE6IOMH-VZ67B4ZP.min.js.map b/docs/_site/public/classDiagram-LNE6IOMH-VZ67B4ZP.min.js.map new file mode 100644 index 0000000..e4aedc8 --- /dev/null +++ b/docs/_site/public/classDiagram-LNE6IOMH-VZ67B4ZP.min.js.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": ["../../node_modules/mermaid/dist/chunks/mermaid.core/classDiagram-LNE6IOMH.mjs"], + "sourcesContent": ["import {\n classDb_default,\n classDiagram_default,\n classRenderer_v3_unified_default,\n styles_default\n} from \"./chunk-T2TOU4HS.mjs\";\nimport \"./chunk-5HRBRIJM.mjs\";\nimport \"./chunk-BO7VGL7K.mjs\";\nimport \"./chunk-66SQ7PYY.mjs\";\nimport \"./chunk-7NZE2EM7.mjs\";\nimport \"./chunk-OPO4IU42.mjs\";\nimport \"./chunk-3JNJP5BE.mjs\";\nimport \"./chunk-3X56UNUX.mjs\";\nimport \"./chunk-6JOS74DS.mjs\";\nimport \"./chunk-7DKRZKHE.mjs\";\nimport {\n __name\n} from \"./chunk-6DBFFHIP.mjs\";\n\n// src/diagrams/class/classDiagram.ts\nvar diagram = {\n parser: classDiagram_default,\n db: classDb_default,\n renderer: classRenderer_v3_unified_default,\n styles: styles_default,\n init: /* @__PURE__ */ __name((cnf) => {\n if (!cnf.class) {\n cnf.class = {};\n }\n cnf.class.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute;\n classDb_default.clear();\n }, \"init\")\n};\nexport {\n diagram\n};\n"], + "mappings": "6eAoBA,IAAIA,EAAU,CACZ,OAAQC,EACR,GAAIC,EACJ,SAAUC,EACV,OAAQC,EACR,KAAsBC,EAAQC,GAAQ,CAC/BA,EAAI,QACPA,EAAI,MAAQ,CAAC,GAEfA,EAAI,MAAM,oBAAsBA,EAAI,oBACpCJ,EAAgB,MAAM,CACxB,EAAG,MAAM,CACX", + "names": ["diagram", "classDiagram_default", "classDb_default", "classRenderer_v3_unified_default", "styles_default", "__name", "cnf"] +} diff --git a/docs/_site/public/classDiagram-v2-MQ7JQ4JX-4JTAVB6L.min.js b/docs/_site/public/classDiagram-v2-MQ7JQ4JX-4JTAVB6L.min.js new file mode 100644 index 0000000..e7065b8 --- /dev/null +++ b/docs/_site/public/classDiagram-v2-MQ7JQ4JX-4JTAVB6L.min.js @@ -0,0 +1,2 @@ +import{a as e,b as a,c as i,d as s}from"./chunk-54U54PUP.min.js";import"./chunk-ISDTAGDN.min.js";import"./chunk-JL3VILNY.min.js";import"./chunk-TLYS76Q7.min.js";import"./chunk-CLIYZZ5Y.min.js";import"./chunk-N6ME3NZU.min.js";import"./chunk-V55NTXQN.min.js";import"./chunk-BD4P4Z7J.min.js";import"./chunk-AUO2PXKS.min.js";import"./chunk-PYPO7LRM.min.js";import"./chunk-CM5D5KZN.min.js";import{h as t}from"./chunk-U3SD26FK.min.js";import"./chunk-CXRPJJJE.min.js";import"./chunk-OSRY5VT3.min.js";var g={parser:e,db:a,renderer:s,styles:i,init:t(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute,a.clear()},"init")};export{g as diagram}; +//# sourceMappingURL=classDiagram-v2-MQ7JQ4JX-4JTAVB6L.min.js.map diff --git a/docs/_site/public/classDiagram-v2-MQ7JQ4JX-4JTAVB6L.min.js.map b/docs/_site/public/classDiagram-v2-MQ7JQ4JX-4JTAVB6L.min.js.map new file mode 100644 index 0000000..4c463ed --- /dev/null +++ b/docs/_site/public/classDiagram-v2-MQ7JQ4JX-4JTAVB6L.min.js.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": ["../../node_modules/mermaid/dist/chunks/mermaid.core/classDiagram-v2-MQ7JQ4JX.mjs"], + "sourcesContent": ["import {\n classDb_default,\n classDiagram_default,\n classRenderer_v3_unified_default,\n styles_default\n} from \"./chunk-T2TOU4HS.mjs\";\nimport \"./chunk-5HRBRIJM.mjs\";\nimport \"./chunk-BO7VGL7K.mjs\";\nimport \"./chunk-66SQ7PYY.mjs\";\nimport \"./chunk-7NZE2EM7.mjs\";\nimport \"./chunk-OPO4IU42.mjs\";\nimport \"./chunk-3JNJP5BE.mjs\";\nimport \"./chunk-3X56UNUX.mjs\";\nimport \"./chunk-6JOS74DS.mjs\";\nimport \"./chunk-7DKRZKHE.mjs\";\nimport {\n __name\n} from \"./chunk-6DBFFHIP.mjs\";\n\n// src/diagrams/class/classDiagram-v2.ts\nvar diagram = {\n parser: classDiagram_default,\n db: classDb_default,\n renderer: classRenderer_v3_unified_default,\n styles: styles_default,\n init: /* @__PURE__ */ __name((cnf) => {\n if (!cnf.class) {\n cnf.class = {};\n }\n cnf.class.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute;\n classDb_default.clear();\n }, \"init\")\n};\nexport {\n diagram\n};\n"], + "mappings": "6eAoBA,IAAIA,EAAU,CACZ,OAAQC,EACR,GAAIC,EACJ,SAAUC,EACV,OAAQC,EACR,KAAsBC,EAAQC,GAAQ,CAC/BA,EAAI,QACPA,EAAI,MAAQ,CAAC,GAEfA,EAAI,MAAM,oBAAsBA,EAAI,oBACpCJ,EAAgB,MAAM,CACxB,EAAG,MAAM,CACX", + "names": ["diagram", "classDiagram_default", "classDb_default", "classRenderer_v3_unified_default", "styles_default", "__name", "cnf"] +} diff --git a/docs/_site/public/dagre-4EVJKHTY-MHPLGZHX.min.js b/docs/_site/public/dagre-4EVJKHTY-MHPLGZHX.min.js new file mode 100644 index 0000000..aca3329 --- /dev/null +++ b/docs/_site/public/dagre-4EVJKHTY-MHPLGZHX.min.js @@ -0,0 +1,5 @@ +import{a as z}from"./chunk-2YMHYP32.min.js";import{a as C}from"./chunk-3Z74ZUXG.min.js";import{D as N,e as q,s as k}from"./chunk-U4DUTLYF.min.js";import"./chunk-IQQ46AC6.min.js";import{a as U,b as Y,c as H,d as j,e as V}from"./chunk-TLYS76Q7.min.js";import"./chunk-CLIYZZ5Y.min.js";import{c as A,e as G,f as R,h as T,i as M,j as F,k as O}from"./chunk-N6ME3NZU.min.js";import{a as B}from"./chunk-V55NTXQN.min.js";import"./chunk-BD4P4Z7J.min.js";import"./chunk-AUO2PXKS.min.js";import"./chunk-PYPO7LRM.min.js";import"./chunk-CM5D5KZN.min.js";import{Z as _,h as g,j as i}from"./chunk-U3SD26FK.min.js";import"./chunk-CXRPJJJE.min.js";import"./chunk-OSRY5VT3.min.js";function h(e){var t={options:{directed:e.isDirected(),multigraph:e.isMultigraph(),compound:e.isCompound()},nodes:ne(e),edges:te(e)};return N(e.graph())||(t.value=q(e.graph())),t}function ne(e){return k(e.nodes(),function(t){var n=e.node(t),a=e.parent(t),s={v:t};return N(n)||(s.value=n),N(a)||(s.parent=a),s})}function te(e){return k(e.edges(),function(t){var n=e.edge(t),a={v:t.v,w:t.w};return N(t.name)||(a.name=t.name),N(n)||(a.value=n),a})}var d=new Map,b=new Map,W=new Map,re=g(()=>{b.clear(),W.clear(),d.clear()},"clear"),J=g((e,t)=>{let n=b.get(t)||[];return i.trace("In isDescendant",t," ",e," = ",n.includes(e)),n.includes(e)},"isDescendant"),se=g((e,t)=>{let n=b.get(t)||[];return i.info("Descendants of ",t," is ",n),i.info("Edge is ",e),e.v===t||e.w===t?!1:n?n.includes(e.v)||J(e.v,t)||J(e.w,t)||n.includes(e.w):(i.debug("Tilt, ",t,",not in descendants"),!1)},"edgeInCluster"),Z=g((e,t,n,a)=>{i.warn("Copying children of ",e,"root",a,"data",t.node(e),a);let s=t.children(e)||[];e!==a&&s.push(e),i.warn("Copying (nodes) clusterId",e,"nodes",s),s.forEach(o=>{if(t.children(o).length>0)Z(o,t,n,a);else{let l=t.node(o);i.info("cp ",o," to ",a," with parent ",e),n.setNode(o,l),a!==t.parent(o)&&(i.warn("Setting parent",o,t.parent(o)),n.setParent(o,t.parent(o))),e!==a&&o!==e?(i.debug("Setting parent",o,e),n.setParent(o,e)):(i.info("In copy ",e,"root",a,"data",t.node(e),a),i.debug("Not Setting parent for node=",o,"cluster!==rootId",e!==a,"node!==clusterId",o!==e));let u=t.edges(o);i.debug("Copying Edges",u),u.forEach(c=>{i.info("Edge",c);let m=t.edge(c.v,c.w,c.name);i.info("Edge data",m,a);try{se(c,a)?(i.info("Copying as ",c.v,c.w,m,c.name),n.setEdge(c.v,c.w,m,c.name),i.info("newGraph edges ",n.edges(),n.edge(n.edges()[0]))):i.info("Skipping copy of edge ",c.v,"-->",c.w," rootId: ",a," clusterId:",e)}catch(p){i.error(p)}})}i.debug("Removing node",o),t.removeNode(o)})},"copy"),$=g((e,t)=>{let n=t.children(e),a=[...n];for(let s of n)W.set(s,e),a=[...a,...$(s,t)];return a},"extractDescendants"),oe=g((e,t,n)=>{let a=e.edges().filter(c=>c.v===t||c.w===t),s=e.edges().filter(c=>c.v===n||c.w===n),o=a.map(c=>({v:c.v===t?n:c.v,w:c.w===t?t:c.w})),l=s.map(c=>({v:c.v,w:c.w}));return o.filter(c=>l.some(m=>c.v===m.v&&c.w===m.w))},"findCommonEdges"),x=g((e,t,n)=>{let a=t.children(e);if(i.trace("Searching children of id ",e,a),a.length<1)return e;let s;for(let o of a){let l=x(o,t,n),u=oe(t,n,l);if(l)if(u.length>0)s=l;else return l}return s},"findNonClusterChild"),Q=g(e=>!d.has(e)||!d.get(e).externalConnections?e:d.has(e)?d.get(e).id:e,"getAnchorId"),ae=g((e,t)=>{if(!e||t>10){i.debug("Opting out, no graph ");return}else i.debug("Opting in, graph ");e.nodes().forEach(function(n){e.children(n).length>0&&(i.warn("Cluster identified",n," Replacement id in edges: ",x(n,e,n)),b.set(n,$(n,e)),d.set(n,{id:x(n,e,n),clusterData:e.node(n)}))}),e.nodes().forEach(function(n){let a=e.children(n),s=e.edges();a.length>0?(i.debug("Cluster identified",n,b),s.forEach(o=>{let l=J(o.v,n),u=J(o.w,n);l^u&&(i.warn("Edge: ",o," leaves cluster ",n),i.warn("Descendants of XXX ",n,": ",b.get(n)),d.get(n).externalConnections=!0)})):i.debug("Not a cluster ",n,b)});for(let n of d.keys()){let a=d.get(n).id,s=e.parent(a);s!==n&&d.has(s)&&!d.get(s).externalConnections&&(d.get(n).id=s)}e.edges().forEach(function(n){let a=e.edge(n);i.warn("Edge "+n.v+" -> "+n.w+": "+JSON.stringify(n)),i.warn("Edge "+n.v+" -> "+n.w+": "+JSON.stringify(e.edge(n)));let s=n.v,o=n.w;if(i.warn("Fix XXX",d,"ids:",n.v,n.w,"Translating: ",d.get(n.v)," --- ",d.get(n.w)),d.get(n.v)||d.get(n.w)){if(i.warn("Fixing and trying - removing XXX",n.v,n.w,n.name),s=Q(n.v),o=Q(n.w),e.removeEdge(n.v,n.w,n.name),s!==n.v){let l=e.parent(s);d.get(l).externalConnections=!0,a.fromCluster=n.v}if(o!==n.w){let l=e.parent(o);d.get(l).externalConnections=!0,a.toCluster=n.w}i.warn("Fix Replacing with XXX",s,o,n.name),e.setEdge(s,o,a,n.name)}}),i.warn("Adjusted Graph",h(e)),L(e,0),i.trace(d)},"adjustClustersAndEdges"),L=g((e,t)=>{if(i.warn("extractor - ",t,h(e),e.children("D")),t>10){i.error("Bailing out");return}let n=e.nodes(),a=!1;for(let s of n){let o=e.children(s);a=a||o.length>0}if(!a){i.debug("Done, no node has children",e.nodes());return}i.debug("Nodes = ",n,t);for(let s of n)if(i.debug("Extracting node",s,d,d.has(s)&&!d.get(s).externalConnections,!e.parent(s),e.node(s),e.children("D")," Depth ",t),!d.has(s))i.debug("Not a cluster",s,t);else if(!d.get(s).externalConnections&&e.children(s)&&e.children(s).length>0){i.warn("Cluster without external connections, without a parent and with children",s,t);let l=e.graph().rankdir==="TB"?"LR":"TB";d.get(s)?.clusterData?.dir&&(l=d.get(s).clusterData.dir,i.warn("Fixing dir",d.get(s).clusterData.dir,l));let u=new C({multigraph:!0,compound:!0}).setGraph({rankdir:l,nodesep:50,ranksep:50,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}});i.warn("Old graph before copy",h(e)),Z(s,e,u,s),e.setNode(s,{clusterNode:!0,id:s,clusterData:d.get(s).clusterData,label:d.get(s).label,graph:u}),i.warn("New graph after copy node: (",s,")",h(u)),i.debug("Old graph after copy",h(e))}else i.warn("Cluster ** ",s," **not meeting the criteria !externalConnections:",!d.get(s).externalConnections," no parent: ",!e.parent(s)," children ",e.children(s)&&e.children(s).length>0,e.children("D"),t),i.debug(d);n=e.nodes(),i.warn("New list of nodes",n);for(let s of n){let o=e.node(s);i.warn(" Now next level",s,o),o?.clusterNode&&L(o.graph,t+1)}},"extractor"),I=g((e,t)=>{if(t.length===0)return[];let n=Object.assign([],t);return t.forEach(a=>{let s=e.children(a),o=I(e,s);n=[...n,...o]}),n},"sorter"),ce=g(e=>I(e,e.children()),"sortNodesByHierarchy"),ee=g(async(e,t,n,a,s,o)=>{i.warn("Graph in recursive render:XAX",h(t),s);let l=t.graph().rankdir;i.trace("Dir in recursive render - dir:",l);let u=e.insert("g").attr("class","root");t.nodes()?i.info("Recursive render XXX",t.nodes()):i.info("No nodes found for",t),t.edges().length>0&&i.info("Recursive edges",t.edge(t.edges()[0]));let c=u.insert("g").attr("class","clusters"),m=u.insert("g").attr("class","edgePaths"),p=u.insert("g").attr("class","edgeLabels"),v=u.insert("g").attr("class","nodes");await Promise.all(t.nodes().map(async function(f){let r=t.node(f);if(s!==void 0){let w=JSON.parse(JSON.stringify(s.clusterData));i.trace(`Setting data for parent cluster XXX + Node.id = `,f,` + data=`,w.height,` +Parent cluster`,s.height),t.setNode(s.id,w),t.parent(f)||(i.trace("Setting parent",f,s.id),t.setParent(f,s.id,w))}if(i.info("(Insert) Node XXX"+f+": "+JSON.stringify(t.node(f))),r?.clusterNode){i.info("Cluster identified XBX",f,r.width,t.node(f));let{ranksep:w,nodesep:X}=t.graph();r.graph.setGraph({...r.graph.graph(),ranksep:w+25,nodesep:X});let E=await ee(v,r.graph,n,a,t.node(f),o),D=E.elem;A(r,D),r.diff=E.diff||0,i.info("New compound node after recursive render XAX",f,"width",r.width,"height",r.height),M(D,r)}else t.children(f).length>0?(i.trace("Cluster - the non recursive path XBX",f,r.id,r,r.width,"Graph:",t),i.trace(x(r.id,t)),d.set(r.id,{id:x(r.id,t),node:r})):(i.trace("Node - the non recursive path XAX",f,v,t.node(f),l),await T(v,t.node(f),{config:o,dir:l}))})),await g(async()=>{let f=t.edges().map(async function(r){let w=t.edge(r.v,r.w,r.name);i.info("Edge "+r.v+" -> "+r.w+": "+JSON.stringify(r)),i.info("Edge "+r.v+" -> "+r.w+": ",r," ",JSON.stringify(t.edge(r))),i.info("Fix",d,"ids:",r.v,r.w,"Translating: ",d.get(r.v),d.get(r.w)),await Y(p,w)});await Promise.all(f)},"processEdges")(),i.info("Graph before layout:",JSON.stringify(h(t))),i.info("############################################# XXX"),i.info("### Layout ### XXX"),i.info("############################################# XXX"),z(t),i.info("Graph after layout:",JSON.stringify(h(t)));let P=0,{subGraphTitleTotalMargin:S}=B(o);return await Promise.all(ce(t).map(async function(f){let r=t.node(f);if(i.info("Position XBX => "+f+": ("+r.x,","+r.y,") width: ",r.width," height: ",r.height),r?.clusterNode)r.y+=S,i.info("A tainted cluster node XBX1",f,r.id,r.width,r.height,r.x,r.y,t.parent(f)),d.get(r.id).node=r,O(r);else if(t.children(f).length>0){i.info("A pure cluster node XBX1",f,r.id,r.x,r.y,r.width,r.height,t.parent(f)),r.height+=S,t.node(r.parentId);let w=r?.padding/2||0,X=r?.labelBBox?.height||0,E=X-w||0;i.debug("OffsetY",E,"labelHeight",X,"halfPadding",w),await G(c,r),d.get(r.id).node=r}else{let w=t.node(r.parentId);r.y+=S/2,i.info("A regular node XBX1 - using the padding",r.id,"parent",r.parentId,r.width,r.height,r.x,r.y,"offsetY",r.offsetY,"parent",w,w?.offsetY,r),O(r)}})),t.edges().forEach(function(f){let r=t.edge(f);i.info("Edge "+f.v+" -> "+f.w+": "+JSON.stringify(r),r),r.points.forEach(D=>D.y+=S/2);let w=t.node(f.v);var X=t.node(f.w);let E=j(m,r,d,n,w,X,a);H(r,E)}),t.nodes().forEach(function(f){let r=t.node(f);i.info(f,r.type,r.diff),r.isGroup&&(P=r.diff)}),i.warn("Returning from recursive render XAX",u,P),{elem:u,diff:P}},"recursiveRender"),Ee=g(async(e,t)=>{let n=new C({multigraph:!0,compound:!0}).setGraph({rankdir:e.direction,nodesep:e.config?.nodeSpacing||e.config?.flowchart?.nodeSpacing||e.nodeSpacing,ranksep:e.config?.rankSpacing||e.config?.flowchart?.rankSpacing||e.rankSpacing,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}}),a=t.select("g");V(a,e.markers,e.type,e.diagramId),F(),U(),R(),re(),e.nodes.forEach(o=>{n.setNode(o.id,{...o}),o.parentId&&n.setParent(o.id,o.parentId)}),i.debug("Edges:",e.edges),e.edges.forEach(o=>{if(o.start===o.end){let l=o.start,u=l+"---"+l+"---1",c=l+"---"+l+"---2",m=n.node(l);n.setNode(u,{domId:u,id:u,parentId:m.parentId,labelStyle:"",label:"",padding:0,shape:"labelRect",style:"",width:10,height:10}),n.setParent(u,m.parentId),n.setNode(c,{domId:c,id:c,parentId:m.parentId,labelStyle:"",padding:0,shape:"labelRect",label:"",style:"",width:10,height:10}),n.setParent(c,m.parentId);let p=structuredClone(o),v=structuredClone(o),y=structuredClone(o);p.label="",p.arrowTypeEnd="none",p.id=l+"-cyclic-special-1",v.arrowTypeEnd="none",v.id=l+"-cyclic-special-mid",y.label="",m.isGroup&&(p.fromCluster=l,y.toCluster=l),y.id=l+"-cyclic-special-2",n.setEdge(l,u,p,l+"-cyclic-special-0"),n.setEdge(u,c,v,l+"-cyclic-special-1"),n.setEdge(c,l,y,l+"-cyc {\n descendants.clear();\n parents.clear();\n clusterDb.clear();\n}, \"clear\");\nvar isDescendant = /* @__PURE__ */ __name((id, ancestorId) => {\n const ancestorDescendants = descendants.get(ancestorId) || [];\n log.trace(\"In isDescendant\", ancestorId, \" \", id, \" = \", ancestorDescendants.includes(id));\n return ancestorDescendants.includes(id);\n}, \"isDescendant\");\nvar edgeInCluster = /* @__PURE__ */ __name((edge, clusterId) => {\n const clusterDescendants = descendants.get(clusterId) || [];\n log.info(\"Descendants of \", clusterId, \" is \", clusterDescendants);\n log.info(\"Edge is \", edge);\n if (edge.v === clusterId || edge.w === clusterId) {\n return false;\n }\n if (!clusterDescendants) {\n log.debug(\"Tilt, \", clusterId, \",not in descendants\");\n return false;\n }\n return clusterDescendants.includes(edge.v) || isDescendant(edge.v, clusterId) || isDescendant(edge.w, clusterId) || clusterDescendants.includes(edge.w);\n}, \"edgeInCluster\");\nvar copy = /* @__PURE__ */ __name((clusterId, graph, newGraph, rootId) => {\n log.warn(\n \"Copying children of \",\n clusterId,\n \"root\",\n rootId,\n \"data\",\n graph.node(clusterId),\n rootId\n );\n const nodes = graph.children(clusterId) || [];\n if (clusterId !== rootId) {\n nodes.push(clusterId);\n }\n log.warn(\"Copying (nodes) clusterId\", clusterId, \"nodes\", nodes);\n nodes.forEach((node) => {\n if (graph.children(node).length > 0) {\n copy(node, graph, newGraph, rootId);\n } else {\n const data = graph.node(node);\n log.info(\"cp \", node, \" to \", rootId, \" with parent \", clusterId);\n newGraph.setNode(node, data);\n if (rootId !== graph.parent(node)) {\n log.warn(\"Setting parent\", node, graph.parent(node));\n newGraph.setParent(node, graph.parent(node));\n }\n if (clusterId !== rootId && node !== clusterId) {\n log.debug(\"Setting parent\", node, clusterId);\n newGraph.setParent(node, clusterId);\n } else {\n log.info(\"In copy \", clusterId, \"root\", rootId, \"data\", graph.node(clusterId), rootId);\n log.debug(\n \"Not Setting parent for node=\",\n node,\n \"cluster!==rootId\",\n clusterId !== rootId,\n \"node!==clusterId\",\n node !== clusterId\n );\n }\n const edges = graph.edges(node);\n log.debug(\"Copying Edges\", edges);\n edges.forEach((edge) => {\n log.info(\"Edge\", edge);\n const data2 = graph.edge(edge.v, edge.w, edge.name);\n log.info(\"Edge data\", data2, rootId);\n try {\n if (edgeInCluster(edge, rootId)) {\n log.info(\"Copying as \", edge.v, edge.w, data2, edge.name);\n newGraph.setEdge(edge.v, edge.w, data2, edge.name);\n log.info(\"newGraph edges \", newGraph.edges(), newGraph.edge(newGraph.edges()[0]));\n } else {\n log.info(\n \"Skipping copy of edge \",\n edge.v,\n \"-->\",\n edge.w,\n \" rootId: \",\n rootId,\n \" clusterId:\",\n clusterId\n );\n }\n } catch (e) {\n log.error(e);\n }\n });\n }\n log.debug(\"Removing node\", node);\n graph.removeNode(node);\n });\n}, \"copy\");\nvar extractDescendants = /* @__PURE__ */ __name((id, graph) => {\n const children = graph.children(id);\n let res = [...children];\n for (const child of children) {\n parents.set(child, id);\n res = [...res, ...extractDescendants(child, graph)];\n }\n return res;\n}, \"extractDescendants\");\nvar findCommonEdges = /* @__PURE__ */ __name((graph, id1, id2) => {\n const edges1 = graph.edges().filter((edge) => edge.v === id1 || edge.w === id1);\n const edges2 = graph.edges().filter((edge) => edge.v === id2 || edge.w === id2);\n const edges1Prim = edges1.map((edge) => {\n return { v: edge.v === id1 ? id2 : edge.v, w: edge.w === id1 ? id1 : edge.w };\n });\n const edges2Prim = edges2.map((edge) => {\n return { v: edge.v, w: edge.w };\n });\n const result = edges1Prim.filter((edgeIn1) => {\n return edges2Prim.some((edge) => edgeIn1.v === edge.v && edgeIn1.w === edge.w);\n });\n return result;\n}, \"findCommonEdges\");\nvar findNonClusterChild = /* @__PURE__ */ __name((id, graph, clusterId) => {\n const children = graph.children(id);\n log.trace(\"Searching children of id \", id, children);\n if (children.length < 1) {\n return id;\n }\n let reserve;\n for (const child of children) {\n const _id = findNonClusterChild(child, graph, clusterId);\n const commonEdges = findCommonEdges(graph, clusterId, _id);\n if (_id) {\n if (commonEdges.length > 0) {\n reserve = _id;\n } else {\n return _id;\n }\n }\n }\n return reserve;\n}, \"findNonClusterChild\");\nvar getAnchorId = /* @__PURE__ */ __name((id) => {\n if (!clusterDb.has(id)) {\n return id;\n }\n if (!clusterDb.get(id).externalConnections) {\n return id;\n }\n if (clusterDb.has(id)) {\n return clusterDb.get(id).id;\n }\n return id;\n}, \"getAnchorId\");\nvar adjustClustersAndEdges = /* @__PURE__ */ __name((graph, depth) => {\n if (!graph || depth > 10) {\n log.debug(\"Opting out, no graph \");\n return;\n } else {\n log.debug(\"Opting in, graph \");\n }\n graph.nodes().forEach(function(id) {\n const children = graph.children(id);\n if (children.length > 0) {\n log.warn(\n \"Cluster identified\",\n id,\n \" Replacement id in edges: \",\n findNonClusterChild(id, graph, id)\n );\n descendants.set(id, extractDescendants(id, graph));\n clusterDb.set(id, { id: findNonClusterChild(id, graph, id), clusterData: graph.node(id) });\n }\n });\n graph.nodes().forEach(function(id) {\n const children = graph.children(id);\n const edges = graph.edges();\n if (children.length > 0) {\n log.debug(\"Cluster identified\", id, descendants);\n edges.forEach((edge) => {\n const d1 = isDescendant(edge.v, id);\n const d2 = isDescendant(edge.w, id);\n if (d1 ^ d2) {\n log.warn(\"Edge: \", edge, \" leaves cluster \", id);\n log.warn(\"Descendants of XXX \", id, \": \", descendants.get(id));\n clusterDb.get(id).externalConnections = true;\n }\n });\n } else {\n log.debug(\"Not a cluster \", id, descendants);\n }\n });\n for (let id of clusterDb.keys()) {\n const nonClusterChild = clusterDb.get(id).id;\n const parent = graph.parent(nonClusterChild);\n if (parent !== id && clusterDb.has(parent) && !clusterDb.get(parent).externalConnections) {\n clusterDb.get(id).id = parent;\n }\n }\n graph.edges().forEach(function(e) {\n const edge = graph.edge(e);\n log.warn(\"Edge \" + e.v + \" -> \" + e.w + \": \" + JSON.stringify(e));\n log.warn(\"Edge \" + e.v + \" -> \" + e.w + \": \" + JSON.stringify(graph.edge(e)));\n let v = e.v;\n let w = e.w;\n log.warn(\n \"Fix XXX\",\n clusterDb,\n \"ids:\",\n e.v,\n e.w,\n \"Translating: \",\n clusterDb.get(e.v),\n \" --- \",\n clusterDb.get(e.w)\n );\n if (clusterDb.get(e.v) || clusterDb.get(e.w)) {\n log.warn(\"Fixing and trying - removing XXX\", e.v, e.w, e.name);\n v = getAnchorId(e.v);\n w = getAnchorId(e.w);\n graph.removeEdge(e.v, e.w, e.name);\n if (v !== e.v) {\n const parent = graph.parent(v);\n clusterDb.get(parent).externalConnections = true;\n edge.fromCluster = e.v;\n }\n if (w !== e.w) {\n const parent = graph.parent(w);\n clusterDb.get(parent).externalConnections = true;\n edge.toCluster = e.w;\n }\n log.warn(\"Fix Replacing with XXX\", v, w, e.name);\n graph.setEdge(v, w, edge, e.name);\n }\n });\n log.warn(\"Adjusted Graph\", graphlibJson.write(graph));\n extractor(graph, 0);\n log.trace(clusterDb);\n}, \"adjustClustersAndEdges\");\nvar extractor = /* @__PURE__ */ __name((graph, depth) => {\n log.warn(\"extractor - \", depth, graphlibJson.write(graph), graph.children(\"D\"));\n if (depth > 10) {\n log.error(\"Bailing out\");\n return;\n }\n let nodes = graph.nodes();\n let hasChildren = false;\n for (const node of nodes) {\n const children = graph.children(node);\n hasChildren = hasChildren || children.length > 0;\n }\n if (!hasChildren) {\n log.debug(\"Done, no node has children\", graph.nodes());\n return;\n }\n log.debug(\"Nodes = \", nodes, depth);\n for (const node of nodes) {\n log.debug(\n \"Extracting node\",\n node,\n clusterDb,\n clusterDb.has(node) && !clusterDb.get(node).externalConnections,\n !graph.parent(node),\n graph.node(node),\n graph.children(\"D\"),\n \" Depth \",\n depth\n );\n if (!clusterDb.has(node)) {\n log.debug(\"Not a cluster\", node, depth);\n } else if (!clusterDb.get(node).externalConnections && graph.children(node) && graph.children(node).length > 0) {\n log.warn(\n \"Cluster without external connections, without a parent and with children\",\n node,\n depth\n );\n const graphSettings = graph.graph();\n let dir = graphSettings.rankdir === \"TB\" ? \"LR\" : \"TB\";\n if (clusterDb.get(node)?.clusterData?.dir) {\n dir = clusterDb.get(node).clusterData.dir;\n log.warn(\"Fixing dir\", clusterDb.get(node).clusterData.dir, dir);\n }\n const clusterGraph = new graphlib.Graph({\n multigraph: true,\n compound: true\n }).setGraph({\n rankdir: dir,\n nodesep: 50,\n ranksep: 50,\n marginx: 8,\n marginy: 8\n }).setDefaultEdgeLabel(function() {\n return {};\n });\n log.warn(\"Old graph before copy\", graphlibJson.write(graph));\n copy(node, graph, clusterGraph, node);\n graph.setNode(node, {\n clusterNode: true,\n id: node,\n clusterData: clusterDb.get(node).clusterData,\n label: clusterDb.get(node).label,\n graph: clusterGraph\n });\n log.warn(\"New graph after copy node: (\", node, \")\", graphlibJson.write(clusterGraph));\n log.debug(\"Old graph after copy\", graphlibJson.write(graph));\n } else {\n log.warn(\n \"Cluster ** \",\n node,\n \" **not meeting the criteria !externalConnections:\",\n !clusterDb.get(node).externalConnections,\n \" no parent: \",\n !graph.parent(node),\n \" children \",\n graph.children(node) && graph.children(node).length > 0,\n graph.children(\"D\"),\n depth\n );\n log.debug(clusterDb);\n }\n }\n nodes = graph.nodes();\n log.warn(\"New list of nodes\", nodes);\n for (const node of nodes) {\n const data = graph.node(node);\n log.warn(\" Now next level\", node, data);\n if (data?.clusterNode) {\n extractor(data.graph, depth + 1);\n }\n }\n}, \"extractor\");\nvar sorter = /* @__PURE__ */ __name((graph, nodes) => {\n if (nodes.length === 0) {\n return [];\n }\n let result = Object.assign([], nodes);\n nodes.forEach((node) => {\n const children = graph.children(node);\n const sorted = sorter(graph, children);\n result = [...result, ...sorted];\n });\n return result;\n}, \"sorter\");\nvar sortNodesByHierarchy = /* @__PURE__ */ __name((graph) => sorter(graph, graph.children()), \"sortNodesByHierarchy\");\n\n// src/rendering-util/layout-algorithms/dagre/index.js\nvar recursiveRender = /* @__PURE__ */ __name(async (_elem, graph, diagramType, id, parentCluster, siteConfig) => {\n log.warn(\"Graph in recursive render:XAX\", graphlibJson2.write(graph), parentCluster);\n const dir = graph.graph().rankdir;\n log.trace(\"Dir in recursive render - dir:\", dir);\n const elem = _elem.insert(\"g\").attr(\"class\", \"root\");\n if (!graph.nodes()) {\n log.info(\"No nodes found for\", graph);\n } else {\n log.info(\"Recursive render XXX\", graph.nodes());\n }\n if (graph.edges().length > 0) {\n log.info(\"Recursive edges\", graph.edge(graph.edges()[0]));\n }\n const clusters = elem.insert(\"g\").attr(\"class\", \"clusters\");\n const edgePaths = elem.insert(\"g\").attr(\"class\", \"edgePaths\");\n const edgeLabels = elem.insert(\"g\").attr(\"class\", \"edgeLabels\");\n const nodes = elem.insert(\"g\").attr(\"class\", \"nodes\");\n await Promise.all(\n graph.nodes().map(async function(v) {\n const node = graph.node(v);\n if (parentCluster !== void 0) {\n const data = JSON.parse(JSON.stringify(parentCluster.clusterData));\n log.trace(\n \"Setting data for parent cluster XXX\\n Node.id = \",\n v,\n \"\\n data=\",\n data.height,\n \"\\nParent cluster\",\n parentCluster.height\n );\n graph.setNode(parentCluster.id, data);\n if (!graph.parent(v)) {\n log.trace(\"Setting parent\", v, parentCluster.id);\n graph.setParent(v, parentCluster.id, data);\n }\n }\n log.info(\"(Insert) Node XXX\" + v + \": \" + JSON.stringify(graph.node(v)));\n if (node?.clusterNode) {\n log.info(\"Cluster identified XBX\", v, node.width, graph.node(v));\n const { ranksep, nodesep } = graph.graph();\n node.graph.setGraph({\n ...node.graph.graph(),\n ranksep: ranksep + 25,\n nodesep\n });\n const o = await recursiveRender(\n nodes,\n node.graph,\n diagramType,\n id,\n graph.node(v),\n siteConfig\n );\n const newEl = o.elem;\n updateNodeBounds(node, newEl);\n node.diff = o.diff || 0;\n log.info(\n \"New compound node after recursive render XAX\",\n v,\n \"width\",\n // node,\n node.width,\n \"height\",\n node.height\n // node.x,\n // node.y\n );\n setNodeElem(newEl, node);\n } else {\n if (graph.children(v).length > 0) {\n log.trace(\n \"Cluster - the non recursive path XBX\",\n v,\n node.id,\n node,\n node.width,\n \"Graph:\",\n graph\n );\n log.trace(findNonClusterChild(node.id, graph));\n clusterDb.set(node.id, { id: findNonClusterChild(node.id, graph), node });\n } else {\n log.trace(\"Node - the non recursive path XAX\", v, nodes, graph.node(v), dir);\n await insertNode(nodes, graph.node(v), { config: siteConfig, dir });\n }\n }\n })\n );\n const processEdges = /* @__PURE__ */ __name(async () => {\n const edgePromises = graph.edges().map(async function(e) {\n const edge = graph.edge(e.v, e.w, e.name);\n log.info(\"Edge \" + e.v + \" -> \" + e.w + \": \" + JSON.stringify(e));\n log.info(\"Edge \" + e.v + \" -> \" + e.w + \": \", e, \" \", JSON.stringify(graph.edge(e)));\n log.info(\n \"Fix\",\n clusterDb,\n \"ids:\",\n e.v,\n e.w,\n \"Translating: \",\n clusterDb.get(e.v),\n clusterDb.get(e.w)\n );\n await insertEdgeLabel(edgeLabels, edge);\n });\n await Promise.all(edgePromises);\n }, \"processEdges\");\n await processEdges();\n log.info(\"Graph before layout:\", JSON.stringify(graphlibJson2.write(graph)));\n log.info(\"############################################# XXX\");\n log.info(\"### Layout ### XXX\");\n log.info(\"############################################# XXX\");\n dagreLayout(graph);\n log.info(\"Graph after layout:\", JSON.stringify(graphlibJson2.write(graph)));\n let diff = 0;\n let { subGraphTitleTotalMargin } = getSubGraphTitleMargins(siteConfig);\n await Promise.all(\n sortNodesByHierarchy(graph).map(async function(v) {\n const node = graph.node(v);\n log.info(\n \"Position XBX => \" + v + \": (\" + node.x,\n \",\" + node.y,\n \") width: \",\n node.width,\n \" height: \",\n node.height\n );\n if (node?.clusterNode) {\n node.y += subGraphTitleTotalMargin;\n log.info(\n \"A tainted cluster node XBX1\",\n v,\n node.id,\n node.width,\n node.height,\n node.x,\n node.y,\n graph.parent(v)\n );\n clusterDb.get(node.id).node = node;\n positionNode(node);\n } else {\n if (graph.children(v).length > 0) {\n log.info(\n \"A pure cluster node XBX1\",\n v,\n node.id,\n node.x,\n node.y,\n node.width,\n node.height,\n graph.parent(v)\n );\n node.height += subGraphTitleTotalMargin;\n graph.node(node.parentId);\n const halfPadding = node?.padding / 2 || 0;\n const labelHeight = node?.labelBBox?.height || 0;\n const offsetY = labelHeight - halfPadding || 0;\n log.debug(\"OffsetY\", offsetY, \"labelHeight\", labelHeight, \"halfPadding\", halfPadding);\n await insertCluster(clusters, node);\n clusterDb.get(node.id).node = node;\n } else {\n const parent = graph.node(node.parentId);\n node.y += subGraphTitleTotalMargin / 2;\n log.info(\n \"A regular node XBX1 - using the padding\",\n node.id,\n \"parent\",\n node.parentId,\n node.width,\n node.height,\n node.x,\n node.y,\n \"offsetY\",\n node.offsetY,\n \"parent\",\n parent,\n parent?.offsetY,\n node\n );\n positionNode(node);\n }\n }\n })\n );\n graph.edges().forEach(function(e) {\n const edge = graph.edge(e);\n log.info(\"Edge \" + e.v + \" -> \" + e.w + \": \" + JSON.stringify(edge), edge);\n edge.points.forEach((point) => point.y += subGraphTitleTotalMargin / 2);\n const startNode = graph.node(e.v);\n var endNode = graph.node(e.w);\n const paths = insertEdge(edgePaths, edge, clusterDb, diagramType, startNode, endNode, id);\n positionEdgeLabel(edge, paths);\n });\n graph.nodes().forEach(function(v) {\n const n = graph.node(v);\n log.info(v, n.type, n.diff);\n if (n.isGroup) {\n diff = n.diff;\n }\n });\n log.warn(\"Returning from recursive render XAX\", elem, diff);\n return { elem, diff };\n}, \"recursiveRender\");\nvar render = /* @__PURE__ */ __name(async (data4Layout, svg) => {\n const graph = new graphlib2.Graph({\n multigraph: true,\n compound: true\n }).setGraph({\n rankdir: data4Layout.direction,\n nodesep: data4Layout.config?.nodeSpacing || data4Layout.config?.flowchart?.nodeSpacing || data4Layout.nodeSpacing,\n ranksep: data4Layout.config?.rankSpacing || data4Layout.config?.flowchart?.rankSpacing || data4Layout.rankSpacing,\n marginx: 8,\n marginy: 8\n }).setDefaultEdgeLabel(function() {\n return {};\n });\n const element = svg.select(\"g\");\n markers_default(element, data4Layout.markers, data4Layout.type, data4Layout.diagramId);\n clear3();\n clear2();\n clear();\n clear4();\n data4Layout.nodes.forEach((node) => {\n graph.setNode(node.id, { ...node });\n if (node.parentId) {\n graph.setParent(node.id, node.parentId);\n }\n });\n log.debug(\"Edges:\", data4Layout.edges);\n data4Layout.edges.forEach((edge) => {\n if (edge.start === edge.end) {\n const nodeId = edge.start;\n const specialId1 = nodeId + \"---\" + nodeId + \"---1\";\n const specialId2 = nodeId + \"---\" + nodeId + \"---2\";\n const node = graph.node(nodeId);\n graph.setNode(specialId1, {\n domId: specialId1,\n id: specialId1,\n parentId: node.parentId,\n labelStyle: \"\",\n label: \"\",\n padding: 0,\n shape: \"labelRect\",\n // shape: 'rect',\n style: \"\",\n width: 10,\n height: 10\n });\n graph.setParent(specialId1, node.parentId);\n graph.setNode(specialId2, {\n domId: specialId2,\n id: specialId2,\n parentId: node.parentId,\n labelStyle: \"\",\n padding: 0,\n // shape: 'rect',\n shape: \"labelRect\",\n label: \"\",\n style: \"\",\n width: 10,\n height: 10\n });\n graph.setParent(specialId2, node.parentId);\n const edge1 = structuredClone(edge);\n const edgeMid = structuredClone(edge);\n const edge2 = structuredClone(edge);\n edge1.label = \"\";\n edge1.arrowTypeEnd = \"none\";\n edge1.id = nodeId + \"-cyclic-special-1\";\n edgeMid.arrowTypeEnd = \"none\";\n edgeMid.id = nodeId + \"-cyclic-special-mid\";\n edge2.label = \"\";\n if (node.isGroup) {\n edge1.fromCluster = nodeId;\n edge2.toCluster = nodeId;\n }\n edge2.id = nodeId + \"-cyclic-special-2\";\n graph.setEdge(nodeId, specialId1, edge1, nodeId + \"-cyclic-special-0\");\n graph.setEdge(specialId1, specialId2, edgeMid, nodeId + \"-cyclic-special-1\");\n graph.setEdge(specialId2, nodeId, edge2, nodeId + \"-cyc{let t=v({...L,...$().packet});return t.showBits&&(t.paddingY+=10),t},"getConfig"),I=n(()=>x.packet,"getPacket"),M=n(t=>{t.length>0&&x.packet.push(t)},"pushWord"),O=n(()=>{w(),x=structuredClone(E)},"clear"),h={pushWord:M,getPacket:I,getConfig:Y,clear:O,setAccTitle:B,getAccTitle:S,setDiagramTitle:P,getDiagramTitle:W,getAccDescription:z,setAccDescription:F},G=1e4,H=n(t=>{D(t,h);let e=-1,o=[],i=1,{bitsPerRow:s}=h.getConfig();for(let{start:a,end:r,label:p}of t.blocks){if(r&&r{if(t.end===void 0&&(t.end=t.start),t.start>t.end)throw new Error(`Block start ${t.start} is greater than block end ${t.end}.`);return t.end+1<=e*o?[t,void 0]:[{start:t.start,end:e*o-1,label:t.label},{start:e*o,end:t.end,label:t.label}]},"getNextFittingBlock"),R={parse:n(async t=>{let e=await A("packet",t);m.debug(e),H(e)},"parse")},U=n((t,e,o,i)=>{let s=i.db,a=s.getConfig(),{rowHeight:r,paddingY:p,bitWidth:b,bitsPerRow:c}=a,u=s.getPacket(),l=s.getDiagramTitle(),g=r+p,d=g*(u.length+1)-(l?0:r),k=b*c+2,f=T(e);f.attr("viewbox",`0 0 ${k} ${d}`),y(f,d,k,a.useMaxWidth);for(let[_,N]of u.entries())X(f,N,_,a);f.append("text").text(l).attr("x",k/2).attr("y",d-g/2).attr("dominant-baseline","middle").attr("text-anchor","middle").attr("class","packetTitle")},"draw"),X=n((t,e,o,{rowHeight:i,paddingX:s,paddingY:a,bitWidth:r,bitsPerRow:p,showBits:b})=>{let c=t.append("g"),u=o*(i+a)+a;for(let l of e){let g=l.start%p*r+1,d=(l.end-l.start+1)*r-s;if(c.append("rect").attr("x",g).attr("y",u).attr("width",d).attr("height",i).attr("class","packetBlock"),c.append("text").attr("x",g+d/2).attr("y",u+i/2).attr("class","packetLabel").attr("dominant-baseline","middle").attr("text-anchor","middle").text(l.label),!b)continue;let k=l.end===l.start,f=u-2;c.append("text").attr("x",g+(k?d/2:0)).attr("y",f).attr("class","packetByte start").attr("dominant-baseline","auto").attr("text-anchor",k?"middle":"start").text(l.start),k||c.append("text").attr("x",g+d).attr("y",f).attr("class","packetByte end").attr("dominant-baseline","auto").attr("text-anchor","end").text(l.end)}},"drawWord"),j={draw:U},q={byteFontSize:"10px",startByteColor:"black",endByteColor:"black",labelColor:"black",labelFontSize:"12px",titleColor:"black",titleFontSize:"14px",blockStrokeColor:"black",blockStrokeWidth:"1",blockFillColor:"#efefef"},J=n(({packet:t}={})=>{let e=v(q,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"),at={parser:R,db:h,renderer:j,styles:J};export{at as diagram}; +//# sourceMappingURL=diagram-QW4FP2JN-UOF7FAFC.min.js.map diff --git a/docs/_site/public/diagram-QW4FP2JN-UOF7FAFC.min.js.map b/docs/_site/public/diagram-QW4FP2JN-UOF7FAFC.min.js.map new file mode 100644 index 0000000..bf165bc --- /dev/null +++ b/docs/_site/public/diagram-QW4FP2JN-UOF7FAFC.min.js.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": ["../../node_modules/mermaid/dist/chunks/mermaid.core/diagram-QW4FP2JN.mjs"], + "sourcesContent": ["import {\n populateCommonDb\n} from \"./chunk-TMUBEWPD.mjs\";\nimport {\n cleanAndMerge\n} from \"./chunk-7DKRZKHE.mjs\";\nimport {\n selectSvgElement\n} from \"./chunk-EJ4ZWXGL.mjs\";\nimport {\n __name,\n clear,\n configureSvgSize,\n defaultConfig_default,\n getAccDescription,\n getAccTitle,\n getConfig,\n getDiagramTitle,\n log,\n setAccDescription,\n setAccTitle,\n setDiagramTitle\n} from \"./chunk-6DBFFHIP.mjs\";\n\n// src/diagrams/packet/db.ts\nvar defaultPacketData = {\n packet: []\n};\nvar data = structuredClone(defaultPacketData);\nvar DEFAULT_PACKET_CONFIG = defaultConfig_default.packet;\nvar getConfig2 = /* @__PURE__ */ __name(() => {\n const config = cleanAndMerge({\n ...DEFAULT_PACKET_CONFIG,\n ...getConfig().packet\n });\n if (config.showBits) {\n config.paddingY += 10;\n }\n return config;\n}, \"getConfig\");\nvar getPacket = /* @__PURE__ */ __name(() => data.packet, \"getPacket\");\nvar pushWord = /* @__PURE__ */ __name((word) => {\n if (word.length > 0) {\n data.packet.push(word);\n }\n}, \"pushWord\");\nvar clear2 = /* @__PURE__ */ __name(() => {\n clear();\n data = structuredClone(defaultPacketData);\n}, \"clear\");\nvar db = {\n pushWord,\n getPacket,\n getConfig: getConfig2,\n clear: clear2,\n setAccTitle,\n getAccTitle,\n setDiagramTitle,\n getDiagramTitle,\n getAccDescription,\n setAccDescription\n};\n\n// src/diagrams/packet/parser.ts\nimport { parse } from \"@mermaid-js/parser\";\nvar maxPacketSize = 1e4;\nvar populate = /* @__PURE__ */ __name((ast) => {\n populateCommonDb(ast, db);\n let lastByte = -1;\n let word = [];\n let row = 1;\n const { bitsPerRow } = db.getConfig();\n for (let { start, end, label } of ast.blocks) {\n if (end && end < start) {\n throw new Error(`Packet block ${start} - ${end} is invalid. End must be greater than start.`);\n }\n if (start !== lastByte + 1) {\n throw new Error(\n `Packet block ${start} - ${end ?? start} is not contiguous. It should start from ${lastByte + 1}.`\n );\n }\n lastByte = end ?? start;\n log.debug(`Packet block ${start} - ${lastByte} with label ${label}`);\n while (word.length <= bitsPerRow + 1 && db.getPacket().length < maxPacketSize) {\n const [block, nextBlock] = getNextFittingBlock({ start, end, label }, row, bitsPerRow);\n word.push(block);\n if (block.end + 1 === row * bitsPerRow) {\n db.pushWord(word);\n word = [];\n row++;\n }\n if (!nextBlock) {\n break;\n }\n ({ start, end, label } = nextBlock);\n }\n }\n db.pushWord(word);\n}, \"populate\");\nvar getNextFittingBlock = /* @__PURE__ */ __name((block, row, bitsPerRow) => {\n if (block.end === void 0) {\n block.end = block.start;\n }\n if (block.start > block.end) {\n throw new Error(`Block start ${block.start} is greater than block end ${block.end}.`);\n }\n if (block.end + 1 <= row * bitsPerRow) {\n return [block, void 0];\n }\n return [\n {\n start: block.start,\n end: row * bitsPerRow - 1,\n label: block.label\n },\n {\n start: row * bitsPerRow,\n end: block.end,\n label: block.label\n }\n ];\n}, \"getNextFittingBlock\");\nvar parser = {\n parse: /* @__PURE__ */ __name(async (input) => {\n const ast = await parse(\"packet\", input);\n log.debug(ast);\n populate(ast);\n }, \"parse\")\n};\n\n// src/diagrams/packet/renderer.ts\nvar draw = /* @__PURE__ */ __name((_text, id, _version, diagram2) => {\n const db2 = diagram2.db;\n const config = db2.getConfig();\n const { rowHeight, paddingY, bitWidth, bitsPerRow } = config;\n const words = db2.getPacket();\n const title = db2.getDiagramTitle();\n const totalRowHeight = rowHeight + paddingY;\n const svgHeight = totalRowHeight * (words.length + 1) - (title ? 0 : rowHeight);\n const svgWidth = bitWidth * bitsPerRow + 2;\n const svg = selectSvgElement(id);\n svg.attr(\"viewbox\", `0 0 ${svgWidth} ${svgHeight}`);\n configureSvgSize(svg, svgHeight, svgWidth, config.useMaxWidth);\n for (const [word, packet] of words.entries()) {\n drawWord(svg, packet, word, config);\n }\n svg.append(\"text\").text(title).attr(\"x\", svgWidth / 2).attr(\"y\", svgHeight - totalRowHeight / 2).attr(\"dominant-baseline\", \"middle\").attr(\"text-anchor\", \"middle\").attr(\"class\", \"packetTitle\");\n}, \"draw\");\nvar drawWord = /* @__PURE__ */ __name((svg, word, rowNumber, { rowHeight, paddingX, paddingY, bitWidth, bitsPerRow, showBits }) => {\n const group = svg.append(\"g\");\n const wordY = rowNumber * (rowHeight + paddingY) + paddingY;\n for (const block of word) {\n const blockX = block.start % bitsPerRow * bitWidth + 1;\n const width = (block.end - block.start + 1) * bitWidth - paddingX;\n group.append(\"rect\").attr(\"x\", blockX).attr(\"y\", wordY).attr(\"width\", width).attr(\"height\", rowHeight).attr(\"class\", \"packetBlock\");\n group.append(\"text\").attr(\"x\", blockX + width / 2).attr(\"y\", wordY + rowHeight / 2).attr(\"class\", \"packetLabel\").attr(\"dominant-baseline\", \"middle\").attr(\"text-anchor\", \"middle\").text(block.label);\n if (!showBits) {\n continue;\n }\n const isSingleBlock = block.end === block.start;\n const bitNumberY = wordY - 2;\n group.append(\"text\").attr(\"x\", blockX + (isSingleBlock ? width / 2 : 0)).attr(\"y\", bitNumberY).attr(\"class\", \"packetByte start\").attr(\"dominant-baseline\", \"auto\").attr(\"text-anchor\", isSingleBlock ? \"middle\" : \"start\").text(block.start);\n if (!isSingleBlock) {\n group.append(\"text\").attr(\"x\", blockX + width).attr(\"y\", bitNumberY).attr(\"class\", \"packetByte end\").attr(\"dominant-baseline\", \"auto\").attr(\"text-anchor\", \"end\").text(block.end);\n }\n }\n}, \"drawWord\");\nvar renderer = { draw };\n\n// src/diagrams/packet/styles.ts\nvar defaultPacketStyleOptions = {\n byteFontSize: \"10px\",\n startByteColor: \"black\",\n endByteColor: \"black\",\n labelColor: \"black\",\n labelFontSize: \"12px\",\n titleColor: \"black\",\n titleFontSize: \"14px\",\n blockStrokeColor: \"black\",\n blockStrokeWidth: \"1\",\n blockFillColor: \"#efefef\"\n};\nvar styles = /* @__PURE__ */ __name(({ packet } = {}) => {\n const options = cleanAndMerge(defaultPacketStyleOptions, packet);\n return `\n\t.packetByte {\n\t\tfont-size: ${options.byteFontSize};\n\t}\n\t.packetByte.start {\n\t\tfill: ${options.startByteColor};\n\t}\n\t.packetByte.end {\n\t\tfill: ${options.endByteColor};\n\t}\n\t.packetLabel {\n\t\tfill: ${options.labelColor};\n\t\tfont-size: ${options.labelFontSize};\n\t}\n\t.packetTitle {\n\t\tfill: ${options.titleColor};\n\t\tfont-size: ${options.titleFontSize};\n\t}\n\t.packetBlock {\n\t\tstroke: ${options.blockStrokeColor};\n\t\tstroke-width: ${options.blockStrokeWidth};\n\t\tfill: ${options.blockFillColor};\n\t}\n\t`;\n}, \"styles\");\n\n// src/diagrams/packet/diagram.ts\nvar diagram = {\n parser,\n db,\n renderer,\n styles\n};\nexport {\n diagram\n};\n"], + "mappings": "yoBAyBA,IAAIA,EAAoB,CACtB,OAAQ,CAAC,CACX,EACIC,EAAO,gBAAgBD,CAAiB,EACxCE,EAAwBC,EAAsB,OAC9CC,EAA6BC,EAAO,IAAM,CAC5C,IAAMC,EAASC,EAAc,CAC3B,GAAGL,EACH,GAAGM,EAAU,EAAE,MACjB,CAAC,EACD,OAAIF,EAAO,WACTA,EAAO,UAAY,IAEdA,CACT,EAAG,WAAW,EACVG,EAA4BJ,EAAO,IAAMJ,EAAK,OAAQ,WAAW,EACjES,EAA2BL,EAAQM,GAAS,CAC1CA,EAAK,OAAS,GAChBV,EAAK,OAAO,KAAKU,CAAI,CAEzB,EAAG,UAAU,EACTC,EAAyBP,EAAO,IAAM,CACxCQ,EAAM,EACNZ,EAAO,gBAAgBD,CAAiB,CAC1C,EAAG,OAAO,EACNc,EAAK,CACP,SAAAJ,EACA,UAAAD,EACA,UAAWL,EACX,MAAOQ,EACP,YAAAG,EACA,YAAAC,EACA,gBAAAC,EACA,gBAAAC,EACA,kBAAAC,EACA,kBAAAC,CACF,EAIIC,EAAgB,IAChBC,EAA2BjB,EAAQkB,GAAQ,CAC7CC,EAAiBD,EAAKT,CAAE,EACxB,IAAIW,EAAW,GACXd,EAAO,CAAC,EACRe,EAAM,EACJ,CAAE,WAAAC,CAAW,EAAIb,EAAG,UAAU,EACpC,OAAS,CAAE,MAAAc,EAAO,IAAAC,EAAK,MAAAC,CAAM,IAAKP,EAAI,OAAQ,CAC5C,GAAIM,GAAOA,EAAMD,EACf,MAAM,IAAI,MAAM,gBAAgBA,CAAK,MAAMC,CAAG,8CAA8C,EAE9F,GAAID,IAAUH,EAAW,EACvB,MAAM,IAAI,MACR,gBAAgBG,CAAK,MAAMC,GAAOD,CAAK,4CAA4CH,EAAW,CAAC,GACjG,EAIF,IAFAA,EAAWI,GAAOD,EAClBG,EAAI,MAAM,gBAAgBH,CAAK,MAAMH,CAAQ,eAAeK,CAAK,EAAE,EAC5DnB,EAAK,QAAUgB,EAAa,GAAKb,EAAG,UAAU,EAAE,OAASO,GAAe,CAC7E,GAAM,CAACW,EAAOC,CAAS,EAAIC,EAAoB,CAAE,MAAAN,EAAO,IAAAC,EAAK,MAAAC,CAAM,EAAGJ,EAAKC,CAAU,EAOrF,GANAhB,EAAK,KAAKqB,CAAK,EACXA,EAAM,IAAM,IAAMN,EAAMC,IAC1Bb,EAAG,SAASH,CAAI,EAChBA,EAAO,CAAC,EACRe,KAEE,CAACO,EACH,OAED,CAAE,MAAAL,EAAO,IAAAC,EAAK,MAAAC,CAAM,EAAIG,EAC3B,CACF,CACAnB,EAAG,SAASH,CAAI,CAClB,EAAG,UAAU,EACTuB,EAAsC7B,EAAO,CAAC2B,EAAON,EAAKC,IAAe,CAI3E,GAHIK,EAAM,MAAQ,SAChBA,EAAM,IAAMA,EAAM,OAEhBA,EAAM,MAAQA,EAAM,IACtB,MAAM,IAAI,MAAM,eAAeA,EAAM,KAAK,8BAA8BA,EAAM,GAAG,GAAG,EAEtF,OAAIA,EAAM,IAAM,GAAKN,EAAMC,EAClB,CAACK,EAAO,MAAM,EAEhB,CACL,CACE,MAAOA,EAAM,MACb,IAAKN,EAAMC,EAAa,EACxB,MAAOK,EAAM,KACf,EACA,CACE,MAAON,EAAMC,EACb,IAAKK,EAAM,IACX,MAAOA,EAAM,KACf,CACF,CACF,EAAG,qBAAqB,EACpBG,EAAS,CACX,MAAuB9B,EAAO,MAAO+B,GAAU,CAC7C,IAAMb,EAAM,MAAMc,EAAM,SAAUD,CAAK,EACvCL,EAAI,MAAMR,CAAG,EACbD,EAASC,CAAG,CACd,EAAG,OAAO,CACZ,EAGIe,EAAuBjC,EAAO,CAACkC,EAAOC,EAAIC,EAAUC,IAAa,CACnE,IAAMC,EAAMD,EAAS,GACfpC,EAASqC,EAAI,UAAU,EACvB,CAAE,UAAAC,EAAW,SAAAC,EAAU,SAAAC,EAAU,WAAAnB,CAAW,EAAIrB,EAChDyC,EAAQJ,EAAI,UAAU,EACtBK,EAAQL,EAAI,gBAAgB,EAC5BM,EAAiBL,EAAYC,EAC7BK,EAAYD,GAAkBF,EAAM,OAAS,IAAMC,EAAQ,EAAIJ,GAC/DO,EAAWL,EAAWnB,EAAa,EACnCyB,EAAMC,EAAiBb,CAAE,EAC/BY,EAAI,KAAK,UAAW,OAAOD,CAAQ,IAAID,CAAS,EAAE,EAClDI,EAAiBF,EAAKF,EAAWC,EAAU7C,EAAO,WAAW,EAC7D,OAAW,CAACK,EAAM4C,CAAM,IAAKR,EAAM,QAAQ,EACzCS,EAASJ,EAAKG,EAAQ5C,EAAML,CAAM,EAEpC8C,EAAI,OAAO,MAAM,EAAE,KAAKJ,CAAK,EAAE,KAAK,IAAKG,EAAW,CAAC,EAAE,KAAK,IAAKD,EAAYD,EAAiB,CAAC,EAAE,KAAK,oBAAqB,QAAQ,EAAE,KAAK,cAAe,QAAQ,EAAE,KAAK,QAAS,aAAa,CAChM,EAAG,MAAM,EACLO,EAA2BnD,EAAO,CAAC+C,EAAKzC,EAAM8C,EAAW,CAAE,UAAAb,EAAW,SAAAc,EAAU,SAAAb,EAAU,SAAAC,EAAU,WAAAnB,EAAY,SAAAgC,CAAS,IAAM,CACjI,IAAMC,EAAQR,EAAI,OAAO,GAAG,EACtBS,EAAQJ,GAAab,EAAYC,GAAYA,EACnD,QAAWb,KAASrB,EAAM,CACxB,IAAMmD,EAAS9B,EAAM,MAAQL,EAAamB,EAAW,EAC/CiB,GAAS/B,EAAM,IAAMA,EAAM,MAAQ,GAAKc,EAAWY,EAGzD,GAFAE,EAAM,OAAO,MAAM,EAAE,KAAK,IAAKE,CAAM,EAAE,KAAK,IAAKD,CAAK,EAAE,KAAK,QAASE,CAAK,EAAE,KAAK,SAAUnB,CAAS,EAAE,KAAK,QAAS,aAAa,EAClIgB,EAAM,OAAO,MAAM,EAAE,KAAK,IAAKE,EAASC,EAAQ,CAAC,EAAE,KAAK,IAAKF,EAAQjB,EAAY,CAAC,EAAE,KAAK,QAAS,aAAa,EAAE,KAAK,oBAAqB,QAAQ,EAAE,KAAK,cAAe,QAAQ,EAAE,KAAKZ,EAAM,KAAK,EAC/L,CAAC2B,EACH,SAEF,IAAMK,EAAgBhC,EAAM,MAAQA,EAAM,MACpCiC,EAAaJ,EAAQ,EAC3BD,EAAM,OAAO,MAAM,EAAE,KAAK,IAAKE,GAAUE,EAAgBD,EAAQ,EAAI,EAAE,EAAE,KAAK,IAAKE,CAAU,EAAE,KAAK,QAAS,kBAAkB,EAAE,KAAK,oBAAqB,MAAM,EAAE,KAAK,cAAeD,EAAgB,SAAW,OAAO,EAAE,KAAKhC,EAAM,KAAK,EACtOgC,GACHJ,EAAM,OAAO,MAAM,EAAE,KAAK,IAAKE,EAASC,CAAK,EAAE,KAAK,IAAKE,CAAU,EAAE,KAAK,QAAS,gBAAgB,EAAE,KAAK,oBAAqB,MAAM,EAAE,KAAK,cAAe,KAAK,EAAE,KAAKjC,EAAM,GAAG,CAEpL,CACF,EAAG,UAAU,EACTkC,EAAW,CAAE,KAAA5B,CAAK,EAGlB6B,EAA4B,CAC9B,aAAc,OACd,eAAgB,QAChB,aAAc,QACd,WAAY,QACZ,cAAe,OACf,WAAY,QACZ,cAAe,OACf,iBAAkB,QAClB,iBAAkB,IAClB,eAAgB,SAClB,EACIC,EAAyB/D,EAAO,CAAC,CAAE,OAAAkD,CAAO,EAAI,CAAC,IAAM,CACvD,IAAMc,EAAU9D,EAAc4D,EAA2BZ,CAAM,EAC/D,MAAO;AAAA;AAAA,eAEMc,EAAQ,YAAY;AAAA;AAAA;AAAA,UAGzBA,EAAQ,cAAc;AAAA;AAAA;AAAA,UAGtBA,EAAQ,YAAY;AAAA;AAAA;AAAA,UAGpBA,EAAQ,UAAU;AAAA,eACbA,EAAQ,aAAa;AAAA;AAAA;AAAA,UAG1BA,EAAQ,UAAU;AAAA,eACbA,EAAQ,aAAa;AAAA;AAAA;AAAA,YAGxBA,EAAQ,gBAAgB;AAAA,kBAClBA,EAAQ,gBAAgB;AAAA,UAChCA,EAAQ,cAAc;AAAA;AAAA,EAGhC,EAAG,QAAQ,EAGPC,GAAU,CACZ,OAAAnC,EACA,GAAArB,EACA,SAAAoD,EACA,OAAAE,CACF", + "names": ["defaultPacketData", "data", "DEFAULT_PACKET_CONFIG", "defaultConfig_default", "getConfig2", "__name", "config", "cleanAndMerge", "getConfig", "getPacket", "pushWord", "word", "clear2", "clear", "db", "setAccTitle", "getAccTitle", "setDiagramTitle", "getDiagramTitle", "getAccDescription", "setAccDescription", "maxPacketSize", "populate", "ast", "populateCommonDb", "lastByte", "row", "bitsPerRow", "start", "end", "label", "log", "block", "nextBlock", "getNextFittingBlock", "parser", "input", "parse", "draw", "_text", "id", "_version", "diagram2", "db2", "rowHeight", "paddingY", "bitWidth", "words", "title", "totalRowHeight", "svgHeight", "svgWidth", "svg", "selectSvgElement", "configureSvgSize", "packet", "drawWord", "rowNumber", "paddingX", "showBits", "group", "wordY", "blockX", "width", "isSingleBlock", "bitNumberY", "renderer", "defaultPacketStyleOptions", "styles", "options", "diagram"] +} diff --git a/docs/_site/public/docfx.min.css b/docs/_site/public/docfx.min.css new file mode 100644 index 0000000..70e42ca --- /dev/null +++ b/docs/_site/public/docfx.min.css @@ -0,0 +1,16 @@ +@charset "UTF-8";@font-face{font-display:block;font-family:bootstrap-icons;src:url("./bootstrap-icons-X6UQXWUS.woff2?24e3eb84d0bcaf83d77f904c78ac1f47") format("woff2"),url("./bootstrap-icons-OCU552PF.woff?24e3eb84d0bcaf83d77f904c78ac1f47") format("woff")}.bi:before,[class^=bi-]:before,[class*=" bi-"]:before{display:inline-block;font-family:bootstrap-icons!important;font-style:normal;font-weight:400!important;font-variant:normal;text-transform:none;line-height:1;vertical-align:-.125em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.bi-123:before{content:"\f67f"}.bi-alarm-fill:before{content:"\f101"}.bi-alarm:before{content:"\f102"}.bi-align-bottom:before{content:"\f103"}.bi-align-center:before{content:"\f104"}.bi-align-end:before{content:"\f105"}.bi-align-middle:before{content:"\f106"}.bi-align-start:before{content:"\f107"}.bi-align-top:before{content:"\f108"}.bi-alt:before{content:"\f109"}.bi-app-indicator:before{content:"\f10a"}.bi-app:before{content:"\f10b"}.bi-archive-fill:before{content:"\f10c"}.bi-archive:before{content:"\f10d"}.bi-arrow-90deg-down:before{content:"\f10e"}.bi-arrow-90deg-left:before{content:"\f10f"}.bi-arrow-90deg-right:before{content:"\f110"}.bi-arrow-90deg-up:before{content:"\f111"}.bi-arrow-bar-down:before{content:"\f112"}.bi-arrow-bar-left:before{content:"\f113"}.bi-arrow-bar-right:before{content:"\f114"}.bi-arrow-bar-up:before{content:"\f115"}.bi-arrow-clockwise:before{content:"\f116"}.bi-arrow-counterclockwise:before{content:"\f117"}.bi-arrow-down-circle-fill:before{content:"\f118"}.bi-arrow-down-circle:before{content:"\f119"}.bi-arrow-down-left-circle-fill:before{content:"\f11a"}.bi-arrow-down-left-circle:before{content:"\f11b"}.bi-arrow-down-left-square-fill:before{content:"\f11c"}.bi-arrow-down-left-square:before{content:"\f11d"}.bi-arrow-down-left:before{content:"\f11e"}.bi-arrow-down-right-circle-fill:before{content:"\f11f"}.bi-arrow-down-right-circle:before{content:"\f120"}.bi-arrow-down-right-square-fill:before{content:"\f121"}.bi-arrow-down-right-square:before{content:"\f122"}.bi-arrow-down-right:before{content:"\f123"}.bi-arrow-down-short:before{content:"\f124"}.bi-arrow-down-square-fill:before{content:"\f125"}.bi-arrow-down-square:before{content:"\f126"}.bi-arrow-down-up:before{content:"\f127"}.bi-arrow-down:before{content:"\f128"}.bi-arrow-left-circle-fill:before{content:"\f129"}.bi-arrow-left-circle:before{content:"\f12a"}.bi-arrow-left-right:before{content:"\f12b"}.bi-arrow-left-short:before{content:"\f12c"}.bi-arrow-left-square-fill:before{content:"\f12d"}.bi-arrow-left-square:before{content:"\f12e"}.bi-arrow-left:before{content:"\f12f"}.bi-arrow-repeat:before{content:"\f130"}.bi-arrow-return-left:before{content:"\f131"}.bi-arrow-return-right:before{content:"\f132"}.bi-arrow-right-circle-fill:before{content:"\f133"}.bi-arrow-right-circle:before{content:"\f134"}.bi-arrow-right-short:before{content:"\f135"}.bi-arrow-right-square-fill:before{content:"\f136"}.bi-arrow-right-square:before{content:"\f137"}.bi-arrow-right:before{content:"\f138"}.bi-arrow-up-circle-fill:before{content:"\f139"}.bi-arrow-up-circle:before{content:"\f13a"}.bi-arrow-up-left-circle-fill:before{content:"\f13b"}.bi-arrow-up-left-circle:before{content:"\f13c"}.bi-arrow-up-left-square-fill:before{content:"\f13d"}.bi-arrow-up-left-square:before{content:"\f13e"}.bi-arrow-up-left:before{content:"\f13f"}.bi-arrow-up-right-circle-fill:before{content:"\f140"}.bi-arrow-up-right-circle:before{content:"\f141"}.bi-arrow-up-right-square-fill:before{content:"\f142"}.bi-arrow-up-right-square:before{content:"\f143"}.bi-arrow-up-right:before{content:"\f144"}.bi-arrow-up-short:before{content:"\f145"}.bi-arrow-up-square-fill:before{content:"\f146"}.bi-arrow-up-square:before{content:"\f147"}.bi-arrow-up:before{content:"\f148"}.bi-arrows-angle-contract:before{content:"\f149"}.bi-arrows-angle-expand:before{content:"\f14a"}.bi-arrows-collapse:before{content:"\f14b"}.bi-arrows-expand:before{content:"\f14c"}.bi-arrows-fullscreen:before{content:"\f14d"}.bi-arrows-move:before{content:"\f14e"}.bi-aspect-ratio-fill:before{content:"\f14f"}.bi-aspect-ratio:before{content:"\f150"}.bi-asterisk:before{content:"\f151"}.bi-at:before{content:"\f152"}.bi-award-fill:before{content:"\f153"}.bi-award:before{content:"\f154"}.bi-back:before{content:"\f155"}.bi-backspace-fill:before{content:"\f156"}.bi-backspace-reverse-fill:before{content:"\f157"}.bi-backspace-reverse:before{content:"\f158"}.bi-backspace:before{content:"\f159"}.bi-badge-3d-fill:before{content:"\f15a"}.bi-badge-3d:before{content:"\f15b"}.bi-badge-4k-fill:before{content:"\f15c"}.bi-badge-4k:before{content:"\f15d"}.bi-badge-8k-fill:before{content:"\f15e"}.bi-badge-8k:before{content:"\f15f"}.bi-badge-ad-fill:before{content:"\f160"}.bi-badge-ad:before{content:"\f161"}.bi-badge-ar-fill:before{content:"\f162"}.bi-badge-ar:before{content:"\f163"}.bi-badge-cc-fill:before{content:"\f164"}.bi-badge-cc:before{content:"\f165"}.bi-badge-hd-fill:before{content:"\f166"}.bi-badge-hd:before{content:"\f167"}.bi-badge-tm-fill:before{content:"\f168"}.bi-badge-tm:before{content:"\f169"}.bi-badge-vo-fill:before{content:"\f16a"}.bi-badge-vo:before{content:"\f16b"}.bi-badge-vr-fill:before{content:"\f16c"}.bi-badge-vr:before{content:"\f16d"}.bi-badge-wc-fill:before{content:"\f16e"}.bi-badge-wc:before{content:"\f16f"}.bi-bag-check-fill:before{content:"\f170"}.bi-bag-check:before{content:"\f171"}.bi-bag-dash-fill:before{content:"\f172"}.bi-bag-dash:before{content:"\f173"}.bi-bag-fill:before{content:"\f174"}.bi-bag-plus-fill:before{content:"\f175"}.bi-bag-plus:before{content:"\f176"}.bi-bag-x-fill:before{content:"\f177"}.bi-bag-x:before{content:"\f178"}.bi-bag:before{content:"\f179"}.bi-bar-chart-fill:before{content:"\f17a"}.bi-bar-chart-line-fill:before{content:"\f17b"}.bi-bar-chart-line:before{content:"\f17c"}.bi-bar-chart-steps:before{content:"\f17d"}.bi-bar-chart:before{content:"\f17e"}.bi-basket-fill:before{content:"\f17f"}.bi-basket:before{content:"\f180"}.bi-basket2-fill:before{content:"\f181"}.bi-basket2:before{content:"\f182"}.bi-basket3-fill:before{content:"\f183"}.bi-basket3:before{content:"\f184"}.bi-battery-charging:before{content:"\f185"}.bi-battery-full:before{content:"\f186"}.bi-battery-half:before{content:"\f187"}.bi-battery:before{content:"\f188"}.bi-bell-fill:before{content:"\f189"}.bi-bell:before{content:"\f18a"}.bi-bezier:before{content:"\f18b"}.bi-bezier2:before{content:"\f18c"}.bi-bicycle:before{content:"\f18d"}.bi-binoculars-fill:before{content:"\f18e"}.bi-binoculars:before{content:"\f18f"}.bi-blockquote-left:before{content:"\f190"}.bi-blockquote-right:before{content:"\f191"}.bi-book-fill:before{content:"\f192"}.bi-book-half:before{content:"\f193"}.bi-book:before{content:"\f194"}.bi-bookmark-check-fill:before{content:"\f195"}.bi-bookmark-check:before{content:"\f196"}.bi-bookmark-dash-fill:before{content:"\f197"}.bi-bookmark-dash:before{content:"\f198"}.bi-bookmark-fill:before{content:"\f199"}.bi-bookmark-heart-fill:before{content:"\f19a"}.bi-bookmark-heart:before{content:"\f19b"}.bi-bookmark-plus-fill:before{content:"\f19c"}.bi-bookmark-plus:before{content:"\f19d"}.bi-bookmark-star-fill:before{content:"\f19e"}.bi-bookmark-star:before{content:"\f19f"}.bi-bookmark-x-fill:before{content:"\f1a0"}.bi-bookmark-x:before{content:"\f1a1"}.bi-bookmark:before{content:"\f1a2"}.bi-bookmarks-fill:before{content:"\f1a3"}.bi-bookmarks:before{content:"\f1a4"}.bi-bookshelf:before{content:"\f1a5"}.bi-bootstrap-fill:before{content:"\f1a6"}.bi-bootstrap-reboot:before{content:"\f1a7"}.bi-bootstrap:before{content:"\f1a8"}.bi-border-all:before{content:"\f1a9"}.bi-border-bottom:before{content:"\f1aa"}.bi-border-center:before{content:"\f1ab"}.bi-border-inner:before{content:"\f1ac"}.bi-border-left:before{content:"\f1ad"}.bi-border-middle:before{content:"\f1ae"}.bi-border-outer:before{content:"\f1af"}.bi-border-right:before{content:"\f1b0"}.bi-border-style:before{content:"\f1b1"}.bi-border-top:before{content:"\f1b2"}.bi-border-width:before{content:"\f1b3"}.bi-border:before{content:"\f1b4"}.bi-bounding-box-circles:before{content:"\f1b5"}.bi-bounding-box:before{content:"\f1b6"}.bi-box-arrow-down-left:before{content:"\f1b7"}.bi-box-arrow-down-right:before{content:"\f1b8"}.bi-box-arrow-down:before{content:"\f1b9"}.bi-box-arrow-in-down-left:before{content:"\f1ba"}.bi-box-arrow-in-down-right:before{content:"\f1bb"}.bi-box-arrow-in-down:before{content:"\f1bc"}.bi-box-arrow-in-left:before{content:"\f1bd"}.bi-box-arrow-in-right:before{content:"\f1be"}.bi-box-arrow-in-up-left:before{content:"\f1bf"}.bi-box-arrow-in-up-right:before{content:"\f1c0"}.bi-box-arrow-in-up:before{content:"\f1c1"}.bi-box-arrow-left:before{content:"\f1c2"}.bi-box-arrow-right:before{content:"\f1c3"}.bi-box-arrow-up-left:before{content:"\f1c4"}.bi-box-arrow-up-right:before{content:"\f1c5"}.bi-box-arrow-up:before{content:"\f1c6"}.bi-box-seam:before{content:"\f1c7"}.bi-box:before{content:"\f1c8"}.bi-braces:before{content:"\f1c9"}.bi-bricks:before{content:"\f1ca"}.bi-briefcase-fill:before{content:"\f1cb"}.bi-briefcase:before{content:"\f1cc"}.bi-brightness-alt-high-fill:before{content:"\f1cd"}.bi-brightness-alt-high:before{content:"\f1ce"}.bi-brightness-alt-low-fill:before{content:"\f1cf"}.bi-brightness-alt-low:before{content:"\f1d0"}.bi-brightness-high-fill:before{content:"\f1d1"}.bi-brightness-high:before{content:"\f1d2"}.bi-brightness-low-fill:before{content:"\f1d3"}.bi-brightness-low:before{content:"\f1d4"}.bi-broadcast-pin:before{content:"\f1d5"}.bi-broadcast:before{content:"\f1d6"}.bi-brush-fill:before{content:"\f1d7"}.bi-brush:before{content:"\f1d8"}.bi-bucket-fill:before{content:"\f1d9"}.bi-bucket:before{content:"\f1da"}.bi-bug-fill:before{content:"\f1db"}.bi-bug:before{content:"\f1dc"}.bi-building:before{content:"\f1dd"}.bi-bullseye:before{content:"\f1de"}.bi-calculator-fill:before{content:"\f1df"}.bi-calculator:before{content:"\f1e0"}.bi-calendar-check-fill:before{content:"\f1e1"}.bi-calendar-check:before{content:"\f1e2"}.bi-calendar-date-fill:before{content:"\f1e3"}.bi-calendar-date:before{content:"\f1e4"}.bi-calendar-day-fill:before{content:"\f1e5"}.bi-calendar-day:before{content:"\f1e6"}.bi-calendar-event-fill:before{content:"\f1e7"}.bi-calendar-event:before{content:"\f1e8"}.bi-calendar-fill:before{content:"\f1e9"}.bi-calendar-minus-fill:before{content:"\f1ea"}.bi-calendar-minus:before{content:"\f1eb"}.bi-calendar-month-fill:before{content:"\f1ec"}.bi-calendar-month:before{content:"\f1ed"}.bi-calendar-plus-fill:before{content:"\f1ee"}.bi-calendar-plus:before{content:"\f1ef"}.bi-calendar-range-fill:before{content:"\f1f0"}.bi-calendar-range:before{content:"\f1f1"}.bi-calendar-week-fill:before{content:"\f1f2"}.bi-calendar-week:before{content:"\f1f3"}.bi-calendar-x-fill:before{content:"\f1f4"}.bi-calendar-x:before{content:"\f1f5"}.bi-calendar:before{content:"\f1f6"}.bi-calendar2-check-fill:before{content:"\f1f7"}.bi-calendar2-check:before{content:"\f1f8"}.bi-calendar2-date-fill:before{content:"\f1f9"}.bi-calendar2-date:before{content:"\f1fa"}.bi-calendar2-day-fill:before{content:"\f1fb"}.bi-calendar2-day:before{content:"\f1fc"}.bi-calendar2-event-fill:before{content:"\f1fd"}.bi-calendar2-event:before{content:"\f1fe"}.bi-calendar2-fill:before{content:"\f1ff"}.bi-calendar2-minus-fill:before{content:"\f200"}.bi-calendar2-minus:before{content:"\f201"}.bi-calendar2-month-fill:before{content:"\f202"}.bi-calendar2-month:before{content:"\f203"}.bi-calendar2-plus-fill:before{content:"\f204"}.bi-calendar2-plus:before{content:"\f205"}.bi-calendar2-range-fill:before{content:"\f206"}.bi-calendar2-range:before{content:"\f207"}.bi-calendar2-week-fill:before{content:"\f208"}.bi-calendar2-week:before{content:"\f209"}.bi-calendar2-x-fill:before{content:"\f20a"}.bi-calendar2-x:before{content:"\f20b"}.bi-calendar2:before{content:"\f20c"}.bi-calendar3-event-fill:before{content:"\f20d"}.bi-calendar3-event:before{content:"\f20e"}.bi-calendar3-fill:before{content:"\f20f"}.bi-calendar3-range-fill:before{content:"\f210"}.bi-calendar3-range:before{content:"\f211"}.bi-calendar3-week-fill:before{content:"\f212"}.bi-calendar3-week:before{content:"\f213"}.bi-calendar3:before{content:"\f214"}.bi-calendar4-event:before{content:"\f215"}.bi-calendar4-range:before{content:"\f216"}.bi-calendar4-week:before{content:"\f217"}.bi-calendar4:before{content:"\f218"}.bi-camera-fill:before{content:"\f219"}.bi-camera-reels-fill:before{content:"\f21a"}.bi-camera-reels:before{content:"\f21b"}.bi-camera-video-fill:before{content:"\f21c"}.bi-camera-video-off-fill:before{content:"\f21d"}.bi-camera-video-off:before{content:"\f21e"}.bi-camera-video:before{content:"\f21f"}.bi-camera:before{content:"\f220"}.bi-camera2:before{content:"\f221"}.bi-capslock-fill:before{content:"\f222"}.bi-capslock:before{content:"\f223"}.bi-card-checklist:before{content:"\f224"}.bi-card-heading:before{content:"\f225"}.bi-card-image:before{content:"\f226"}.bi-card-list:before{content:"\f227"}.bi-card-text:before{content:"\f228"}.bi-caret-down-fill:before{content:"\f229"}.bi-caret-down-square-fill:before{content:"\f22a"}.bi-caret-down-square:before{content:"\f22b"}.bi-caret-down:before{content:"\f22c"}.bi-caret-left-fill:before{content:"\f22d"}.bi-caret-left-square-fill:before{content:"\f22e"}.bi-caret-left-square:before{content:"\f22f"}.bi-caret-left:before{content:"\f230"}.bi-caret-right-fill:before{content:"\f231"}.bi-caret-right-square-fill:before{content:"\f232"}.bi-caret-right-square:before{content:"\f233"}.bi-caret-right:before{content:"\f234"}.bi-caret-up-fill:before{content:"\f235"}.bi-caret-up-square-fill:before{content:"\f236"}.bi-caret-up-square:before{content:"\f237"}.bi-caret-up:before{content:"\f238"}.bi-cart-check-fill:before{content:"\f239"}.bi-cart-check:before{content:"\f23a"}.bi-cart-dash-fill:before{content:"\f23b"}.bi-cart-dash:before{content:"\f23c"}.bi-cart-fill:before{content:"\f23d"}.bi-cart-plus-fill:before{content:"\f23e"}.bi-cart-plus:before{content:"\f23f"}.bi-cart-x-fill:before{content:"\f240"}.bi-cart-x:before{content:"\f241"}.bi-cart:before{content:"\f242"}.bi-cart2:before{content:"\f243"}.bi-cart3:before{content:"\f244"}.bi-cart4:before{content:"\f245"}.bi-cash-stack:before{content:"\f246"}.bi-cash:before{content:"\f247"}.bi-cast:before{content:"\f248"}.bi-chat-dots-fill:before{content:"\f249"}.bi-chat-dots:before{content:"\f24a"}.bi-chat-fill:before{content:"\f24b"}.bi-chat-left-dots-fill:before{content:"\f24c"}.bi-chat-left-dots:before{content:"\f24d"}.bi-chat-left-fill:before{content:"\f24e"}.bi-chat-left-quote-fill:before{content:"\f24f"}.bi-chat-left-quote:before{content:"\f250"}.bi-chat-left-text-fill:before{content:"\f251"}.bi-chat-left-text:before{content:"\f252"}.bi-chat-left:before{content:"\f253"}.bi-chat-quote-fill:before{content:"\f254"}.bi-chat-quote:before{content:"\f255"}.bi-chat-right-dots-fill:before{content:"\f256"}.bi-chat-right-dots:before{content:"\f257"}.bi-chat-right-fill:before{content:"\f258"}.bi-chat-right-quote-fill:before{content:"\f259"}.bi-chat-right-quote:before{content:"\f25a"}.bi-chat-right-text-fill:before{content:"\f25b"}.bi-chat-right-text:before{content:"\f25c"}.bi-chat-right:before{content:"\f25d"}.bi-chat-square-dots-fill:before{content:"\f25e"}.bi-chat-square-dots:before{content:"\f25f"}.bi-chat-square-fill:before{content:"\f260"}.bi-chat-square-quote-fill:before{content:"\f261"}.bi-chat-square-quote:before{content:"\f262"}.bi-chat-square-text-fill:before{content:"\f263"}.bi-chat-square-text:before{content:"\f264"}.bi-chat-square:before{content:"\f265"}.bi-chat-text-fill:before{content:"\f266"}.bi-chat-text:before{content:"\f267"}.bi-chat:before{content:"\f268"}.bi-check-all:before{content:"\f269"}.bi-check-circle-fill:before{content:"\f26a"}.bi-check-circle:before{content:"\f26b"}.bi-check-square-fill:before{content:"\f26c"}.bi-check-square:before{content:"\f26d"}.bi-check:before{content:"\f26e"}.bi-check2-all:before{content:"\f26f"}.bi-check2-circle:before{content:"\f270"}.bi-check2-square:before{content:"\f271"}.bi-check2:before{content:"\f272"}.bi-chevron-bar-contract:before{content:"\f273"}.bi-chevron-bar-down:before{content:"\f274"}.bi-chevron-bar-expand:before{content:"\f275"}.bi-chevron-bar-left:before{content:"\f276"}.bi-chevron-bar-right:before{content:"\f277"}.bi-chevron-bar-up:before{content:"\f278"}.bi-chevron-compact-down:before{content:"\f279"}.bi-chevron-compact-left:before{content:"\f27a"}.bi-chevron-compact-right:before{content:"\f27b"}.bi-chevron-compact-up:before{content:"\f27c"}.bi-chevron-contract:before{content:"\f27d"}.bi-chevron-double-down:before{content:"\f27e"}.bi-chevron-double-left:before{content:"\f27f"}.bi-chevron-double-right:before{content:"\f280"}.bi-chevron-double-up:before{content:"\f281"}.bi-chevron-down:before{content:"\f282"}.bi-chevron-expand:before{content:"\f283"}.bi-chevron-left:before{content:"\f284"}.bi-chevron-right:before{content:"\f285"}.bi-chevron-up:before{content:"\f286"}.bi-circle-fill:before{content:"\f287"}.bi-circle-half:before{content:"\f288"}.bi-circle-square:before{content:"\f289"}.bi-circle:before{content:"\f28a"}.bi-clipboard-check:before{content:"\f28b"}.bi-clipboard-data:before{content:"\f28c"}.bi-clipboard-minus:before{content:"\f28d"}.bi-clipboard-plus:before{content:"\f28e"}.bi-clipboard-x:before{content:"\f28f"}.bi-clipboard:before{content:"\f290"}.bi-clock-fill:before{content:"\f291"}.bi-clock-history:before{content:"\f292"}.bi-clock:before{content:"\f293"}.bi-cloud-arrow-down-fill:before{content:"\f294"}.bi-cloud-arrow-down:before{content:"\f295"}.bi-cloud-arrow-up-fill:before{content:"\f296"}.bi-cloud-arrow-up:before{content:"\f297"}.bi-cloud-check-fill:before{content:"\f298"}.bi-cloud-check:before{content:"\f299"}.bi-cloud-download-fill:before{content:"\f29a"}.bi-cloud-download:before{content:"\f29b"}.bi-cloud-drizzle-fill:before{content:"\f29c"}.bi-cloud-drizzle:before{content:"\f29d"}.bi-cloud-fill:before{content:"\f29e"}.bi-cloud-fog-fill:before{content:"\f29f"}.bi-cloud-fog:before{content:"\f2a0"}.bi-cloud-fog2-fill:before{content:"\f2a1"}.bi-cloud-fog2:before{content:"\f2a2"}.bi-cloud-hail-fill:before{content:"\f2a3"}.bi-cloud-hail:before{content:"\f2a4"}.bi-cloud-haze-fill:before{content:"\f2a6"}.bi-cloud-haze:before{content:"\f2a7"}.bi-cloud-haze2-fill:before{content:"\f2a8"}.bi-cloud-lightning-fill:before{content:"\f2a9"}.bi-cloud-lightning-rain-fill:before{content:"\f2aa"}.bi-cloud-lightning-rain:before{content:"\f2ab"}.bi-cloud-lightning:before{content:"\f2ac"}.bi-cloud-minus-fill:before{content:"\f2ad"}.bi-cloud-minus:before{content:"\f2ae"}.bi-cloud-moon-fill:before{content:"\f2af"}.bi-cloud-moon:before{content:"\f2b0"}.bi-cloud-plus-fill:before{content:"\f2b1"}.bi-cloud-plus:before{content:"\f2b2"}.bi-cloud-rain-fill:before{content:"\f2b3"}.bi-cloud-rain-heavy-fill:before{content:"\f2b4"}.bi-cloud-rain-heavy:before{content:"\f2b5"}.bi-cloud-rain:before{content:"\f2b6"}.bi-cloud-slash-fill:before{content:"\f2b7"}.bi-cloud-slash:before{content:"\f2b8"}.bi-cloud-sleet-fill:before{content:"\f2b9"}.bi-cloud-sleet:before{content:"\f2ba"}.bi-cloud-snow-fill:before{content:"\f2bb"}.bi-cloud-snow:before{content:"\f2bc"}.bi-cloud-sun-fill:before{content:"\f2bd"}.bi-cloud-sun:before{content:"\f2be"}.bi-cloud-upload-fill:before{content:"\f2bf"}.bi-cloud-upload:before{content:"\f2c0"}.bi-cloud:before{content:"\f2c1"}.bi-clouds-fill:before{content:"\f2c2"}.bi-clouds:before{content:"\f2c3"}.bi-cloudy-fill:before{content:"\f2c4"}.bi-cloudy:before{content:"\f2c5"}.bi-code-slash:before{content:"\f2c6"}.bi-code-square:before{content:"\f2c7"}.bi-code:before{content:"\f2c8"}.bi-collection-fill:before{content:"\f2c9"}.bi-collection-play-fill:before{content:"\f2ca"}.bi-collection-play:before{content:"\f2cb"}.bi-collection:before{content:"\f2cc"}.bi-columns-gap:before{content:"\f2cd"}.bi-columns:before{content:"\f2ce"}.bi-command:before{content:"\f2cf"}.bi-compass-fill:before{content:"\f2d0"}.bi-compass:before{content:"\f2d1"}.bi-cone-striped:before{content:"\f2d2"}.bi-cone:before{content:"\f2d3"}.bi-controller:before{content:"\f2d4"}.bi-cpu-fill:before{content:"\f2d5"}.bi-cpu:before{content:"\f2d6"}.bi-credit-card-2-back-fill:before{content:"\f2d7"}.bi-credit-card-2-back:before{content:"\f2d8"}.bi-credit-card-2-front-fill:before{content:"\f2d9"}.bi-credit-card-2-front:before{content:"\f2da"}.bi-credit-card-fill:before{content:"\f2db"}.bi-credit-card:before{content:"\f2dc"}.bi-crop:before{content:"\f2dd"}.bi-cup-fill:before{content:"\f2de"}.bi-cup-straw:before{content:"\f2df"}.bi-cup:before{content:"\f2e0"}.bi-cursor-fill:before{content:"\f2e1"}.bi-cursor-text:before{content:"\f2e2"}.bi-cursor:before{content:"\f2e3"}.bi-dash-circle-dotted:before{content:"\f2e4"}.bi-dash-circle-fill:before{content:"\f2e5"}.bi-dash-circle:before{content:"\f2e6"}.bi-dash-square-dotted:before{content:"\f2e7"}.bi-dash-square-fill:before{content:"\f2e8"}.bi-dash-square:before{content:"\f2e9"}.bi-dash:before{content:"\f2ea"}.bi-diagram-2-fill:before{content:"\f2eb"}.bi-diagram-2:before{content:"\f2ec"}.bi-diagram-3-fill:before{content:"\f2ed"}.bi-diagram-3:before{content:"\f2ee"}.bi-diamond-fill:before{content:"\f2ef"}.bi-diamond-half:before{content:"\f2f0"}.bi-diamond:before{content:"\f2f1"}.bi-dice-1-fill:before{content:"\f2f2"}.bi-dice-1:before{content:"\f2f3"}.bi-dice-2-fill:before{content:"\f2f4"}.bi-dice-2:before{content:"\f2f5"}.bi-dice-3-fill:before{content:"\f2f6"}.bi-dice-3:before{content:"\f2f7"}.bi-dice-4-fill:before{content:"\f2f8"}.bi-dice-4:before{content:"\f2f9"}.bi-dice-5-fill:before{content:"\f2fa"}.bi-dice-5:before{content:"\f2fb"}.bi-dice-6-fill:before{content:"\f2fc"}.bi-dice-6:before{content:"\f2fd"}.bi-disc-fill:before{content:"\f2fe"}.bi-disc:before{content:"\f2ff"}.bi-discord:before{content:"\f300"}.bi-display-fill:before{content:"\f301"}.bi-display:before{content:"\f302"}.bi-distribute-horizontal:before{content:"\f303"}.bi-distribute-vertical:before{content:"\f304"}.bi-door-closed-fill:before{content:"\f305"}.bi-door-closed:before{content:"\f306"}.bi-door-open-fill:before{content:"\f307"}.bi-door-open:before{content:"\f308"}.bi-dot:before{content:"\f309"}.bi-download:before{content:"\f30a"}.bi-droplet-fill:before{content:"\f30b"}.bi-droplet-half:before{content:"\f30c"}.bi-droplet:before{content:"\f30d"}.bi-earbuds:before{content:"\f30e"}.bi-easel-fill:before{content:"\f30f"}.bi-easel:before{content:"\f310"}.bi-egg-fill:before{content:"\f311"}.bi-egg-fried:before{content:"\f312"}.bi-egg:before{content:"\f313"}.bi-eject-fill:before{content:"\f314"}.bi-eject:before{content:"\f315"}.bi-emoji-angry-fill:before{content:"\f316"}.bi-emoji-angry:before{content:"\f317"}.bi-emoji-dizzy-fill:before{content:"\f318"}.bi-emoji-dizzy:before{content:"\f319"}.bi-emoji-expressionless-fill:before{content:"\f31a"}.bi-emoji-expressionless:before{content:"\f31b"}.bi-emoji-frown-fill:before{content:"\f31c"}.bi-emoji-frown:before{content:"\f31d"}.bi-emoji-heart-eyes-fill:before{content:"\f31e"}.bi-emoji-heart-eyes:before{content:"\f31f"}.bi-emoji-laughing-fill:before{content:"\f320"}.bi-emoji-laughing:before{content:"\f321"}.bi-emoji-neutral-fill:before{content:"\f322"}.bi-emoji-neutral:before{content:"\f323"}.bi-emoji-smile-fill:before{content:"\f324"}.bi-emoji-smile-upside-down-fill:before{content:"\f325"}.bi-emoji-smile-upside-down:before{content:"\f326"}.bi-emoji-smile:before{content:"\f327"}.bi-emoji-sunglasses-fill:before{content:"\f328"}.bi-emoji-sunglasses:before{content:"\f329"}.bi-emoji-wink-fill:before{content:"\f32a"}.bi-emoji-wink:before{content:"\f32b"}.bi-envelope-fill:before{content:"\f32c"}.bi-envelope-open-fill:before{content:"\f32d"}.bi-envelope-open:before{content:"\f32e"}.bi-envelope:before{content:"\f32f"}.bi-eraser-fill:before{content:"\f330"}.bi-eraser:before{content:"\f331"}.bi-exclamation-circle-fill:before{content:"\f332"}.bi-exclamation-circle:before{content:"\f333"}.bi-exclamation-diamond-fill:before{content:"\f334"}.bi-exclamation-diamond:before{content:"\f335"}.bi-exclamation-octagon-fill:before{content:"\f336"}.bi-exclamation-octagon:before{content:"\f337"}.bi-exclamation-square-fill:before{content:"\f338"}.bi-exclamation-square:before{content:"\f339"}.bi-exclamation-triangle-fill:before{content:"\f33a"}.bi-exclamation-triangle:before{content:"\f33b"}.bi-exclamation:before{content:"\f33c"}.bi-exclude:before{content:"\f33d"}.bi-eye-fill:before{content:"\f33e"}.bi-eye-slash-fill:before{content:"\f33f"}.bi-eye-slash:before{content:"\f340"}.bi-eye:before{content:"\f341"}.bi-eyedropper:before{content:"\f342"}.bi-eyeglasses:before{content:"\f343"}.bi-facebook:before{content:"\f344"}.bi-file-arrow-down-fill:before{content:"\f345"}.bi-file-arrow-down:before{content:"\f346"}.bi-file-arrow-up-fill:before{content:"\f347"}.bi-file-arrow-up:before{content:"\f348"}.bi-file-bar-graph-fill:before{content:"\f349"}.bi-file-bar-graph:before{content:"\f34a"}.bi-file-binary-fill:before{content:"\f34b"}.bi-file-binary:before{content:"\f34c"}.bi-file-break-fill:before{content:"\f34d"}.bi-file-break:before{content:"\f34e"}.bi-file-check-fill:before{content:"\f34f"}.bi-file-check:before{content:"\f350"}.bi-file-code-fill:before{content:"\f351"}.bi-file-code:before{content:"\f352"}.bi-file-diff-fill:before{content:"\f353"}.bi-file-diff:before{content:"\f354"}.bi-file-earmark-arrow-down-fill:before{content:"\f355"}.bi-file-earmark-arrow-down:before{content:"\f356"}.bi-file-earmark-arrow-up-fill:before{content:"\f357"}.bi-file-earmark-arrow-up:before{content:"\f358"}.bi-file-earmark-bar-graph-fill:before{content:"\f359"}.bi-file-earmark-bar-graph:before{content:"\f35a"}.bi-file-earmark-binary-fill:before{content:"\f35b"}.bi-file-earmark-binary:before{content:"\f35c"}.bi-file-earmark-break-fill:before{content:"\f35d"}.bi-file-earmark-break:before{content:"\f35e"}.bi-file-earmark-check-fill:before{content:"\f35f"}.bi-file-earmark-check:before{content:"\f360"}.bi-file-earmark-code-fill:before{content:"\f361"}.bi-file-earmark-code:before{content:"\f362"}.bi-file-earmark-diff-fill:before{content:"\f363"}.bi-file-earmark-diff:before{content:"\f364"}.bi-file-earmark-easel-fill:before{content:"\f365"}.bi-file-earmark-easel:before{content:"\f366"}.bi-file-earmark-excel-fill:before{content:"\f367"}.bi-file-earmark-excel:before{content:"\f368"}.bi-file-earmark-fill:before{content:"\f369"}.bi-file-earmark-font-fill:before{content:"\f36a"}.bi-file-earmark-font:before{content:"\f36b"}.bi-file-earmark-image-fill:before{content:"\f36c"}.bi-file-earmark-image:before{content:"\f36d"}.bi-file-earmark-lock-fill:before{content:"\f36e"}.bi-file-earmark-lock:before{content:"\f36f"}.bi-file-earmark-lock2-fill:before{content:"\f370"}.bi-file-earmark-lock2:before{content:"\f371"}.bi-file-earmark-medical-fill:before{content:"\f372"}.bi-file-earmark-medical:before{content:"\f373"}.bi-file-earmark-minus-fill:before{content:"\f374"}.bi-file-earmark-minus:before{content:"\f375"}.bi-file-earmark-music-fill:before{content:"\f376"}.bi-file-earmark-music:before{content:"\f377"}.bi-file-earmark-person-fill:before{content:"\f378"}.bi-file-earmark-person:before{content:"\f379"}.bi-file-earmark-play-fill:before{content:"\f37a"}.bi-file-earmark-play:before{content:"\f37b"}.bi-file-earmark-plus-fill:before{content:"\f37c"}.bi-file-earmark-plus:before{content:"\f37d"}.bi-file-earmark-post-fill:before{content:"\f37e"}.bi-file-earmark-post:before{content:"\f37f"}.bi-file-earmark-ppt-fill:before{content:"\f380"}.bi-file-earmark-ppt:before{content:"\f381"}.bi-file-earmark-richtext-fill:before{content:"\f382"}.bi-file-earmark-richtext:before{content:"\f383"}.bi-file-earmark-ruled-fill:before{content:"\f384"}.bi-file-earmark-ruled:before{content:"\f385"}.bi-file-earmark-slides-fill:before{content:"\f386"}.bi-file-earmark-slides:before{content:"\f387"}.bi-file-earmark-spreadsheet-fill:before{content:"\f388"}.bi-file-earmark-spreadsheet:before{content:"\f389"}.bi-file-earmark-text-fill:before{content:"\f38a"}.bi-file-earmark-text:before{content:"\f38b"}.bi-file-earmark-word-fill:before{content:"\f38c"}.bi-file-earmark-word:before{content:"\f38d"}.bi-file-earmark-x-fill:before{content:"\f38e"}.bi-file-earmark-x:before{content:"\f38f"}.bi-file-earmark-zip-fill:before{content:"\f390"}.bi-file-earmark-zip:before{content:"\f391"}.bi-file-earmark:before{content:"\f392"}.bi-file-easel-fill:before{content:"\f393"}.bi-file-easel:before{content:"\f394"}.bi-file-excel-fill:before{content:"\f395"}.bi-file-excel:before{content:"\f396"}.bi-file-fill:before{content:"\f397"}.bi-file-font-fill:before{content:"\f398"}.bi-file-font:before{content:"\f399"}.bi-file-image-fill:before{content:"\f39a"}.bi-file-image:before{content:"\f39b"}.bi-file-lock-fill:before{content:"\f39c"}.bi-file-lock:before{content:"\f39d"}.bi-file-lock2-fill:before{content:"\f39e"}.bi-file-lock2:before{content:"\f39f"}.bi-file-medical-fill:before{content:"\f3a0"}.bi-file-medical:before{content:"\f3a1"}.bi-file-minus-fill:before{content:"\f3a2"}.bi-file-minus:before{content:"\f3a3"}.bi-file-music-fill:before{content:"\f3a4"}.bi-file-music:before{content:"\f3a5"}.bi-file-person-fill:before{content:"\f3a6"}.bi-file-person:before{content:"\f3a7"}.bi-file-play-fill:before{content:"\f3a8"}.bi-file-play:before{content:"\f3a9"}.bi-file-plus-fill:before{content:"\f3aa"}.bi-file-plus:before{content:"\f3ab"}.bi-file-post-fill:before{content:"\f3ac"}.bi-file-post:before{content:"\f3ad"}.bi-file-ppt-fill:before{content:"\f3ae"}.bi-file-ppt:before{content:"\f3af"}.bi-file-richtext-fill:before{content:"\f3b0"}.bi-file-richtext:before{content:"\f3b1"}.bi-file-ruled-fill:before{content:"\f3b2"}.bi-file-ruled:before{content:"\f3b3"}.bi-file-slides-fill:before{content:"\f3b4"}.bi-file-slides:before{content:"\f3b5"}.bi-file-spreadsheet-fill:before{content:"\f3b6"}.bi-file-spreadsheet:before{content:"\f3b7"}.bi-file-text-fill:before{content:"\f3b8"}.bi-file-text:before{content:"\f3b9"}.bi-file-word-fill:before{content:"\f3ba"}.bi-file-word:before{content:"\f3bb"}.bi-file-x-fill:before{content:"\f3bc"}.bi-file-x:before{content:"\f3bd"}.bi-file-zip-fill:before{content:"\f3be"}.bi-file-zip:before{content:"\f3bf"}.bi-file:before{content:"\f3c0"}.bi-files-alt:before{content:"\f3c1"}.bi-files:before{content:"\f3c2"}.bi-film:before{content:"\f3c3"}.bi-filter-circle-fill:before{content:"\f3c4"}.bi-filter-circle:before{content:"\f3c5"}.bi-filter-left:before{content:"\f3c6"}.bi-filter-right:before{content:"\f3c7"}.bi-filter-square-fill:before{content:"\f3c8"}.bi-filter-square:before{content:"\f3c9"}.bi-filter:before{content:"\f3ca"}.bi-flag-fill:before{content:"\f3cb"}.bi-flag:before{content:"\f3cc"}.bi-flower1:before{content:"\f3cd"}.bi-flower2:before{content:"\f3ce"}.bi-flower3:before{content:"\f3cf"}.bi-folder-check:before{content:"\f3d0"}.bi-folder-fill:before{content:"\f3d1"}.bi-folder-minus:before{content:"\f3d2"}.bi-folder-plus:before{content:"\f3d3"}.bi-folder-symlink-fill:before{content:"\f3d4"}.bi-folder-symlink:before{content:"\f3d5"}.bi-folder-x:before{content:"\f3d6"}.bi-folder:before{content:"\f3d7"}.bi-folder2-open:before{content:"\f3d8"}.bi-folder2:before{content:"\f3d9"}.bi-fonts:before{content:"\f3da"}.bi-forward-fill:before{content:"\f3db"}.bi-forward:before{content:"\f3dc"}.bi-front:before{content:"\f3dd"}.bi-fullscreen-exit:before{content:"\f3de"}.bi-fullscreen:before{content:"\f3df"}.bi-funnel-fill:before{content:"\f3e0"}.bi-funnel:before{content:"\f3e1"}.bi-gear-fill:before{content:"\f3e2"}.bi-gear-wide-connected:before{content:"\f3e3"}.bi-gear-wide:before{content:"\f3e4"}.bi-gear:before{content:"\f3e5"}.bi-gem:before{content:"\f3e6"}.bi-geo-alt-fill:before{content:"\f3e7"}.bi-geo-alt:before{content:"\f3e8"}.bi-geo-fill:before{content:"\f3e9"}.bi-geo:before{content:"\f3ea"}.bi-gift-fill:before{content:"\f3eb"}.bi-gift:before{content:"\f3ec"}.bi-github:before{content:"\f3ed"}.bi-globe:before{content:"\f3ee"}.bi-globe2:before{content:"\f3ef"}.bi-google:before{content:"\f3f0"}.bi-graph-down:before{content:"\f3f1"}.bi-graph-up:before{content:"\f3f2"}.bi-grid-1x2-fill:before{content:"\f3f3"}.bi-grid-1x2:before{content:"\f3f4"}.bi-grid-3x2-gap-fill:before{content:"\f3f5"}.bi-grid-3x2-gap:before{content:"\f3f6"}.bi-grid-3x2:before{content:"\f3f7"}.bi-grid-3x3-gap-fill:before{content:"\f3f8"}.bi-grid-3x3-gap:before{content:"\f3f9"}.bi-grid-3x3:before{content:"\f3fa"}.bi-grid-fill:before{content:"\f3fb"}.bi-grid:before{content:"\f3fc"}.bi-grip-horizontal:before{content:"\f3fd"}.bi-grip-vertical:before{content:"\f3fe"}.bi-hammer:before{content:"\f3ff"}.bi-hand-index-fill:before{content:"\f400"}.bi-hand-index-thumb-fill:before{content:"\f401"}.bi-hand-index-thumb:before{content:"\f402"}.bi-hand-index:before{content:"\f403"}.bi-hand-thumbs-down-fill:before{content:"\f404"}.bi-hand-thumbs-down:before{content:"\f405"}.bi-hand-thumbs-up-fill:before{content:"\f406"}.bi-hand-thumbs-up:before{content:"\f407"}.bi-handbag-fill:before{content:"\f408"}.bi-handbag:before{content:"\f409"}.bi-hash:before{content:"\f40a"}.bi-hdd-fill:before{content:"\f40b"}.bi-hdd-network-fill:before{content:"\f40c"}.bi-hdd-network:before{content:"\f40d"}.bi-hdd-rack-fill:before{content:"\f40e"}.bi-hdd-rack:before{content:"\f40f"}.bi-hdd-stack-fill:before{content:"\f410"}.bi-hdd-stack:before{content:"\f411"}.bi-hdd:before{content:"\f412"}.bi-headphones:before{content:"\f413"}.bi-headset:before{content:"\f414"}.bi-heart-fill:before{content:"\f415"}.bi-heart-half:before{content:"\f416"}.bi-heart:before{content:"\f417"}.bi-heptagon-fill:before{content:"\f418"}.bi-heptagon-half:before{content:"\f419"}.bi-heptagon:before{content:"\f41a"}.bi-hexagon-fill:before{content:"\f41b"}.bi-hexagon-half:before{content:"\f41c"}.bi-hexagon:before{content:"\f41d"}.bi-hourglass-bottom:before{content:"\f41e"}.bi-hourglass-split:before{content:"\f41f"}.bi-hourglass-top:before{content:"\f420"}.bi-hourglass:before{content:"\f421"}.bi-house-door-fill:before{content:"\f422"}.bi-house-door:before{content:"\f423"}.bi-house-fill:before{content:"\f424"}.bi-house:before{content:"\f425"}.bi-hr:before{content:"\f426"}.bi-hurricane:before{content:"\f427"}.bi-image-alt:before{content:"\f428"}.bi-image-fill:before{content:"\f429"}.bi-image:before{content:"\f42a"}.bi-images:before{content:"\f42b"}.bi-inbox-fill:before{content:"\f42c"}.bi-inbox:before{content:"\f42d"}.bi-inboxes-fill:before{content:"\f42e"}.bi-inboxes:before{content:"\f42f"}.bi-info-circle-fill:before{content:"\f430"}.bi-info-circle:before{content:"\f431"}.bi-info-square-fill:before{content:"\f432"}.bi-info-square:before{content:"\f433"}.bi-info:before{content:"\f434"}.bi-input-cursor-text:before{content:"\f435"}.bi-input-cursor:before{content:"\f436"}.bi-instagram:before{content:"\f437"}.bi-intersect:before{content:"\f438"}.bi-journal-album:before{content:"\f439"}.bi-journal-arrow-down:before{content:"\f43a"}.bi-journal-arrow-up:before{content:"\f43b"}.bi-journal-bookmark-fill:before{content:"\f43c"}.bi-journal-bookmark:before{content:"\f43d"}.bi-journal-check:before{content:"\f43e"}.bi-journal-code:before{content:"\f43f"}.bi-journal-medical:before{content:"\f440"}.bi-journal-minus:before{content:"\f441"}.bi-journal-plus:before{content:"\f442"}.bi-journal-richtext:before{content:"\f443"}.bi-journal-text:before{content:"\f444"}.bi-journal-x:before{content:"\f445"}.bi-journal:before{content:"\f446"}.bi-journals:before{content:"\f447"}.bi-joystick:before{content:"\f448"}.bi-justify-left:before{content:"\f449"}.bi-justify-right:before{content:"\f44a"}.bi-justify:before{content:"\f44b"}.bi-kanban-fill:before{content:"\f44c"}.bi-kanban:before{content:"\f44d"}.bi-key-fill:before{content:"\f44e"}.bi-key:before{content:"\f44f"}.bi-keyboard-fill:before{content:"\f450"}.bi-keyboard:before{content:"\f451"}.bi-ladder:before{content:"\f452"}.bi-lamp-fill:before{content:"\f453"}.bi-lamp:before{content:"\f454"}.bi-laptop-fill:before{content:"\f455"}.bi-laptop:before{content:"\f456"}.bi-layer-backward:before{content:"\f457"}.bi-layer-forward:before{content:"\f458"}.bi-layers-fill:before{content:"\f459"}.bi-layers-half:before{content:"\f45a"}.bi-layers:before{content:"\f45b"}.bi-layout-sidebar-inset-reverse:before{content:"\f45c"}.bi-layout-sidebar-inset:before{content:"\f45d"}.bi-layout-sidebar-reverse:before{content:"\f45e"}.bi-layout-sidebar:before{content:"\f45f"}.bi-layout-split:before{content:"\f460"}.bi-layout-text-sidebar-reverse:before{content:"\f461"}.bi-layout-text-sidebar:before{content:"\f462"}.bi-layout-text-window-reverse:before{content:"\f463"}.bi-layout-text-window:before{content:"\f464"}.bi-layout-three-columns:before{content:"\f465"}.bi-layout-wtf:before{content:"\f466"}.bi-life-preserver:before{content:"\f467"}.bi-lightbulb-fill:before{content:"\f468"}.bi-lightbulb-off-fill:before{content:"\f469"}.bi-lightbulb-off:before{content:"\f46a"}.bi-lightbulb:before{content:"\f46b"}.bi-lightning-charge-fill:before{content:"\f46c"}.bi-lightning-charge:before{content:"\f46d"}.bi-lightning-fill:before{content:"\f46e"}.bi-lightning:before{content:"\f46f"}.bi-link-45deg:before{content:"\f470"}.bi-link:before{content:"\f471"}.bi-linkedin:before{content:"\f472"}.bi-list-check:before{content:"\f473"}.bi-list-nested:before{content:"\f474"}.bi-list-ol:before{content:"\f475"}.bi-list-stars:before{content:"\f476"}.bi-list-task:before{content:"\f477"}.bi-list-ul:before{content:"\f478"}.bi-list:before{content:"\f479"}.bi-lock-fill:before{content:"\f47a"}.bi-lock:before{content:"\f47b"}.bi-mailbox:before{content:"\f47c"}.bi-mailbox2:before{content:"\f47d"}.bi-map-fill:before{content:"\f47e"}.bi-map:before{content:"\f47f"}.bi-markdown-fill:before{content:"\f480"}.bi-markdown:before{content:"\f481"}.bi-mask:before{content:"\f482"}.bi-megaphone-fill:before{content:"\f483"}.bi-megaphone:before{content:"\f484"}.bi-menu-app-fill:before{content:"\f485"}.bi-menu-app:before{content:"\f486"}.bi-menu-button-fill:before{content:"\f487"}.bi-menu-button-wide-fill:before{content:"\f488"}.bi-menu-button-wide:before{content:"\f489"}.bi-menu-button:before{content:"\f48a"}.bi-menu-down:before{content:"\f48b"}.bi-menu-up:before{content:"\f48c"}.bi-mic-fill:before{content:"\f48d"}.bi-mic-mute-fill:before{content:"\f48e"}.bi-mic-mute:before{content:"\f48f"}.bi-mic:before{content:"\f490"}.bi-minecart-loaded:before{content:"\f491"}.bi-minecart:before{content:"\f492"}.bi-moisture:before{content:"\f493"}.bi-moon-fill:before{content:"\f494"}.bi-moon-stars-fill:before{content:"\f495"}.bi-moon-stars:before{content:"\f496"}.bi-moon:before{content:"\f497"}.bi-mouse-fill:before{content:"\f498"}.bi-mouse:before{content:"\f499"}.bi-mouse2-fill:before{content:"\f49a"}.bi-mouse2:before{content:"\f49b"}.bi-mouse3-fill:before{content:"\f49c"}.bi-mouse3:before{content:"\f49d"}.bi-music-note-beamed:before{content:"\f49e"}.bi-music-note-list:before{content:"\f49f"}.bi-music-note:before{content:"\f4a0"}.bi-music-player-fill:before{content:"\f4a1"}.bi-music-player:before{content:"\f4a2"}.bi-newspaper:before{content:"\f4a3"}.bi-node-minus-fill:before{content:"\f4a4"}.bi-node-minus:before{content:"\f4a5"}.bi-node-plus-fill:before{content:"\f4a6"}.bi-node-plus:before{content:"\f4a7"}.bi-nut-fill:before{content:"\f4a8"}.bi-nut:before{content:"\f4a9"}.bi-octagon-fill:before{content:"\f4aa"}.bi-octagon-half:before{content:"\f4ab"}.bi-octagon:before{content:"\f4ac"}.bi-option:before{content:"\f4ad"}.bi-outlet:before{content:"\f4ae"}.bi-paint-bucket:before{content:"\f4af"}.bi-palette-fill:before{content:"\f4b0"}.bi-palette:before{content:"\f4b1"}.bi-palette2:before{content:"\f4b2"}.bi-paperclip:before{content:"\f4b3"}.bi-paragraph:before{content:"\f4b4"}.bi-patch-check-fill:before{content:"\f4b5"}.bi-patch-check:before{content:"\f4b6"}.bi-patch-exclamation-fill:before{content:"\f4b7"}.bi-patch-exclamation:before{content:"\f4b8"}.bi-patch-minus-fill:before{content:"\f4b9"}.bi-patch-minus:before{content:"\f4ba"}.bi-patch-plus-fill:before{content:"\f4bb"}.bi-patch-plus:before{content:"\f4bc"}.bi-patch-question-fill:before{content:"\f4bd"}.bi-patch-question:before{content:"\f4be"}.bi-pause-btn-fill:before{content:"\f4bf"}.bi-pause-btn:before{content:"\f4c0"}.bi-pause-circle-fill:before{content:"\f4c1"}.bi-pause-circle:before{content:"\f4c2"}.bi-pause-fill:before{content:"\f4c3"}.bi-pause:before{content:"\f4c4"}.bi-peace-fill:before{content:"\f4c5"}.bi-peace:before{content:"\f4c6"}.bi-pen-fill:before{content:"\f4c7"}.bi-pen:before{content:"\f4c8"}.bi-pencil-fill:before{content:"\f4c9"}.bi-pencil-square:before{content:"\f4ca"}.bi-pencil:before{content:"\f4cb"}.bi-pentagon-fill:before{content:"\f4cc"}.bi-pentagon-half:before{content:"\f4cd"}.bi-pentagon:before{content:"\f4ce"}.bi-people-fill:before{content:"\f4cf"}.bi-people:before{content:"\f4d0"}.bi-percent:before{content:"\f4d1"}.bi-person-badge-fill:before{content:"\f4d2"}.bi-person-badge:before{content:"\f4d3"}.bi-person-bounding-box:before{content:"\f4d4"}.bi-person-check-fill:before{content:"\f4d5"}.bi-person-check:before{content:"\f4d6"}.bi-person-circle:before{content:"\f4d7"}.bi-person-dash-fill:before{content:"\f4d8"}.bi-person-dash:before{content:"\f4d9"}.bi-person-fill:before{content:"\f4da"}.bi-person-lines-fill:before{content:"\f4db"}.bi-person-plus-fill:before{content:"\f4dc"}.bi-person-plus:before{content:"\f4dd"}.bi-person-square:before{content:"\f4de"}.bi-person-x-fill:before{content:"\f4df"}.bi-person-x:before{content:"\f4e0"}.bi-person:before{content:"\f4e1"}.bi-phone-fill:before{content:"\f4e2"}.bi-phone-landscape-fill:before{content:"\f4e3"}.bi-phone-landscape:before{content:"\f4e4"}.bi-phone-vibrate-fill:before{content:"\f4e5"}.bi-phone-vibrate:before{content:"\f4e6"}.bi-phone:before{content:"\f4e7"}.bi-pie-chart-fill:before{content:"\f4e8"}.bi-pie-chart:before{content:"\f4e9"}.bi-pin-angle-fill:before{content:"\f4ea"}.bi-pin-angle:before{content:"\f4eb"}.bi-pin-fill:before{content:"\f4ec"}.bi-pin:before{content:"\f4ed"}.bi-pip-fill:before{content:"\f4ee"}.bi-pip:before{content:"\f4ef"}.bi-play-btn-fill:before{content:"\f4f0"}.bi-play-btn:before{content:"\f4f1"}.bi-play-circle-fill:before{content:"\f4f2"}.bi-play-circle:before{content:"\f4f3"}.bi-play-fill:before{content:"\f4f4"}.bi-play:before{content:"\f4f5"}.bi-plug-fill:before{content:"\f4f6"}.bi-plug:before{content:"\f4f7"}.bi-plus-circle-dotted:before{content:"\f4f8"}.bi-plus-circle-fill:before{content:"\f4f9"}.bi-plus-circle:before{content:"\f4fa"}.bi-plus-square-dotted:before{content:"\f4fb"}.bi-plus-square-fill:before{content:"\f4fc"}.bi-plus-square:before{content:"\f4fd"}.bi-plus:before{content:"\f4fe"}.bi-power:before{content:"\f4ff"}.bi-printer-fill:before{content:"\f500"}.bi-printer:before{content:"\f501"}.bi-puzzle-fill:before{content:"\f502"}.bi-puzzle:before{content:"\f503"}.bi-question-circle-fill:before{content:"\f504"}.bi-question-circle:before{content:"\f505"}.bi-question-diamond-fill:before{content:"\f506"}.bi-question-diamond:before{content:"\f507"}.bi-question-octagon-fill:before{content:"\f508"}.bi-question-octagon:before{content:"\f509"}.bi-question-square-fill:before{content:"\f50a"}.bi-question-square:before{content:"\f50b"}.bi-question:before{content:"\f50c"}.bi-rainbow:before{content:"\f50d"}.bi-receipt-cutoff:before{content:"\f50e"}.bi-receipt:before{content:"\f50f"}.bi-reception-0:before{content:"\f510"}.bi-reception-1:before{content:"\f511"}.bi-reception-2:before{content:"\f512"}.bi-reception-3:before{content:"\f513"}.bi-reception-4:before{content:"\f514"}.bi-record-btn-fill:before{content:"\f515"}.bi-record-btn:before{content:"\f516"}.bi-record-circle-fill:before{content:"\f517"}.bi-record-circle:before{content:"\f518"}.bi-record-fill:before{content:"\f519"}.bi-record:before{content:"\f51a"}.bi-record2-fill:before{content:"\f51b"}.bi-record2:before{content:"\f51c"}.bi-reply-all-fill:before{content:"\f51d"}.bi-reply-all:before{content:"\f51e"}.bi-reply-fill:before{content:"\f51f"}.bi-reply:before{content:"\f520"}.bi-rss-fill:before{content:"\f521"}.bi-rss:before{content:"\f522"}.bi-rulers:before{content:"\f523"}.bi-save-fill:before{content:"\f524"}.bi-save:before{content:"\f525"}.bi-save2-fill:before{content:"\f526"}.bi-save2:before{content:"\f527"}.bi-scissors:before{content:"\f528"}.bi-screwdriver:before{content:"\f529"}.bi-search:before{content:"\f52a"}.bi-segmented-nav:before{content:"\f52b"}.bi-server:before{content:"\f52c"}.bi-share-fill:before{content:"\f52d"}.bi-share:before{content:"\f52e"}.bi-shield-check:before{content:"\f52f"}.bi-shield-exclamation:before{content:"\f530"}.bi-shield-fill-check:before{content:"\f531"}.bi-shield-fill-exclamation:before{content:"\f532"}.bi-shield-fill-minus:before{content:"\f533"}.bi-shield-fill-plus:before{content:"\f534"}.bi-shield-fill-x:before{content:"\f535"}.bi-shield-fill:before{content:"\f536"}.bi-shield-lock-fill:before{content:"\f537"}.bi-shield-lock:before{content:"\f538"}.bi-shield-minus:before{content:"\f539"}.bi-shield-plus:before{content:"\f53a"}.bi-shield-shaded:before{content:"\f53b"}.bi-shield-slash-fill:before{content:"\f53c"}.bi-shield-slash:before{content:"\f53d"}.bi-shield-x:before{content:"\f53e"}.bi-shield:before{content:"\f53f"}.bi-shift-fill:before{content:"\f540"}.bi-shift:before{content:"\f541"}.bi-shop-window:before{content:"\f542"}.bi-shop:before{content:"\f543"}.bi-shuffle:before{content:"\f544"}.bi-signpost-2-fill:before{content:"\f545"}.bi-signpost-2:before{content:"\f546"}.bi-signpost-fill:before{content:"\f547"}.bi-signpost-split-fill:before{content:"\f548"}.bi-signpost-split:before{content:"\f549"}.bi-signpost:before{content:"\f54a"}.bi-sim-fill:before{content:"\f54b"}.bi-sim:before{content:"\f54c"}.bi-skip-backward-btn-fill:before{content:"\f54d"}.bi-skip-backward-btn:before{content:"\f54e"}.bi-skip-backward-circle-fill:before{content:"\f54f"}.bi-skip-backward-circle:before{content:"\f550"}.bi-skip-backward-fill:before{content:"\f551"}.bi-skip-backward:before{content:"\f552"}.bi-skip-end-btn-fill:before{content:"\f553"}.bi-skip-end-btn:before{content:"\f554"}.bi-skip-end-circle-fill:before{content:"\f555"}.bi-skip-end-circle:before{content:"\f556"}.bi-skip-end-fill:before{content:"\f557"}.bi-skip-end:before{content:"\f558"}.bi-skip-forward-btn-fill:before{content:"\f559"}.bi-skip-forward-btn:before{content:"\f55a"}.bi-skip-forward-circle-fill:before{content:"\f55b"}.bi-skip-forward-circle:before{content:"\f55c"}.bi-skip-forward-fill:before{content:"\f55d"}.bi-skip-forward:before{content:"\f55e"}.bi-skip-start-btn-fill:before{content:"\f55f"}.bi-skip-start-btn:before{content:"\f560"}.bi-skip-start-circle-fill:before{content:"\f561"}.bi-skip-start-circle:before{content:"\f562"}.bi-skip-start-fill:before{content:"\f563"}.bi-skip-start:before{content:"\f564"}.bi-slack:before{content:"\f565"}.bi-slash-circle-fill:before{content:"\f566"}.bi-slash-circle:before{content:"\f567"}.bi-slash-square-fill:before{content:"\f568"}.bi-slash-square:before{content:"\f569"}.bi-slash:before{content:"\f56a"}.bi-sliders:before{content:"\f56b"}.bi-smartwatch:before{content:"\f56c"}.bi-snow:before{content:"\f56d"}.bi-snow2:before{content:"\f56e"}.bi-snow3:before{content:"\f56f"}.bi-sort-alpha-down-alt:before{content:"\f570"}.bi-sort-alpha-down:before{content:"\f571"}.bi-sort-alpha-up-alt:before{content:"\f572"}.bi-sort-alpha-up:before{content:"\f573"}.bi-sort-down-alt:before{content:"\f574"}.bi-sort-down:before{content:"\f575"}.bi-sort-numeric-down-alt:before{content:"\f576"}.bi-sort-numeric-down:before{content:"\f577"}.bi-sort-numeric-up-alt:before{content:"\f578"}.bi-sort-numeric-up:before{content:"\f579"}.bi-sort-up-alt:before{content:"\f57a"}.bi-sort-up:before{content:"\f57b"}.bi-soundwave:before{content:"\f57c"}.bi-speaker-fill:before{content:"\f57d"}.bi-speaker:before{content:"\f57e"}.bi-speedometer:before{content:"\f57f"}.bi-speedometer2:before{content:"\f580"}.bi-spellcheck:before{content:"\f581"}.bi-square-fill:before{content:"\f582"}.bi-square-half:before{content:"\f583"}.bi-square:before{content:"\f584"}.bi-stack:before{content:"\f585"}.bi-star-fill:before{content:"\f586"}.bi-star-half:before{content:"\f587"}.bi-star:before{content:"\f588"}.bi-stars:before{content:"\f589"}.bi-stickies-fill:before{content:"\f58a"}.bi-stickies:before{content:"\f58b"}.bi-sticky-fill:before{content:"\f58c"}.bi-sticky:before{content:"\f58d"}.bi-stop-btn-fill:before{content:"\f58e"}.bi-stop-btn:before{content:"\f58f"}.bi-stop-circle-fill:before{content:"\f590"}.bi-stop-circle:before{content:"\f591"}.bi-stop-fill:before{content:"\f592"}.bi-stop:before{content:"\f593"}.bi-stoplights-fill:before{content:"\f594"}.bi-stoplights:before{content:"\f595"}.bi-stopwatch-fill:before{content:"\f596"}.bi-stopwatch:before{content:"\f597"}.bi-subtract:before{content:"\f598"}.bi-suit-club-fill:before{content:"\f599"}.bi-suit-club:before{content:"\f59a"}.bi-suit-diamond-fill:before{content:"\f59b"}.bi-suit-diamond:before{content:"\f59c"}.bi-suit-heart-fill:before{content:"\f59d"}.bi-suit-heart:before{content:"\f59e"}.bi-suit-spade-fill:before{content:"\f59f"}.bi-suit-spade:before{content:"\f5a0"}.bi-sun-fill:before{content:"\f5a1"}.bi-sun:before{content:"\f5a2"}.bi-sunglasses:before{content:"\f5a3"}.bi-sunrise-fill:before{content:"\f5a4"}.bi-sunrise:before{content:"\f5a5"}.bi-sunset-fill:before{content:"\f5a6"}.bi-sunset:before{content:"\f5a7"}.bi-symmetry-horizontal:before{content:"\f5a8"}.bi-symmetry-vertical:before{content:"\f5a9"}.bi-table:before{content:"\f5aa"}.bi-tablet-fill:before{content:"\f5ab"}.bi-tablet-landscape-fill:before{content:"\f5ac"}.bi-tablet-landscape:before{content:"\f5ad"}.bi-tablet:before{content:"\f5ae"}.bi-tag-fill:before{content:"\f5af"}.bi-tag:before{content:"\f5b0"}.bi-tags-fill:before{content:"\f5b1"}.bi-tags:before{content:"\f5b2"}.bi-telegram:before{content:"\f5b3"}.bi-telephone-fill:before{content:"\f5b4"}.bi-telephone-forward-fill:before{content:"\f5b5"}.bi-telephone-forward:before{content:"\f5b6"}.bi-telephone-inbound-fill:before{content:"\f5b7"}.bi-telephone-inbound:before{content:"\f5b8"}.bi-telephone-minus-fill:before{content:"\f5b9"}.bi-telephone-minus:before{content:"\f5ba"}.bi-telephone-outbound-fill:before{content:"\f5bb"}.bi-telephone-outbound:before{content:"\f5bc"}.bi-telephone-plus-fill:before{content:"\f5bd"}.bi-telephone-plus:before{content:"\f5be"}.bi-telephone-x-fill:before{content:"\f5bf"}.bi-telephone-x:before{content:"\f5c0"}.bi-telephone:before{content:"\f5c1"}.bi-terminal-fill:before{content:"\f5c2"}.bi-terminal:before{content:"\f5c3"}.bi-text-center:before{content:"\f5c4"}.bi-text-indent-left:before{content:"\f5c5"}.bi-text-indent-right:before{content:"\f5c6"}.bi-text-left:before{content:"\f5c7"}.bi-text-paragraph:before{content:"\f5c8"}.bi-text-right:before{content:"\f5c9"}.bi-textarea-resize:before{content:"\f5ca"}.bi-textarea-t:before{content:"\f5cb"}.bi-textarea:before{content:"\f5cc"}.bi-thermometer-half:before{content:"\f5cd"}.bi-thermometer-high:before{content:"\f5ce"}.bi-thermometer-low:before{content:"\f5cf"}.bi-thermometer-snow:before{content:"\f5d0"}.bi-thermometer-sun:before{content:"\f5d1"}.bi-thermometer:before{content:"\f5d2"}.bi-three-dots-vertical:before{content:"\f5d3"}.bi-three-dots:before{content:"\f5d4"}.bi-toggle-off:before{content:"\f5d5"}.bi-toggle-on:before{content:"\f5d6"}.bi-toggle2-off:before{content:"\f5d7"}.bi-toggle2-on:before{content:"\f5d8"}.bi-toggles:before{content:"\f5d9"}.bi-toggles2:before{content:"\f5da"}.bi-tools:before{content:"\f5db"}.bi-tornado:before{content:"\f5dc"}.bi-trash-fill:before{content:"\f5dd"}.bi-trash:before{content:"\f5de"}.bi-trash2-fill:before{content:"\f5df"}.bi-trash2:before{content:"\f5e0"}.bi-tree-fill:before{content:"\f5e1"}.bi-tree:before{content:"\f5e2"}.bi-triangle-fill:before{content:"\f5e3"}.bi-triangle-half:before{content:"\f5e4"}.bi-triangle:before{content:"\f5e5"}.bi-trophy-fill:before{content:"\f5e6"}.bi-trophy:before{content:"\f5e7"}.bi-tropical-storm:before{content:"\f5e8"}.bi-truck-flatbed:before{content:"\f5e9"}.bi-truck:before{content:"\f5ea"}.bi-tsunami:before{content:"\f5eb"}.bi-tv-fill:before{content:"\f5ec"}.bi-tv:before{content:"\f5ed"}.bi-twitch:before{content:"\f5ee"}.bi-twitter:before{content:"\f5ef"}.bi-type-bold:before{content:"\f5f0"}.bi-type-h1:before{content:"\f5f1"}.bi-type-h2:before{content:"\f5f2"}.bi-type-h3:before{content:"\f5f3"}.bi-type-italic:before{content:"\f5f4"}.bi-type-strikethrough:before{content:"\f5f5"}.bi-type-underline:before{content:"\f5f6"}.bi-type:before{content:"\f5f7"}.bi-ui-checks-grid:before{content:"\f5f8"}.bi-ui-checks:before{content:"\f5f9"}.bi-ui-radios-grid:before{content:"\f5fa"}.bi-ui-radios:before{content:"\f5fb"}.bi-umbrella-fill:before{content:"\f5fc"}.bi-umbrella:before{content:"\f5fd"}.bi-union:before{content:"\f5fe"}.bi-unlock-fill:before{content:"\f5ff"}.bi-unlock:before{content:"\f600"}.bi-upc-scan:before{content:"\f601"}.bi-upc:before{content:"\f602"}.bi-upload:before{content:"\f603"}.bi-vector-pen:before{content:"\f604"}.bi-view-list:before{content:"\f605"}.bi-view-stacked:before{content:"\f606"}.bi-vinyl-fill:before{content:"\f607"}.bi-vinyl:before{content:"\f608"}.bi-voicemail:before{content:"\f609"}.bi-volume-down-fill:before{content:"\f60a"}.bi-volume-down:before{content:"\f60b"}.bi-volume-mute-fill:before{content:"\f60c"}.bi-volume-mute:before{content:"\f60d"}.bi-volume-off-fill:before{content:"\f60e"}.bi-volume-off:before{content:"\f60f"}.bi-volume-up-fill:before{content:"\f610"}.bi-volume-up:before{content:"\f611"}.bi-vr:before{content:"\f612"}.bi-wallet-fill:before{content:"\f613"}.bi-wallet:before{content:"\f614"}.bi-wallet2:before{content:"\f615"}.bi-watch:before{content:"\f616"}.bi-water:before{content:"\f617"}.bi-whatsapp:before{content:"\f618"}.bi-wifi-1:before{content:"\f619"}.bi-wifi-2:before{content:"\f61a"}.bi-wifi-off:before{content:"\f61b"}.bi-wifi:before{content:"\f61c"}.bi-wind:before{content:"\f61d"}.bi-window-dock:before{content:"\f61e"}.bi-window-sidebar:before{content:"\f61f"}.bi-window:before{content:"\f620"}.bi-wrench:before{content:"\f621"}.bi-x-circle-fill:before{content:"\f622"}.bi-x-circle:before{content:"\f623"}.bi-x-diamond-fill:before{content:"\f624"}.bi-x-diamond:before{content:"\f625"}.bi-x-octagon-fill:before{content:"\f626"}.bi-x-octagon:before{content:"\f627"}.bi-x-square-fill:before{content:"\f628"}.bi-x-square:before{content:"\f629"}.bi-x:before{content:"\f62a"}.bi-youtube:before{content:"\f62b"}.bi-zoom-in:before{content:"\f62c"}.bi-zoom-out:before{content:"\f62d"}.bi-bank:before{content:"\f62e"}.bi-bank2:before{content:"\f62f"}.bi-bell-slash-fill:before{content:"\f630"}.bi-bell-slash:before{content:"\f631"}.bi-cash-coin:before{content:"\f632"}.bi-check-lg:before{content:"\f633"}.bi-coin:before{content:"\f634"}.bi-currency-bitcoin:before{content:"\f635"}.bi-currency-dollar:before{content:"\f636"}.bi-currency-euro:before{content:"\f637"}.bi-currency-exchange:before{content:"\f638"}.bi-currency-pound:before{content:"\f639"}.bi-currency-yen:before{content:"\f63a"}.bi-dash-lg:before{content:"\f63b"}.bi-exclamation-lg:before{content:"\f63c"}.bi-file-earmark-pdf-fill:before{content:"\f63d"}.bi-file-earmark-pdf:before{content:"\f63e"}.bi-file-pdf-fill:before{content:"\f63f"}.bi-file-pdf:before{content:"\f640"}.bi-gender-ambiguous:before{content:"\f641"}.bi-gender-female:before{content:"\f642"}.bi-gender-male:before{content:"\f643"}.bi-gender-trans:before{content:"\f644"}.bi-headset-vr:before{content:"\f645"}.bi-info-lg:before{content:"\f646"}.bi-mastodon:before{content:"\f647"}.bi-messenger:before{content:"\f648"}.bi-piggy-bank-fill:before{content:"\f649"}.bi-piggy-bank:before{content:"\f64a"}.bi-pin-map-fill:before{content:"\f64b"}.bi-pin-map:before{content:"\f64c"}.bi-plus-lg:before{content:"\f64d"}.bi-question-lg:before{content:"\f64e"}.bi-recycle:before{content:"\f64f"}.bi-reddit:before{content:"\f650"}.bi-safe-fill:before{content:"\f651"}.bi-safe2-fill:before{content:"\f652"}.bi-safe2:before{content:"\f653"}.bi-sd-card-fill:before{content:"\f654"}.bi-sd-card:before{content:"\f655"}.bi-skype:before{content:"\f656"}.bi-slash-lg:before{content:"\f657"}.bi-translate:before{content:"\f658"}.bi-x-lg:before{content:"\f659"}.bi-safe:before{content:"\f65a"}.bi-apple:before{content:"\f65b"}.bi-microsoft:before{content:"\f65d"}.bi-windows:before{content:"\f65e"}.bi-behance:before{content:"\f65c"}.bi-dribbble:before{content:"\f65f"}.bi-line:before{content:"\f660"}.bi-medium:before{content:"\f661"}.bi-paypal:before{content:"\f662"}.bi-pinterest:before{content:"\f663"}.bi-signal:before{content:"\f664"}.bi-snapchat:before{content:"\f665"}.bi-spotify:before{content:"\f666"}.bi-stack-overflow:before{content:"\f667"}.bi-strava:before{content:"\f668"}.bi-wordpress:before{content:"\f669"}.bi-vimeo:before{content:"\f66a"}.bi-activity:before{content:"\f66b"}.bi-easel2-fill:before{content:"\f66c"}.bi-easel2:before{content:"\f66d"}.bi-easel3-fill:before{content:"\f66e"}.bi-easel3:before{content:"\f66f"}.bi-fan:before{content:"\f670"}.bi-fingerprint:before{content:"\f671"}.bi-graph-down-arrow:before{content:"\f672"}.bi-graph-up-arrow:before{content:"\f673"}.bi-hypnotize:before{content:"\f674"}.bi-magic:before{content:"\f675"}.bi-person-rolodex:before{content:"\f676"}.bi-person-video:before{content:"\f677"}.bi-person-video2:before{content:"\f678"}.bi-person-video3:before{content:"\f679"}.bi-person-workspace:before{content:"\f67a"}.bi-radioactive:before{content:"\f67b"}.bi-webcam-fill:before{content:"\f67c"}.bi-webcam:before{content:"\f67d"}.bi-yin-yang:before{content:"\f67e"}.bi-bandaid-fill:before{content:"\f680"}.bi-bandaid:before{content:"\f681"}.bi-bluetooth:before{content:"\f682"}.bi-body-text:before{content:"\f683"}.bi-boombox:before{content:"\f684"}.bi-boxes:before{content:"\f685"}.bi-dpad-fill:before{content:"\f686"}.bi-dpad:before{content:"\f687"}.bi-ear-fill:before{content:"\f688"}.bi-ear:before{content:"\f689"}.bi-envelope-check-fill:before{content:"\f68b"}.bi-envelope-check:before{content:"\f68c"}.bi-envelope-dash-fill:before{content:"\f68e"}.bi-envelope-dash:before{content:"\f68f"}.bi-envelope-exclamation-fill:before{content:"\f691"}.bi-envelope-exclamation:before{content:"\f692"}.bi-envelope-plus-fill:before{content:"\f693"}.bi-envelope-plus:before{content:"\f694"}.bi-envelope-slash-fill:before{content:"\f696"}.bi-envelope-slash:before{content:"\f697"}.bi-envelope-x-fill:before{content:"\f699"}.bi-envelope-x:before{content:"\f69a"}.bi-explicit-fill:before{content:"\f69b"}.bi-explicit:before{content:"\f69c"}.bi-git:before{content:"\f69d"}.bi-infinity:before{content:"\f69e"}.bi-list-columns-reverse:before{content:"\f69f"}.bi-list-columns:before{content:"\f6a0"}.bi-meta:before{content:"\f6a1"}.bi-nintendo-switch:before{content:"\f6a4"}.bi-pc-display-horizontal:before{content:"\f6a5"}.bi-pc-display:before{content:"\f6a6"}.bi-pc-horizontal:before{content:"\f6a7"}.bi-pc:before{content:"\f6a8"}.bi-playstation:before{content:"\f6a9"}.bi-plus-slash-minus:before{content:"\f6aa"}.bi-projector-fill:before{content:"\f6ab"}.bi-projector:before{content:"\f6ac"}.bi-qr-code-scan:before{content:"\f6ad"}.bi-qr-code:before{content:"\f6ae"}.bi-quora:before{content:"\f6af"}.bi-quote:before{content:"\f6b0"}.bi-robot:before{content:"\f6b1"}.bi-send-check-fill:before{content:"\f6b2"}.bi-send-check:before{content:"\f6b3"}.bi-send-dash-fill:before{content:"\f6b4"}.bi-send-dash:before{content:"\f6b5"}.bi-send-exclamation-fill:before{content:"\f6b7"}.bi-send-exclamation:before{content:"\f6b8"}.bi-send-fill:before{content:"\f6b9"}.bi-send-plus-fill:before{content:"\f6ba"}.bi-send-plus:before{content:"\f6bb"}.bi-send-slash-fill:before{content:"\f6bc"}.bi-send-slash:before{content:"\f6bd"}.bi-send-x-fill:before{content:"\f6be"}.bi-send-x:before{content:"\f6bf"}.bi-send:before{content:"\f6c0"}.bi-steam:before{content:"\f6c1"}.bi-terminal-dash:before{content:"\f6c3"}.bi-terminal-plus:before{content:"\f6c4"}.bi-terminal-split:before{content:"\f6c5"}.bi-ticket-detailed-fill:before{content:"\f6c6"}.bi-ticket-detailed:before{content:"\f6c7"}.bi-ticket-fill:before{content:"\f6c8"}.bi-ticket-perforated-fill:before{content:"\f6c9"}.bi-ticket-perforated:before{content:"\f6ca"}.bi-ticket:before{content:"\f6cb"}.bi-tiktok:before{content:"\f6cc"}.bi-window-dash:before{content:"\f6cd"}.bi-window-desktop:before{content:"\f6ce"}.bi-window-fullscreen:before{content:"\f6cf"}.bi-window-plus:before{content:"\f6d0"}.bi-window-split:before{content:"\f6d1"}.bi-window-stack:before{content:"\f6d2"}.bi-window-x:before{content:"\f6d3"}.bi-xbox:before{content:"\f6d4"}.bi-ethernet:before{content:"\f6d5"}.bi-hdmi-fill:before{content:"\f6d6"}.bi-hdmi:before{content:"\f6d7"}.bi-usb-c-fill:before{content:"\f6d8"}.bi-usb-c:before{content:"\f6d9"}.bi-usb-fill:before{content:"\f6da"}.bi-usb-plug-fill:before{content:"\f6db"}.bi-usb-plug:before{content:"\f6dc"}.bi-usb-symbol:before{content:"\f6dd"}.bi-usb:before{content:"\f6de"}.bi-boombox-fill:before{content:"\f6df"}.bi-displayport:before{content:"\f6e1"}.bi-gpu-card:before{content:"\f6e2"}.bi-memory:before{content:"\f6e3"}.bi-modem-fill:before{content:"\f6e4"}.bi-modem:before{content:"\f6e5"}.bi-motherboard-fill:before{content:"\f6e6"}.bi-motherboard:before{content:"\f6e7"}.bi-optical-audio-fill:before{content:"\f6e8"}.bi-optical-audio:before{content:"\f6e9"}.bi-pci-card:before{content:"\f6ea"}.bi-router-fill:before{content:"\f6eb"}.bi-router:before{content:"\f6ec"}.bi-thunderbolt-fill:before{content:"\f6ef"}.bi-thunderbolt:before{content:"\f6f0"}.bi-usb-drive-fill:before{content:"\f6f1"}.bi-usb-drive:before{content:"\f6f2"}.bi-usb-micro-fill:before{content:"\f6f3"}.bi-usb-micro:before{content:"\f6f4"}.bi-usb-mini-fill:before{content:"\f6f5"}.bi-usb-mini:before{content:"\f6f6"}.bi-cloud-haze2:before{content:"\f6f7"}.bi-device-hdd-fill:before{content:"\f6f8"}.bi-device-hdd:before{content:"\f6f9"}.bi-device-ssd-fill:before{content:"\f6fa"}.bi-device-ssd:before{content:"\f6fb"}.bi-displayport-fill:before{content:"\f6fc"}.bi-mortarboard-fill:before{content:"\f6fd"}.bi-mortarboard:before{content:"\f6fe"}.bi-terminal-x:before{content:"\f6ff"}.bi-arrow-through-heart-fill:before{content:"\f700"}.bi-arrow-through-heart:before{content:"\f701"}.bi-badge-sd-fill:before{content:"\f702"}.bi-badge-sd:before{content:"\f703"}.bi-bag-heart-fill:before{content:"\f704"}.bi-bag-heart:before{content:"\f705"}.bi-balloon-fill:before{content:"\f706"}.bi-balloon-heart-fill:before{content:"\f707"}.bi-balloon-heart:before{content:"\f708"}.bi-balloon:before{content:"\f709"}.bi-box2-fill:before{content:"\f70a"}.bi-box2-heart-fill:before{content:"\f70b"}.bi-box2-heart:before{content:"\f70c"}.bi-box2:before{content:"\f70d"}.bi-braces-asterisk:before{content:"\f70e"}.bi-calendar-heart-fill:before{content:"\f70f"}.bi-calendar-heart:before{content:"\f710"}.bi-calendar2-heart-fill:before{content:"\f711"}.bi-calendar2-heart:before{content:"\f712"}.bi-chat-heart-fill:before{content:"\f713"}.bi-chat-heart:before{content:"\f714"}.bi-chat-left-heart-fill:before{content:"\f715"}.bi-chat-left-heart:before{content:"\f716"}.bi-chat-right-heart-fill:before{content:"\f717"}.bi-chat-right-heart:before{content:"\f718"}.bi-chat-square-heart-fill:before{content:"\f719"}.bi-chat-square-heart:before{content:"\f71a"}.bi-clipboard-check-fill:before{content:"\f71b"}.bi-clipboard-data-fill:before{content:"\f71c"}.bi-clipboard-fill:before{content:"\f71d"}.bi-clipboard-heart-fill:before{content:"\f71e"}.bi-clipboard-heart:before{content:"\f71f"}.bi-clipboard-minus-fill:before{content:"\f720"}.bi-clipboard-plus-fill:before{content:"\f721"}.bi-clipboard-pulse:before{content:"\f722"}.bi-clipboard-x-fill:before{content:"\f723"}.bi-clipboard2-check-fill:before{content:"\f724"}.bi-clipboard2-check:before{content:"\f725"}.bi-clipboard2-data-fill:before{content:"\f726"}.bi-clipboard2-data:before{content:"\f727"}.bi-clipboard2-fill:before{content:"\f728"}.bi-clipboard2-heart-fill:before{content:"\f729"}.bi-clipboard2-heart:before{content:"\f72a"}.bi-clipboard2-minus-fill:before{content:"\f72b"}.bi-clipboard2-minus:before{content:"\f72c"}.bi-clipboard2-plus-fill:before{content:"\f72d"}.bi-clipboard2-plus:before{content:"\f72e"}.bi-clipboard2-pulse-fill:before{content:"\f72f"}.bi-clipboard2-pulse:before{content:"\f730"}.bi-clipboard2-x-fill:before{content:"\f731"}.bi-clipboard2-x:before{content:"\f732"}.bi-clipboard2:before{content:"\f733"}.bi-emoji-kiss-fill:before{content:"\f734"}.bi-emoji-kiss:before{content:"\f735"}.bi-envelope-heart-fill:before{content:"\f736"}.bi-envelope-heart:before{content:"\f737"}.bi-envelope-open-heart-fill:before{content:"\f738"}.bi-envelope-open-heart:before{content:"\f739"}.bi-envelope-paper-fill:before{content:"\f73a"}.bi-envelope-paper-heart-fill:before{content:"\f73b"}.bi-envelope-paper-heart:before{content:"\f73c"}.bi-envelope-paper:before{content:"\f73d"}.bi-filetype-aac:before{content:"\f73e"}.bi-filetype-ai:before{content:"\f73f"}.bi-filetype-bmp:before{content:"\f740"}.bi-filetype-cs:before{content:"\f741"}.bi-filetype-css:before{content:"\f742"}.bi-filetype-csv:before{content:"\f743"}.bi-filetype-doc:before{content:"\f744"}.bi-filetype-docx:before{content:"\f745"}.bi-filetype-exe:before{content:"\f746"}.bi-filetype-gif:before{content:"\f747"}.bi-filetype-heic:before{content:"\f748"}.bi-filetype-html:before{content:"\f749"}.bi-filetype-java:before{content:"\f74a"}.bi-filetype-jpg:before{content:"\f74b"}.bi-filetype-js:before{content:"\f74c"}.bi-filetype-jsx:before{content:"\f74d"}.bi-filetype-key:before{content:"\f74e"}.bi-filetype-m4p:before{content:"\f74f"}.bi-filetype-md:before{content:"\f750"}.bi-filetype-mdx:before{content:"\f751"}.bi-filetype-mov:before{content:"\f752"}.bi-filetype-mp3:before{content:"\f753"}.bi-filetype-mp4:before{content:"\f754"}.bi-filetype-otf:before{content:"\f755"}.bi-filetype-pdf:before{content:"\f756"}.bi-filetype-php:before{content:"\f757"}.bi-filetype-png:before{content:"\f758"}.bi-filetype-ppt:before{content:"\f75a"}.bi-filetype-psd:before{content:"\f75b"}.bi-filetype-py:before{content:"\f75c"}.bi-filetype-raw:before{content:"\f75d"}.bi-filetype-rb:before{content:"\f75e"}.bi-filetype-sass:before{content:"\f75f"}.bi-filetype-scss:before{content:"\f760"}.bi-filetype-sh:before{content:"\f761"}.bi-filetype-svg:before{content:"\f762"}.bi-filetype-tiff:before{content:"\f763"}.bi-filetype-tsx:before{content:"\f764"}.bi-filetype-ttf:before{content:"\f765"}.bi-filetype-txt:before{content:"\f766"}.bi-filetype-wav:before{content:"\f767"}.bi-filetype-woff:before{content:"\f768"}.bi-filetype-xls:before{content:"\f76a"}.bi-filetype-xml:before{content:"\f76b"}.bi-filetype-yml:before{content:"\f76c"}.bi-heart-arrow:before{content:"\f76d"}.bi-heart-pulse-fill:before{content:"\f76e"}.bi-heart-pulse:before{content:"\f76f"}.bi-heartbreak-fill:before{content:"\f770"}.bi-heartbreak:before{content:"\f771"}.bi-hearts:before{content:"\f772"}.bi-hospital-fill:before{content:"\f773"}.bi-hospital:before{content:"\f774"}.bi-house-heart-fill:before{content:"\f775"}.bi-house-heart:before{content:"\f776"}.bi-incognito:before{content:"\f777"}.bi-magnet-fill:before{content:"\f778"}.bi-magnet:before{content:"\f779"}.bi-person-heart:before{content:"\f77a"}.bi-person-hearts:before{content:"\f77b"}.bi-phone-flip:before{content:"\f77c"}.bi-plugin:before{content:"\f77d"}.bi-postage-fill:before{content:"\f77e"}.bi-postage-heart-fill:before{content:"\f77f"}.bi-postage-heart:before{content:"\f780"}.bi-postage:before{content:"\f781"}.bi-postcard-fill:before{content:"\f782"}.bi-postcard-heart-fill:before{content:"\f783"}.bi-postcard-heart:before{content:"\f784"}.bi-postcard:before{content:"\f785"}.bi-search-heart-fill:before{content:"\f786"}.bi-search-heart:before{content:"\f787"}.bi-sliders2-vertical:before{content:"\f788"}.bi-sliders2:before{content:"\f789"}.bi-trash3-fill:before{content:"\f78a"}.bi-trash3:before{content:"\f78b"}.bi-valentine:before{content:"\f78c"}.bi-valentine2:before{content:"\f78d"}.bi-wrench-adjustable-circle-fill:before{content:"\f78e"}.bi-wrench-adjustable-circle:before{content:"\f78f"}.bi-wrench-adjustable:before{content:"\f790"}.bi-filetype-json:before{content:"\f791"}.bi-filetype-pptx:before{content:"\f792"}.bi-filetype-xlsx:before{content:"\f793"}.bi-1-circle-fill:before{content:"\f796"}.bi-1-circle:before{content:"\f797"}.bi-1-square-fill:before{content:"\f798"}.bi-1-square:before{content:"\f799"}.bi-2-circle-fill:before{content:"\f79c"}.bi-2-circle:before{content:"\f79d"}.bi-2-square-fill:before{content:"\f79e"}.bi-2-square:before{content:"\f79f"}.bi-3-circle-fill:before{content:"\f7a2"}.bi-3-circle:before{content:"\f7a3"}.bi-3-square-fill:before{content:"\f7a4"}.bi-3-square:before{content:"\f7a5"}.bi-4-circle-fill:before{content:"\f7a8"}.bi-4-circle:before{content:"\f7a9"}.bi-4-square-fill:before{content:"\f7aa"}.bi-4-square:before{content:"\f7ab"}.bi-5-circle-fill:before{content:"\f7ae"}.bi-5-circle:before{content:"\f7af"}.bi-5-square-fill:before{content:"\f7b0"}.bi-5-square:before{content:"\f7b1"}.bi-6-circle-fill:before{content:"\f7b4"}.bi-6-circle:before{content:"\f7b5"}.bi-6-square-fill:before{content:"\f7b6"}.bi-6-square:before{content:"\f7b7"}.bi-7-circle-fill:before{content:"\f7ba"}.bi-7-circle:before{content:"\f7bb"}.bi-7-square-fill:before{content:"\f7bc"}.bi-7-square:before{content:"\f7bd"}.bi-8-circle-fill:before{content:"\f7c0"}.bi-8-circle:before{content:"\f7c1"}.bi-8-square-fill:before{content:"\f7c2"}.bi-8-square:before{content:"\f7c3"}.bi-9-circle-fill:before{content:"\f7c6"}.bi-9-circle:before{content:"\f7c7"}.bi-9-square-fill:before{content:"\f7c8"}.bi-9-square:before{content:"\f7c9"}.bi-airplane-engines-fill:before{content:"\f7ca"}.bi-airplane-engines:before{content:"\f7cb"}.bi-airplane-fill:before{content:"\f7cc"}.bi-airplane:before{content:"\f7cd"}.bi-alexa:before{content:"\f7ce"}.bi-alipay:before{content:"\f7cf"}.bi-android:before{content:"\f7d0"}.bi-android2:before{content:"\f7d1"}.bi-box-fill:before{content:"\f7d2"}.bi-box-seam-fill:before{content:"\f7d3"}.bi-browser-chrome:before{content:"\f7d4"}.bi-browser-edge:before{content:"\f7d5"}.bi-browser-firefox:before{content:"\f7d6"}.bi-browser-safari:before{content:"\f7d7"}.bi-c-circle-fill:before{content:"\f7da"}.bi-c-circle:before{content:"\f7db"}.bi-c-square-fill:before{content:"\f7dc"}.bi-c-square:before{content:"\f7dd"}.bi-capsule-pill:before{content:"\f7de"}.bi-capsule:before{content:"\f7df"}.bi-car-front-fill:before{content:"\f7e0"}.bi-car-front:before{content:"\f7e1"}.bi-cassette-fill:before{content:"\f7e2"}.bi-cassette:before{content:"\f7e3"}.bi-cc-circle-fill:before{content:"\f7e6"}.bi-cc-circle:before{content:"\f7e7"}.bi-cc-square-fill:before{content:"\f7e8"}.bi-cc-square:before{content:"\f7e9"}.bi-cup-hot-fill:before{content:"\f7ea"}.bi-cup-hot:before{content:"\f7eb"}.bi-currency-rupee:before{content:"\f7ec"}.bi-dropbox:before{content:"\f7ed"}.bi-escape:before{content:"\f7ee"}.bi-fast-forward-btn-fill:before{content:"\f7ef"}.bi-fast-forward-btn:before{content:"\f7f0"}.bi-fast-forward-circle-fill:before{content:"\f7f1"}.bi-fast-forward-circle:before{content:"\f7f2"}.bi-fast-forward-fill:before{content:"\f7f3"}.bi-fast-forward:before{content:"\f7f4"}.bi-filetype-sql:before{content:"\f7f5"}.bi-fire:before{content:"\f7f6"}.bi-google-play:before{content:"\f7f7"}.bi-h-circle-fill:before{content:"\f7fa"}.bi-h-circle:before{content:"\f7fb"}.bi-h-square-fill:before{content:"\f7fc"}.bi-h-square:before{content:"\f7fd"}.bi-indent:before{content:"\f7fe"}.bi-lungs-fill:before{content:"\f7ff"}.bi-lungs:before{content:"\f800"}.bi-microsoft-teams:before{content:"\f801"}.bi-p-circle-fill:before{content:"\f804"}.bi-p-circle:before{content:"\f805"}.bi-p-square-fill:before{content:"\f806"}.bi-p-square:before{content:"\f807"}.bi-pass-fill:before{content:"\f808"}.bi-pass:before{content:"\f809"}.bi-prescription:before{content:"\f80a"}.bi-prescription2:before{content:"\f80b"}.bi-r-circle-fill:before{content:"\f80e"}.bi-r-circle:before{content:"\f80f"}.bi-r-square-fill:before{content:"\f810"}.bi-r-square:before{content:"\f811"}.bi-repeat-1:before{content:"\f812"}.bi-repeat:before{content:"\f813"}.bi-rewind-btn-fill:before{content:"\f814"}.bi-rewind-btn:before{content:"\f815"}.bi-rewind-circle-fill:before{content:"\f816"}.bi-rewind-circle:before{content:"\f817"}.bi-rewind-fill:before{content:"\f818"}.bi-rewind:before{content:"\f819"}.bi-train-freight-front-fill:before{content:"\f81a"}.bi-train-freight-front:before{content:"\f81b"}.bi-train-front-fill:before{content:"\f81c"}.bi-train-front:before{content:"\f81d"}.bi-train-lightrail-front-fill:before{content:"\f81e"}.bi-train-lightrail-front:before{content:"\f81f"}.bi-truck-front-fill:before{content:"\f820"}.bi-truck-front:before{content:"\f821"}.bi-ubuntu:before{content:"\f822"}.bi-unindent:before{content:"\f823"}.bi-unity:before{content:"\f824"}.bi-universal-access-circle:before{content:"\f825"}.bi-universal-access:before{content:"\f826"}.bi-virus:before{content:"\f827"}.bi-virus2:before{content:"\f828"}.bi-wechat:before{content:"\f829"}.bi-yelp:before{content:"\f82a"}.bi-sign-stop-fill:before{content:"\f82b"}.bi-sign-stop-lights-fill:before{content:"\f82c"}.bi-sign-stop-lights:before{content:"\f82d"}.bi-sign-stop:before{content:"\f82e"}.bi-sign-turn-left-fill:before{content:"\f82f"}.bi-sign-turn-left:before{content:"\f830"}.bi-sign-turn-right-fill:before{content:"\f831"}.bi-sign-turn-right:before{content:"\f832"}.bi-sign-turn-slight-left-fill:before{content:"\f833"}.bi-sign-turn-slight-left:before{content:"\f834"}.bi-sign-turn-slight-right-fill:before{content:"\f835"}.bi-sign-turn-slight-right:before{content:"\f836"}.bi-sign-yield-fill:before{content:"\f837"}.bi-sign-yield:before{content:"\f838"}.bi-ev-station-fill:before{content:"\f839"}.bi-ev-station:before{content:"\f83a"}.bi-fuel-pump-diesel-fill:before{content:"\f83b"}.bi-fuel-pump-diesel:before{content:"\f83c"}.bi-fuel-pump-fill:before{content:"\f83d"}.bi-fuel-pump:before{content:"\f83e"}.bi-0-circle-fill:before{content:"\f83f"}.bi-0-circle:before{content:"\f840"}.bi-0-square-fill:before{content:"\f841"}.bi-0-square:before{content:"\f842"}.bi-rocket-fill:before{content:"\f843"}.bi-rocket-takeoff-fill:before{content:"\f844"}.bi-rocket-takeoff:before{content:"\f845"}.bi-rocket:before{content:"\f846"}.bi-stripe:before{content:"\f847"}.bi-subscript:before{content:"\f848"}.bi-superscript:before{content:"\f849"}.bi-trello:before{content:"\f84a"}.bi-envelope-at-fill:before{content:"\f84b"}.bi-envelope-at:before{content:"\f84c"}.bi-regex:before{content:"\f84d"}.bi-text-wrap:before{content:"\f84e"}.bi-sign-dead-end-fill:before{content:"\f84f"}.bi-sign-dead-end:before{content:"\f850"}.bi-sign-do-not-enter-fill:before{content:"\f851"}.bi-sign-do-not-enter:before{content:"\f852"}.bi-sign-intersection-fill:before{content:"\f853"}.bi-sign-intersection-side-fill:before{content:"\f854"}.bi-sign-intersection-side:before{content:"\f855"}.bi-sign-intersection-t-fill:before{content:"\f856"}.bi-sign-intersection-t:before{content:"\f857"}.bi-sign-intersection-y-fill:before{content:"\f858"}.bi-sign-intersection-y:before{content:"\f859"}.bi-sign-intersection:before{content:"\f85a"}.bi-sign-merge-left-fill:before{content:"\f85b"}.bi-sign-merge-left:before{content:"\f85c"}.bi-sign-merge-right-fill:before{content:"\f85d"}.bi-sign-merge-right:before{content:"\f85e"}.bi-sign-no-left-turn-fill:before{content:"\f85f"}.bi-sign-no-left-turn:before{content:"\f860"}.bi-sign-no-parking-fill:before{content:"\f861"}.bi-sign-no-parking:before{content:"\f862"}.bi-sign-no-right-turn-fill:before{content:"\f863"}.bi-sign-no-right-turn:before{content:"\f864"}.bi-sign-railroad-fill:before{content:"\f865"}.bi-sign-railroad:before{content:"\f866"}.bi-building-add:before{content:"\f867"}.bi-building-check:before{content:"\f868"}.bi-building-dash:before{content:"\f869"}.bi-building-down:before{content:"\f86a"}.bi-building-exclamation:before{content:"\f86b"}.bi-building-fill-add:before{content:"\f86c"}.bi-building-fill-check:before{content:"\f86d"}.bi-building-fill-dash:before{content:"\f86e"}.bi-building-fill-down:before{content:"\f86f"}.bi-building-fill-exclamation:before{content:"\f870"}.bi-building-fill-gear:before{content:"\f871"}.bi-building-fill-lock:before{content:"\f872"}.bi-building-fill-slash:before{content:"\f873"}.bi-building-fill-up:before{content:"\f874"}.bi-building-fill-x:before{content:"\f875"}.bi-building-fill:before{content:"\f876"}.bi-building-gear:before{content:"\f877"}.bi-building-lock:before{content:"\f878"}.bi-building-slash:before{content:"\f879"}.bi-building-up:before{content:"\f87a"}.bi-building-x:before{content:"\f87b"}.bi-buildings-fill:before{content:"\f87c"}.bi-buildings:before{content:"\f87d"}.bi-bus-front-fill:before{content:"\f87e"}.bi-bus-front:before{content:"\f87f"}.bi-ev-front-fill:before{content:"\f880"}.bi-ev-front:before{content:"\f881"}.bi-globe-americas:before{content:"\f882"}.bi-globe-asia-australia:before{content:"\f883"}.bi-globe-central-south-asia:before{content:"\f884"}.bi-globe-europe-africa:before{content:"\f885"}.bi-house-add-fill:before{content:"\f886"}.bi-house-add:before{content:"\f887"}.bi-house-check-fill:before{content:"\f888"}.bi-house-check:before{content:"\f889"}.bi-house-dash-fill:before{content:"\f88a"}.bi-house-dash:before{content:"\f88b"}.bi-house-down-fill:before{content:"\f88c"}.bi-house-down:before{content:"\f88d"}.bi-house-exclamation-fill:before{content:"\f88e"}.bi-house-exclamation:before{content:"\f88f"}.bi-house-gear-fill:before{content:"\f890"}.bi-house-gear:before{content:"\f891"}.bi-house-lock-fill:before{content:"\f892"}.bi-house-lock:before{content:"\f893"}.bi-house-slash-fill:before{content:"\f894"}.bi-house-slash:before{content:"\f895"}.bi-house-up-fill:before{content:"\f896"}.bi-house-up:before{content:"\f897"}.bi-house-x-fill:before{content:"\f898"}.bi-house-x:before{content:"\f899"}.bi-person-add:before{content:"\f89a"}.bi-person-down:before{content:"\f89b"}.bi-person-exclamation:before{content:"\f89c"}.bi-person-fill-add:before{content:"\f89d"}.bi-person-fill-check:before{content:"\f89e"}.bi-person-fill-dash:before{content:"\f89f"}.bi-person-fill-down:before{content:"\f8a0"}.bi-person-fill-exclamation:before{content:"\f8a1"}.bi-person-fill-gear:before{content:"\f8a2"}.bi-person-fill-lock:before{content:"\f8a3"}.bi-person-fill-slash:before{content:"\f8a4"}.bi-person-fill-up:before{content:"\f8a5"}.bi-person-fill-x:before{content:"\f8a6"}.bi-person-gear:before{content:"\f8a7"}.bi-person-lock:before{content:"\f8a8"}.bi-person-slash:before{content:"\f8a9"}.bi-person-up:before{content:"\f8aa"}.bi-scooter:before{content:"\f8ab"}.bi-taxi-front-fill:before{content:"\f8ac"}.bi-taxi-front:before{content:"\f8ad"}.bi-amd:before{content:"\f8ae"}.bi-database-add:before{content:"\f8af"}.bi-database-check:before{content:"\f8b0"}.bi-database-dash:before{content:"\f8b1"}.bi-database-down:before{content:"\f8b2"}.bi-database-exclamation:before{content:"\f8b3"}.bi-database-fill-add:before{content:"\f8b4"}.bi-database-fill-check:before{content:"\f8b5"}.bi-database-fill-dash:before{content:"\f8b6"}.bi-database-fill-down:before{content:"\f8b7"}.bi-database-fill-exclamation:before{content:"\f8b8"}.bi-database-fill-gear:before{content:"\f8b9"}.bi-database-fill-lock:before{content:"\f8ba"}.bi-database-fill-slash:before{content:"\f8bb"}.bi-database-fill-up:before{content:"\f8bc"}.bi-database-fill-x:before{content:"\f8bd"}.bi-database-fill:before{content:"\f8be"}.bi-database-gear:before{content:"\f8bf"}.bi-database-lock:before{content:"\f8c0"}.bi-database-slash:before{content:"\f8c1"}.bi-database-up:before{content:"\f8c2"}.bi-database-x:before{content:"\f8c3"}.bi-database:before{content:"\f8c4"}.bi-houses-fill:before{content:"\f8c5"}.bi-houses:before{content:"\f8c6"}.bi-nvidia:before{content:"\f8c7"}.bi-person-vcard-fill:before{content:"\f8c8"}.bi-person-vcard:before{content:"\f8c9"}.bi-sina-weibo:before{content:"\f8ca"}.bi-tencent-qq:before{content:"\f8cb"}.bi-wikipedia:before{content:"\f8cc"}.bi-alphabet-uppercase:before{content:"\f2a5"}.bi-alphabet:before{content:"\f68a"}.bi-amazon:before{content:"\f68d"}.bi-arrows-collapse-vertical:before{content:"\f690"}.bi-arrows-expand-vertical:before{content:"\f695"}.bi-arrows-vertical:before{content:"\f698"}.bi-arrows:before{content:"\f6a2"}.bi-ban-fill:before{content:"\f6a3"}.bi-ban:before{content:"\f6b6"}.bi-bing:before{content:"\f6c2"}.bi-cake:before{content:"\f6e0"}.bi-cake2:before{content:"\f6ed"}.bi-cookie:before{content:"\f6ee"}.bi-copy:before{content:"\f759"}.bi-crosshair:before{content:"\f769"}.bi-crosshair2:before{content:"\f794"}.bi-emoji-astonished-fill:before{content:"\f795"}.bi-emoji-astonished:before{content:"\f79a"}.bi-emoji-grimace-fill:before{content:"\f79b"}.bi-emoji-grimace:before{content:"\f7a0"}.bi-emoji-grin-fill:before{content:"\f7a1"}.bi-emoji-grin:before{content:"\f7a6"}.bi-emoji-surprise-fill:before{content:"\f7a7"}.bi-emoji-surprise:before{content:"\f7ac"}.bi-emoji-tear-fill:before{content:"\f7ad"}.bi-emoji-tear:before{content:"\f7b2"}.bi-envelope-arrow-down-fill:before{content:"\f7b3"}.bi-envelope-arrow-down:before{content:"\f7b8"}.bi-envelope-arrow-up-fill:before{content:"\f7b9"}.bi-envelope-arrow-up:before{content:"\f7be"}.bi-feather:before{content:"\f7bf"}.bi-feather2:before{content:"\f7c4"}.bi-floppy-fill:before{content:"\f7c5"}.bi-floppy:before{content:"\f7d8"}.bi-floppy2-fill:before{content:"\f7d9"}.bi-floppy2:before{content:"\f7e4"}.bi-gitlab:before{content:"\f7e5"}.bi-highlighter:before{content:"\f7f8"}.bi-marker-tip:before{content:"\f802"}.bi-nvme-fill:before{content:"\f803"}.bi-nvme:before{content:"\f80c"}.bi-opencollective:before{content:"\f80d"}.bi-pci-card-network:before{content:"\f8cd"}.bi-pci-card-sound:before{content:"\f8ce"}.bi-radar:before{content:"\f8cf"}.bi-send-arrow-down-fill:before{content:"\f8d0"}.bi-send-arrow-down:before{content:"\f8d1"}.bi-send-arrow-up-fill:before{content:"\f8d2"}.bi-send-arrow-up:before{content:"\f8d3"}.bi-sim-slash-fill:before{content:"\f8d4"}.bi-sim-slash:before{content:"\f8d5"}.bi-sourceforge:before{content:"\f8d6"}.bi-substack:before{content:"\f8d7"}.bi-threads-fill:before{content:"\f8d8"}.bi-threads:before{content:"\f8d9"}.bi-transparency:before{content:"\f8da"}.bi-twitter-x:before{content:"\f8db"}.bi-type-h4:before{content:"\f8dc"}.bi-type-h5:before{content:"\f8dd"}.bi-type-h6:before{content:"\f8de"}.bi-backpack-fill:before{content:"\f8df"}.bi-backpack:before{content:"\f8e0"}.bi-backpack2-fill:before{content:"\f8e1"}.bi-backpack2:before{content:"\f8e2"}.bi-backpack3-fill:before{content:"\f8e3"}.bi-backpack3:before{content:"\f8e4"}.bi-backpack4-fill:before{content:"\f8e5"}.bi-backpack4:before{content:"\f8e6"}.bi-brilliance:before{content:"\f8e7"}.bi-cake-fill:before{content:"\f8e8"}.bi-cake2-fill:before{content:"\f8e9"}.bi-duffle-fill:before{content:"\f8ea"}.bi-duffle:before{content:"\f8eb"}.bi-exposure:before{content:"\f8ec"}.bi-gender-neuter:before{content:"\f8ed"}.bi-highlights:before{content:"\f8ee"}.bi-luggage-fill:before{content:"\f8ef"}.bi-luggage:before{content:"\f8f0"}.bi-mailbox-flag:before{content:"\f8f1"}.bi-mailbox2-flag:before{content:"\f8f2"}.bi-noise-reduction:before{content:"\f8f3"}.bi-passport-fill:before{content:"\f8f4"}.bi-passport:before{content:"\f8f5"}.bi-person-arms-up:before{content:"\f8f6"}.bi-person-raised-hand:before{content:"\f8f7"}.bi-person-standing-dress:before{content:"\f8f8"}.bi-person-standing:before{content:"\f8f9"}.bi-person-walking:before{content:"\f8fa"}.bi-person-wheelchair:before{content:"\f8fb"}.bi-shadows:before{content:"\f8fc"}.bi-suitcase-fill:before{content:"\f8fd"}.bi-suitcase-lg-fill:before{content:"\f8fe"}.bi-suitcase-lg:before{content:"\f8ff"}.bi-suitcase:before{content:"\f900"}.bi-suitcase2-fill:before{content:"\f901"}.bi-suitcase2:before{content:"\f902"}.bi-vignette:before{content:"\f903"}:root,[data-bs-theme=light]{--bs-blue: #0d6efd;--bs-indigo: #6610f2;--bs-purple: #6f42c1;--bs-pink: #d63384;--bs-red: #dc3545;--bs-orange: #fd7e14;--bs-yellow: #ffc107;--bs-green: #198754;--bs-teal: #20c997;--bs-cyan: #0dcaf0;--bs-black: #000;--bs-white: #fff;--bs-gray: #6c757d;--bs-gray-dark: #343a40;--bs-gray-100: #f8f9fa;--bs-gray-200: #e9ecef;--bs-gray-300: #dee2e6;--bs-gray-400: #ced4da;--bs-gray-500: #adb5bd;--bs-gray-600: #6c757d;--bs-gray-700: #495057;--bs-gray-800: #343a40;--bs-gray-900: #212529;--bs-primary: #0d6efd;--bs-secondary: #6c757d;--bs-success: #198754;--bs-info: #0dcaf0;--bs-warning: #ffc107;--bs-danger: #dc3545;--bs-light: #f8f9fa;--bs-dark: #212529;--bs-primary-rgb: 13, 110, 253;--bs-secondary-rgb: 108, 117, 125;--bs-success-rgb: 25, 135, 84;--bs-info-rgb: 13, 202, 240;--bs-warning-rgb: 255, 193, 7;--bs-danger-rgb: 220, 53, 69;--bs-light-rgb: 248, 249, 250;--bs-dark-rgb: 33, 37, 41;--bs-primary-text-emphasis: rgb(5.2, 44, 101.2);--bs-secondary-text-emphasis: rgb(43.2, 46.8, 50);--bs-success-text-emphasis: rgb(10, 54, 33.6);--bs-info-text-emphasis: rgb(5.2, 80.8, 96);--bs-warning-text-emphasis: rgb(102, 77.2, 2.8);--bs-danger-text-emphasis: rgb(88, 21.2, 27.6);--bs-light-text-emphasis: #495057;--bs-dark-text-emphasis: #495057;--bs-primary-bg-subtle: rgb(206.6, 226, 254.6);--bs-secondary-bg-subtle: rgb(225.6, 227.4, 229);--bs-success-bg-subtle: rgb(209, 231, 220.8);--bs-info-bg-subtle: rgb(206.6, 244.4, 252);--bs-warning-bg-subtle: rgb(255, 242.6, 205.4);--bs-danger-bg-subtle: rgb(248, 214.6, 217.8);--bs-light-bg-subtle: rgb(251.5, 252, 252.5);--bs-dark-bg-subtle: #ced4da;--bs-primary-border-subtle: rgb(158.2, 197, 254.2);--bs-secondary-border-subtle: rgb(196.2, 199.8, 203);--bs-success-border-subtle: rgb(163, 207, 186.6);--bs-info-border-subtle: rgb(158.2, 233.8, 249);--bs-warning-border-subtle: rgb(255, 230.2, 155.8);--bs-danger-border-subtle: rgb(241, 174.2, 180.6);--bs-light-border-subtle: #e9ecef;--bs-dark-border-subtle: #adb5bd;--bs-white-rgb: 255, 255, 255;--bs-black-rgb: 0, 0, 0;--bs-font-sans-serif: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, .15), rgba(255, 255, 255, 0));--bs-body-font-family: var(--bs-font-sans-serif);--bs-body-font-size: 1rem;--bs-body-font-weight: 400;--bs-body-line-height: 1.5;--bs-body-color: #212529;--bs-body-color-rgb: 33, 37, 41;--bs-body-bg: #fff;--bs-body-bg-rgb: 255, 255, 255;--bs-emphasis-color: #000;--bs-emphasis-color-rgb: 0, 0, 0;--bs-secondary-color: rgba(33, 37, 41, .75);--bs-secondary-color-rgb: 33, 37, 41;--bs-secondary-bg: #e9ecef;--bs-secondary-bg-rgb: 233, 236, 239;--bs-tertiary-color: rgba(33, 37, 41, .5);--bs-tertiary-color-rgb: 33, 37, 41;--bs-tertiary-bg: #f8f9fa;--bs-tertiary-bg-rgb: 248, 249, 250;--bs-heading-color: inherit;--bs-link-color: #0d6efd;--bs-link-color-rgb: 13, 110, 253;--bs-link-decoration: underline;--bs-link-hover-color: rgb(10.4, 88, 202.4);--bs-link-hover-color-rgb: 10, 88, 202;--bs-code-color: #d63384;--bs-highlight-color: #212529;--bs-highlight-bg: rgb(255, 242.6, 205.4);--bs-border-width: 1px;--bs-border-style: solid;--bs-border-color: #dee2e6;--bs-border-color-translucent: rgba(0, 0, 0, .175);--bs-border-radius: .375rem;--bs-border-radius-sm: .25rem;--bs-border-radius-lg: .5rem;--bs-border-radius-xl: 1rem;--bs-border-radius-xxl: 2rem;--bs-border-radius-2xl: var(--bs-border-radius-xxl);--bs-border-radius-pill: 50rem;--bs-box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .15);--bs-box-shadow-sm: 0 .125rem .25rem rgba(0, 0, 0, .075);--bs-box-shadow-lg: 0 1rem 3rem rgba(0, 0, 0, .175);--bs-box-shadow-inset: inset 0 1px 2px rgba(0, 0, 0, .075);--bs-focus-ring-width: .25rem;--bs-focus-ring-opacity: .25;--bs-focus-ring-color: rgba(13, 110, 253, .25);--bs-form-valid-color: #198754;--bs-form-valid-border-color: #198754;--bs-form-invalid-color: #dc3545;--bs-form-invalid-border-color: #dc3545}[data-bs-theme=dark]{color-scheme:dark;--bs-body-color: #dee2e6;--bs-body-color-rgb: 222, 226, 230;--bs-body-bg: #212529;--bs-body-bg-rgb: 33, 37, 41;--bs-emphasis-color: #fff;--bs-emphasis-color-rgb: 255, 255, 255;--bs-secondary-color: rgba(222, 226, 230, .75);--bs-secondary-color-rgb: 222, 226, 230;--bs-secondary-bg: #343a40;--bs-secondary-bg-rgb: 52, 58, 64;--bs-tertiary-color: rgba(222, 226, 230, .5);--bs-tertiary-color-rgb: 222, 226, 230;--bs-tertiary-bg: rgb(42.5, 47.5, 52.5);--bs-tertiary-bg-rgb: 43, 48, 53;--bs-primary-text-emphasis: rgb(109.8, 168, 253.8);--bs-secondary-text-emphasis: rgb(166.8, 172.2, 177);--bs-success-text-emphasis: rgb(117, 183, 152.4);--bs-info-text-emphasis: rgb(109.8, 223.2, 246);--bs-warning-text-emphasis: rgb(255, 217.8, 106.2);--bs-danger-text-emphasis: rgb(234, 133.8, 143.4);--bs-light-text-emphasis: #f8f9fa;--bs-dark-text-emphasis: #dee2e6;--bs-primary-bg-subtle: rgb(2.6, 22, 50.6);--bs-secondary-bg-subtle: rgb(21.6, 23.4, 25);--bs-success-bg-subtle: rgb(5, 27, 16.8);--bs-info-bg-subtle: rgb(2.6, 40.4, 48);--bs-warning-bg-subtle: rgb(51, 38.6, 1.4);--bs-danger-bg-subtle: rgb(44, 10.6, 13.8);--bs-light-bg-subtle: #343a40;--bs-dark-bg-subtle: #1a1d20;--bs-primary-border-subtle: rgb(7.8, 66, 151.8);--bs-secondary-border-subtle: rgb(64.8, 70.2, 75);--bs-success-border-subtle: rgb(15, 81, 50.4);--bs-info-border-subtle: rgb(7.8, 121.2, 144);--bs-warning-border-subtle: rgb(153, 115.8, 4.2);--bs-danger-border-subtle: rgb(132, 31.8, 41.4);--bs-light-border-subtle: #495057;--bs-dark-border-subtle: #343a40;--bs-heading-color: inherit;--bs-link-color: rgb(109.8, 168, 253.8);--bs-link-hover-color: rgb(138.84, 185.4, 254.04);--bs-link-color-rgb: 110, 168, 254;--bs-link-hover-color-rgb: 139, 185, 254;--bs-code-color: rgb(230.4, 132.6, 181.2);--bs-highlight-color: #dee2e6;--bs-highlight-bg: rgb(102, 77.2, 2.8);--bs-border-color: #495057;--bs-border-color-translucent: rgba(255, 255, 255, .15);--bs-form-valid-color: rgb(117, 183, 152.4);--bs-form-valid-border-color: rgb(117, 183, 152.4);--bs-form-invalid-color: rgb(234, 133.8, 143.4);--bs-form-invalid-border-color: rgb(234, 133.8, 143.4)}*,*:before,*:after{box-sizing:border-box}@media (prefers-reduced-motion: no-preference){:root{scroll-behavior:smooth}}body{margin:0;font-family:var(--bs-body-font-family);font-size:var(--bs-body-font-size);font-weight:var(--bs-body-font-weight);line-height:var(--bs-body-line-height);color:var(--bs-body-color);text-align:var(--bs-body-text-align);background-color:var(--bs-body-bg);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}hr{margin:1rem 0;color:inherit;border:0;border-top:var(--bs-border-width) solid;opacity:.25}h6,.h6,h5,.h5,h4,.h4,h3,.h3,h2,.h2,h1,.h1{margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2;color:var(--bs-heading-color)}h1,.h1{font-size:calc(1.375rem + 1.5vw)}@media (min-width: 1200px){h1,.h1{font-size:2.5rem}}h2,.h2{font-size:calc(1.325rem + .9vw)}@media (min-width: 1200px){h2,.h2{font-size:2rem}}h3,.h3{font-size:calc(1.3rem + .6vw)}@media (min-width: 1200px){h3,.h3{font-size:1.75rem}}h4,.h4{font-size:calc(1.275rem + .3vw)}@media (min-width: 1200px){h4,.h4{font-size:1.5rem}}h5,.h5{font-size:1.25rem}h6,.h6{font-size:1rem}p{margin-top:0;margin-bottom:1rem}abbr[title]{text-decoration:underline dotted;cursor:help;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul{padding-left:2rem}ol,ul,dl{margin-top:0;margin-bottom:1rem}ol ol,ul ul,ol ul,ul ol{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small,.small{font-size:.875em}mark,.mark{padding:.1875em;color:var(--bs-highlight-color);background-color:var(--bs-highlight-bg)}sub,sup{position:relative;font-size:.75em;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:rgba(var(--bs-link-color-rgb),var(--bs-link-opacity, 1));text-decoration:underline}a:hover{--bs-link-color-rgb: var(--bs-link-hover-color-rgb)}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}pre,code,kbd,samp{font-family:var(--bs-font-monospace);font-size:1em}pre{display:block;margin-top:0;margin-bottom:1rem;overflow:auto;font-size:.875em}pre code{font-size:inherit;color:inherit;word-break:normal}code{font-size:.875em;color:var(--bs-code-color);word-wrap:break-word}a>code{color:inherit}kbd{padding:.1875rem .375rem;font-size:.875em;color:var(--bs-body-bg);background-color:var(--bs-body-color);border-radius:.25rem}kbd kbd{padding:0;font-size:1em}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{padding-top:.5rem;padding-bottom:.5rem;color:var(--bs-secondary-color);text-align:left}th{text-align:inherit;text-align:-webkit-match-parent}thead,tbody,tfoot,tr,td,th{border-color:inherit;border-style:solid;border-width:0}label{display:inline-block}button{border-radius:0}button:focus:not(:focus-visible){outline:0}input,button,select,optgroup,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}select:disabled{opacity:1}[list]:not([type=date]):not([type=datetime-local]):not([type=month]):not([type=week]):not([type=time])::-webkit-calendar-picker-indicator{display:none!important}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button:not(:disabled),[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled){cursor:pointer}::-moz-focus-inner{padding:0;border-style:none}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{float:left;width:100%;padding:0;margin-bottom:.5rem;font-size:calc(1.275rem + .3vw);line-height:inherit}@media (min-width: 1200px){legend{font-size:1.5rem}}legend+*{clear:left}::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-text,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::file-selector-button{font:inherit;-webkit-appearance:button}output{display:inline-block}iframe{border:0}summary{display:list-item;cursor:pointer}progress{vertical-align:baseline}[hidden]{display:none!important}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:calc(1.625rem + 4.5vw);font-weight:300;line-height:1.2}@media (min-width: 1200px){.display-1{font-size:5rem}}.display-2{font-size:calc(1.575rem + 3.9vw);font-weight:300;line-height:1.2}@media (min-width: 1200px){.display-2{font-size:4.5rem}}.display-3{font-size:calc(1.525rem + 3.3vw);font-weight:300;line-height:1.2}@media (min-width: 1200px){.display-3{font-size:4rem}}.display-4{font-size:calc(1.475rem + 2.7vw);font-weight:300;line-height:1.2}@media (min-width: 1200px){.display-4{font-size:3.5rem}}.display-5{font-size:calc(1.425rem + 2.1vw);font-weight:300;line-height:1.2}@media (min-width: 1200px){.display-5{font-size:3rem}}.display-6{font-size:calc(1.375rem + 1.5vw);font-weight:300;line-height:1.2}@media (min-width: 1200px){.display-6{font-size:2.5rem}}.list-unstyled,.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:.875em;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote>:last-child{margin-bottom:0}.blockquote-footer{margin-top:-1rem;margin-bottom:1rem;font-size:.875em;color:#6c757d}.blockquote-footer:before{content:"\2014\a0"}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:var(--bs-body-bg);border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius);max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:.875em;color:var(--bs-secondary-color)}.container,.container-fluid,.container-xxl{--bs-gutter-x: 1.5rem;--bs-gutter-y: 0;width:100%;padding-right:calc(var(--bs-gutter-x) * .5);padding-left:calc(var(--bs-gutter-x) * .5);margin-right:auto;margin-left:auto}@media (min-width: 1400px){.container-xxl,.container-xl,.container-lg,.container-md,.container-sm,.container{max-width:1768px}}:root{--bs-breakpoint-xs: 0;--bs-breakpoint-sm: 576px;--bs-breakpoint-md: 768px;--bs-breakpoint-lg: 992px;--bs-breakpoint-xl: 1200px;--bs-breakpoint-xxl: 1400px}.row{--bs-gutter-x: 1.5rem;--bs-gutter-y: 0;display:flex;flex-wrap:wrap;margin-top:calc(-1 * var(--bs-gutter-y));margin-right:calc(-.5 * var(--bs-gutter-x));margin-left:calc(-.5 * var(--bs-gutter-x))}.row>*{flex-shrink:0;width:100%;max-width:100%;padding-right:calc(var(--bs-gutter-x) * .5);padding-left:calc(var(--bs-gutter-x) * .5);margin-top:var(--bs-gutter-y)}.col{flex:1 0 0%}.row-cols-auto>*{flex:0 0 auto;width:auto}.row-cols-1>*{flex:0 0 auto;width:100%}.row-cols-2>*{flex:0 0 auto;width:50%}.row-cols-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-4>*{flex:0 0 auto;width:25%}.row-cols-5>*{flex:0 0 auto;width:20%}.row-cols-6>*{flex:0 0 auto;width:16.66666667%}.col-auto{flex:0 0 auto;width:auto}.col-1{flex:0 0 auto;width:8.33333333%}.col-2{flex:0 0 auto;width:16.66666667%}.col-3{flex:0 0 auto;width:25%}.col-4{flex:0 0 auto;width:33.33333333%}.col-5{flex:0 0 auto;width:41.66666667%}.col-6{flex:0 0 auto;width:50%}.col-7{flex:0 0 auto;width:58.33333333%}.col-8{flex:0 0 auto;width:66.66666667%}.col-9{flex:0 0 auto;width:75%}.col-10{flex:0 0 auto;width:83.33333333%}.col-11{flex:0 0 auto;width:91.66666667%}.col-12{flex:0 0 auto;width:100%}.offset-1{margin-left:8.33333333%}.offset-2{margin-left:16.66666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.33333333%}.offset-5{margin-left:41.66666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.33333333%}.offset-8{margin-left:66.66666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.33333333%}.offset-11{margin-left:91.66666667%}.g-0,.gx-0{--bs-gutter-x: 0}.g-0,.gy-0{--bs-gutter-y: 0}.g-1,.gx-1{--bs-gutter-x: .25rem}.g-1,.gy-1{--bs-gutter-y: .25rem}.g-2,.gx-2{--bs-gutter-x: .5rem}.g-2,.gy-2{--bs-gutter-y: .5rem}.g-3,.gx-3{--bs-gutter-x: 1rem}.g-3,.gy-3{--bs-gutter-y: 1rem}.g-4,.gx-4{--bs-gutter-x: 1.5rem}.g-4,.gy-4{--bs-gutter-y: 1.5rem}.g-5,.gx-5{--bs-gutter-x: 3rem}.g-5,.gy-5{--bs-gutter-y: 3rem}@media (min-width: 576px){.col-sm{flex:1 0 0%}.row-cols-sm-auto>*{flex:0 0 auto;width:auto}.row-cols-sm-1>*{flex:0 0 auto;width:100%}.row-cols-sm-2>*{flex:0 0 auto;width:50%}.row-cols-sm-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-sm-4>*{flex:0 0 auto;width:25%}.row-cols-sm-5>*{flex:0 0 auto;width:20%}.row-cols-sm-6>*{flex:0 0 auto;width:16.66666667%}.col-sm-auto{flex:0 0 auto;width:auto}.col-sm-1{flex:0 0 auto;width:8.33333333%}.col-sm-2{flex:0 0 auto;width:16.66666667%}.col-sm-3{flex:0 0 auto;width:25%}.col-sm-4{flex:0 0 auto;width:33.33333333%}.col-sm-5{flex:0 0 auto;width:41.66666667%}.col-sm-6{flex:0 0 auto;width:50%}.col-sm-7{flex:0 0 auto;width:58.33333333%}.col-sm-8{flex:0 0 auto;width:66.66666667%}.col-sm-9{flex:0 0 auto;width:75%}.col-sm-10{flex:0 0 auto;width:83.33333333%}.col-sm-11{flex:0 0 auto;width:91.66666667%}.col-sm-12{flex:0 0 auto;width:100%}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.33333333%}.offset-sm-2{margin-left:16.66666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.33333333%}.offset-sm-5{margin-left:41.66666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.33333333%}.offset-sm-8{margin-left:66.66666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.33333333%}.offset-sm-11{margin-left:91.66666667%}.g-sm-0,.gx-sm-0{--bs-gutter-x: 0}.g-sm-0,.gy-sm-0{--bs-gutter-y: 0}.g-sm-1,.gx-sm-1{--bs-gutter-x: .25rem}.g-sm-1,.gy-sm-1{--bs-gutter-y: .25rem}.g-sm-2,.gx-sm-2{--bs-gutter-x: .5rem}.g-sm-2,.gy-sm-2{--bs-gutter-y: .5rem}.g-sm-3,.gx-sm-3{--bs-gutter-x: 1rem}.g-sm-3,.gy-sm-3{--bs-gutter-y: 1rem}.g-sm-4,.gx-sm-4{--bs-gutter-x: 1.5rem}.g-sm-4,.gy-sm-4{--bs-gutter-y: 1.5rem}.g-sm-5,.gx-sm-5{--bs-gutter-x: 3rem}.g-sm-5,.gy-sm-5{--bs-gutter-y: 3rem}}@media (min-width: 768px){.col-md{flex:1 0 0%}.row-cols-md-auto>*{flex:0 0 auto;width:auto}.row-cols-md-1>*{flex:0 0 auto;width:100%}.row-cols-md-2>*{flex:0 0 auto;width:50%}.row-cols-md-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-md-4>*{flex:0 0 auto;width:25%}.row-cols-md-5>*{flex:0 0 auto;width:20%}.row-cols-md-6>*{flex:0 0 auto;width:16.66666667%}.col-md-auto{flex:0 0 auto;width:auto}.col-md-1{flex:0 0 auto;width:8.33333333%}.col-md-2{flex:0 0 auto;width:16.66666667%}.col-md-3{flex:0 0 auto;width:25%}.col-md-4{flex:0 0 auto;width:33.33333333%}.col-md-5{flex:0 0 auto;width:41.66666667%}.col-md-6{flex:0 0 auto;width:50%}.col-md-7{flex:0 0 auto;width:58.33333333%}.col-md-8{flex:0 0 auto;width:66.66666667%}.col-md-9{flex:0 0 auto;width:75%}.col-md-10{flex:0 0 auto;width:83.33333333%}.col-md-11{flex:0 0 auto;width:91.66666667%}.col-md-12{flex:0 0 auto;width:100%}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.33333333%}.offset-md-2{margin-left:16.66666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.33333333%}.offset-md-5{margin-left:41.66666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.33333333%}.offset-md-8{margin-left:66.66666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.33333333%}.offset-md-11{margin-left:91.66666667%}.g-md-0,.gx-md-0{--bs-gutter-x: 0}.g-md-0,.gy-md-0{--bs-gutter-y: 0}.g-md-1,.gx-md-1{--bs-gutter-x: .25rem}.g-md-1,.gy-md-1{--bs-gutter-y: .25rem}.g-md-2,.gx-md-2{--bs-gutter-x: .5rem}.g-md-2,.gy-md-2{--bs-gutter-y: .5rem}.g-md-3,.gx-md-3{--bs-gutter-x: 1rem}.g-md-3,.gy-md-3{--bs-gutter-y: 1rem}.g-md-4,.gx-md-4{--bs-gutter-x: 1.5rem}.g-md-4,.gy-md-4{--bs-gutter-y: 1.5rem}.g-md-5,.gx-md-5{--bs-gutter-x: 3rem}.g-md-5,.gy-md-5{--bs-gutter-y: 3rem}}@media (min-width: 992px){.col-lg{flex:1 0 0%}.row-cols-lg-auto>*{flex:0 0 auto;width:auto}.row-cols-lg-1>*{flex:0 0 auto;width:100%}.row-cols-lg-2>*{flex:0 0 auto;width:50%}.row-cols-lg-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-lg-4>*{flex:0 0 auto;width:25%}.row-cols-lg-5>*{flex:0 0 auto;width:20%}.row-cols-lg-6>*{flex:0 0 auto;width:16.66666667%}.col-lg-auto{flex:0 0 auto;width:auto}.col-lg-1{flex:0 0 auto;width:8.33333333%}.col-lg-2{flex:0 0 auto;width:16.66666667%}.col-lg-3{flex:0 0 auto;width:25%}.col-lg-4{flex:0 0 auto;width:33.33333333%}.col-lg-5{flex:0 0 auto;width:41.66666667%}.col-lg-6{flex:0 0 auto;width:50%}.col-lg-7{flex:0 0 auto;width:58.33333333%}.col-lg-8{flex:0 0 auto;width:66.66666667%}.col-lg-9{flex:0 0 auto;width:75%}.col-lg-10{flex:0 0 auto;width:83.33333333%}.col-lg-11{flex:0 0 auto;width:91.66666667%}.col-lg-12{flex:0 0 auto;width:100%}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.33333333%}.offset-lg-2{margin-left:16.66666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.33333333%}.offset-lg-5{margin-left:41.66666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.33333333%}.offset-lg-8{margin-left:66.66666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.33333333%}.offset-lg-11{margin-left:91.66666667%}.g-lg-0,.gx-lg-0{--bs-gutter-x: 0}.g-lg-0,.gy-lg-0{--bs-gutter-y: 0}.g-lg-1,.gx-lg-1{--bs-gutter-x: .25rem}.g-lg-1,.gy-lg-1{--bs-gutter-y: .25rem}.g-lg-2,.gx-lg-2{--bs-gutter-x: .5rem}.g-lg-2,.gy-lg-2{--bs-gutter-y: .5rem}.g-lg-3,.gx-lg-3{--bs-gutter-x: 1rem}.g-lg-3,.gy-lg-3{--bs-gutter-y: 1rem}.g-lg-4,.gx-lg-4{--bs-gutter-x: 1.5rem}.g-lg-4,.gy-lg-4{--bs-gutter-y: 1.5rem}.g-lg-5,.gx-lg-5{--bs-gutter-x: 3rem}.g-lg-5,.gy-lg-5{--bs-gutter-y: 3rem}}@media (min-width: 1200px){.col-xl{flex:1 0 0%}.row-cols-xl-auto>*{flex:0 0 auto;width:auto}.row-cols-xl-1>*{flex:0 0 auto;width:100%}.row-cols-xl-2>*{flex:0 0 auto;width:50%}.row-cols-xl-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-xl-4>*{flex:0 0 auto;width:25%}.row-cols-xl-5>*{flex:0 0 auto;width:20%}.row-cols-xl-6>*{flex:0 0 auto;width:16.66666667%}.col-xl-auto{flex:0 0 auto;width:auto}.col-xl-1{flex:0 0 auto;width:8.33333333%}.col-xl-2{flex:0 0 auto;width:16.66666667%}.col-xl-3{flex:0 0 auto;width:25%}.col-xl-4{flex:0 0 auto;width:33.33333333%}.col-xl-5{flex:0 0 auto;width:41.66666667%}.col-xl-6{flex:0 0 auto;width:50%}.col-xl-7{flex:0 0 auto;width:58.33333333%}.col-xl-8{flex:0 0 auto;width:66.66666667%}.col-xl-9{flex:0 0 auto;width:75%}.col-xl-10{flex:0 0 auto;width:83.33333333%}.col-xl-11{flex:0 0 auto;width:91.66666667%}.col-xl-12{flex:0 0 auto;width:100%}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.33333333%}.offset-xl-2{margin-left:16.66666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.33333333%}.offset-xl-5{margin-left:41.66666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.33333333%}.offset-xl-8{margin-left:66.66666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.33333333%}.offset-xl-11{margin-left:91.66666667%}.g-xl-0,.gx-xl-0{--bs-gutter-x: 0}.g-xl-0,.gy-xl-0{--bs-gutter-y: 0}.g-xl-1,.gx-xl-1{--bs-gutter-x: .25rem}.g-xl-1,.gy-xl-1{--bs-gutter-y: .25rem}.g-xl-2,.gx-xl-2{--bs-gutter-x: .5rem}.g-xl-2,.gy-xl-2{--bs-gutter-y: .5rem}.g-xl-3,.gx-xl-3{--bs-gutter-x: 1rem}.g-xl-3,.gy-xl-3{--bs-gutter-y: 1rem}.g-xl-4,.gx-xl-4{--bs-gutter-x: 1.5rem}.g-xl-4,.gy-xl-4{--bs-gutter-y: 1.5rem}.g-xl-5,.gx-xl-5{--bs-gutter-x: 3rem}.g-xl-5,.gy-xl-5{--bs-gutter-y: 3rem}}@media (min-width: 1400px){.col-xxl{flex:1 0 0%}.row-cols-xxl-auto>*{flex:0 0 auto;width:auto}.row-cols-xxl-1>*{flex:0 0 auto;width:100%}.row-cols-xxl-2>*{flex:0 0 auto;width:50%}.row-cols-xxl-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-xxl-4>*{flex:0 0 auto;width:25%}.row-cols-xxl-5>*{flex:0 0 auto;width:20%}.row-cols-xxl-6>*{flex:0 0 auto;width:16.66666667%}.col-xxl-auto{flex:0 0 auto;width:auto}.col-xxl-1{flex:0 0 auto;width:8.33333333%}.col-xxl-2{flex:0 0 auto;width:16.66666667%}.col-xxl-3{flex:0 0 auto;width:25%}.col-xxl-4{flex:0 0 auto;width:33.33333333%}.col-xxl-5{flex:0 0 auto;width:41.66666667%}.col-xxl-6{flex:0 0 auto;width:50%}.col-xxl-7{flex:0 0 auto;width:58.33333333%}.col-xxl-8{flex:0 0 auto;width:66.66666667%}.col-xxl-9{flex:0 0 auto;width:75%}.col-xxl-10{flex:0 0 auto;width:83.33333333%}.col-xxl-11{flex:0 0 auto;width:91.66666667%}.col-xxl-12{flex:0 0 auto;width:100%}.offset-xxl-0{margin-left:0}.offset-xxl-1{margin-left:8.33333333%}.offset-xxl-2{margin-left:16.66666667%}.offset-xxl-3{margin-left:25%}.offset-xxl-4{margin-left:33.33333333%}.offset-xxl-5{margin-left:41.66666667%}.offset-xxl-6{margin-left:50%}.offset-xxl-7{margin-left:58.33333333%}.offset-xxl-8{margin-left:66.66666667%}.offset-xxl-9{margin-left:75%}.offset-xxl-10{margin-left:83.33333333%}.offset-xxl-11{margin-left:91.66666667%}.g-xxl-0,.gx-xxl-0{--bs-gutter-x: 0}.g-xxl-0,.gy-xxl-0{--bs-gutter-y: 0}.g-xxl-1,.gx-xxl-1{--bs-gutter-x: .25rem}.g-xxl-1,.gy-xxl-1{--bs-gutter-y: .25rem}.g-xxl-2,.gx-xxl-2{--bs-gutter-x: .5rem}.g-xxl-2,.gy-xxl-2{--bs-gutter-y: .5rem}.g-xxl-3,.gx-xxl-3{--bs-gutter-x: 1rem}.g-xxl-3,.gy-xxl-3{--bs-gutter-y: 1rem}.g-xxl-4,.gx-xxl-4{--bs-gutter-x: 1.5rem}.g-xxl-4,.gy-xxl-4{--bs-gutter-y: 1.5rem}.g-xxl-5,.gx-xxl-5{--bs-gutter-x: 3rem}.g-xxl-5,.gy-xxl-5{--bs-gutter-y: 3rem}}.table{--bs-table-color-type: initial;--bs-table-bg-type: initial;--bs-table-color-state: initial;--bs-table-bg-state: initial;--bs-table-color: var(--bs-emphasis-color);--bs-table-bg: var(--bs-body-bg);--bs-table-border-color: var(--bs-border-color);--bs-table-accent-bg: transparent;--bs-table-striped-color: var(--bs-emphasis-color);--bs-table-striped-bg: rgba(var(--bs-emphasis-color-rgb), .05);--bs-table-active-color: var(--bs-emphasis-color);--bs-table-active-bg: rgba(var(--bs-emphasis-color-rgb), .1);--bs-table-hover-color: var(--bs-emphasis-color);--bs-table-hover-bg: rgba(var(--bs-emphasis-color-rgb), .075);width:100%;margin-bottom:1rem;vertical-align:top;border-color:var(--bs-table-border-color)}.table>:not(caption)>*>*{padding:.5rem;color:var(--bs-table-color-state, var(--bs-table-color-type, var(--bs-table-color)));background-color:var(--bs-table-bg);border-bottom-width:var(--bs-border-width);box-shadow:inset 0 0 0 9999px var(--bs-table-bg-state, var(--bs-table-bg-type, var(--bs-table-accent-bg)))}.table>tbody{vertical-align:inherit}.table>thead{vertical-align:bottom}.table-group-divider{border-top:calc(var(--bs-border-width) * 2) solid currentcolor}.caption-top{caption-side:top}.table-sm>:not(caption)>*>*{padding:.25rem}.table-bordered>:not(caption)>*{border-width:var(--bs-border-width) 0}.table-bordered>:not(caption)>*>*{border-width:0 var(--bs-border-width)}.table-borderless>:not(caption)>*>*{border-bottom-width:0}.table-borderless>:not(:first-child){border-top-width:0}.table-striped>tbody>tr:nth-of-type(odd)>*{--bs-table-color-type: var(--bs-table-striped-color);--bs-table-bg-type: var(--bs-table-striped-bg)}.table-striped-columns>:not(caption)>tr>:nth-child(2n){--bs-table-color-type: var(--bs-table-striped-color);--bs-table-bg-type: var(--bs-table-striped-bg)}.table-active{--bs-table-color-state: var(--bs-table-active-color);--bs-table-bg-state: var(--bs-table-active-bg)}.table-hover>tbody>tr:hover>*{--bs-table-color-state: var(--bs-table-hover-color);--bs-table-bg-state: var(--bs-table-hover-bg)}.table-primary{--bs-table-color: #000;--bs-table-bg: rgb(206.6, 226, 254.6);--bs-table-border-color: rgb(165.28, 180.8, 203.68);--bs-table-striped-bg: rgb(196.27, 214.7, 241.87);--bs-table-striped-color: #000;--bs-table-active-bg: rgb(185.94, 203.4, 229.14);--bs-table-active-color: #000;--bs-table-hover-bg: rgb(191.105, 209.05, 235.505);--bs-table-hover-color: #000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-secondary{--bs-table-color: #000;--bs-table-bg: rgb(225.6, 227.4, 229);--bs-table-border-color: rgb(180.48, 181.92, 183.2);--bs-table-striped-bg: rgb(214.32, 216.03, 217.55);--bs-table-striped-color: #000;--bs-table-active-bg: rgb(203.04, 204.66, 206.1);--bs-table-active-color: #000;--bs-table-hover-bg: rgb(208.68, 210.345, 211.825);--bs-table-hover-color: #000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-success{--bs-table-color: #000;--bs-table-bg: rgb(209, 231, 220.8);--bs-table-border-color: rgb(167.2, 184.8, 176.64);--bs-table-striped-bg: rgb(198.55, 219.45, 209.76);--bs-table-striped-color: #000;--bs-table-active-bg: rgb(188.1, 207.9, 198.72);--bs-table-active-color: #000;--bs-table-hover-bg: rgb(193.325, 213.675, 204.24);--bs-table-hover-color: #000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-info{--bs-table-color: #000;--bs-table-bg: rgb(206.6, 244.4, 252);--bs-table-border-color: rgb(165.28, 195.52, 201.6);--bs-table-striped-bg: rgb(196.27, 232.18, 239.4);--bs-table-striped-color: #000;--bs-table-active-bg: rgb(185.94, 219.96, 226.8);--bs-table-active-color: #000;--bs-table-hover-bg: rgb(191.105, 226.07, 233.1);--bs-table-hover-color: #000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-warning{--bs-table-color: #000;--bs-table-bg: rgb(255, 242.6, 205.4);--bs-table-border-color: rgb(204, 194.08, 164.32);--bs-table-striped-bg: rgb(242.25, 230.47, 195.13);--bs-table-striped-color: #000;--bs-table-active-bg: rgb(229.5, 218.34, 184.86);--bs-table-active-color: #000;--bs-table-hover-bg: rgb(235.875, 224.405, 189.995);--bs-table-hover-color: #000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-danger{--bs-table-color: #000;--bs-table-bg: rgb(248, 214.6, 217.8);--bs-table-border-color: rgb(198.4, 171.68, 174.24);--bs-table-striped-bg: rgb(235.6, 203.87, 206.91);--bs-table-striped-color: #000;--bs-table-active-bg: rgb(223.2, 193.14, 196.02);--bs-table-active-color: #000;--bs-table-hover-bg: rgb(229.4, 198.505, 201.465);--bs-table-hover-color: #000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-light{--bs-table-color: #000;--bs-table-bg: #f8f9fa;--bs-table-border-color: rgb(198.4, 199.2, 200);--bs-table-striped-bg: rgb(235.6, 236.55, 237.5);--bs-table-striped-color: #000;--bs-table-active-bg: rgb(223.2, 224.1, 225);--bs-table-active-color: #000;--bs-table-hover-bg: rgb(229.4, 230.325, 231.25);--bs-table-hover-color: #000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-dark{--bs-table-color: #fff;--bs-table-bg: #212529;--bs-table-border-color: rgb(77.4, 80.6, 83.8);--bs-table-striped-bg: rgb(44.1, 47.9, 51.7);--bs-table-striped-color: #fff;--bs-table-active-bg: rgb(55.2, 58.8, 62.4);--bs-table-active-color: #fff;--bs-table-hover-bg: rgb(49.65, 53.35, 57.05);--bs-table-hover-color: #fff;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch}@media (max-width: 575.98px){.table-responsive-sm{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width: 767.98px){.table-responsive-md{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width: 991.98px){.table-responsive-lg{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width: 1199.98px){.table-responsive-xl{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width: 1399.98px){.table-responsive-xxl{overflow-x:auto;-webkit-overflow-scrolling:touch}}.form-label{margin-bottom:.5rem}.col-form-label{padding-top:calc(.375rem + var(--bs-border-width));padding-bottom:calc(.375rem + var(--bs-border-width));margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + var(--bs-border-width));padding-bottom:calc(.5rem + var(--bs-border-width));font-size:1.25rem}.col-form-label-sm{padding-top:calc(.25rem + var(--bs-border-width));padding-bottom:calc(.25rem + var(--bs-border-width));font-size:.875rem}.form-text{margin-top:.25rem;font-size:.875em;color:var(--bs-secondary-color)}.form-control{display:block;width:100%;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:var(--bs-body-color);appearance:none;background-color:var(--bs-body-bg);background-clip:padding-box;border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius);transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-control{transition:none}}.form-control[type=file]{overflow:hidden}.form-control[type=file]:not(:disabled):not([readonly]){cursor:pointer}.form-control:focus{color:var(--bs-body-color);background-color:var(--bs-body-bg);border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem #0d6efd40}.form-control::-webkit-date-and-time-value{min-width:85px;height:1.5em;margin:0}.form-control::-webkit-datetime-edit{display:block;padding:0}.form-control::placeholder{color:var(--bs-secondary-color);opacity:1}.form-control:disabled{background-color:var(--bs-secondary-bg);opacity:1}.form-control::file-selector-button{padding:.375rem .75rem;margin:-.375rem -.75rem;margin-inline-end:.75rem;color:var(--bs-body-color);background-color:var(--bs-tertiary-bg);pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:var(--bs-border-width);border-radius:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-control::file-selector-button{transition:none}}.form-control:hover:not(:disabled):not([readonly])::file-selector-button{background-color:var(--bs-secondary-bg)}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;line-height:1.5;color:var(--bs-body-color);background-color:transparent;border:solid transparent;border-width:var(--bs-border-width) 0}.form-control-plaintext:focus{outline:0}.form-control-plaintext.form-control-sm,.form-control-plaintext.form-control-lg{padding-right:0;padding-left:0}.form-control-sm{min-height:calc(1.5em + .5rem + calc(var(--bs-border-width) * 2));padding:.25rem .5rem;font-size:.875rem;border-radius:var(--bs-border-radius-sm)}.form-control-sm::file-selector-button{padding:.25rem .5rem;margin:-.25rem -.5rem;margin-inline-end:.5rem}.form-control-lg{min-height:calc(1.5em + 1rem + calc(var(--bs-border-width) * 2));padding:.5rem 1rem;font-size:1.25rem;border-radius:var(--bs-border-radius-lg)}.form-control-lg::file-selector-button{padding:.5rem 1rem;margin:-.5rem -1rem;margin-inline-end:1rem}textarea.form-control{min-height:calc(1.5em + .75rem + calc(var(--bs-border-width) * 2))}textarea.form-control-sm{min-height:calc(1.5em + .5rem + calc(var(--bs-border-width) * 2))}textarea.form-control-lg{min-height:calc(1.5em + 1rem + calc(var(--bs-border-width) * 2))}.form-control-color{width:3rem;height:calc(1.5em + .75rem + calc(var(--bs-border-width) * 2));padding:.375rem}.form-control-color:not(:disabled):not([readonly]){cursor:pointer}.form-control-color::-moz-color-swatch{border:0!important;border-radius:var(--bs-border-radius)}.form-control-color::-webkit-color-swatch{border:0!important;border-radius:var(--bs-border-radius)}.form-control-color.form-control-sm{height:calc(1.5em + .5rem + calc(var(--bs-border-width) * 2))}.form-control-color.form-control-lg{height:calc(1.5em + 1rem + calc(var(--bs-border-width) * 2))}.form-select{--bs-form-select-bg-img: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");display:block;width:100%;padding:.375rem 2.25rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:var(--bs-body-color);appearance:none;background-color:var(--bs-body-bg);background-image:var(--bs-form-select-bg-img),var(--bs-form-select-bg-icon, none);background-repeat:no-repeat;background-position:right .75rem center;background-size:16px 12px;border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius);transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-select{transition:none}}.form-select:focus{border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem #0d6efd40}.form-select[multiple],.form-select[size]:not([size="1"]){padding-right:.75rem;background-image:none}.form-select:disabled{background-color:var(--bs-secondary-bg)}.form-select:-moz-focusring{color:transparent;text-shadow:0 0 0 var(--bs-body-color)}.form-select-sm{padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem;border-radius:var(--bs-border-radius-sm)}.form-select-lg{padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem;border-radius:var(--bs-border-radius-lg)}[data-bs-theme=dark] .form-select{--bs-form-select-bg-img: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23dee2e6' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e")}.form-check{display:block;min-height:1.5rem;padding-left:1.5em;margin-bottom:.125rem}.form-check .form-check-input{float:left;margin-left:-1.5em}.form-check-reverse{padding-right:1.5em;padding-left:0;text-align:right}.form-check-reverse .form-check-input{float:right;margin-right:-1.5em;margin-left:0}.form-check-input{--bs-form-check-bg: var(--bs-body-bg);flex-shrink:0;width:1em;height:1em;margin-top:.25em;vertical-align:top;appearance:none;background-color:var(--bs-form-check-bg);background-image:var(--bs-form-check-bg-image);background-repeat:no-repeat;background-position:center;background-size:contain;border:var(--bs-border-width) solid var(--bs-border-color);print-color-adjust:exact}.form-check-input[type=checkbox]{border-radius:.25em}.form-check-input[type=radio]{border-radius:50%}.form-check-input:active{filter:brightness(90%)}.form-check-input:focus{border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem #0d6efd40}.form-check-input:checked{background-color:#0d6efd;border-color:#0d6efd}.form-check-input:checked[type=checkbox]{--bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e")}.form-check-input:checked[type=radio]{--bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fff'/%3e%3c/svg%3e")}.form-check-input[type=checkbox]:indeterminate{background-color:#0d6efd;border-color:#0d6efd;--bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e")}.form-check-input:disabled{pointer-events:none;filter:none;opacity:.5}.form-check-input[disabled]~.form-check-label,.form-check-input:disabled~.form-check-label{cursor:default;opacity:.5}.form-switch{padding-left:2.5em}.form-switch .form-check-input{--bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%280, 0, 0, 0.25%29'/%3e%3c/svg%3e");width:2em;margin-left:-2.5em;background-image:var(--bs-form-switch-bg);background-position:left center;border-radius:2em;transition:background-position .15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-switch .form-check-input{transition:none}}.form-switch .form-check-input:focus{--bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgb%28134, 182.5, 254%29'/%3e%3c/svg%3e")}.form-switch .form-check-input:checked{background-position:right center;--bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e")}.form-switch.form-check-reverse{padding-right:2.5em;padding-left:0}.form-switch.form-check-reverse .form-check-input{margin-right:-2.5em;margin-left:0}.form-check-inline{display:inline-block;margin-right:1rem}.btn-check{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.btn-check[disabled]+.btn,.btn-check:disabled+.btn{pointer-events:none;filter:none;opacity:.65}[data-bs-theme=dark] .form-switch .form-check-input:not(:checked):not(:focus){--bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%28255, 255, 255, 0.25%29'/%3e%3c/svg%3e")}.form-range{width:100%;height:1.5rem;padding:0;appearance:none;background-color:transparent}.form-range:focus{outline:0}.form-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem #0d6efd40}.form-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem #0d6efd40}.form-range::-moz-focus-outer{border:0}.form-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;appearance:none;background-color:#0d6efd;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-range::-webkit-slider-thumb{transition:none}}.form-range::-webkit-slider-thumb:active{background-color:#b6d4fe}.form-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:var(--bs-secondary-bg);border-color:transparent;border-radius:1rem}.form-range::-moz-range-thumb{width:1rem;height:1rem;appearance:none;background-color:#0d6efd;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-range::-moz-range-thumb{transition:none}}.form-range::-moz-range-thumb:active{background-color:#b6d4fe}.form-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:var(--bs-secondary-bg);border-color:transparent;border-radius:1rem}.form-range:disabled{pointer-events:none}.form-range:disabled::-webkit-slider-thumb{background-color:var(--bs-secondary-color)}.form-range:disabled::-moz-range-thumb{background-color:var(--bs-secondary-color)}.form-floating{position:relative}.form-floating>.form-control,.form-floating>.form-control-plaintext,.form-floating>.form-select{height:calc(3.5rem + calc(var(--bs-border-width) * 2));min-height:calc(3.5rem + calc(var(--bs-border-width) * 2));line-height:1.25}.form-floating>label{position:absolute;top:0;left:0;z-index:2;height:100%;padding:1rem .75rem;overflow:hidden;text-align:start;text-overflow:ellipsis;white-space:nowrap;pointer-events:none;border:var(--bs-border-width) solid transparent;transform-origin:0 0;transition:opacity .1s ease-in-out,transform .1s ease-in-out}@media (prefers-reduced-motion: reduce){.form-floating>label{transition:none}}.form-floating>.form-control,.form-floating>.form-control-plaintext{padding:1rem .75rem}.form-floating>.form-control::placeholder,.form-floating>.form-control-plaintext::placeholder{color:transparent}.form-floating>.form-control:focus,.form-floating>.form-control:not(:placeholder-shown),.form-floating>.form-control-plaintext:focus,.form-floating>.form-control-plaintext:not(:placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:-webkit-autofill,.form-floating>.form-control-plaintext:-webkit-autofill{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-select{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:focus~label,.form-floating>.form-control:not(:placeholder-shown)~label,.form-floating>.form-control-plaintext~label,.form-floating>.form-select~label{color:rgba(var(--bs-body-color-rgb),.65);transform:scale(.85) translateY(-.5rem) translate(.15rem)}.form-floating>.form-control:focus~label:after,.form-floating>.form-control:not(:placeholder-shown)~label:after,.form-floating>.form-control-plaintext~label:after,.form-floating>.form-select~label:after{position:absolute;inset:1rem .375rem;z-index:-1;height:1.5em;content:"";background-color:var(--bs-body-bg);border-radius:var(--bs-border-radius)}.form-floating>.form-control:-webkit-autofill~label{color:rgba(var(--bs-body-color-rgb),.65);transform:scale(.85) translateY(-.5rem) translate(.15rem)}.form-floating>.form-control-plaintext~label{border-width:var(--bs-border-width) 0}.form-floating>:disabled~label,.form-floating>.form-control:disabled~label{color:#6c757d}.form-floating>:disabled~label:after,.form-floating>.form-control:disabled~label:after{background-color:var(--bs-secondary-bg)}.input-group{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}.input-group>.form-control,.input-group>.form-select,.input-group>.form-floating{position:relative;flex:1 1 auto;width:1%;min-width:0}.input-group>.form-control:focus,.input-group>.form-select:focus,.input-group>.form-floating:focus-within{z-index:5}.input-group .btn{position:relative;z-index:2}.input-group .btn:focus{z-index:5}.input-group-text{display:flex;align-items:center;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:var(--bs-body-color);text-align:center;white-space:nowrap;background-color:var(--bs-tertiary-bg);border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius)}.input-group-lg>.form-control,.input-group-lg>.form-select,.input-group-lg>.input-group-text,.input-group-lg>.btn{padding:.5rem 1rem;font-size:1.25rem;border-radius:var(--bs-border-radius-lg)}.input-group-sm>.form-control,.input-group-sm>.form-select,.input-group-sm>.input-group-text,.input-group-sm>.btn{padding:.25rem .5rem;font-size:.875rem;border-radius:var(--bs-border-radius-sm)}.input-group-lg>.form-select,.input-group-sm>.form-select{padding-right:3rem}.input-group:not(.has-validation)>:not(:last-child):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating),.input-group:not(.has-validation)>.dropdown-toggle:nth-last-child(n+3),.input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-control,.input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-select{border-top-right-radius:0;border-bottom-right-radius:0}.input-group.has-validation>:nth-last-child(n+3):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating),.input-group.has-validation>.dropdown-toggle:nth-last-child(n+4),.input-group.has-validation>.form-floating:nth-last-child(n+3)>.form-control,.input-group.has-validation>.form-floating:nth-last-child(n+3)>.form-select{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>:not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback){margin-left:calc(var(--bs-border-width) * -1);border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.form-floating:not(:first-child)>.form-control,.input-group>.form-floating:not(:first-child)>.form-select{border-top-left-radius:0;border-bottom-left-radius:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:var(--bs-form-valid-color)}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;color:#fff;background-color:var(--bs-success);border-radius:var(--bs-border-radius)}.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip,.is-valid~.valid-feedback,.is-valid~.valid-tooltip{display:block}.was-validated .form-control:valid,.form-control.is-valid{border-color:var(--bs-form-valid-border-color);padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.was-validated .form-control:valid:focus,.form-control.is-valid:focus{border-color:var(--bs-form-valid-border-color);box-shadow:0 0 0 .25rem rgba(var(--bs-success-rgb),.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.was-validated .form-select:valid,.form-select.is-valid{border-color:var(--bs-form-valid-border-color)}.was-validated .form-select:valid:not([multiple]):not([size]),.was-validated .form-select:valid:not([multiple])[size="1"],.form-select.is-valid:not([multiple]):not([size]),.form-select.is-valid:not([multiple])[size="1"]{--bs-form-select-bg-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");padding-right:4.125rem;background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.75em + .375rem) calc(.75em + .375rem)}.was-validated .form-select:valid:focus,.form-select.is-valid:focus{border-color:var(--bs-form-valid-border-color);box-shadow:0 0 0 .25rem rgba(var(--bs-success-rgb),.25)}.was-validated .form-control-color:valid,.form-control-color.is-valid{width:calc(3.75rem + 1.5em)}.was-validated .form-check-input:valid,.form-check-input.is-valid{border-color:var(--bs-form-valid-border-color)}.was-validated .form-check-input:valid:checked,.form-check-input.is-valid:checked{background-color:var(--bs-form-valid-color)}.was-validated .form-check-input:valid:focus,.form-check-input.is-valid:focus{box-shadow:0 0 0 .25rem rgba(var(--bs-success-rgb),.25)}.was-validated .form-check-input:valid~.form-check-label,.form-check-input.is-valid~.form-check-label{color:var(--bs-form-valid-color)}.form-check-inline .form-check-input~.valid-feedback{margin-left:.5em}.was-validated .input-group>.form-control:not(:focus):valid,.input-group>.form-control:not(:focus).is-valid,.was-validated .input-group>.form-select:not(:focus):valid,.input-group>.form-select:not(:focus).is-valid,.was-validated .input-group>.form-floating:not(:focus-within):valid,.input-group>.form-floating:not(:focus-within).is-valid{z-index:3}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:var(--bs-form-invalid-color)}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;color:#fff;background-color:var(--bs-danger);border-radius:var(--bs-border-radius)}.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip,.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip{display:block}.was-validated .form-control:invalid,.form-control.is-invalid{border-color:var(--bs-form-invalid-border-color);padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.was-validated .form-control:invalid:focus,.form-control.is-invalid:focus{border-color:var(--bs-form-invalid-border-color);box-shadow:0 0 0 .25rem rgba(var(--bs-danger-rgb),.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.was-validated .form-select:invalid,.form-select.is-invalid{border-color:var(--bs-form-invalid-border-color)}.was-validated .form-select:invalid:not([multiple]):not([size]),.was-validated .form-select:invalid:not([multiple])[size="1"],.form-select.is-invalid:not([multiple]):not([size]),.form-select.is-invalid:not([multiple])[size="1"]{--bs-form-select-bg-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");padding-right:4.125rem;background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.75em + .375rem) calc(.75em + .375rem)}.was-validated .form-select:invalid:focus,.form-select.is-invalid:focus{border-color:var(--bs-form-invalid-border-color);box-shadow:0 0 0 .25rem rgba(var(--bs-danger-rgb),.25)}.was-validated .form-control-color:invalid,.form-control-color.is-invalid{width:calc(3.75rem + 1.5em)}.was-validated .form-check-input:invalid,.form-check-input.is-invalid{border-color:var(--bs-form-invalid-border-color)}.was-validated .form-check-input:invalid:checked,.form-check-input.is-invalid:checked{background-color:var(--bs-form-invalid-color)}.was-validated .form-check-input:invalid:focus,.form-check-input.is-invalid:focus{box-shadow:0 0 0 .25rem rgba(var(--bs-danger-rgb),.25)}.was-validated .form-check-input:invalid~.form-check-label,.form-check-input.is-invalid~.form-check-label{color:var(--bs-form-invalid-color)}.form-check-inline .form-check-input~.invalid-feedback{margin-left:.5em}.was-validated .input-group>.form-control:not(:focus):invalid,.input-group>.form-control:not(:focus).is-invalid,.was-validated .input-group>.form-select:not(:focus):invalid,.input-group>.form-select:not(:focus).is-invalid,.was-validated .input-group>.form-floating:not(:focus-within):invalid,.input-group>.form-floating:not(:focus-within).is-invalid{z-index:4}.btn{--bs-btn-padding-x: .75rem;--bs-btn-padding-y: .375rem;--bs-btn-font-family: ;--bs-btn-font-size: 1rem;--bs-btn-font-weight: 400;--bs-btn-line-height: 1.5;--bs-btn-color: var(--bs-body-color);--bs-btn-bg: transparent;--bs-btn-border-width: var(--bs-border-width);--bs-btn-border-color: transparent;--bs-btn-border-radius: var(--bs-border-radius);--bs-btn-hover-border-color: transparent;--bs-btn-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 1px rgba(0, 0, 0, .075);--bs-btn-disabled-opacity: .65;--bs-btn-focus-box-shadow: 0 0 0 .25rem rgba(var(--bs-btn-focus-shadow-rgb), .5);display:inline-block;padding:var(--bs-btn-padding-y) var(--bs-btn-padding-x);font-family:var(--bs-btn-font-family);font-size:var(--bs-btn-font-size);font-weight:var(--bs-btn-font-weight);line-height:var(--bs-btn-line-height);color:var(--bs-btn-color);text-align:center;text-decoration:none;vertical-align:middle;cursor:pointer;user-select:none;border:var(--bs-btn-border-width) solid var(--bs-btn-border-color);border-radius:var(--bs-btn-border-radius);background-color:var(--bs-btn-bg);transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion: reduce){.btn{transition:none}}.btn:hover{color:var(--bs-btn-hover-color);background-color:var(--bs-btn-hover-bg);border-color:var(--bs-btn-hover-border-color)}.btn-check+.btn:hover{color:var(--bs-btn-color);background-color:var(--bs-btn-bg);border-color:var(--bs-btn-border-color)}.btn:focus-visible{color:var(--bs-btn-hover-color);background-color:var(--bs-btn-hover-bg);border-color:var(--bs-btn-hover-border-color);outline:0;box-shadow:var(--bs-btn-focus-box-shadow)}.btn-check:focus-visible+.btn{border-color:var(--bs-btn-hover-border-color);outline:0;box-shadow:var(--bs-btn-focus-box-shadow)}.btn-check:checked+.btn,:not(.btn-check)+.btn:active,.btn:first-child:active,.btn.active,.btn.show{color:var(--bs-btn-active-color);background-color:var(--bs-btn-active-bg);border-color:var(--bs-btn-active-border-color)}.btn-check:checked+.btn:focus-visible,:not(.btn-check)+.btn:active:focus-visible,.btn:first-child:active:focus-visible,.btn.active:focus-visible,.btn.show:focus-visible{box-shadow:var(--bs-btn-focus-box-shadow)}.btn-check:checked:focus-visible+.btn{box-shadow:var(--bs-btn-focus-box-shadow)}.btn:disabled,.btn.disabled,fieldset:disabled .btn{color:var(--bs-btn-disabled-color);pointer-events:none;background-color:var(--bs-btn-disabled-bg);border-color:var(--bs-btn-disabled-border-color);opacity:var(--bs-btn-disabled-opacity)}.btn-primary{--bs-btn-color: #fff;--bs-btn-bg: #0d6efd;--bs-btn-border-color: #0d6efd;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: rgb(11.05, 93.5, 215.05);--bs-btn-hover-border-color: rgb(10.4, 88, 202.4);--bs-btn-focus-shadow-rgb: 49, 132, 253;--bs-btn-active-color: #fff;--bs-btn-active-bg: rgb(10.4, 88, 202.4);--bs-btn-active-border-color: rgb(9.75, 82.5, 189.75);--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #0d6efd;--bs-btn-disabled-border-color: #0d6efd}.btn-secondary{--bs-btn-color: #fff;--bs-btn-bg: #6c757d;--bs-btn-border-color: #6c757d;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: rgb(91.8, 99.45, 106.25);--bs-btn-hover-border-color: rgb(86.4, 93.6, 100);--bs-btn-focus-shadow-rgb: 130, 138, 145;--bs-btn-active-color: #fff;--bs-btn-active-bg: rgb(86.4, 93.6, 100);--bs-btn-active-border-color: rgb(81, 87.75, 93.75);--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #6c757d;--bs-btn-disabled-border-color: #6c757d}.btn-success{--bs-btn-color: #fff;--bs-btn-bg: #198754;--bs-btn-border-color: #198754;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: rgb(21.25, 114.75, 71.4);--bs-btn-hover-border-color: rgb(20, 108, 67.2);--bs-btn-focus-shadow-rgb: 60, 153, 110;--bs-btn-active-color: #fff;--bs-btn-active-bg: rgb(20, 108, 67.2);--bs-btn-active-border-color: rgb(18.75, 101.25, 63);--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #198754;--bs-btn-disabled-border-color: #198754}.btn-info{--bs-btn-color: #000;--bs-btn-bg: #0dcaf0;--bs-btn-border-color: #0dcaf0;--bs-btn-hover-color: #000;--bs-btn-hover-bg: rgb(49.3, 209.95, 242.25);--bs-btn-hover-border-color: rgb(37.2, 207.3, 241.5);--bs-btn-focus-shadow-rgb: 11, 172, 204;--bs-btn-active-color: #000;--bs-btn-active-bg: rgb(61.4, 212.6, 243);--bs-btn-active-border-color: rgb(37.2, 207.3, 241.5);--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #000;--bs-btn-disabled-bg: #0dcaf0;--bs-btn-disabled-border-color: #0dcaf0}.btn-warning{--bs-btn-color: #000;--bs-btn-bg: #ffc107;--bs-btn-border-color: #ffc107;--bs-btn-hover-color: #000;--bs-btn-hover-bg: rgb(255, 202.3, 44.2);--bs-btn-hover-border-color: rgb(255, 199.2, 31.8);--bs-btn-focus-shadow-rgb: 217, 164, 6;--bs-btn-active-color: #000;--bs-btn-active-bg: rgb(255, 205.4, 56.6);--bs-btn-active-border-color: rgb(255, 199.2, 31.8);--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #000;--bs-btn-disabled-bg: #ffc107;--bs-btn-disabled-border-color: #ffc107}.btn-danger{--bs-btn-color: #fff;--bs-btn-bg: #dc3545;--bs-btn-border-color: #dc3545;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: rgb(187, 45.05, 58.65);--bs-btn-hover-border-color: rgb(176, 42.4, 55.2);--bs-btn-focus-shadow-rgb: 225, 83, 97;--bs-btn-active-color: #fff;--bs-btn-active-bg: rgb(176, 42.4, 55.2);--bs-btn-active-border-color: rgb(165, 39.75, 51.75);--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #dc3545;--bs-btn-disabled-border-color: #dc3545}.btn-light{--bs-btn-color: #000;--bs-btn-bg: #f8f9fa;--bs-btn-border-color: #f8f9fa;--bs-btn-hover-color: #000;--bs-btn-hover-bg: rgb(210.8, 211.65, 212.5);--bs-btn-hover-border-color: rgb(198.4, 199.2, 200);--bs-btn-focus-shadow-rgb: 211, 212, 213;--bs-btn-active-color: #000;--bs-btn-active-bg: rgb(198.4, 199.2, 200);--bs-btn-active-border-color: rgb(186, 186.75, 187.5);--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #000;--bs-btn-disabled-bg: #f8f9fa;--bs-btn-disabled-border-color: #f8f9fa}.btn-dark{--bs-btn-color: #fff;--bs-btn-bg: #212529;--bs-btn-border-color: #212529;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: rgb(66.3, 69.7, 73.1);--bs-btn-hover-border-color: rgb(55.2, 58.8, 62.4);--bs-btn-focus-shadow-rgb: 66, 70, 73;--bs-btn-active-color: #fff;--bs-btn-active-bg: rgb(77.4, 80.6, 83.8);--bs-btn-active-border-color: rgb(55.2, 58.8, 62.4);--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #212529;--bs-btn-disabled-border-color: #212529}.btn-outline-primary{--bs-btn-color: #0d6efd;--bs-btn-border-color: #0d6efd;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #0d6efd;--bs-btn-hover-border-color: #0d6efd;--bs-btn-focus-shadow-rgb: 13, 110, 253;--bs-btn-active-color: #fff;--bs-btn-active-bg: #0d6efd;--bs-btn-active-border-color: #0d6efd;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #0d6efd;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #0d6efd;--bs-gradient: none}.btn-outline-secondary{--bs-btn-color: #6c757d;--bs-btn-border-color: #6c757d;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #6c757d;--bs-btn-hover-border-color: #6c757d;--bs-btn-focus-shadow-rgb: 108, 117, 125;--bs-btn-active-color: #fff;--bs-btn-active-bg: #6c757d;--bs-btn-active-border-color: #6c757d;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #6c757d;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #6c757d;--bs-gradient: none}.btn-outline-success{--bs-btn-color: #198754;--bs-btn-border-color: #198754;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #198754;--bs-btn-hover-border-color: #198754;--bs-btn-focus-shadow-rgb: 25, 135, 84;--bs-btn-active-color: #fff;--bs-btn-active-bg: #198754;--bs-btn-active-border-color: #198754;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #198754;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #198754;--bs-gradient: none}.btn-outline-info{--bs-btn-color: #0dcaf0;--bs-btn-border-color: #0dcaf0;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #0dcaf0;--bs-btn-hover-border-color: #0dcaf0;--bs-btn-focus-shadow-rgb: 13, 202, 240;--bs-btn-active-color: #000;--bs-btn-active-bg: #0dcaf0;--bs-btn-active-border-color: #0dcaf0;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #0dcaf0;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #0dcaf0;--bs-gradient: none}.btn-outline-warning{--bs-btn-color: #ffc107;--bs-btn-border-color: #ffc107;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #ffc107;--bs-btn-hover-border-color: #ffc107;--bs-btn-focus-shadow-rgb: 255, 193, 7;--bs-btn-active-color: #000;--bs-btn-active-bg: #ffc107;--bs-btn-active-border-color: #ffc107;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #ffc107;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #ffc107;--bs-gradient: none}.btn-outline-danger{--bs-btn-color: #dc3545;--bs-btn-border-color: #dc3545;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #dc3545;--bs-btn-hover-border-color: #dc3545;--bs-btn-focus-shadow-rgb: 220, 53, 69;--bs-btn-active-color: #fff;--bs-btn-active-bg: #dc3545;--bs-btn-active-border-color: #dc3545;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #dc3545;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #dc3545;--bs-gradient: none}.btn-outline-light{--bs-btn-color: #f8f9fa;--bs-btn-border-color: #f8f9fa;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #f8f9fa;--bs-btn-hover-border-color: #f8f9fa;--bs-btn-focus-shadow-rgb: 248, 249, 250;--bs-btn-active-color: #000;--bs-btn-active-bg: #f8f9fa;--bs-btn-active-border-color: #f8f9fa;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #f8f9fa;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #f8f9fa;--bs-gradient: none}.btn-outline-dark{--bs-btn-color: #212529;--bs-btn-border-color: #212529;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #212529;--bs-btn-hover-border-color: #212529;--bs-btn-focus-shadow-rgb: 33, 37, 41;--bs-btn-active-color: #fff;--bs-btn-active-bg: #212529;--bs-btn-active-border-color: #212529;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #212529;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #212529;--bs-gradient: none}.btn-link{--bs-btn-font-weight: 400;--bs-btn-color: var(--bs-link-color);--bs-btn-bg: transparent;--bs-btn-border-color: transparent;--bs-btn-hover-color: var(--bs-link-hover-color);--bs-btn-hover-border-color: transparent;--bs-btn-active-color: var(--bs-link-hover-color);--bs-btn-active-border-color: transparent;--bs-btn-disabled-color: #6c757d;--bs-btn-disabled-border-color: transparent;--bs-btn-box-shadow: 0 0 0 #000;--bs-btn-focus-shadow-rgb: 49, 132, 253;text-decoration:underline}.btn-link:focus-visible{color:var(--bs-btn-color)}.btn-link:hover{color:var(--bs-btn-hover-color)}.btn-lg,.btn-group-lg>.btn{--bs-btn-padding-y: .5rem;--bs-btn-padding-x: 1rem;--bs-btn-font-size: 1.25rem;--bs-btn-border-radius: var(--bs-border-radius-lg)}.btn-sm,.btn-group-sm>.btn{--bs-btn-padding-y: .25rem;--bs-btn-padding-x: .5rem;--bs-btn-font-size: .875rem;--bs-btn-border-radius: var(--bs-border-radius-sm)}.fade{transition:opacity .15s linear}@media (prefers-reduced-motion: reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{height:0;overflow:hidden;transition:height .35s ease}@media (prefers-reduced-motion: reduce){.collapsing{transition:none}}.collapsing.collapse-horizontal{width:0;height:auto;transition:width .35s ease}@media (prefers-reduced-motion: reduce){.collapsing.collapse-horizontal{transition:none}}.dropup,.dropend,.dropdown,.dropstart,.dropup-center,.dropdown-center{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty:after{margin-left:0}.dropdown-menu{--bs-dropdown-zindex: 1000;--bs-dropdown-min-width: 10rem;--bs-dropdown-padding-x: 0;--bs-dropdown-padding-y: .5rem;--bs-dropdown-spacer: .125rem;--bs-dropdown-font-size: 1rem;--bs-dropdown-color: var(--bs-body-color);--bs-dropdown-bg: var(--bs-body-bg);--bs-dropdown-border-color: var(--bs-border-color-translucent);--bs-dropdown-border-radius: var(--bs-border-radius);--bs-dropdown-border-width: var(--bs-border-width);--bs-dropdown-inner-border-radius: calc(var(--bs-border-radius) - var(--bs-border-width));--bs-dropdown-divider-bg: var(--bs-border-color-translucent);--bs-dropdown-divider-margin-y: .5rem;--bs-dropdown-box-shadow: var(--bs-box-shadow);--bs-dropdown-link-color: var(--bs-body-color);--bs-dropdown-link-hover-color: var(--bs-body-color);--bs-dropdown-link-hover-bg: var(--bs-tertiary-bg);--bs-dropdown-link-active-color: #fff;--bs-dropdown-link-active-bg: #0d6efd;--bs-dropdown-link-disabled-color: var(--bs-tertiary-color);--bs-dropdown-item-padding-x: 1rem;--bs-dropdown-item-padding-y: .25rem;--bs-dropdown-header-color: #6c757d;--bs-dropdown-header-padding-x: 1rem;--bs-dropdown-header-padding-y: .5rem;position:absolute;z-index:var(--bs-dropdown-zindex);display:none;min-width:var(--bs-dropdown-min-width);padding:var(--bs-dropdown-padding-y) var(--bs-dropdown-padding-x);margin:0;font-size:var(--bs-dropdown-font-size);color:var(--bs-dropdown-color);text-align:left;list-style:none;background-color:var(--bs-dropdown-bg);background-clip:padding-box;border:var(--bs-dropdown-border-width) solid var(--bs-dropdown-border-color);border-radius:var(--bs-dropdown-border-radius)}.dropdown-menu[data-bs-popper]{top:100%;left:0;margin-top:var(--bs-dropdown-spacer)}.dropdown-menu-start{--bs-position: start}.dropdown-menu-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-end{--bs-position: end}.dropdown-menu-end[data-bs-popper]{right:0;left:auto}@media (min-width: 576px){.dropdown-menu-sm-start{--bs-position: start}.dropdown-menu-sm-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-sm-end{--bs-position: end}.dropdown-menu-sm-end[data-bs-popper]{right:0;left:auto}}@media (min-width: 768px){.dropdown-menu-md-start{--bs-position: start}.dropdown-menu-md-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-md-end{--bs-position: end}.dropdown-menu-md-end[data-bs-popper]{right:0;left:auto}}@media (min-width: 992px){.dropdown-menu-lg-start{--bs-position: start}.dropdown-menu-lg-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-lg-end{--bs-position: end}.dropdown-menu-lg-end[data-bs-popper]{right:0;left:auto}}@media (min-width: 1200px){.dropdown-menu-xl-start{--bs-position: start}.dropdown-menu-xl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xl-end{--bs-position: end}.dropdown-menu-xl-end[data-bs-popper]{right:0;left:auto}}@media (min-width: 1400px){.dropdown-menu-xxl-start{--bs-position: start}.dropdown-menu-xxl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xxl-end{--bs-position: end}.dropdown-menu-xxl-end[data-bs-popper]{right:0;left:auto}}.dropup .dropdown-menu[data-bs-popper]{top:auto;bottom:100%;margin-top:0;margin-bottom:var(--bs-dropdown-spacer)}.dropup .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty:after{margin-left:0}.dropend .dropdown-menu[data-bs-popper]{top:0;right:auto;left:100%;margin-top:0;margin-left:var(--bs-dropdown-spacer)}.dropend .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropend .dropdown-toggle:empty:after{margin-left:0}.dropend .dropdown-toggle:after{vertical-align:0}.dropstart .dropdown-menu[data-bs-popper]{top:0;right:100%;left:auto;margin-top:0;margin-right:var(--bs-dropdown-spacer)}.dropstart .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:""}.dropstart .dropdown-toggle:after{display:none}.dropstart .dropdown-toggle:before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropstart .dropdown-toggle:empty:after{margin-left:0}.dropstart .dropdown-toggle:before{vertical-align:0}.dropdown-divider{height:0;margin:var(--bs-dropdown-divider-margin-y) 0;overflow:hidden;border-top:1px solid var(--bs-dropdown-divider-bg);opacity:1}.dropdown-item{display:block;width:100%;padding:var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x);clear:both;font-weight:400;color:var(--bs-dropdown-link-color);text-align:inherit;text-decoration:none;white-space:nowrap;background-color:transparent;border:0;border-radius:var(--bs-dropdown-item-border-radius, 0)}.dropdown-item:hover,.dropdown-item:focus{color:var(--bs-dropdown-link-hover-color);background-color:var(--bs-dropdown-link-hover-bg)}.dropdown-item.active,.dropdown-item:active{color:var(--bs-dropdown-link-active-color);text-decoration:none;background-color:var(--bs-dropdown-link-active-bg)}.dropdown-item.disabled,.dropdown-item:disabled{color:var(--bs-dropdown-link-disabled-color);pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:var(--bs-dropdown-header-padding-y) var(--bs-dropdown-header-padding-x);margin-bottom:0;font-size:.875rem;color:var(--bs-dropdown-header-color);white-space:nowrap}.dropdown-item-text{display:block;padding:var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x);color:var(--bs-dropdown-link-color)}.dropdown-menu-dark{--bs-dropdown-color: #dee2e6;--bs-dropdown-bg: #343a40;--bs-dropdown-border-color: var(--bs-border-color-translucent);--bs-dropdown-box-shadow: ;--bs-dropdown-link-color: #dee2e6;--bs-dropdown-link-hover-color: #fff;--bs-dropdown-divider-bg: var(--bs-border-color-translucent);--bs-dropdown-link-hover-bg: rgba(255, 255, 255, .15);--bs-dropdown-link-active-color: #fff;--bs-dropdown-link-active-bg: #0d6efd;--bs-dropdown-link-disabled-color: #adb5bd;--bs-dropdown-header-color: #adb5bd}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;flex:1 1 auto}.btn-group>.btn-check:checked+.btn,.btn-group>.btn-check:focus+.btn,.btn-group>.btn:hover,.btn-group>.btn:focus,.btn-group>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn-check:checked+.btn,.btn-group-vertical>.btn-check:focus+.btn,.btn-group-vertical>.btn:hover,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn.active{z-index:1}.btn-toolbar{display:flex;flex-wrap:wrap;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group{border-radius:var(--bs-border-radius)}.btn-group>:not(.btn-check:first-child)+.btn,.btn-group>.btn-group:not(:first-child){margin-left:calc(var(--bs-border-width) * -1)}.btn-group>.btn:not(:last-child):not(.dropdown-toggle),.btn-group>.btn.dropdown-toggle-split:first-child,.btn-group>.btn-group:not(:last-child)>.btn{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:nth-child(n+3),.btn-group>:not(.btn-check)+.btn,.btn-group>.btn-group:not(:first-child)>.btn{border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split:after,.dropup .dropdown-toggle-split:after,.dropend .dropdown-toggle-split:after{margin-left:0}.dropstart .dropdown-toggle-split:before{margin-right:0}.btn-sm+.dropdown-toggle-split,.btn-group-sm>.btn+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-lg+.dropdown-toggle-split,.btn-group-lg>.btn+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{flex-direction:column;align-items:flex-start;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn:not(:first-child),.btn-group-vertical>.btn-group:not(:first-child){margin-top:calc(var(--bs-border-width) * -1)}.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle),.btn-group-vertical>.btn-group:not(:last-child)>.btn{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn~.btn,.btn-group-vertical>.btn-group:not(:first-child)>.btn{border-top-left-radius:0;border-top-right-radius:0}.nav{--bs-nav-link-padding-x: 1rem;--bs-nav-link-padding-y: .5rem;--bs-nav-link-font-weight: ;--bs-nav-link-color: var(--bs-link-color);--bs-nav-link-hover-color: var(--bs-link-hover-color);--bs-nav-link-disabled-color: var(--bs-secondary-color);display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:var(--bs-nav-link-padding-y) var(--bs-nav-link-padding-x);font-size:var(--bs-nav-link-font-size);font-weight:var(--bs-nav-link-font-weight);color:var(--bs-nav-link-color);text-decoration:none;background:none;border:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out}@media (prefers-reduced-motion: reduce){.nav-link{transition:none}}.nav-link:hover,.nav-link:focus{color:var(--bs-nav-link-hover-color)}.nav-link:focus-visible{outline:0;box-shadow:0 0 0 .25rem #0d6efd40}.nav-link.disabled,.nav-link:disabled{color:var(--bs-nav-link-disabled-color);pointer-events:none;cursor:default}.nav-tabs{--bs-nav-tabs-border-width: var(--bs-border-width);--bs-nav-tabs-border-color: var(--bs-border-color);--bs-nav-tabs-border-radius: var(--bs-border-radius);--bs-nav-tabs-link-hover-border-color: var(--bs-secondary-bg) var(--bs-secondary-bg) var(--bs-border-color);--bs-nav-tabs-link-active-color: var(--bs-emphasis-color);--bs-nav-tabs-link-active-bg: var(--bs-body-bg);--bs-nav-tabs-link-active-border-color: var(--bs-border-color) var(--bs-border-color) var(--bs-body-bg);border-bottom:var(--bs-nav-tabs-border-width) solid var(--bs-nav-tabs-border-color)}.nav-tabs .nav-link{margin-bottom:calc(-1 * var(--bs-nav-tabs-border-width));border:var(--bs-nav-tabs-border-width) solid transparent;border-top-left-radius:var(--bs-nav-tabs-border-radius);border-top-right-radius:var(--bs-nav-tabs-border-radius)}.nav-tabs .nav-link:hover,.nav-tabs .nav-link:focus{isolation:isolate;border-color:var(--bs-nav-tabs-link-hover-border-color)}.nav-tabs .nav-link.active,.nav-tabs .nav-item.show .nav-link{color:var(--bs-nav-tabs-link-active-color);background-color:var(--bs-nav-tabs-link-active-bg);border-color:var(--bs-nav-tabs-link-active-border-color)}.nav-tabs .dropdown-menu{margin-top:calc(-1 * var(--bs-nav-tabs-border-width));border-top-left-radius:0;border-top-right-radius:0}.nav-pills{--bs-nav-pills-border-radius: var(--bs-border-radius);--bs-nav-pills-link-active-color: #fff;--bs-nav-pills-link-active-bg: #0d6efd}.nav-pills .nav-link{border-radius:var(--bs-nav-pills-border-radius)}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:var(--bs-nav-pills-link-active-color);background-color:var(--bs-nav-pills-link-active-bg)}.nav-underline{--bs-nav-underline-gap: 1rem;--bs-nav-underline-border-width: .125rem;--bs-nav-underline-link-active-color: var(--bs-emphasis-color);gap:var(--bs-nav-underline-gap)}.nav-underline .nav-link{padding-right:0;padding-left:0;border-bottom:var(--bs-nav-underline-border-width) solid transparent}.nav-underline .nav-link:hover,.nav-underline .nav-link:focus{border-bottom-color:currentcolor}.nav-underline .nav-link.active,.nav-underline .show>.nav-link{font-weight:700;color:var(--bs-nav-underline-link-active-color);border-bottom-color:currentcolor}.nav-fill>.nav-link,.nav-fill .nav-item{flex:1 1 auto;text-align:center}.nav-justified>.nav-link,.nav-justified .nav-item{flex-basis:0;flex-grow:1;text-align:center}.nav-fill .nav-item .nav-link,.nav-justified .nav-item .nav-link{width:100%}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{--bs-navbar-padding-x: 0;--bs-navbar-padding-y: .5rem;--bs-navbar-color: rgba(var(--bs-emphasis-color-rgb), .65);--bs-navbar-hover-color: rgba(var(--bs-emphasis-color-rgb), .8);--bs-navbar-disabled-color: rgba(var(--bs-emphasis-color-rgb), .3);--bs-navbar-active-color: rgba(var(--bs-emphasis-color-rgb), 1);--bs-navbar-brand-padding-y: .3125rem;--bs-navbar-brand-margin-end: 1rem;--bs-navbar-brand-font-size: 1.25rem;--bs-navbar-brand-color: rgba(var(--bs-emphasis-color-rgb), 1);--bs-navbar-brand-hover-color: rgba(var(--bs-emphasis-color-rgb), 1);--bs-navbar-nav-link-padding-x: .5rem;--bs-navbar-toggler-padding-y: .25rem;--bs-navbar-toggler-padding-x: .75rem;--bs-navbar-toggler-font-size: 1.25rem;--bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%2833, 37, 41, 0.75%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");--bs-navbar-toggler-border-color: rgba(var(--bs-emphasis-color-rgb), .15);--bs-navbar-toggler-border-radius: var(--bs-border-radius);--bs-navbar-toggler-focus-width: .25rem;--bs-navbar-toggler-transition: box-shadow .15s ease-in-out;position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;padding:var(--bs-navbar-padding-y) var(--bs-navbar-padding-x)}.navbar>.container,.navbar>.container-fluid,.navbar>.container-xxl{display:flex;flex-wrap:inherit;align-items:center;justify-content:space-between}.navbar-brand{padding-top:var(--bs-navbar-brand-padding-y);padding-bottom:var(--bs-navbar-brand-padding-y);margin-right:var(--bs-navbar-brand-margin-end);font-size:var(--bs-navbar-brand-font-size);color:var(--bs-navbar-brand-color);text-decoration:none;white-space:nowrap}.navbar-brand:hover,.navbar-brand:focus{color:var(--bs-navbar-brand-hover-color)}.navbar-nav{--bs-nav-link-padding-x: 0;--bs-nav-link-padding-y: .5rem;--bs-nav-link-font-weight: ;--bs-nav-link-color: var(--bs-navbar-color);--bs-nav-link-hover-color: var(--bs-navbar-hover-color);--bs-nav-link-disabled-color: var(--bs-navbar-disabled-color);display:flex;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link.active,.navbar-nav .nav-link.show{color:var(--bs-navbar-active-color)}.navbar-nav .dropdown-menu{position:static}.navbar-text{padding-top:.5rem;padding-bottom:.5rem;color:var(--bs-navbar-color)}.navbar-text a,.navbar-text a:hover,.navbar-text a:focus{color:var(--bs-navbar-active-color)}.navbar-collapse{flex-basis:100%;flex-grow:1;align-items:center}.navbar-toggler{padding:var(--bs-navbar-toggler-padding-y) var(--bs-navbar-toggler-padding-x);font-size:var(--bs-navbar-toggler-font-size);line-height:1;color:var(--bs-navbar-color);background-color:transparent;border:var(--bs-border-width) solid var(--bs-navbar-toggler-border-color);border-radius:var(--bs-navbar-toggler-border-radius);transition:var(--bs-navbar-toggler-transition)}@media (prefers-reduced-motion: reduce){.navbar-toggler{transition:none}}.navbar-toggler:hover{text-decoration:none}.navbar-toggler:focus{text-decoration:none;outline:0;box-shadow:0 0 0 var(--bs-navbar-toggler-focus-width)}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;background-image:var(--bs-navbar-toggler-icon-bg);background-repeat:no-repeat;background-position:center;background-size:100%}.navbar-nav-scroll{max-height:var(--bs-scroll-height, 75vh);overflow-y:auto}@media (min-width: 576px){.navbar-expand-sm{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-sm .navbar-nav-scroll{overflow:visible}.navbar-expand-sm .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}.navbar-expand-sm .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-sm .offcanvas .offcanvas-header{display:none}.navbar-expand-sm .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width: 768px){.navbar-expand-md{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-md .navbar-nav-scroll{overflow:visible}.navbar-expand-md .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}.navbar-expand-md .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-md .offcanvas .offcanvas-header{display:none}.navbar-expand-md .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width: 992px){.navbar-expand-lg{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-lg .navbar-nav-scroll{overflow:visible}.navbar-expand-lg .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}.navbar-expand-lg .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-lg .offcanvas .offcanvas-header{display:none}.navbar-expand-lg .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width: 1200px){.navbar-expand-xl{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-xl .navbar-nav-scroll{overflow:visible}.navbar-expand-xl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}.navbar-expand-xl .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-xl .offcanvas .offcanvas-header{display:none}.navbar-expand-xl .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width: 1400px){.navbar-expand-xxl{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-xxl .navbar-nav{flex-direction:row}.navbar-expand-xxl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xxl .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-xxl .navbar-nav-scroll{overflow:visible}.navbar-expand-xxl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xxl .navbar-toggler{display:none}.navbar-expand-xxl .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-xxl .offcanvas .offcanvas-header{display:none}.navbar-expand-xxl .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}.navbar-expand{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand .navbar-nav{flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand .navbar-nav-scroll{overflow:visible}.navbar-expand .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-expand .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand .offcanvas .offcanvas-header{display:none}.navbar-expand .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}.navbar-dark,.navbar[data-bs-theme=dark]{--bs-navbar-color: rgba(255, 255, 255, .55);--bs-navbar-hover-color: rgba(255, 255, 255, .75);--bs-navbar-disabled-color: rgba(255, 255, 255, .25);--bs-navbar-active-color: #fff;--bs-navbar-brand-color: #fff;--bs-navbar-brand-hover-color: #fff;--bs-navbar-toggler-border-color: rgba(255, 255, 255, .1);--bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}[data-bs-theme=dark] .navbar-toggler-icon{--bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.card{--bs-card-spacer-y: 1rem;--bs-card-spacer-x: 1rem;--bs-card-title-spacer-y: .5rem;--bs-card-title-color: ;--bs-card-subtitle-color: ;--bs-card-border-width: var(--bs-border-width);--bs-card-border-color: var(--bs-border-color-translucent);--bs-card-border-radius: var(--bs-border-radius);--bs-card-box-shadow: ;--bs-card-inner-border-radius: calc(var(--bs-border-radius) - (var(--bs-border-width)));--bs-card-cap-padding-y: .5rem;--bs-card-cap-padding-x: 1rem;--bs-card-cap-bg: rgba(var(--bs-body-color-rgb), .03);--bs-card-cap-color: ;--bs-card-height: ;--bs-card-color: ;--bs-card-bg: var(--bs-body-bg);--bs-card-img-overlay-padding: 1rem;--bs-card-group-margin: .75rem;position:relative;display:flex;flex-direction:column;min-width:0;height:var(--bs-card-height);color:var(--bs-body-color);word-wrap:break-word;background-color:var(--bs-card-bg);background-clip:border-box;border:var(--bs-card-border-width) solid var(--bs-card-border-color);border-radius:var(--bs-card-border-radius)}.card>hr{margin-right:0;margin-left:0}.card>.list-group{border-top:inherit;border-bottom:inherit}.card>.list-group:first-child{border-top-width:0;border-top-left-radius:var(--bs-card-inner-border-radius);border-top-right-radius:var(--bs-card-inner-border-radius)}.card>.list-group:last-child{border-bottom-width:0;border-bottom-right-radius:var(--bs-card-inner-border-radius);border-bottom-left-radius:var(--bs-card-inner-border-radius)}.card>.card-header+.list-group,.card>.list-group+.card-footer{border-top:0}.card-body{flex:1 1 auto;padding:var(--bs-card-spacer-y) var(--bs-card-spacer-x);color:var(--bs-card-color)}.card-title{margin-bottom:var(--bs-card-title-spacer-y);color:var(--bs-card-title-color)}.card-subtitle{margin-top:calc(-.5 * var(--bs-card-title-spacer-y));margin-bottom:0;color:var(--bs-card-subtitle-color)}.card-text:last-child{margin-bottom:0}.card-link+.card-link{margin-left:var(--bs-card-spacer-x)}.card-header{padding:var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);margin-bottom:0;color:var(--bs-card-cap-color);background-color:var(--bs-card-cap-bg);border-bottom:var(--bs-card-border-width) solid var(--bs-card-border-color)}.card-header:first-child{border-radius:var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius) 0 0}.card-footer{padding:var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);color:var(--bs-card-cap-color);background-color:var(--bs-card-cap-bg);border-top:var(--bs-card-border-width) solid var(--bs-card-border-color)}.card-footer:last-child{border-radius:0 0 var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius)}.card-header-tabs{margin-right:calc(-.5 * var(--bs-card-cap-padding-x));margin-bottom:calc(-1 * var(--bs-card-cap-padding-y));margin-left:calc(-.5 * var(--bs-card-cap-padding-x));border-bottom:0}.card-header-tabs .nav-link.active{background-color:var(--bs-card-bg);border-bottom-color:var(--bs-card-bg)}.card-header-pills{margin-right:calc(-.5 * var(--bs-card-cap-padding-x));margin-left:calc(-.5 * var(--bs-card-cap-padding-x))}.card-img-overlay{position:absolute;inset:0;padding:var(--bs-card-img-overlay-padding);border-radius:var(--bs-card-inner-border-radius)}.card-img,.card-img-top,.card-img-bottom{width:100%}.card-img,.card-img-top{border-top-left-radius:var(--bs-card-inner-border-radius);border-top-right-radius:var(--bs-card-inner-border-radius)}.card-img,.card-img-bottom{border-bottom-right-radius:var(--bs-card-inner-border-radius);border-bottom-left-radius:var(--bs-card-inner-border-radius)}.card-group>.card{margin-bottom:var(--bs-card-group-margin)}@media (min-width: 576px){.card-group{display:flex;flex-flow:row wrap}.card-group>.card{flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-img-top,.card-group>.card:not(:last-child) .card-header{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-img-bottom,.card-group>.card:not(:last-child) .card-footer{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-img-top,.card-group>.card:not(:first-child) .card-header{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-img-bottom,.card-group>.card:not(:first-child) .card-footer{border-bottom-left-radius:0}}.accordion{--bs-accordion-color: var(--bs-body-color);--bs-accordion-bg: var(--bs-body-bg);--bs-accordion-transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out, border-radius .15s ease;--bs-accordion-border-color: var(--bs-border-color);--bs-accordion-border-width: var(--bs-border-width);--bs-accordion-border-radius: var(--bs-border-radius);--bs-accordion-inner-border-radius: calc(var(--bs-border-radius) - (var(--bs-border-width)));--bs-accordion-btn-padding-x: 1.25rem;--bs-accordion-btn-padding-y: 1rem;--bs-accordion-btn-color: var(--bs-body-color);--bs-accordion-btn-bg: var(--bs-accordion-bg);--bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23212529' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='M2 5L8 11L14 5'/%3e%3c/svg%3e");--bs-accordion-btn-icon-width: 1.25rem;--bs-accordion-btn-icon-transform: rotate(-180deg);--bs-accordion-btn-icon-transition: transform .2s ease-in-out;--bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='rgb%285.2, 44, 101.2%29' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='M2 5L8 11L14 5'/%3e%3c/svg%3e");--bs-accordion-btn-focus-box-shadow: 0 0 0 .25rem rgba(13, 110, 253, .25);--bs-accordion-body-padding-x: 1.25rem;--bs-accordion-body-padding-y: 1rem;--bs-accordion-active-color: var(--bs-primary-text-emphasis);--bs-accordion-active-bg: var(--bs-primary-bg-subtle)}.accordion-button{position:relative;display:flex;align-items:center;width:100%;padding:var(--bs-accordion-btn-padding-y) var(--bs-accordion-btn-padding-x);font-size:1rem;color:var(--bs-accordion-btn-color);text-align:left;background-color:var(--bs-accordion-btn-bg);border:0;border-radius:0;overflow-anchor:none;transition:var(--bs-accordion-transition)}@media (prefers-reduced-motion: reduce){.accordion-button{transition:none}}.accordion-button:not(.collapsed){color:var(--bs-accordion-active-color);background-color:var(--bs-accordion-active-bg);box-shadow:inset 0 calc(-1 * var(--bs-accordion-border-width)) 0 var(--bs-accordion-border-color)}.accordion-button:not(.collapsed):after{background-image:var(--bs-accordion-btn-active-icon);transform:var(--bs-accordion-btn-icon-transform)}.accordion-button:after{flex-shrink:0;width:var(--bs-accordion-btn-icon-width);height:var(--bs-accordion-btn-icon-width);margin-left:auto;content:"";background-image:var(--bs-accordion-btn-icon);background-repeat:no-repeat;background-size:var(--bs-accordion-btn-icon-width);transition:var(--bs-accordion-btn-icon-transition)}@media (prefers-reduced-motion: reduce){.accordion-button:after{transition:none}}.accordion-button:hover{z-index:2}.accordion-button:focus{z-index:3;outline:0;box-shadow:var(--bs-accordion-btn-focus-box-shadow)}.accordion-header{margin-bottom:0}.accordion-item{color:var(--bs-accordion-color);background-color:var(--bs-accordion-bg);border:var(--bs-accordion-border-width) solid var(--bs-accordion-border-color)}.accordion-item:first-of-type{border-top-left-radius:var(--bs-accordion-border-radius);border-top-right-radius:var(--bs-accordion-border-radius)}.accordion-item:first-of-type>.accordion-header .accordion-button{border-top-left-radius:var(--bs-accordion-inner-border-radius);border-top-right-radius:var(--bs-accordion-inner-border-radius)}.accordion-item:not(:first-of-type){border-top:0}.accordion-item:last-of-type{border-bottom-right-radius:var(--bs-accordion-border-radius);border-bottom-left-radius:var(--bs-accordion-border-radius)}.accordion-item:last-of-type>.accordion-header .accordion-button.collapsed{border-bottom-right-radius:var(--bs-accordion-inner-border-radius);border-bottom-left-radius:var(--bs-accordion-inner-border-radius)}.accordion-item:last-of-type>.accordion-collapse{border-bottom-right-radius:var(--bs-accordion-border-radius);border-bottom-left-radius:var(--bs-accordion-border-radius)}.accordion-body{padding:var(--bs-accordion-body-padding-y) var(--bs-accordion-body-padding-x)}.accordion-flush>.accordion-item{border-right:0;border-left:0;border-radius:0}.accordion-flush>.accordion-item:first-child{border-top:0}.accordion-flush>.accordion-item:last-child{border-bottom:0}.accordion-flush>.accordion-item>.accordion-header .accordion-button,.accordion-flush>.accordion-item>.accordion-header .accordion-button.collapsed{border-radius:0}.accordion-flush>.accordion-item>.accordion-collapse{border-radius:0}[data-bs-theme=dark] .accordion-button:after{--bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='rgb%28109.8, 168, 253.8%29'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");--bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='rgb%28109.8, 168, 253.8%29'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e")}.breadcrumb{--bs-breadcrumb-padding-x: 0;--bs-breadcrumb-padding-y: 0;--bs-breadcrumb-margin-bottom: 1rem;--bs-breadcrumb-bg: ;--bs-breadcrumb-border-radius: ;--bs-breadcrumb-divider-color: var(--bs-secondary-color);--bs-breadcrumb-item-padding-x: .5rem;--bs-breadcrumb-item-active-color: var(--bs-secondary-color);display:flex;flex-wrap:wrap;padding:var(--bs-breadcrumb-padding-y) var(--bs-breadcrumb-padding-x);margin-bottom:var(--bs-breadcrumb-margin-bottom);font-size:var(--bs-breadcrumb-font-size);list-style:none;background-color:var(--bs-breadcrumb-bg);border-radius:var(--bs-breadcrumb-border-radius)}.breadcrumb-item+.breadcrumb-item{padding-left:var(--bs-breadcrumb-item-padding-x)}.breadcrumb-item+.breadcrumb-item:before{float:left;padding-right:var(--bs-breadcrumb-item-padding-x);color:var(--bs-breadcrumb-divider-color);content:var(--bs-breadcrumb-divider, "/")}.breadcrumb-item.active{color:var(--bs-breadcrumb-item-active-color)}.pagination{--bs-pagination-padding-x: .75rem;--bs-pagination-padding-y: .375rem;--bs-pagination-font-size: 1rem;--bs-pagination-color: var(--bs-link-color);--bs-pagination-bg: var(--bs-body-bg);--bs-pagination-border-width: var(--bs-border-width);--bs-pagination-border-color: var(--bs-border-color);--bs-pagination-border-radius: var(--bs-border-radius);--bs-pagination-hover-color: var(--bs-link-hover-color);--bs-pagination-hover-bg: var(--bs-tertiary-bg);--bs-pagination-hover-border-color: var(--bs-border-color);--bs-pagination-focus-color: var(--bs-link-hover-color);--bs-pagination-focus-bg: var(--bs-secondary-bg);--bs-pagination-focus-box-shadow: 0 0 0 .25rem rgba(13, 110, 253, .25);--bs-pagination-active-color: #fff;--bs-pagination-active-bg: #0d6efd;--bs-pagination-active-border-color: #0d6efd;--bs-pagination-disabled-color: var(--bs-secondary-color);--bs-pagination-disabled-bg: var(--bs-secondary-bg);--bs-pagination-disabled-border-color: var(--bs-border-color);display:flex;padding-left:0;list-style:none}.page-link{position:relative;display:block;padding:var(--bs-pagination-padding-y) var(--bs-pagination-padding-x);font-size:var(--bs-pagination-font-size);color:var(--bs-pagination-color);text-decoration:none;background-color:var(--bs-pagination-bg);border:var(--bs-pagination-border-width) solid var(--bs-pagination-border-color);transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion: reduce){.page-link{transition:none}}.page-link:hover{z-index:2;color:var(--bs-pagination-hover-color);background-color:var(--bs-pagination-hover-bg);border-color:var(--bs-pagination-hover-border-color)}.page-link:focus{z-index:3;color:var(--bs-pagination-focus-color);background-color:var(--bs-pagination-focus-bg);outline:0;box-shadow:var(--bs-pagination-focus-box-shadow)}.page-link.active,.active>.page-link{z-index:3;color:var(--bs-pagination-active-color);background-color:var(--bs-pagination-active-bg);border-color:var(--bs-pagination-active-border-color)}.page-link.disabled,.disabled>.page-link{color:var(--bs-pagination-disabled-color);pointer-events:none;background-color:var(--bs-pagination-disabled-bg);border-color:var(--bs-pagination-disabled-border-color)}.page-item:not(:first-child) .page-link{margin-left:calc(var(--bs-border-width) * -1)}.page-item:first-child .page-link{border-top-left-radius:var(--bs-pagination-border-radius);border-bottom-left-radius:var(--bs-pagination-border-radius)}.page-item:last-child .page-link{border-top-right-radius:var(--bs-pagination-border-radius);border-bottom-right-radius:var(--bs-pagination-border-radius)}.pagination-lg{--bs-pagination-padding-x: 1.5rem;--bs-pagination-padding-y: .75rem;--bs-pagination-font-size: 1.25rem;--bs-pagination-border-radius: var(--bs-border-radius-lg)}.pagination-sm{--bs-pagination-padding-x: .5rem;--bs-pagination-padding-y: .25rem;--bs-pagination-font-size: .875rem;--bs-pagination-border-radius: var(--bs-border-radius-sm)}.badge{--bs-badge-padding-x: .65em;--bs-badge-padding-y: .35em;--bs-badge-font-size: .75em;--bs-badge-font-weight: 700;--bs-badge-color: #fff;--bs-badge-border-radius: var(--bs-border-radius);display:inline-block;padding:var(--bs-badge-padding-y) var(--bs-badge-padding-x);font-size:var(--bs-badge-font-size);font-weight:var(--bs-badge-font-weight);line-height:1;color:var(--bs-badge-color);text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:var(--bs-badge-border-radius)}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.alert{--bs-alert-bg: transparent;--bs-alert-padding-x: 1rem;--bs-alert-padding-y: 1rem;--bs-alert-margin-bottom: 1rem;--bs-alert-color: inherit;--bs-alert-border-color: transparent;--bs-alert-border: var(--bs-border-width) solid var(--bs-alert-border-color);--bs-alert-border-radius: var(--bs-border-radius);--bs-alert-link-color: inherit;position:relative;padding:var(--bs-alert-padding-y) var(--bs-alert-padding-x);margin-bottom:var(--bs-alert-margin-bottom);color:var(--bs-alert-color);background-color:var(--bs-alert-bg);border:var(--bs-alert-border);border-radius:var(--bs-alert-border-radius)}.alert-heading{color:inherit}.alert-link{font-weight:700;color:var(--bs-alert-link-color)}.alert-dismissible{padding-right:3rem}.alert-dismissible .btn-close{position:absolute;top:0;right:0;z-index:2;padding:1.25rem 1rem}.alert-primary{--bs-alert-color: var(--bs-primary-text-emphasis);--bs-alert-bg: var(--bs-primary-bg-subtle);--bs-alert-border-color: var(--bs-primary-border-subtle);--bs-alert-link-color: var(--bs-primary-text-emphasis)}.alert-secondary{--bs-alert-color: var(--bs-secondary-text-emphasis);--bs-alert-bg: var(--bs-secondary-bg-subtle);--bs-alert-border-color: var(--bs-secondary-border-subtle);--bs-alert-link-color: var(--bs-secondary-text-emphasis)}.alert-success{--bs-alert-color: var(--bs-success-text-emphasis);--bs-alert-bg: var(--bs-success-bg-subtle);--bs-alert-border-color: var(--bs-success-border-subtle);--bs-alert-link-color: var(--bs-success-text-emphasis)}.alert-info{--bs-alert-color: var(--bs-info-text-emphasis);--bs-alert-bg: var(--bs-info-bg-subtle);--bs-alert-border-color: var(--bs-info-border-subtle);--bs-alert-link-color: var(--bs-info-text-emphasis)}.alert-warning{--bs-alert-color: var(--bs-warning-text-emphasis);--bs-alert-bg: var(--bs-warning-bg-subtle);--bs-alert-border-color: var(--bs-warning-border-subtle);--bs-alert-link-color: var(--bs-warning-text-emphasis)}.alert-danger{--bs-alert-color: var(--bs-danger-text-emphasis);--bs-alert-bg: var(--bs-danger-bg-subtle);--bs-alert-border-color: var(--bs-danger-border-subtle);--bs-alert-link-color: var(--bs-danger-text-emphasis)}.alert-light{--bs-alert-color: var(--bs-light-text-emphasis);--bs-alert-bg: var(--bs-light-bg-subtle);--bs-alert-border-color: var(--bs-light-border-subtle);--bs-alert-link-color: var(--bs-light-text-emphasis)}.alert-dark{--bs-alert-color: var(--bs-dark-text-emphasis);--bs-alert-bg: var(--bs-dark-bg-subtle);--bs-alert-border-color: var(--bs-dark-border-subtle);--bs-alert-link-color: var(--bs-dark-text-emphasis)}@keyframes progress-bar-stripes{0%{background-position-x:1rem}}.progress,.progress-stacked{--bs-progress-height: 1rem;--bs-progress-font-size: .75rem;--bs-progress-bg: var(--bs-secondary-bg);--bs-progress-border-radius: var(--bs-border-radius);--bs-progress-box-shadow: var(--bs-box-shadow-inset);--bs-progress-bar-color: #fff;--bs-progress-bar-bg: #0d6efd;--bs-progress-bar-transition: width .6s ease;display:flex;height:var(--bs-progress-height);overflow:hidden;font-size:var(--bs-progress-font-size);background-color:var(--bs-progress-bg);border-radius:var(--bs-progress-border-radius)}.progress-bar{display:flex;flex-direction:column;justify-content:center;overflow:hidden;color:var(--bs-progress-bar-color);text-align:center;white-space:nowrap;background-color:var(--bs-progress-bar-bg);transition:var(--bs-progress-bar-transition)}@media (prefers-reduced-motion: reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:var(--bs-progress-height) var(--bs-progress-height)}.progress-stacked>.progress{overflow:visible}.progress-stacked>.progress>.progress-bar{width:100%}.progress-bar-animated{animation:1s linear infinite progress-bar-stripes}@media (prefers-reduced-motion: reduce){.progress-bar-animated{animation:none}}.list-group{--bs-list-group-color: var(--bs-body-color);--bs-list-group-bg: var(--bs-body-bg);--bs-list-group-border-color: var(--bs-border-color);--bs-list-group-border-width: var(--bs-border-width);--bs-list-group-border-radius: var(--bs-border-radius);--bs-list-group-item-padding-x: 1rem;--bs-list-group-item-padding-y: .5rem;--bs-list-group-action-color: var(--bs-secondary-color);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-tertiary-bg);--bs-list-group-action-active-color: var(--bs-body-color);--bs-list-group-action-active-bg: var(--bs-secondary-bg);--bs-list-group-disabled-color: var(--bs-secondary-color);--bs-list-group-disabled-bg: var(--bs-body-bg);--bs-list-group-active-color: #fff;--bs-list-group-active-bg: #0d6efd;--bs-list-group-active-border-color: #0d6efd;display:flex;flex-direction:column;padding-left:0;margin-bottom:0;border-radius:var(--bs-list-group-border-radius)}.list-group-numbered{list-style-type:none;counter-reset:section}.list-group-numbered>.list-group-item:before{content:counters(section,".") ". ";counter-increment:section}.list-group-item-action{width:100%;color:var(--bs-list-group-action-color);text-align:inherit}.list-group-item-action:hover,.list-group-item-action:focus{z-index:1;color:var(--bs-list-group-action-hover-color);text-decoration:none;background-color:var(--bs-list-group-action-hover-bg)}.list-group-item-action:active{color:var(--bs-list-group-action-active-color);background-color:var(--bs-list-group-action-active-bg)}.list-group-item{position:relative;display:block;padding:var(--bs-list-group-item-padding-y) var(--bs-list-group-item-padding-x);color:var(--bs-list-group-color);text-decoration:none;background-color:var(--bs-list-group-bg);border:var(--bs-list-group-border-width) solid var(--bs-list-group-border-color)}.list-group-item:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.list-group-item:last-child{border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}.list-group-item.disabled,.list-group-item:disabled{color:var(--bs-list-group-disabled-color);pointer-events:none;background-color:var(--bs-list-group-disabled-bg)}.list-group-item.active{z-index:2;color:var(--bs-list-group-active-color);background-color:var(--bs-list-group-active-bg);border-color:var(--bs-list-group-active-border-color)}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:calc(-1 * var(--bs-list-group-border-width));border-top-width:var(--bs-list-group-border-width)}.list-group-horizontal{flex-direction:row}.list-group-horizontal>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal>.list-group-item.active{margin-top:0}.list-group-horizontal>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}@media (min-width: 576px){.list-group-horizontal-sm{flex-direction:row}.list-group-horizontal-sm>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-sm>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-sm>.list-group-item.active{margin-top:0}.list-group-horizontal-sm>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width: 768px){.list-group-horizontal-md{flex-direction:row}.list-group-horizontal-md>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-md>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-md>.list-group-item.active{margin-top:0}.list-group-horizontal-md>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-md>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width: 992px){.list-group-horizontal-lg{flex-direction:row}.list-group-horizontal-lg>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-lg>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-lg>.list-group-item.active{margin-top:0}.list-group-horizontal-lg>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width: 1200px){.list-group-horizontal-xl{flex-direction:row}.list-group-horizontal-xl>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-xl>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-xl>.list-group-item.active{margin-top:0}.list-group-horizontal-xl>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width: 1400px){.list-group-horizontal-xxl{flex-direction:row}.list-group-horizontal-xxl>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-xxl>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-xxl>.list-group-item.active{margin-top:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}.list-group-flush{border-radius:0}.list-group-flush>.list-group-item{border-width:0 0 var(--bs-list-group-border-width)}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{--bs-list-group-color: var(--bs-primary-text-emphasis);--bs-list-group-bg: var(--bs-primary-bg-subtle);--bs-list-group-border-color: var(--bs-primary-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-primary-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-primary-border-subtle);--bs-list-group-active-color: var(--bs-primary-bg-subtle);--bs-list-group-active-bg: var(--bs-primary-text-emphasis);--bs-list-group-active-border-color: var(--bs-primary-text-emphasis)}.list-group-item-secondary{--bs-list-group-color: var(--bs-secondary-text-emphasis);--bs-list-group-bg: var(--bs-secondary-bg-subtle);--bs-list-group-border-color: var(--bs-secondary-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-secondary-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-secondary-border-subtle);--bs-list-group-active-color: var(--bs-secondary-bg-subtle);--bs-list-group-active-bg: var(--bs-secondary-text-emphasis);--bs-list-group-active-border-color: var(--bs-secondary-text-emphasis)}.list-group-item-success{--bs-list-group-color: var(--bs-success-text-emphasis);--bs-list-group-bg: var(--bs-success-bg-subtle);--bs-list-group-border-color: var(--bs-success-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-success-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-success-border-subtle);--bs-list-group-active-color: var(--bs-success-bg-subtle);--bs-list-group-active-bg: var(--bs-success-text-emphasis);--bs-list-group-active-border-color: var(--bs-success-text-emphasis)}.list-group-item-info{--bs-list-group-color: var(--bs-info-text-emphasis);--bs-list-group-bg: var(--bs-info-bg-subtle);--bs-list-group-border-color: var(--bs-info-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-info-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-info-border-subtle);--bs-list-group-active-color: var(--bs-info-bg-subtle);--bs-list-group-active-bg: var(--bs-info-text-emphasis);--bs-list-group-active-border-color: var(--bs-info-text-emphasis)}.list-group-item-warning{--bs-list-group-color: var(--bs-warning-text-emphasis);--bs-list-group-bg: var(--bs-warning-bg-subtle);--bs-list-group-border-color: var(--bs-warning-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-warning-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-warning-border-subtle);--bs-list-group-active-color: var(--bs-warning-bg-subtle);--bs-list-group-active-bg: var(--bs-warning-text-emphasis);--bs-list-group-active-border-color: var(--bs-warning-text-emphasis)}.list-group-item-danger{--bs-list-group-color: var(--bs-danger-text-emphasis);--bs-list-group-bg: var(--bs-danger-bg-subtle);--bs-list-group-border-color: var(--bs-danger-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-danger-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-danger-border-subtle);--bs-list-group-active-color: var(--bs-danger-bg-subtle);--bs-list-group-active-bg: var(--bs-danger-text-emphasis);--bs-list-group-active-border-color: var(--bs-danger-text-emphasis)}.list-group-item-light{--bs-list-group-color: var(--bs-light-text-emphasis);--bs-list-group-bg: var(--bs-light-bg-subtle);--bs-list-group-border-color: var(--bs-light-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-light-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-light-border-subtle);--bs-list-group-active-color: var(--bs-light-bg-subtle);--bs-list-group-active-bg: var(--bs-light-text-emphasis);--bs-list-group-active-border-color: var(--bs-light-text-emphasis)}.list-group-item-dark{--bs-list-group-color: var(--bs-dark-text-emphasis);--bs-list-group-bg: var(--bs-dark-bg-subtle);--bs-list-group-border-color: var(--bs-dark-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-dark-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-dark-border-subtle);--bs-list-group-active-color: var(--bs-dark-bg-subtle);--bs-list-group-active-bg: var(--bs-dark-text-emphasis);--bs-list-group-active-border-color: var(--bs-dark-text-emphasis)}.btn-close{--bs-btn-close-color: #000;--bs-btn-close-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/%3e%3c/svg%3e");--bs-btn-close-opacity: .5;--bs-btn-close-hover-opacity: .75;--bs-btn-close-focus-shadow: 0 0 0 .25rem rgba(13, 110, 253, .25);--bs-btn-close-focus-opacity: 1;--bs-btn-close-disabled-opacity: .25;--bs-btn-close-white-filter: invert(1) grayscale(100%) brightness(200%);box-sizing:content-box;width:1em;height:1em;padding:.25em;color:var(--bs-btn-close-color);background:transparent var(--bs-btn-close-bg) center/1em auto no-repeat;border:0;border-radius:.375rem;opacity:var(--bs-btn-close-opacity)}.btn-close:hover{color:var(--bs-btn-close-color);text-decoration:none;opacity:var(--bs-btn-close-hover-opacity)}.btn-close:focus{outline:0;box-shadow:var(--bs-btn-close-focus-shadow);opacity:var(--bs-btn-close-focus-opacity)}.btn-close:disabled,.btn-close.disabled{pointer-events:none;user-select:none;opacity:var(--bs-btn-close-disabled-opacity)}.btn-close-white,[data-bs-theme=dark] .btn-close{filter:var(--bs-btn-close-white-filter)}.toast{--bs-toast-zindex: 1090;--bs-toast-padding-x: .75rem;--bs-toast-padding-y: .5rem;--bs-toast-spacing: 1.5rem;--bs-toast-max-width: 350px;--bs-toast-font-size: .875rem;--bs-toast-color: ;--bs-toast-bg: rgba(var(--bs-body-bg-rgb), .85);--bs-toast-border-width: var(--bs-border-width);--bs-toast-border-color: var(--bs-border-color-translucent);--bs-toast-border-radius: var(--bs-border-radius);--bs-toast-box-shadow: var(--bs-box-shadow);--bs-toast-header-color: var(--bs-secondary-color);--bs-toast-header-bg: rgba(var(--bs-body-bg-rgb), .85);--bs-toast-header-border-color: var(--bs-border-color-translucent);width:var(--bs-toast-max-width);max-width:100%;font-size:var(--bs-toast-font-size);color:var(--bs-toast-color);pointer-events:auto;background-color:var(--bs-toast-bg);background-clip:padding-box;border:var(--bs-toast-border-width) solid var(--bs-toast-border-color);box-shadow:var(--bs-toast-box-shadow);border-radius:var(--bs-toast-border-radius)}.toast.showing{opacity:0}.toast:not(.show){display:none}.toast-container{--bs-toast-zindex: 1090;position:absolute;z-index:var(--bs-toast-zindex);width:max-content;max-width:100%;pointer-events:none}.toast-container>:not(:last-child){margin-bottom:var(--bs-toast-spacing)}.toast-header{display:flex;align-items:center;padding:var(--bs-toast-padding-y) var(--bs-toast-padding-x);color:var(--bs-toast-header-color);background-color:var(--bs-toast-header-bg);background-clip:padding-box;border-bottom:var(--bs-toast-border-width) solid var(--bs-toast-header-border-color);border-top-left-radius:calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width));border-top-right-radius:calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width))}.toast-header .btn-close{margin-right:calc(-.5 * var(--bs-toast-padding-x));margin-left:var(--bs-toast-padding-x)}.toast-body{padding:var(--bs-toast-padding-x);word-wrap:break-word}.modal{--bs-modal-zindex: 1055;--bs-modal-width: 500px;--bs-modal-padding: 1rem;--bs-modal-margin: .5rem;--bs-modal-color: ;--bs-modal-bg: var(--bs-body-bg);--bs-modal-border-color: var(--bs-border-color-translucent);--bs-modal-border-width: var(--bs-border-width);--bs-modal-border-radius: var(--bs-border-radius-lg);--bs-modal-box-shadow: var(--bs-box-shadow-sm);--bs-modal-inner-border-radius: calc(var(--bs-border-radius-lg) - (var(--bs-border-width)));--bs-modal-header-padding-x: 1rem;--bs-modal-header-padding-y: 1rem;--bs-modal-header-padding: 1rem 1rem;--bs-modal-header-border-color: var(--bs-border-color);--bs-modal-header-border-width: var(--bs-border-width);--bs-modal-title-line-height: 1.5;--bs-modal-footer-gap: .5rem;--bs-modal-footer-bg: ;--bs-modal-footer-border-color: var(--bs-border-color);--bs-modal-footer-border-width: var(--bs-border-width);position:fixed;top:0;left:0;z-index:var(--bs-modal-zindex);display:none;width:100%;height:100%;overflow-x:hidden;overflow-y:auto;outline:0}.modal-dialog{position:relative;width:auto;margin:var(--bs-modal-margin);pointer-events:none}.modal.fade .modal-dialog{transition:transform .3s ease-out;transform:translateY(-50px)}@media (prefers-reduced-motion: reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{transform:none}.modal.modal-static .modal-dialog{transform:scale(1.02)}.modal-dialog-scrollable{height:calc(100% - var(--bs-modal-margin) * 2)}.modal-dialog-scrollable .modal-content{max-height:100%;overflow:hidden}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:flex;align-items:center;min-height:calc(100% - var(--bs-modal-margin) * 2)}.modal-content{position:relative;display:flex;flex-direction:column;width:100%;color:var(--bs-modal-color);pointer-events:auto;background-color:var(--bs-modal-bg);background-clip:padding-box;border:var(--bs-modal-border-width) solid var(--bs-modal-border-color);border-radius:var(--bs-modal-border-radius);outline:0}.modal-backdrop{--bs-backdrop-zindex: 1050;--bs-backdrop-bg: #000;--bs-backdrop-opacity: .5;position:fixed;top:0;left:0;z-index:var(--bs-backdrop-zindex);width:100vw;height:100vh;background-color:var(--bs-backdrop-bg)}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:var(--bs-backdrop-opacity)}.modal-header{display:flex;flex-shrink:0;align-items:center;padding:var(--bs-modal-header-padding);border-bottom:var(--bs-modal-header-border-width) solid var(--bs-modal-header-border-color);border-top-left-radius:var(--bs-modal-inner-border-radius);border-top-right-radius:var(--bs-modal-inner-border-radius)}.modal-header .btn-close{padding:calc(var(--bs-modal-header-padding-y) * .5) calc(var(--bs-modal-header-padding-x) * .5);margin:calc(-.5 * var(--bs-modal-header-padding-y)) calc(-.5 * var(--bs-modal-header-padding-x)) calc(-.5 * var(--bs-modal-header-padding-y)) auto}.modal-title{margin-bottom:0;line-height:var(--bs-modal-title-line-height)}.modal-body{position:relative;flex:1 1 auto;padding:var(--bs-modal-padding)}.modal-footer{display:flex;flex-shrink:0;flex-wrap:wrap;align-items:center;justify-content:flex-end;padding:calc(var(--bs-modal-padding) - var(--bs-modal-footer-gap) * .5);background-color:var(--bs-modal-footer-bg);border-top:var(--bs-modal-footer-border-width) solid var(--bs-modal-footer-border-color);border-bottom-right-radius:var(--bs-modal-inner-border-radius);border-bottom-left-radius:var(--bs-modal-inner-border-radius)}.modal-footer>*{margin:calc(var(--bs-modal-footer-gap) * .5)}@media (min-width: 576px){.modal{--bs-modal-margin: 1.75rem;--bs-modal-box-shadow: var(--bs-box-shadow)}.modal-dialog{max-width:var(--bs-modal-width);margin-right:auto;margin-left:auto}.modal-sm{--bs-modal-width: 300px}}@media (min-width: 992px){.modal-lg,.modal-xl{--bs-modal-width: 800px}}@media (min-width: 1200px){.modal-xl{--bs-modal-width: 1140px}}.modal-fullscreen{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen .modal-header,.modal-fullscreen .modal-footer{border-radius:0}.modal-fullscreen .modal-body{overflow-y:auto}@media (max-width: 575.98px){.modal-fullscreen-sm-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-sm-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-sm-down .modal-header,.modal-fullscreen-sm-down .modal-footer{border-radius:0}.modal-fullscreen-sm-down .modal-body{overflow-y:auto}}@media (max-width: 767.98px){.modal-fullscreen-md-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-md-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-md-down .modal-header,.modal-fullscreen-md-down .modal-footer{border-radius:0}.modal-fullscreen-md-down .modal-body{overflow-y:auto}}@media (max-width: 991.98px){.modal-fullscreen-lg-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-lg-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-lg-down .modal-header,.modal-fullscreen-lg-down .modal-footer{border-radius:0}.modal-fullscreen-lg-down .modal-body{overflow-y:auto}}@media (max-width: 1199.98px){.modal-fullscreen-xl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xl-down .modal-header,.modal-fullscreen-xl-down .modal-footer{border-radius:0}.modal-fullscreen-xl-down .modal-body{overflow-y:auto}}@media (max-width: 1399.98px){.modal-fullscreen-xxl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xxl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xxl-down .modal-header,.modal-fullscreen-xxl-down .modal-footer{border-radius:0}.modal-fullscreen-xxl-down .modal-body{overflow-y:auto}}.tooltip{--bs-tooltip-zindex: 1080;--bs-tooltip-max-width: 200px;--bs-tooltip-padding-x: .5rem;--bs-tooltip-padding-y: .25rem;--bs-tooltip-margin: ;--bs-tooltip-font-size: .875rem;--bs-tooltip-color: var(--bs-body-bg);--bs-tooltip-bg: var(--bs-emphasis-color);--bs-tooltip-border-radius: var(--bs-border-radius);--bs-tooltip-opacity: .9;--bs-tooltip-arrow-width: .8rem;--bs-tooltip-arrow-height: .4rem;z-index:var(--bs-tooltip-zindex);display:block;margin:var(--bs-tooltip-margin);font-family:var(--bs-font-sans-serif);font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:var(--bs-tooltip-font-size);word-wrap:break-word;opacity:0}.tooltip.show{opacity:var(--bs-tooltip-opacity)}.tooltip .tooltip-arrow{display:block;width:var(--bs-tooltip-arrow-width);height:var(--bs-tooltip-arrow-height)}.tooltip .tooltip-arrow:before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-top .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow{bottom:calc(-1 * var(--bs-tooltip-arrow-height))}.bs-tooltip-top .tooltip-arrow:before,.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow:before{top:-1px;border-width:var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * .5) 0;border-top-color:var(--bs-tooltip-bg)}.bs-tooltip-end .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow{left:calc(-1 * var(--bs-tooltip-arrow-height));width:var(--bs-tooltip-arrow-height);height:var(--bs-tooltip-arrow-width)}.bs-tooltip-end .tooltip-arrow:before,.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow:before{right:-1px;border-width:calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * .5) 0;border-right-color:var(--bs-tooltip-bg)}.bs-tooltip-bottom .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow{top:calc(-1 * var(--bs-tooltip-arrow-height))}.bs-tooltip-bottom .tooltip-arrow:before,.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow:before{bottom:-1px;border-width:0 calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height);border-bottom-color:var(--bs-tooltip-bg)}.bs-tooltip-start .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow{right:calc(-1 * var(--bs-tooltip-arrow-height));width:var(--bs-tooltip-arrow-height);height:var(--bs-tooltip-arrow-width)}.bs-tooltip-start .tooltip-arrow:before,.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow:before{left:-1px;border-width:calc(var(--bs-tooltip-arrow-width) * .5) 0 calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height);border-left-color:var(--bs-tooltip-bg)}.tooltip-inner{max-width:var(--bs-tooltip-max-width);padding:var(--bs-tooltip-padding-y) var(--bs-tooltip-padding-x);color:var(--bs-tooltip-color);text-align:center;background-color:var(--bs-tooltip-bg);border-radius:var(--bs-tooltip-border-radius)}.popover{--bs-popover-zindex: 1070;--bs-popover-max-width: 276px;--bs-popover-font-size: .875rem;--bs-popover-bg: var(--bs-body-bg);--bs-popover-border-width: var(--bs-border-width);--bs-popover-border-color: var(--bs-border-color-translucent);--bs-popover-border-radius: var(--bs-border-radius-lg);--bs-popover-inner-border-radius: calc(var(--bs-border-radius-lg) - var(--bs-border-width));--bs-popover-box-shadow: var(--bs-box-shadow);--bs-popover-header-padding-x: 1rem;--bs-popover-header-padding-y: .5rem;--bs-popover-header-font-size: 1rem;--bs-popover-header-color: inherit;--bs-popover-header-bg: var(--bs-secondary-bg);--bs-popover-body-padding-x: 1rem;--bs-popover-body-padding-y: 1rem;--bs-popover-body-color: var(--bs-body-color);--bs-popover-arrow-width: 1rem;--bs-popover-arrow-height: .5rem;--bs-popover-arrow-border: var(--bs-popover-border-color);z-index:var(--bs-popover-zindex);display:block;max-width:var(--bs-popover-max-width);font-family:var(--bs-font-sans-serif);font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:var(--bs-popover-font-size);word-wrap:break-word;background-color:var(--bs-popover-bg);background-clip:padding-box;border:var(--bs-popover-border-width) solid var(--bs-popover-border-color);border-radius:var(--bs-popover-border-radius)}.popover .popover-arrow{display:block;width:var(--bs-popover-arrow-width);height:var(--bs-popover-arrow-height)}.popover .popover-arrow:before,.popover .popover-arrow:after{position:absolute;display:block;content:"";border-color:transparent;border-style:solid;border-width:0}.bs-popover-top>.popover-arrow,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow{bottom:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width))}.bs-popover-top>.popover-arrow:before,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow:before,.bs-popover-top>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow:after{border-width:var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * .5) 0}.bs-popover-top>.popover-arrow:before,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow:before{bottom:0;border-top-color:var(--bs-popover-arrow-border)}.bs-popover-top>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow:after{bottom:var(--bs-popover-border-width);border-top-color:var(--bs-popover-bg)}.bs-popover-end>.popover-arrow,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow{left:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));width:var(--bs-popover-arrow-height);height:var(--bs-popover-arrow-width)}.bs-popover-end>.popover-arrow:before,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow:before,.bs-popover-end>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow:after{border-width:calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * .5) 0}.bs-popover-end>.popover-arrow:before,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow:before{left:0;border-right-color:var(--bs-popover-arrow-border)}.bs-popover-end>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow:after{left:var(--bs-popover-border-width);border-right-color:var(--bs-popover-bg)}.bs-popover-bottom>.popover-arrow,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow{top:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width))}.bs-popover-bottom>.popover-arrow:before,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow:before,.bs-popover-bottom>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow:after{border-width:0 calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height)}.bs-popover-bottom>.popover-arrow:before,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow:before{top:0;border-bottom-color:var(--bs-popover-arrow-border)}.bs-popover-bottom>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow:after{top:var(--bs-popover-border-width);border-bottom-color:var(--bs-popover-bg)}.bs-popover-bottom .popover-header:before,.bs-popover-auto[data-popper-placement^=bottom] .popover-header:before{position:absolute;top:0;left:50%;display:block;width:var(--bs-popover-arrow-width);margin-left:calc(-.5 * var(--bs-popover-arrow-width));content:"";border-bottom:var(--bs-popover-border-width) solid var(--bs-popover-header-bg)}.bs-popover-start>.popover-arrow,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow{right:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));width:var(--bs-popover-arrow-height);height:var(--bs-popover-arrow-width)}.bs-popover-start>.popover-arrow:before,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow:before,.bs-popover-start>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow:after{border-width:calc(var(--bs-popover-arrow-width) * .5) 0 calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height)}.bs-popover-start>.popover-arrow:before,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow:before{right:0;border-left-color:var(--bs-popover-arrow-border)}.bs-popover-start>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow:after{right:var(--bs-popover-border-width);border-left-color:var(--bs-popover-bg)}.popover-header{padding:var(--bs-popover-header-padding-y) var(--bs-popover-header-padding-x);margin-bottom:0;font-size:var(--bs-popover-header-font-size);color:var(--bs-popover-header-color);background-color:var(--bs-popover-header-bg);border-bottom:var(--bs-popover-border-width) solid var(--bs-popover-border-color);border-top-left-radius:var(--bs-popover-inner-border-radius);border-top-right-radius:var(--bs-popover-inner-border-radius)}.popover-header:empty{display:none}.popover-body{padding:var(--bs-popover-body-padding-y) var(--bs-popover-body-padding-x);color:var(--bs-popover-body-color)}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner:after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;backface-visibility:hidden;transition:transform .6s ease-in-out}@media (prefers-reduced-motion: reduce){.carousel-item{transition:none}}.carousel-item.active,.carousel-item-next,.carousel-item-prev{display:block}.carousel-item-next:not(.carousel-item-start),.active.carousel-item-end{transform:translate(100%)}.carousel-item-prev:not(.carousel-item-end),.active.carousel-item-start{transform:translate(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}.carousel-fade .carousel-item.active,.carousel-fade .carousel-item-next.carousel-item-start,.carousel-fade .carousel-item-prev.carousel-item-end{z-index:1;opacity:1}.carousel-fade .active.carousel-item-start,.carousel-fade .active.carousel-item-end{z-index:0;opacity:0;transition:opacity 0s .6s}@media (prefers-reduced-motion: reduce){.carousel-fade .active.carousel-item-start,.carousel-fade .active.carousel-item-end{transition:none}}.carousel-control-prev,.carousel-control-next{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;width:15%;padding:0;color:#fff;text-align:center;background:none;border:0;opacity:.5;transition:opacity .15s ease}@media (prefers-reduced-motion: reduce){.carousel-control-prev,.carousel-control-next{transition:none}}.carousel-control-prev:hover,.carousel-control-prev:focus,.carousel-control-next:hover,.carousel-control-next:focus{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-prev-icon,.carousel-control-next-icon{display:inline-block;width:2rem;height:2rem;background-repeat:no-repeat;background-position:50%;background-size:100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e")}.carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:2;display:flex;justify-content:center;padding:0;margin-right:15%;margin-bottom:1rem;margin-left:15%}.carousel-indicators [data-bs-target]{box-sizing:content-box;flex:0 1 auto;width:30px;height:3px;padding:0;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border:0;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media (prefers-reduced-motion: reduce){.carousel-indicators [data-bs-target]{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:1.25rem;left:15%;padding-top:1.25rem;padding-bottom:1.25rem;color:#fff;text-align:center}.carousel-dark .carousel-control-prev-icon,.carousel-dark .carousel-control-next-icon{filter:invert(1) grayscale(100)}.carousel-dark .carousel-indicators [data-bs-target]{background-color:#000}.carousel-dark .carousel-caption{color:#000}[data-bs-theme=dark] .carousel .carousel-control-prev-icon,[data-bs-theme=dark] .carousel .carousel-control-next-icon,[data-bs-theme=dark].carousel .carousel-control-prev-icon,[data-bs-theme=dark].carousel .carousel-control-next-icon{filter:invert(1) grayscale(100)}[data-bs-theme=dark] .carousel .carousel-indicators [data-bs-target],[data-bs-theme=dark].carousel .carousel-indicators [data-bs-target]{background-color:#000}[data-bs-theme=dark] .carousel .carousel-caption,[data-bs-theme=dark].carousel .carousel-caption{color:#000}.spinner-grow,.spinner-border{display:inline-block;width:var(--bs-spinner-width);height:var(--bs-spinner-height);vertical-align:var(--bs-spinner-vertical-align);border-radius:50%;animation:var(--bs-spinner-animation-speed) linear infinite var(--bs-spinner-animation-name)}@keyframes spinner-border{to{transform:rotate(360deg)}}.spinner-border{--bs-spinner-width: 2rem;--bs-spinner-height: 2rem;--bs-spinner-vertical-align: -.125em;--bs-spinner-border-width: .25em;--bs-spinner-animation-speed: .75s;--bs-spinner-animation-name: spinner-border;border:var(--bs-spinner-border-width) solid currentcolor;border-right-color:transparent}.spinner-border-sm{--bs-spinner-width: 1rem;--bs-spinner-height: 1rem;--bs-spinner-border-width: .2em}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}.spinner-grow{--bs-spinner-width: 2rem;--bs-spinner-height: 2rem;--bs-spinner-vertical-align: -.125em;--bs-spinner-animation-speed: .75s;--bs-spinner-animation-name: spinner-grow;background-color:currentcolor;opacity:0}.spinner-grow-sm{--bs-spinner-width: 1rem;--bs-spinner-height: 1rem}@media (prefers-reduced-motion: reduce){.spinner-border,.spinner-grow{--bs-spinner-animation-speed: 1.5s}}.offcanvas,.offcanvas-xxl,.offcanvas-xl,.offcanvas-lg,.offcanvas-md,.offcanvas-sm{--bs-offcanvas-zindex: 1045;--bs-offcanvas-width: 400px;--bs-offcanvas-height: 30vh;--bs-offcanvas-padding-x: 1rem;--bs-offcanvas-padding-y: 1rem;--bs-offcanvas-color: var(--bs-body-color);--bs-offcanvas-bg: var(--bs-body-bg);--bs-offcanvas-border-width: var(--bs-border-width);--bs-offcanvas-border-color: var(--bs-border-color-translucent);--bs-offcanvas-box-shadow: var(--bs-box-shadow-sm);--bs-offcanvas-transition: transform .3s ease-in-out;--bs-offcanvas-title-line-height: 1.5}@media (max-width: 575.98px){.offcanvas-sm{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width: 575.98px) and (prefers-reduced-motion: reduce){.offcanvas-sm{transition:none}}@media (max-width: 575.98px){.offcanvas-sm.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(-100%)}.offcanvas-sm.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(100%)}.offcanvas-sm.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-sm.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-sm.showing,.offcanvas-sm.show:not(.hiding){transform:none}.offcanvas-sm.showing,.offcanvas-sm.hiding,.offcanvas-sm.show{visibility:visible}}@media (min-width: 576px){.offcanvas-sm{--bs-offcanvas-height: auto;--bs-offcanvas-border-width: 0;background-color:transparent!important}.offcanvas-sm .offcanvas-header{display:none}.offcanvas-sm .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width: 767.98px){.offcanvas-md{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width: 767.98px) and (prefers-reduced-motion: reduce){.offcanvas-md{transition:none}}@media (max-width: 767.98px){.offcanvas-md.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(-100%)}.offcanvas-md.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(100%)}.offcanvas-md.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-md.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-md.showing,.offcanvas-md.show:not(.hiding){transform:none}.offcanvas-md.showing,.offcanvas-md.hiding,.offcanvas-md.show{visibility:visible}}@media (min-width: 768px){.offcanvas-md{--bs-offcanvas-height: auto;--bs-offcanvas-border-width: 0;background-color:transparent!important}.offcanvas-md .offcanvas-header{display:none}.offcanvas-md .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width: 991.98px){.offcanvas-lg{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width: 991.98px) and (prefers-reduced-motion: reduce){.offcanvas-lg{transition:none}}@media (max-width: 991.98px){.offcanvas-lg.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(-100%)}.offcanvas-lg.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(100%)}.offcanvas-lg.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-lg.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-lg.showing,.offcanvas-lg.show:not(.hiding){transform:none}.offcanvas-lg.showing,.offcanvas-lg.hiding,.offcanvas-lg.show{visibility:visible}}@media (min-width: 992px){.offcanvas-lg{--bs-offcanvas-height: auto;--bs-offcanvas-border-width: 0;background-color:transparent!important}.offcanvas-lg .offcanvas-header{display:none}.offcanvas-lg .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width: 1199.98px){.offcanvas-xl{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width: 1199.98px) and (prefers-reduced-motion: reduce){.offcanvas-xl{transition:none}}@media (max-width: 1199.98px){.offcanvas-xl.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(-100%)}.offcanvas-xl.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(100%)}.offcanvas-xl.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-xl.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-xl.showing,.offcanvas-xl.show:not(.hiding){transform:none}.offcanvas-xl.showing,.offcanvas-xl.hiding,.offcanvas-xl.show{visibility:visible}}@media (min-width: 1200px){.offcanvas-xl{--bs-offcanvas-height: auto;--bs-offcanvas-border-width: 0;background-color:transparent!important}.offcanvas-xl .offcanvas-header{display:none}.offcanvas-xl .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width: 1399.98px){.offcanvas-xxl{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width: 1399.98px) and (prefers-reduced-motion: reduce){.offcanvas-xxl{transition:none}}@media (max-width: 1399.98px){.offcanvas-xxl.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(-100%)}.offcanvas-xxl.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(100%)}.offcanvas-xxl.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-xxl.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-xxl.showing,.offcanvas-xxl.show:not(.hiding){transform:none}.offcanvas-xxl.showing,.offcanvas-xxl.hiding,.offcanvas-xxl.show{visibility:visible}}@media (min-width: 1400px){.offcanvas-xxl{--bs-offcanvas-height: auto;--bs-offcanvas-border-width: 0;background-color:transparent!important}.offcanvas-xxl .offcanvas-header{display:none}.offcanvas-xxl .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}.offcanvas{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}@media (prefers-reduced-motion: reduce){.offcanvas{transition:none}}.offcanvas.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(-100%)}.offcanvas.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(100%)}.offcanvas.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas.showing,.offcanvas.show:not(.hiding){transform:none}.offcanvas.showing,.offcanvas.hiding,.offcanvas.show{visibility:visible}.offcanvas-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.offcanvas-backdrop.fade{opacity:0}.offcanvas-backdrop.show{opacity:.5}.offcanvas-header{display:flex;align-items:center;padding:var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x)}.offcanvas-header .btn-close{padding:calc(var(--bs-offcanvas-padding-y) * .5) calc(var(--bs-offcanvas-padding-x) * .5);margin:calc(-.5 * var(--bs-offcanvas-padding-y)) calc(-.5 * var(--bs-offcanvas-padding-x)) calc(-.5 * var(--bs-offcanvas-padding-y)) auto}.offcanvas-title{margin-bottom:0;line-height:var(--bs-offcanvas-title-line-height)}.offcanvas-body{flex-grow:1;padding:var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x);overflow-y:auto}.placeholder{display:inline-block;min-height:1em;vertical-align:middle;cursor:wait;background-color:currentcolor;opacity:.5}.placeholder.btn:before{display:inline-block;content:""}.placeholder-xs{min-height:.6em}.placeholder-sm{min-height:.8em}.placeholder-lg{min-height:1.2em}.placeholder-glow .placeholder{animation:placeholder-glow 2s ease-in-out infinite}@keyframes placeholder-glow{50%{opacity:.2}}.placeholder-wave{mask-image:linear-gradient(130deg,#000 55%,#000c,#000 95%);mask-size:200% 100%;animation:placeholder-wave 2s linear infinite}@keyframes placeholder-wave{to{mask-position:-200% 0%}}.clearfix:after{display:block;clear:both;content:""}.text-bg-primary{color:#fff!important;background-color:RGBA(var(--bs-primary-rgb),var(--bs-bg-opacity, 1))!important}.text-bg-secondary{color:#fff!important;background-color:RGBA(var(--bs-secondary-rgb),var(--bs-bg-opacity, 1))!important}.text-bg-success{color:#fff!important;background-color:RGBA(var(--bs-success-rgb),var(--bs-bg-opacity, 1))!important}.text-bg-info{color:#000!important;background-color:RGBA(var(--bs-info-rgb),var(--bs-bg-opacity, 1))!important}.text-bg-warning{color:#000!important;background-color:RGBA(var(--bs-warning-rgb),var(--bs-bg-opacity, 1))!important}.text-bg-danger{color:#fff!important;background-color:RGBA(var(--bs-danger-rgb),var(--bs-bg-opacity, 1))!important}.text-bg-light{color:#000!important;background-color:RGBA(var(--bs-light-rgb),var(--bs-bg-opacity, 1))!important}.text-bg-dark{color:#fff!important;background-color:RGBA(var(--bs-dark-rgb),var(--bs-bg-opacity, 1))!important}.link-primary{color:RGBA(var(--bs-primary-rgb),var(--bs-link-opacity, 1))!important;text-decoration-color:RGBA(var(--bs-primary-rgb),var(--bs-link-underline-opacity, 1))!important}.link-primary:hover,.link-primary:focus{color:RGBA(10,88,202,var(--bs-link-opacity, 1))!important;text-decoration-color:RGBA(10,88,202,var(--bs-link-underline-opacity, 1))!important}.link-secondary{color:RGBA(var(--bs-secondary-rgb),var(--bs-link-opacity, 1))!important;text-decoration-color:RGBA(var(--bs-secondary-rgb),var(--bs-link-underline-opacity, 1))!important}.link-secondary:hover,.link-secondary:focus{color:RGBA(86,94,100,var(--bs-link-opacity, 1))!important;text-decoration-color:RGBA(86,94,100,var(--bs-link-underline-opacity, 1))!important}.link-success{color:RGBA(var(--bs-success-rgb),var(--bs-link-opacity, 1))!important;text-decoration-color:RGBA(var(--bs-success-rgb),var(--bs-link-underline-opacity, 1))!important}.link-success:hover,.link-success:focus{color:RGBA(20,108,67,var(--bs-link-opacity, 1))!important;text-decoration-color:RGBA(20,108,67,var(--bs-link-underline-opacity, 1))!important}.link-info{color:RGBA(var(--bs-info-rgb),var(--bs-link-opacity, 1))!important;text-decoration-color:RGBA(var(--bs-info-rgb),var(--bs-link-underline-opacity, 1))!important}.link-info:hover,.link-info:focus{color:RGBA(61,213,243,var(--bs-link-opacity, 1))!important;text-decoration-color:RGBA(61,213,243,var(--bs-link-underline-opacity, 1))!important}.link-warning{color:RGBA(var(--bs-warning-rgb),var(--bs-link-opacity, 1))!important;text-decoration-color:RGBA(var(--bs-warning-rgb),var(--bs-link-underline-opacity, 1))!important}.link-warning:hover,.link-warning:focus{color:RGBA(255,205,57,var(--bs-link-opacity, 1))!important;text-decoration-color:RGBA(255,205,57,var(--bs-link-underline-opacity, 1))!important}.link-danger{color:RGBA(var(--bs-danger-rgb),var(--bs-link-opacity, 1))!important;text-decoration-color:RGBA(var(--bs-danger-rgb),var(--bs-link-underline-opacity, 1))!important}.link-danger:hover,.link-danger:focus{color:RGBA(176,42,55,var(--bs-link-opacity, 1))!important;text-decoration-color:RGBA(176,42,55,var(--bs-link-underline-opacity, 1))!important}.link-light{color:RGBA(var(--bs-light-rgb),var(--bs-link-opacity, 1))!important;text-decoration-color:RGBA(var(--bs-light-rgb),var(--bs-link-underline-opacity, 1))!important}.link-light:hover,.link-light:focus{color:RGBA(249,250,251,var(--bs-link-opacity, 1))!important;text-decoration-color:RGBA(249,250,251,var(--bs-link-underline-opacity, 1))!important}.link-dark{color:RGBA(var(--bs-dark-rgb),var(--bs-link-opacity, 1))!important;text-decoration-color:RGBA(var(--bs-dark-rgb),var(--bs-link-underline-opacity, 1))!important}.link-dark:hover,.link-dark:focus{color:RGBA(26,30,33,var(--bs-link-opacity, 1))!important;text-decoration-color:RGBA(26,30,33,var(--bs-link-underline-opacity, 1))!important}.link-body-emphasis{color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-opacity, 1))!important;text-decoration-color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-underline-opacity, 1))!important}.link-body-emphasis:hover,.link-body-emphasis:focus{color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-opacity, .75))!important;text-decoration-color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-underline-opacity, .75))!important}.focus-ring:focus{outline:0;box-shadow:var(--bs-focus-ring-x, 0) var(--bs-focus-ring-y, 0) var(--bs-focus-ring-blur, 0) var(--bs-focus-ring-width) var(--bs-focus-ring-color)}.icon-link{display:inline-flex;gap:.375rem;align-items:center;text-decoration-color:rgba(var(--bs-link-color-rgb),var(--bs-link-opacity, .5));text-underline-offset:.25em;backface-visibility:hidden}.icon-link>.bi{flex-shrink:0;width:1em;height:1em;fill:currentcolor;transition:.2s ease-in-out transform}@media (prefers-reduced-motion: reduce){.icon-link>.bi{transition:none}}.icon-link-hover:hover>.bi,.icon-link-hover:focus-visible>.bi{transform:var(--bs-icon-link-transform, translate3d(.25em, 0, 0))}.ratio{position:relative;width:100%}.ratio:before{display:block;padding-top:var(--bs-aspect-ratio);content:""}.ratio>*{position:absolute;top:0;left:0;width:100%;height:100%}.ratio-1x1{--bs-aspect-ratio: 100%}.ratio-4x3{--bs-aspect-ratio: 75%}.ratio-16x9{--bs-aspect-ratio: 56.25%}.ratio-21x9{--bs-aspect-ratio: 42.8571428571%}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}.sticky-top{position:sticky;top:0;z-index:1020}.sticky-bottom{position:sticky;bottom:0;z-index:1020}@media (min-width: 576px){.sticky-sm-top{position:sticky;top:0;z-index:1020}.sticky-sm-bottom{position:sticky;bottom:0;z-index:1020}}@media (min-width: 768px){.sticky-md-top{position:sticky;top:0;z-index:1020}.sticky-md-bottom{position:sticky;bottom:0;z-index:1020}}@media (min-width: 992px){.sticky-lg-top{position:sticky;top:0;z-index:1020}.sticky-lg-bottom{position:sticky;bottom:0;z-index:1020}}@media (min-width: 1200px){.sticky-xl-top{position:sticky;top:0;z-index:1020}.sticky-xl-bottom{position:sticky;bottom:0;z-index:1020}}@media (min-width: 1400px){.sticky-xxl-top{position:sticky;top:0;z-index:1020}.sticky-xxl-bottom{position:sticky;bottom:0;z-index:1020}}.hstack{display:flex;flex-direction:row;align-items:center;align-self:stretch}.vstack{display:flex;flex:1 1 auto;flex-direction:column;align-self:stretch}.visually-hidden,.visually-hidden-focusable:not(:focus):not(:focus-within){width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.visually-hidden:not(caption),.visually-hidden-focusable:not(:focus):not(:focus-within):not(caption){position:absolute!important}.stretched-link:after{position:absolute;inset:0;z-index:1;content:""}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vr{display:inline-block;align-self:stretch;width:var(--bs-border-width);min-height:1em;background-color:currentcolor;opacity:.25}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.float-start{float:left!important}.float-end{float:right!important}.float-none{float:none!important}.object-fit-contain{object-fit:contain!important}.object-fit-cover{object-fit:cover!important}.object-fit-fill{object-fit:fill!important}.object-fit-scale{object-fit:scale-down!important}.object-fit-none{object-fit:none!important}.opacity-0{opacity:0!important}.opacity-25{opacity:.25!important}.opacity-50{opacity:.5!important}.opacity-75{opacity:.75!important}.opacity-100{opacity:1!important}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.overflow-visible{overflow:visible!important}.overflow-scroll{overflow:scroll!important}.overflow-x-auto{overflow-x:auto!important}.overflow-x-hidden{overflow-x:hidden!important}.overflow-x-visible{overflow-x:visible!important}.overflow-x-scroll{overflow-x:scroll!important}.overflow-y-auto{overflow-y:auto!important}.overflow-y-hidden{overflow-y:hidden!important}.overflow-y-visible{overflow-y:visible!important}.overflow-y-scroll{overflow-y:scroll!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-grid{display:grid!important}.d-inline-grid{display:inline-grid!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:flex!important}.d-inline-flex{display:inline-flex!important}.d-none{display:none!important}.shadow{box-shadow:var(--bs-box-shadow)!important}.shadow-sm{box-shadow:var(--bs-box-shadow-sm)!important}.shadow-lg{box-shadow:var(--bs-box-shadow-lg)!important}.shadow-none{box-shadow:none!important}.focus-ring-primary{--bs-focus-ring-color: rgba(var(--bs-primary-rgb), var(--bs-focus-ring-opacity))}.focus-ring-secondary{--bs-focus-ring-color: rgba(var(--bs-secondary-rgb), var(--bs-focus-ring-opacity))}.focus-ring-success{--bs-focus-ring-color: rgba(var(--bs-success-rgb), var(--bs-focus-ring-opacity))}.focus-ring-info{--bs-focus-ring-color: rgba(var(--bs-info-rgb), var(--bs-focus-ring-opacity))}.focus-ring-warning{--bs-focus-ring-color: rgba(var(--bs-warning-rgb), var(--bs-focus-ring-opacity))}.focus-ring-danger{--bs-focus-ring-color: rgba(var(--bs-danger-rgb), var(--bs-focus-ring-opacity))}.focus-ring-light{--bs-focus-ring-color: rgba(var(--bs-light-rgb), var(--bs-focus-ring-opacity))}.focus-ring-dark{--bs-focus-ring-color: rgba(var(--bs-dark-rgb), var(--bs-focus-ring-opacity))}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:sticky!important}.top-0{top:0!important}.top-50{top:50%!important}.top-100{top:100%!important}.bottom-0{bottom:0!important}.bottom-50{bottom:50%!important}.bottom-100{bottom:100%!important}.start-0{left:0!important}.start-50{left:50%!important}.start-100{left:100%!important}.end-0{right:0!important}.end-50{right:50%!important}.end-100{right:100%!important}.translate-middle{transform:translate(-50%,-50%)!important}.translate-middle-x{transform:translate(-50%)!important}.translate-middle-y{transform:translateY(-50%)!important}.border{border:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-0{border:0!important}.border-top{border-top:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-top-0{border-top:0!important}.border-end{border-right:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-end-0{border-right:0!important}.border-bottom{border-bottom:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-bottom-0{border-bottom:0!important}.border-start{border-left:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-start-0{border-left:0!important}.border-primary{--bs-border-opacity: 1;border-color:rgba(var(--bs-primary-rgb),var(--bs-border-opacity))!important}.border-secondary{--bs-border-opacity: 1;border-color:rgba(var(--bs-secondary-rgb),var(--bs-border-opacity))!important}.border-success{--bs-border-opacity: 1;border-color:rgba(var(--bs-success-rgb),var(--bs-border-opacity))!important}.border-info{--bs-border-opacity: 1;border-color:rgba(var(--bs-info-rgb),var(--bs-border-opacity))!important}.border-warning{--bs-border-opacity: 1;border-color:rgba(var(--bs-warning-rgb),var(--bs-border-opacity))!important}.border-danger{--bs-border-opacity: 1;border-color:rgba(var(--bs-danger-rgb),var(--bs-border-opacity))!important}.border-light{--bs-border-opacity: 1;border-color:rgba(var(--bs-light-rgb),var(--bs-border-opacity))!important}.border-dark{--bs-border-opacity: 1;border-color:rgba(var(--bs-dark-rgb),var(--bs-border-opacity))!important}.border-black{--bs-border-opacity: 1;border-color:rgba(var(--bs-black-rgb),var(--bs-border-opacity))!important}.border-white{--bs-border-opacity: 1;border-color:rgba(var(--bs-white-rgb),var(--bs-border-opacity))!important}.border-primary-subtle{border-color:var(--bs-primary-border-subtle)!important}.border-secondary-subtle{border-color:var(--bs-secondary-border-subtle)!important}.border-success-subtle{border-color:var(--bs-success-border-subtle)!important}.border-info-subtle{border-color:var(--bs-info-border-subtle)!important}.border-warning-subtle{border-color:var(--bs-warning-border-subtle)!important}.border-danger-subtle{border-color:var(--bs-danger-border-subtle)!important}.border-light-subtle{border-color:var(--bs-light-border-subtle)!important}.border-dark-subtle{border-color:var(--bs-dark-border-subtle)!important}.border-1{border-width:1px!important}.border-2{border-width:2px!important}.border-3{border-width:3px!important}.border-4{border-width:4px!important}.border-5{border-width:5px!important}.border-opacity-10{--bs-border-opacity: .1}.border-opacity-25{--bs-border-opacity: .25}.border-opacity-50{--bs-border-opacity: .5}.border-opacity-75{--bs-border-opacity: .75}.border-opacity-100{--bs-border-opacity: 1}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.mw-100{max-width:100%!important}.vw-100{width:100vw!important}.min-vw-100{min-width:100vw!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mh-100{max-height:100%!important}.vh-100{height:100vh!important}.min-vh-100{min-height:100vh!important}.flex-fill{flex:1 1 auto!important}.flex-row{flex-direction:row!important}.flex-column{flex-direction:column!important}.flex-row-reverse{flex-direction:row-reverse!important}.flex-column-reverse{flex-direction:column-reverse!important}.flex-grow-0{flex-grow:0!important}.flex-grow-1{flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-start{justify-content:flex-start!important}.justify-content-end{justify-content:flex-end!important}.justify-content-center{justify-content:center!important}.justify-content-between{justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.justify-content-evenly{justify-content:space-evenly!important}.align-items-start{align-items:flex-start!important}.align-items-end{align-items:flex-end!important}.align-items-center{align-items:center!important}.align-items-baseline{align-items:baseline!important}.align-items-stretch{align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}.order-first{order:-1!important}.order-0{order:0!important}.order-1{order:1!important}.order-2{order:2!important}.order-3{order:3!important}.order-4{order:4!important}.order-5{order:5!important}.order-last{order:6!important}.m-0{margin:0!important}.m-1{margin:.25rem!important}.m-2{margin:.5rem!important}.m-3{margin:1rem!important}.m-4{margin:1.5rem!important}.m-5{margin:3rem!important}.m-auto{margin:auto!important}.mx-0{margin-right:0!important;margin-left:0!important}.mx-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-3{margin-right:1rem!important;margin-left:1rem!important}.mx-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-5{margin-right:3rem!important;margin-left:3rem!important}.mx-auto{margin-right:auto!important;margin-left:auto!important}.my-0{margin-top:0!important;margin-bottom:0!important}.my-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-0{margin-top:0!important}.mt-1{margin-top:.25rem!important}.mt-2{margin-top:.5rem!important}.mt-3{margin-top:1rem!important}.mt-4{margin-top:1.5rem!important}.mt-5{margin-top:3rem!important}.mt-auto{margin-top:auto!important}.me-0{margin-right:0!important}.me-1{margin-right:.25rem!important}.me-2{margin-right:.5rem!important}.me-3{margin-right:1rem!important}.me-4{margin-right:1.5rem!important}.me-5{margin-right:3rem!important}.me-auto{margin-right:auto!important}.mb-0{margin-bottom:0!important}.mb-1{margin-bottom:.25rem!important}.mb-2{margin-bottom:.5rem!important}.mb-3{margin-bottom:1rem!important}.mb-4{margin-bottom:1.5rem!important}.mb-5{margin-bottom:3rem!important}.mb-auto{margin-bottom:auto!important}.ms-0{margin-left:0!important}.ms-1{margin-left:.25rem!important}.ms-2{margin-left:.5rem!important}.ms-3{margin-left:1rem!important}.ms-4{margin-left:1.5rem!important}.ms-5{margin-left:3rem!important}.ms-auto{margin-left:auto!important}.p-0{padding:0!important}.p-1{padding:.25rem!important}.p-2{padding:.5rem!important}.p-3{padding:1rem!important}.p-4{padding:1.5rem!important}.p-5{padding:3rem!important}.px-0{padding-right:0!important;padding-left:0!important}.px-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-3{padding-right:1rem!important;padding-left:1rem!important}.px-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-5{padding-right:3rem!important;padding-left:3rem!important}.py-0{padding-top:0!important;padding-bottom:0!important}.py-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-0{padding-top:0!important}.pt-1{padding-top:.25rem!important}.pt-2{padding-top:.5rem!important}.pt-3{padding-top:1rem!important}.pt-4{padding-top:1.5rem!important}.pt-5{padding-top:3rem!important}.pe-0{padding-right:0!important}.pe-1{padding-right:.25rem!important}.pe-2{padding-right:.5rem!important}.pe-3{padding-right:1rem!important}.pe-4{padding-right:1.5rem!important}.pe-5{padding-right:3rem!important}.pb-0{padding-bottom:0!important}.pb-1{padding-bottom:.25rem!important}.pb-2{padding-bottom:.5rem!important}.pb-3{padding-bottom:1rem!important}.pb-4{padding-bottom:1.5rem!important}.pb-5{padding-bottom:3rem!important}.ps-0{padding-left:0!important}.ps-1{padding-left:.25rem!important}.ps-2{padding-left:.5rem!important}.ps-3{padding-left:1rem!important}.ps-4{padding-left:1.5rem!important}.ps-5{padding-left:3rem!important}.gap-0{gap:0!important}.gap-1{gap:.25rem!important}.gap-2{gap:.5rem!important}.gap-3{gap:1rem!important}.gap-4{gap:1.5rem!important}.gap-5{gap:3rem!important}.row-gap-0{row-gap:0!important}.row-gap-1{row-gap:.25rem!important}.row-gap-2{row-gap:.5rem!important}.row-gap-3{row-gap:1rem!important}.row-gap-4{row-gap:1.5rem!important}.row-gap-5{row-gap:3rem!important}.column-gap-0{column-gap:0!important}.column-gap-1{column-gap:.25rem!important}.column-gap-2{column-gap:.5rem!important}.column-gap-3{column-gap:1rem!important}.column-gap-4{column-gap:1.5rem!important}.column-gap-5{column-gap:3rem!important}.font-monospace{font-family:var(--bs-font-monospace)!important}.fs-1{font-size:calc(1.375rem + 1.5vw)!important}.fs-2{font-size:calc(1.325rem + .9vw)!important}.fs-3{font-size:calc(1.3rem + .6vw)!important}.fs-4{font-size:calc(1.275rem + .3vw)!important}.fs-5{font-size:1.25rem!important}.fs-6{font-size:1rem!important}.fst-italic{font-style:italic!important}.fst-normal{font-style:normal!important}.fw-lighter{font-weight:lighter!important}.fw-light{font-weight:300!important}.fw-normal{font-weight:400!important}.fw-medium{font-weight:500!important}.fw-semibold{font-weight:600!important}.fw-bold{font-weight:700!important}.fw-bolder{font-weight:bolder!important}.lh-1{line-height:1!important}.lh-sm{line-height:1.25!important}.lh-base{line-height:1.5!important}.lh-lg{line-height:2!important}.text-start{text-align:left!important}.text-end{text-align:right!important}.text-center{text-align:center!important}.text-decoration-none{text-decoration:none!important}.text-decoration-underline{text-decoration:underline!important}.text-decoration-line-through{text-decoration:line-through!important}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-break{word-wrap:break-word!important;word-break:break-word!important}.text-primary{--bs-text-opacity: 1;color:rgba(var(--bs-primary-rgb),var(--bs-text-opacity))!important}.text-secondary{--bs-text-opacity: 1;color:rgba(var(--bs-secondary-rgb),var(--bs-text-opacity))!important}.text-success{--bs-text-opacity: 1;color:rgba(var(--bs-success-rgb),var(--bs-text-opacity))!important}.text-info{--bs-text-opacity: 1;color:rgba(var(--bs-info-rgb),var(--bs-text-opacity))!important}.text-warning{--bs-text-opacity: 1;color:rgba(var(--bs-warning-rgb),var(--bs-text-opacity))!important}.text-danger{--bs-text-opacity: 1;color:rgba(var(--bs-danger-rgb),var(--bs-text-opacity))!important}.text-light{--bs-text-opacity: 1;color:rgba(var(--bs-light-rgb),var(--bs-text-opacity))!important}.text-dark{--bs-text-opacity: 1;color:rgba(var(--bs-dark-rgb),var(--bs-text-opacity))!important}.text-black{--bs-text-opacity: 1;color:rgba(var(--bs-black-rgb),var(--bs-text-opacity))!important}.text-white{--bs-text-opacity: 1;color:rgba(var(--bs-white-rgb),var(--bs-text-opacity))!important}.text-body{--bs-text-opacity: 1;color:rgba(var(--bs-body-color-rgb),var(--bs-text-opacity))!important}.text-muted{--bs-text-opacity: 1;color:var(--bs-secondary-color)!important}.text-black-50{--bs-text-opacity: 1;color:#00000080!important}.text-white-50{--bs-text-opacity: 1;color:#ffffff80!important}.text-body-secondary{--bs-text-opacity: 1;color:var(--bs-secondary-color)!important}.text-body-tertiary{--bs-text-opacity: 1;color:var(--bs-tertiary-color)!important}.text-body-emphasis{--bs-text-opacity: 1;color:var(--bs-emphasis-color)!important}.text-reset{--bs-text-opacity: 1;color:inherit!important}.text-opacity-25{--bs-text-opacity: .25}.text-opacity-50{--bs-text-opacity: .5}.text-opacity-75{--bs-text-opacity: .75}.text-opacity-100{--bs-text-opacity: 1}.text-primary-emphasis{color:var(--bs-primary-text-emphasis)!important}.text-secondary-emphasis{color:var(--bs-secondary-text-emphasis)!important}.text-success-emphasis{color:var(--bs-success-text-emphasis)!important}.text-info-emphasis{color:var(--bs-info-text-emphasis)!important}.text-warning-emphasis{color:var(--bs-warning-text-emphasis)!important}.text-danger-emphasis{color:var(--bs-danger-text-emphasis)!important}.text-light-emphasis{color:var(--bs-light-text-emphasis)!important}.text-dark-emphasis{color:var(--bs-dark-text-emphasis)!important}.link-opacity-10,.link-opacity-10-hover:hover{--bs-link-opacity: .1}.link-opacity-25,.link-opacity-25-hover:hover{--bs-link-opacity: .25}.link-opacity-50,.link-opacity-50-hover:hover{--bs-link-opacity: .5}.link-opacity-75,.link-opacity-75-hover:hover{--bs-link-opacity: .75}.link-opacity-100,.link-opacity-100-hover:hover{--bs-link-opacity: 1}.link-offset-1,.link-offset-1-hover:hover{text-underline-offset:.125em!important}.link-offset-2,.link-offset-2-hover:hover{text-underline-offset:.25em!important}.link-offset-3,.link-offset-3-hover:hover{text-underline-offset:.375em!important}.link-underline-primary{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-primary-rgb),var(--bs-link-underline-opacity))!important}.link-underline-secondary{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-secondary-rgb),var(--bs-link-underline-opacity))!important}.link-underline-success{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-success-rgb),var(--bs-link-underline-opacity))!important}.link-underline-info{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-info-rgb),var(--bs-link-underline-opacity))!important}.link-underline-warning{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-warning-rgb),var(--bs-link-underline-opacity))!important}.link-underline-danger{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-danger-rgb),var(--bs-link-underline-opacity))!important}.link-underline-light{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-light-rgb),var(--bs-link-underline-opacity))!important}.link-underline-dark{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-dark-rgb),var(--bs-link-underline-opacity))!important}.link-underline{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-link-color-rgb),var(--bs-link-underline-opacity, 1))!important}.link-underline-opacity-0,.link-underline-opacity-0-hover:hover{--bs-link-underline-opacity: 0}.link-underline-opacity-10,.link-underline-opacity-10-hover:hover{--bs-link-underline-opacity: .1}.link-underline-opacity-25,.link-underline-opacity-25-hover:hover{--bs-link-underline-opacity: .25}.link-underline-opacity-50,.link-underline-opacity-50-hover:hover{--bs-link-underline-opacity: .5}.link-underline-opacity-75,.link-underline-opacity-75-hover:hover{--bs-link-underline-opacity: .75}.link-underline-opacity-100,.link-underline-opacity-100-hover:hover{--bs-link-underline-opacity: 1}.bg-primary{--bs-bg-opacity: 1;background-color:rgba(var(--bs-primary-rgb),var(--bs-bg-opacity))!important}.bg-secondary{--bs-bg-opacity: 1;background-color:rgba(var(--bs-secondary-rgb),var(--bs-bg-opacity))!important}.bg-success{--bs-bg-opacity: 1;background-color:rgba(var(--bs-success-rgb),var(--bs-bg-opacity))!important}.bg-info{--bs-bg-opacity: 1;background-color:rgba(var(--bs-info-rgb),var(--bs-bg-opacity))!important}.bg-warning{--bs-bg-opacity: 1;background-color:rgba(var(--bs-warning-rgb),var(--bs-bg-opacity))!important}.bg-danger{--bs-bg-opacity: 1;background-color:rgba(var(--bs-danger-rgb),var(--bs-bg-opacity))!important}.bg-light{--bs-bg-opacity: 1;background-color:rgba(var(--bs-light-rgb),var(--bs-bg-opacity))!important}.bg-dark{--bs-bg-opacity: 1;background-color:rgba(var(--bs-dark-rgb),var(--bs-bg-opacity))!important}.bg-black{--bs-bg-opacity: 1;background-color:rgba(var(--bs-black-rgb),var(--bs-bg-opacity))!important}.bg-white{--bs-bg-opacity: 1;background-color:rgba(var(--bs-white-rgb),var(--bs-bg-opacity))!important}.bg-body{--bs-bg-opacity: 1;background-color:rgba(var(--bs-body-bg-rgb),var(--bs-bg-opacity))!important}.bg-transparent{--bs-bg-opacity: 1;background-color:transparent!important}.bg-body-secondary{--bs-bg-opacity: 1;background-color:rgba(var(--bs-secondary-bg-rgb),var(--bs-bg-opacity))!important}.bg-body-tertiary{--bs-bg-opacity: 1;background-color:rgba(var(--bs-tertiary-bg-rgb),var(--bs-bg-opacity))!important}.bg-opacity-10{--bs-bg-opacity: .1}.bg-opacity-25{--bs-bg-opacity: .25}.bg-opacity-50{--bs-bg-opacity: .5}.bg-opacity-75{--bs-bg-opacity: .75}.bg-opacity-100{--bs-bg-opacity: 1}.bg-primary-subtle{background-color:var(--bs-primary-bg-subtle)!important}.bg-secondary-subtle{background-color:var(--bs-secondary-bg-subtle)!important}.bg-success-subtle{background-color:var(--bs-success-bg-subtle)!important}.bg-info-subtle{background-color:var(--bs-info-bg-subtle)!important}.bg-warning-subtle{background-color:var(--bs-warning-bg-subtle)!important}.bg-danger-subtle{background-color:var(--bs-danger-bg-subtle)!important}.bg-light-subtle{background-color:var(--bs-light-bg-subtle)!important}.bg-dark-subtle{background-color:var(--bs-dark-bg-subtle)!important}.bg-gradient{background-image:var(--bs-gradient)!important}.user-select-all{user-select:all!important}.user-select-auto{user-select:auto!important}.user-select-none{user-select:none!important}.pe-none{pointer-events:none!important}.pe-auto{pointer-events:auto!important}.rounded{border-radius:var(--bs-border-radius)!important}.rounded-0{border-radius:0!important}.rounded-1{border-radius:var(--bs-border-radius-sm)!important}.rounded-2{border-radius:var(--bs-border-radius)!important}.rounded-3{border-radius:var(--bs-border-radius-lg)!important}.rounded-4{border-radius:var(--bs-border-radius-xl)!important}.rounded-5{border-radius:var(--bs-border-radius-xxl)!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:var(--bs-border-radius-pill)!important}.rounded-top{border-top-left-radius:var(--bs-border-radius)!important;border-top-right-radius:var(--bs-border-radius)!important}.rounded-top-0{border-top-left-radius:0!important;border-top-right-radius:0!important}.rounded-top-1{border-top-left-radius:var(--bs-border-radius-sm)!important;border-top-right-radius:var(--bs-border-radius-sm)!important}.rounded-top-2{border-top-left-radius:var(--bs-border-radius)!important;border-top-right-radius:var(--bs-border-radius)!important}.rounded-top-3{border-top-left-radius:var(--bs-border-radius-lg)!important;border-top-right-radius:var(--bs-border-radius-lg)!important}.rounded-top-4{border-top-left-radius:var(--bs-border-radius-xl)!important;border-top-right-radius:var(--bs-border-radius-xl)!important}.rounded-top-5{border-top-left-radius:var(--bs-border-radius-xxl)!important;border-top-right-radius:var(--bs-border-radius-xxl)!important}.rounded-top-circle{border-top-left-radius:50%!important;border-top-right-radius:50%!important}.rounded-top-pill{border-top-left-radius:var(--bs-border-radius-pill)!important;border-top-right-radius:var(--bs-border-radius-pill)!important}.rounded-end{border-top-right-radius:var(--bs-border-radius)!important;border-bottom-right-radius:var(--bs-border-radius)!important}.rounded-end-0{border-top-right-radius:0!important;border-bottom-right-radius:0!important}.rounded-end-1{border-top-right-radius:var(--bs-border-radius-sm)!important;border-bottom-right-radius:var(--bs-border-radius-sm)!important}.rounded-end-2{border-top-right-radius:var(--bs-border-radius)!important;border-bottom-right-radius:var(--bs-border-radius)!important}.rounded-end-3{border-top-right-radius:var(--bs-border-radius-lg)!important;border-bottom-right-radius:var(--bs-border-radius-lg)!important}.rounded-end-4{border-top-right-radius:var(--bs-border-radius-xl)!important;border-bottom-right-radius:var(--bs-border-radius-xl)!important}.rounded-end-5{border-top-right-radius:var(--bs-border-radius-xxl)!important;border-bottom-right-radius:var(--bs-border-radius-xxl)!important}.rounded-end-circle{border-top-right-radius:50%!important;border-bottom-right-radius:50%!important}.rounded-end-pill{border-top-right-radius:var(--bs-border-radius-pill)!important;border-bottom-right-radius:var(--bs-border-radius-pill)!important}.rounded-bottom{border-bottom-right-radius:var(--bs-border-radius)!important;border-bottom-left-radius:var(--bs-border-radius)!important}.rounded-bottom-0{border-bottom-right-radius:0!important;border-bottom-left-radius:0!important}.rounded-bottom-1{border-bottom-right-radius:var(--bs-border-radius-sm)!important;border-bottom-left-radius:var(--bs-border-radius-sm)!important}.rounded-bottom-2{border-bottom-right-radius:var(--bs-border-radius)!important;border-bottom-left-radius:var(--bs-border-radius)!important}.rounded-bottom-3{border-bottom-right-radius:var(--bs-border-radius-lg)!important;border-bottom-left-radius:var(--bs-border-radius-lg)!important}.rounded-bottom-4{border-bottom-right-radius:var(--bs-border-radius-xl)!important;border-bottom-left-radius:var(--bs-border-radius-xl)!important}.rounded-bottom-5{border-bottom-right-radius:var(--bs-border-radius-xxl)!important;border-bottom-left-radius:var(--bs-border-radius-xxl)!important}.rounded-bottom-circle{border-bottom-right-radius:50%!important;border-bottom-left-radius:50%!important}.rounded-bottom-pill{border-bottom-right-radius:var(--bs-border-radius-pill)!important;border-bottom-left-radius:var(--bs-border-radius-pill)!important}.rounded-start{border-bottom-left-radius:var(--bs-border-radius)!important;border-top-left-radius:var(--bs-border-radius)!important}.rounded-start-0{border-bottom-left-radius:0!important;border-top-left-radius:0!important}.rounded-start-1{border-bottom-left-radius:var(--bs-border-radius-sm)!important;border-top-left-radius:var(--bs-border-radius-sm)!important}.rounded-start-2{border-bottom-left-radius:var(--bs-border-radius)!important;border-top-left-radius:var(--bs-border-radius)!important}.rounded-start-3{border-bottom-left-radius:var(--bs-border-radius-lg)!important;border-top-left-radius:var(--bs-border-radius-lg)!important}.rounded-start-4{border-bottom-left-radius:var(--bs-border-radius-xl)!important;border-top-left-radius:var(--bs-border-radius-xl)!important}.rounded-start-5{border-bottom-left-radius:var(--bs-border-radius-xxl)!important;border-top-left-radius:var(--bs-border-radius-xxl)!important}.rounded-start-circle{border-bottom-left-radius:50%!important;border-top-left-radius:50%!important}.rounded-start-pill{border-bottom-left-radius:var(--bs-border-radius-pill)!important;border-top-left-radius:var(--bs-border-radius-pill)!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}.z-n1{z-index:-1!important}.z-0{z-index:0!important}.z-1{z-index:1!important}.z-2{z-index:2!important}.z-3{z-index:3!important}@media (min-width: 576px){.float-sm-start{float:left!important}.float-sm-end{float:right!important}.float-sm-none{float:none!important}.object-fit-sm-contain{object-fit:contain!important}.object-fit-sm-cover{object-fit:cover!important}.object-fit-sm-fill{object-fit:fill!important}.object-fit-sm-scale{object-fit:scale-down!important}.object-fit-sm-none{object-fit:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-grid{display:grid!important}.d-sm-inline-grid{display:inline-grid!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:flex!important}.d-sm-inline-flex{display:inline-flex!important}.d-sm-none{display:none!important}.flex-sm-fill{flex:1 1 auto!important}.flex-sm-row{flex-direction:row!important}.flex-sm-column{flex-direction:column!important}.flex-sm-row-reverse{flex-direction:row-reverse!important}.flex-sm-column-reverse{flex-direction:column-reverse!important}.flex-sm-grow-0{flex-grow:0!important}.flex-sm-grow-1{flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-sm-start{justify-content:flex-start!important}.justify-content-sm-end{justify-content:flex-end!important}.justify-content-sm-center{justify-content:center!important}.justify-content-sm-between{justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.justify-content-sm-evenly{justify-content:space-evenly!important}.align-items-sm-start{align-items:flex-start!important}.align-items-sm-end{align-items:flex-end!important}.align-items-sm-center{align-items:center!important}.align-items-sm-baseline{align-items:baseline!important}.align-items-sm-stretch{align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}.order-sm-first{order:-1!important}.order-sm-0{order:0!important}.order-sm-1{order:1!important}.order-sm-2{order:2!important}.order-sm-3{order:3!important}.order-sm-4{order:4!important}.order-sm-5{order:5!important}.order-sm-last{order:6!important}.m-sm-0{margin:0!important}.m-sm-1{margin:.25rem!important}.m-sm-2{margin:.5rem!important}.m-sm-3{margin:1rem!important}.m-sm-4{margin:1.5rem!important}.m-sm-5{margin:3rem!important}.m-sm-auto{margin:auto!important}.mx-sm-0{margin-right:0!important;margin-left:0!important}.mx-sm-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-sm-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-sm-3{margin-right:1rem!important;margin-left:1rem!important}.mx-sm-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-sm-5{margin-right:3rem!important;margin-left:3rem!important}.mx-sm-auto{margin-right:auto!important;margin-left:auto!important}.my-sm-0{margin-top:0!important;margin-bottom:0!important}.my-sm-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-sm-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-sm-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-sm-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-sm-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-sm-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-sm-0{margin-top:0!important}.mt-sm-1{margin-top:.25rem!important}.mt-sm-2{margin-top:.5rem!important}.mt-sm-3{margin-top:1rem!important}.mt-sm-4{margin-top:1.5rem!important}.mt-sm-5{margin-top:3rem!important}.mt-sm-auto{margin-top:auto!important}.me-sm-0{margin-right:0!important}.me-sm-1{margin-right:.25rem!important}.me-sm-2{margin-right:.5rem!important}.me-sm-3{margin-right:1rem!important}.me-sm-4{margin-right:1.5rem!important}.me-sm-5{margin-right:3rem!important}.me-sm-auto{margin-right:auto!important}.mb-sm-0{margin-bottom:0!important}.mb-sm-1{margin-bottom:.25rem!important}.mb-sm-2{margin-bottom:.5rem!important}.mb-sm-3{margin-bottom:1rem!important}.mb-sm-4{margin-bottom:1.5rem!important}.mb-sm-5{margin-bottom:3rem!important}.mb-sm-auto{margin-bottom:auto!important}.ms-sm-0{margin-left:0!important}.ms-sm-1{margin-left:.25rem!important}.ms-sm-2{margin-left:.5rem!important}.ms-sm-3{margin-left:1rem!important}.ms-sm-4{margin-left:1.5rem!important}.ms-sm-5{margin-left:3rem!important}.ms-sm-auto{margin-left:auto!important}.p-sm-0{padding:0!important}.p-sm-1{padding:.25rem!important}.p-sm-2{padding:.5rem!important}.p-sm-3{padding:1rem!important}.p-sm-4{padding:1.5rem!important}.p-sm-5{padding:3rem!important}.px-sm-0{padding-right:0!important;padding-left:0!important}.px-sm-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-sm-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-sm-3{padding-right:1rem!important;padding-left:1rem!important}.px-sm-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-sm-5{padding-right:3rem!important;padding-left:3rem!important}.py-sm-0{padding-top:0!important;padding-bottom:0!important}.py-sm-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-sm-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-sm-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-sm-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-sm-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-sm-0{padding-top:0!important}.pt-sm-1{padding-top:.25rem!important}.pt-sm-2{padding-top:.5rem!important}.pt-sm-3{padding-top:1rem!important}.pt-sm-4{padding-top:1.5rem!important}.pt-sm-5{padding-top:3rem!important}.pe-sm-0{padding-right:0!important}.pe-sm-1{padding-right:.25rem!important}.pe-sm-2{padding-right:.5rem!important}.pe-sm-3{padding-right:1rem!important}.pe-sm-4{padding-right:1.5rem!important}.pe-sm-5{padding-right:3rem!important}.pb-sm-0{padding-bottom:0!important}.pb-sm-1{padding-bottom:.25rem!important}.pb-sm-2{padding-bottom:.5rem!important}.pb-sm-3{padding-bottom:1rem!important}.pb-sm-4{padding-bottom:1.5rem!important}.pb-sm-5{padding-bottom:3rem!important}.ps-sm-0{padding-left:0!important}.ps-sm-1{padding-left:.25rem!important}.ps-sm-2{padding-left:.5rem!important}.ps-sm-3{padding-left:1rem!important}.ps-sm-4{padding-left:1.5rem!important}.ps-sm-5{padding-left:3rem!important}.gap-sm-0{gap:0!important}.gap-sm-1{gap:.25rem!important}.gap-sm-2{gap:.5rem!important}.gap-sm-3{gap:1rem!important}.gap-sm-4{gap:1.5rem!important}.gap-sm-5{gap:3rem!important}.row-gap-sm-0{row-gap:0!important}.row-gap-sm-1{row-gap:.25rem!important}.row-gap-sm-2{row-gap:.5rem!important}.row-gap-sm-3{row-gap:1rem!important}.row-gap-sm-4{row-gap:1.5rem!important}.row-gap-sm-5{row-gap:3rem!important}.column-gap-sm-0{column-gap:0!important}.column-gap-sm-1{column-gap:.25rem!important}.column-gap-sm-2{column-gap:.5rem!important}.column-gap-sm-3{column-gap:1rem!important}.column-gap-sm-4{column-gap:1.5rem!important}.column-gap-sm-5{column-gap:3rem!important}.text-sm-start{text-align:left!important}.text-sm-end{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width: 768px){.float-md-start{float:left!important}.float-md-end{float:right!important}.float-md-none{float:none!important}.object-fit-md-contain{object-fit:contain!important}.object-fit-md-cover{object-fit:cover!important}.object-fit-md-fill{object-fit:fill!important}.object-fit-md-scale{object-fit:scale-down!important}.object-fit-md-none{object-fit:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-grid{display:grid!important}.d-md-inline-grid{display:inline-grid!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:flex!important}.d-md-inline-flex{display:inline-flex!important}.d-md-none{display:none!important}.flex-md-fill{flex:1 1 auto!important}.flex-md-row{flex-direction:row!important}.flex-md-column{flex-direction:column!important}.flex-md-row-reverse{flex-direction:row-reverse!important}.flex-md-column-reverse{flex-direction:column-reverse!important}.flex-md-grow-0{flex-grow:0!important}.flex-md-grow-1{flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-md-start{justify-content:flex-start!important}.justify-content-md-end{justify-content:flex-end!important}.justify-content-md-center{justify-content:center!important}.justify-content-md-between{justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.justify-content-md-evenly{justify-content:space-evenly!important}.align-items-md-start{align-items:flex-start!important}.align-items-md-end{align-items:flex-end!important}.align-items-md-center{align-items:center!important}.align-items-md-baseline{align-items:baseline!important}.align-items-md-stretch{align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}.order-md-first{order:-1!important}.order-md-0{order:0!important}.order-md-1{order:1!important}.order-md-2{order:2!important}.order-md-3{order:3!important}.order-md-4{order:4!important}.order-md-5{order:5!important}.order-md-last{order:6!important}.m-md-0{margin:0!important}.m-md-1{margin:.25rem!important}.m-md-2{margin:.5rem!important}.m-md-3{margin:1rem!important}.m-md-4{margin:1.5rem!important}.m-md-5{margin:3rem!important}.m-md-auto{margin:auto!important}.mx-md-0{margin-right:0!important;margin-left:0!important}.mx-md-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-md-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-md-3{margin-right:1rem!important;margin-left:1rem!important}.mx-md-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-md-5{margin-right:3rem!important;margin-left:3rem!important}.mx-md-auto{margin-right:auto!important;margin-left:auto!important}.my-md-0{margin-top:0!important;margin-bottom:0!important}.my-md-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-md-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-md-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-md-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-md-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-md-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-md-0{margin-top:0!important}.mt-md-1{margin-top:.25rem!important}.mt-md-2{margin-top:.5rem!important}.mt-md-3{margin-top:1rem!important}.mt-md-4{margin-top:1.5rem!important}.mt-md-5{margin-top:3rem!important}.mt-md-auto{margin-top:auto!important}.me-md-0{margin-right:0!important}.me-md-1{margin-right:.25rem!important}.me-md-2{margin-right:.5rem!important}.me-md-3{margin-right:1rem!important}.me-md-4{margin-right:1.5rem!important}.me-md-5{margin-right:3rem!important}.me-md-auto{margin-right:auto!important}.mb-md-0{margin-bottom:0!important}.mb-md-1{margin-bottom:.25rem!important}.mb-md-2{margin-bottom:.5rem!important}.mb-md-3{margin-bottom:1rem!important}.mb-md-4{margin-bottom:1.5rem!important}.mb-md-5{margin-bottom:3rem!important}.mb-md-auto{margin-bottom:auto!important}.ms-md-0{margin-left:0!important}.ms-md-1{margin-left:.25rem!important}.ms-md-2{margin-left:.5rem!important}.ms-md-3{margin-left:1rem!important}.ms-md-4{margin-left:1.5rem!important}.ms-md-5{margin-left:3rem!important}.ms-md-auto{margin-left:auto!important}.p-md-0{padding:0!important}.p-md-1{padding:.25rem!important}.p-md-2{padding:.5rem!important}.p-md-3{padding:1rem!important}.p-md-4{padding:1.5rem!important}.p-md-5{padding:3rem!important}.px-md-0{padding-right:0!important;padding-left:0!important}.px-md-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-md-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-md-3{padding-right:1rem!important;padding-left:1rem!important}.px-md-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-md-5{padding-right:3rem!important;padding-left:3rem!important}.py-md-0{padding-top:0!important;padding-bottom:0!important}.py-md-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-md-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-md-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-md-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-md-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-md-0{padding-top:0!important}.pt-md-1{padding-top:.25rem!important}.pt-md-2{padding-top:.5rem!important}.pt-md-3{padding-top:1rem!important}.pt-md-4{padding-top:1.5rem!important}.pt-md-5{padding-top:3rem!important}.pe-md-0{padding-right:0!important}.pe-md-1{padding-right:.25rem!important}.pe-md-2{padding-right:.5rem!important}.pe-md-3{padding-right:1rem!important}.pe-md-4{padding-right:1.5rem!important}.pe-md-5{padding-right:3rem!important}.pb-md-0{padding-bottom:0!important}.pb-md-1{padding-bottom:.25rem!important}.pb-md-2{padding-bottom:.5rem!important}.pb-md-3{padding-bottom:1rem!important}.pb-md-4{padding-bottom:1.5rem!important}.pb-md-5{padding-bottom:3rem!important}.ps-md-0{padding-left:0!important}.ps-md-1{padding-left:.25rem!important}.ps-md-2{padding-left:.5rem!important}.ps-md-3{padding-left:1rem!important}.ps-md-4{padding-left:1.5rem!important}.ps-md-5{padding-left:3rem!important}.gap-md-0{gap:0!important}.gap-md-1{gap:.25rem!important}.gap-md-2{gap:.5rem!important}.gap-md-3{gap:1rem!important}.gap-md-4{gap:1.5rem!important}.gap-md-5{gap:3rem!important}.row-gap-md-0{row-gap:0!important}.row-gap-md-1{row-gap:.25rem!important}.row-gap-md-2{row-gap:.5rem!important}.row-gap-md-3{row-gap:1rem!important}.row-gap-md-4{row-gap:1.5rem!important}.row-gap-md-5{row-gap:3rem!important}.column-gap-md-0{column-gap:0!important}.column-gap-md-1{column-gap:.25rem!important}.column-gap-md-2{column-gap:.5rem!important}.column-gap-md-3{column-gap:1rem!important}.column-gap-md-4{column-gap:1.5rem!important}.column-gap-md-5{column-gap:3rem!important}.text-md-start{text-align:left!important}.text-md-end{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width: 992px){.float-lg-start{float:left!important}.float-lg-end{float:right!important}.float-lg-none{float:none!important}.object-fit-lg-contain{object-fit:contain!important}.object-fit-lg-cover{object-fit:cover!important}.object-fit-lg-fill{object-fit:fill!important}.object-fit-lg-scale{object-fit:scale-down!important}.object-fit-lg-none{object-fit:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-grid{display:grid!important}.d-lg-inline-grid{display:inline-grid!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:flex!important}.d-lg-inline-flex{display:inline-flex!important}.d-lg-none{display:none!important}.flex-lg-fill{flex:1 1 auto!important}.flex-lg-row{flex-direction:row!important}.flex-lg-column{flex-direction:column!important}.flex-lg-row-reverse{flex-direction:row-reverse!important}.flex-lg-column-reverse{flex-direction:column-reverse!important}.flex-lg-grow-0{flex-grow:0!important}.flex-lg-grow-1{flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-lg-start{justify-content:flex-start!important}.justify-content-lg-end{justify-content:flex-end!important}.justify-content-lg-center{justify-content:center!important}.justify-content-lg-between{justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.justify-content-lg-evenly{justify-content:space-evenly!important}.align-items-lg-start{align-items:flex-start!important}.align-items-lg-end{align-items:flex-end!important}.align-items-lg-center{align-items:center!important}.align-items-lg-baseline{align-items:baseline!important}.align-items-lg-stretch{align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}.order-lg-first{order:-1!important}.order-lg-0{order:0!important}.order-lg-1{order:1!important}.order-lg-2{order:2!important}.order-lg-3{order:3!important}.order-lg-4{order:4!important}.order-lg-5{order:5!important}.order-lg-last{order:6!important}.m-lg-0{margin:0!important}.m-lg-1{margin:.25rem!important}.m-lg-2{margin:.5rem!important}.m-lg-3{margin:1rem!important}.m-lg-4{margin:1.5rem!important}.m-lg-5{margin:3rem!important}.m-lg-auto{margin:auto!important}.mx-lg-0{margin-right:0!important;margin-left:0!important}.mx-lg-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-lg-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-lg-3{margin-right:1rem!important;margin-left:1rem!important}.mx-lg-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-lg-5{margin-right:3rem!important;margin-left:3rem!important}.mx-lg-auto{margin-right:auto!important;margin-left:auto!important}.my-lg-0{margin-top:0!important;margin-bottom:0!important}.my-lg-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-lg-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-lg-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-lg-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-lg-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-lg-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-lg-0{margin-top:0!important}.mt-lg-1{margin-top:.25rem!important}.mt-lg-2{margin-top:.5rem!important}.mt-lg-3{margin-top:1rem!important}.mt-lg-4{margin-top:1.5rem!important}.mt-lg-5{margin-top:3rem!important}.mt-lg-auto{margin-top:auto!important}.me-lg-0{margin-right:0!important}.me-lg-1{margin-right:.25rem!important}.me-lg-2{margin-right:.5rem!important}.me-lg-3{margin-right:1rem!important}.me-lg-4{margin-right:1.5rem!important}.me-lg-5{margin-right:3rem!important}.me-lg-auto{margin-right:auto!important}.mb-lg-0{margin-bottom:0!important}.mb-lg-1{margin-bottom:.25rem!important}.mb-lg-2{margin-bottom:.5rem!important}.mb-lg-3{margin-bottom:1rem!important}.mb-lg-4{margin-bottom:1.5rem!important}.mb-lg-5{margin-bottom:3rem!important}.mb-lg-auto{margin-bottom:auto!important}.ms-lg-0{margin-left:0!important}.ms-lg-1{margin-left:.25rem!important}.ms-lg-2{margin-left:.5rem!important}.ms-lg-3{margin-left:1rem!important}.ms-lg-4{margin-left:1.5rem!important}.ms-lg-5{margin-left:3rem!important}.ms-lg-auto{margin-left:auto!important}.p-lg-0{padding:0!important}.p-lg-1{padding:.25rem!important}.p-lg-2{padding:.5rem!important}.p-lg-3{padding:1rem!important}.p-lg-4{padding:1.5rem!important}.p-lg-5{padding:3rem!important}.px-lg-0{padding-right:0!important;padding-left:0!important}.px-lg-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-lg-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-lg-3{padding-right:1rem!important;padding-left:1rem!important}.px-lg-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-lg-5{padding-right:3rem!important;padding-left:3rem!important}.py-lg-0{padding-top:0!important;padding-bottom:0!important}.py-lg-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-lg-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-lg-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-lg-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-lg-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-lg-0{padding-top:0!important}.pt-lg-1{padding-top:.25rem!important}.pt-lg-2{padding-top:.5rem!important}.pt-lg-3{padding-top:1rem!important}.pt-lg-4{padding-top:1.5rem!important}.pt-lg-5{padding-top:3rem!important}.pe-lg-0{padding-right:0!important}.pe-lg-1{padding-right:.25rem!important}.pe-lg-2{padding-right:.5rem!important}.pe-lg-3{padding-right:1rem!important}.pe-lg-4{padding-right:1.5rem!important}.pe-lg-5{padding-right:3rem!important}.pb-lg-0{padding-bottom:0!important}.pb-lg-1{padding-bottom:.25rem!important}.pb-lg-2{padding-bottom:.5rem!important}.pb-lg-3{padding-bottom:1rem!important}.pb-lg-4{padding-bottom:1.5rem!important}.pb-lg-5{padding-bottom:3rem!important}.ps-lg-0{padding-left:0!important}.ps-lg-1{padding-left:.25rem!important}.ps-lg-2{padding-left:.5rem!important}.ps-lg-3{padding-left:1rem!important}.ps-lg-4{padding-left:1.5rem!important}.ps-lg-5{padding-left:3rem!important}.gap-lg-0{gap:0!important}.gap-lg-1{gap:.25rem!important}.gap-lg-2{gap:.5rem!important}.gap-lg-3{gap:1rem!important}.gap-lg-4{gap:1.5rem!important}.gap-lg-5{gap:3rem!important}.row-gap-lg-0{row-gap:0!important}.row-gap-lg-1{row-gap:.25rem!important}.row-gap-lg-2{row-gap:.5rem!important}.row-gap-lg-3{row-gap:1rem!important}.row-gap-lg-4{row-gap:1.5rem!important}.row-gap-lg-5{row-gap:3rem!important}.column-gap-lg-0{column-gap:0!important}.column-gap-lg-1{column-gap:.25rem!important}.column-gap-lg-2{column-gap:.5rem!important}.column-gap-lg-3{column-gap:1rem!important}.column-gap-lg-4{column-gap:1.5rem!important}.column-gap-lg-5{column-gap:3rem!important}.text-lg-start{text-align:left!important}.text-lg-end{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width: 1200px){.float-xl-start{float:left!important}.float-xl-end{float:right!important}.float-xl-none{float:none!important}.object-fit-xl-contain{object-fit:contain!important}.object-fit-xl-cover{object-fit:cover!important}.object-fit-xl-fill{object-fit:fill!important}.object-fit-xl-scale{object-fit:scale-down!important}.object-fit-xl-none{object-fit:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-grid{display:grid!important}.d-xl-inline-grid{display:inline-grid!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:flex!important}.d-xl-inline-flex{display:inline-flex!important}.d-xl-none{display:none!important}.flex-xl-fill{flex:1 1 auto!important}.flex-xl-row{flex-direction:row!important}.flex-xl-column{flex-direction:column!important}.flex-xl-row-reverse{flex-direction:row-reverse!important}.flex-xl-column-reverse{flex-direction:column-reverse!important}.flex-xl-grow-0{flex-grow:0!important}.flex-xl-grow-1{flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-xl-start{justify-content:flex-start!important}.justify-content-xl-end{justify-content:flex-end!important}.justify-content-xl-center{justify-content:center!important}.justify-content-xl-between{justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.justify-content-xl-evenly{justify-content:space-evenly!important}.align-items-xl-start{align-items:flex-start!important}.align-items-xl-end{align-items:flex-end!important}.align-items-xl-center{align-items:center!important}.align-items-xl-baseline{align-items:baseline!important}.align-items-xl-stretch{align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}.order-xl-first{order:-1!important}.order-xl-0{order:0!important}.order-xl-1{order:1!important}.order-xl-2{order:2!important}.order-xl-3{order:3!important}.order-xl-4{order:4!important}.order-xl-5{order:5!important}.order-xl-last{order:6!important}.m-xl-0{margin:0!important}.m-xl-1{margin:.25rem!important}.m-xl-2{margin:.5rem!important}.m-xl-3{margin:1rem!important}.m-xl-4{margin:1.5rem!important}.m-xl-5{margin:3rem!important}.m-xl-auto{margin:auto!important}.mx-xl-0{margin-right:0!important;margin-left:0!important}.mx-xl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-xl-5{margin-right:3rem!important;margin-left:3rem!important}.mx-xl-auto{margin-right:auto!important;margin-left:auto!important}.my-xl-0{margin-top:0!important;margin-bottom:0!important}.my-xl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xl-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-xl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xl-0{margin-top:0!important}.mt-xl-1{margin-top:.25rem!important}.mt-xl-2{margin-top:.5rem!important}.mt-xl-3{margin-top:1rem!important}.mt-xl-4{margin-top:1.5rem!important}.mt-xl-5{margin-top:3rem!important}.mt-xl-auto{margin-top:auto!important}.me-xl-0{margin-right:0!important}.me-xl-1{margin-right:.25rem!important}.me-xl-2{margin-right:.5rem!important}.me-xl-3{margin-right:1rem!important}.me-xl-4{margin-right:1.5rem!important}.me-xl-5{margin-right:3rem!important}.me-xl-auto{margin-right:auto!important}.mb-xl-0{margin-bottom:0!important}.mb-xl-1{margin-bottom:.25rem!important}.mb-xl-2{margin-bottom:.5rem!important}.mb-xl-3{margin-bottom:1rem!important}.mb-xl-4{margin-bottom:1.5rem!important}.mb-xl-5{margin-bottom:3rem!important}.mb-xl-auto{margin-bottom:auto!important}.ms-xl-0{margin-left:0!important}.ms-xl-1{margin-left:.25rem!important}.ms-xl-2{margin-left:.5rem!important}.ms-xl-3{margin-left:1rem!important}.ms-xl-4{margin-left:1.5rem!important}.ms-xl-5{margin-left:3rem!important}.ms-xl-auto{margin-left:auto!important}.p-xl-0{padding:0!important}.p-xl-1{padding:.25rem!important}.p-xl-2{padding:.5rem!important}.p-xl-3{padding:1rem!important}.p-xl-4{padding:1.5rem!important}.p-xl-5{padding:3rem!important}.px-xl-0{padding-right:0!important;padding-left:0!important}.px-xl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-xl-5{padding-right:3rem!important;padding-left:3rem!important}.py-xl-0{padding-top:0!important;padding-bottom:0!important}.py-xl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xl-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-xl-0{padding-top:0!important}.pt-xl-1{padding-top:.25rem!important}.pt-xl-2{padding-top:.5rem!important}.pt-xl-3{padding-top:1rem!important}.pt-xl-4{padding-top:1.5rem!important}.pt-xl-5{padding-top:3rem!important}.pe-xl-0{padding-right:0!important}.pe-xl-1{padding-right:.25rem!important}.pe-xl-2{padding-right:.5rem!important}.pe-xl-3{padding-right:1rem!important}.pe-xl-4{padding-right:1.5rem!important}.pe-xl-5{padding-right:3rem!important}.pb-xl-0{padding-bottom:0!important}.pb-xl-1{padding-bottom:.25rem!important}.pb-xl-2{padding-bottom:.5rem!important}.pb-xl-3{padding-bottom:1rem!important}.pb-xl-4{padding-bottom:1.5rem!important}.pb-xl-5{padding-bottom:3rem!important}.ps-xl-0{padding-left:0!important}.ps-xl-1{padding-left:.25rem!important}.ps-xl-2{padding-left:.5rem!important}.ps-xl-3{padding-left:1rem!important}.ps-xl-4{padding-left:1.5rem!important}.ps-xl-5{padding-left:3rem!important}.gap-xl-0{gap:0!important}.gap-xl-1{gap:.25rem!important}.gap-xl-2{gap:.5rem!important}.gap-xl-3{gap:1rem!important}.gap-xl-4{gap:1.5rem!important}.gap-xl-5{gap:3rem!important}.row-gap-xl-0{row-gap:0!important}.row-gap-xl-1{row-gap:.25rem!important}.row-gap-xl-2{row-gap:.5rem!important}.row-gap-xl-3{row-gap:1rem!important}.row-gap-xl-4{row-gap:1.5rem!important}.row-gap-xl-5{row-gap:3rem!important}.column-gap-xl-0{column-gap:0!important}.column-gap-xl-1{column-gap:.25rem!important}.column-gap-xl-2{column-gap:.5rem!important}.column-gap-xl-3{column-gap:1rem!important}.column-gap-xl-4{column-gap:1.5rem!important}.column-gap-xl-5{column-gap:3rem!important}.text-xl-start{text-align:left!important}.text-xl-end{text-align:right!important}.text-xl-center{text-align:center!important}}@media (min-width: 1400px){.float-xxl-start{float:left!important}.float-xxl-end{float:right!important}.float-xxl-none{float:none!important}.object-fit-xxl-contain{object-fit:contain!important}.object-fit-xxl-cover{object-fit:cover!important}.object-fit-xxl-fill{object-fit:fill!important}.object-fit-xxl-scale{object-fit:scale-down!important}.object-fit-xxl-none{object-fit:none!important}.d-xxl-inline{display:inline!important}.d-xxl-inline-block{display:inline-block!important}.d-xxl-block{display:block!important}.d-xxl-grid{display:grid!important}.d-xxl-inline-grid{display:inline-grid!important}.d-xxl-table{display:table!important}.d-xxl-table-row{display:table-row!important}.d-xxl-table-cell{display:table-cell!important}.d-xxl-flex{display:flex!important}.d-xxl-inline-flex{display:inline-flex!important}.d-xxl-none{display:none!important}.flex-xxl-fill{flex:1 1 auto!important}.flex-xxl-row{flex-direction:row!important}.flex-xxl-column{flex-direction:column!important}.flex-xxl-row-reverse{flex-direction:row-reverse!important}.flex-xxl-column-reverse{flex-direction:column-reverse!important}.flex-xxl-grow-0{flex-grow:0!important}.flex-xxl-grow-1{flex-grow:1!important}.flex-xxl-shrink-0{flex-shrink:0!important}.flex-xxl-shrink-1{flex-shrink:1!important}.flex-xxl-wrap{flex-wrap:wrap!important}.flex-xxl-nowrap{flex-wrap:nowrap!important}.flex-xxl-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-xxl-start{justify-content:flex-start!important}.justify-content-xxl-end{justify-content:flex-end!important}.justify-content-xxl-center{justify-content:center!important}.justify-content-xxl-between{justify-content:space-between!important}.justify-content-xxl-around{justify-content:space-around!important}.justify-content-xxl-evenly{justify-content:space-evenly!important}.align-items-xxl-start{align-items:flex-start!important}.align-items-xxl-end{align-items:flex-end!important}.align-items-xxl-center{align-items:center!important}.align-items-xxl-baseline{align-items:baseline!important}.align-items-xxl-stretch{align-items:stretch!important}.align-content-xxl-start{align-content:flex-start!important}.align-content-xxl-end{align-content:flex-end!important}.align-content-xxl-center{align-content:center!important}.align-content-xxl-between{align-content:space-between!important}.align-content-xxl-around{align-content:space-around!important}.align-content-xxl-stretch{align-content:stretch!important}.align-self-xxl-auto{align-self:auto!important}.align-self-xxl-start{align-self:flex-start!important}.align-self-xxl-end{align-self:flex-end!important}.align-self-xxl-center{align-self:center!important}.align-self-xxl-baseline{align-self:baseline!important}.align-self-xxl-stretch{align-self:stretch!important}.order-xxl-first{order:-1!important}.order-xxl-0{order:0!important}.order-xxl-1{order:1!important}.order-xxl-2{order:2!important}.order-xxl-3{order:3!important}.order-xxl-4{order:4!important}.order-xxl-5{order:5!important}.order-xxl-last{order:6!important}.m-xxl-0{margin:0!important}.m-xxl-1{margin:.25rem!important}.m-xxl-2{margin:.5rem!important}.m-xxl-3{margin:1rem!important}.m-xxl-4{margin:1.5rem!important}.m-xxl-5{margin:3rem!important}.m-xxl-auto{margin:auto!important}.mx-xxl-0{margin-right:0!important;margin-left:0!important}.mx-xxl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xxl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xxl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xxl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-xxl-5{margin-right:3rem!important;margin-left:3rem!important}.mx-xxl-auto{margin-right:auto!important;margin-left:auto!important}.my-xxl-0{margin-top:0!important;margin-bottom:0!important}.my-xxl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xxl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xxl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xxl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xxl-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-xxl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xxl-0{margin-top:0!important}.mt-xxl-1{margin-top:.25rem!important}.mt-xxl-2{margin-top:.5rem!important}.mt-xxl-3{margin-top:1rem!important}.mt-xxl-4{margin-top:1.5rem!important}.mt-xxl-5{margin-top:3rem!important}.mt-xxl-auto{margin-top:auto!important}.me-xxl-0{margin-right:0!important}.me-xxl-1{margin-right:.25rem!important}.me-xxl-2{margin-right:.5rem!important}.me-xxl-3{margin-right:1rem!important}.me-xxl-4{margin-right:1.5rem!important}.me-xxl-5{margin-right:3rem!important}.me-xxl-auto{margin-right:auto!important}.mb-xxl-0{margin-bottom:0!important}.mb-xxl-1{margin-bottom:.25rem!important}.mb-xxl-2{margin-bottom:.5rem!important}.mb-xxl-3{margin-bottom:1rem!important}.mb-xxl-4{margin-bottom:1.5rem!important}.mb-xxl-5{margin-bottom:3rem!important}.mb-xxl-auto{margin-bottom:auto!important}.ms-xxl-0{margin-left:0!important}.ms-xxl-1{margin-left:.25rem!important}.ms-xxl-2{margin-left:.5rem!important}.ms-xxl-3{margin-left:1rem!important}.ms-xxl-4{margin-left:1.5rem!important}.ms-xxl-5{margin-left:3rem!important}.ms-xxl-auto{margin-left:auto!important}.p-xxl-0{padding:0!important}.p-xxl-1{padding:.25rem!important}.p-xxl-2{padding:.5rem!important}.p-xxl-3{padding:1rem!important}.p-xxl-4{padding:1.5rem!important}.p-xxl-5{padding:3rem!important}.px-xxl-0{padding-right:0!important;padding-left:0!important}.px-xxl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xxl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xxl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xxl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-xxl-5{padding-right:3rem!important;padding-left:3rem!important}.py-xxl-0{padding-top:0!important;padding-bottom:0!important}.py-xxl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xxl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xxl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xxl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xxl-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-xxl-0{padding-top:0!important}.pt-xxl-1{padding-top:.25rem!important}.pt-xxl-2{padding-top:.5rem!important}.pt-xxl-3{padding-top:1rem!important}.pt-xxl-4{padding-top:1.5rem!important}.pt-xxl-5{padding-top:3rem!important}.pe-xxl-0{padding-right:0!important}.pe-xxl-1{padding-right:.25rem!important}.pe-xxl-2{padding-right:.5rem!important}.pe-xxl-3{padding-right:1rem!important}.pe-xxl-4{padding-right:1.5rem!important}.pe-xxl-5{padding-right:3rem!important}.pb-xxl-0{padding-bottom:0!important}.pb-xxl-1{padding-bottom:.25rem!important}.pb-xxl-2{padding-bottom:.5rem!important}.pb-xxl-3{padding-bottom:1rem!important}.pb-xxl-4{padding-bottom:1.5rem!important}.pb-xxl-5{padding-bottom:3rem!important}.ps-xxl-0{padding-left:0!important}.ps-xxl-1{padding-left:.25rem!important}.ps-xxl-2{padding-left:.5rem!important}.ps-xxl-3{padding-left:1rem!important}.ps-xxl-4{padding-left:1.5rem!important}.ps-xxl-5{padding-left:3rem!important}.gap-xxl-0{gap:0!important}.gap-xxl-1{gap:.25rem!important}.gap-xxl-2{gap:.5rem!important}.gap-xxl-3{gap:1rem!important}.gap-xxl-4{gap:1.5rem!important}.gap-xxl-5{gap:3rem!important}.row-gap-xxl-0{row-gap:0!important}.row-gap-xxl-1{row-gap:.25rem!important}.row-gap-xxl-2{row-gap:.5rem!important}.row-gap-xxl-3{row-gap:1rem!important}.row-gap-xxl-4{row-gap:1.5rem!important}.row-gap-xxl-5{row-gap:3rem!important}.column-gap-xxl-0{column-gap:0!important}.column-gap-xxl-1{column-gap:.25rem!important}.column-gap-xxl-2{column-gap:.5rem!important}.column-gap-xxl-3{column-gap:1rem!important}.column-gap-xxl-4{column-gap:1.5rem!important}.column-gap-xxl-5{column-gap:3rem!important}.text-xxl-start{text-align:left!important}.text-xxl-end{text-align:right!important}.text-xxl-center{text-align:center!important}}@media (min-width: 1200px){.fs-1{font-size:2.5rem!important}.fs-2{font-size:2rem!important}.fs-3{font-size:1.75rem!important}.fs-4{font-size:1.5rem!important}}@media print{.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-grid{display:grid!important}.d-print-inline-grid{display:inline-grid!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:flex!important}.d-print-inline-flex{display:inline-flex!important}.d-print-none{display:none!important}}pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{background:#fff;color:#000}.hljs-comment,.hljs-quote,.hljs-variable{color:green}.hljs-keyword,.hljs-selector-tag,.hljs-built_in,.hljs-name,.hljs-tag{color:#00f}.hljs-string,.hljs-title,.hljs-section,.hljs-attribute,.hljs-literal,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-addition{color:#a31515}.hljs-deletion,.hljs-selector-attr,.hljs-selector-pseudo,.hljs-meta{color:#2b91af}.hljs-doctag{color:gray}.hljs-attr{color:red}.hljs-symbol,.hljs-bullet,.hljs-link{color:#00b0e8}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}[data-bs-theme=dark] pre code.hljs{display:block;overflow-x:auto;padding:1em}[data-bs-theme=dark] code.hljs{padding:3px 5px}[data-bs-theme=dark] .hljs{background:#1e1e1e;color:#dcdcdc}[data-bs-theme=dark] .hljs-keyword,[data-bs-theme=dark] .hljs-literal,[data-bs-theme=dark] .hljs-symbol,[data-bs-theme=dark] .hljs-name{color:#569cd6}[data-bs-theme=dark] .hljs-link{color:#569cd6;text-decoration:underline}[data-bs-theme=dark] .hljs-built_in,[data-bs-theme=dark] .hljs-type{color:#4ec9b0}[data-bs-theme=dark] .hljs-number,[data-bs-theme=dark] .hljs-class{color:#b8d7a3}[data-bs-theme=dark] .hljs-string,[data-bs-theme=dark] .hljs-meta .hljs-string{color:#d69d85}[data-bs-theme=dark] .hljs-regexp,[data-bs-theme=dark] .hljs-template-tag{color:#9a5334}[data-bs-theme=dark] .hljs-subst,[data-bs-theme=dark] .hljs-function,[data-bs-theme=dark] .hljs-title,[data-bs-theme=dark] .hljs-params,[data-bs-theme=dark] .hljs-formula{color:#dcdcdc}[data-bs-theme=dark] .hljs-comment,[data-bs-theme=dark] .hljs-quote{color:#57a64a;font-style:italic}[data-bs-theme=dark] .hljs-doctag{color:#608b4e}[data-bs-theme=dark] .hljs-meta,[data-bs-theme=dark] .hljs-meta .hljs-keyword,[data-bs-theme=dark] .hljs-tag{color:#9b9b9b}[data-bs-theme=dark] .hljs-variable,[data-bs-theme=dark] .hljs-template-variable{color:#bd63c5}[data-bs-theme=dark] .hljs-attr,[data-bs-theme=dark] .hljs-attribute{color:#9cdcfe}[data-bs-theme=dark] .hljs-section{color:gold}[data-bs-theme=dark] .hljs-emphasis{font-style:italic}[data-bs-theme=dark] .hljs-strong{font-weight:700}[data-bs-theme=dark] .hljs-bullet,[data-bs-theme=dark] .hljs-selector-tag,[data-bs-theme=dark] .hljs-selector-id,[data-bs-theme=dark] .hljs-selector-class,[data-bs-theme=dark] .hljs-selector-attr,[data-bs-theme=dark] .hljs-selector-pseudo{color:#d7ba7d}[data-bs-theme=dark] .hljs-addition{background-color:#144212;display:inline-block;width:100%}[data-bs-theme=dark] .hljs-deletion{background-color:#600;display:inline-block;width:100%}.hljs{background-color:#f5f5f5}@media print{.hljs{overflow-x:hidden;text-wrap:pretty}}pre>code .line-highlight{background-color:#ff0}[data-bs-theme=dark] pre>code .line-highlight{background-color:#4a4a00}html{width:calc(100vw - var(--scrollbar-width));min-height:100vh;overflow-x:hidden}body,body[data-layout=landing]{width:calc(100vw - var(--scrollbar-width));min-height:100vh;display:flex;flex-direction:column}body>header,body[data-layout=landing]>header{display:flex;align-items:stretch}@media (min-width: 768px){body>header,body[data-layout=landing]>header{position:sticky;top:0;z-index:1030}}@media (min-width: 768px){body>header,body[data-layout=landing]>header{height:60px}}body>header>nav,body[data-layout=landing]>header>nav{flex:1}body>footer,body[data-layout=landing]>footer{font-size:14px;padding:1rem 0;height:60px}body>footer>div,body[data-layout=landing]>footer>div{display:flex;align-items:center}body>main,body[data-layout=landing]>main{display:flex;flex:1;padding-top:1.6rem;padding-bottom:2rem}body>main>.content,body[data-layout=landing]>main>.content{display:flex;flex-direction:column;width:100%}body>main>.content>:not(article),body[data-layout=landing]>main>.content>:not(article){display:none}body>main>.content>article,body[data-layout=landing]>main>.content>article{flex:1}@media (min-width: 768px){body>main>.content>article [id],body[data-layout=landing]>main>.content>article [id]{scroll-margin-top:60px}}body>main>:not(.content),body[data-layout=landing]>main>:not(.content){display:none}@media print{body>main,body[data-layout=landing]>main{padding:0!important}body>header,body>footer,body[data-layout=landing]>header,body[data-layout=landing]>footer{display:none}}@media not print{body[data-search]>main{display:none}body[data-search]>.search-results{display:block;flex:1;padding-top:1.6rem;padding-bottom:2rem}body:not([data-search])>.search-results{display:none}body:not([data-search])[data-layout=""]>main,body:not([data-search])[data-layout=conceptual]>main{padding-bottom:0}body:not([data-search])[data-layout=""]>main>.toc-offcanvas,body:not([data-search])[data-layout=conceptual]>main>.toc-offcanvas{flex:.35;display:block;overflow:hidden;max-width:360px;max-height:calc(100vh - 60px - 1.6rem)}@media (min-width: 768px){body:not([data-search])[data-layout=""]>main>.toc-offcanvas,body:not([data-search])[data-layout=conceptual]>main>.toc-offcanvas{position:sticky;top:calc(60px + 1.6rem)}}@media (max-width: 767.98px){body:not([data-search])[data-layout=""]>main>.toc-offcanvas,body:not([data-search])[data-layout=conceptual]>main>.toc-offcanvas{flex:0}}body:not([data-search])[data-layout=""]>main>.toc-offcanvas .offcanvas-start,body:not([data-search])[data-layout=""]>main>.toc-offcanvas .offcanvas-body,body:not([data-search])[data-layout=conceptual]>main>.toc-offcanvas .offcanvas-start,body:not([data-search])[data-layout=conceptual]>main>.toc-offcanvas .offcanvas-body{height:100%}body:not([data-search])[data-layout=""]>main>.content,body:not([data-search])[data-layout=conceptual]>main>.content{display:flex;flex-direction:column;flex:1;min-width:0;margin:0 3rem;padding-bottom:2rem}body:not([data-search])[data-layout=""]>main>.content>.actionbar,body:not([data-search])[data-layout=conceptual]>main>.content>.actionbar{display:flex;align-items:flex-start;margin-top:.5rem}body:not([data-search])[data-layout=""]>main>.content>.actionbar>button,body:not([data-search])[data-layout=conceptual]>main>.content>.actionbar>button{margin-top:-.65em;margin-left:-.8em}body:not([data-search])[data-layout=""]>main>.content article,body:not([data-search])[data-layout=conceptual]>main>.content article{flex:1}body:not([data-search])[data-layout=""]>main>.content>.contribution,body:not([data-search])[data-layout=""]>main>.content>.next-article,body:not([data-search])[data-layout=conceptual]>main>.content>.contribution,body:not([data-search])[data-layout=conceptual]>main>.content>.next-article{display:flex}@media (max-width: 991.98px){body:not([data-search])[data-layout=""]>main>.content,body:not([data-search])[data-layout=conceptual]>main>.content{margin:0 1rem}}@media (max-width: 767.98px){body:not([data-search])[data-layout=""]>main>.content,body:not([data-search])[data-layout=conceptual]>main>.content{margin:0}}body:not([data-search])[data-layout=""]>main>.affix,body:not([data-search])[data-layout=conceptual]>main>.affix{display:block;width:230px;max-height:calc(100vh - 60px - 1.6rem);overflow-x:hidden;overflow-y:auto}@media (min-width: 768px){body:not([data-search])[data-layout=""]>main>.affix,body:not([data-search])[data-layout=conceptual]>main>.affix{position:sticky;top:calc(60px + 1.6rem)}}}@media only screen and (max-width: 1140px){body:not([data-search])[data-layout=""]>main>.affix,body:not([data-search])[data-layout=conceptual]>main>.affix{display:none}}@media not print{body:not([data-search])[data-layout=chromeless]>header,body:not([data-search])[data-layout=chromeless]>footer{display:none}}.breadcrumb{font-size:14px}.breadcrumb a{text-decoration:none}.breadcrumb a:hover,.breadcrumb a:focus{text-decoration:underline}.next-article{display:flex}.next-article:not(:has(div)){border-top-width:0}.next-article:has(div){margin-top:3rem;padding-top:1rem}.next-article>div{flex:1}.next-article>div.next{text-align:right}.next-article>div>span{opacity:.66;font-size:14px}.next-article>div>a{display:block}.navbar{padding:0}.navbar .navbar-brand{display:flex;align-items:center}.navbar .navbar-nav{display:flex;flex-wrap:nowrap}.navbar #navbar{display:flex;flex:1;justify-content:flex-end}.navbar #navbar form{display:flex;position:relative;align-items:center}.navbar #navbar form>i.bi{position:absolute;left:.8rem;opacity:.5}.navbar #navbar form>input{padding-left:2.5rem}.navbar #navbar form.search{order:50}.navbar #navbar form.icons{margin-left:auto}@media (max-width: 767.98px){.navbar #navbar{flex-direction:column;align-items:flex-start}.navbar #navbar form{margin:1rem 0 0}.navbar #navbar form.search{align-self:stretch;order:30}.navbar #navbar form.icons{align-self:center;order:40;margin:1rem 0}}.affix{font-size:14px}.affix h5{display:inline-block;font-weight:300;text-transform:uppercase;padding:1em 0 .5em;font-size:14px;letter-spacing:2px}.affix h6{font-size:14px}.affix ul{flex-direction:column;list-style-type:none;padding-left:0;margin-left:0}.affix ul h6{margin-top:1rem}.affix ul li{margin:.4rem 0}.affix ul li a{text-decoration:none}.affix ul li a:hover,.affix ul li a:focus{text-decoration:underline}.contribution{margin-top:2rem}.contribution a.edit-link{text-decoration:none}.contribution a.edit-link:hover,.contribution a.edit-link:focus{text-decoration:underline}.contribution a.edit-link:before{content:"\f4ca";display:inline-block;font-family:bootstrap-icons;position:relative;margin-right:.5em;top:.2em;font-size:1.25em;font-weight:400}.toc{min-width:0;width:100%;height:100%;display:flex;flex-direction:column}.toc ul{font-size:14px;flex-direction:column;list-style-type:none;padding-left:0;overflow-wrap:break-word}.toc li{font-weight:400;margin:.6em 0;padding-left:.85rem;position:relative}.toc li>a{display:inline;text-decoration:none}.toc li>a:hover,.toc li>a:focus{text-decoration:underline}.toc li>ul{display:none}.toc li.expanded>ul{display:block}.toc .expand-stub:before{display:inline-block;width:.85rem;cursor:pointer;font-family:bootstrap-icons;font-size:.8em;content:"\f285";position:absolute;margin-top:.2em;margin-left:-.85rem;transition:transform .35s ease;transform-origin:.5em 50%}@media (prefers-reduced-motion){.toc .expand-stub:before{transition:none}}.toc li.expanded>.expand-stub:before{transform:rotate(90deg)}.toc span.name-only{font-weight:600;display:inline-block;margin:.4rem 0}.toc form.filter{display:flex;position:relative;align-items:center;margin-bottom:.5rem}.toc form.filter>i.bi{position:absolute;left:.6rem;opacity:.5}.toc form.filter>input{padding-left:2rem}.toc>.no-result{font-size:.9em;color:#6c757d}.toc a.pdf-link{text-decoration:none}.toc a.pdf-link:hover,.toc a.pdf-link:focus{text-decoration:underline}.toc a.pdf-link:before{content:"\f756";display:inline-block;font-family:bootstrap-icons;position:relative;margin-right:.5em;top:.2em;font-size:1.25em;font-weight:400}a.external[href]:after{font-family:bootstrap-icons;content:"\f1c5";font-size:.6rem;margin:0 .2em;display:inline-block}blockquote{border-style:solid;border-width:0 0 0 3px;border-color:#c4c8cb;margin:1.2em 0 2em;padding:0 .8em;display:block}[data-bs-theme=dark] blockquote{border-color:#41464b}.alert{break-inside:avoid}.alert h5{text-transform:uppercase;font-weight:700;font-size:1rem}.alert h5:before{font-family:bootstrap-icons;position:relative;margin-right:.5em;top:.2em;font-size:1.25em;font-weight:400}.alert:not(:has(h5))>p:last-child{margin-block-end:0}.alert-info h5:before{content:"\f431"}.alert-warning h5:before{content:"\f333"}.alert-danger h5:before{content:"\f623"}div.embeddedvideo{padding-top:56.25%;position:relative;width:100%;margin-bottom:1em}div.embeddedvideo iframe{position:absolute;inset:0;width:100%;height:100%}pre{position:relative}pre>.code-action{display:none;position:absolute;top:.25rem;right:.2rem}pre>.code-action .bi-check-lg{font-size:1.2rem}pre:hover>.code-action{display:block}.tabGroup{margin-bottom:1rem}.tabGroup>section{margin:0;padding:1rem;border-top:0;border-top-left-radius:0;border-top-right-radius:0}#search-results{line-height:1.8}#search-results>.search-list{font-size:.9em;color:#6c757d}#search-results>.sr-items{flex:1}#search-results>.sr-items .sr-item{margin-bottom:1.5em}#search-results>.sr-items .sr-item>.item-title{font-size:x-large}#search-results>.sr-items .sr-item>.item-href{color:#093;font-size:small}#search-results>.sr-items .sr-item>.item-brief{font-size:small}body[data-yaml-mime=ManagedReference] article h1[data-uid],body[data-yaml-mime=ApiPage] article h1[data-uid]{position:relative;padding-right:1.6rem}body[data-yaml-mime=ManagedReference] article h3[data-uid],body[data-yaml-mime=ApiPage] article h3[data-uid]{position:relative;font-weight:400;margin-top:3rem;padding-bottom:5px;padding-right:1.6rem}body[data-yaml-mime=ManagedReference] article h2.section,body[data-yaml-mime=ApiPage] article h2.section{margin-top:3rem}body[data-yaml-mime=ManagedReference] article h2.section+h3[data-uid],body[data-yaml-mime=ManagedReference] article h2.section+a+h3[data-uid],body[data-yaml-mime=ApiPage] article h2.section+h3[data-uid],body[data-yaml-mime=ApiPage] article h2.section+a+h3[data-uid]{margin-top:1rem}body[data-yaml-mime=ManagedReference] article h4.section,body[data-yaml-mime=ApiPage] article h4.section{font-weight:300;margin-top:1.6rem}body[data-yaml-mime=ManagedReference] article dl>dt,body[data-yaml-mime=ApiPage] article dl>dt{font-weight:400}body[data-yaml-mime=ManagedReference] article dl>dd,body[data-yaml-mime=ApiPage] article dl>dd{margin-left:1rem}body[data-yaml-mime=ManagedReference] article dl.typelist>dt,body[data-yaml-mime=ApiPage] article dl.typelist>dt{font-weight:600}body[data-yaml-mime=ManagedReference] article dl.typelist>dd,body[data-yaml-mime=ApiPage] article dl.typelist>dd{margin-left:0}body[data-yaml-mime=ManagedReference] article dl.typelist>dd>div,body[data-yaml-mime=ApiPage] article dl.typelist>dd>div{display:inline-block}body[data-yaml-mime=ManagedReference] article dl.typelist>dd>div:not(:last-child):after,body[data-yaml-mime=ApiPage] article dl.typelist>dd>div:not(:last-child):after{content:", "}body[data-yaml-mime=ManagedReference] article dl.typelist.inheritance>dd>div:not(:last-child):after,body[data-yaml-mime=ApiPage] article dl.typelist.inheritance>dd>div:not(:last-child):after{font-family:bootstrap-icons;content:"\f12c";position:relative;top:.2em;opacity:.8}body[data-yaml-mime=ManagedReference] article dl.parameters>dt,body[data-yaml-mime=ApiPage] article dl.parameters>dt{margin:1em 0}body[data-yaml-mime=ManagedReference] article dl.parameters>dt>code,body[data-yaml-mime=ApiPage] article dl.parameters>dt>code{margin-right:.2em;font-size:1em}body[data-yaml-mime=ManagedReference] article div.facts,body[data-yaml-mime=ApiPage] article div.facts{font-size:14px;margin:2rem 0 1rem}body[data-yaml-mime=ManagedReference] article div.facts>dl,body[data-yaml-mime=ApiPage] article div.facts>dl{margin:0}body[data-yaml-mime=ManagedReference] article div.facts>dl>dd,body[data-yaml-mime=ApiPage] article div.facts>dl>dd{margin-left:.25rem;display:inline-block}body[data-yaml-mime=ManagedReference] article div.facts>dl>dt,body[data-yaml-mime=ApiPage] article div.facts>dl>dt{display:inline-block}body[data-yaml-mime=ManagedReference] article div.facts>dl>dt:after,body[data-yaml-mime=ApiPage] article div.facts>dl>dt:after{content:":"}body[data-yaml-mime=ManagedReference] article .header-action,body[data-yaml-mime=ApiPage] article .header-action{position:absolute;right:0;bottom:.2rem;font-size:1.2rem}@media print{body[data-yaml-mime=ManagedReference] article .header-action,body[data-yaml-mime=ApiPage] article .header-action{display:none}}body[data-yaml-mime=ManagedReference] article td.term,body[data-yaml-mime=ApiPage] article td.term{font-weight:600}body[data-yaml-mime=ManagedReference] article summary,body[data-yaml-mime=ApiPage] article summary{display:block;cursor:inherit}body[data-yaml-mime=ManagedReference] article li>span.term,body[data-yaml-mime=ApiPage] article li>span.term{font-weight:600}body[data-yaml-mime=ManagedReference] article li>span.term:after,body[data-yaml-mime=ApiPage] article li>span.term:after{content:"-";margin:0 .5em}h1,h2,h3,h4,h5,h6,.xref,.text-break{word-wrap:break-word;word-break:break-word}.divider{margin:0 5px;color:#ccc}article span.small.pull-right{float:right}article img{max-width:100%;height:auto}.codewrapper{position:relative}.sample-response .response-content{max-height:200px}@media (width <= 768px){#mobile-indicator{display:block}.mobile-hide{display:none}h1:before,h2:before,h3:before,h4:before{content:"";display:none}}@media print{@page{margin:.4in}}.pdftoc ul{list-style:none}.pdftoc a{display:flex;text-decoration:none;color:var(--bs-body-color)}.pdftoc a .spacer{flex:1;border-bottom:1px dashed var(--bs-body-color);margin:.4em}@view-transition{navigation: auto;}@media (prefers-reduced-motion){@view-transition{navigation: none;}} +/*! + * Bootstrap v5.3.3 (https://getbootstrap.com/) + * Copyright 2011-2024 The Bootstrap Authors + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */ +/*! Bundled license information: + +bootstrap-icons/font/bootstrap-icons.scss: + (*! + * Bootstrap Icons v1.11.3 (https://icons.getbootstrap.com/) + * Copyright 2019-2024 The Bootstrap Authors + * Licensed under MIT (https://github.com/twbs/icons/blob/main/LICENSE) + *) +*/ +/*# sourceMappingURL=docfx.min.css.map */ diff --git a/docs/_site/public/docfx.min.css.map b/docs/_site/public/docfx.min.css.map new file mode 100644 index 0000000..223c393 --- /dev/null +++ b/docs/_site/public/docfx.min.css.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": ["/home/runner/work/docfx/docfx/templates/node_modules/bootstrap-icons/bootstrap-icons.scss", "/home/runner/work/docfx/docfx/templates/modern/docfx.scss", "/home/runner/work/docfx/docfx/templates/modern/mixins.scss", "/home/runner/work/docfx/docfx/templates/modern/../../node_modules/bootstrap/scss/mixins/_banner.scss", "/home/runner/work/docfx/docfx/templates/modern/../../node_modules/bootstrap/scss/_root.scss", "/home/runner/work/docfx/docfx/templates/modern/../../node_modules/bootstrap/scss/vendor/_rfs.scss", "/home/runner/work/docfx/docfx/templates/modern/../../node_modules/bootstrap/scss/mixins/_color-mode.scss", "/home/runner/work/docfx/docfx/templates/modern/../../node_modules/bootstrap/scss/_reboot.scss", "/home/runner/work/docfx/docfx/templates/modern/../../node_modules/bootstrap/scss/_variables.scss", "/home/runner/work/docfx/docfx/templates/modern/../../node_modules/bootstrap/scss/mixins/_border-radius.scss", "/home/runner/work/docfx/docfx/templates/modern/../../node_modules/bootstrap/scss/_type.scss", "/home/runner/work/docfx/docfx/templates/modern/../../node_modules/bootstrap/scss/mixins/_lists.scss", "/home/runner/work/docfx/docfx/templates/modern/../../node_modules/bootstrap/scss/_images.scss", "/home/runner/work/docfx/docfx/templates/modern/../../node_modules/bootstrap/scss/mixins/_image.scss", "/home/runner/work/docfx/docfx/templates/modern/../../node_modules/bootstrap/scss/_containers.scss", "/home/runner/work/docfx/docfx/templates/modern/../../node_modules/bootstrap/scss/mixins/_container.scss", "/home/runner/work/docfx/docfx/templates/modern/../../node_modules/bootstrap/scss/mixins/_breakpoints.scss", "/home/runner/work/docfx/docfx/templates/modern/../../node_modules/bootstrap/scss/_grid.scss", "/home/runner/work/docfx/docfx/templates/modern/../../node_modules/bootstrap/scss/mixins/_grid.scss", "/home/runner/work/docfx/docfx/templates/modern/../../node_modules/bootstrap/scss/_tables.scss", "/home/runner/work/docfx/docfx/templates/modern/../../node_modules/bootstrap/scss/mixins/_table-variants.scss", "/home/runner/work/docfx/docfx/templates/modern/../../node_modules/bootstrap/scss/forms/_labels.scss", "/home/runner/work/docfx/docfx/templates/modern/../../node_modules/bootstrap/scss/forms/_form-text.scss", "/home/runner/work/docfx/docfx/templates/modern/../../node_modules/bootstrap/scss/forms/_form-control.scss", "/home/runner/work/docfx/docfx/templates/modern/../../node_modules/bootstrap/scss/mixins/_transition.scss", "/home/runner/work/docfx/docfx/templates/modern/../../node_modules/bootstrap/scss/mixins/_gradients.scss", "/home/runner/work/docfx/docfx/templates/modern/../../node_modules/bootstrap/scss/forms/_form-select.scss", "/home/runner/work/docfx/docfx/templates/modern/../../node_modules/bootstrap/scss/forms/_form-check.scss", "/home/runner/work/docfx/docfx/templates/modern/../../node_modules/bootstrap/scss/forms/_form-range.scss", "/home/runner/work/docfx/docfx/templates/modern/../../node_modules/bootstrap/scss/forms/_floating-labels.scss", "/home/runner/work/docfx/docfx/templates/modern/../../node_modules/bootstrap/scss/forms/_input-group.scss", "/home/runner/work/docfx/docfx/templates/modern/../../node_modules/bootstrap/scss/mixins/_forms.scss", "/home/runner/work/docfx/docfx/templates/modern/../../node_modules/bootstrap/scss/_buttons.scss", "/home/runner/work/docfx/docfx/templates/modern/../../node_modules/bootstrap/scss/mixins/_buttons.scss", "/home/runner/work/docfx/docfx/templates/modern/../../node_modules/bootstrap/scss/_transitions.scss", "/home/runner/work/docfx/docfx/templates/modern/../../node_modules/bootstrap/scss/_dropdown.scss", "/home/runner/work/docfx/docfx/templates/modern/../../node_modules/bootstrap/scss/mixins/_caret.scss", "/home/runner/work/docfx/docfx/templates/modern/../../node_modules/bootstrap/scss/_button-group.scss", "/home/runner/work/docfx/docfx/templates/modern/../../node_modules/bootstrap/scss/_nav.scss", "/home/runner/work/docfx/docfx/templates/modern/../../node_modules/bootstrap/scss/_navbar.scss", "/home/runner/work/docfx/docfx/templates/modern/../../node_modules/bootstrap/scss/_card.scss", "/home/runner/work/docfx/docfx/templates/modern/../../node_modules/bootstrap/scss/_accordion.scss", "/home/runner/work/docfx/docfx/templates/modern/../../node_modules/bootstrap/scss/_breadcrumb.scss", "/home/runner/work/docfx/docfx/templates/modern/../../node_modules/bootstrap/scss/_pagination.scss", "/home/runner/work/docfx/docfx/templates/modern/../../node_modules/bootstrap/scss/mixins/_pagination.scss", "/home/runner/work/docfx/docfx/templates/modern/../../node_modules/bootstrap/scss/_badge.scss", "/home/runner/work/docfx/docfx/templates/modern/../../node_modules/bootstrap/scss/_alert.scss", "/home/runner/work/docfx/docfx/templates/modern/../../node_modules/bootstrap/scss/_progress.scss", "/home/runner/work/docfx/docfx/templates/modern/../../node_modules/bootstrap/scss/_list-group.scss", "/home/runner/work/docfx/docfx/templates/modern/../../node_modules/bootstrap/scss/_close.scss", "/home/runner/work/docfx/docfx/templates/modern/../../node_modules/bootstrap/scss/_toasts.scss", "/home/runner/work/docfx/docfx/templates/modern/../../node_modules/bootstrap/scss/_modal.scss", "/home/runner/work/docfx/docfx/templates/modern/../../node_modules/bootstrap/scss/mixins/_backdrop.scss", "/home/runner/work/docfx/docfx/templates/modern/../../node_modules/bootstrap/scss/_tooltip.scss", "/home/runner/work/docfx/docfx/templates/modern/../../node_modules/bootstrap/scss/mixins/_reset-text.scss", "/home/runner/work/docfx/docfx/templates/modern/../../node_modules/bootstrap/scss/_popover.scss", "/home/runner/work/docfx/docfx/templates/modern/../../node_modules/bootstrap/scss/_carousel.scss", "/home/runner/work/docfx/docfx/templates/modern/../../node_modules/bootstrap/scss/mixins/_clearfix.scss", "/home/runner/work/docfx/docfx/templates/modern/../../node_modules/bootstrap/scss/_spinners.scss", "/home/runner/work/docfx/docfx/templates/modern/../../node_modules/bootstrap/scss/_offcanvas.scss", "/home/runner/work/docfx/docfx/templates/modern/../../node_modules/bootstrap/scss/_placeholders.scss", "/home/runner/work/docfx/docfx/templates/modern/../../node_modules/bootstrap/scss/helpers/_color-bg.scss", "/home/runner/work/docfx/docfx/templates/modern/../../node_modules/bootstrap/scss/helpers/_colored-links.scss", "/home/runner/work/docfx/docfx/templates/modern/../../node_modules/bootstrap/scss/helpers/_focus-ring.scss", "/home/runner/work/docfx/docfx/templates/modern/../../node_modules/bootstrap/scss/helpers/_icon-link.scss", "/home/runner/work/docfx/docfx/templates/modern/../../node_modules/bootstrap/scss/helpers/_ratio.scss", "/home/runner/work/docfx/docfx/templates/modern/../../node_modules/bootstrap/scss/helpers/_position.scss", "/home/runner/work/docfx/docfx/templates/modern/../../node_modules/bootstrap/scss/helpers/_stacks.scss", "/home/runner/work/docfx/docfx/templates/modern/../../node_modules/bootstrap/scss/helpers/_visually-hidden.scss", "/home/runner/work/docfx/docfx/templates/modern/../../node_modules/bootstrap/scss/mixins/_visually-hidden.scss", "/home/runner/work/docfx/docfx/templates/modern/../../node_modules/bootstrap/scss/helpers/_stretched-link.scss", "/home/runner/work/docfx/docfx/templates/modern/../../node_modules/bootstrap/scss/helpers/_text-truncation.scss", "/home/runner/work/docfx/docfx/templates/modern/../../node_modules/bootstrap/scss/mixins/_text-truncate.scss", "/home/runner/work/docfx/docfx/templates/modern/../../node_modules/bootstrap/scss/helpers/_vr.scss", "/home/runner/work/docfx/docfx/templates/modern/../../node_modules/bootstrap/scss/mixins/_utilities.scss", "/home/runner/work/docfx/docfx/templates/modern/../../node_modules/bootstrap/scss/utilities/_api.scss", "/home/runner/work/docfx/docfx/templates/modern/highlight.scss", "/home/runner/work/docfx/docfx/templates/modern/../../node_modules/highlight.js/scss/vs.scss", "/home/runner/work/docfx/docfx/templates/modern/../../node_modules/highlight.js/scss/vs2015.scss", "/home/runner/work/docfx/docfx/templates/modern/layout.scss", "/home/runner/work/docfx/docfx/templates/modern/nav.scss", "/home/runner/work/docfx/docfx/templates/modern/toc.scss", "/home/runner/work/docfx/docfx/templates/modern/markdown.scss", "/home/runner/work/docfx/docfx/templates/modern/../../node_modules/bootstrap/scss/_variables-dark.scss", "/home/runner/work/docfx/docfx/templates/modern/search.scss", "/home/runner/work/docfx/docfx/templates/modern/dotnet.scss"], + "sourcesContent": ["/*!\n * Bootstrap Icons v1.11.3 (https://icons.getbootstrap.com/)\n * Copyright 2019-2024 The Bootstrap Authors\n * Licensed under MIT (https://github.com/twbs/icons/blob/main/LICENSE)\n */\n\n$bootstrap-icons-font: \"bootstrap-icons\" !default;\n$bootstrap-icons-font-dir: \"./fonts\" !default;\n$bootstrap-icons-font-file: \"#{$bootstrap-icons-font-dir}/#{$bootstrap-icons-font}\" !default;\n$bootstrap-icons-font-hash: \"24e3eb84d0bcaf83d77f904c78ac1f47\" !default;\n$bootstrap-icons-font-src: url(\"#{$bootstrap-icons-font-file}.woff2?#{$bootstrap-icons-font-hash}\") format(\"woff2\"),\n url(\"#{$bootstrap-icons-font-file}.woff?#{$bootstrap-icons-font-hash}\") format(\"woff\") !default;\n\n@font-face {\n font-display: block;\n font-family: $bootstrap-icons-font;\n src: $bootstrap-icons-font-src;\n}\n\n.bi::before,\n[class^=\"bi-\"]::before,\n[class*=\" bi-\"]::before {\n display: inline-block;\n font-family: $bootstrap-icons-font !important;\n font-style: normal;\n font-weight: normal !important;\n font-variant: normal;\n text-transform: none;\n line-height: 1;\n vertical-align: -.125em;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n$bootstrap-icons-map: (\n \"123\": \"\\f67f\",\n \"alarm-fill\": \"\\f101\",\n \"alarm\": \"\\f102\",\n \"align-bottom\": \"\\f103\",\n \"align-center\": \"\\f104\",\n \"align-end\": \"\\f105\",\n \"align-middle\": \"\\f106\",\n \"align-start\": \"\\f107\",\n \"align-top\": \"\\f108\",\n \"alt\": \"\\f109\",\n \"app-indicator\": \"\\f10a\",\n \"app\": \"\\f10b\",\n \"archive-fill\": \"\\f10c\",\n \"archive\": \"\\f10d\",\n \"arrow-90deg-down\": \"\\f10e\",\n \"arrow-90deg-left\": \"\\f10f\",\n \"arrow-90deg-right\": \"\\f110\",\n \"arrow-90deg-up\": \"\\f111\",\n \"arrow-bar-down\": \"\\f112\",\n \"arrow-bar-left\": \"\\f113\",\n \"arrow-bar-right\": \"\\f114\",\n \"arrow-bar-up\": \"\\f115\",\n \"arrow-clockwise\": \"\\f116\",\n \"arrow-counterclockwise\": \"\\f117\",\n \"arrow-down-circle-fill\": \"\\f118\",\n \"arrow-down-circle\": \"\\f119\",\n \"arrow-down-left-circle-fill\": \"\\f11a\",\n \"arrow-down-left-circle\": \"\\f11b\",\n \"arrow-down-left-square-fill\": \"\\f11c\",\n \"arrow-down-left-square\": \"\\f11d\",\n \"arrow-down-left\": \"\\f11e\",\n \"arrow-down-right-circle-fill\": \"\\f11f\",\n \"arrow-down-right-circle\": \"\\f120\",\n \"arrow-down-right-square-fill\": \"\\f121\",\n \"arrow-down-right-square\": \"\\f122\",\n \"arrow-down-right\": \"\\f123\",\n \"arrow-down-short\": \"\\f124\",\n \"arrow-down-square-fill\": \"\\f125\",\n \"arrow-down-square\": \"\\f126\",\n \"arrow-down-up\": \"\\f127\",\n \"arrow-down\": \"\\f128\",\n \"arrow-left-circle-fill\": \"\\f129\",\n \"arrow-left-circle\": \"\\f12a\",\n \"arrow-left-right\": \"\\f12b\",\n \"arrow-left-short\": \"\\f12c\",\n \"arrow-left-square-fill\": \"\\f12d\",\n \"arrow-left-square\": \"\\f12e\",\n \"arrow-left\": \"\\f12f\",\n \"arrow-repeat\": \"\\f130\",\n \"arrow-return-left\": \"\\f131\",\n \"arrow-return-right\": \"\\f132\",\n \"arrow-right-circle-fill\": \"\\f133\",\n \"arrow-right-circle\": \"\\f134\",\n \"arrow-right-short\": \"\\f135\",\n \"arrow-right-square-fill\": \"\\f136\",\n \"arrow-right-square\": \"\\f137\",\n \"arrow-right\": \"\\f138\",\n \"arrow-up-circle-fill\": \"\\f139\",\n \"arrow-up-circle\": \"\\f13a\",\n \"arrow-up-left-circle-fill\": \"\\f13b\",\n \"arrow-up-left-circle\": \"\\f13c\",\n \"arrow-up-left-square-fill\": \"\\f13d\",\n \"arrow-up-left-square\": \"\\f13e\",\n \"arrow-up-left\": \"\\f13f\",\n \"arrow-up-right-circle-fill\": \"\\f140\",\n \"arrow-up-right-circle\": \"\\f141\",\n \"arrow-up-right-square-fill\": \"\\f142\",\n \"arrow-up-right-square\": \"\\f143\",\n \"arrow-up-right\": \"\\f144\",\n \"arrow-up-short\": \"\\f145\",\n \"arrow-up-square-fill\": \"\\f146\",\n \"arrow-up-square\": \"\\f147\",\n \"arrow-up\": \"\\f148\",\n \"arrows-angle-contract\": \"\\f149\",\n \"arrows-angle-expand\": \"\\f14a\",\n \"arrows-collapse\": \"\\f14b\",\n \"arrows-expand\": \"\\f14c\",\n \"arrows-fullscreen\": \"\\f14d\",\n \"arrows-move\": \"\\f14e\",\n \"aspect-ratio-fill\": \"\\f14f\",\n \"aspect-ratio\": \"\\f150\",\n \"asterisk\": \"\\f151\",\n \"at\": \"\\f152\",\n \"award-fill\": \"\\f153\",\n \"award\": \"\\f154\",\n \"back\": \"\\f155\",\n \"backspace-fill\": \"\\f156\",\n \"backspace-reverse-fill\": \"\\f157\",\n \"backspace-reverse\": \"\\f158\",\n \"backspace\": \"\\f159\",\n \"badge-3d-fill\": \"\\f15a\",\n \"badge-3d\": \"\\f15b\",\n \"badge-4k-fill\": \"\\f15c\",\n \"badge-4k\": \"\\f15d\",\n \"badge-8k-fill\": \"\\f15e\",\n \"badge-8k\": \"\\f15f\",\n \"badge-ad-fill\": \"\\f160\",\n \"badge-ad\": \"\\f161\",\n \"badge-ar-fill\": \"\\f162\",\n \"badge-ar\": \"\\f163\",\n \"badge-cc-fill\": \"\\f164\",\n \"badge-cc\": \"\\f165\",\n \"badge-hd-fill\": \"\\f166\",\n \"badge-hd\": \"\\f167\",\n \"badge-tm-fill\": \"\\f168\",\n \"badge-tm\": \"\\f169\",\n \"badge-vo-fill\": \"\\f16a\",\n \"badge-vo\": \"\\f16b\",\n \"badge-vr-fill\": \"\\f16c\",\n \"badge-vr\": \"\\f16d\",\n \"badge-wc-fill\": \"\\f16e\",\n \"badge-wc\": \"\\f16f\",\n \"bag-check-fill\": \"\\f170\",\n \"bag-check\": \"\\f171\",\n \"bag-dash-fill\": \"\\f172\",\n \"bag-dash\": \"\\f173\",\n \"bag-fill\": \"\\f174\",\n \"bag-plus-fill\": \"\\f175\",\n \"bag-plus\": \"\\f176\",\n \"bag-x-fill\": \"\\f177\",\n \"bag-x\": \"\\f178\",\n \"bag\": \"\\f179\",\n \"bar-chart-fill\": \"\\f17a\",\n \"bar-chart-line-fill\": \"\\f17b\",\n \"bar-chart-line\": \"\\f17c\",\n \"bar-chart-steps\": \"\\f17d\",\n \"bar-chart\": \"\\f17e\",\n \"basket-fill\": \"\\f17f\",\n \"basket\": \"\\f180\",\n \"basket2-fill\": \"\\f181\",\n \"basket2\": \"\\f182\",\n \"basket3-fill\": \"\\f183\",\n \"basket3\": \"\\f184\",\n \"battery-charging\": \"\\f185\",\n \"battery-full\": \"\\f186\",\n \"battery-half\": \"\\f187\",\n \"battery\": \"\\f188\",\n \"bell-fill\": \"\\f189\",\n \"bell\": \"\\f18a\",\n \"bezier\": \"\\f18b\",\n \"bezier2\": \"\\f18c\",\n \"bicycle\": \"\\f18d\",\n \"binoculars-fill\": \"\\f18e\",\n \"binoculars\": \"\\f18f\",\n \"blockquote-left\": \"\\f190\",\n \"blockquote-right\": \"\\f191\",\n \"book-fill\": \"\\f192\",\n \"book-half\": \"\\f193\",\n \"book\": \"\\f194\",\n \"bookmark-check-fill\": \"\\f195\",\n \"bookmark-check\": \"\\f196\",\n \"bookmark-dash-fill\": \"\\f197\",\n \"bookmark-dash\": \"\\f198\",\n \"bookmark-fill\": \"\\f199\",\n \"bookmark-heart-fill\": \"\\f19a\",\n \"bookmark-heart\": \"\\f19b\",\n \"bookmark-plus-fill\": \"\\f19c\",\n \"bookmark-plus\": \"\\f19d\",\n \"bookmark-star-fill\": \"\\f19e\",\n \"bookmark-star\": \"\\f19f\",\n \"bookmark-x-fill\": \"\\f1a0\",\n \"bookmark-x\": \"\\f1a1\",\n \"bookmark\": \"\\f1a2\",\n \"bookmarks-fill\": \"\\f1a3\",\n \"bookmarks\": \"\\f1a4\",\n \"bookshelf\": \"\\f1a5\",\n \"bootstrap-fill\": \"\\f1a6\",\n \"bootstrap-reboot\": \"\\f1a7\",\n \"bootstrap\": \"\\f1a8\",\n \"border-all\": \"\\f1a9\",\n \"border-bottom\": \"\\f1aa\",\n \"border-center\": \"\\f1ab\",\n \"border-inner\": \"\\f1ac\",\n \"border-left\": \"\\f1ad\",\n \"border-middle\": \"\\f1ae\",\n \"border-outer\": \"\\f1af\",\n \"border-right\": \"\\f1b0\",\n \"border-style\": \"\\f1b1\",\n \"border-top\": \"\\f1b2\",\n \"border-width\": \"\\f1b3\",\n \"border\": \"\\f1b4\",\n \"bounding-box-circles\": \"\\f1b5\",\n \"bounding-box\": \"\\f1b6\",\n \"box-arrow-down-left\": \"\\f1b7\",\n \"box-arrow-down-right\": \"\\f1b8\",\n \"box-arrow-down\": \"\\f1b9\",\n \"box-arrow-in-down-left\": \"\\f1ba\",\n \"box-arrow-in-down-right\": \"\\f1bb\",\n \"box-arrow-in-down\": \"\\f1bc\",\n \"box-arrow-in-left\": \"\\f1bd\",\n \"box-arrow-in-right\": \"\\f1be\",\n \"box-arrow-in-up-left\": \"\\f1bf\",\n \"box-arrow-in-up-right\": \"\\f1c0\",\n \"box-arrow-in-up\": \"\\f1c1\",\n \"box-arrow-left\": \"\\f1c2\",\n \"box-arrow-right\": \"\\f1c3\",\n \"box-arrow-up-left\": \"\\f1c4\",\n \"box-arrow-up-right\": \"\\f1c5\",\n \"box-arrow-up\": \"\\f1c6\",\n \"box-seam\": \"\\f1c7\",\n \"box\": \"\\f1c8\",\n \"braces\": \"\\f1c9\",\n \"bricks\": \"\\f1ca\",\n \"briefcase-fill\": \"\\f1cb\",\n \"briefcase\": \"\\f1cc\",\n \"brightness-alt-high-fill\": \"\\f1cd\",\n \"brightness-alt-high\": \"\\f1ce\",\n \"brightness-alt-low-fill\": \"\\f1cf\",\n \"brightness-alt-low\": \"\\f1d0\",\n \"brightness-high-fill\": \"\\f1d1\",\n \"brightness-high\": \"\\f1d2\",\n \"brightness-low-fill\": \"\\f1d3\",\n \"brightness-low\": \"\\f1d4\",\n \"broadcast-pin\": \"\\f1d5\",\n \"broadcast\": \"\\f1d6\",\n \"brush-fill\": \"\\f1d7\",\n \"brush\": \"\\f1d8\",\n \"bucket-fill\": \"\\f1d9\",\n \"bucket\": \"\\f1da\",\n \"bug-fill\": \"\\f1db\",\n \"bug\": \"\\f1dc\",\n \"building\": \"\\f1dd\",\n \"bullseye\": \"\\f1de\",\n \"calculator-fill\": \"\\f1df\",\n \"calculator\": \"\\f1e0\",\n \"calendar-check-fill\": \"\\f1e1\",\n \"calendar-check\": \"\\f1e2\",\n \"calendar-date-fill\": \"\\f1e3\",\n \"calendar-date\": \"\\f1e4\",\n \"calendar-day-fill\": \"\\f1e5\",\n \"calendar-day\": \"\\f1e6\",\n \"calendar-event-fill\": \"\\f1e7\",\n \"calendar-event\": \"\\f1e8\",\n \"calendar-fill\": \"\\f1e9\",\n \"calendar-minus-fill\": \"\\f1ea\",\n \"calendar-minus\": \"\\f1eb\",\n \"calendar-month-fill\": \"\\f1ec\",\n \"calendar-month\": \"\\f1ed\",\n \"calendar-plus-fill\": \"\\f1ee\",\n \"calendar-plus\": \"\\f1ef\",\n \"calendar-range-fill\": \"\\f1f0\",\n \"calendar-range\": \"\\f1f1\",\n \"calendar-week-fill\": \"\\f1f2\",\n \"calendar-week\": \"\\f1f3\",\n \"calendar-x-fill\": \"\\f1f4\",\n \"calendar-x\": \"\\f1f5\",\n \"calendar\": \"\\f1f6\",\n \"calendar2-check-fill\": \"\\f1f7\",\n \"calendar2-check\": \"\\f1f8\",\n \"calendar2-date-fill\": \"\\f1f9\",\n \"calendar2-date\": \"\\f1fa\",\n \"calendar2-day-fill\": \"\\f1fb\",\n \"calendar2-day\": \"\\f1fc\",\n \"calendar2-event-fill\": \"\\f1fd\",\n \"calendar2-event\": \"\\f1fe\",\n \"calendar2-fill\": \"\\f1ff\",\n \"calendar2-minus-fill\": \"\\f200\",\n \"calendar2-minus\": \"\\f201\",\n \"calendar2-month-fill\": \"\\f202\",\n \"calendar2-month\": \"\\f203\",\n \"calendar2-plus-fill\": \"\\f204\",\n \"calendar2-plus\": \"\\f205\",\n \"calendar2-range-fill\": \"\\f206\",\n \"calendar2-range\": \"\\f207\",\n \"calendar2-week-fill\": \"\\f208\",\n \"calendar2-week\": \"\\f209\",\n \"calendar2-x-fill\": \"\\f20a\",\n \"calendar2-x\": \"\\f20b\",\n \"calendar2\": \"\\f20c\",\n \"calendar3-event-fill\": \"\\f20d\",\n \"calendar3-event\": \"\\f20e\",\n \"calendar3-fill\": \"\\f20f\",\n \"calendar3-range-fill\": \"\\f210\",\n \"calendar3-range\": \"\\f211\",\n \"calendar3-week-fill\": \"\\f212\",\n \"calendar3-week\": \"\\f213\",\n \"calendar3\": \"\\f214\",\n \"calendar4-event\": \"\\f215\",\n \"calendar4-range\": \"\\f216\",\n \"calendar4-week\": \"\\f217\",\n \"calendar4\": \"\\f218\",\n \"camera-fill\": \"\\f219\",\n \"camera-reels-fill\": \"\\f21a\",\n \"camera-reels\": \"\\f21b\",\n \"camera-video-fill\": \"\\f21c\",\n \"camera-video-off-fill\": \"\\f21d\",\n \"camera-video-off\": \"\\f21e\",\n \"camera-video\": \"\\f21f\",\n \"camera\": \"\\f220\",\n \"camera2\": \"\\f221\",\n \"capslock-fill\": \"\\f222\",\n \"capslock\": \"\\f223\",\n \"card-checklist\": \"\\f224\",\n \"card-heading\": \"\\f225\",\n \"card-image\": \"\\f226\",\n \"card-list\": \"\\f227\",\n \"card-text\": \"\\f228\",\n \"caret-down-fill\": \"\\f229\",\n \"caret-down-square-fill\": \"\\f22a\",\n \"caret-down-square\": \"\\f22b\",\n \"caret-down\": \"\\f22c\",\n \"caret-left-fill\": \"\\f22d\",\n \"caret-left-square-fill\": \"\\f22e\",\n \"caret-left-square\": \"\\f22f\",\n \"caret-left\": \"\\f230\",\n \"caret-right-fill\": \"\\f231\",\n \"caret-right-square-fill\": \"\\f232\",\n \"caret-right-square\": \"\\f233\",\n \"caret-right\": \"\\f234\",\n \"caret-up-fill\": \"\\f235\",\n \"caret-up-square-fill\": \"\\f236\",\n \"caret-up-square\": \"\\f237\",\n \"caret-up\": \"\\f238\",\n \"cart-check-fill\": \"\\f239\",\n \"cart-check\": \"\\f23a\",\n \"cart-dash-fill\": \"\\f23b\",\n \"cart-dash\": \"\\f23c\",\n \"cart-fill\": \"\\f23d\",\n \"cart-plus-fill\": \"\\f23e\",\n \"cart-plus\": \"\\f23f\",\n \"cart-x-fill\": \"\\f240\",\n \"cart-x\": \"\\f241\",\n \"cart\": \"\\f242\",\n \"cart2\": \"\\f243\",\n \"cart3\": \"\\f244\",\n \"cart4\": \"\\f245\",\n \"cash-stack\": \"\\f246\",\n \"cash\": \"\\f247\",\n \"cast\": \"\\f248\",\n \"chat-dots-fill\": \"\\f249\",\n \"chat-dots\": \"\\f24a\",\n \"chat-fill\": \"\\f24b\",\n \"chat-left-dots-fill\": \"\\f24c\",\n \"chat-left-dots\": \"\\f24d\",\n \"chat-left-fill\": \"\\f24e\",\n \"chat-left-quote-fill\": \"\\f24f\",\n \"chat-left-quote\": \"\\f250\",\n \"chat-left-text-fill\": \"\\f251\",\n \"chat-left-text\": \"\\f252\",\n \"chat-left\": \"\\f253\",\n \"chat-quote-fill\": \"\\f254\",\n \"chat-quote\": \"\\f255\",\n \"chat-right-dots-fill\": \"\\f256\",\n \"chat-right-dots\": \"\\f257\",\n \"chat-right-fill\": \"\\f258\",\n \"chat-right-quote-fill\": \"\\f259\",\n \"chat-right-quote\": \"\\f25a\",\n \"chat-right-text-fill\": \"\\f25b\",\n \"chat-right-text\": \"\\f25c\",\n \"chat-right\": \"\\f25d\",\n \"chat-square-dots-fill\": \"\\f25e\",\n \"chat-square-dots\": \"\\f25f\",\n \"chat-square-fill\": \"\\f260\",\n \"chat-square-quote-fill\": \"\\f261\",\n \"chat-square-quote\": \"\\f262\",\n \"chat-square-text-fill\": \"\\f263\",\n \"chat-square-text\": \"\\f264\",\n \"chat-square\": \"\\f265\",\n \"chat-text-fill\": \"\\f266\",\n \"chat-text\": \"\\f267\",\n \"chat\": \"\\f268\",\n \"check-all\": \"\\f269\",\n \"check-circle-fill\": \"\\f26a\",\n \"check-circle\": \"\\f26b\",\n \"check-square-fill\": \"\\f26c\",\n \"check-square\": \"\\f26d\",\n \"check\": \"\\f26e\",\n \"check2-all\": \"\\f26f\",\n \"check2-circle\": \"\\f270\",\n \"check2-square\": \"\\f271\",\n \"check2\": \"\\f272\",\n \"chevron-bar-contract\": \"\\f273\",\n \"chevron-bar-down\": \"\\f274\",\n \"chevron-bar-expand\": \"\\f275\",\n \"chevron-bar-left\": \"\\f276\",\n \"chevron-bar-right\": \"\\f277\",\n \"chevron-bar-up\": \"\\f278\",\n \"chevron-compact-down\": \"\\f279\",\n \"chevron-compact-left\": \"\\f27a\",\n \"chevron-compact-right\": \"\\f27b\",\n \"chevron-compact-up\": \"\\f27c\",\n \"chevron-contract\": \"\\f27d\",\n \"chevron-double-down\": \"\\f27e\",\n \"chevron-double-left\": \"\\f27f\",\n \"chevron-double-right\": \"\\f280\",\n \"chevron-double-up\": \"\\f281\",\n \"chevron-down\": \"\\f282\",\n \"chevron-expand\": \"\\f283\",\n \"chevron-left\": \"\\f284\",\n \"chevron-right\": \"\\f285\",\n \"chevron-up\": \"\\f286\",\n \"circle-fill\": \"\\f287\",\n \"circle-half\": \"\\f288\",\n \"circle-square\": \"\\f289\",\n \"circle\": \"\\f28a\",\n \"clipboard-check\": \"\\f28b\",\n \"clipboard-data\": \"\\f28c\",\n \"clipboard-minus\": \"\\f28d\",\n \"clipboard-plus\": \"\\f28e\",\n \"clipboard-x\": \"\\f28f\",\n \"clipboard\": \"\\f290\",\n \"clock-fill\": \"\\f291\",\n \"clock-history\": \"\\f292\",\n \"clock\": \"\\f293\",\n \"cloud-arrow-down-fill\": \"\\f294\",\n \"cloud-arrow-down\": \"\\f295\",\n \"cloud-arrow-up-fill\": \"\\f296\",\n \"cloud-arrow-up\": \"\\f297\",\n \"cloud-check-fill\": \"\\f298\",\n \"cloud-check\": \"\\f299\",\n \"cloud-download-fill\": \"\\f29a\",\n \"cloud-download\": \"\\f29b\",\n \"cloud-drizzle-fill\": \"\\f29c\",\n \"cloud-drizzle\": \"\\f29d\",\n \"cloud-fill\": \"\\f29e\",\n \"cloud-fog-fill\": \"\\f29f\",\n \"cloud-fog\": \"\\f2a0\",\n \"cloud-fog2-fill\": \"\\f2a1\",\n \"cloud-fog2\": \"\\f2a2\",\n \"cloud-hail-fill\": \"\\f2a3\",\n \"cloud-hail\": \"\\f2a4\",\n \"cloud-haze-fill\": \"\\f2a6\",\n \"cloud-haze\": \"\\f2a7\",\n \"cloud-haze2-fill\": \"\\f2a8\",\n \"cloud-lightning-fill\": \"\\f2a9\",\n \"cloud-lightning-rain-fill\": \"\\f2aa\",\n \"cloud-lightning-rain\": \"\\f2ab\",\n \"cloud-lightning\": \"\\f2ac\",\n \"cloud-minus-fill\": \"\\f2ad\",\n \"cloud-minus\": \"\\f2ae\",\n \"cloud-moon-fill\": \"\\f2af\",\n \"cloud-moon\": \"\\f2b0\",\n \"cloud-plus-fill\": \"\\f2b1\",\n \"cloud-plus\": \"\\f2b2\",\n \"cloud-rain-fill\": \"\\f2b3\",\n \"cloud-rain-heavy-fill\": \"\\f2b4\",\n \"cloud-rain-heavy\": \"\\f2b5\",\n \"cloud-rain\": \"\\f2b6\",\n \"cloud-slash-fill\": \"\\f2b7\",\n \"cloud-slash\": \"\\f2b8\",\n \"cloud-sleet-fill\": \"\\f2b9\",\n \"cloud-sleet\": \"\\f2ba\",\n \"cloud-snow-fill\": \"\\f2bb\",\n \"cloud-snow\": \"\\f2bc\",\n \"cloud-sun-fill\": \"\\f2bd\",\n \"cloud-sun\": \"\\f2be\",\n \"cloud-upload-fill\": \"\\f2bf\",\n \"cloud-upload\": \"\\f2c0\",\n \"cloud\": \"\\f2c1\",\n \"clouds-fill\": \"\\f2c2\",\n \"clouds\": \"\\f2c3\",\n \"cloudy-fill\": \"\\f2c4\",\n \"cloudy\": \"\\f2c5\",\n \"code-slash\": \"\\f2c6\",\n \"code-square\": \"\\f2c7\",\n \"code\": \"\\f2c8\",\n \"collection-fill\": \"\\f2c9\",\n \"collection-play-fill\": \"\\f2ca\",\n \"collection-play\": \"\\f2cb\",\n \"collection\": \"\\f2cc\",\n \"columns-gap\": \"\\f2cd\",\n \"columns\": \"\\f2ce\",\n \"command\": \"\\f2cf\",\n \"compass-fill\": \"\\f2d0\",\n \"compass\": \"\\f2d1\",\n \"cone-striped\": \"\\f2d2\",\n \"cone\": \"\\f2d3\",\n \"controller\": \"\\f2d4\",\n \"cpu-fill\": \"\\f2d5\",\n \"cpu\": \"\\f2d6\",\n \"credit-card-2-back-fill\": \"\\f2d7\",\n \"credit-card-2-back\": \"\\f2d8\",\n \"credit-card-2-front-fill\": \"\\f2d9\",\n \"credit-card-2-front\": \"\\f2da\",\n \"credit-card-fill\": \"\\f2db\",\n \"credit-card\": \"\\f2dc\",\n \"crop\": \"\\f2dd\",\n \"cup-fill\": \"\\f2de\",\n \"cup-straw\": \"\\f2df\",\n \"cup\": \"\\f2e0\",\n \"cursor-fill\": \"\\f2e1\",\n \"cursor-text\": \"\\f2e2\",\n \"cursor\": \"\\f2e3\",\n \"dash-circle-dotted\": \"\\f2e4\",\n \"dash-circle-fill\": \"\\f2e5\",\n \"dash-circle\": \"\\f2e6\",\n \"dash-square-dotted\": \"\\f2e7\",\n \"dash-square-fill\": \"\\f2e8\",\n \"dash-square\": \"\\f2e9\",\n \"dash\": \"\\f2ea\",\n \"diagram-2-fill\": \"\\f2eb\",\n \"diagram-2\": \"\\f2ec\",\n \"diagram-3-fill\": \"\\f2ed\",\n \"diagram-3\": \"\\f2ee\",\n \"diamond-fill\": \"\\f2ef\",\n \"diamond-half\": \"\\f2f0\",\n \"diamond\": \"\\f2f1\",\n \"dice-1-fill\": \"\\f2f2\",\n \"dice-1\": \"\\f2f3\",\n \"dice-2-fill\": \"\\f2f4\",\n \"dice-2\": \"\\f2f5\",\n \"dice-3-fill\": \"\\f2f6\",\n \"dice-3\": \"\\f2f7\",\n \"dice-4-fill\": \"\\f2f8\",\n \"dice-4\": \"\\f2f9\",\n \"dice-5-fill\": \"\\f2fa\",\n \"dice-5\": \"\\f2fb\",\n \"dice-6-fill\": \"\\f2fc\",\n \"dice-6\": \"\\f2fd\",\n \"disc-fill\": \"\\f2fe\",\n \"disc\": \"\\f2ff\",\n \"discord\": \"\\f300\",\n \"display-fill\": \"\\f301\",\n \"display\": \"\\f302\",\n \"distribute-horizontal\": \"\\f303\",\n \"distribute-vertical\": \"\\f304\",\n \"door-closed-fill\": \"\\f305\",\n \"door-closed\": \"\\f306\",\n \"door-open-fill\": \"\\f307\",\n \"door-open\": \"\\f308\",\n \"dot\": \"\\f309\",\n \"download\": \"\\f30a\",\n \"droplet-fill\": \"\\f30b\",\n \"droplet-half\": \"\\f30c\",\n \"droplet\": \"\\f30d\",\n \"earbuds\": \"\\f30e\",\n \"easel-fill\": \"\\f30f\",\n \"easel\": \"\\f310\",\n \"egg-fill\": \"\\f311\",\n \"egg-fried\": \"\\f312\",\n \"egg\": \"\\f313\",\n \"eject-fill\": \"\\f314\",\n \"eject\": \"\\f315\",\n \"emoji-angry-fill\": \"\\f316\",\n \"emoji-angry\": \"\\f317\",\n \"emoji-dizzy-fill\": \"\\f318\",\n \"emoji-dizzy\": \"\\f319\",\n \"emoji-expressionless-fill\": \"\\f31a\",\n \"emoji-expressionless\": \"\\f31b\",\n \"emoji-frown-fill\": \"\\f31c\",\n \"emoji-frown\": \"\\f31d\",\n \"emoji-heart-eyes-fill\": \"\\f31e\",\n \"emoji-heart-eyes\": \"\\f31f\",\n \"emoji-laughing-fill\": \"\\f320\",\n \"emoji-laughing\": \"\\f321\",\n \"emoji-neutral-fill\": \"\\f322\",\n \"emoji-neutral\": \"\\f323\",\n \"emoji-smile-fill\": \"\\f324\",\n \"emoji-smile-upside-down-fill\": \"\\f325\",\n \"emoji-smile-upside-down\": \"\\f326\",\n \"emoji-smile\": \"\\f327\",\n \"emoji-sunglasses-fill\": \"\\f328\",\n \"emoji-sunglasses\": \"\\f329\",\n \"emoji-wink-fill\": \"\\f32a\",\n \"emoji-wink\": \"\\f32b\",\n \"envelope-fill\": \"\\f32c\",\n \"envelope-open-fill\": \"\\f32d\",\n \"envelope-open\": \"\\f32e\",\n \"envelope\": \"\\f32f\",\n \"eraser-fill\": \"\\f330\",\n \"eraser\": \"\\f331\",\n \"exclamation-circle-fill\": \"\\f332\",\n \"exclamation-circle\": \"\\f333\",\n \"exclamation-diamond-fill\": \"\\f334\",\n \"exclamation-diamond\": \"\\f335\",\n \"exclamation-octagon-fill\": \"\\f336\",\n \"exclamation-octagon\": \"\\f337\",\n \"exclamation-square-fill\": \"\\f338\",\n \"exclamation-square\": \"\\f339\",\n \"exclamation-triangle-fill\": \"\\f33a\",\n \"exclamation-triangle\": \"\\f33b\",\n \"exclamation\": \"\\f33c\",\n \"exclude\": \"\\f33d\",\n \"eye-fill\": \"\\f33e\",\n \"eye-slash-fill\": \"\\f33f\",\n \"eye-slash\": \"\\f340\",\n \"eye\": \"\\f341\",\n \"eyedropper\": \"\\f342\",\n \"eyeglasses\": \"\\f343\",\n \"facebook\": \"\\f344\",\n \"file-arrow-down-fill\": \"\\f345\",\n \"file-arrow-down\": \"\\f346\",\n \"file-arrow-up-fill\": \"\\f347\",\n \"file-arrow-up\": \"\\f348\",\n \"file-bar-graph-fill\": \"\\f349\",\n \"file-bar-graph\": \"\\f34a\",\n \"file-binary-fill\": \"\\f34b\",\n \"file-binary\": \"\\f34c\",\n \"file-break-fill\": \"\\f34d\",\n \"file-break\": \"\\f34e\",\n \"file-check-fill\": \"\\f34f\",\n \"file-check\": \"\\f350\",\n \"file-code-fill\": \"\\f351\",\n \"file-code\": \"\\f352\",\n \"file-diff-fill\": \"\\f353\",\n \"file-diff\": \"\\f354\",\n \"file-earmark-arrow-down-fill\": \"\\f355\",\n \"file-earmark-arrow-down\": \"\\f356\",\n \"file-earmark-arrow-up-fill\": \"\\f357\",\n \"file-earmark-arrow-up\": \"\\f358\",\n \"file-earmark-bar-graph-fill\": \"\\f359\",\n \"file-earmark-bar-graph\": \"\\f35a\",\n \"file-earmark-binary-fill\": \"\\f35b\",\n \"file-earmark-binary\": \"\\f35c\",\n \"file-earmark-break-fill\": \"\\f35d\",\n \"file-earmark-break\": \"\\f35e\",\n \"file-earmark-check-fill\": \"\\f35f\",\n \"file-earmark-check\": \"\\f360\",\n \"file-earmark-code-fill\": \"\\f361\",\n \"file-earmark-code\": \"\\f362\",\n \"file-earmark-diff-fill\": \"\\f363\",\n \"file-earmark-diff\": \"\\f364\",\n \"file-earmark-easel-fill\": \"\\f365\",\n \"file-earmark-easel\": \"\\f366\",\n \"file-earmark-excel-fill\": \"\\f367\",\n \"file-earmark-excel\": \"\\f368\",\n \"file-earmark-fill\": \"\\f369\",\n \"file-earmark-font-fill\": \"\\f36a\",\n \"file-earmark-font\": \"\\f36b\",\n \"file-earmark-image-fill\": \"\\f36c\",\n \"file-earmark-image\": \"\\f36d\",\n \"file-earmark-lock-fill\": \"\\f36e\",\n \"file-earmark-lock\": \"\\f36f\",\n \"file-earmark-lock2-fill\": \"\\f370\",\n \"file-earmark-lock2\": \"\\f371\",\n \"file-earmark-medical-fill\": \"\\f372\",\n \"file-earmark-medical\": \"\\f373\",\n \"file-earmark-minus-fill\": \"\\f374\",\n \"file-earmark-minus\": \"\\f375\",\n \"file-earmark-music-fill\": \"\\f376\",\n \"file-earmark-music\": \"\\f377\",\n \"file-earmark-person-fill\": \"\\f378\",\n \"file-earmark-person\": \"\\f379\",\n \"file-earmark-play-fill\": \"\\f37a\",\n \"file-earmark-play\": \"\\f37b\",\n \"file-earmark-plus-fill\": \"\\f37c\",\n \"file-earmark-plus\": \"\\f37d\",\n \"file-earmark-post-fill\": \"\\f37e\",\n \"file-earmark-post\": \"\\f37f\",\n \"file-earmark-ppt-fill\": \"\\f380\",\n \"file-earmark-ppt\": \"\\f381\",\n \"file-earmark-richtext-fill\": \"\\f382\",\n \"file-earmark-richtext\": \"\\f383\",\n \"file-earmark-ruled-fill\": \"\\f384\",\n \"file-earmark-ruled\": \"\\f385\",\n \"file-earmark-slides-fill\": \"\\f386\",\n \"file-earmark-slides\": \"\\f387\",\n \"file-earmark-spreadsheet-fill\": \"\\f388\",\n \"file-earmark-spreadsheet\": \"\\f389\",\n \"file-earmark-text-fill\": \"\\f38a\",\n \"file-earmark-text\": \"\\f38b\",\n \"file-earmark-word-fill\": \"\\f38c\",\n \"file-earmark-word\": \"\\f38d\",\n \"file-earmark-x-fill\": \"\\f38e\",\n \"file-earmark-x\": \"\\f38f\",\n \"file-earmark-zip-fill\": \"\\f390\",\n \"file-earmark-zip\": \"\\f391\",\n \"file-earmark\": \"\\f392\",\n \"file-easel-fill\": \"\\f393\",\n \"file-easel\": \"\\f394\",\n \"file-excel-fill\": \"\\f395\",\n \"file-excel\": \"\\f396\",\n \"file-fill\": \"\\f397\",\n \"file-font-fill\": \"\\f398\",\n \"file-font\": \"\\f399\",\n \"file-image-fill\": \"\\f39a\",\n \"file-image\": \"\\f39b\",\n \"file-lock-fill\": \"\\f39c\",\n \"file-lock\": \"\\f39d\",\n \"file-lock2-fill\": \"\\f39e\",\n \"file-lock2\": \"\\f39f\",\n \"file-medical-fill\": \"\\f3a0\",\n \"file-medical\": \"\\f3a1\",\n \"file-minus-fill\": \"\\f3a2\",\n \"file-minus\": \"\\f3a3\",\n \"file-music-fill\": \"\\f3a4\",\n \"file-music\": \"\\f3a5\",\n \"file-person-fill\": \"\\f3a6\",\n \"file-person\": \"\\f3a7\",\n \"file-play-fill\": \"\\f3a8\",\n \"file-play\": \"\\f3a9\",\n \"file-plus-fill\": \"\\f3aa\",\n \"file-plus\": \"\\f3ab\",\n \"file-post-fill\": \"\\f3ac\",\n \"file-post\": \"\\f3ad\",\n \"file-ppt-fill\": \"\\f3ae\",\n \"file-ppt\": \"\\f3af\",\n \"file-richtext-fill\": \"\\f3b0\",\n \"file-richtext\": \"\\f3b1\",\n \"file-ruled-fill\": \"\\f3b2\",\n \"file-ruled\": \"\\f3b3\",\n \"file-slides-fill\": \"\\f3b4\",\n \"file-slides\": \"\\f3b5\",\n \"file-spreadsheet-fill\": \"\\f3b6\",\n \"file-spreadsheet\": \"\\f3b7\",\n \"file-text-fill\": \"\\f3b8\",\n \"file-text\": \"\\f3b9\",\n \"file-word-fill\": \"\\f3ba\",\n \"file-word\": \"\\f3bb\",\n \"file-x-fill\": \"\\f3bc\",\n \"file-x\": \"\\f3bd\",\n \"file-zip-fill\": \"\\f3be\",\n \"file-zip\": \"\\f3bf\",\n \"file\": \"\\f3c0\",\n \"files-alt\": \"\\f3c1\",\n \"files\": \"\\f3c2\",\n \"film\": \"\\f3c3\",\n \"filter-circle-fill\": \"\\f3c4\",\n \"filter-circle\": \"\\f3c5\",\n \"filter-left\": \"\\f3c6\",\n \"filter-right\": \"\\f3c7\",\n \"filter-square-fill\": \"\\f3c8\",\n \"filter-square\": \"\\f3c9\",\n \"filter\": \"\\f3ca\",\n \"flag-fill\": \"\\f3cb\",\n \"flag\": \"\\f3cc\",\n \"flower1\": \"\\f3cd\",\n \"flower2\": \"\\f3ce\",\n \"flower3\": \"\\f3cf\",\n \"folder-check\": \"\\f3d0\",\n \"folder-fill\": \"\\f3d1\",\n \"folder-minus\": \"\\f3d2\",\n \"folder-plus\": \"\\f3d3\",\n \"folder-symlink-fill\": \"\\f3d4\",\n \"folder-symlink\": \"\\f3d5\",\n \"folder-x\": \"\\f3d6\",\n \"folder\": \"\\f3d7\",\n \"folder2-open\": \"\\f3d8\",\n \"folder2\": \"\\f3d9\",\n \"fonts\": \"\\f3da\",\n \"forward-fill\": \"\\f3db\",\n \"forward\": \"\\f3dc\",\n \"front\": \"\\f3dd\",\n \"fullscreen-exit\": \"\\f3de\",\n \"fullscreen\": \"\\f3df\",\n \"funnel-fill\": \"\\f3e0\",\n \"funnel\": \"\\f3e1\",\n \"gear-fill\": \"\\f3e2\",\n \"gear-wide-connected\": \"\\f3e3\",\n \"gear-wide\": \"\\f3e4\",\n \"gear\": \"\\f3e5\",\n \"gem\": \"\\f3e6\",\n \"geo-alt-fill\": \"\\f3e7\",\n \"geo-alt\": \"\\f3e8\",\n \"geo-fill\": \"\\f3e9\",\n \"geo\": \"\\f3ea\",\n \"gift-fill\": \"\\f3eb\",\n \"gift\": \"\\f3ec\",\n \"github\": \"\\f3ed\",\n \"globe\": \"\\f3ee\",\n \"globe2\": \"\\f3ef\",\n \"google\": \"\\f3f0\",\n \"graph-down\": \"\\f3f1\",\n \"graph-up\": \"\\f3f2\",\n \"grid-1x2-fill\": \"\\f3f3\",\n \"grid-1x2\": \"\\f3f4\",\n \"grid-3x2-gap-fill\": \"\\f3f5\",\n \"grid-3x2-gap\": \"\\f3f6\",\n \"grid-3x2\": \"\\f3f7\",\n \"grid-3x3-gap-fill\": \"\\f3f8\",\n \"grid-3x3-gap\": \"\\f3f9\",\n \"grid-3x3\": \"\\f3fa\",\n \"grid-fill\": \"\\f3fb\",\n \"grid\": \"\\f3fc\",\n \"grip-horizontal\": \"\\f3fd\",\n \"grip-vertical\": \"\\f3fe\",\n \"hammer\": \"\\f3ff\",\n \"hand-index-fill\": \"\\f400\",\n \"hand-index-thumb-fill\": \"\\f401\",\n \"hand-index-thumb\": \"\\f402\",\n \"hand-index\": \"\\f403\",\n \"hand-thumbs-down-fill\": \"\\f404\",\n \"hand-thumbs-down\": \"\\f405\",\n \"hand-thumbs-up-fill\": \"\\f406\",\n \"hand-thumbs-up\": \"\\f407\",\n \"handbag-fill\": \"\\f408\",\n \"handbag\": \"\\f409\",\n \"hash\": \"\\f40a\",\n \"hdd-fill\": \"\\f40b\",\n \"hdd-network-fill\": \"\\f40c\",\n \"hdd-network\": \"\\f40d\",\n \"hdd-rack-fill\": \"\\f40e\",\n \"hdd-rack\": \"\\f40f\",\n \"hdd-stack-fill\": \"\\f410\",\n \"hdd-stack\": \"\\f411\",\n \"hdd\": \"\\f412\",\n \"headphones\": \"\\f413\",\n \"headset\": \"\\f414\",\n \"heart-fill\": \"\\f415\",\n \"heart-half\": \"\\f416\",\n \"heart\": \"\\f417\",\n \"heptagon-fill\": \"\\f418\",\n \"heptagon-half\": \"\\f419\",\n \"heptagon\": \"\\f41a\",\n \"hexagon-fill\": \"\\f41b\",\n \"hexagon-half\": \"\\f41c\",\n \"hexagon\": \"\\f41d\",\n \"hourglass-bottom\": \"\\f41e\",\n \"hourglass-split\": \"\\f41f\",\n \"hourglass-top\": \"\\f420\",\n \"hourglass\": \"\\f421\",\n \"house-door-fill\": \"\\f422\",\n \"house-door\": \"\\f423\",\n \"house-fill\": \"\\f424\",\n \"house\": \"\\f425\",\n \"hr\": \"\\f426\",\n \"hurricane\": \"\\f427\",\n \"image-alt\": \"\\f428\",\n \"image-fill\": \"\\f429\",\n \"image\": \"\\f42a\",\n \"images\": \"\\f42b\",\n \"inbox-fill\": \"\\f42c\",\n \"inbox\": \"\\f42d\",\n \"inboxes-fill\": \"\\f42e\",\n \"inboxes\": \"\\f42f\",\n \"info-circle-fill\": \"\\f430\",\n \"info-circle\": \"\\f431\",\n \"info-square-fill\": \"\\f432\",\n \"info-square\": \"\\f433\",\n \"info\": \"\\f434\",\n \"input-cursor-text\": \"\\f435\",\n \"input-cursor\": \"\\f436\",\n \"instagram\": \"\\f437\",\n \"intersect\": \"\\f438\",\n \"journal-album\": \"\\f439\",\n \"journal-arrow-down\": \"\\f43a\",\n \"journal-arrow-up\": \"\\f43b\",\n \"journal-bookmark-fill\": \"\\f43c\",\n \"journal-bookmark\": \"\\f43d\",\n \"journal-check\": \"\\f43e\",\n \"journal-code\": \"\\f43f\",\n \"journal-medical\": \"\\f440\",\n \"journal-minus\": \"\\f441\",\n \"journal-plus\": \"\\f442\",\n \"journal-richtext\": \"\\f443\",\n \"journal-text\": \"\\f444\",\n \"journal-x\": \"\\f445\",\n \"journal\": \"\\f446\",\n \"journals\": \"\\f447\",\n \"joystick\": \"\\f448\",\n \"justify-left\": \"\\f449\",\n \"justify-right\": \"\\f44a\",\n \"justify\": \"\\f44b\",\n \"kanban-fill\": \"\\f44c\",\n \"kanban\": \"\\f44d\",\n \"key-fill\": \"\\f44e\",\n \"key\": \"\\f44f\",\n \"keyboard-fill\": \"\\f450\",\n \"keyboard\": \"\\f451\",\n \"ladder\": \"\\f452\",\n \"lamp-fill\": \"\\f453\",\n \"lamp\": \"\\f454\",\n \"laptop-fill\": \"\\f455\",\n \"laptop\": \"\\f456\",\n \"layer-backward\": \"\\f457\",\n \"layer-forward\": \"\\f458\",\n \"layers-fill\": \"\\f459\",\n \"layers-half\": \"\\f45a\",\n \"layers\": \"\\f45b\",\n \"layout-sidebar-inset-reverse\": \"\\f45c\",\n \"layout-sidebar-inset\": \"\\f45d\",\n \"layout-sidebar-reverse\": \"\\f45e\",\n \"layout-sidebar\": \"\\f45f\",\n \"layout-split\": \"\\f460\",\n \"layout-text-sidebar-reverse\": \"\\f461\",\n \"layout-text-sidebar\": \"\\f462\",\n \"layout-text-window-reverse\": \"\\f463\",\n \"layout-text-window\": \"\\f464\",\n \"layout-three-columns\": \"\\f465\",\n \"layout-wtf\": \"\\f466\",\n \"life-preserver\": \"\\f467\",\n \"lightbulb-fill\": \"\\f468\",\n \"lightbulb-off-fill\": \"\\f469\",\n \"lightbulb-off\": \"\\f46a\",\n \"lightbulb\": \"\\f46b\",\n \"lightning-charge-fill\": \"\\f46c\",\n \"lightning-charge\": \"\\f46d\",\n \"lightning-fill\": \"\\f46e\",\n \"lightning\": \"\\f46f\",\n \"link-45deg\": \"\\f470\",\n \"link\": \"\\f471\",\n \"linkedin\": \"\\f472\",\n \"list-check\": \"\\f473\",\n \"list-nested\": \"\\f474\",\n \"list-ol\": \"\\f475\",\n \"list-stars\": \"\\f476\",\n \"list-task\": \"\\f477\",\n \"list-ul\": \"\\f478\",\n \"list\": \"\\f479\",\n \"lock-fill\": \"\\f47a\",\n \"lock\": \"\\f47b\",\n \"mailbox\": \"\\f47c\",\n \"mailbox2\": \"\\f47d\",\n \"map-fill\": \"\\f47e\",\n \"map\": \"\\f47f\",\n \"markdown-fill\": \"\\f480\",\n \"markdown\": \"\\f481\",\n \"mask\": \"\\f482\",\n \"megaphone-fill\": \"\\f483\",\n \"megaphone\": \"\\f484\",\n \"menu-app-fill\": \"\\f485\",\n \"menu-app\": \"\\f486\",\n \"menu-button-fill\": \"\\f487\",\n \"menu-button-wide-fill\": \"\\f488\",\n \"menu-button-wide\": \"\\f489\",\n \"menu-button\": \"\\f48a\",\n \"menu-down\": \"\\f48b\",\n \"menu-up\": \"\\f48c\",\n \"mic-fill\": \"\\f48d\",\n \"mic-mute-fill\": \"\\f48e\",\n \"mic-mute\": \"\\f48f\",\n \"mic\": \"\\f490\",\n \"minecart-loaded\": \"\\f491\",\n \"minecart\": \"\\f492\",\n \"moisture\": \"\\f493\",\n \"moon-fill\": \"\\f494\",\n \"moon-stars-fill\": \"\\f495\",\n \"moon-stars\": \"\\f496\",\n \"moon\": \"\\f497\",\n \"mouse-fill\": \"\\f498\",\n \"mouse\": \"\\f499\",\n \"mouse2-fill\": \"\\f49a\",\n \"mouse2\": \"\\f49b\",\n \"mouse3-fill\": \"\\f49c\",\n \"mouse3\": \"\\f49d\",\n \"music-note-beamed\": \"\\f49e\",\n \"music-note-list\": \"\\f49f\",\n \"music-note\": \"\\f4a0\",\n \"music-player-fill\": \"\\f4a1\",\n \"music-player\": \"\\f4a2\",\n \"newspaper\": \"\\f4a3\",\n \"node-minus-fill\": \"\\f4a4\",\n \"node-minus\": \"\\f4a5\",\n \"node-plus-fill\": \"\\f4a6\",\n \"node-plus\": \"\\f4a7\",\n \"nut-fill\": \"\\f4a8\",\n \"nut\": \"\\f4a9\",\n \"octagon-fill\": \"\\f4aa\",\n \"octagon-half\": \"\\f4ab\",\n \"octagon\": \"\\f4ac\",\n \"option\": \"\\f4ad\",\n \"outlet\": \"\\f4ae\",\n \"paint-bucket\": \"\\f4af\",\n \"palette-fill\": \"\\f4b0\",\n \"palette\": \"\\f4b1\",\n \"palette2\": \"\\f4b2\",\n \"paperclip\": \"\\f4b3\",\n \"paragraph\": \"\\f4b4\",\n \"patch-check-fill\": \"\\f4b5\",\n \"patch-check\": \"\\f4b6\",\n \"patch-exclamation-fill\": \"\\f4b7\",\n \"patch-exclamation\": \"\\f4b8\",\n \"patch-minus-fill\": \"\\f4b9\",\n \"patch-minus\": \"\\f4ba\",\n \"patch-plus-fill\": \"\\f4bb\",\n \"patch-plus\": \"\\f4bc\",\n \"patch-question-fill\": \"\\f4bd\",\n \"patch-question\": \"\\f4be\",\n \"pause-btn-fill\": \"\\f4bf\",\n \"pause-btn\": \"\\f4c0\",\n \"pause-circle-fill\": \"\\f4c1\",\n \"pause-circle\": \"\\f4c2\",\n \"pause-fill\": \"\\f4c3\",\n \"pause\": \"\\f4c4\",\n \"peace-fill\": \"\\f4c5\",\n \"peace\": \"\\f4c6\",\n \"pen-fill\": \"\\f4c7\",\n \"pen\": \"\\f4c8\",\n \"pencil-fill\": \"\\f4c9\",\n \"pencil-square\": \"\\f4ca\",\n \"pencil\": \"\\f4cb\",\n \"pentagon-fill\": \"\\f4cc\",\n \"pentagon-half\": \"\\f4cd\",\n \"pentagon\": \"\\f4ce\",\n \"people-fill\": \"\\f4cf\",\n \"people\": \"\\f4d0\",\n \"percent\": \"\\f4d1\",\n \"person-badge-fill\": \"\\f4d2\",\n \"person-badge\": \"\\f4d3\",\n \"person-bounding-box\": \"\\f4d4\",\n \"person-check-fill\": \"\\f4d5\",\n \"person-check\": \"\\f4d6\",\n \"person-circle\": \"\\f4d7\",\n \"person-dash-fill\": \"\\f4d8\",\n \"person-dash\": \"\\f4d9\",\n \"person-fill\": \"\\f4da\",\n \"person-lines-fill\": \"\\f4db\",\n \"person-plus-fill\": \"\\f4dc\",\n \"person-plus\": \"\\f4dd\",\n \"person-square\": \"\\f4de\",\n \"person-x-fill\": \"\\f4df\",\n \"person-x\": \"\\f4e0\",\n \"person\": \"\\f4e1\",\n \"phone-fill\": \"\\f4e2\",\n \"phone-landscape-fill\": \"\\f4e3\",\n \"phone-landscape\": \"\\f4e4\",\n \"phone-vibrate-fill\": \"\\f4e5\",\n \"phone-vibrate\": \"\\f4e6\",\n \"phone\": \"\\f4e7\",\n \"pie-chart-fill\": \"\\f4e8\",\n \"pie-chart\": \"\\f4e9\",\n \"pin-angle-fill\": \"\\f4ea\",\n \"pin-angle\": \"\\f4eb\",\n \"pin-fill\": \"\\f4ec\",\n \"pin\": \"\\f4ed\",\n \"pip-fill\": \"\\f4ee\",\n \"pip\": \"\\f4ef\",\n \"play-btn-fill\": \"\\f4f0\",\n \"play-btn\": \"\\f4f1\",\n \"play-circle-fill\": \"\\f4f2\",\n \"play-circle\": \"\\f4f3\",\n \"play-fill\": \"\\f4f4\",\n \"play\": \"\\f4f5\",\n \"plug-fill\": \"\\f4f6\",\n \"plug\": \"\\f4f7\",\n \"plus-circle-dotted\": \"\\f4f8\",\n \"plus-circle-fill\": \"\\f4f9\",\n \"plus-circle\": \"\\f4fa\",\n \"plus-square-dotted\": \"\\f4fb\",\n \"plus-square-fill\": \"\\f4fc\",\n \"plus-square\": \"\\f4fd\",\n \"plus\": \"\\f4fe\",\n \"power\": \"\\f4ff\",\n \"printer-fill\": \"\\f500\",\n \"printer\": \"\\f501\",\n \"puzzle-fill\": \"\\f502\",\n \"puzzle\": \"\\f503\",\n \"question-circle-fill\": \"\\f504\",\n \"question-circle\": \"\\f505\",\n \"question-diamond-fill\": \"\\f506\",\n \"question-diamond\": \"\\f507\",\n \"question-octagon-fill\": \"\\f508\",\n \"question-octagon\": \"\\f509\",\n \"question-square-fill\": \"\\f50a\",\n \"question-square\": \"\\f50b\",\n \"question\": \"\\f50c\",\n \"rainbow\": \"\\f50d\",\n \"receipt-cutoff\": \"\\f50e\",\n \"receipt\": \"\\f50f\",\n \"reception-0\": \"\\f510\",\n \"reception-1\": \"\\f511\",\n \"reception-2\": \"\\f512\",\n \"reception-3\": \"\\f513\",\n \"reception-4\": \"\\f514\",\n \"record-btn-fill\": \"\\f515\",\n \"record-btn\": \"\\f516\",\n \"record-circle-fill\": \"\\f517\",\n \"record-circle\": \"\\f518\",\n \"record-fill\": \"\\f519\",\n \"record\": \"\\f51a\",\n \"record2-fill\": \"\\f51b\",\n \"record2\": \"\\f51c\",\n \"reply-all-fill\": \"\\f51d\",\n \"reply-all\": \"\\f51e\",\n \"reply-fill\": \"\\f51f\",\n \"reply\": \"\\f520\",\n \"rss-fill\": \"\\f521\",\n \"rss\": \"\\f522\",\n \"rulers\": \"\\f523\",\n \"save-fill\": \"\\f524\",\n \"save\": \"\\f525\",\n \"save2-fill\": \"\\f526\",\n \"save2\": \"\\f527\",\n \"scissors\": \"\\f528\",\n \"screwdriver\": \"\\f529\",\n \"search\": \"\\f52a\",\n \"segmented-nav\": \"\\f52b\",\n \"server\": \"\\f52c\",\n \"share-fill\": \"\\f52d\",\n \"share\": \"\\f52e\",\n \"shield-check\": \"\\f52f\",\n \"shield-exclamation\": \"\\f530\",\n \"shield-fill-check\": \"\\f531\",\n \"shield-fill-exclamation\": \"\\f532\",\n \"shield-fill-minus\": \"\\f533\",\n \"shield-fill-plus\": \"\\f534\",\n \"shield-fill-x\": \"\\f535\",\n \"shield-fill\": \"\\f536\",\n \"shield-lock-fill\": \"\\f537\",\n \"shield-lock\": \"\\f538\",\n \"shield-minus\": \"\\f539\",\n \"shield-plus\": \"\\f53a\",\n \"shield-shaded\": \"\\f53b\",\n \"shield-slash-fill\": \"\\f53c\",\n \"shield-slash\": \"\\f53d\",\n \"shield-x\": \"\\f53e\",\n \"shield\": \"\\f53f\",\n \"shift-fill\": \"\\f540\",\n \"shift\": \"\\f541\",\n \"shop-window\": \"\\f542\",\n \"shop\": \"\\f543\",\n \"shuffle\": \"\\f544\",\n \"signpost-2-fill\": \"\\f545\",\n \"signpost-2\": \"\\f546\",\n \"signpost-fill\": \"\\f547\",\n \"signpost-split-fill\": \"\\f548\",\n \"signpost-split\": \"\\f549\",\n \"signpost\": \"\\f54a\",\n \"sim-fill\": \"\\f54b\",\n \"sim\": \"\\f54c\",\n \"skip-backward-btn-fill\": \"\\f54d\",\n \"skip-backward-btn\": \"\\f54e\",\n \"skip-backward-circle-fill\": \"\\f54f\",\n \"skip-backward-circle\": \"\\f550\",\n \"skip-backward-fill\": \"\\f551\",\n \"skip-backward\": \"\\f552\",\n \"skip-end-btn-fill\": \"\\f553\",\n \"skip-end-btn\": \"\\f554\",\n \"skip-end-circle-fill\": \"\\f555\",\n \"skip-end-circle\": \"\\f556\",\n \"skip-end-fill\": \"\\f557\",\n \"skip-end\": \"\\f558\",\n \"skip-forward-btn-fill\": \"\\f559\",\n \"skip-forward-btn\": \"\\f55a\",\n \"skip-forward-circle-fill\": \"\\f55b\",\n \"skip-forward-circle\": \"\\f55c\",\n \"skip-forward-fill\": \"\\f55d\",\n \"skip-forward\": \"\\f55e\",\n \"skip-start-btn-fill\": \"\\f55f\",\n \"skip-start-btn\": \"\\f560\",\n \"skip-start-circle-fill\": \"\\f561\",\n \"skip-start-circle\": \"\\f562\",\n \"skip-start-fill\": \"\\f563\",\n \"skip-start\": \"\\f564\",\n \"slack\": \"\\f565\",\n \"slash-circle-fill\": \"\\f566\",\n \"slash-circle\": \"\\f567\",\n \"slash-square-fill\": \"\\f568\",\n \"slash-square\": \"\\f569\",\n \"slash\": \"\\f56a\",\n \"sliders\": \"\\f56b\",\n \"smartwatch\": \"\\f56c\",\n \"snow\": \"\\f56d\",\n \"snow2\": \"\\f56e\",\n \"snow3\": \"\\f56f\",\n \"sort-alpha-down-alt\": \"\\f570\",\n \"sort-alpha-down\": \"\\f571\",\n \"sort-alpha-up-alt\": \"\\f572\",\n \"sort-alpha-up\": \"\\f573\",\n \"sort-down-alt\": \"\\f574\",\n \"sort-down\": \"\\f575\",\n \"sort-numeric-down-alt\": \"\\f576\",\n \"sort-numeric-down\": \"\\f577\",\n \"sort-numeric-up-alt\": \"\\f578\",\n \"sort-numeric-up\": \"\\f579\",\n \"sort-up-alt\": \"\\f57a\",\n \"sort-up\": \"\\f57b\",\n \"soundwave\": \"\\f57c\",\n \"speaker-fill\": \"\\f57d\",\n \"speaker\": \"\\f57e\",\n \"speedometer\": \"\\f57f\",\n \"speedometer2\": \"\\f580\",\n \"spellcheck\": \"\\f581\",\n \"square-fill\": \"\\f582\",\n \"square-half\": \"\\f583\",\n \"square\": \"\\f584\",\n \"stack\": \"\\f585\",\n \"star-fill\": \"\\f586\",\n \"star-half\": \"\\f587\",\n \"star\": \"\\f588\",\n \"stars\": \"\\f589\",\n \"stickies-fill\": \"\\f58a\",\n \"stickies\": \"\\f58b\",\n \"sticky-fill\": \"\\f58c\",\n \"sticky\": \"\\f58d\",\n \"stop-btn-fill\": \"\\f58e\",\n \"stop-btn\": \"\\f58f\",\n \"stop-circle-fill\": \"\\f590\",\n \"stop-circle\": \"\\f591\",\n \"stop-fill\": \"\\f592\",\n \"stop\": \"\\f593\",\n \"stoplights-fill\": \"\\f594\",\n \"stoplights\": \"\\f595\",\n \"stopwatch-fill\": \"\\f596\",\n \"stopwatch\": \"\\f597\",\n \"subtract\": \"\\f598\",\n \"suit-club-fill\": \"\\f599\",\n \"suit-club\": \"\\f59a\",\n \"suit-diamond-fill\": \"\\f59b\",\n \"suit-diamond\": \"\\f59c\",\n \"suit-heart-fill\": \"\\f59d\",\n \"suit-heart\": \"\\f59e\",\n \"suit-spade-fill\": \"\\f59f\",\n \"suit-spade\": \"\\f5a0\",\n \"sun-fill\": \"\\f5a1\",\n \"sun\": \"\\f5a2\",\n \"sunglasses\": \"\\f5a3\",\n \"sunrise-fill\": \"\\f5a4\",\n \"sunrise\": \"\\f5a5\",\n \"sunset-fill\": \"\\f5a6\",\n \"sunset\": \"\\f5a7\",\n \"symmetry-horizontal\": \"\\f5a8\",\n \"symmetry-vertical\": \"\\f5a9\",\n \"table\": \"\\f5aa\",\n \"tablet-fill\": \"\\f5ab\",\n \"tablet-landscape-fill\": \"\\f5ac\",\n \"tablet-landscape\": \"\\f5ad\",\n \"tablet\": \"\\f5ae\",\n \"tag-fill\": \"\\f5af\",\n \"tag\": \"\\f5b0\",\n \"tags-fill\": \"\\f5b1\",\n \"tags\": \"\\f5b2\",\n \"telegram\": \"\\f5b3\",\n \"telephone-fill\": \"\\f5b4\",\n \"telephone-forward-fill\": \"\\f5b5\",\n \"telephone-forward\": \"\\f5b6\",\n \"telephone-inbound-fill\": \"\\f5b7\",\n \"telephone-inbound\": \"\\f5b8\",\n \"telephone-minus-fill\": \"\\f5b9\",\n \"telephone-minus\": \"\\f5ba\",\n \"telephone-outbound-fill\": \"\\f5bb\",\n \"telephone-outbound\": \"\\f5bc\",\n \"telephone-plus-fill\": \"\\f5bd\",\n \"telephone-plus\": \"\\f5be\",\n \"telephone-x-fill\": \"\\f5bf\",\n \"telephone-x\": \"\\f5c0\",\n \"telephone\": \"\\f5c1\",\n \"terminal-fill\": \"\\f5c2\",\n \"terminal\": \"\\f5c3\",\n \"text-center\": \"\\f5c4\",\n \"text-indent-left\": \"\\f5c5\",\n \"text-indent-right\": \"\\f5c6\",\n \"text-left\": \"\\f5c7\",\n \"text-paragraph\": \"\\f5c8\",\n \"text-right\": \"\\f5c9\",\n \"textarea-resize\": \"\\f5ca\",\n \"textarea-t\": \"\\f5cb\",\n \"textarea\": \"\\f5cc\",\n \"thermometer-half\": \"\\f5cd\",\n \"thermometer-high\": \"\\f5ce\",\n \"thermometer-low\": \"\\f5cf\",\n \"thermometer-snow\": \"\\f5d0\",\n \"thermometer-sun\": \"\\f5d1\",\n \"thermometer\": \"\\f5d2\",\n \"three-dots-vertical\": \"\\f5d3\",\n \"three-dots\": \"\\f5d4\",\n \"toggle-off\": \"\\f5d5\",\n \"toggle-on\": \"\\f5d6\",\n \"toggle2-off\": \"\\f5d7\",\n \"toggle2-on\": \"\\f5d8\",\n \"toggles\": \"\\f5d9\",\n \"toggles2\": \"\\f5da\",\n \"tools\": \"\\f5db\",\n \"tornado\": \"\\f5dc\",\n \"trash-fill\": \"\\f5dd\",\n \"trash\": \"\\f5de\",\n \"trash2-fill\": \"\\f5df\",\n \"trash2\": \"\\f5e0\",\n \"tree-fill\": \"\\f5e1\",\n \"tree\": \"\\f5e2\",\n \"triangle-fill\": \"\\f5e3\",\n \"triangle-half\": \"\\f5e4\",\n \"triangle\": \"\\f5e5\",\n \"trophy-fill\": \"\\f5e6\",\n \"trophy\": \"\\f5e7\",\n \"tropical-storm\": \"\\f5e8\",\n \"truck-flatbed\": \"\\f5e9\",\n \"truck\": \"\\f5ea\",\n \"tsunami\": \"\\f5eb\",\n \"tv-fill\": \"\\f5ec\",\n \"tv\": \"\\f5ed\",\n \"twitch\": \"\\f5ee\",\n \"twitter\": \"\\f5ef\",\n \"type-bold\": \"\\f5f0\",\n \"type-h1\": \"\\f5f1\",\n \"type-h2\": \"\\f5f2\",\n \"type-h3\": \"\\f5f3\",\n \"type-italic\": \"\\f5f4\",\n \"type-strikethrough\": \"\\f5f5\",\n \"type-underline\": \"\\f5f6\",\n \"type\": \"\\f5f7\",\n \"ui-checks-grid\": \"\\f5f8\",\n \"ui-checks\": \"\\f5f9\",\n \"ui-radios-grid\": \"\\f5fa\",\n \"ui-radios\": \"\\f5fb\",\n \"umbrella-fill\": \"\\f5fc\",\n \"umbrella\": \"\\f5fd\",\n \"union\": \"\\f5fe\",\n \"unlock-fill\": \"\\f5ff\",\n \"unlock\": \"\\f600\",\n \"upc-scan\": \"\\f601\",\n \"upc\": \"\\f602\",\n \"upload\": \"\\f603\",\n \"vector-pen\": \"\\f604\",\n \"view-list\": \"\\f605\",\n \"view-stacked\": \"\\f606\",\n \"vinyl-fill\": \"\\f607\",\n \"vinyl\": \"\\f608\",\n \"voicemail\": \"\\f609\",\n \"volume-down-fill\": \"\\f60a\",\n \"volume-down\": \"\\f60b\",\n \"volume-mute-fill\": \"\\f60c\",\n \"volume-mute\": \"\\f60d\",\n \"volume-off-fill\": \"\\f60e\",\n \"volume-off\": \"\\f60f\",\n \"volume-up-fill\": \"\\f610\",\n \"volume-up\": \"\\f611\",\n \"vr\": \"\\f612\",\n \"wallet-fill\": \"\\f613\",\n \"wallet\": \"\\f614\",\n \"wallet2\": \"\\f615\",\n \"watch\": \"\\f616\",\n \"water\": \"\\f617\",\n \"whatsapp\": \"\\f618\",\n \"wifi-1\": \"\\f619\",\n \"wifi-2\": \"\\f61a\",\n \"wifi-off\": \"\\f61b\",\n \"wifi\": \"\\f61c\",\n \"wind\": \"\\f61d\",\n \"window-dock\": \"\\f61e\",\n \"window-sidebar\": \"\\f61f\",\n \"window\": \"\\f620\",\n \"wrench\": \"\\f621\",\n \"x-circle-fill\": \"\\f622\",\n \"x-circle\": \"\\f623\",\n \"x-diamond-fill\": \"\\f624\",\n \"x-diamond\": \"\\f625\",\n \"x-octagon-fill\": \"\\f626\",\n \"x-octagon\": \"\\f627\",\n \"x-square-fill\": \"\\f628\",\n \"x-square\": \"\\f629\",\n \"x\": \"\\f62a\",\n \"youtube\": \"\\f62b\",\n \"zoom-in\": \"\\f62c\",\n \"zoom-out\": \"\\f62d\",\n \"bank\": \"\\f62e\",\n \"bank2\": \"\\f62f\",\n \"bell-slash-fill\": \"\\f630\",\n \"bell-slash\": \"\\f631\",\n \"cash-coin\": \"\\f632\",\n \"check-lg\": \"\\f633\",\n \"coin\": \"\\f634\",\n \"currency-bitcoin\": \"\\f635\",\n \"currency-dollar\": \"\\f636\",\n \"currency-euro\": \"\\f637\",\n \"currency-exchange\": \"\\f638\",\n \"currency-pound\": \"\\f639\",\n \"currency-yen\": \"\\f63a\",\n \"dash-lg\": \"\\f63b\",\n \"exclamation-lg\": \"\\f63c\",\n \"file-earmark-pdf-fill\": \"\\f63d\",\n \"file-earmark-pdf\": \"\\f63e\",\n \"file-pdf-fill\": \"\\f63f\",\n \"file-pdf\": \"\\f640\",\n \"gender-ambiguous\": \"\\f641\",\n \"gender-female\": \"\\f642\",\n \"gender-male\": \"\\f643\",\n \"gender-trans\": \"\\f644\",\n \"headset-vr\": \"\\f645\",\n \"info-lg\": \"\\f646\",\n \"mastodon\": \"\\f647\",\n \"messenger\": \"\\f648\",\n \"piggy-bank-fill\": \"\\f649\",\n \"piggy-bank\": \"\\f64a\",\n \"pin-map-fill\": \"\\f64b\",\n \"pin-map\": \"\\f64c\",\n \"plus-lg\": \"\\f64d\",\n \"question-lg\": \"\\f64e\",\n \"recycle\": \"\\f64f\",\n \"reddit\": \"\\f650\",\n \"safe-fill\": \"\\f651\",\n \"safe2-fill\": \"\\f652\",\n \"safe2\": \"\\f653\",\n \"sd-card-fill\": \"\\f654\",\n \"sd-card\": \"\\f655\",\n \"skype\": \"\\f656\",\n \"slash-lg\": \"\\f657\",\n \"translate\": \"\\f658\",\n \"x-lg\": \"\\f659\",\n \"safe\": \"\\f65a\",\n \"apple\": \"\\f65b\",\n \"microsoft\": \"\\f65d\",\n \"windows\": \"\\f65e\",\n \"behance\": \"\\f65c\",\n \"dribbble\": \"\\f65f\",\n \"line\": \"\\f660\",\n \"medium\": \"\\f661\",\n \"paypal\": \"\\f662\",\n \"pinterest\": \"\\f663\",\n \"signal\": \"\\f664\",\n \"snapchat\": \"\\f665\",\n \"spotify\": \"\\f666\",\n \"stack-overflow\": \"\\f667\",\n \"strava\": \"\\f668\",\n \"wordpress\": \"\\f669\",\n \"vimeo\": \"\\f66a\",\n \"activity\": \"\\f66b\",\n \"easel2-fill\": \"\\f66c\",\n \"easel2\": \"\\f66d\",\n \"easel3-fill\": \"\\f66e\",\n \"easel3\": \"\\f66f\",\n \"fan\": \"\\f670\",\n \"fingerprint\": \"\\f671\",\n \"graph-down-arrow\": \"\\f672\",\n \"graph-up-arrow\": \"\\f673\",\n \"hypnotize\": \"\\f674\",\n \"magic\": \"\\f675\",\n \"person-rolodex\": \"\\f676\",\n \"person-video\": \"\\f677\",\n \"person-video2\": \"\\f678\",\n \"person-video3\": \"\\f679\",\n \"person-workspace\": \"\\f67a\",\n \"radioactive\": \"\\f67b\",\n \"webcam-fill\": \"\\f67c\",\n \"webcam\": \"\\f67d\",\n \"yin-yang\": \"\\f67e\",\n \"bandaid-fill\": \"\\f680\",\n \"bandaid\": \"\\f681\",\n \"bluetooth\": \"\\f682\",\n \"body-text\": \"\\f683\",\n \"boombox\": \"\\f684\",\n \"boxes\": \"\\f685\",\n \"dpad-fill\": \"\\f686\",\n \"dpad\": \"\\f687\",\n \"ear-fill\": \"\\f688\",\n \"ear\": \"\\f689\",\n \"envelope-check-fill\": \"\\f68b\",\n \"envelope-check\": \"\\f68c\",\n \"envelope-dash-fill\": \"\\f68e\",\n \"envelope-dash\": \"\\f68f\",\n \"envelope-exclamation-fill\": \"\\f691\",\n \"envelope-exclamation\": \"\\f692\",\n \"envelope-plus-fill\": \"\\f693\",\n \"envelope-plus\": \"\\f694\",\n \"envelope-slash-fill\": \"\\f696\",\n \"envelope-slash\": \"\\f697\",\n \"envelope-x-fill\": \"\\f699\",\n \"envelope-x\": \"\\f69a\",\n \"explicit-fill\": \"\\f69b\",\n \"explicit\": \"\\f69c\",\n \"git\": \"\\f69d\",\n \"infinity\": \"\\f69e\",\n \"list-columns-reverse\": \"\\f69f\",\n \"list-columns\": \"\\f6a0\",\n \"meta\": \"\\f6a1\",\n \"nintendo-switch\": \"\\f6a4\",\n \"pc-display-horizontal\": \"\\f6a5\",\n \"pc-display\": \"\\f6a6\",\n \"pc-horizontal\": \"\\f6a7\",\n \"pc\": \"\\f6a8\",\n \"playstation\": \"\\f6a9\",\n \"plus-slash-minus\": \"\\f6aa\",\n \"projector-fill\": \"\\f6ab\",\n \"projector\": \"\\f6ac\",\n \"qr-code-scan\": \"\\f6ad\",\n \"qr-code\": \"\\f6ae\",\n \"quora\": \"\\f6af\",\n \"quote\": \"\\f6b0\",\n \"robot\": \"\\f6b1\",\n \"send-check-fill\": \"\\f6b2\",\n \"send-check\": \"\\f6b3\",\n \"send-dash-fill\": \"\\f6b4\",\n \"send-dash\": \"\\f6b5\",\n \"send-exclamation-fill\": \"\\f6b7\",\n \"send-exclamation\": \"\\f6b8\",\n \"send-fill\": \"\\f6b9\",\n \"send-plus-fill\": \"\\f6ba\",\n \"send-plus\": \"\\f6bb\",\n \"send-slash-fill\": \"\\f6bc\",\n \"send-slash\": \"\\f6bd\",\n \"send-x-fill\": \"\\f6be\",\n \"send-x\": \"\\f6bf\",\n \"send\": \"\\f6c0\",\n \"steam\": \"\\f6c1\",\n \"terminal-dash\": \"\\f6c3\",\n \"terminal-plus\": \"\\f6c4\",\n \"terminal-split\": \"\\f6c5\",\n \"ticket-detailed-fill\": \"\\f6c6\",\n \"ticket-detailed\": \"\\f6c7\",\n \"ticket-fill\": \"\\f6c8\",\n \"ticket-perforated-fill\": \"\\f6c9\",\n \"ticket-perforated\": \"\\f6ca\",\n \"ticket\": \"\\f6cb\",\n \"tiktok\": \"\\f6cc\",\n \"window-dash\": \"\\f6cd\",\n \"window-desktop\": \"\\f6ce\",\n \"window-fullscreen\": \"\\f6cf\",\n \"window-plus\": \"\\f6d0\",\n \"window-split\": \"\\f6d1\",\n \"window-stack\": \"\\f6d2\",\n \"window-x\": \"\\f6d3\",\n \"xbox\": \"\\f6d4\",\n \"ethernet\": \"\\f6d5\",\n \"hdmi-fill\": \"\\f6d6\",\n \"hdmi\": \"\\f6d7\",\n \"usb-c-fill\": \"\\f6d8\",\n \"usb-c\": \"\\f6d9\",\n \"usb-fill\": \"\\f6da\",\n \"usb-plug-fill\": \"\\f6db\",\n \"usb-plug\": \"\\f6dc\",\n \"usb-symbol\": \"\\f6dd\",\n \"usb\": \"\\f6de\",\n \"boombox-fill\": \"\\f6df\",\n \"displayport\": \"\\f6e1\",\n \"gpu-card\": \"\\f6e2\",\n \"memory\": \"\\f6e3\",\n \"modem-fill\": \"\\f6e4\",\n \"modem\": \"\\f6e5\",\n \"motherboard-fill\": \"\\f6e6\",\n \"motherboard\": \"\\f6e7\",\n \"optical-audio-fill\": \"\\f6e8\",\n \"optical-audio\": \"\\f6e9\",\n \"pci-card\": \"\\f6ea\",\n \"router-fill\": \"\\f6eb\",\n \"router\": \"\\f6ec\",\n \"thunderbolt-fill\": \"\\f6ef\",\n \"thunderbolt\": \"\\f6f0\",\n \"usb-drive-fill\": \"\\f6f1\",\n \"usb-drive\": \"\\f6f2\",\n \"usb-micro-fill\": \"\\f6f3\",\n \"usb-micro\": \"\\f6f4\",\n \"usb-mini-fill\": \"\\f6f5\",\n \"usb-mini\": \"\\f6f6\",\n \"cloud-haze2\": \"\\f6f7\",\n \"device-hdd-fill\": \"\\f6f8\",\n \"device-hdd\": \"\\f6f9\",\n \"device-ssd-fill\": \"\\f6fa\",\n \"device-ssd\": \"\\f6fb\",\n \"displayport-fill\": \"\\f6fc\",\n \"mortarboard-fill\": \"\\f6fd\",\n \"mortarboard\": \"\\f6fe\",\n \"terminal-x\": \"\\f6ff\",\n \"arrow-through-heart-fill\": \"\\f700\",\n \"arrow-through-heart\": \"\\f701\",\n \"badge-sd-fill\": \"\\f702\",\n \"badge-sd\": \"\\f703\",\n \"bag-heart-fill\": \"\\f704\",\n \"bag-heart\": \"\\f705\",\n \"balloon-fill\": \"\\f706\",\n \"balloon-heart-fill\": \"\\f707\",\n \"balloon-heart\": \"\\f708\",\n \"balloon\": \"\\f709\",\n \"box2-fill\": \"\\f70a\",\n \"box2-heart-fill\": \"\\f70b\",\n \"box2-heart\": \"\\f70c\",\n \"box2\": \"\\f70d\",\n \"braces-asterisk\": \"\\f70e\",\n \"calendar-heart-fill\": \"\\f70f\",\n \"calendar-heart\": \"\\f710\",\n \"calendar2-heart-fill\": \"\\f711\",\n \"calendar2-heart\": \"\\f712\",\n \"chat-heart-fill\": \"\\f713\",\n \"chat-heart\": \"\\f714\",\n \"chat-left-heart-fill\": \"\\f715\",\n \"chat-left-heart\": \"\\f716\",\n \"chat-right-heart-fill\": \"\\f717\",\n \"chat-right-heart\": \"\\f718\",\n \"chat-square-heart-fill\": \"\\f719\",\n \"chat-square-heart\": \"\\f71a\",\n \"clipboard-check-fill\": \"\\f71b\",\n \"clipboard-data-fill\": \"\\f71c\",\n \"clipboard-fill\": \"\\f71d\",\n \"clipboard-heart-fill\": \"\\f71e\",\n \"clipboard-heart\": \"\\f71f\",\n \"clipboard-minus-fill\": \"\\f720\",\n \"clipboard-plus-fill\": \"\\f721\",\n \"clipboard-pulse\": \"\\f722\",\n \"clipboard-x-fill\": \"\\f723\",\n \"clipboard2-check-fill\": \"\\f724\",\n \"clipboard2-check\": \"\\f725\",\n \"clipboard2-data-fill\": \"\\f726\",\n \"clipboard2-data\": \"\\f727\",\n \"clipboard2-fill\": \"\\f728\",\n \"clipboard2-heart-fill\": \"\\f729\",\n \"clipboard2-heart\": \"\\f72a\",\n \"clipboard2-minus-fill\": \"\\f72b\",\n \"clipboard2-minus\": \"\\f72c\",\n \"clipboard2-plus-fill\": \"\\f72d\",\n \"clipboard2-plus\": \"\\f72e\",\n \"clipboard2-pulse-fill\": \"\\f72f\",\n \"clipboard2-pulse\": \"\\f730\",\n \"clipboard2-x-fill\": \"\\f731\",\n \"clipboard2-x\": \"\\f732\",\n \"clipboard2\": \"\\f733\",\n \"emoji-kiss-fill\": \"\\f734\",\n \"emoji-kiss\": \"\\f735\",\n \"envelope-heart-fill\": \"\\f736\",\n \"envelope-heart\": \"\\f737\",\n \"envelope-open-heart-fill\": \"\\f738\",\n \"envelope-open-heart\": \"\\f739\",\n \"envelope-paper-fill\": \"\\f73a\",\n \"envelope-paper-heart-fill\": \"\\f73b\",\n \"envelope-paper-heart\": \"\\f73c\",\n \"envelope-paper\": \"\\f73d\",\n \"filetype-aac\": \"\\f73e\",\n \"filetype-ai\": \"\\f73f\",\n \"filetype-bmp\": \"\\f740\",\n \"filetype-cs\": \"\\f741\",\n \"filetype-css\": \"\\f742\",\n \"filetype-csv\": \"\\f743\",\n \"filetype-doc\": \"\\f744\",\n \"filetype-docx\": \"\\f745\",\n \"filetype-exe\": \"\\f746\",\n \"filetype-gif\": \"\\f747\",\n \"filetype-heic\": \"\\f748\",\n \"filetype-html\": \"\\f749\",\n \"filetype-java\": \"\\f74a\",\n \"filetype-jpg\": \"\\f74b\",\n \"filetype-js\": \"\\f74c\",\n \"filetype-jsx\": \"\\f74d\",\n \"filetype-key\": \"\\f74e\",\n \"filetype-m4p\": \"\\f74f\",\n \"filetype-md\": \"\\f750\",\n \"filetype-mdx\": \"\\f751\",\n \"filetype-mov\": \"\\f752\",\n \"filetype-mp3\": \"\\f753\",\n \"filetype-mp4\": \"\\f754\",\n \"filetype-otf\": \"\\f755\",\n \"filetype-pdf\": \"\\f756\",\n \"filetype-php\": \"\\f757\",\n \"filetype-png\": \"\\f758\",\n \"filetype-ppt\": \"\\f75a\",\n \"filetype-psd\": \"\\f75b\",\n \"filetype-py\": \"\\f75c\",\n \"filetype-raw\": \"\\f75d\",\n \"filetype-rb\": \"\\f75e\",\n \"filetype-sass\": \"\\f75f\",\n \"filetype-scss\": \"\\f760\",\n \"filetype-sh\": \"\\f761\",\n \"filetype-svg\": \"\\f762\",\n \"filetype-tiff\": \"\\f763\",\n \"filetype-tsx\": \"\\f764\",\n \"filetype-ttf\": \"\\f765\",\n \"filetype-txt\": \"\\f766\",\n \"filetype-wav\": \"\\f767\",\n \"filetype-woff\": \"\\f768\",\n \"filetype-xls\": \"\\f76a\",\n \"filetype-xml\": \"\\f76b\",\n \"filetype-yml\": \"\\f76c\",\n \"heart-arrow\": \"\\f76d\",\n \"heart-pulse-fill\": \"\\f76e\",\n \"heart-pulse\": \"\\f76f\",\n \"heartbreak-fill\": \"\\f770\",\n \"heartbreak\": \"\\f771\",\n \"hearts\": \"\\f772\",\n \"hospital-fill\": \"\\f773\",\n \"hospital\": \"\\f774\",\n \"house-heart-fill\": \"\\f775\",\n \"house-heart\": \"\\f776\",\n \"incognito\": \"\\f777\",\n \"magnet-fill\": \"\\f778\",\n \"magnet\": \"\\f779\",\n \"person-heart\": \"\\f77a\",\n \"person-hearts\": \"\\f77b\",\n \"phone-flip\": \"\\f77c\",\n \"plugin\": \"\\f77d\",\n \"postage-fill\": \"\\f77e\",\n \"postage-heart-fill\": \"\\f77f\",\n \"postage-heart\": \"\\f780\",\n \"postage\": \"\\f781\",\n \"postcard-fill\": \"\\f782\",\n \"postcard-heart-fill\": \"\\f783\",\n \"postcard-heart\": \"\\f784\",\n \"postcard\": \"\\f785\",\n \"search-heart-fill\": \"\\f786\",\n \"search-heart\": \"\\f787\",\n \"sliders2-vertical\": \"\\f788\",\n \"sliders2\": \"\\f789\",\n \"trash3-fill\": \"\\f78a\",\n \"trash3\": \"\\f78b\",\n \"valentine\": \"\\f78c\",\n \"valentine2\": \"\\f78d\",\n \"wrench-adjustable-circle-fill\": \"\\f78e\",\n \"wrench-adjustable-circle\": \"\\f78f\",\n \"wrench-adjustable\": \"\\f790\",\n \"filetype-json\": \"\\f791\",\n \"filetype-pptx\": \"\\f792\",\n \"filetype-xlsx\": \"\\f793\",\n \"1-circle-fill\": \"\\f796\",\n \"1-circle\": \"\\f797\",\n \"1-square-fill\": \"\\f798\",\n \"1-square\": \"\\f799\",\n \"2-circle-fill\": \"\\f79c\",\n \"2-circle\": \"\\f79d\",\n \"2-square-fill\": \"\\f79e\",\n \"2-square\": \"\\f79f\",\n \"3-circle-fill\": \"\\f7a2\",\n \"3-circle\": \"\\f7a3\",\n \"3-square-fill\": \"\\f7a4\",\n \"3-square\": \"\\f7a5\",\n \"4-circle-fill\": \"\\f7a8\",\n \"4-circle\": \"\\f7a9\",\n \"4-square-fill\": \"\\f7aa\",\n \"4-square\": \"\\f7ab\",\n \"5-circle-fill\": \"\\f7ae\",\n \"5-circle\": \"\\f7af\",\n \"5-square-fill\": \"\\f7b0\",\n \"5-square\": \"\\f7b1\",\n \"6-circle-fill\": \"\\f7b4\",\n \"6-circle\": \"\\f7b5\",\n \"6-square-fill\": \"\\f7b6\",\n \"6-square\": \"\\f7b7\",\n \"7-circle-fill\": \"\\f7ba\",\n \"7-circle\": \"\\f7bb\",\n \"7-square-fill\": \"\\f7bc\",\n \"7-square\": \"\\f7bd\",\n \"8-circle-fill\": \"\\f7c0\",\n \"8-circle\": \"\\f7c1\",\n \"8-square-fill\": \"\\f7c2\",\n \"8-square\": \"\\f7c3\",\n \"9-circle-fill\": \"\\f7c6\",\n \"9-circle\": \"\\f7c7\",\n \"9-square-fill\": \"\\f7c8\",\n \"9-square\": \"\\f7c9\",\n \"airplane-engines-fill\": \"\\f7ca\",\n \"airplane-engines\": \"\\f7cb\",\n \"airplane-fill\": \"\\f7cc\",\n \"airplane\": \"\\f7cd\",\n \"alexa\": \"\\f7ce\",\n \"alipay\": \"\\f7cf\",\n \"android\": \"\\f7d0\",\n \"android2\": \"\\f7d1\",\n \"box-fill\": \"\\f7d2\",\n \"box-seam-fill\": \"\\f7d3\",\n \"browser-chrome\": \"\\f7d4\",\n \"browser-edge\": \"\\f7d5\",\n \"browser-firefox\": \"\\f7d6\",\n \"browser-safari\": \"\\f7d7\",\n \"c-circle-fill\": \"\\f7da\",\n \"c-circle\": \"\\f7db\",\n \"c-square-fill\": \"\\f7dc\",\n \"c-square\": \"\\f7dd\",\n \"capsule-pill\": \"\\f7de\",\n \"capsule\": \"\\f7df\",\n \"car-front-fill\": \"\\f7e0\",\n \"car-front\": \"\\f7e1\",\n \"cassette-fill\": \"\\f7e2\",\n \"cassette\": \"\\f7e3\",\n \"cc-circle-fill\": \"\\f7e6\",\n \"cc-circle\": \"\\f7e7\",\n \"cc-square-fill\": \"\\f7e8\",\n \"cc-square\": \"\\f7e9\",\n \"cup-hot-fill\": \"\\f7ea\",\n \"cup-hot\": \"\\f7eb\",\n \"currency-rupee\": \"\\f7ec\",\n \"dropbox\": \"\\f7ed\",\n \"escape\": \"\\f7ee\",\n \"fast-forward-btn-fill\": \"\\f7ef\",\n \"fast-forward-btn\": \"\\f7f0\",\n \"fast-forward-circle-fill\": \"\\f7f1\",\n \"fast-forward-circle\": \"\\f7f2\",\n \"fast-forward-fill\": \"\\f7f3\",\n \"fast-forward\": \"\\f7f4\",\n \"filetype-sql\": \"\\f7f5\",\n \"fire\": \"\\f7f6\",\n \"google-play\": \"\\f7f7\",\n \"h-circle-fill\": \"\\f7fa\",\n \"h-circle\": \"\\f7fb\",\n \"h-square-fill\": \"\\f7fc\",\n \"h-square\": \"\\f7fd\",\n \"indent\": \"\\f7fe\",\n \"lungs-fill\": \"\\f7ff\",\n \"lungs\": \"\\f800\",\n \"microsoft-teams\": \"\\f801\",\n \"p-circle-fill\": \"\\f804\",\n \"p-circle\": \"\\f805\",\n \"p-square-fill\": \"\\f806\",\n \"p-square\": \"\\f807\",\n \"pass-fill\": \"\\f808\",\n \"pass\": \"\\f809\",\n \"prescription\": \"\\f80a\",\n \"prescription2\": \"\\f80b\",\n \"r-circle-fill\": \"\\f80e\",\n \"r-circle\": \"\\f80f\",\n \"r-square-fill\": \"\\f810\",\n \"r-square\": \"\\f811\",\n \"repeat-1\": \"\\f812\",\n \"repeat\": \"\\f813\",\n \"rewind-btn-fill\": \"\\f814\",\n \"rewind-btn\": \"\\f815\",\n \"rewind-circle-fill\": \"\\f816\",\n \"rewind-circle\": \"\\f817\",\n \"rewind-fill\": \"\\f818\",\n \"rewind\": \"\\f819\",\n \"train-freight-front-fill\": \"\\f81a\",\n \"train-freight-front\": \"\\f81b\",\n \"train-front-fill\": \"\\f81c\",\n \"train-front\": \"\\f81d\",\n \"train-lightrail-front-fill\": \"\\f81e\",\n \"train-lightrail-front\": \"\\f81f\",\n \"truck-front-fill\": \"\\f820\",\n \"truck-front\": \"\\f821\",\n \"ubuntu\": \"\\f822\",\n \"unindent\": \"\\f823\",\n \"unity\": \"\\f824\",\n \"universal-access-circle\": \"\\f825\",\n \"universal-access\": \"\\f826\",\n \"virus\": \"\\f827\",\n \"virus2\": \"\\f828\",\n \"wechat\": \"\\f829\",\n \"yelp\": \"\\f82a\",\n \"sign-stop-fill\": \"\\f82b\",\n \"sign-stop-lights-fill\": \"\\f82c\",\n \"sign-stop-lights\": \"\\f82d\",\n \"sign-stop\": \"\\f82e\",\n \"sign-turn-left-fill\": \"\\f82f\",\n \"sign-turn-left\": \"\\f830\",\n \"sign-turn-right-fill\": \"\\f831\",\n \"sign-turn-right\": \"\\f832\",\n \"sign-turn-slight-left-fill\": \"\\f833\",\n \"sign-turn-slight-left\": \"\\f834\",\n \"sign-turn-slight-right-fill\": \"\\f835\",\n \"sign-turn-slight-right\": \"\\f836\",\n \"sign-yield-fill\": \"\\f837\",\n \"sign-yield\": \"\\f838\",\n \"ev-station-fill\": \"\\f839\",\n \"ev-station\": \"\\f83a\",\n \"fuel-pump-diesel-fill\": \"\\f83b\",\n \"fuel-pump-diesel\": \"\\f83c\",\n \"fuel-pump-fill\": \"\\f83d\",\n \"fuel-pump\": \"\\f83e\",\n \"0-circle-fill\": \"\\f83f\",\n \"0-circle\": \"\\f840\",\n \"0-square-fill\": \"\\f841\",\n \"0-square\": \"\\f842\",\n \"rocket-fill\": \"\\f843\",\n \"rocket-takeoff-fill\": \"\\f844\",\n \"rocket-takeoff\": \"\\f845\",\n \"rocket\": \"\\f846\",\n \"stripe\": \"\\f847\",\n \"subscript\": \"\\f848\",\n \"superscript\": \"\\f849\",\n \"trello\": \"\\f84a\",\n \"envelope-at-fill\": \"\\f84b\",\n \"envelope-at\": \"\\f84c\",\n \"regex\": \"\\f84d\",\n \"text-wrap\": \"\\f84e\",\n \"sign-dead-end-fill\": \"\\f84f\",\n \"sign-dead-end\": \"\\f850\",\n \"sign-do-not-enter-fill\": \"\\f851\",\n \"sign-do-not-enter\": \"\\f852\",\n \"sign-intersection-fill\": \"\\f853\",\n \"sign-intersection-side-fill\": \"\\f854\",\n \"sign-intersection-side\": \"\\f855\",\n \"sign-intersection-t-fill\": \"\\f856\",\n \"sign-intersection-t\": \"\\f857\",\n \"sign-intersection-y-fill\": \"\\f858\",\n \"sign-intersection-y\": \"\\f859\",\n \"sign-intersection\": \"\\f85a\",\n \"sign-merge-left-fill\": \"\\f85b\",\n \"sign-merge-left\": \"\\f85c\",\n \"sign-merge-right-fill\": \"\\f85d\",\n \"sign-merge-right\": \"\\f85e\",\n \"sign-no-left-turn-fill\": \"\\f85f\",\n \"sign-no-left-turn\": \"\\f860\",\n \"sign-no-parking-fill\": \"\\f861\",\n \"sign-no-parking\": \"\\f862\",\n \"sign-no-right-turn-fill\": \"\\f863\",\n \"sign-no-right-turn\": \"\\f864\",\n \"sign-railroad-fill\": \"\\f865\",\n \"sign-railroad\": \"\\f866\",\n \"building-add\": \"\\f867\",\n \"building-check\": \"\\f868\",\n \"building-dash\": \"\\f869\",\n \"building-down\": \"\\f86a\",\n \"building-exclamation\": \"\\f86b\",\n \"building-fill-add\": \"\\f86c\",\n \"building-fill-check\": \"\\f86d\",\n \"building-fill-dash\": \"\\f86e\",\n \"building-fill-down\": \"\\f86f\",\n \"building-fill-exclamation\": \"\\f870\",\n \"building-fill-gear\": \"\\f871\",\n \"building-fill-lock\": \"\\f872\",\n \"building-fill-slash\": \"\\f873\",\n \"building-fill-up\": \"\\f874\",\n \"building-fill-x\": \"\\f875\",\n \"building-fill\": \"\\f876\",\n \"building-gear\": \"\\f877\",\n \"building-lock\": \"\\f878\",\n \"building-slash\": \"\\f879\",\n \"building-up\": \"\\f87a\",\n \"building-x\": \"\\f87b\",\n \"buildings-fill\": \"\\f87c\",\n \"buildings\": \"\\f87d\",\n \"bus-front-fill\": \"\\f87e\",\n \"bus-front\": \"\\f87f\",\n \"ev-front-fill\": \"\\f880\",\n \"ev-front\": \"\\f881\",\n \"globe-americas\": \"\\f882\",\n \"globe-asia-australia\": \"\\f883\",\n \"globe-central-south-asia\": \"\\f884\",\n \"globe-europe-africa\": \"\\f885\",\n \"house-add-fill\": \"\\f886\",\n \"house-add\": \"\\f887\",\n \"house-check-fill\": \"\\f888\",\n \"house-check\": \"\\f889\",\n \"house-dash-fill\": \"\\f88a\",\n \"house-dash\": \"\\f88b\",\n \"house-down-fill\": \"\\f88c\",\n \"house-down\": \"\\f88d\",\n \"house-exclamation-fill\": \"\\f88e\",\n \"house-exclamation\": \"\\f88f\",\n \"house-gear-fill\": \"\\f890\",\n \"house-gear\": \"\\f891\",\n \"house-lock-fill\": \"\\f892\",\n \"house-lock\": \"\\f893\",\n \"house-slash-fill\": \"\\f894\",\n \"house-slash\": \"\\f895\",\n \"house-up-fill\": \"\\f896\",\n \"house-up\": \"\\f897\",\n \"house-x-fill\": \"\\f898\",\n \"house-x\": \"\\f899\",\n \"person-add\": \"\\f89a\",\n \"person-down\": \"\\f89b\",\n \"person-exclamation\": \"\\f89c\",\n \"person-fill-add\": \"\\f89d\",\n \"person-fill-check\": \"\\f89e\",\n \"person-fill-dash\": \"\\f89f\",\n \"person-fill-down\": \"\\f8a0\",\n \"person-fill-exclamation\": \"\\f8a1\",\n \"person-fill-gear\": \"\\f8a2\",\n \"person-fill-lock\": \"\\f8a3\",\n \"person-fill-slash\": \"\\f8a4\",\n \"person-fill-up\": \"\\f8a5\",\n \"person-fill-x\": \"\\f8a6\",\n \"person-gear\": \"\\f8a7\",\n \"person-lock\": \"\\f8a8\",\n \"person-slash\": \"\\f8a9\",\n \"person-up\": \"\\f8aa\",\n \"scooter\": \"\\f8ab\",\n \"taxi-front-fill\": \"\\f8ac\",\n \"taxi-front\": \"\\f8ad\",\n \"amd\": \"\\f8ae\",\n \"database-add\": \"\\f8af\",\n \"database-check\": \"\\f8b0\",\n \"database-dash\": \"\\f8b1\",\n \"database-down\": \"\\f8b2\",\n \"database-exclamation\": \"\\f8b3\",\n \"database-fill-add\": \"\\f8b4\",\n \"database-fill-check\": \"\\f8b5\",\n \"database-fill-dash\": \"\\f8b6\",\n \"database-fill-down\": \"\\f8b7\",\n \"database-fill-exclamation\": \"\\f8b8\",\n \"database-fill-gear\": \"\\f8b9\",\n \"database-fill-lock\": \"\\f8ba\",\n \"database-fill-slash\": \"\\f8bb\",\n \"database-fill-up\": \"\\f8bc\",\n \"database-fill-x\": \"\\f8bd\",\n \"database-fill\": \"\\f8be\",\n \"database-gear\": \"\\f8bf\",\n \"database-lock\": \"\\f8c0\",\n \"database-slash\": \"\\f8c1\",\n \"database-up\": \"\\f8c2\",\n \"database-x\": \"\\f8c3\",\n \"database\": \"\\f8c4\",\n \"houses-fill\": \"\\f8c5\",\n \"houses\": \"\\f8c6\",\n \"nvidia\": \"\\f8c7\",\n \"person-vcard-fill\": \"\\f8c8\",\n \"person-vcard\": \"\\f8c9\",\n \"sina-weibo\": \"\\f8ca\",\n \"tencent-qq\": \"\\f8cb\",\n \"wikipedia\": \"\\f8cc\",\n \"alphabet-uppercase\": \"\\f2a5\",\n \"alphabet\": \"\\f68a\",\n \"amazon\": \"\\f68d\",\n \"arrows-collapse-vertical\": \"\\f690\",\n \"arrows-expand-vertical\": \"\\f695\",\n \"arrows-vertical\": \"\\f698\",\n \"arrows\": \"\\f6a2\",\n \"ban-fill\": \"\\f6a3\",\n \"ban\": \"\\f6b6\",\n \"bing\": \"\\f6c2\",\n \"cake\": \"\\f6e0\",\n \"cake2\": \"\\f6ed\",\n \"cookie\": \"\\f6ee\",\n \"copy\": \"\\f759\",\n \"crosshair\": \"\\f769\",\n \"crosshair2\": \"\\f794\",\n \"emoji-astonished-fill\": \"\\f795\",\n \"emoji-astonished\": \"\\f79a\",\n \"emoji-grimace-fill\": \"\\f79b\",\n \"emoji-grimace\": \"\\f7a0\",\n \"emoji-grin-fill\": \"\\f7a1\",\n \"emoji-grin\": \"\\f7a6\",\n \"emoji-surprise-fill\": \"\\f7a7\",\n \"emoji-surprise\": \"\\f7ac\",\n \"emoji-tear-fill\": \"\\f7ad\",\n \"emoji-tear\": \"\\f7b2\",\n \"envelope-arrow-down-fill\": \"\\f7b3\",\n \"envelope-arrow-down\": \"\\f7b8\",\n \"envelope-arrow-up-fill\": \"\\f7b9\",\n \"envelope-arrow-up\": \"\\f7be\",\n \"feather\": \"\\f7bf\",\n \"feather2\": \"\\f7c4\",\n \"floppy-fill\": \"\\f7c5\",\n \"floppy\": \"\\f7d8\",\n \"floppy2-fill\": \"\\f7d9\",\n \"floppy2\": \"\\f7e4\",\n \"gitlab\": \"\\f7e5\",\n \"highlighter\": \"\\f7f8\",\n \"marker-tip\": \"\\f802\",\n \"nvme-fill\": \"\\f803\",\n \"nvme\": \"\\f80c\",\n \"opencollective\": \"\\f80d\",\n \"pci-card-network\": \"\\f8cd\",\n \"pci-card-sound\": \"\\f8ce\",\n \"radar\": \"\\f8cf\",\n \"send-arrow-down-fill\": \"\\f8d0\",\n \"send-arrow-down\": \"\\f8d1\",\n \"send-arrow-up-fill\": \"\\f8d2\",\n \"send-arrow-up\": \"\\f8d3\",\n \"sim-slash-fill\": \"\\f8d4\",\n \"sim-slash\": \"\\f8d5\",\n \"sourceforge\": \"\\f8d6\",\n \"substack\": \"\\f8d7\",\n \"threads-fill\": \"\\f8d8\",\n \"threads\": \"\\f8d9\",\n \"transparency\": \"\\f8da\",\n \"twitter-x\": \"\\f8db\",\n \"type-h4\": \"\\f8dc\",\n \"type-h5\": \"\\f8dd\",\n \"type-h6\": \"\\f8de\",\n \"backpack-fill\": \"\\f8df\",\n \"backpack\": \"\\f8e0\",\n \"backpack2-fill\": \"\\f8e1\",\n \"backpack2\": \"\\f8e2\",\n \"backpack3-fill\": \"\\f8e3\",\n \"backpack3\": \"\\f8e4\",\n \"backpack4-fill\": \"\\f8e5\",\n \"backpack4\": \"\\f8e6\",\n \"brilliance\": \"\\f8e7\",\n \"cake-fill\": \"\\f8e8\",\n \"cake2-fill\": \"\\f8e9\",\n \"duffle-fill\": \"\\f8ea\",\n \"duffle\": \"\\f8eb\",\n \"exposure\": \"\\f8ec\",\n \"gender-neuter\": \"\\f8ed\",\n \"highlights\": \"\\f8ee\",\n \"luggage-fill\": \"\\f8ef\",\n \"luggage\": \"\\f8f0\",\n \"mailbox-flag\": \"\\f8f1\",\n \"mailbox2-flag\": \"\\f8f2\",\n \"noise-reduction\": \"\\f8f3\",\n \"passport-fill\": \"\\f8f4\",\n \"passport\": \"\\f8f5\",\n \"person-arms-up\": \"\\f8f6\",\n \"person-raised-hand\": \"\\f8f7\",\n \"person-standing-dress\": \"\\f8f8\",\n \"person-standing\": \"\\f8f9\",\n \"person-walking\": \"\\f8fa\",\n \"person-wheelchair\": \"\\f8fb\",\n \"shadows\": \"\\f8fc\",\n \"suitcase-fill\": \"\\f8fd\",\n \"suitcase-lg-fill\": \"\\f8fe\",\n \"suitcase-lg\": \"\\f8ff\",\n \"suitcase\": \"\\f900\",\n \"suitcase2-fill\": \"\\f901\",\n \"suitcase2\": \"\\f902\",\n \"vignette\": \"\\f903\",\n);\n\n@each $icon, $codepoint in $bootstrap-icons-map {\n .bi-#{$icon}::before { content: $codepoint; }\n}\n", "/**\n * Licensed to the .NET Foundation under one or more agreements.\n * The .NET Foundation licenses this file to you under the MIT license.\n */\n\n@use \"mixins\";\n@use \"bootstrap/scss/bootstrap\" with (\n $container-max-widths: (\n xxl: 1768px\n )\n);\n@use \"highlight\";\n@use \"layout\";\n@use \"nav\";\n@use \"toc\";\n@use \"markdown\";\n@use \"search\";\n@use \"dotnet\";\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\n.xref,\n.text-break {\n word-wrap: break-word;\n word-break: break-word;\n}\n\n.divider {\n margin: 0 5px;\n color: #ccc;\n}\n\narticle {\n // For REST API view source link\n span.small.pull-right {\n float: right;\n }\n\n img {\n max-width: 100%;\n height: auto;\n }\n}\n\n.codewrapper {\n position: relative;\n}\n\n.sample-response .response-content {\n max-height: 200px;\n}\n\n@media (width <= 768px) {\n #mobile-indicator {\n display: block;\n }\n\n .mobile-hide {\n display: none;\n }\n\n /* workaround for #hashtag url is no longer needed */\n h1::before,\n h2::before,\n h3::before,\n h4::before {\n content: \"\";\n display: none;\n }\n}\n\n@media print {\n @page {\n margin: .4in;\n }\n}\n\n.pdftoc {\n ul {\n list-style: none;\n }\n\n a {\n display: flex;\n text-decoration: none;\n color: var(--bs-body-color);\n\n .spacer {\n flex: 1;\n border-bottom: 1px dashed var(--bs-body-color);\n margin: .4em;\n }\n }\n}\n\n@view-transition {\n navigation: auto;\n}\n\n@media (prefers-reduced-motion) {\n @view-transition {\n navigation: none;\n }\n}\n", "/**\n * Licensed to the .NET Foundation under one or more agreements.\n * The .NET Foundation licenses this file to you under the MIT license.\n */\n\n@mixin adjust-icon {\n font-family: bootstrap-icons;\n position: relative;\n margin-right: 0.5em;\n top: 0.2em;\n font-size: 1.25em;\n font-weight: normal;\n }\n\n @mixin underline-on-hover {\n text-decoration: none;\n\n &:hover, &:focus {\n text-decoration: underline;\n }\n }\n", "@mixin bsBanner($file) {\n /*!\n * Bootstrap #{$file} v5.3.3 (https://getbootstrap.com/)\n * Copyright 2011-2024 The Bootstrap Authors\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n}\n", ":root,\n[data-bs-theme=\"light\"] {\n // Note: Custom variable values only support SassScript inside `#{}`.\n\n // Colors\n //\n // Generate palettes for full colors, grays, and theme colors.\n\n @each $color, $value in $colors {\n --#{$prefix}#{$color}: #{$value};\n }\n\n @each $color, $value in $grays {\n --#{$prefix}gray-#{$color}: #{$value};\n }\n\n @each $color, $value in $theme-colors {\n --#{$prefix}#{$color}: #{$value};\n }\n\n @each $color, $value in $theme-colors-rgb {\n --#{$prefix}#{$color}-rgb: #{$value};\n }\n\n @each $color, $value in $theme-colors-text {\n --#{$prefix}#{$color}-text-emphasis: #{$value};\n }\n\n @each $color, $value in $theme-colors-bg-subtle {\n --#{$prefix}#{$color}-bg-subtle: #{$value};\n }\n\n @each $color, $value in $theme-colors-border-subtle {\n --#{$prefix}#{$color}-border-subtle: #{$value};\n }\n\n --#{$prefix}white-rgb: #{to-rgb($white)};\n --#{$prefix}black-rgb: #{to-rgb($black)};\n\n // Fonts\n\n // Note: Use `inspect` for lists so that quoted items keep the quotes.\n // See https://github.com/sass/sass/issues/2383#issuecomment-336349172\n --#{$prefix}font-sans-serif: #{inspect($font-family-sans-serif)};\n --#{$prefix}font-monospace: #{inspect($font-family-monospace)};\n --#{$prefix}gradient: #{$gradient};\n\n // Root and body\n // scss-docs-start root-body-variables\n @if $font-size-root != null {\n --#{$prefix}root-font-size: #{$font-size-root};\n }\n --#{$prefix}body-font-family: #{inspect($font-family-base)};\n @include rfs($font-size-base, --#{$prefix}body-font-size);\n --#{$prefix}body-font-weight: #{$font-weight-base};\n --#{$prefix}body-line-height: #{$line-height-base};\n @if $body-text-align != null {\n --#{$prefix}body-text-align: #{$body-text-align};\n }\n\n --#{$prefix}body-color: #{$body-color};\n --#{$prefix}body-color-rgb: #{to-rgb($body-color)};\n --#{$prefix}body-bg: #{$body-bg};\n --#{$prefix}body-bg-rgb: #{to-rgb($body-bg)};\n\n --#{$prefix}emphasis-color: #{$body-emphasis-color};\n --#{$prefix}emphasis-color-rgb: #{to-rgb($body-emphasis-color)};\n\n --#{$prefix}secondary-color: #{$body-secondary-color};\n --#{$prefix}secondary-color-rgb: #{to-rgb($body-secondary-color)};\n --#{$prefix}secondary-bg: #{$body-secondary-bg};\n --#{$prefix}secondary-bg-rgb: #{to-rgb($body-secondary-bg)};\n\n --#{$prefix}tertiary-color: #{$body-tertiary-color};\n --#{$prefix}tertiary-color-rgb: #{to-rgb($body-tertiary-color)};\n --#{$prefix}tertiary-bg: #{$body-tertiary-bg};\n --#{$prefix}tertiary-bg-rgb: #{to-rgb($body-tertiary-bg)};\n // scss-docs-end root-body-variables\n\n --#{$prefix}heading-color: #{$headings-color};\n\n --#{$prefix}link-color: #{$link-color};\n --#{$prefix}link-color-rgb: #{to-rgb($link-color)};\n --#{$prefix}link-decoration: #{$link-decoration};\n\n --#{$prefix}link-hover-color: #{$link-hover-color};\n --#{$prefix}link-hover-color-rgb: #{to-rgb($link-hover-color)};\n\n @if $link-hover-decoration != null {\n --#{$prefix}link-hover-decoration: #{$link-hover-decoration};\n }\n\n --#{$prefix}code-color: #{$code-color};\n --#{$prefix}highlight-color: #{$mark-color};\n --#{$prefix}highlight-bg: #{$mark-bg};\n\n // scss-docs-start root-border-var\n --#{$prefix}border-width: #{$border-width};\n --#{$prefix}border-style: #{$border-style};\n --#{$prefix}border-color: #{$border-color};\n --#{$prefix}border-color-translucent: #{$border-color-translucent};\n\n --#{$prefix}border-radius: #{$border-radius};\n --#{$prefix}border-radius-sm: #{$border-radius-sm};\n --#{$prefix}border-radius-lg: #{$border-radius-lg};\n --#{$prefix}border-radius-xl: #{$border-radius-xl};\n --#{$prefix}border-radius-xxl: #{$border-radius-xxl};\n --#{$prefix}border-radius-2xl: var(--#{$prefix}border-radius-xxl); // Deprecated in v5.3.0 for consistency\n --#{$prefix}border-radius-pill: #{$border-radius-pill};\n // scss-docs-end root-border-var\n\n --#{$prefix}box-shadow: #{$box-shadow};\n --#{$prefix}box-shadow-sm: #{$box-shadow-sm};\n --#{$prefix}box-shadow-lg: #{$box-shadow-lg};\n --#{$prefix}box-shadow-inset: #{$box-shadow-inset};\n\n // Focus styles\n // scss-docs-start root-focus-variables\n --#{$prefix}focus-ring-width: #{$focus-ring-width};\n --#{$prefix}focus-ring-opacity: #{$focus-ring-opacity};\n --#{$prefix}focus-ring-color: #{$focus-ring-color};\n // scss-docs-end root-focus-variables\n\n // scss-docs-start root-form-validation-variables\n --#{$prefix}form-valid-color: #{$form-valid-color};\n --#{$prefix}form-valid-border-color: #{$form-valid-border-color};\n --#{$prefix}form-invalid-color: #{$form-invalid-color};\n --#{$prefix}form-invalid-border-color: #{$form-invalid-border-color};\n // scss-docs-end root-form-validation-variables\n}\n\n@if $enable-dark-mode {\n @include color-mode(dark, true) {\n color-scheme: dark;\n\n // scss-docs-start root-dark-mode-vars\n --#{$prefix}body-color: #{$body-color-dark};\n --#{$prefix}body-color-rgb: #{to-rgb($body-color-dark)};\n --#{$prefix}body-bg: #{$body-bg-dark};\n --#{$prefix}body-bg-rgb: #{to-rgb($body-bg-dark)};\n\n --#{$prefix}emphasis-color: #{$body-emphasis-color-dark};\n --#{$prefix}emphasis-color-rgb: #{to-rgb($body-emphasis-color-dark)};\n\n --#{$prefix}secondary-color: #{$body-secondary-color-dark};\n --#{$prefix}secondary-color-rgb: #{to-rgb($body-secondary-color-dark)};\n --#{$prefix}secondary-bg: #{$body-secondary-bg-dark};\n --#{$prefix}secondary-bg-rgb: #{to-rgb($body-secondary-bg-dark)};\n\n --#{$prefix}tertiary-color: #{$body-tertiary-color-dark};\n --#{$prefix}tertiary-color-rgb: #{to-rgb($body-tertiary-color-dark)};\n --#{$prefix}tertiary-bg: #{$body-tertiary-bg-dark};\n --#{$prefix}tertiary-bg-rgb: #{to-rgb($body-tertiary-bg-dark)};\n\n @each $color, $value in $theme-colors-text-dark {\n --#{$prefix}#{$color}-text-emphasis: #{$value};\n }\n\n @each $color, $value in $theme-colors-bg-subtle-dark {\n --#{$prefix}#{$color}-bg-subtle: #{$value};\n }\n\n @each $color, $value in $theme-colors-border-subtle-dark {\n --#{$prefix}#{$color}-border-subtle: #{$value};\n }\n\n --#{$prefix}heading-color: #{$headings-color-dark};\n\n --#{$prefix}link-color: #{$link-color-dark};\n --#{$prefix}link-hover-color: #{$link-hover-color-dark};\n --#{$prefix}link-color-rgb: #{to-rgb($link-color-dark)};\n --#{$prefix}link-hover-color-rgb: #{to-rgb($link-hover-color-dark)};\n\n --#{$prefix}code-color: #{$code-color-dark};\n --#{$prefix}highlight-color: #{$mark-color-dark};\n --#{$prefix}highlight-bg: #{$mark-bg-dark};\n\n --#{$prefix}border-color: #{$border-color-dark};\n --#{$prefix}border-color-translucent: #{$border-color-translucent-dark};\n\n --#{$prefix}form-valid-color: #{$form-valid-color-dark};\n --#{$prefix}form-valid-border-color: #{$form-valid-border-color-dark};\n --#{$prefix}form-invalid-color: #{$form-invalid-color-dark};\n --#{$prefix}form-invalid-border-color: #{$form-invalid-border-color-dark};\n // scss-docs-end root-dark-mode-vars\n }\n}\n", "// stylelint-disable scss/dimension-no-non-numeric-values\n\n// SCSS RFS mixin\n//\n// Automated responsive values for font sizes, paddings, margins and much more\n//\n// Licensed under MIT (https://github.com/twbs/rfs/blob/main/LICENSE)\n\n// Configuration\n\n// Base value\n$rfs-base-value: 1.25rem !default;\n$rfs-unit: rem !default;\n\n@if $rfs-unit != rem and $rfs-unit != px {\n @error \"`#{$rfs-unit}` is not a valid unit for $rfs-unit. Use `px` or `rem`.\";\n}\n\n// Breakpoint at where values start decreasing if screen width is smaller\n$rfs-breakpoint: 1200px !default;\n$rfs-breakpoint-unit: px !default;\n\n@if $rfs-breakpoint-unit != px and $rfs-breakpoint-unit != em and $rfs-breakpoint-unit != rem {\n @error \"`#{$rfs-breakpoint-unit}` is not a valid unit for $rfs-breakpoint-unit. Use `px`, `em` or `rem`.\";\n}\n\n// Resize values based on screen height and width\n$rfs-two-dimensional: false !default;\n\n// Factor of decrease\n$rfs-factor: 10 !default;\n\n@if type-of($rfs-factor) != number or $rfs-factor <= 1 {\n @error \"`#{$rfs-factor}` is not a valid $rfs-factor, it must be greater than 1.\";\n}\n\n// Mode. Possibilities: \"min-media-query\", \"max-media-query\"\n$rfs-mode: min-media-query !default;\n\n// Generate enable or disable classes. Possibilities: false, \"enable\" or \"disable\"\n$rfs-class: false !default;\n\n// 1 rem = $rfs-rem-value px\n$rfs-rem-value: 16 !default;\n\n// Safari iframe resize bug: https://github.com/twbs/rfs/issues/14\n$rfs-safari-iframe-resize-bug-fix: false !default;\n\n// Disable RFS by setting $enable-rfs to false\n$enable-rfs: true !default;\n\n// Cache $rfs-base-value unit\n$rfs-base-value-unit: unit($rfs-base-value);\n\n@function divide($dividend, $divisor, $precision: 10) {\n $sign: if($dividend > 0 and $divisor > 0 or $dividend < 0 and $divisor < 0, 1, -1);\n $dividend: abs($dividend);\n $divisor: abs($divisor);\n @if $dividend == 0 {\n @return 0;\n }\n @if $divisor == 0 {\n @error \"Cannot divide by 0\";\n }\n $remainder: $dividend;\n $result: 0;\n $factor: 10;\n @while ($remainder > 0 and $precision >= 0) {\n $quotient: 0;\n @while ($remainder >= $divisor) {\n $remainder: $remainder - $divisor;\n $quotient: $quotient + 1;\n }\n $result: $result * 10 + $quotient;\n $factor: $factor * .1;\n $remainder: $remainder * 10;\n $precision: $precision - 1;\n @if ($precision < 0 and $remainder >= $divisor * 5) {\n $result: $result + 1;\n }\n }\n $result: $result * $factor * $sign;\n $dividend-unit: unit($dividend);\n $divisor-unit: unit($divisor);\n $unit-map: (\n \"px\": 1px,\n \"rem\": 1rem,\n \"em\": 1em,\n \"%\": 1%\n );\n @if ($dividend-unit != $divisor-unit and map-has-key($unit-map, $dividend-unit)) {\n $result: $result * map-get($unit-map, $dividend-unit);\n }\n @return $result;\n}\n\n// Remove px-unit from $rfs-base-value for calculations\n@if $rfs-base-value-unit == px {\n $rfs-base-value: divide($rfs-base-value, $rfs-base-value * 0 + 1);\n}\n@else if $rfs-base-value-unit == rem {\n $rfs-base-value: divide($rfs-base-value, divide($rfs-base-value * 0 + 1, $rfs-rem-value));\n}\n\n// Cache $rfs-breakpoint unit to prevent multiple calls\n$rfs-breakpoint-unit-cache: unit($rfs-breakpoint);\n\n// Remove unit from $rfs-breakpoint for calculations\n@if $rfs-breakpoint-unit-cache == px {\n $rfs-breakpoint: divide($rfs-breakpoint, $rfs-breakpoint * 0 + 1);\n}\n@else if $rfs-breakpoint-unit-cache == rem or $rfs-breakpoint-unit-cache == \"em\" {\n $rfs-breakpoint: divide($rfs-breakpoint, divide($rfs-breakpoint * 0 + 1, $rfs-rem-value));\n}\n\n// Calculate the media query value\n$rfs-mq-value: if($rfs-breakpoint-unit == px, #{$rfs-breakpoint}px, #{divide($rfs-breakpoint, $rfs-rem-value)}#{$rfs-breakpoint-unit});\n$rfs-mq-property-width: if($rfs-mode == max-media-query, max-width, min-width);\n$rfs-mq-property-height: if($rfs-mode == max-media-query, max-height, min-height);\n\n// Internal mixin used to determine which media query needs to be used\n@mixin _rfs-media-query {\n @if $rfs-two-dimensional {\n @if $rfs-mode == max-media-query {\n @media (#{$rfs-mq-property-width}: #{$rfs-mq-value}), (#{$rfs-mq-property-height}: #{$rfs-mq-value}) {\n @content;\n }\n }\n @else {\n @media (#{$rfs-mq-property-width}: #{$rfs-mq-value}) and (#{$rfs-mq-property-height}: #{$rfs-mq-value}) {\n @content;\n }\n }\n }\n @else {\n @media (#{$rfs-mq-property-width}: #{$rfs-mq-value}) {\n @content;\n }\n }\n}\n\n// Internal mixin that adds disable classes to the selector if needed.\n@mixin _rfs-rule {\n @if $rfs-class == disable and $rfs-mode == max-media-query {\n // Adding an extra class increases specificity, which prevents the media query to override the property\n &,\n .disable-rfs &,\n &.disable-rfs {\n @content;\n }\n }\n @else if $rfs-class == enable and $rfs-mode == min-media-query {\n .enable-rfs &,\n &.enable-rfs {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Internal mixin that adds enable classes to the selector if needed.\n@mixin _rfs-media-query-rule {\n\n @if $rfs-class == enable {\n @if $rfs-mode == min-media-query {\n @content;\n }\n\n @include _rfs-media-query () {\n .enable-rfs &,\n &.enable-rfs {\n @content;\n }\n }\n }\n @else {\n @if $rfs-class == disable and $rfs-mode == min-media-query {\n .disable-rfs &,\n &.disable-rfs {\n @content;\n }\n }\n @include _rfs-media-query () {\n @content;\n }\n }\n}\n\n// Helper function to get the formatted non-responsive value\n@function rfs-value($values) {\n // Convert to list\n $values: if(type-of($values) != list, ($values,), $values);\n\n $val: \"\";\n\n // Loop over each value and calculate value\n @each $value in $values {\n @if $value == 0 {\n $val: $val + \" 0\";\n }\n @else {\n // Cache $value unit\n $unit: if(type-of($value) == \"number\", unit($value), false);\n\n @if $unit == px {\n // Convert to rem if needed\n $val: $val + \" \" + if($rfs-unit == rem, #{divide($value, $value * 0 + $rfs-rem-value)}rem, $value);\n }\n @else if $unit == rem {\n // Convert to px if needed\n $val: $val + \" \" + if($rfs-unit == px, #{divide($value, $value * 0 + 1) * $rfs-rem-value}px, $value);\n } @else {\n // If $value isn't a number (like inherit) or $value has a unit (not px or rem, like 1.5em) or $ is 0, just print the value\n $val: $val + \" \" + $value;\n }\n }\n }\n\n // Remove first space\n @return unquote(str-slice($val, 2));\n}\n\n// Helper function to get the responsive value calculated by RFS\n@function rfs-fluid-value($values) {\n // Convert to list\n $values: if(type-of($values) != list, ($values,), $values);\n\n $val: \"\";\n\n // Loop over each value and calculate value\n @each $value in $values {\n @if $value == 0 {\n $val: $val + \" 0\";\n } @else {\n // Cache $value unit\n $unit: if(type-of($value) == \"number\", unit($value), false);\n\n // If $value isn't a number (like inherit) or $value has a unit (not px or rem, like 1.5em) or $ is 0, just print the value\n @if not $unit or $unit != px and $unit != rem {\n $val: $val + \" \" + $value;\n } @else {\n // Remove unit from $value for calculations\n $value: divide($value, $value * 0 + if($unit == px, 1, divide(1, $rfs-rem-value)));\n\n // Only add the media query if the value is greater than the minimum value\n @if abs($value) <= $rfs-base-value or not $enable-rfs {\n $val: $val + \" \" + if($rfs-unit == rem, #{divide($value, $rfs-rem-value)}rem, #{$value}px);\n }\n @else {\n // Calculate the minimum value\n $value-min: $rfs-base-value + divide(abs($value) - $rfs-base-value, $rfs-factor);\n\n // Calculate difference between $value and the minimum value\n $value-diff: abs($value) - $value-min;\n\n // Base value formatting\n $min-width: if($rfs-unit == rem, #{divide($value-min, $rfs-rem-value)}rem, #{$value-min}px);\n\n // Use negative value if needed\n $min-width: if($value < 0, -$min-width, $min-width);\n\n // Use `vmin` if two-dimensional is enabled\n $variable-unit: if($rfs-two-dimensional, vmin, vw);\n\n // Calculate the variable width between 0 and $rfs-breakpoint\n $variable-width: #{divide($value-diff * 100, $rfs-breakpoint)}#{$variable-unit};\n\n // Return the calculated value\n $val: $val + \" calc(\" + $min-width + if($value < 0, \" - \", \" + \") + $variable-width + \")\";\n }\n }\n }\n }\n\n // Remove first space\n @return unquote(str-slice($val, 2));\n}\n\n// RFS mixin\n@mixin rfs($values, $property: font-size) {\n @if $values != null {\n $val: rfs-value($values);\n $fluid-val: rfs-fluid-value($values);\n\n // Do not print the media query if responsive & non-responsive values are the same\n @if $val == $fluid-val {\n #{$property}: $val;\n }\n @else {\n @include _rfs-rule () {\n #{$property}: if($rfs-mode == max-media-query, $val, $fluid-val);\n\n // Include safari iframe resize fix if needed\n min-width: if($rfs-safari-iframe-resize-bug-fix, (0 * 1vw), null);\n }\n\n @include _rfs-media-query-rule () {\n #{$property}: if($rfs-mode == max-media-query, $fluid-val, $val);\n }\n }\n }\n}\n\n// Shorthand helper mixins\n@mixin font-size($value) {\n @include rfs($value);\n}\n\n@mixin padding($value) {\n @include rfs($value, padding);\n}\n\n@mixin padding-top($value) {\n @include rfs($value, padding-top);\n}\n\n@mixin padding-right($value) {\n @include rfs($value, padding-right);\n}\n\n@mixin padding-bottom($value) {\n @include rfs($value, padding-bottom);\n}\n\n@mixin padding-left($value) {\n @include rfs($value, padding-left);\n}\n\n@mixin margin($value) {\n @include rfs($value, margin);\n}\n\n@mixin margin-top($value) {\n @include rfs($value, margin-top);\n}\n\n@mixin margin-right($value) {\n @include rfs($value, margin-right);\n}\n\n@mixin margin-bottom($value) {\n @include rfs($value, margin-bottom);\n}\n\n@mixin margin-left($value) {\n @include rfs($value, margin-left);\n}\n", "// scss-docs-start color-mode-mixin\n@mixin color-mode($mode: light, $root: false) {\n @if $color-mode-type == \"media-query\" {\n @if $root == true {\n @media (prefers-color-scheme: $mode) {\n :root {\n @content;\n }\n }\n } @else {\n @media (prefers-color-scheme: $mode) {\n @content;\n }\n }\n } @else {\n [data-bs-theme=\"#{$mode}\"] {\n @content;\n }\n }\n}\n// scss-docs-end color-mode-mixin\n", "// stylelint-disable declaration-no-important, selector-no-qualifying-type, property-no-vendor-prefix\n\n\n// Reboot\n//\n// Normalization of HTML elements, manually forked from Normalize.css to remove\n// styles targeting irrelevant browsers while applying new styles.\n//\n// Normalize is licensed MIT. https://github.com/necolas/normalize.css\n\n\n// Document\n//\n// Change from `box-sizing: content-box` so that `width` is not affected by `padding` or `border`.\n\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\n\n// Root\n//\n// Ability to the value of the root font sizes, affecting the value of `rem`.\n// null by default, thus nothing is generated.\n\n:root {\n @if $font-size-root != null {\n @include font-size(var(--#{$prefix}root-font-size));\n }\n\n @if $enable-smooth-scroll {\n @media (prefers-reduced-motion: no-preference) {\n scroll-behavior: smooth;\n }\n }\n}\n\n\n// Body\n//\n// 1. Remove the margin in all browsers.\n// 2. As a best practice, apply a default `background-color`.\n// 3. Prevent adjustments of font size after orientation changes in iOS.\n// 4. Change the default tap highlight to be completely transparent in iOS.\n\n// scss-docs-start reboot-body-rules\nbody {\n margin: 0; // 1\n font-family: var(--#{$prefix}body-font-family);\n @include font-size(var(--#{$prefix}body-font-size));\n font-weight: var(--#{$prefix}body-font-weight);\n line-height: var(--#{$prefix}body-line-height);\n color: var(--#{$prefix}body-color);\n text-align: var(--#{$prefix}body-text-align);\n background-color: var(--#{$prefix}body-bg); // 2\n -webkit-text-size-adjust: 100%; // 3\n -webkit-tap-highlight-color: rgba($black, 0); // 4\n}\n// scss-docs-end reboot-body-rules\n\n\n// Content grouping\n//\n// 1. Reset Firefox's gray color\n\nhr {\n margin: $hr-margin-y 0;\n color: $hr-color; // 1\n border: 0;\n border-top: $hr-border-width solid $hr-border-color;\n opacity: $hr-opacity;\n}\n\n\n// Typography\n//\n// 1. Remove top margins from headings\n// By default, `

    `-`

    ` all receive top and bottom margins. We nuke the top\n// margin for easier control within type scales as it avoids margin collapsing.\n\n%heading {\n margin-top: 0; // 1\n margin-bottom: $headings-margin-bottom;\n font-family: $headings-font-family;\n font-style: $headings-font-style;\n font-weight: $headings-font-weight;\n line-height: $headings-line-height;\n color: var(--#{$prefix}heading-color);\n}\n\nh1 {\n @extend %heading;\n @include font-size($h1-font-size);\n}\n\nh2 {\n @extend %heading;\n @include font-size($h2-font-size);\n}\n\nh3 {\n @extend %heading;\n @include font-size($h3-font-size);\n}\n\nh4 {\n @extend %heading;\n @include font-size($h4-font-size);\n}\n\nh5 {\n @extend %heading;\n @include font-size($h5-font-size);\n}\n\nh6 {\n @extend %heading;\n @include font-size($h6-font-size);\n}\n\n\n// Reset margins on paragraphs\n//\n// Similarly, the top margin on `

    `s get reset. However, we also reset the\n// bottom margin to use `rem` units instead of `em`.\n\np {\n margin-top: 0;\n margin-bottom: $paragraph-margin-bottom;\n}\n\n\n// Abbreviations\n//\n// 1. Add the correct text decoration in Chrome, Edge, Opera, and Safari.\n// 2. Add explicit cursor to indicate changed behavior.\n// 3. Prevent the text-decoration to be skipped.\n\nabbr[title] {\n text-decoration: underline dotted; // 1\n cursor: help; // 2\n text-decoration-skip-ink: none; // 3\n}\n\n\n// Address\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\n\n// Lists\n\nol,\nul {\n padding-left: 2rem;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: $dt-font-weight;\n}\n\n// 1. Undo browser default\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0; // 1\n}\n\n\n// Blockquote\n\nblockquote {\n margin: 0 0 1rem;\n}\n\n\n// Strong\n//\n// Add the correct font weight in Chrome, Edge, and Safari\n\nb,\nstrong {\n font-weight: $font-weight-bolder;\n}\n\n\n// Small\n//\n// Add the correct font size in all browsers\n\nsmall {\n @include font-size($small-font-size);\n}\n\n\n// Mark\n\nmark {\n padding: $mark-padding;\n color: var(--#{$prefix}highlight-color);\n background-color: var(--#{$prefix}highlight-bg);\n}\n\n\n// Sub and Sup\n//\n// Prevent `sub` and `sup` elements from affecting the line height in\n// all browsers.\n\nsub,\nsup {\n position: relative;\n @include font-size($sub-sup-font-size);\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub { bottom: -.25em; }\nsup { top: -.5em; }\n\n\n// Links\n\na {\n color: rgba(var(--#{$prefix}link-color-rgb), var(--#{$prefix}link-opacity, 1));\n text-decoration: $link-decoration;\n\n &:hover {\n --#{$prefix}link-color-rgb: var(--#{$prefix}link-hover-color-rgb);\n text-decoration: $link-hover-decoration;\n }\n}\n\n// And undo these styles for placeholder links/named anchors (without href).\n// It would be more straightforward to just use a[href] in previous block, but that\n// causes specificity issues in many other styles that are too complex to fix.\n// See https://github.com/twbs/bootstrap/issues/19402\n\na:not([href]):not([class]) {\n &,\n &:hover {\n color: inherit;\n text-decoration: none;\n }\n}\n\n\n// Code\n\npre,\ncode,\nkbd,\nsamp {\n font-family: $font-family-code;\n @include font-size(1em); // Correct the odd `em` font sizing in all browsers.\n}\n\n// 1. Remove browser default top margin\n// 2. Reset browser default of `1em` to use `rem`s\n// 3. Don't allow content to break outside\n\npre {\n display: block;\n margin-top: 0; // 1\n margin-bottom: 1rem; // 2\n overflow: auto; // 3\n @include font-size($code-font-size);\n color: $pre-color;\n\n // Account for some code outputs that place code tags in pre tags\n code {\n @include font-size(inherit);\n color: inherit;\n word-break: normal;\n }\n}\n\ncode {\n @include font-size($code-font-size);\n color: var(--#{$prefix}code-color);\n word-wrap: break-word;\n\n // Streamline the style when inside anchors to avoid broken underline and more\n a > & {\n color: inherit;\n }\n}\n\nkbd {\n padding: $kbd-padding-y $kbd-padding-x;\n @include font-size($kbd-font-size);\n color: $kbd-color;\n background-color: $kbd-bg;\n @include border-radius($border-radius-sm);\n\n kbd {\n padding: 0;\n @include font-size(1em);\n font-weight: $nested-kbd-font-weight;\n }\n}\n\n\n// Figures\n//\n// Apply a consistent margin strategy (matches our type styles).\n\nfigure {\n margin: 0 0 1rem;\n}\n\n\n// Images and content\n\nimg,\nsvg {\n vertical-align: middle;\n}\n\n\n// Tables\n//\n// Prevent double borders\n\ntable {\n caption-side: bottom;\n border-collapse: collapse;\n}\n\ncaption {\n padding-top: $table-cell-padding-y;\n padding-bottom: $table-cell-padding-y;\n color: $table-caption-color;\n text-align: left;\n}\n\n// 1. Removes font-weight bold by inheriting\n// 2. Matches default `` alignment by inheriting `text-align`.\n// 3. Fix alignment for Safari\n\nth {\n font-weight: $table-th-font-weight; // 1\n text-align: inherit; // 2\n text-align: -webkit-match-parent; // 3\n}\n\nthead,\ntbody,\ntfoot,\ntr,\ntd,\nth {\n border-color: inherit;\n border-style: solid;\n border-width: 0;\n}\n\n\n// Forms\n//\n// 1. Allow labels to use `margin` for spacing.\n\nlabel {\n display: inline-block; // 1\n}\n\n// Remove the default `border-radius` that macOS Chrome adds.\n// See https://github.com/twbs/bootstrap/issues/24093\n\nbutton {\n // stylelint-disable-next-line property-disallowed-list\n border-radius: 0;\n}\n\n// Explicitly remove focus outline in Chromium when it shouldn't be\n// visible (e.g. as result of mouse click or touch tap). It already\n// should be doing this automatically, but seems to currently be\n// confused and applies its very visible two-tone outline anyway.\n\nbutton:focus:not(:focus-visible) {\n outline: 0;\n}\n\n// 1. Remove the margin in Firefox and Safari\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0; // 1\n font-family: inherit;\n @include font-size(inherit);\n line-height: inherit;\n}\n\n// Remove the inheritance of text transform in Firefox\nbutton,\nselect {\n text-transform: none;\n}\n// Set the cursor for non-`

    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�{^k!9J} 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%0A8j=m?XYlZp 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%0DexBdxn7@D)BZfw;s;auoXt*7M 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�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ℑ~Z*PI<0e+&iYR?I%W9v6?Zl69jTVosFlLLtBD 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πd1~AB2ub2Ykx1yaBVxDP?o1~keDkmn4 zZ-<94>P6ZHA#7gmK!MKyRn`7OX$f+jP@XhIu@oUmV!~JxSY|8E5vkue1%n|bu=Oo1 zA$`Ke&Ol0?P{_Z0iFpbLS|Tkv4KDv>ENo1PSHhRVH^S#gj~JyxZjVkN`AfEiG_{p?T1Kl!V-qR5yh5Jt>+7a*W` zyk~ncAUt8KbIr`R@Nqpk#B3{CvlH9CWK^LyDi46GULp#(qK>U6CG^3-A{!y2-gPsG zzKo&6dnD8{Pi#ZCZ-Ij=FNR1{P12vVbRe8^m3XK6q*=mBpahTO*S$= z!3?F=C?oRU$jW{CDlH?;do^T5Lg5|Z7zv+MMo79;)PnOQhs$B={|82a|x7ZC;sLn0>?)_;E@B=X1GteIc#nVVZ%n0 zBf_p^fD9$5>g(_Y5Gy6>Mkmp$SJF#v`=sgT+(}dvYkrq~q= zJAvG~uR$Yb1eFJF0&!jea(!j%i|40yXSlx1OcFS2yIxL?y$NO1u@=d)7I35z=VxzA zYNshtrUX$$GsCl;@J;*du4#_I)T@klN@0dS)uapClcmLx$iYKJH{NFCc%{iwZqU3U zLY0ypcyHK(wA&2Ato?O$VW`?>m`*Gt@+Qe{xp-xfZ3qoT zlx01au+AjAR9MriCKGQzfVgd)77H&Pz4}+)l%Bkq)3zfRbRy4P`LBlFY^32I_n`wq zsCcA+)L{}S^raZ^IZBNb>&fR64TluB1itxgX&sZBhXlV80u=jbgw<43SlZR#6-yXa zWV4p)P7CgZy0fk-oR`^7(bdAzDZ45#)d~;OepJvb>DiXGseWT5%}6`^!m(^&#{tR% z>I0K(3s+vn-SvoTdPLFR@`T@xUU%=JdltVm`m1}}d-Lh`Ugk#iaaJiO)wzY6@#hbC_G?T z%F|A%{b(90rPkCkOBxR%+l!%xU(-_P3YGm~o98)#U6wi`96!@6lsNbjo zyau1A89vE-O&=WU-g5j3`V|o%rrzi)eizGS&?DoY##Q_#$F0UK#jVRNsa>*Jyji)~ z)HK3%F{CB1&iyW1(s9%gD6drRyx5WaQMWpUb|D}{NNR1-UY4J?ZLdu{mg>1#j}UEKbSc8 zD7>fwl#^-%8BaoB+qJjV)>C3YENbS{Rpe(X=shYzF9oK64OW`=p7m3kV29 z^+~8d>w`m;8H49hU|mkA@CTXe@;xl0p8~sU{yf0SFt+Ue0f1eer$*-3?chSREcKHC9>+$ z{4^tO6lE!x$}RtP<=cr(til?^%?h5jx<-_LRNo=NbBAkB*#{zN7g2!849ts2EsiRz zd8V?VH0j#FD#Gn=R-BR~kFY*Dj)?W3H|xsyMI@Rc!GTuX#5Hg3xL`idhA)kKFM#a! zZtf%}Xo|mx+o7838)m_e7%z;8XW105_rt|qY5H5G8~OBt;;!7lWRa8 zxkA#?NZCj2Q+=!=7Xj7~)P+UQqD+KMwI5)p!&O?%^0YE2D{@+Fzu6CXwxQZNP9 zljj$l;i8z+g@?`0B5c|ueN0F|!BGC4a9SM`Lte^F05!7AMb(W7`FR=p%mwX4xRt?A zq69sblD^v!j*GV6580c(W7BZ&%B=@huSKGmLOnT-rdq`|Q-$2f zjt|+8Ny*`DFJ!JmN_Q zSy0Aj0q={{4Ud%!nfU!R?5$mQsMFfC@+38i9%{xAkUBMWdvB-B&J?IBr7HxaTf;(*=}R^Z{z55wsK>rhu9| z>2g16Gb0*dsxoGFhGP~LCCit(|H=@J%!A3%Ql_Rc)k~7XmZBW)Y`B~4B9!$no$V5j z{zWop)1bv|b~tgt{9^7u*!QU?$r3oZo}gN?5A>zk~|Ik5|r(8EHUiHogkJT(x=?&@R;mtHGG zF*2Q-o#*z<>7MB#G;GQ?0-WR;xmn+`C3Th%iT9R_xTJ})#`X#Lb!p}j^)CR0Khp-~ zm|9*a!UbQq_TG$zTL5fakre_oDGkvSJI1p}baO#r%y*xyY&>%BwwTU37w>{Ij)F_XF3zjC?-TsN0=apU9(`d{ z)Zg-x`5kQN(ey!aI3@+ubmQX%ASwl2w-T7i(!SmZz)7Q=0J68^?L6@laaxG*>sDP6tmEvZ zdfpmg>xu$TztvBh&0;2o<{i)Lf7rZwe$Bz{!Jnz=GBtmigbuboOv;?KUnSNOB=8qD zbai|{<^Epn5a{V-KU@Dhin`xtbMDGn_{f_kNZZBcJfGH7odvv?%skMXTJ(D%N|5vrMKj#2bb1vCRf_#FhH2}}Pt zjq2zspr=_`$-khFCsM{a}^eP*e2!p25M@3dg=}e(oTtfZM?%Bk3?lGb?0PM zFswYVe-PiwwO3@L`1acRvppJh6(wDke6LgW#~Um~Cv7 z(D73z=?03FyU3KCp-p;t2lQ3s7HnB-XUCsBD)88h^6Zl=P1GxljQ(hw!&$$_Kj32P zEqOb80HfHI<(Gj+!riO+A*D@FCIk z&k!|u6;`SylmjMWwWCZMsZJK9%bn9;p3HNpv@bnlo?m?R7)i41S`={bEj3azbwrO( zM~JwRI4vAak_Awaxa!I16}Xpw%{QcRG~C(NFWA*WfRw$k!usZpU8!|+BUs2Rt1vO_H>Dy!T?4Pfw{kXKfh z%a7}>+Ngn#+|^^iGEMmaop*TIGY(L6@PMr^Vg59teqV1tCB8(vm*?3`I2 zw5A+OO|2@O@=Yd=J}H{9U#?tSZ9%Ih53**NeoV0pbD3SdMuCo0&UpJEi=6y7r9Uqr zh^7-iJoR8%n-U^i;2^y^t8R%y&> zudrK}w9X0lf09#8du6O_^k}1{@#WK@OO?Y3&RIWGxoc1|)@*5@!F#V^+Qbr+GYeMo z(~D=|v)Ra`H%EvC-b>o~`$A#wlQ0#0v)3K+J|t=KW7MqBQw6M^YuMVM!MF2XYoF+l z_CCw_>DB0Qj_PwLqcYXr=SjKpeQ2^%Q&bxL!=j;fcJWdwT)`-@See@gE8SIe-wmcn z^mAFg)PhGpW-Vn>Yc~i7lnPS{I{Jq26`<16h;;p8|5}&IxKoWH@0U9~$ac*FiEdR@ z#k+FM@ZH3C(7~QbfY7N(j)~XW8cdPMcLIEJ@r%~xBR#Xd+%Ib6(fs-2jX?1RK;v1a zf%PZ2**^Sr$#!muf%A)8Y(Iy^=F+F2FXX~iS@=UM*_2Hd6%+}2G=rM6l1E>LdJhsc zjx;otR*|Y25l`>cdqt5{$7(C5iojpZA9b_n>vhWD4XfQBN^`ceCjCwRNR@AE5gx*Djy2=6CZy)$uS%nb_udP^3&GFCa*X~YbOWDv z%rwUvpK2F%?dSUe+gAPe+lH^X-{*lPsFBMqfP(nxO= zIk_r7{TibQeSQIv*4?Qv@|RUeDADDo1%z5?pbRH0zFTbM^I$0-IXrJ6nJwWeWMJ|d zNqQd-b%V6$zzFZ==mGj5N+upm@QAg)l&_Tk*g}AvBSrp7?j>P+0Yn+%x3S~^Ge_G> zNp)CWkz9Q#|9Voh${LDEs|4EowJmvM6_*wv>|X(*lIx0pbi>a$zc`vFE7wE41oVj+ z`Bbtn-aRH#q-1v%8DBk0sRf?_HN9M|d_IDD(e?MBHTN~Fd9`^u!Ay`Ra?x_}`L(6# z{-kKq$YWmvg8KKhU*|#)S2=q{Cv>T2k6ZZy?Cvhebn9kME|wG9e!UJgeRB|qzHjtW zoVSxNV1nKMsjJlRzPhUMwIY>?2j@e}TV{$29QdtaiR9bSdyZ1{atYcla`fY#N3|+f zQFaOAz!fGx#s0BI17n7}4>Nx^78%iSzyyUA3|$jrWFHRcRc>2flQo z4_R)v#d{zBQ`0ZE+0BN=v!!PzT}hJ0(kNO^y^GK8&Z1(eN<)j0F=yYCr#`M09MQYiY9zJB zog_|*2GY*oyEW9kF88A0zJAixG|bV?QP(^_oYXveCusilHC8r8v)jTJfCr*@ibm6bF`!(r=CcLoVt|bM zN}}=mS655vQiGjZ*_%~=>iLtCbYyJ*cU8f%rArTbTFZJ$R?m#pvt22IdH=q}Gh5NY zW)0SAJGIgA3RbrcjZ?MY${6J@{Pgwst#RTJd|lEKbV9irp0WBBh`fxIZby?VIs1LZ zilp<2RkEbUHPwYRM$s8bS{izI-HtHhNhjhBg80ll3A8bb-_%_Rj>$gK+K%VV$WsSZ+A}^79$c2kkh&Eh7 zKBApb+KQap^w5#>ZqB&ojD>l`3foL!sHEVm$RibI;9Ml*Ok~s0gbz^Dn75}VSTPXJ z%S~=j&>T22q$x9!8^dEDEXb!qO?GIA+tzSNNsn1oqohwzgHn=3G*N@1 z-l%}FkU`9*rZLG(4?$If`YeOEfW)g*(@)-`CpUn`09ge)PDRu9J>>{d2C<7^74hCIJ( zoR^q9zb)N=@+cq)%LKrE)6uYRQpdKU=o4Lt>d~rHQ55FKymH*_L zjc0Xeyp%RNt4{Go%v={Gd2_*qc3hj6fE!c}zaRkYZXImdRAT=xf5 z58<}za`*)i^x_<{0VzKS^aW^@Gsr7TeELdcoXD#vv7HFFP|kF+kZ3aSIRXg37q7bg z&+w<;wX{pVkQeqz8cRZ5c%TO=wmC0pOZ( zG$3It2^UC6^z!sM)QX=erjlR8q>4XT)SJBMYJj>My7d&zp_sq8g5O5YK5^RsL$qkz zNzkOK;aQG#JSn(dRdvYtpf z6xA0b@iWcqg*x^eBiJ0HQKq2eU*F$X_vLNw%xI9+jhscIytkywa4DyT4&vL&p&tEaVm4XZ*h)MHLFI=S@}KB z!w`E|R`^0Rrz?|QO)|NhaL7C7MP}uiV2)!YPd~xEBIAiWMA-75s%2yxtO8eI7M4pK2!jA~PReaUrDX zxpD<_+gaRlKcN(qc~i_S%y$BBVHeA=E^VV&rVx(ZSe85?UW<7W!uJQ{p{2L8A7+!c z#q$RbXdiUn@i%8sg-vIZ(#@IIejrc3jrmiLEqz3ZOYu5cLyA`WIMo#?cx*9WFdL68 z_>d@mD4tQ9#>pDU(Avc$^KJS3=hAPF1UADLIjbOvHuX6Te0IJHP$Pwl9|}5t{H>E+ z+phJ$A0qv-8`cc$!M|8F+Gzw@0+Ql<+}jd)bkYc3erq%s&iM9d{cZmo#>QU>$5eL} zGd674GUqhis(Zk-zH^0r{n85dc$D3<>q6R7U-2s#LH#8E!ehrKo+#wH`3mIfK>pN$ zpX}NNNwLB-d@Q#@x^2Q#MMfb`+4w@y2`+cLt>096#A3z+xpyMJGC|eyS)+%R!o$ok zgl5U`B*FdA*TJ_M?KBas9r7_ExGpZ4uBX!?%B-KI7A0Juq+VmP zYWuXL<*leiWR2FUA%E~jmf|`S3*S)?*>lB@VfSGLp8D%yMjStcQb$j3hn*1xCaYI z@t8*KGejW#gwP;io@@~BfM)Bt18)xV)@4*xK4l2?&8rBQS!6_r$RG*Tt!EG?r&%Ni zHfUUEmICtECEQq1e0A%F;Ga#5j3m(<%Z!YK<;iuciX0539L9To2$Ks56~tP}D!z`L z%hOTWO39%y-%PI1nYs>hIAOU&BG#@-hwH?D6AmQpB^R|Jl?t7B)*>Y#b#$s8nKUK~ zd#5#l8N=lEG=7Y*`^2@0I4W$cvSH0L%`_`}O%ht_6yjYHpu!Ws#60m@x0M%X~%ut>H!*eA5Aa8ts)(hQOeJG5B-XoERw!J5fu z;yjh>qb5YjqgtinJTSYq+Dk34$?@L@dlgIo!+hOPvDwCs(6R0N&pp?68C3-}2NM*< za`FN|JoJVo7W^-AcPo+eJ6L^`M#kn~yOMJau=gzv-#v9amS>K?T80&KoBQPIP_7MAh z07Vj4{}f4lLqZ>@b&?bXc|($tG(9pDL*{|Z@B=k8JBo$Hc>{I@MuRmJ=mF+=1Ex}3 zL9iD#+BPA?J@+gm4)R98P+oCs`6B;_M?WO^hzHR-*wt?cyx9_(C5BCJZV^Yng9r=g zfH`;~@+2)Rm|#!Nbxe)FyrFB27;YPL2G_A*675LBnpng}(Yiu#VNP`kRrwV#`g;e= zf*cx=zCrj3vcEx?#P)Xy@jI?AUmK#nVS{5%c8L?+t}IguEi)Lcf9hN*(GF1Rq<$Xi@Ib zN}c)$lAbX96h@=B`0TUMo#K~Z^E!80FeHD&ZEW%Pj^?7Y$T6z&b15~U*xU16uB+=8-(I|PMEs%8 z8WDFex4M{Xjg3M0JtZ4s$Q#T{bI6+(KZPB9S40J47M{?OYYM;^%roqz3FHm!#{|6a z;O}!nZF_+?#GfmD{GvGch6MR|2(<_`Xud{QCK-OyyGD=vAnt*kG4St6oiP_6{4v8T zZ|=Y`^-tHt*@l3kh#;3e3Fmz011jfy?|2G;*$BM-TmAIB)us}c0Ih|Lu z+baG$%-agS7m*>xV?Ez9GUQ4IXV4R%q1(}L&*==Sz5(_`+1?R(B%k{7Ovi6*w?hkG z%W;hdU(a#P2VcMW3@ou?n<+xE9!21gcrl~^l07_p?&7@9>4^uMQ?vY;G5<+$a9{n= z@ATU3<0k)k4k(Lg(LHiP;Y(7I^DHL+dGB^`zu(E_Z3U>Lcw={P9|M^8jKTFgb>w6i zP#)2QxP$$hf3rq4YFSEtIsy?op}&nKwUE97U6-2wX$^KR`@BfXi{v}t1XoMWCjBMmo0iw&s=%3Ik7XT{) zyd*0Cd;Par1t7?OIMe?!s{mZd31FoFZTfe!%EV63!uZEO{wK4_4v?2@e`F@WtTMCG zb1-rMU?DRjKqWE(Xytz``WLSHmq+_&uFCcQP}S~_H2tUQh+KaT%|CI~e?0*I|3Ot2 zLMBdtP355HWMKvz1ponN25?U{b^rnW<9Gi7HaXb-8EkU>t#sah(s<15tp9}Z^x`G~ z)e%vHp7;m#rf4D9(mrVY8BM>K&Jv_gfs%S8Ku3i$MRa&8%~Lt&T{}$kZ8;UWcz%n5 z7u@bl!h^tURKmw-_XuO$DTLbvr=;tbKS_4F`toz#x|t66XelyT6%FWjj}$|%oqY=> z&raM7NA-*~OYg3_n}l%tA|Nnz7R*reiy|kocK7{dV-Aw#SDr>_xfvs#&C^STn^vws zVy5Z8$|H7)Zf8JA4Pu&rlowlJ3(b`JJ~&-si@z+s71D#NMxx1z?!|HCy<5SdH4}zz;$V&0h{0D6s2%i(=J1)ju!yLoQKZXIu=l`oLqbN7p>H38M5lt6qgq$e^saFagVG|C z(>bU|C>qfN`uxBkfgH75lk&UcCQk(-4XI?21_NJ^23Q%7-S6++o{sExJ)a8pLrKM~ zIk6MAI4!xJZ&$<+VVRhU5jVs7j$(``9-X&4e~;{bY{P@Jx+_NNg1t?3xpKH|t|K5T z_HQo3L*D(yXw_`-Jl_J21uE1567ov~RtAyuJ_i-7+wR{K*nDfhRCzi%CJMg7BdfDC zUHtK>46oQ}m@cn(cW8f=;ZFc&6|QZt32x zpH9bHaFj||yvbFN%G#M-_GbaPW+%sqX8;eVwh5ekgq>y>B8sJ6ID?juHP(g!eAGo5 zWh$^JP#{p?n=s}yi{FO4n9_mcb?J=nTrf4V#HON{KNSn{cW5LPJ2bRP%xx(C&6wmc z5G7SGpbcs>@w~Fc&SMf$Awg9*#LExpt5*;PIx6Z4BKvQc)VNIKsE^p6_LM{jP^fC7 zv-Y;Y^mN#>Tu`cXk7Wq=r1Vjm={n3%V@SUvhIVm%im{%b)fZ_{tDHN5N#`a!`^Z?sj zGr*6Wg05DWc2!ME_*oKld=4nt=1o@U7w14((CGO}vqsZ#=z&*JJ5cGd{ciwCq09L;43PvKkn(|ka==`5jI6Ifbhb5Ul&#J`Rc zv)pDg@}8?G1RTk>0Dlg7Zs z>k4HAuXozZt&U+=qy1p6e8pG<4gR>g8)n39_=Gh?$F|IPJEh{fz*rlVkzh z{I#&>+iUL;*bY_?vR@};4GvI(Ra-7;)EuK7t(T69(T)KLFaNScoSg4llvVU$kp52r zV0&;z{BDKYkW}J>TjCws2uVyg)7M{C-)k(P`M`RNQsuk9*Q)K0?Dc~da)Se5i5nCS zW2IebLkQwmCSF>FCf#k#O_nmP$`nkw!$~(9ypHrw2vmO`i~jXoGBMj=tMLY`tCCH? zJe_xoMfvG~m=DP%c9+dUgLUXED*$Qa{liNPBBJjmIn8dZE$$hn)mhuL^f-buS1HM@Ak0_QvqHn3%si_&;Gd{~?tb7dzmK z(Z4$Q1hL0Yi$iZGtBeLKtBfY7$&6qyBDx@TOPHi$4n&$Ke<)=uOPF8Uxxb1jAN&P7 z{CxD#meE{XmdB~>0202fX3tCvDT!Vmkuuc33Qe`+hjZ5i>CcPuZHv#>-`U>TSqFSh zhnXx+=2MwYTca5mV18jh%#03S&6oNTd^^E%$$+R!QX-$^+dTiG@IO{O%h6v_3}L=x-Q{k=z_62!v@s9=1|?-k>;< zp1|?bFEYuCwBHL~7LNR!hzv)-02ZDY2?ow26u3Dm$X0^?Q5X^$g|`K5CKWDi#!uLv z(uR=WP6Ha)xuBgqcO}qieM-+7Igy`COwqZ`qF%j_pM!?{Q>Rmm0W-#j*PgLDX7p${ zYu(kT3hH$fh}a{Fac}#%l2BnrS(|!uM8FYnNe6)#AKt_cSl-0$0vr0_qcWqyim*Fg zGn#BjkBG91U!%WqzL&kGxJb@H)L~&Cvmsd40UJXt&hey*?B8Q!7bQ_KIBGg6P!SkZ z_JD#TSi?KZk*~JR7OsN!wV1CKeb+x$n0Zu|xbs<@`&8fc{^cQ?aORNM4Ct>8M;|Z| zx&>WQd+A6dfLPHuf*kxME1~yMXHyA=$P#9AbR1FonAW5Zmn$nmEt?bW3n7JjaUg{JRypAbPy&Vzp_ z?Z;&`oavVQz40kUInt*H+uqU+Jq94|l-)C>xtK1R!DJw>vxwP$B>X_%H7`KIf1UMv zy{l|{uyFX)h1PP#T>JFUTmQ>;OBNu^OQ%!PK* z^j|c7B+`?fhHfcBZSm0NlEk>%snGS;rfk9Wp+z@QH4@T%gkH!~*L-uNm1wNdwA2Gg z_yKM7k3+A+FP@Z?eY_Jx!a{Ht(%WpoLuD}4sz}<&CRpVI9_?;cMJqV+TG4~0=u0Xy zGxZeviu9E%3imp+=RDH))kw%}nt`i*Yl|S%yI3yc)c*PmUMBd-_vd@lXFKl@&rApa zu20nWl;A!fcJlCvT;f-_C=6rS$g3nO`W|0BFEq@81!Q7c*phQk@5taItGdAO;=y+h zv<#cjdoAN53Puc6g;gs~l6x|~e82Y;5&c012nALGT8;!ufbwGMj94=C1KvrGL&X@b z7tG0L!8QVGG1uJN2lh7T;wOh-5|oAY`v?pB1LGNiby*S%NwY`a5<^=!2LMy&qobb` z+g6Prao#U+P*9RU$jCqd9-lq=h8nO6%VNk5in(X+$58CXR9r|1E-3{Z`^!m9a7^B~T7lczvCpkN3;(OnFY=5)?r# zTl!~XkCedP047Y#3A=C=i5Lh2*(+mw=D_xA#LFQT8JU-?Mg^(SDRK7LEV$gZO4vWU z$Hsxt3OE>(@}$oO`A17&)`c(agG763s^tKHCQ&$-8HQ1E}0{Q z)JiaW!`>BR0T_ZY+-0waB@?Lcu()h5s->d8rzEqr7&-orK#3XzbKM}E8k8{7Fz?_- zO$xjokIDcfE6M@VgRsglZ#!lV(TsQ$5j1E09?GwK3<#wz}VM_#NX( zD>5ukw=;gI3Ih(pe6{p9>-~?1>o9WE#cP zvPg<^4;j&E-=MG3x#+djR`}syOJN4`MvCBlgfCySJH&R+az_az6x~=>nO%eqGs^a> zJ+o-vP`zYt3EJga7is)rs{Asm8PeX;cmo|BhZ-+M9)IGD__F{(YCKnh8{p>4nGkRs z1oZon_Q-ike_W<~PzuoHEI(eI8qUu21#RymJmWCMljg^IIHGV#@)r*R*gPK}{U(V3 zRd>Z*f4Ftc7q=ZNFNHlx`ZU=p@@~oucq6wDyh&*ZH zRV2%CI3sumO1EI&;~V1tuzAjZu=yh@%F<-*(yZcH*3;baV`&cr@7T+dx0CgInAZZ+ zaBZwxqt*AAr}zbV$gnD3UaWb0OsQTOnmhQp{Of!s$tK%(q+7@JUWf zaZ^c$#~~N?&S{njm&aijF3xqvQ+HC~B}dC_O9=q}WTO+mIi{b-Z{BKtPwvq5k>sb! zS(sSp$a@jRDbp+LRKr>DDZG@rLVi;em5 z(6Qxk7zDrx4YmU0U%<6Rw&R;jl9mK*b4wZ_SWz6%$*Ltq%$n~Z_!Fa%v);eJkH!ti za-ZZBNs)$kP{u5|8>Qe6)Xyn9@-@vX6W(@wxbBgojHqbFIL3?l#A1?i1OFU};~$#T z6x^1eP&Wp>Bw4)G-3YU(gP^#fc#UP1tk>kx%n;NsxjO*5kkA(TMe)*_3QHJIj^7*$ zeFA)8^$MJ9(v2HNGG}mraqRP2$*Rv^kS6@K_RI3VI;|OpapMq8x6Gk1@%(Ngk3GVY zq*fi?lObKQ5jk@$sMJarA#~A=W-#fBJz1JUu@MY@4`>U)WNa<;9b!yH4W?b5nvQ%x zYDE}18z?4JZkyCBzW)$pF^n(qYzdJ~dAxbvkSzA>ZG>@;dMi>xr5jw+4S!05!j82 zpF3M{acY(HskdoAL)RTJE(fn}81aWyR>=Rx<`<+#p?=a!HoLzHk>tc8mL(`4lAblD zqo{iPfENK<6%HmG{q{=#Df|I8zxsZIajO*TOSFBj@)7iIByv&vs9D0dBu}_cA-48A zK_cKz@nCZggOW$;junzHPh0Qku}R2SB7OhPG8XTK^5*-KRG_p@(KqBIb-w{n0Gl6- zo1>ahA(hPDfFGe-CU2E{DXz~dmPb9nIH+ERb~J_9TGjhT#r@Yh<9ZR!XY9b~P4A6CXkM>$f@iglx94 zR;~`B+M=CNpZ|gM_}4b&cH+~u)Q7b<|@t+!UX7IlFq}n)#bMmw>R7T(FC#bc zDLNPib8j$B=ohbR^ItTv^DTL?%cY{%q;5yKNn0sWQ%2qO3U9~vyo~EJ&SHakYtHNa1lo_1*a~Ij0i!M zsdKr+s=W*C|5GGN3S zOXyuW2H9ssgXA zJVJbXhUkV`3(vG`de<3zYyD+-_DH)uaWX*8=K?# zTD(XAIgc616emRG^wyV(c}B=ZX~y4dAIro=HJVPCKSQ0*NW;?JgO`zVGBq_8F*!bQ z$dr~aVq*VX#0%l%q4?8w=L=E=)QvV?h<#year2r_v*AUPMD=tRGe3Pfzx&zy_vYc| zH347O#Vv5Ba=Wz+m(!hX%vLU|agT>$wwM6{Q4KujwSy~%J6T8k`)!sQLXh!2L9TVa5^W$h6lg#L(3CLL#d8DnPX-FDXw6Wzb zi?1&Zi_!r;tu9#~>SsdUp2n5(yKkJakQ@@YLQA`~_7n7&UfKzf3zm`1v7o&E{u}#k z6jIMyChhex2wa{ovGpkkTxW89A+liP31R8}=Mzr6Dyi%x5)e|hGGEFkKSRzOw>=f95$M-+Camk%0a}9=a*!lyeJ-u@>@8?!dp5#k-o=PKRk9##qL9e zj8`6?J2bN&Yf7960(`fKeoDsKKB)cnomLY{ei*AhamSQp!$3*c0D)bDW#G70Us%qY zj=HY?;fxV~z7rg3tA54)7Fr5o^&f_v7NkIAO96j)A74vHVw9(qXtpj7u`e zzt)-Krt)1>^Qo9#UqgM3iPOZ)mCF1kh+RzS;-nm%Ia4W8r_^aD34EKJ{7-nY%U-a; z2&Qh0zhB=vcQ*9RVH?GM@mF@e6DD?QH@)ju?%sU_qa*z}#Y9X`Kg{s0yR)L+MpQP# zd7cC3m(%pdM|)LE)m^X1bnNt~HG)T#{<31X%}IRQU<5jSsz9~tWoG&++Ezue0!X$UX7GJtV^VOG>jq2pFy>K{%2*y<9!T z+wv317n3Qe%T%QonP|R(7A28kofJ}0*R3e&qNK$|7mt)0OE{>CbF0>yNTD#rkb~qM z&c(^0dYFiNl%?-cQmG~2k$FLsAJ9H%R3wml%E-{Vwlk3EkqxRvuTtZReT@Y0dd*U$ z#=&y=Ql-P2#U1t{DsQ))$J{@>KKQFdqi?ZB(mQ_@$W=8RcXS;4*l1`g)=J|>_7yfGL zr5ENov@YbX@|oAKxJ8-DTn0)cxMI<3J@3-p`Nd$WvRdElD8A1qQRtF>t~tM04wXS9Vi5&;vgXZuD16S zH6c4D*}VP&v5kIj=qlc(_bu}rt`TjbiM2oBOwM!^n>6$9kJV{yujubwptmx6n4F-vO|GpVESS=h^f(_R-LQX~fvEF|}2(@i7Z9zyk+&GnGE*;UJps{QM1Tjc_&DyYhIIq)eeE zo)iQAh*PR3NBP#Le3W3xU2_5<8O)~_FaFCctP>Ml6Kc>OOz>v1xy(BVbwjK0g9l$4 zW>b!3evlOL&_;xI$hg4p-g^u2?|0{0!z#UmY-}P9?-_yK4_iuH#)dBR}P*!-G9Zd z?DD&=K&P1|;#;daTWXr9)h7I5>+*H6`m2grigeYXqSqiGbfgDqj-kCz8k7Z;1=lr1 z?_wG)31Vpcr|vzNg1DIyKg!Kqw1X^e|E88!RB+@g@D$}%5iBcD7UUU!%Br+Qg} z!N*q@_Z!q|y|PCKDo6zE%ja$?Q4gpaoG?sYL+r&(;$3x0FVNGCuF19RLrfpF@;WC; zO1aWHnZQcDEITEP*9|^mpRPkcW5>t?V18w1{PAjOwSC+QcJ&vvQ`N>P2Q_%L{SM)8 zmC7CUBIpMkr$7Q+YA-BvK}r4T3xk*ZBHXA+iJlkKF1No*qY@IObCk8pN=@sQZJQ~} z&Fhw{CT=S5LvoIyr1BnQ(|3PWJVF+GTu?tZX{qY9YNYK~J6s=>JNhDMqo9_3M~f*xNwN*mW1=!atzGnq=%0#W zjBfTSV4f54N0JA~`pmsEWsKGgYUimOsy&?}c&M|%(mljH`BU`Sug8k#$8D-?{`TDRY0$u-=ErIm!gYA!M+&XsvIfC(>Ivkgaa{2w?}p zTOpRRmacAYFOkC~zH-FWefN(qAfqRuDP|PeL&#tTS0x2^iTD2&@2?jRf>mFrikMoc zTA8FgOIc)`kr=M0Oudz?{Ib2JT)soCOnq9YY6Do-%cbl)x>mU&8w6TpTA36tghZ0& zpv@d0WiDAGWo{~ME}J-!N|shD#cWbx8mvCzAiXKJ+8B@3PRcU%C0c@+V;d0fDSddj zF1pC(;>breI0fEijpM`XqIY)nmKX z-}ec1G7jP^Hwv;-<`}V8m9^`gQt2qk*p8;_!B2+i!q*?|cNN#*lbY_92Q7JI8}OjN z4U?`#ORq(fHQ;Hh&IM=+Bjm^7514x(BFqOUo(KV0Jymf8fYk^6VfAqURv#FGKS1h% z2w?T~drjacALbfyKN;fytUdsXy)EWLZvnvS#ePG0i!D^oYs5n1Y|0pXlW)vp4DW)T zSvJhC?h`c-A@>Hyer-+$c3@Y>lyUpfBko3&a48H7_&}U7%xCphMBRjB+-4gNzv}23 zp?c$cKKMnk@3Sa=7(^~u}gP5Gj zg6ER1XOdDyHH3?4ULXa=yllJe@Of9z3lZEm0wC70-QtHZB==G0o++&=iJ~}Shj64! z_^mpES=*!vl30u5#SyH$vJdo~0mRknVt(R|G;XM~@CIv6QvqAAa8?Q%GFCk3z}+o-3*%&yq3^>3P2EdH0HO{;#}8bTT^9%*?T~hU8xG zyvNu$EtepT89q&!CqtCYfC6U(Q`0%V(n8OgoXa19m~D{Y7~kuU@z0Ar?O*eG3p{fN zmC_;nQlVoMh%2*-a$?yTev?c)qE&HDP2-`SFN|-`dg&FRr#Toq% z#fJoM>;4BH=F4|YePE6R%4Q%qqX7||MkKAJ7#F)Wr{BG)D(|gUB-QI(+UO*W)Adf8 zvPjdP){Nd}J^CKg*d#~c*Qw6#nw}DKWz)ZX)Iz!zx>D5~-AGphEiM=8Am^<}o{hPVx(vJi3$QWrnN3Cs ze<=lz4fv9^%?nZ4ZpSqIy5iX#yW1B$n=D%#Q#5J3GNH7FwP1yeWE9fIZ0F5R?rPh7 z+dz7ml&bnOo3;<`2zq^j5{{FC2MF&%{p#gYGrmO;g6W*hwikog8|@qVO7%lU^p-G3 zNfEnA<@}Nskgoz|k;!s&#Ac_L)QOYo3s=S5{-ln#uxk61#9wu>#>OHRbltQRhl@+O zE}7LhPQKcq5V^fB=r&7pfI*FQ3iWYXWd#WsTY(bQo?X^lzs9?`J$p$?>ng>nB64uE z+sTer`;9R=f9l4+?);8e@EkAp$OsX5Q2iv%Nhh-(dc}AdTln0KFaN)p4n*SH#2dwKHm2lnDoDV0(ME}8Uv zXE}2}amiFbh^pi3wEBs$rYNyvJ&)P%sZLB3RRZ)Cx^jY^b0dji*dSfn8 zlP_ql@D?$@+8kS|aI35KC zY#Odo1@Qi$Y*t|73|B2EkgQ>bW`X9C2{r`$Lo3NheGabRJUQzijB)&cQrQGg%$|d` z+90}c?mJnYoi||UzkLn>JW9Gl|;^aPlBGrP-?#k$QDB2I}-*YUI7;+R_?gN7^J`cOkDy0h(T`mvjjFl zoTTpw#B>F&4K)%Vg0DTNxEH~FgSt5$_7Mhot-X^J<>f(OL0lc_MZ}qI(!!(YZzd{60cvm16|Oo;0}Lj#0YDE7EX#hxwq!juE@{90!#!#v2Yn zysla)RO#Frl_?^F1v7@}oR$0wCz8pkm2BTHz_pJD|N$nD0|Ra+U9x

    t6H2fQG!EIIOsYa0dQy$cUuHAh4ZoY|8tF>!_Jow|ZOxoTDtW z*Fg|G0bsEB^er$mx97s@Ua{v3G9Xo^jdt)RfA9CjMTeBsJ$12 z|Jo4`N5|@#gE^_;^+~vq6D4+a7m>7D2hJ)rFxiqh$9a!A3p`CWJYoHldZ)nWj;K2A z(Ah2LyK0lcj?T5LJUyn1bq#oDG1!zL3>DOnqEUuCQKhKJT&g}EqfD`oeWGrKEiWyy>{QSOispxOi(g_zaqa0g>hjA*@g`$Y8O>l@eij!S97vC&z)@Kg}DTD>mB zDOm(WtwyLqRKFM`YzQjwT?_f2UKMV8_zPrmiyfQVZ5AD;3SvKday6}WgrFF=oWw2W z0=-=wK3;L5Bks!XAcc_~qG?o!0EWA=4tZMbM0pXzsfHFzUz@?4jO#_Sbk7n2I$~jt z$(5HIRsXG&v~b5r40$I-iaN7jmQ$kOo@`7@m>JSDsLw9>luZGcPIsU1RuH01h=d77 z%f9T-6|u$_9@B_WA`>Ihg%I_m?xN6i5;3MW8=(>hjrMpGD-O+t_7cmM#Wvayz)QDz z0*qA>kwf<-G_hzdHfu_bJ?W&@T?9=q++{>fw{-40^-qNd&nC<#?FoGPOUDZKiig{s zMLGC-Zm5s|eddnm4Vm&zL334SLKHP|e&k587t@LuI0Op|j4{^Y^mGnqRY(XAS-c|) zOY?GZMgOYSXP8llFLCCE3<&Tjl@g#N2ze34(*!0mhH>l|G{+M^7BZk(*^!+tO?2rg z4ZKOqtAc(d)6~`QtQAnf5@OdZhag#!Ro?886IYk7F%e4pCR{!b!yj=M$yqu8uGcNE z(YJkNfvuoHN`Hc(Lw-&UPYx7=tdSYUFYFAM@_5tZha(j2!qMsW8f`xdZtAFM&zt}xp!8$y&5^%mmPc?lH>UN)%!V{ z^E~02c|n>wl6NJI+YJER4aMRpthwH}t3~C!j5$IScj^+H$;pvMn<-i1 z@edc%-$6_x2-+ut&NW;N7e=vG)yga(0DQYzV$J~L z>T0(~MEraqP#@KX9vRQd^Ha?2Zf=&D?T1+e{%CJ}J#SfF3m>RLO&(TXUO^5m@Frc3>!h@GE2F ztWm-zk`IxTAH&FQ5~Z~SuWtJ*X$|HPXT?9gAo&-v6bF>DjH`u@KL12E+LYuBEda5~ z!#R#0ula6GPa8n6f!O>(utEPjf^D~7zbj%G zbBs5$VNK}Tf6c)Y3?mSDP~VRcL;b7ChJiDak?Bg~y|SU4=Y=X!6?pP(qSiuKFibw9 ztMqs=eZHiGZ7Ld$*DG>>nx0L{%Ia$B=5x2LZS(s(L=*C*KTC-^z4rZEXp_!$H@BSC zS_^Mq!(%0iAB4NxQ7j$w3~KQHNkOS&R2~9lY(44C4N0nuh1Ak3ov&7Jf!T-WRgb4*oj%MB6mNq%QLOgmwTZDt-$o7hjvk&~P|>t*CeL4z(cxc=(%V#rU$=ww zZM`&mkXG=-@~yUZztTo}8}KVtS7~A4>2-BVqo7@{Pb!XRKZLR_c0L>!?5x!6X2I^Q zNTIJEl2&bg3lbm}r?ynew(z2HnT*x}dF|`{@0Y`?kjG zq}?OyD$Y-UOf51}wW{l33a@a+DgK8PFsOW#*-ontQQnw@QvrOFiDksaPHBQtrov<`S~=P>0x7e)-8n{G69xJ{OftY$XU3>_uv@DCSi$Fad{8n=tQfQ<&x@Dm69D?53 z7SM6qMG7I!5*`;=vsU-svK({7|4wN}`;8tN~a>JR;pTZfx zCKF3#0PcO;3(VkSwUmKJ_yhI3&bX)gybR zFaYjty!`Y+>d5(4o+0&>)78A5w@R7B!p-Z-&FhRc5Cg_*b+IvcoHl!v_tzS&(fP+y zLQSa&xBWstGTzHo;_PpH!Z7e2kaMo`*#Mf0>^ade8eC+ouBZLOBm497n|BydlUfu3 z`u3MA_2{T%afOJBx5Nl=wX`rW%4fm$Af24&aIz6TUwH>m9P992zYFK(@WUM1E`Hta z1=khc`*=Hp&oc^-JYqBkJtG|iP3Hq z9vJZ(+FIN1hCuJmeF?BzIc5nXvNHgnI4s^`z!qUMKY( zjycwR->bEh42<;dZ%{Pmt{DbNO&hu$Y~NLiDMYrFfo)-@T872&;zVe>Uj&>v1&8Ao zb`d;<@)41|Ew{NA;I-Udyj;S^=|Y4FcogyT-N-!4*uR~|^1aS(;-9+tn+zQTBh~%d zt=-jEbD?QTvhsP&F&V=1mqA~00xaJ9&K{f1=aO+iL2}aY`=y0-eAHMUgDVjTb)UB{u=0-rw zkea2HeIvHU>RMyDDHn{q>juEa?O5MY0oXWH*V;B>mtD*F*sg;z!=lzKRMeSol}W{` z4Q^cZ6KM>G=;!B(dk4bpO&p}{Z|{?~r0qPmC5h)~b;r6hq+s$Pp1bZTox*p>Glhs5 z(ai!*Bh#4Scx0QB3$^gOEegJB@kvVGGEx&4Q-){0I3W?`Q6beRTS+B7J379gS2(py z`xcCMChnWH#Awq&*J{HR!lD@KNj5*3fVPDnb%rcuw}e0*tuDWPnzCD(ssGB==65wj z^}heB@67VTJHPqh>`VS+Rb*8A5&AE+si$T7u|X9yG&pR0Y}U&t;D%dUOkcGc&f5cE z6;ec7J9C{~N+Y_;ORYwq%qm-x;*U804#%6&1sP2H!B>0lv>=#Pxn{{2A_%p9ImDLa zgFQD;cCpE7H zFOclTYx?y0YdmAPqniv@bs2W^SI5Uy(sfyo$9G3i#FFQPibT>{-anY$c1|X{GB=kp z?Coyh52x3WUO*l@t_h7$nN$h$0;v~Bkz@$@6cSkv99zduh{zAo=ynWKsiSgHct^v` zSY0_%$2@nWvQ*HxnN=1H5SvRpm<32$!GiJXQxYK<^h;p~9wWQ#qP>F4RjC3P4(d;z*Gco?LO4b@EXRXRG@KXMu-P`l(V zTCs^q1Y2$52h8T`E@kv;g2jW;07m21p!~RL%rrNPK1hEP_A@Qf!v4T{29i%>EjVcI?XB6wg(JPHjZxTT`cD zYDK^)7#YR(x_`2FDOVp-Od+ufDJoG69xdKVm10sF>EWjxTBH}XPi;FJV;#o1i8S-W zMBFXfB#}_prfw=&nbLTgi-}ph;W~2Ksxjs07R#C@Ot-cABQdK%z(>o&y~d+(XZGyA z=asijtT;@&VXGQrxbhN#y|T9eOfKwSFge?5_OIp)X(;Jtt`fCcalDeEF>KpuILrYg zJG95J#yfg0ZnvcFTa#iEN*;51jW6Cv1_#b06>-cSBG%5ww0l}T*_~CJKsN-5>C8GL zom4d+9&Tc57sG^h2qFZW;|P+EQW;U6LCP#w%7}Cm1&++q;Va(v^39QO;oyD{uxsNNN4&-BH%xnivQcFw7;dd z0ceYVBq0LQ-2Y_1|Ab2W;{g5NLZvYRaIF7|N&}!^f00IG<6xs>U}j}x15j)K6P3mR zK)(J)iT!S9f00W2e~CoXAz%l5WB{1=cOs4BH`ezT3ABHrZU3i9v_I$1SpQx8+<(iT zG5m+LzW9IgXNds*Oneqh&?1wd=18dE3CIxsry^sDJ=&}HfHa;Wx*uG2%Y%n#@v}NN zcFQA7z74_6Bp0$iR@IkJT>`eaQi?X^G3>ofc$!l|rLhw{A{Z8n(d85z=z7zulp*O= zx)W~xtjPF10@am=Wpx${(kyD1z6L<(EygAzuujs&O$%L3pX~gtGgkZ}*(NjUEV5BI z>mag;$dg24!O1o)AS+J&Q57XMZt_Y?OO3b2yKZ@%b-3QIyaIFS%dRP=+gSDmjvVcz+fD8`RLA75NR$uki5&?+{PucP=LJgqxE zol&UDqAw}F$gU&B9Wuq3SjTFdT0(9SU7#JdNiT4@m2bxS9BXFtM`UMx`_pmpKLzal zk$3mcbiMzBtl1x9(SJ()`=bH;D{BTw)BDGu^>@~ck%=8ZGyb_bm`2eZ+`nKS-9t%NB_-E@q#PL(fjfoc4#z2i`;8OCK8> z5Rh(RAYcr>(H!T~!A)d8D^PiRt?TLO%;|s*zZwvE96bJt+7$W&2%t>Z?$>L_lm2U4 zH8YT2QNLBzT$i2t&E$=Huq_|NX;ZoKOciL>HK3VK({hzQG88 z#R*|r6$k_j7=pDvsTa~TwI&l3kzNoCj_gqZ_Uco^GD5e1=-Ls(;3ar8(23a!vEOxQ zq!OK%LDVo#m6ef6l;L^;$=vPKn#njnbdx4o`@%aDZ?}R#?%suDpjtlxr;0ylCI578&Uh%l6rB;hwO1H|h0aZ#N-za|PAO%aQq% zU{uTHtrV;j93ryaI)#Agu56uO_^o^SSfCH>Gj{aMJ5vUuL!9>2RlMC}u2N4AKVlyy z1xl(REFak!G?xNr1QGJNztS7RqQ^pTnS>8vC4aIEa#km9r=8Lx-kmal1soVhv2El9 z1I9i|*lJ4I9$>VJNjM5n{T?O83w;c~##xh8LWJWlQ=_+t?xc;EvMYsdSl~7Yyd$9o zKt~b;OoU7@->nx}s_8TQAYeGRwcZihD~jA z0`c!~yoc!-pp~NLQ1JCcrbWnL#HL;sQ6Kma_u>0g+DkE@!yEik$wV8xpf-GHGJd4; zljHnkBZ7;zeL6Omtb5j@NE7Fr7G$&(L|!9#UzC3OnHl~W_B{aNIzx8yW5}yAdZi^HucTG!YK%70a`iSJ)r=%Wo%n_Nm z6b@_Ni(^1OKH5O@ZH01jivh1s6=#s>^;6pj4HM{;ey1UZ6n~UKvg$NYCNgUc-o(pGGu{g$Er2VGVgPQM zry7!69C^M3P4sL;RVXNoNoGJ~As?!7Q~YfJ-P91SRDpDgMS$8DJQr)10eLx?&RmAWdKZMg3A@3@o=kpO{g9>6{Ep>W(g$b4&uVRFr` zoqgVyUW*sJF^@r=o~$v zqf@tcL072};~Aly?Jhz$Wy%x)qh~8w39!NuD~O2(2r**DI56R;7;|ip^bvmdLkZ{> ze>S2$hL6G9xUz=V+b~5UVXr#$?m=_7Eo9N#xMpgo3buiI9$mj^$6ZD3-15icy%kNi z@2n-xluL4IZNH4M>tx^9@#85dI=NGYI+>~WO(>J{a%6~e^Bdr&m3(A$uyQ1pz0|u5JGrx%?O?C<-INIj zbl(`VbQs}hJmHpt*aawI;IM#ty!7xhSf(v=OYokU%CKI}8f#VX<03tR7wwP5XOC>C zrtOKOpFCtg+#`G9nr?YF(ATo#;vO!znOKjw@|pL%JK}ClV&+bhMZQJ0mwABdQvMgSFPFcL|e7Pj<1cL_K?Dg1KRK=gK+TDwAOw`knz7kMesz&M{hG7Jg25h0urLT^L}+>rqp67&LoUza#-$mw{THDL#a zls&)D@VifhqrZ4$E-nc*^8(|G!@=!^C6vSZQ1Zb2V~XvO74q*6U--kY$iuPF!?7ff z!qAMu(Z<5jcoe{q-M(cm&{le~8_DTuw@#()M4z6pl93LDkBGL5dh`i<2$6Iw_c4vY zEF`XEhk7~;lNVO@R5s`=x}Zjp)#>KXA16~aWTT^aAjswvN{g%BOd1pGb>r_m71=>% zGV*b5;7?&&kFa$`Usk|ktdY!YDLXSR$y|d+>N7vClkj$#`8>SVzg9j`J{kHbc5-i~ z+fFs@Vc)Voje7CnKM{lM3)d#))wj#nCMYJwP$hwM&Z6nkB-VNrB$)Ou$ukqi1{L_p z?W8m!BuVwoqQUJa6qt`M$wS*S-XJ}gB7l_C8;pcTf& zRjWs6XyO?B9(-rCw3Z-&N=uSDkub!0!!d-tkGi@dW;#F7DO(QLLkDj*akK4l$Et*( z;vflDkY71huhB=tl~-P^teBcCd4gzEK)2DWc$`(MNNLuuE^$d~yx9c_X*s>y{!I`T zHd^2lZL|Qj5Uvvo2=84zE_nZpOMj0zeGepZ2PpFR9nyI9bYyk6D19%L5cbZo$kO%? z^sP7p9_>4j%p*bi?qJYoOv*bRVW$HAUgAEK zAG7$|B3N&TIy2GlVaiTLhjAfzcQ~!NT$2x$iU?hsC{A>VMMt{{2)vqz5)-5|RPa*QZdXQpak zVrQqO{f3Ur)MG@SF;(?h-%#Lg0oKV_^ugp2m@og*0G+RhyBa(681AeG-3j7;2XfsX{+iSq{lzY+ zGxCi?baOzALw0ju=r`U9Tt9ox5mt5V;uVkxU|Rti5QhcPENo>)I%8vxQ9&sxy zr8gueET%UEmRD4@OT;+6XdjMoj8>0~ydDq+L&-Qt%kO*2UguiCRq+}367)kzsbtUg z%_3<52kml{tc<4rKZu-M`}!8)ZHp2k*Bim z6pXu*$wkbM+>-gM*IzSg1ZuWbs--G^->w(S<}E0aKC{lD404>)Z&%G6aXk)wK|4D+ zXQhh9nuhe#pEhTar$WUlq?8`i>(?twexgnjX5Xn&v1Da@x5uhT!IbV}310pYN%unk z>ii7%PPRO-Sd6}3W%3%mLg9O#j8?6A*A>(yJGC(}>~9pW<8^+Im4!A<2^6eRH20-I z^*D{xplNWOV58C!Jg_FPOU31ybrriF9QV7~YlTN3utl`y6ie`&LF<=xoy91Cn)F6E z^lZnnF?MbM(~l$N(|vO@hk5-sjzY>cx?B2fTP7_;PxiwE9XsbpW=v^&KMAnnOtM5M z&5i}odn3`jRgXZo&PolMd${)t^8>w#Y|cq5&~Xca^#Ln3=D_syLWIOK_OPbYZ}Wp2 zony#}#^~DXp!H2S-mZFEpa;#8{Y4i z+b-nYR?KbNU~%(O?O%BG784TMh%`Ny#^U=eM|2W00i{PYe61nRo1 zF4E2IR*%)WO(}4gJmy<|dA;vF0a`YbT_t+DHk+AeeE#Jd>F>Ij$DP@{t*%m1=O;4P zVIvaZP#1J`X6=18b(-U3Mwwr#<}7|v6$ox|1~}~`Ws2k`j3ks53(k5*c91E|!gDkK zr0?0ecbhQm#s`R16Hxe|78FO=h<--t+o&r(S7tFu?&;9DGcx0OKF$(7r>=FDu>JADpIOS6e1GB6A!2LAc+Po6$Rss z{AwoM^XRpKG9jcaF~We`6d#@dT6c&}>k|(w(YU0dO3}9rc@G2S&Tt_^N4hDv;0u>x zl^9NK>7hqlbw#R??B`Ps*gv6Ns_koGul^!2Z)__uPcovStYW`hXqJceD-709NMjhs z&XcEhx?q-@SZIRFI=-n`6MIrTG)kaORc()UmNDqZ!vY)f8?Eq#-E)G^1kTTpD5sI$ zep-W^5k))q;Qj)SNM1ZS(N^OQ>94t3s@f6(#@Ehwu8zyvRg$|tOL&=Z5O-jDSxCsVB*}9bN{jC(Ni7xSi5g$fr2so-t1A+- zxkX}D6bkMrbqtIjt8JHAlv1mw#eKH57j6AP`I&cbc_)QNBsWx&q)v{>Et0g4S8Ux& zDBLk&I0P0JK74j1K9{-#54>-?nweO~isCxur!tD!k5p+oW4deCR+*T=9+g_hfH7*3 zuQSafGfQRKGl(DA;E6x@5A8j9@ZcR|+ZjwpOCv_4_ePSXClW>s`)({W=22@c@M5)S z(zVC=ta8yAvVE-o&|Xy$#rem}S00LkrFNxVol*og8zM5)&o* zMFygnB9@F{@z_0<94CX`asAlo62|NY{1sfWxjDubDg=u%i*n<%$ZmVy$m(?YBKyx2 z${+N~%OBrKHe%Bp(U2yPuZ)r65RwFx;_D zdb_WLG*NT_X7An!6sF9R*l5X4v~{S@!Q5R6VV7x^cQ!9R_ei~;6Xh}yohd_n-5Zvys(Fk$-76uFqJAI?A5F#-3N0a?4)&&|d|Oeb zt$h`$EUP-5B!M0gqOXq%vE|3@bqi9B3wW&htUO|5CG~s+E|3Z<`+^LTqKvMD?<8)P zZKGRy$mIwrt!jx9M76eqXC8A%PyvT(Y(cXU)3A8znh2o+5h^K?=qPTDaJj)`N`Hi5 z3rx_uTAtR?c7&noy`Ujf#!gJI^AaxXxuxNGs@P-RzRmGF>h?Fl@mH)aA}7`vPZ1B! zq}|U=OLkbVp)vG?H7(VaxvV!F$~>*m()5`>`rLUYaFvwe3WuTh)vqd0#ffM7u+xF# z2QgB<5`Mu+k7@Bx7amxZ)>9TY-p zO6Y=P5Opa947)3-lvoH`q=5XO1I$>Q6+tbqq{LSZbKatq!!~vZe-S2?IK&$_FKGWL zCD$#;!6rL}Ov+Y;Z|w>QID<`)3X;`Ejegg(ClogEQHfg2X%}BAh>GDX0z4+WTQZ=8 zD%3#ds}KZ)s=vs=^sl#vQBx((&>Ab$ksZZMs)NEpiIQq_J>M+k4+XIu84%cDhV*R< zF8H|25rtD@5h9x2)SQ(_BDGn$vZtvhr}Xlvj>Od5u$ORry5V=vh6wT)z`2som69(a zY6sHIorb)+tlxWb?d_`5H@h77TQ-vYmBu@Do1?eVZ*75}m*$we&1it(c5jPd(3uAX zP)cJ427I+BT0YZ8Wy{b3tyD2k5BsW;c7>Jd^TjaF(0~1cu??+vGsR@&wrT%qb=;le zsz+msSu5`FZj9Z1h$eKsP{wP)5@ChDJ zCmKUaP0WoVlcBm^$0);K>r=j8d?oS2^gb!&K9%V0BFh63v}s0l8*0E~Nde=oSJtV0 z-Dba>x-S!zEAP;mD{!TnsT}S5+&~5z#jAA+k1r4yA2W#ThmPxpeaj-?qW>|f0b5TZ zs;%5@VYiJCL0Q#RKl7&OMmP;AeO#W-m};jNkwaL&cWXXlS0+mw0aQG?Etj*F@rRss zd=*tU<0+*Dii~_u*w62<-;&4mPm&FKp`l^G>q0alFsV$5ml=pwlQBV-$>f;b6I?~W zMesCUPDGG4-}CcII!J06nPirnugMMDgnd8_J`M<{D8DV)>St8PAwUo1fA@P_^)T~j zKLB#SIMWb8hD;QFVi!SP6Nl%*)d>?clGhwZgQnLvKo>-+0G|`A>!OWqp_@(#4FHky z${x>`)2mVxX(y@3STtbwoWR=&gWtO&#oOPM9e{#!{PDUxOc5y~?<*OS=*|~N#F|Y* zB=WkFKDEBQyF-`T*0s~fP8Y4jqC=IQ?dYoaeyOkuse~dk-5U_~T`5+@pdhd&8A`Mg{U_E5gjZm&J9+n?TY46Cjij}v9%^^;yDMyV3 zce8`rA;z=oEmZ8n*6c}MQtK%dl-x>u@Vtj6>urR=i3~S&_|)k$bj>YPM9{oJaG&|? z5d-hTKrNc|SZO4|DUShDhKdq#g;S*7& zcgmq%6o>I#4UzP9+kGfRyE2a~POBPp?x0AE3+pn3HzBvpY+$f)DceN1F_tqzP1Cz@ zB_?MUWIr^S3`C(N(tY+cEA%+mb?n9&hBDSTBb&_V9SS;0JdjaH7!b59V|Z9vkefXB zG&`{^-26DIUA|r9xlh|s24w!mH&zj`)CN+wR^30WvR7&h1;FKhrRLYN>y25{&&xD& z7-S9M49&EPHfVsFPDi7DwSI@o;Cx%$)A(HbLVz$)SDgHO`mie{^-ZqEjEG38a-X5Qp|f@MNfb6z9pOcYl(Oc-~4r= zy(RX|8M~%YM10|PjTc=DKlA=^f&b&(mR^i>haOT^eM``U0ZuY+H(8RXdH7p(S+Ea| zG_w|7^Zb#di@oW_{wxM-?@9Hbfm1mgwhR?2npTAkx<+|yuy@Kw>B$JunM0E+*)>O6 z!&w$v{Zd;2GjeH4#_(w@OZ1CaSbvkR5EId6 z7Nt(L*E|lweHS;Oiv4HP9}v6YI!24oqPdJ#EMI$Q%;(EaS+ho#48F8*rKQ!3*K{LI z2wI%RKvBzPBAoD%<+n&DP|{igT*~u&?v{IWc4vTK1*ieSBYoi4 z-N)}=regEcpFIM5tPC~g4~TU#3)vo_8%2<#e*7?b7=ao-3{9SA_ud$ecV|yd-fwLD zj1N09*7j?mJu?^G6Ee&~1dUSGKa{wb)J1kdgfPv>qMvFn51AaLD6cNL43s>9ktnT) zGfY>03D>4)i-jcwIg6}JL5ilB{0nV3w&e`k%J?s|CV=MeSJ=Uled_)x0y_c)1?1y+ z82oUhp$ZGFX|ZhJvIZH~PWpUOndXozuIFaB>t*KR3f1_d-HlQ>b8H+_<>Fk|x|1H@ zA_~96^KI?@8%Vah$-NG~=tYEkc?OOpW9-*xTs|YsmC76Saf3xS8Y(}XqlH!@hrV#+ z-ttfM;@Z9muRq)G(SUtdJoL?I#!NrU9wE@@7^Vy|;7EEKsehfNXc>xrk{TW}H3m#mtMv;i|bCX@IBmyi*{Tup!2g2*>HNV{`D!c{zcW zv)#Dck)ka>5%GY$1v4|7cXUP;!T zJaoaHjfjgulAaWQH^Z%69X2(iB~uVaMA;!^zCc?Tz!iYqHgZ}vtQqeb!FZ@HPWlr> zDcyR%v_`;}=QS}Je2Xup+#nju-X8Yr9@op>Hrs}%95HpP3C)iH#yE1fowAAlDwJ2p z77vx8m`)Ot!R%LgIDT4k+_bB?>h=%9b%?iT_@*uj9~Pg^CRfdb`DAW8>G!y{ zP?y_t3`0cbwQSuD;W}>DE!-Xh=cdAdZZSDKY!sg*d5pUyE40a8IOqyh)S{my%A;^0{^bHGUAIU2q=mPSVSM@N6B}m&E_#mL7p!Aq5KXymqQ)Ps&J|`; zXmA}PMN)(k+B1cXy~7tWh*7vHz2$9bji1?oaT{V5sqfC#7%=BW13dC)N=@jJVxdvA z;eH%R5Pq8gt_vTCG7&-L$NvpPB966X6;}& zJxm#WtxD0rb?>Q?H)#v^xE;%9h`6&q*Xo{3wIKzf`m{W{Vy~7Nd-n8>ic4=-=qe|6 z54ft*SLW6S0ineb5W#GPWCyiYc%ebbc^(K_PwxJFKfVXo)Yh?F0(`Ob@#$1}_UKQm z2L3l3--3V0Y5(r{rd2Yr{%UAzWem8KZ)ITSNWels|HaYB#Kwt$k>M}MzS#gKWR}0# zzyF`ezL@~Z>c1(h|AOrMk8*_nP@(WwW#6p-N%s9;9*=+MegA)9{br%#{KJ8+L%_`b z+v?50@^8B7e~Pr(8QB5e?%(xMIs^c}v=%@H&ImAv|8`RUE`nkp;QWWd`j4V04i-8V zc7WFV9|mrKlAH674QvcdbN~%Iz`M=D&OpcX+gA;E$G>m;H=Fn0UV{lxlJ#2^&IAx@ zGchy#VJZe#%K!0*10dCA|3f;?%E3&>^4ld25QDSRF|z%ZbpP{30j6!hTQLG$C)BTTU1BBzOY;=HXs6ReAz?3Yk2H3ZMDYE;k4sC`%p6BS~U}9kX z*)3B?LF%_dd;JBaP8uy9mpn*SP`reg1nsSu1%lvSfELvV)2!#5ng=ntwfiXg(3_`E z#k(Xcx|_eZ7&~fO!wf`rm)AT9`+lLO1Juab>$}rQ?ysn_=h< z4AZ5|3AaAl-OC>R>dMdw6;`dmjJ5}Uj_;8K>KXw(G4{V!o|{|*w!$0BU|Y?1+uKSH zs&*~!A(^&$3uf|rMw+mMPCbl+5d@Rul~q)dVX~fFa}ZA#jxX7MTnIr0BPb?8Cs5_? zItoI3IT8%xVm=w4gxYs^a6hUzvBXG^_mY)lvX2!Llsk4^QMwL}NZPs+9*E!>dHyl{ zjfFYy@Fw1mCzYJOOyjWRlJI-vSKqH8V|V3!&I3Mo(3Vd=z)Bfu@P9f8{cmfs|I4oT z*L~T5l!4!7?Em1)X8q5;>_3e3wuTm;d3fmmUcarJ6AtF5>1HsRxKDn;C*}~&OEs#t-s|LSEgDi=(^3M zeFq_4Z;vP}eCl$ZHvvg!!EC?TJ`9Rpp~-^pcA5Foak%Cc9$#e9DotKChvD&6UntZf$#80M$h7VQOB$w`DO*rPF2 zsxcyU&cTf zbh2c>#qwv%I7gj%Rzy=#o9R})*G79dAYKK0Mk5WZjRD`dg5tnlab9ULz@8D4cJRD7 zp|Q1WYgqq2ONm)TeYVTq7_nWLC5S6_R7ih^yAmGU=_#NF;Uz=!2)DrQ&nJ;WI!YsN z9M2(?xeMYt%ru33^GI_YMkGR&R8k!z7Y+(N4vM)yxRwwH>K)a+ul(V6_l+)mFoZOH zQoNL3JstS?d`g_kdY++JD`Y<{d@v#3fe1^gklq@zX$393{=D7=OU|+(zg|^kk!SHF zmnm=lvCxvowa@Ljj47*vo2~f-YgbhTBU?e!)3onbR2!$w0CA;EBAIVbf0xa7iA1sw z`um(M^0NyY`#10-)3Y(TU#fdHIf7eL= zo}K}#f6Lndto+N=``;#P01_COf8SULXgS&F*nZytxf%@rw$2P#{kOkh{N1O1*B%18 zhY1tFLH|bw`qx>P?XMOy|8X?_rI`7@+UNi8CS4|g7hemo|A1rs=asQ+f3Y%_=|3hj z#PwM8F~Ede`h3P+6{JF_i(Z%nsNgl5r9<+yZe=(qUstyEAc!&3S(=II| z%JJV+s>WiL&erZ_wHhIc;_x(-fu3CTl5SWX5FRXOJ@KAsruYVO$_4c9U#I7|vVC{b z8)i0WJ7RFd(sxYwE8V_h;4vCn5xnOa4@Wj?j2(G%BA}bvMFEcTrCkqC@q?1@A#8e~ z<;mG7u#Xiha%4KH99b|7uhjq}B%83s_aP9A{KW+6RCrF+nOLv%c?rGp^?}8tDJjkY zHW!N$jc1#=2*WT}@(oC))7JD)d%*v8CF_6HCjR-pX z@juK4tbj8jz=_5`P8jCZJ-v`s?msrtCBE^Qtx(kg3UuL9^N27z5N zV8&e9`p@;V0Yo=-t*wUF4P~d5N6*GOIj1PvG$&N_3Mlfz!h0nI1Oa(G!jg_Y8xo^^ z^HW1zJ~>mDvYrQkiGlah(~L|XD9SuA?0}kl4_%es%?-0#7Zjnh)KFSqR{!0Uz=Y%b zsuDNxEX^6REkqCsP(_2I=Kd=z=Pj@VSkR18M$yDk4%;^;7s5+ zHtXlLk~%zwaxfZIfe#HK?;jU;Wsbx^mSFO0)AIPoZ#p|lK)1jc(+v5)1{2tSB?8-n zrlxNwV;{SQzL5%;f4Uls8jhaGBXq~@mIm5OkH`Equv)nSO2P)zJ9to-qKXxY4W!!r zG*NewQ54lui8`GF93;vh&OiWVN+RGN4=J(r)U5f4!IVM-3?e-|L?Td)AwBK?C5X+O zX7L3&5ICf$HQ#S!g|*SLnz8gNkFR!xf)oAP^`eZPvz`%-J;(@n^z}_RBK_@4HWX@6 z>tOcN5{67ESe%<`AO);h%XH6otsjoS<7jP>84N1b7*2wji2>ogJhl6QQwd2fw zEv*wX_T{PDlwaa{!fr{9(7v`yzb2{M1TTKhDRnj}MMN@wv_mB-9)e*pVmm-yIvik z%k+q@hne>aq>vA3>j$~e=iFQLV=acGrj!3g+*?P*(JboTgS)%CySuwPy}5x8`{8z*2fFVBz9%68et<5!Dwc~-w&jU%e<58kQx)uOo%thW+hG_ zE;I*EAkQ`?$eqU@heEiN$WWL^bM(CZ#^HguTrNqq!AZykYfjw-TZCq=S{W$54&X?S zyY&|dL(PrB2ish%w-uTTI)yDj?laGbkzv#2c?42gg+@OF=UMg-S6?r}bDKm7=DYFL zm`tF{pd?wO#R-e~28)_mW&TUXKYxe!UqzRfck{WEGf`e*yK>+!0~LPSsMF+jL((>s#L?Dfsq z2jwLe=7(6zc3@xUc5kCyYp(|n$Awj=fxw>;q7nhGE7aEKu18Pdx;Mki>{)x`qq}wE zire*1d8_Y9v-W{o$IUV_Uazw;=O8d7G=?h)1{v#ocZ%ol-V3V}tIg_3=X3gt^-Zc4 zP$%C+_;{X1`2Dn^mh)80p9mgGUN(K%&hOUiZhS5-Hrqm4%;do^ia z9L?f*)eLBb$efGp}Ja6pP(ix4Yop7X_Q&+d*fBXsP<__$Mwfyc8C@t5qJr(ms zqhNma3rrxpL-~j#;}FH%6X}(?zp_}&Tm&~#C<|3)5 zzQ&LvO0$KVcD0ysmr{i29@nIEA>I1m=Z40JW9FlVC9pxqmJc&>7CgA>HS{{>Zd^uVquZla*%5oQrAC@LWmrUwHy=Bc*sfcffVy5+Tosv*HvD$3dG~ z@>tsIXgjCnED)Q_#A#G3lOl|+f=04gGW+&k^{%*lOICy!n-Ow~&sAu-KY(lQo4J=b zk(v4qA6WcEF4Iv=-@3Y8}K%YUg|qqR7A=l89p$0&Kn*91SlyFA>#!4{SAVW_f-4awr6QjZT;{*{4_Hkpx`Q!YNuuW)*22nBR z*)R(;;`+l(JrE_>vU_CE;{>%g-M`%HN;syS8s_UF9d%|?_XAWGUm#duF|s*uH%Nbf{JanxZw z0xv`2l~p5DsV(^NW>fjqMd)b3Xlg)kJsKOSWzT9o`bUO}u?g~fM9=f7Kuv5oCGBWTu|QS1zbS! z6GUw&(KaxbqvY#xBD-jymwmPMIGAf($I(#lY~exUYsi4`h-=D#@ZLST7sSB9#U>;a zb2i68@;{+1yJ&(EKd))u`RhW zAF(wm^PIgkYUM9>wQqi2@>CD?dLrZ>!g4C)F#N?AC2tQosVMEliZ?6|Y z^qjdhtV~$&xdCB&u5%4U8RnJ0+Hv=nx!OS>ENWh>>JQ*mw!fiLp3^%YmD7uc;FYp> zMJ+pV^bcFS=SD7w-WplO7mRVz3#GvS11)KP&1BvLErVCI{2Uk6guiWnjhk%46~{qT zGXR$+TIG_2XM^>{B&rF%Ob5MYD4y|~)*h!qLF$QFw++<{D@Bbc563*bB$w=zA_M8Q zv;L{qCSjy(&~gs#86_;7BKR%Bo#F48K{6=j#=&!s45Hb{&KX9GG|%{jX}-<(d`@ie zk6g^wQ*1IgY|Qr8OmymSMLI>3f`p(H7gUqN3_@fed1HPP=ct2N6qiVZ?w$M8l;!j+ zo_gOD@P}GPVlK24XD57gv?8)qm1RLrM4_RvvqA4!_lc0W?UVdwA(C@10TtRNM!Lx8 z#P3F1RMPITUi`VyoNAmTC?N%Ovv7kn^t3!@Iz06q)r@FMiw5Jo;->+{Xd zbe6TB#hqg~OO~WLFi`fkad^xMQCz)WBaVQ>M|<;pK+JBV(>y~9H-07gkFSM$X4k&%bNT3aNd6sT?%|wut!r+&D$4{V~TIc;lbOE|?dq zH{4hE}SL9ZUGOmki}*!=%}f=jCxhE=fyzxr5bc*=dxaT7!B+0ai%1gYQ+_N zU;54+N_vHNo0n&M+n#T@?Bf?-T2~?-;+eWWMDWh1j+~voxe5K691@zs68hqzsx+FJ zT6fLQbR_y2m)y4#gG?*zxlU5hJ;r*>((4XMv8(oh{>9`qZ2~DZ}i~K&3mKoEsndyqZLKHUo2Z{O) zE6U+}Sr%5~I9g}tf?*fwx8Y&t9}X)*0#7LJ%X0G^cX{79t=dN)^zWKeF+O(*4(5w$nb+*bBZRWlC{gRnX>wQ(mCh*S4 zAbcx){drQhSG)gng-E2s@|6r$hmeSpub45z6^;3`z;|CC3El385L(SJ$rB~HQbgmq zl*FY~97T3H>Hd*BOncqj3h!}q{rQR^4)v)Vb~yP!HTMbi;=@?Eg<`pddZaro=d1O$ zz?I6;_nxEFh_qVWmCeGR9lu|E=FMRWF%6kwdOYWqSL|PbEO8@ebQ^Rx#@H;bWi+Q4 z_n!(NDND{Yptho+i;SwWju0A;jz`aid@C`Zs5IK#uMgdEBE*w!TRV~jZ{S8x-_$z4 zb~idV1{Fjh!#d0Bx|n?ZnVWQq#Fl2(aKHF;7k>ZEw}?@pCqLU%@eV3hNQzg)%l?Z) z6*9xbmVYi_VsHdq}DO?KUtZr$_ZvY*zg77~0_OzFhZC?#vA zPcdOV@i?kXU|v2)cyuenN8&f0Gr?R45F?|wB&#k7;LiS;$b4Y}y26(j-lnZe#w?kM zwLp(y$$rjgcBD`7R(SIAveK!+W8``XXs;_~Y!=~wvqMr~$3;h+ui@HEuI(Nfe_9Lh z5H(-~!$$Pde~9`-CdBxOj3UEAo>iW%C*R}JWD!|iyUX;qY3Z0%<0PT|r^ZP}-;!Tm zG9PXahA11WY^TlB4mmr&z8nwo2>a@m^A0+eNL}pZQIbMHY^GT#$cHlzCoz_m;Yx+F z&^}7Vqd8G+tE;mYi;m7t21^N+o3792B%bb#nGfO^q?aMmW@vjV-5=Rj)5;}zB&Ehy z{#<$=U6QMqy~0w-@mU0syH3!$0UMt%B>IDTtp=W5dl*LJ@C=3Qid!oeG}Mf|!aDD7 zw`1GR7m{`dfzjcZ2PiX>-QFfG?m-LNrmdylltz|}Kvvms$ZlnHsBi;aOVfCIeoJ>t z$s1ZUXQSHl25!xRL*JB%dU_d)X7+0NAHdbB#FR+-2um)3!imJYG1FzD#N`T+WRFqG zO>3%ea>T)C8(+z*2gAZ>{Fl#Va2f-Abe{5t7V4r{ z6#ZQrUh|7vU&`!e)L`ha&hoP!b?@AS9_(t>ch%h6R?cp$FEsNw#x-*mi^nc#^1s)+ z9bAW{$YvLQ&QuO6s#LB0egg(W(js5NzOiLgF_wC<`zTA(tfXdFrY z>h@`t=o$OHa#HKTfB83p zCS4YbEst&TQgXvjH2qF`%Pc0hDDw0JcOl|ojJS_!+xkjJje{yU9ewG?k!7G1q zk-pT@NP&-_=Tib^x-DQQ^XRuJ^gncs3)$(l16>?9fSFhGj|Jzp$2q_C6}DUEO1FGJ z*Y7TLZP-~FnD7}im6?}2=${R!LNc`N#oPwbTluX+cxrs|Thl6=*sXBuJ5t>gOO*!NrT@CR!gQ zM%+{BK9O2^pgAFZO-ad%WEZknd}glMLpLEk24*D@-^6bd&oBG9q&;-_{0F>*Klj$n zIi6c6uaeQ=vY9U=Zf$H5OLLrV6sd~8ESLm(i#Y8h<^mcYFVF`)>JC2 z@^2U+I9Qo^xc{ME|En7F@1&lCxF-Khxn|-32{9nC9h4aT@1&lCq?`X53k=f4|3-KE zr;_uZ=sIkmeD;5=`=3IK|NdnBzY}Esf~5SPv(G{B3Q%S^Cn!)H6fpjmSOwC2|FbRP zf3aLR`8Yvw+ka(=|0T$QNH8GZ#9xu&f2{#RvVc4ipxE<&Mw#=1><>IVJRoW8FJKHP zo%|oDng5KA;Q$TtKbHlCD1*YqIY62iJ7~oIN*M`Xl51AGkp z74lv0vuqx%KO)j4?d*V(RaM;@v-linP3C@gm=f!6r()-t0=;;h?Y`l`RIm`e}8siM&{)o4l5>n_f?I z%m*Kb=M%AGqyW%ekJ^G!c=bfOwLI+(0Wu=V|8Kt!{>Qe2zrPUv2P)LxdJ?$*yC;GB zZ!)~uxIx+R|92S*^j-0P4>kr z=M0#C7x3hBnd5gXJo|=xdiScmtnay1*_w7&3_%K*lVGUdVadw;CR7j*$PD0z0K9kn z=9-?OK0*N8vjQ|%m~@BozTH2%0hXx%mU0qz*}p9%7?{Cr3;`Wv?sj^aWJr*JzK2+M z@K)~gpVwjpqT7I=VB6|Cw2y`@b(Ek#fP|lGI>s0pz!9)~HUMkB>wBU8$eUp|o@fJB zPz5sQ^0Hzc_r4(DCu~soY+ZYau88;>4WJDk@Fyhm_XFIPBEWy;X)CkVTBzg?97U)$fGC4LoeA<(7=Uvy$psf+cd!JmgNrQj zu@$)bI!KQ{C#@PH{X232EQnY9F~G(|6k~9x!VFispB-rYcIKrP^}M8h>z*W}2La8;WY=P#CQ-oq!LDjo|M)uTFA z3H8;1Wn#t2Gy%J21rHa;w&=IWK=75nr`;(~Z5iMLD-XuL78RNb9(J?a zb(YTqBmPc?5Z*7l^C1^q+#NQ@xNUEuwiI2^Cm{?;3J_%c+Rh4tZ;IA5R^e-tC}afw zKsuo6gUa*qB(fI6>w)u<=E@HX#8Pp1cbKH;Oz5~f)FgV3Hl9$)~U8hxU-g-{A_66$sq4w9E+#a3-;Ov_p<;X zN@OB)ulaGtMr;#=4LcBeO_?o;e;}G%0JUx+a2`%^O`R=6pAt^}#^77bDIqBOY%n`< zoqBC@h$3YCq*;|TNPj4^EBS~>r_mDJQbxA1-1z-?|Jr1jL1@`jmFp`^#4HE%+#ELM zB$==vufN=ndMt%F1^G#gO%hdG|MO&(O$Ap)jI8%V!)KGzdp1|!wOUj}jO zK-ilaavnSBpb%K-Z%7ktP_4omX;@=yz@Q8a*5eTeGu5MU_jkLHY@nd@gcx!Oz9-=ho zVFB0R=OLT*F#IMgf+(Fkbl&*6QE_AL^#qhQ@$14Y`XT{JKXSKI!gm0KUvYM+c)`im zP*^5DXFjnL#+J&R!FGYm?0({fuIvBlLa00-bB*7H?A-r)4dzc zM=_A1=Tr8=jDIQQw2(qhd8*SL|In_53CtQ^ zDs26xuqkx5WvKY0v@4z{dOLjZxB$O$H<$QNY0W3gioKNd)NP4ub{Ml%tD_tjoEOyx ztf6vrEV*6g4CLky4jA93Drj#&%N~*Z59poD`Id6a-RWs1gd>=vP0m(VWr=Pbzx{LF zWe)3S(8H4&LRg2E8vHaWZYtTT{5{2O<@Kc7hlD&{QzvRZ6fy@#7Rb%ki1Mw-s4wnx zQPf3ZI5-4FYE>!lX<`X#j497Pbek-63tLoJMcu0lJ znl)Ho`@71Uqp^^Q7&E3a+9G1VMxW!A3o*B-(pJYeTZ{TR7!;`DTF(M(6XrJJpkpPz zn?Pg5+gXbi4aTSH*t^EkrfPdfM^9l#tIULow=>CoqOCY=d2U~`)){TJCPaQ`w)m>o ztHc0rrqrx$X7B$PL#j`RSevNGZCkHOiDdNn2`E(5W;B5c1X5+GTFkom`H}=tmMnuF z&Wa`_>vegYdf?-lCrn-TMynq(JSU=tTUJF%>QGhReb;4NOZOzhSz6~{RJRXHFZLZfJZplYz6o)E}P91dTXLdU5PB@V{sqV4TN z7}~DU?Uri8Mc1GT9%$HA=AYYkKfUlA^s}3u1!;Uk9XA$GO!a9S>n;TQ8bz`|CAhzf0xvU83Gz-^` z^YTd3G)gBwq>z&bkM8`=(~qg;TY{eTE&P*meEMSd_<}K(O8#))=b-3j`O14Zu3yq4 zD6Q78Yl|kT4lpY~n$~uradF+Y8Jg4|{vn$77>sM~e$t)LO=oVTvP zZBiAm+`_YK5y%qmI5|Wq;K;*ev2`ivBBS_+G4 zI{>i4iZWAb3+#}69;P?M*N#z`Ji&Dr7yzX`r5^#nBgN(_r1&kIoGsyn+`M3$TSnWa zUJug*)h4wf#dzzQd02)3+?}OldGQ_|j>{}U<(az|OCiYL4m)R$8T!(Nig-)ZT=p?a zGjMKV40i1iUjn>Ef`!q|Q*jxR5?GNbrEyo|a8tE_SZ4^uyaj+`0oR`7gDRIEJ=z3S z5{ucL8*ajTgyu&?Imd?(yu{_vJ?h`8yauPuggki* z#DRa3Ciso)YO4Cbh^FGKe$uB|`c0|i915xx12$+Wu+3vrHaAPwhH8^)`uv*0HjX7# zsA!&XNYo2Rnhhs8%lVb8U9T3RZkkdoPvc0xcoWJV(CdPWbJtSu#Fehhw~=?phvr@B16WJ`NlF65Bp@aaf*B zf{M!t<5ydOH;%gAvM`COk#bEGzAT$o5vFyj*+L!OgbkFOdFoy@MmL;%ctuZLL>br&Pho3`w1vH2=txM_ZnxoH;~6rf#~`s= z_En#0)!-2kEHA?QJ=jMi2*JPK*jkpu@ey&l&fU|^i?w|I?GE0ei?hRM;#*8Javlb{ z`7nlZuCqUzuwYo!#S~_iA|(f}8Z9=}2vCHpa0uJC3)|@4ltB!1%Y)@rC3cQW`gtdf z00m!W5ffM{%Nn|n{VO@PdmR1GjRO2H)mtqxx`i8~U(K>S-%5gJSL{P524H-OSmpb8 z+Hbu<%S;%jg-!4mC@0`3*%MvWaOwLek#`S~Fv9JnuXJRd)Jx@2GSwTd7WXNXFW4vI zGF-+j>CLZ9WcbMG?lxZ|aV05~_sfX!ovQps{C!wL9a+ZvJcXU7tFG<) zJ3Q03->hXvFfTqv_)!hbklO?qIxL^E?k9RrL3nz~>GM>-YN^6BcR?v}uO`pV=QH1S zCpZ$yqELMf90Y7*rS2h}!v@XbJ2Ggyn;Paw;~&<)9g`O9;74G7cjZ3;rr5!07k-ug zb_{{alkFlr!*4X{4`l@_^Dnx<8)6*+B8{W>ZB4Z{&#LPOjwc3YIt=Mhv`#4O+{hm; zNgAo>Y&axm93-N9yBsH4ho@g^Ff!-v98;x_+OzGicMWO!7VRefQtA6N&1q7MpDd^@ zEK&HYY7@AUX6(oPNg-e}_nQ^m@AGFI)#s;g@ZAfDjOD?hruDjZjXqDILEN9$kUCKD zdsc0hiYtw!fAooh4~$}qBd4qNpAd87!#r$eSNcXy^IVgqw0ut36Vrs9xt#6TcJ&JM z;udDPW1RSNe_ydUf-tJ+^R3KS$kkUT?MJG`k`N&)K1|8uCZVk5ClshP|3T7?AO>pI zu`o;&XjQUeUdM{7wJq26t%l)a%k}T!zZ1sIl0>3>rBx9ih<@-5MzDt@?2lcJ=AR48 z@%DbGQd>XsN*DC$SO#75gxoUT;i44El<%n08nQ3+F1V{7U94 z`F*=8f0ybnb&)!n;e7GwHv~ziZ&~+}DK-(7dq=OkPLbEmjX#hW*9IZaJicD2PlCF7 zq^OyPjt<(DjMDRj5klfbDV>a3;gx%@K;&#&B(+W!o@@jw+2)0>S+Gc97wlNq`l+IE z=DBN1_r}LM@n-21Lq_HJ+b#Re&dH1YHZrMEZ3gY?5)8VAk_e3YBo>|_SQt!v%%ay+ z_^;99-QWg9%?jC3ccQrL-BaM7rs zj}DkuffhsWe-AdU+0Np11&;vQ-`yLvPJ2LK2>_ z#=`G@=)M$ORW7o6Gdn48md~&G7rP`sCMURMgFG_AM+=4G1R@`UpaGs8F;SVpdY0Qx z5AIc(RCHy$@(zmcJX#{U-A*MA};wFtX^x8Z|t{-JaTVoqbAEl;BN&;a!Uhf0GiyU9WlwJAd9tQ{i z_V%LxNs7j($|NI65K&e-l8q^z!;EpidXhqy9-G?+T&viSvgFH+b5p!MQ5+JJn>$Gv zNtpyQD?4C@PC2}tN*)Z^PeOh8ali^U562tw>^RV^I?bZ{;IFa5_?lZ&2{*f<)amXk zJ=(P%@=EUz8|T+juvk;KDP&Y7p<-n8eyfC3@;N;1>X*TH*nor#%z-;QP~fRw?nUqy zR$S~IBM-Y~IaKji{`TU2AgXVFY6|C9fgZ77OduJ=mI~8q&QfJ(j2q|7-i*b>Zkx-} z^XciyfV`T^CspaZWB%KTl7+#E)yBA@^ z3(c}_&KL@?cM+$;&)_m3UX7^>><6CNz&X_FN znDq~NKpp7ODVH(nZ}AYeIAG`+or-@HQz|44Q)V#or4bfU3EJ35ngtxOLOUFWOc-dsF8b9J#IR*DdPDubozYIH8rKE z;h%dm(C~a9xNlqJzlO-2MtKh@ufUnx3SR89@K`=i170-YR<#X(khZQPSX(L9jP*-Zw~@-&ALUICq4gVx&nMYJkcDS^i% zo022au|0UweuHzfJxE11hZWj(gTb0#deb-G^T!O-52<~PMU5u&2+Crr;lt@42hG?e zg`zxuA7>RjI8PYI_XaI%>SpfGYL>c#4ARAF-y6ep+cmU42~0)tSh%15P-I-(=JGSx zW#Vv$!QRf`F%6aw=u1n@CK;2TafwkLO>4;XtIZraej+$(iXkeAIpr9#GHNX(R5~Q{EqfJCN=WsB~H%sEh*l49oF3TcM)wPGh=Sa033MVsk zGGTFku)E~GO?j=*!JP6EYwz3MqN5h6j(R{XVMP^7lO}pLxUlu5jnnkr5M?DJc2SL* zeW%oQV}yI=?L3NG-8Olj|>m*Vg+Ql;XsUi`KA-qe=IqKt;B z#Ckh{n^6ev>b9825f!53z!2tX0P{ksdIN!XTsf6ygUe|$!hOjWTN!$-!eYSS>af{} zu7lfP-f1B4PjK&rxv{w)Dc-~(*35l>nFae$fe>>jH(yxr0k92zAIp<3B^cvs>^_F_ zXG1P-d8{`0cQ~W5HR!9sI17-4Q;r?3bocbY0JFte&DwiH5Kq75;!*i{6kBm-eLD9C zTbFm_X_)HM^i(Ak4~<1y{Hasld<}A*#?W`61OP<8R3Sn+26_R>naA)5^4V)+fk9hw z%C`O(9!-4M%G}d&P=NuR0X%IH3sra71DC#)#{i8KP7ryEiPY$HaE?Mw3Q;J{G)wjZ z=N7xSdOj@11LGIV&4U2}o;ZUFIOkFCM=CY39wq_ zsk1PKjCF7YLPQOxq;IP&ia z*(4oP))~MouM`uf#|-+np41T9JxaS8lurF-Iv-q9hm@IcMmiZ9DIcfaecpMD^}Cy{ zB5ln()AxUOviQddjXjDYZ%D5wLZA6>3HAw+VvC>rR@QK+4GPTRB=uh_iM`V2H!(@4 zlbB8)4Nq9W>SS_KA;c)_EiPqIxbgAXEOW57>{asi9LJy+!|g*khfe^y+P#$o>BUKS z5!aeb#zBh*LnKn5@NX%>ynjD^>=Ak}PkL=Q?+4o#Y_#Jb@bc~IEZg)_5P#hGCdHJh z3t{ctYk5CHm;35=2MSzFy2Tglu}o&96)s~Bv=IsL-+Sz-kWy}R+(C6OEV5{^kK|=i zvEE3^NT9XIoW=`2@MqPbm_*^-KXK{t9l9%}RRlsT(w6xO@wZX?7_DYPm(1mrPvB6Z|k#5@|M*j({>IHO=>ShG&} zsXi0F;`>3r^kK4h0#4H<3JoS*|8T)#G28T?EN%(65?`FRsm#VJOx`W`e;P^%$7aD1v zH8G4pBT;4F_&ESF;_$V_{&ITCOEe+sYD%k~Lq8wr19?7WRSuqO`ZQ9UALSouS}v+7 zs+rGJ;mUAE^(KcnWF2ISE6ml@u! zcqYKwR=+{Q3M|>Pr|&7;Q=oqrAGW3M$=`FQ7cSb{u*nH{@6_6}+OuU+Bd(yF`bD>2u4>Sg>+5JyhqF!z71^>2r(BaIgd_ywiZz z<=&aVvU2YvAWiwR5SBo>cQ)`s)1e4-7q>;dAq*%}zNR=ls3|Bp9I7cOI{c=&Av4^q z=}>4!fkjZ>76E+Fgsf=G0yb+_7wj?9ub1m64d-Z97n)IFwQ9H$U@?^IC=b_YZio-7 z)2FF6L;|ttvDN1#hr#KOG|=+Rh_QIo*wTU0^hc`mqEbRweVt(OQAUOSPg^Sv5u^A&) zQN>u186_4)`B({g1aMcAw|uPB3>QmR(?XrC2_yOs+LR$FyQ3;pUlW+wC1j#5(x+?U zMm^zOEeVW9{72TRn{8!|&yq7eceg^x?GTTwp8*hl8J}*W+Tc+a;mI4>)jP9w;cBMj z|2&;d$-A&I6nxW#V|3S#$S}q-bGjNsaew`GI0ZyblQ4^rjdk ze;Z(A%`%zXwzofyRPsHBSNeA9e6p^qsT_aQwtUI?ax`-O5r<) z>`&zj!p#$WSVXzNmT?hcKdDdc-PM)th?Z#ujwR*om_*D{N+n~Tfb!?VpQIiKD#87} zq%sUKoxoLhrWb;UW%V3{3_pI)1m7H~-G-)@POQr+t9nmJt(au*JPj`OmuUme|S zE$+)(JL({6eq587K_nO+t>T=-oRUlGj{GPRH}h9!j6aGlQ9Cpt%puW`B3>CB?Wiv> z{V0$)urnC`DlTz5jQw~aSFrEO*E}K4a6M$t4E?K+#%TU>*XeOfi3YGa)XyP1?jf_V z!c@;+cV;02$)7WJ;vq@UvdMYnTtapR<9dofT?Xw0ggn7+QF%w~@b>?NbVlovyN2%n z1zCqiNa3BjL)*^)8A!@2?vk;C+CK@&g4QMLlCT5l{}Q4qBQG2g_=C}$r2h`m4~`#> zA9fv%GDHZn6E2rxO{zY5M>oV8HkaBPxFZ)r1N%kgngmh+mY8NuxjuG>Ekp*c1>J$n z`>P2@{~#m^nxO18p#Kf>32j56KFWlmA3DSjb_L^4oC%RwJ%x`Tj`(McYAPKG7aTEy ze!CC>xJyzUsX6)jq#du2pRih}j5IpZE)4xlkP2{VsEpJ)l5^tq2|HFHRw2|OP>^?U z;E;E)PUIO1bF!=v`N8?QqLk$zhE6%zH3*f(nq`75#?`MFf(I!K?ktm6IrfsJ%o>{y z%uh0*501zW$H#K1(uM8`xuz-WWbhTMl8L60HB zRbmB_#+z8ks5@G`#gdLujgjFh@0`fe$5;0{gqTutM3W|)&<1x?Gz40_S)#7-qgN+B z@O(9KkrCWVhCxH5l%=UhM=ee1l!!kC94z_zV&JjWji%MGRhy zU5q4zGDI>2GQ=AkBRH{7G@oV;%|-z6a_l9VB9bbSY!0;?P7_idlux11he`_W5{Bf2 z9O#SaRQq%1s1|=?11mJE)4|1EgkWQXDm3eLeCMbG(dn|VfBMbF#r=b|t(^o^4C$ZF z;c08XLUOvy27TmeYv+LGdCCDTw7GNiZsp>>4eE&pRHY5-VtwbRhrO+x1+*{=G|%V1 zilA<0K}8Nw>(b7VFk4&uU)#$A^=uBRD(asOuyAoN0~L$626N{8+E5;dFCn@k{EV-5 zw-)`{K7)!x-4Oz{PcF{Cgf{ejQJzY-2D=NMTK+dsypIm*^|pGs2`*5h+j*7 zZOGjb_N&WoNwsM|i>eO2e%ZAjdo*t_8#1+OXwL{$RUPKeFT1ILs>?vt$sKx^aE44z zexP5H4n3!c+B81{?MX*a2R}j0=AdRZ(3+n>RiL%VtZJ&ntapj$xm~lGl{N;~sV~VK zF`n{UqWnaE4sF&s?p-c&yFS@vwJEJrI~BD={mchdMIpHT+7H>d+6&2M!{RDyDP^Ay z(0^tBMmLl49WzZ~M$wBJ#Qb@px%qJ z#q(ul23f_5yegM@X)95IpZ~4#m>l&VnRvGj$2VVD1{Vcejc%gz#|v91;npQ!^CZg5D|fVFldYv6%T+GCMGFF zTIhs2kA*sKi8?<^TBtx;m?tV}NLm<8T1X-$`2j$C1CVzB$oWyoUx+0=kR?5^B|V@e z?};K$u1E`egCl#O&;lUHUl<}!>`_6S<3biO$v`l)9B8xvF!C2d$$PxW6AjdP8qz|M z(8za4@)ummdl}Su8PY-x(!ylYLJZPE6fsGXpvWy4v~C!3UmVGM zK9tI89!nRl<3^oj%W4vktJTCyeu|N7W=3CLm({c>z%1*S2jg_?Xpp^GXq>YV{w3VckZ%?E>lq}>FM5mIWl>d=Pixe$M$ADg< zh&r!|`Vmm|WbFF;eG~c5mCY{=g^mU#Yhko}wN2&sQM7$rc!2xkY= zzkx>Zfx^}J*x5jEga05$uye73I6wce8U2$W@wX5sZjS$LabuD5Fm!zZLF}A=@qM^?Kp>)jd}3o|``=ig|ALeFhxh4U zAIj(XcX1N`I6?n{llX6^;s2#=5ri%RITQJqd09C@M+rLa{{|=mC1?G|2>;*kGwh&K z@}GGFhH6UAUr8~$?ijXQpX$LjOP7Zd95%Ub=HizwQAEA=I1 zclnk9HL;JP+nclm_j9&Igv$Hpl;Y9d+>~-+wx>LpUVN|$HoC@Hmbbi1r37+nfH{=& zhl5S-icd&#Zr~EIs{NjPacl>_2RNon)eE@&H>!N=ABeu~-va zEQ5ZegHNN5`AGoooe+FiLMbV+(Qj(wtmQ>Pd$i;UGZz|V4B-4%AAwf^R{~G&A{sfh zS9Qul$4h+2eEOe0!=M6i^NDQAt1`aj@K~O1@dKLh0B88=ORbf?Y9Pbj3|L?A2-f6t z^5T{eRQ@x15R<)=VSTZg#WD(jZ5i+q1NGoolK}1o;DrN}LiPX3!uc?4gfd}7VQum^ z)#$#C7jRGllp_PASq#=R>zK>jz~&$UxIHf8-+v7ixgLXg@Bx6P{b?gFT-#fvVEOTY zxiqSW)n@#~ltA#HXh5H_MsG3QN*)qG6Ba<#+S0^?@Bx_xm_zmN@wC;jSHA6J0du(k zMCpTpA>q%7GSb38_rbyfHseMH5p}@i^ZOuw)FX(troExrjO(orSesG+T6)YR0O#M{ zIc$g*{aq#6fQJ4hNO~+`v|ur_(L#5z7+(O*^8Ae-ZCns{gR!qyJ#7Ua!d?yZU;s@~ zsiFl%j&)eZ@--M;9Kasz>EN7Vu)LBjmL1T{2H4+{Zsh)=mW}*@z~H*wE(DkHS)x zx@A6_7R{3YNwFqGjWEMz!wp{8IIkd=@zJudBi?|iXOg7`p` zIR@%oTb=ThDNM`O7-h1s9T!dzQyevzTij$#qjY3_yWvTAu&gc39k4Pc>O?jM<$RKAZx0Xks9Mx>Xzr02UJs1 zztE^!LRzpdD-~^&yTfq=KEmb5(3~lMygt z58o!te`E~7V2ZT?$ur30LQtJ9-I_YzXm7%_0sd>pYYosFEU=^8hOja)JqPy7M93jB zd;|G&pJ5V{auI}6vYCewI>;*s@ib_)297cy@t0R{(*=ay3gc!@H*1M$LD$Q zqvEZo9;>C_yq<_Sf@YV_8`?{9@C&jJc5Z0S98~;(7o7zRVOY@|jAL2l^wfX1~)lk^uD0nx9u8ya53GU=ks$jZQ+9Bp3mUUHE;D)9K^Y@vXp$u%9sAbm^ka zi&~!n5_5bsEuE+m*WIR*cJ``pm<;ANC^@I{cv`(?&VzbOeM{>qzne+V-rH_fXiU(g zr>0@zVEJw&Q!C?&)S8@U%>VvD(a0`S%pd+U!ZixJalCx>uP}}fOB;AGtBUUGI2?^% zlGMvaM!8|}7Y|(-dVzAHIb*ALW!3)2_RkY{8{FO9-5K1S#$j*-#-@Dk0i~Vif?f!KU z7m;0&^*otbT@h6kmG#Z%^H^B^F84GR)-wMoW#gH?KNstjwgKJit+2FAGh3zr|BC51 zU^P8;@^@(@oTfMG@ZzQg=$7(n|R%_I7M8Hz0eVd=Ym$whfR?p3v0cS^On6 ziMr}b`EfVB+Qq%4^p?6lTU5IC#}a1kEN;?Jk)DF07Iv%x154nSIj-*qJ)G$7AG8+0 z2*FB~CgjJqz~lyW3ro+X^8EZ?Ut2VlIx?d!`2MkQFtxPG&$MQy#i;nn>r|}sc|%fz z&{Fen|3QA$vKI6B{X6N^CThs+6|!kWnz)Yk%jz`YSIg$Afzy^vXJg(l;f17hTdeKc ze^lD#=^56mGhrcFg2W30~a-iGGhu}Z2*crt{}zh@<$KK8iTOf;wd((Z3F4p zz9@X}+JC}NgC*I43<}&iHVnAM4IG4uGpsCwe~%P}eksVox#&MJei}QY68|C`HSjZJ zM}p!fGxu*cDbrLGdY5dOSOvf)H`<@Q>*SszMpcQLKJ&pgWnR&8yl1UObcl1~9@F;? z>GO`!=n87}7J`-_uUL{@?kp*foA8t|($P|@$RjsOrLnxlK)~;`6=bpcrXB#nIH@v{ z(bE^~_)^?V0|!W=&5u-OK&g*8Ny%kOs}kj#Tfv0KhwWMv&zzc|$(EL@JRF;1TD%o| z&Q{~k)FF>AeN7XBS{wPNzZtd$W8yq{7TUjvlc8a^LM9 z6qA%tdMLa{G;@@KIIsCD^YbO~7SMJ&>y6|vzu!j$>m8zOjKWp!Mz|HEZtrWO}Sc!fg==_6Qfutu1wjAA>mms=Q$rFN-dV4Km`4|1@#vgZxPg z*E?Zgl$O3JEuo%CQr~#_yXcY2`t3Of;^lGm!x2e+)I&O?;m{@^J%|ncAX$=uI0pJ2 zG7;TbK{SZ3Jmsq1PXyw62_S=%lt3hfP{y8498tvaHJKf&ORdJ80$ptZ-+Y1~@%ya! zH#zB{t?0+7sx~A-DO!IkGBpHoLHTyp0qvW`Cen1->qT|nsjYBlHNIc!*HRF6Fd~9w zvTF^VH5+uWk!pUKTi%1>hT+d~Nto1O-nFkm;XQo^7hH5MLu#4?Ml+JDHx`&y(w zg@_j+I03TDqmi$Tg@@CALpdh%!QpzY!QOd8-BX@oFu-Fb2Vh2}1!&-vU<;~$b7I77 zd!i)189Q{uY#2CH@Jo(5QrDqPj69qZ^pn!5sB(W9jFG!7bxHBJF)iA160#7%X^KXY zt*>&Pd5X2O4#oqFYbCoVjok{WA7(MP^Q|5Gi^r3VYYSFz!+l*f1(pnPNNWk%Nqca^ zs$bBj9vzS(@O;SBvZy&_mTm0Wv_)S-avY4{J+dLmiEL0yb_L{B$AU^5SwG{^70|7smoO?Na8)!4{hp><%zN{I;1Pnq0GBCR2=-JC2sYiLxLqn$cT-X?`h-(Qcm8?D*qp<(C~8lYwoD|-(}7!GiL%&$Kq5An zrgWn)1zYB~N||#^Dq$DJXs?{HX<2&TuX&pcteyXy4-d=;0@tJCzEK0Tqm&p)?caIt z?P~E+_~DhCWM5SFEXb_Kg&2NY{A$GFDu6IJ`uYNHUp~po zqi$$$xs2_C*N@8H>br64E6N%>oc*aQXezV%b{(*nxnHL!R%ueFBI#`gdd5_GEeZ{O zVgn+(xGGZF&L3_=yJ#V3+gx<=mmP<>Fxk4g_v|_j6|#VdP{%Et(ZyRKsPcFNU4Wyj zoLcvP#FX!C{L#${3h8)*Kk=9>v8u()TZw!zv3SDqVPe&tR_S5IS3VkT!?2xcAv zoo9~10`f9PRYCl8v1FDmI^czLM}B~RQn>q*M{&&k>7#rgewJ8G5I;j~qvd@%^9O4z zo8^5tvuNfhBH*7g?zrW>F5qGED2rJ%b+i)n@)b8Id9={-o(|y894j_;LdYNLqEL`Mpou-di0RJR#ou-bSLEcih@Rs-8%)XZQIn2iCqf8)v z^4Ltv`xIv5v{7Wx23u?ZXoD#>iMb$iloW84G0F;fm?$y8H3DH+Hf!SkNF8+pdF$ZL zPaN3-glS^;r;g+S!W6ONmd!@EiIe8J%uXoEhs$HJwO`6fxalG!nH)E7{fI_dyAPa3TUbxPyfTQ zG6D?QVt-jQYv3|jG%Mjcfb?E&OlY}C z9_tHOnKbWbKASXeV79a5ki~@ryjZ%VGh0oT$l$Jm?j}nVaMM9mNuwwLrOZ(+fKsw_ zHgk-HIz4hC^A0GBKK33&pERlmh)W)|0h~;mr!gCXCQ_vvm|ZQBSz?n#^sp0(9ic-m zg9#yOpfNm<5mxHepl{VX6u5Tk7bJI)gsKhhpHr%GsoeHEmPB*A2|P9Upkalo+m_-w zaWPiWpxS6Lds6hFuU82Fy|dV%dROr*DAYsd=*=vNViMC7l;-w}9}Vn54>vln)Qb0IoHAf0Kh4_mK1iVyOwcm$i4wmKz0(e_sA z1dG>)5wfc@g;eVJW@sv^Q>;tkxvr~)@08Sq^B{wA>~lb2Ib(GZIj_ClIah*SBs^kH z#;AO6r<+>8uD-QY0{}ccH-uXGJS}4)SR`4|?FvEtbu~Ftbul?>NNGkP?HQ$OuI@#| zZD~}h0*up)^$e4Y4GdF^b@yRa_T8&vpgyf6{hj=AAITN-3-1Gn)t%C{^uCTlyI5u> z;gvR#u5VMq6qj2!6zw1kX)kn=v2gkr2#?CR14(Q-acCGbU?5m3#p{mb@4^sNy~7$5 z0FoijVg3`p3+UjKnBhus$l$!2Wy}v zJ*nfa6f3gMaR*#LRYXyW7v#Z0#E-9c9D`(tqLeR5U`_N35WPEf%#GqfbkOX-tEU+M zhkE)i##0STOxRwbMH&uyPszmP;jfqr(jmL{yt1P5A~{ zfuul3AS+a|Dcv9%aQ}<2>>cwU7mO;Fu=Je)kPfkc+&k|;451xMSf(l7lxeUOCJ{qe z=?-Hs6vhC77fV>&S!^%><{5KG%9(GF78noX^<_ui8Gg_SffvKwlTPVO^4t^n2=fcU zk?NehGyMP;n2WfE*@{(1(HU*ZGZ+t3i{MD!S#Tf-Oow4Y$iQNzvZ2ybaAuKUl0Y8h zfl)*N!o(srfK}C|BvVKUE(xp<@dddBaWz#nS@uFx(m_L@K2QLr1+21u+`Qz-efGqF z6;;&#XsS?T5;zhx60n0PzzdjVgkBg;#0rcwEG1fcDta1v3VK?4N_y%$j7~(_FG|!| z;_L;c#1fE$8#kR1a-T#}>^bCxrr061LJgctpT7}Y#4y8%S1`i}-(mba1jLp;`GLhS47(L6;PE6)Y2;|-DCMZ- z$fM|@sG2ZFFh?-55S3tLprAtv#Md1jWL^t1#HEU8)xOXpV#6>)N{M5s!9+m_L(8y5 z?wgfn{^IlPij`sW8azLpBkJ2x1y|?JPXoDqyIN$}o1DqaQKiPe|ZsUw^;=sH1 z53c+8eLJ?LnL?Hiu5|InH}<8OZ&T-|AC3>MCWL)Ec;J3ri_`hwK0gThc3i;T+QsQd zaFqjGojE@h3Fz8j1W38^H~&z*Vq^ z36AXNrvJdfu`%yUXC}C(G`Q#B!SNG#OwrK9ZTmYH3b17lY{B>6aRgf|?_5OS$krY1 zT#R1fR95($g&t9N&;p>Jg}}eO{t!PMlSz?Mr-OnuK4;YnqR#zGqE0$+6RcOb8y9dB zvR63A9&j_I{Q-w%K4$~4s}$@4D|F9IV6)u*KzP+-fmL6;pW6D6!(y9rt_RBwbT{rz zpb@fHVMBP2?)uPfsr}*28rbE|vLgdFXM)X|+mpM+*C&Cc*C$GoRXklH*>=iyswE(- z-DsR>?#!h81C^o<+AF0ZVMLvVy3oKc@+Q~tVZ4%U%S0MzFTEu-t_e|Vu?gAUx79f; zjBBxKTz&~Zkc)+&mnxx42!al%NW6Aj;LEUmM$@uC9DTRj(@KJMzmIPnCqF=}K`=-| zR_=fM-qvcc*FxOFe%)-7ix>`v_K?NtHYEuSFFdTY(*)9?^4*NO;rz~X#l0Ye%0^U` ziF!*Y%C$f`Tvozqy$w2bn9iSTZ|Aj#5ZKOOv$r>ZoBMp@duW^+_{>Jln`^K74z{(| z)z4mhH)#Lf<(A#zuzA2>O(e?XFnzbkd4WOHAuu_v8V-$(3MCyPPJuxW0f`zMJVag; zh_L{RvEYNTph{lkMqWfFA#N=pE*2cz4-fec4f8;PaE^j-Zh*1CM_#l{UZhE0luBOI zC?ReV68wP%^@<7e0E=+$hOvN%v9K>LJ}x011Pl2X5}XhcED8-7fCTjl1M`4~u}}zh zKtTqeK)q5SoKs;eM3NVkk{3~t7om%b--ZUGg$D0IL-rv<`NG4vBfvcHBAl~eERczd zI{||O(V={yVcaob9t07p@L(PY5ze(S7MRG3pvj9eCB)f6f{kGy`yimU(4n^Ap|+5r zkV1kB;32OeA+O;euc06xgM+&z#Er1RE}db4ZMZck-e)aq(wh@C_v7 zE-KU(4Ad3^R5vn=I~~F~8ipEp>xr@8i?JYxvEV>ngod$DPhMmoE^bftVT5&mtNi7& z0SV+AAP(G+OEBZ}WBjR{HaH3CNzODT?{w*};wKM0H#{s)Jm$w7KxjnPAZC-Sx;FrV17PKNa`#nF#+x!l z#uIIhf>*ip5g4IAgU3Q|4KunFPq2*ZcXbil&V3pom0%bEMTRv@gO7qpY%dZ7Y%`{} zAY>I*2*}pf%z8Q>H2_T+=?rSO6@A)gQrY2Q4bu?@L!m-wPU}k`5^hA;Ph*u96Yvbz z(3i;!FyYw6GlroQP+%+9%2wfcsT(lFl;D?_Bv}%K{V*TL4&6?7$oSZ4$O2w+m&lVvFJA8{eugF8g{6AKeKHF5PudUt<4@He6YBAInP9$D$rbLNrBgb0#&;kSCzh~gwP3B!hlvX%F9 z7d3GdU;hr{;zfG$Fw*BN0qF?Q>iI)8YEoU?3Q}F{(6=;$-=2`10p4ZvagF=df`0@( z+of;iE|CR^kt~nyi$H40zQR>Wy}vU4=?9aY| z+e{pes~>L>doU0iS&AHypt}mw`8mjYYWMSSM|0xAtnfnWDvK35VF`=d#yQSNLU|Db zp?IU<0D}>6e-)-0({LwL<=@;SDnGU-=}alDdPDC^Sm%n?8#^?Pb+pTAJgF2}&`HIbL}GhYpdF?LYdKTL_Nz-M>GAUOYj}dzYiZL$&9EQ`<7tbmZbip^qqC>SMxJ>MThmc##``> z!uo3H^;y`{!ywCddK(ne_7wEB9C~P9yz*Jzhko2=BYs6+rW~P|PDH<6(ofQ8X2_)m zW2f>rxTrm4m-bbtHZ2Roh3orKRa|*(n|S)wO}tIlP(>t*r-dRuR@PqvmxqHd>NBN_pM0X zOyG+az1HPMf02co?JW3>W}K&xFHIvsA>D5vEZ2A4=~kxxarYPFv#85$0UcRD#-7^W ziTLGVm9@*d?cRSC+pl7`Fh~WErge2VDW?2}Z1HM#jEE8%y@WFqE8D4chb#QKxbalR zo6~gn@;SxhZQ(iQ*dEw(P7=Hq^Ze7+Xk*yeSw>cPbH4txZ1! z7O9R7Ez49FgRTdQ00Oc?aoK6EX!AO!eq1rm{d}F>_%oIOfAyQY$ykLkB{GiVjC558 zcRpnmscp9%G%QC4pO$r{!cJ;6o0xnP2?ksi6x|B!nUVKS%LDEJ;4IL8DX~YxOzbjT zZ$h$9B!{9@^O=IG43+rqeCGbtmcYbf6x2?sj4*n;MA&a$x+_poRP-rD_oU*qpUkE4 zD@s|p#nS%^^_l+Kopw^Xpo=kNyXP5dg8s0KhV9?``%eD9r811a%N<41DBtzJSQFF~ zsVW(Kx^7p&{;7@hd2Y<}cz1t$>DIoky&Ow4YVO$O?KAIocnv)@;FW<^AKuxYA*o)< zUYSQdtpB_0`ls*MO;$N?Q?T#ltU?~CUZRafwAe@IqZP5Mly;RFHY`YUIIC>ard11C z{BW(&%624A4SPxBcv@-`ex7&)R+9?Wjgmh67*2Le=t-?Vo+DiM7OAn~nWMu{Z*~Vn zfbo%!wmhIOA-&Z}S72^a24!5VW{;f~Q;hsY8zua}vuB4@S1CjQ4u{(Ecyiiz^UX!fee(=^>So%$X;@8f8V$v1gEmxxL|fbLFAY| z*3rq&lTx7a%fXi70X|VZztoTDo*f01C}T!fnh2?Vs;S_sQ9pMawM8HJx5tOV~)D8T@P4 z)5M`boio*v=I!GdZi3lJjV0$BQ-9U@d=IJc(p$D$79-<7Vf#8fJrquJyUL|rfg1cy zk_s~j^Am{Zv--N)1p)zwBk%=}@VJ#*WQ#N-HnJ~{bvK0(drET*b8?fas(BhA25+U% z`-}67KPg~wk8;j=C7}ZA8u9HADB5KE#-idl#B7-;!qVnDDvHuh{bsX$MLRb1$k)Bzoc$v{hwPtm%p-%7`I1`ShJ#ye{6s_AaUzvk+z8sFo$ z>3%(&PyVSj?(XjTm$6VIBEpnW{LJD)vBQ{&o>%dse0WL!g3uPWczIL;;rin6Xek@R zcMl6MbC9GvRstoJW)V7qMu+Vm>fojPi69W zEtSZZ_u;i6d>B8tDpK2GUP|JkRdI~5*icU(l{fpOzi?ux*?-@8Qu;AJt$I^!(Bot| zIC44$N4%v4q-?o}-K5Thv+25fxJk4plYC|t&S;MLQets`IroGb7)4denJ;7{C zav^G&ahBADe+IS8(1Oes+kE?Gj)??nX_@7Kt>A+HhKZyUKx@mX%$GhI5qfILxNjhl zA}sH>^FlS~f>Ub0kCf0rd?ZRt%o*!$-H~btG#s?`Ob%fe^+it3sZbjM9ARw~Kg>U4 zmyXAkor>7%wewpbg( z=Ue7UM7}xHPumfsjF+FO6WV22@0A_>I*U_b$~R#@CCqf}$@;~_Q&sbfwcHfkL#55$N*S)m|HO5J-&QK;G##rENrsI19+PRZ za@1?);nKBnF{x~dMY#WAlrfe0sV)o66|RR`@Zb{}jZGM#<)a3LiOS5y2FYmBRh$SM z9TEF5s4ukJPOSL1DUrjKK zl7FMk>-q-od;P~*Fn#A!VB6*1>_G?rGq%76)hjrsuIyQX$39`LPNoLHuP~q1eNLmz zU?ilU%uS5C#3hf{(|g8R&v15Sgy)`n_v1cf6Cy4FO$xUzY0FT7@}pG%kjM@q-on_r zkYD&EYsEBYr8QPSqLY0j*RDgYdvVH(uc;;uhoY4fP;nqvc!7{jg2{<(9ZHZsY(5Xi zmY7CA?%G}6wL^Se+i7V`X@po7f7G|B1fM1Q+}E#Vt`#G=sv<;)~G3CZ;KDR&6~B98ZaM2nKJN{lr*oWgQ=kp(c*bpvkR*L7_+ z)4kgPoq;O=r++50{pQYORFyfWpe0naD?rOO;_qLz&$g8z}~y?u+h|gg(x|m^Bwe z_bLl+X+BRAB7e_v11qoBR+>>RecJ7%N?1j9b??9SL=|}Z{-%$=b$ON8jQtMQx`@uK zRKFYZdE7WrLjn09@zc|+UFj4?uVjrdkQrA_IjX<0qyfr-8;rZKIt>fpnGbNfW(B{^ z%mWX2Wty*GRi-1G=y^KIbX|HX7~sZ4^pgL1IF3yz(y}DFX^>B~MEA_v@HR};(V#@g zWpDn;SX~Kznm;d_O+>Di=~|W)?5-WI9TFlG?}}K>+6aAQPdNL>Vy0?|3SZX=XinvG1MRCX&8^Z`&RApn^Ipig^Q}#n=;kbR8f;Lb+y^8z2YWbY$KoWRLOk%{|g(m-PE_p8t zN|VjU6{B(`HxT7gm@q&Z$`FBeA;V3q(a2~rvh0hTeqY7e@ix&P{0kQu_tV$2ms}*1 z9lQ@HnrrdKaJu%kGv<5?_RGTS5_c~uMV*(^o?$KL=0)n+IOxg?zVlQJbS}AHP&)=J zMY2L7aLQ1yE;!vt$3Eq%glQ*pTV57TjYoeJj{g=}xX7EdZ7!p4Qr7s-c5?{;uu#V3 zWwvc+aDm$ivT6t(goxS@uIwD zN_EJav1kReWPjeL4{?4}sy?ypd{BGbN+XjyL$FIPeYX2(Pe~9?(_;(f>r^k=wAtZ= z&RAj1s--R3aE=B`%(FM+LJ!*;6Y|5Ig?uw5=7;MJ`Bnf^FK^9lk6&)ws8!2|J;jKm zJu2rj_8hzPXC@5T?Cmz$rFu0x%-u7?vE&y0b=edGF->PBA}GU^Ql3Aj71;}8OQn** zR!A8s-b-n5m+ZSjvjczYMfN5B&)r(GNzS<=I*HfNV{k`n6#d)=!{G)4x2kuf$`@5Dyq;d^)iDe}m$<9&JA4y_q*HfO^ zXlLN!6Yyb#tzlzRx>}kV79ok$gPxuD3#G4O^_Ny3Bz|nYUYQ!#h61MDlLFKCQYf0{ z0$g&y?4@YI#qX4N9Cp}bg=xfig#7J7qH~y< z+5yO5E_WD1Yt;@cBPjCEaGeQuLW?8{!xie!q(5I7Ow zG?NH>6$$CfbNzpRm%PmQ9h%P(#T}V;$Mtu8uf3i_fQlhdOJQ!Nn#RBL)O3UA#{TtW zG}lqA(+WyjM4?4$XUJklm2^*L7a8F*2>BHw0CPo+B7Hv0k7$%KK1Fv)41}X)bFjgx z;DN>$uIcmbo=7bEa`vrE*B5B626_O`VS!MqT}4`lze5#rSxkI&qQ5^B$C9akdlf60 zdkzwx)l&{|eSZD;F77P&55)r?M*=gBswFYJ#4{9bPnk0!sYNk_En2KZAnIqbi2R)+ zyL`yJJ3P)(c-h-*n76AU)%@WS(o1Wtqk`4c9d_!hWe46_g;Hy15-t2?{+wSzyF#7@8EOMe^b$>;XN@1;5yC5doedUmeiJGRT$?GU?_AP04HWa^{G#sdr9W3ukRQ>ZA zb(c$ctgUIq( zzR>YOZamu2pDv^K{2kl#l=Z^a32A@BkK8b}pnT)ky#Mp=6zpN!VX{d? ztqD|EmNSdU&6NGsR=M^ZkS5aznhf0-T8v(Wh$PiX(gsm5&BtT@wPGDDOt&R+nCD## z=EuMBzqz=*K+;d*ci6*Qa9B3qvi)WyIgXX$qu6&Fg!*SabB$E@?9!csiGldl-wBc^jJP8ag3l>9E&Ig4pQ zkBx1iKR%wp&5Sh`dQ8VV8lPeC5UgBD0L5js*e}&o2OAV0!?F zu6^zf&l(`-;T?S8r~TbX?wI1X*a?0cdwr;QdurMP)K)B8SV=3kP`IW!=R#HSACGpY zOjO?e!%2|$jL=nblYbb-Sd9bEtgg|OOoj27=Y7zjkz>}^`rEMXAf}%@(8uh5+^|Xi znR(G?xx)aYrlhc$jNNbgB_AovEy#HH4RS})FBmZ0B zIR*%fQIe5M>HbRLQ-06~PC8Bw&~aDHQ)~LFKm)s2CRgpJ5RcibNxLeef#}=WEf&n| zBo=6pG_KW?>t-tK_(jDvx0v@%k6UQF-tH|B(#{Ix{6D=B|FtYv71 z$>$Il6DXlBc0@g1$Vh zA(A&4$RZX9we`-T{&-S*I{$zc|846^h$S*;xxLjTEw=Y#9a${!+MnPrEG){8-AGzc!DA2u z=`3J4Ux!U(HL3WcAOsiN&X!)|Pi7p5D;WrGJBfD>hcn4pvTq(;5D-H{udvF|gTxS~ zxX?v$?Q2h?i-o3G5ZzGwP6jJ08M*g8co42Y2-|H4NMzpyDN38yw?U}R>*wPCAhdyS z_)U^%SFr32XMr#}%{mF^1RDrNdM1J75I64ow%m%V{$^6GIk}%qxqj)`r~~0!&HFR$ zaepD*^-sq_zC9IZkvRxEkB6fMc)9&)tA;3or7cL+<|&OI2+8Ql`~yK=kQ6|cL$Gj( zAF4mj&X}S84zfzMhk^80Ls?JmwzXncA}Mkx3_=+wIJw&3QkcF=Wlv3OH?Jvzh0qv4 zVy-I2pE89~3h%;*;MIdsJm~%igrJYm$bx{Ziu~Jzfjelfx3<6kiR3dlplJN#315Vp zokUE#92x@AYJ>-hNh!u2Zibz;0Wbk(Gq0!?4L^dD+_587L+UVN#V&{kh&0?I|m+(N8OgRap zaX&s@rtvf}IL>k^cT^ZGH=^32+oE557tD2R zaBOsJ42=8urp*Ntv^l9YduN)54Bn2h-CY06?E7P#OQ$uvP-7Qi`@x<}6$}?T{}k-5`Skz9xam2+KS%Mf`;qh3 zDHbgvf8&yG8pr!w7~K#PxFq)VQNdkCtSa{{@*!yYMO;x)jU_VdgW}z~%c>#OFV3%! zgn*=^^=|Mp+)gff;+6yN$MDU+JuQa#HokI zH>BJI=NR!g^}UBV&ZEZNhdy2)GX{TZ1h*R*; zibi&w#)o$>zlorIK&KP$CN#bY@g`X4khPPDcUS~(`8Ep3DtL06N^QdOl;RUc5K2okx})$%=)(yA;|$p!vMd+-Ko4n2j!qa$TgtEi z!xEEeHNdQgpjd>HA=#smsJ#H0uduDdD5_Wfg7Ox*;>uGO?`PU~6j~_a9I5fia#y6$ zC}dWv5v1`Pq`4&b7Pu?u|C}8A{0VsTGHmrBE`TBMHATM)w>|)DAoiH@Jq#Fo6M7Cg z9ddXJ-y~O>;!P}&bOh)(2VSN4^#pnFLA@P92*b}0D`JEM+~v7e*s={2zwmVVA{vKC z-7ykJtRFad!;6L`9`bmT>;az-pYK9k-x2@8_D8tg3FHMk9cZ41AK$_HBbp4#zYz9^ zI3055g&;damN-LJr}KBILn+8+Pecn>-Tknl{xlKb{S=J06?X!!buY<@ZNXok+?`CY zq=kG4Lgq4s+rb^}aW56rbvT%F*$)n3f)KH`-n$kH6;=DhalfS2cKsyiBqaQ3K{Cv1 z%sF)IB%4<=qziWP{dx2xz24r&YKT!F=Hxh?cSc)n_EeY6)sRh!w5C#zsHLl|vdQI> z5_A+6bAM`CPBSVkdfVCjO~yo<-|i#|m}ho#H3*nv8V&K+PnosjAb1e0mzk~BgOl*g z)-$G?0C<2H73->;kL{a{lUgp>^L-92$ubAvu_SBb zLx0=Zl+31|xJ`?Zgi&rpivjxESL0)zXvP%O*=T3Dnla)?p+yQAU`#FPE5H)0B3ios zUCL+xb!&L>UhFtel@nO6&KlXbp8P`jzr(!0MyaMoa{=JyJhix!l4 z>IXqEyI`?(%ga1!h1M}7uXYBY!8c4tM4=PzY@&6Q3d%LW+B7`}vyJ1VWDENLB=1W# zjJF3FJ*9dl}b2UPuDP?jx*HeS(;~)w*Wj)<5|ElEk@?H4ENhB zMOREXQx+xxz4ey6T>_TofPnnC%QJI6E%;O7W@Q!3*yxZSg7gRYGxdm!fTPWmGE9O? z!sD)!JdlPVTX9`&Lz)&wCXEjKb4cZ<&9n1h|2Xt8Mc6Nj$}|{D-r71QdY)W!cugi40wJQI#T0FoVnZE) z(IXDfm~Hy%38rkTcO1r7&mybeNu@5xb*xOXr)dCddD#BZqdFQKPuU5HgwG;{C+~dz z%DTQX=GvKeL%QF2K>!}}cqZWx!0FsZl0;w(G+6)WQBJF}<@qed0MJ-&hYM z&{TCgfwg>iN?2(Y?SvW)%qT4fbvpv6kuhpJBA|X`-Gu73wh}(wX54RbWx8SFUHwD> zE;8tH6uH8}PL0)T(^fD2*ZtJv=yZ(9PJy^n=mNCp8bfUh?TQnAI{QvO%TbP}hy3n< zpv%v8FDhwg8X`&8awh62RMy21`^eyw-GH(mrNy<| zKY!UV)!KJW<+Hd)W0kQs)AElsaMNKJ+WvrCr-l4CA=b8$zdI}L(h;?$>-DzqnsYH2 zpaWs{zG8|Vnw8Rhr1qR{6X4-o2yvjPL68@Nbsrwg<}4p#ie9RHb^YcKK{92Oo>FAU zCxbz6tDggoXcNi#E63 zokhLGUyyAQdAi4W3-~E*c*tq1bBLfh0jaf7#U!3NR~mHE5H+IjtwNHIC6uQLGCfi^ z2$K|efi}*Las-1q1dJoK79O|^snbK~Q-~fkQGci0%RHxie+r`HyOp5uNTir&dUOg> z98t%spXJ4u)Oqr*A(kbsz>wUZN;%OnD6dKY(pSrRAD>>72WHLl;Zlv)P*Zt2mFiH3 z@0dpfc#1KqdtKXD9m#*?>1-aPc>ppyISVA#1T90|pc-Q9JR4FUV=fdsvn~-}Mt)h8 zd22DqQ~k;ZO$rnn-`J48BPG-GsJ%a=wh&f^ghl?x|H z0%PIP=-nCYOv$n)`w~6c$vCVZzi6^q5MfAw*h4xcDB4qoPi*lEG&0_YI!L#mgbH2y zKxyD6&3xBC(CLw-K;Zf$<4<-_ZIU*?y8%`3#K%*B*wu)8@XMEOm|E}jC{=~C`xhfR zH!*bNHaE%ADwLcA8Hx>4uP_U39UmiIAH2O*-nH>v+@O@+1rI=S33+L?MC1&=i`z*8 zV=*iB$|@pf4Voaar^H!JC|Yrs@l*7pH$xTWb#+d|cjL<*XS~Ry-7lc&oN9^Uu6}v< z4HAA9Y|6cH53SKi)Qz6*5mo>}$El=SAGsUAdv@>ubi$jdw;#s0I_s^vTXw>N*B#~M zZ2QEy_@%}vg`o0CQ9A>}tO&A@u;(r#z$#zyEU&#GjJ3Flsguk~A5setzkF#}0^KMF z#Ju$FIUi8T3T~7v-Q65f`#BO}fpDc%KvmE1 zS4#GZIwy?tvAU^m(wru9zX+IA9uQJAoZyDc$;E?@o|qB@HD^}|Nwt}^qCQ24NoKOE z(%OHy)MguzcY|*DEmM6WKIm^)(2r_PH&0UuXyKDVovvk^9eB#Et>gAAN}CtsTJ79o zAIMW^=x78s0|Xy`9h`4l=51&y`#Ht^kt`sDFKJy~O?F(2kWTy70k^(yqC)9vS#C(D z{#$SAjgJpz24*U^wX(i{T(A2rYHbxa>`3yG`+4#PYipISR_fM`l z{1-Ztd9zg_fo`mK+;F!+qxzWF-zYrSX(S0uvVz0?e99D=-W-I3Hbn?){?WbMf>snM zfr@y3SgCB+XN>ygp=o}sHZo_)FJHxDi$hs`jl%=cTh#~W2R7v|Sy^9)Z~?^dzP05> z^A76lyo)}wO3iwCA>1|W>XwA?)flqg7g68;R_^t?@HeKOAJ8QExyLHM-&U2&zK6|*8 zqFx%vmqfyQT;zgu-@bb6KmXOHg8w?sG88lmfGCp`oJ3yiK& z7j-4W7j^RUwx{zA=?Yq#>uD&=7~U*xl<{)n?`%Dgb(jqC&lR`Ri(<8DA$%0HraNuuXIy}JF zgxS;l3oi6OA0i{`3Q30&`D#5Pj?Ih^#~}hm16}*q)4{oN>7&Ft20}!m0|# zZ<7pGyL|qHkFXd7htNT2dCs9-IMWy=7G5oLTp%oIx|_y=S)QB^y(;%nd)Xxd)MdyQ zuaM&?(yy3WP&5aRzRikAZgOnG?=_DT7sH6*;k=2np-h=6ls0JL>4p)I<3o6V$`9jM zX-by}NGOHkaHMl>+)mI<@6MOY%E~~)Ek{NgmO;nqX=bo{5}JMsb<*hbvpuf=c9xP; z;Z*@GSIzNz75AYF35Jc!TOEZhKUGb5e6E0M$viHeG^GXGnDtZ4b%Q}6->*M&MCQ7R zA-2-wtOp_85ikei(XJOwI4JGKKm$b|p`xWM<>m_uST|qi)aw$9()!^3?00G0Jq5T= z<*MmzJSQW21xxkGsxW=1&Jdp9`%)^+pyvI(HEYm9l%#0)JT)PMgAUh%dg=d(pTiarNGw(F|6vg<6jdd7UdD@y?+36trm zB&oOc8{HfQQG`|>R%h(>i#6Lm;iha^X}Skw`F#H0mA6k)a&yM2QLV0@(pJuFVN=IW zP|0+A5HLQ7lBcFNC7`LW(IGJ+ zB4)IAKixZ5@cdyn`!~IYr<2U%DQLETL`EW*ST9y_KR2&V${%J@gm%0L!FSnu@sx01 z1`6dXG`tnU>g1P^7kBygLe3h{d=-?p^B44=GfMQ-QlDy0#r5p)>!aKYFP`{_3S-nX zl>&KbW^W96>g7|SSURv1!9rIE}AV;a7kXab_Kjj<1P@5(>>!@uV#2WO0&#GRusg!dr|v@3#H+!+PE&KM4WAu6*Ab zA{Oi!iVJal4@hkdjWhHuELYIwx`SrHgJ}Gj#u=C9v!l?RK05(edK=n^B6^X)&n@>6 zVYOT_yix~*ekaYf8bR2hM=gMa&moA9f8cmB+^n(24SzCeQT!DIGTTxfyee4v$3R6~ zj#U%sb9R~lP)i-R(e3x04hvCnG(CDkgEyBRV0Yp3$6&{>sU= zzUQFMc|MFQHKb}LrCpIil{aaXhuoq7fzCuRGm9+XavmI)gv}}L+^LafbIsfru(ZDT z5zTk&lnV+pThnq3JC*(luU<(i)a zgO*kNb;M@CNYh?5p-4oO2xTRwv(;@axLDt0_;Wz}@J6nJcMB`Mxq-)Jt<}xUeEeQ4 ztc$VyXYwR7A6puJW6SI}tYZ>q>go<{&M+cu*&>URY*7pY%BY;e=^{$xx&Fc(z)Uw zOr-!8Y!1_*t4lAm^q-s*{}bw{O;X@_n0n@_Q6eMcv95#U^g1k81ScPtT2u8qhGtS8 z{eh)Z9bskoH;}({%I1~*d#l}CSUujc1fP<;T|AZig&tMv#Q-H%metqZtZGC6w~ z{zQzYJ5dcYDH3Pp#p$YA_A@mJ{?<&M3RFDSrN^v4PY_L1SV+hqnkUmGnHHvUx+I$H zZN5-%WnkG#_;Jm_Bq)_WB4fs_1QdLMS^p4VFJ;AtN>zVu@iCpS`XkfwW#yX7D8O=W zRqA&`zn~MsFFBFmy$B8b(7oT50+;pCi@#%j4;XAQO}7B95$I)4w_F|GqZVZwYVz*a zq8M-Abd@yQsf~9|hVt^V@!KVTG31WNNjp(VZl<-4a zKeX4q8@dC7#!*#SXW0H5d2boqRYjT}&7Ao%GgYJ7wbi}WYHg|2tu1M<{{2Y{QZuYb1UT7&D=NI! z>eITPLk9xS4DIdfnTY|DvH9-pvv;rqni(B~HPTjUP0d3&ROPk#JB_r4sZ-YbKtHQO z=f(E4(|SVoN(ZlGplI|b_jLr9T6@d6dw1jA@Qg){t4>@%$1<|r*EjsK`6Dm+(U|G+uAw)0eHm!e*d(%pmmP)1`Z^2z-u3y$>2wCHkyrWM`li=`2N_9#EuAprmS1 zdfKEw=!dmpwM-cKvfNev^MvPEjYpBU%Y0qWufa^EvY9+Y`|3|JNiJBY<~z}B`c(k~ zP2W$SeYa%2@?x(iN%B~xbB;!iuzz)4(Q>*vSbYcbt>hFC(h8XGMM`r!?gIE2S#RTB zYJdHzePQIdZAxowD1cN!-Q^cWNB!jpE#lfw_S zX4g)`b&9qW&u=e3_})g$G-;M#Zr{q*RRHuy##P`3uu$j>zEb5?r2Rbx&6MN$`!+x8 zdh%x6foQf0OxEh0h}1L#@#@Q^4pVo%kJ=Hp5hsKw2dFpaUwQS(g8WnsU|8 z^`Omm+c}WXh!h3a=3zF@`k`8X$e%ClT#2FccH-aeyUURnuAP3KmIWp;nOK<>Hs+%< ze(*UN->MFf;>{b3mT8Uz@)#j*uWoPPe{cGLu><8)Kc+_fs;+^4mt&tz| zaX|aX+T90 ze*4`gQuh@~>;lTPJ@qI#qw05}dj0FalU|h}@PoD8{Bgt-43)&~kvf5DDcqa=Xr{{?_Ev8#e z95rhZGJ1a7g)e+wWj<#|(YWf9U$Ozinv>;;BflO6%tv>}_m4A^dPb@bjFTb}^&cZ% zYoAu{|3j`e?x2{#yD7}2ZKZsXYy5CvZ=Y3`{Dr&KneU=^^X+n(hnJ^REKdzsLm%e# zN9~R%k$a(7aZV?g^F%SjMTqN|iFm8kXH!*b3iBmY;CmXay}}~-pj5%8Mh?>9V3ot{ zN`ZGueu8&;W9b=1Gt$+KBXL#0W6~x07D1r-%4OEM<%*M7SYI>?UIj~$pAcNw48*H?ROJ#5z-4lJkr=;%r>`mGSL zvh2MVJM^WxaiXVPO9?`=@rJoND?|A#oHs+yk&}qiucyCot~zDX%2E@>yiunP(S*B7 zBUaWbqcFJWoo@L#IjroRj^I!7vl^;a38-A#R^daUl77{q2C$MJ(mOVw0lpXfn^O&0 zdS}pFUL^9Ek4$;BC_o{1B(pGJOu5-e0T4S@Kl{=kr$hxi690Rfy+7^@fXdjEKQx~j zJ0`0cFan>;K}x*2ayK*&vqZ{B?xJ7*m6nydC^~m=2JW}TRtt09QHG7|Vcmq&Su$9s z7vncI!8R?8Trv0Tdzo_x9YC~Bv=@f+3}5&5Ea>>;)Fo(JNK8K*7LVr)qIt}=D%ri_wD?Z$eh#LPA^ ziIg6C(=m{bnzC@yDTnl8&W~jo9DrcmS5Cbrl7?s|JsFA7@L&ybB?)Ee-b=~68GT`C zy`dly!)Pr@?ULrBKSzm2<#caR-l=^bVVtZ4=EJg9AQ8|Q4jr?;tYx2v0N@L9{`60- z!+)FT*|usGV@5#f($0$dfP@)U1f>e;8v0xnqc$TA@&%Lsud#8hs~%Iq`2QCX(1XTH zc-&lAq2clpwD%!PVFe=^!;IgV+L*Y)TUz6a%S1v1q1pz2EKFWiD8XpxwMhw4I zX2d0Va5-?hs(j+&@-#lmg0M9{DuK*3UNYmPt9&BjqN|ogLE;(?6=uY^=qj$lxDTqX zthoAB%VHow4TthwCx(mST_uK#LNjb!;;Qz%xV6gmj5rnsry?^!+|$bToH!+hMYYDL zxCO8@z^)X7mRe(2+`fi^GRRYdsl<#PH@?cI!VD9)PJ^k`3=-EAEDpe)9M_@IqQV{> zXT|WjGNsa{v^X@*kKv^9Z&d&*HTLj0`$_~=%+g&uhH_O^d5{JJl!k`7s-z?hu6kv* z0!V`4gNmw>Bs;F8#$)A`8hd8kj0TPxdt6+qMnYk62v``vr*gD{GC9tG!L5>@6+XT= zbz&00o~MG`=K*E57&25FsppfdTT|;|UzDMX+?Dg~@jWp+*UWyaZHzCv1JMh}0}0)g zvoIFdPJ}TBiPg-I*%hY?OFF^u60AGHaK&Czn5YZO)Z8S^P@Txe^Bd>>_D?og7=SFc z4aXA5*f(AqqV<1N8^!9Yj=xS=M!`jyefiQ3>-4^<&)jB}_0C7;OR5j}J3~_$CMD zS+EKcmOLVy(D2G#@%3B76kxsNY%9YAQ-k#Z&|%2210=2}{z6;$%}U>5-uZ_;AZ}7U zlJ4eD_s$RnHSoKXqeq%R~-HFFz|>*)IOoxzF~(5Xc%X-%hDLf zvW&ae1=u(r#jiN~jlhZkf-oB}9Q{sVhA_&QXVgAv+lXN!h-6fc%>RvK;ry2}0OjAx z0HR^=2p6>N$=gO@bzr*11;w%g7;0e%S$pl7Pe2p++7ZvEI46{dEMbJaU z!(sv;U{BCyOS5GaMuOoIf1xcT{yW+NtPAkBD!>wk0xbe2jK7+l`QD{nm@UjVFvh|T z0SaaTMiV9jMjhb;wgTl9_Fn)C6;ZbQzvKc6(+eXCvkPPTq_=4Zq}eh}Q2K4cY7meR zrS7SDhK9Ff!Z2ZA!K8|hfq_Nx)-4LQM+x^qvhKG&0Lu+Vf2#JHm5u@&? zxA}b8`T=1~P_+FSFqHiwQ1GGC=8Q3k!uci;qE^Y@IJw{I0bj8#FiNpYF-x&ZF{rVr zF{!brF_sZ(Vep`Up|O3-=GP;`1)(C!g;dj6HVE@DB%yI3G$sfbkdM#IL1eupc*0xO z*SGjgL2uolsev+lFwz1%2_Jhr>k59>9lel|`uo>DFc{cRR%$%`zWqEAN(P96R zqxHrcY!*nUd-(u1&w$NN4*SkPkLxy~&c`i+P9J+XyYZt@lhs*)*_n2BHOJ%vDs! zJ*6eG)kzX98*!Ac@DDo8?&DOi@PW{EFMT)M$bK_nPCU-QOYY{bN!HIf_>;ZBU?;1< z16R;~{cn)`YF4|!`T6;847YEry6cB49*|x-I#{8<1^$P)-NdESybkyz5>`$WKf`DAyZU@W$2KwPM{I<;1Tnn z5no}j_>r-mF{wS^sPCXG6AMN=Z+v!ScDM-q98h!9~!j>1a%8JbqhK*4kV%=GL|3s zWpK*au*%q=%T&Ts&!b|ciHdcJiYbRic!fpe!ypPmV)>C!-+`ZU8=y#9R4h3pf(#Dv z9Q<%FSgUAQt8iF;5Y!&RGDkuw(>;KqIzSOKpvYfDELT*_J3Qh73ULDws}q{K1(CW1 z+-U+bN8Bl3l0^|q$}~9c9#G^7C<2G(0gAo>instp3yqKUaiE7`aLRF5gci=u?Tt=E zL$c&!r%pr`h_ag#Zv)hL)H+h!MTfVrsH1^DT-*u3TX12jzBO0P!;e2%*U`{7Q_aJU zw{vHzR&1=4YpmoRE?&imw+m#d_H3;DnI!3{#Z(OhM`OmHa5ct6nPH+1Q~G%_70;Pr z)+I`M*fD($)#0o$pQ(+LZ05k5q;IrQN|JOnV~WEzn_*0rtmVaPEY=wcXpHeSpCKZS zpFh$`M>1C>!i}FD)k&8cD%QY=pS{va|JX>kKT@2IAFt-bB*zCRG6lRoByPUPQT;t0 zH^g(=GTUdjw;ygZ}SLie~5H{GaFp@cx_n z06;eGf8fI#s*Zz`qA|MvFa{`~rK0*`P)DSv09=p6X`Ud=Sm(jttXC+)ygXopPKKk3OEZ@`NI%_mTRGw zgonGx{6IM2Ymg{9j}FH*IQ`39;CnmXeOm1E#X9<(33L|IR7X^1>~5Xwr6RgPp@XLF z*Zv4wPv#SCkfmFn`4FaJ2^?yPJS04v`*@UlFrezNB>+{z8XN@+kKpwK1HomFS z^&!6EFqJsE4S<}Pho4QFaJ2Ry%=oYT7UFrSU&J$8nP(675`U`hJ=k+M% z%qgcNE@G&sB8bZ9Q{gE;jnr~(ko0v|T6dmY2rh@L4M`j_B}N_&Y;0RC1O!1AyyhbO z%h~n6Q$pbHA^lGh0)M~#|7Gm|3kd;s9=89Pga98W7wGEOXR>5P`pFtTOh^s{ z5}U1^*6*-S!GsXg91xmw@w9$p7r76pY`<_Y+=K7MjG=vrS)qS1g~Xj$DxNe8ByXZd zphDcmTk%ZjX8(~0Lzdxy!dxXWHiu3#ftM*Iu>2W@+e~{7K6w|DLk!?8EHD{tF5LyP z6lz0S)z;iE1l;<~bwSv|u{G7#FX9VKJR*uPK-|^nFSo4oXFfwzL)z%67@x;8#I8W6 zK!kKhe&0uZ7Md}J96}N?{H3oWaPX3_0dWdHeT#aZs2G634MDAZM4UO#{c+Ln1XySc z5igYI(y%^@Dl-)5ln$WcCZGKFR{SuCVlG=l z91(wwTj3P_MY8+*Qi#VqtKRFDTyfoOjO~VJ8Rne-X@=CJSXmzdo4Ae~BD4*I6XG?@ zjtDo^MlCBSHA`%^$4Rb#`NsmdC>Y$h`zK{|=eBU#h z?)2Vf0Ex2@uf+eGIy>yQ?C>%j2=Yu35QM^zfrdHa$xMvjgcLU18}doTZ)H(Q?kE#F zx58o)&&tT>W=u_-A~N}DKoz=T5g%Gq92676q&dq$A)2BM%4D@_y)~hoDpl%-i17eE zJ9cDwmH5*_vosP@%rXDrPAs8X5y8x2LA@Zx=RX)Xd{_x0#k31dI@5ZPz^fR7~=-sjx zN&)?dqKPck)KqwhcxV`N1w!4Yy?exnGF*|5=}he z2h0)6!l~c!9|_4<19C_SkzWWyxs&~%JGo~Wk@a>;OhkDH2bZRvw0@XuKocUpt84#{ z-*Uq?03u515@)f2se5qxu~Pz@_&1%fPv;o}W}!MUB*^}1v+q^PZF-?s^7lK}A|EA^ zMgW?qEalp93NTm{Zj^8WB!3;E+yX#INlUeM9Fd^Yqn3_~!K24mOTg!1;?mfo=E0DH zl&a3oPes+fZ1kfxE`_BjuK3KMaH{NC=vahbLP^@z$;pMiN9_e5vQ79e6o<6MPhch5%$%uReyzzFIZSL{}*P@TsLoyY|T;YAZJ1sQS3F_q-5(To6k1{aME zT)uX!_-T>P9no8pmwUl|*vrFjKUo1#KPsiTe&4WqTwbH6#v;AIq3_alusR^Gw-Ze+ z4+lllERQna4jf+H;#-@HcrGKuVmD@;6|)%lUJJRU>5R&0mHH>Y=i9%~u<5AA@;eN9 zafBsQcp1VLj6P68=IA6@eT>m^0BONoQ3?T4JAp6gFDPj#p@=$>Ufr@@jrGVp-uv;2 zh{$keI3Ehhg8OTH;(14nZF^YMvg+JV>kr{EqKmSlYOZNp_ONf5dtx^wv>Ub4UAr+< zbrSs}zg=@ArCOv(egMm}0_rM~ztXT#LW{HGaAn5}TtOItFn1~SZK*d#f*L-SycAxp zE%cWZMq{Jzct0|-VwAFB0*r@MP53U}cyH{IUGu*my z2om^UPUAG(^N30&D$r_5zB%%TH*QZtno<+KVJ0pIv; z$)r!pKeT@l-$28{F3jQBRoHSS@*iROk@ge_DLl*s-Z4M(z2?(2aUPga>5$zv`L$-( znVzorwMLSvr)2~pEm@v6c@lf%dMKad&%7#nOOe~QgAn$Jh2P!=3X!Edr@yt@i)-6! z3kXN~P*V_UEvH2PxayDg)k#A2fy!+xkibHg{SZE?<3^LCV3p=;!LF<1MA4R-_zRKm z;cyh$g4H+cOL^f3y9{?S1?g!q{#d2rrCGhs?D~p_885$-d}}zo{$kya;K|=Cr#1e0 z8L2hY_6*f4o7DPnIr&U_IKu^0UP`Y7DofC|Vvx^}PX9C}YZ!UqxiRwW@+$Uv{v7fq zKPWS(Bc5a0R5a_7Y+ADu(ukzrNUVPqaQUjtzdTtR;n=_7k)0;7Rq9NM4OAWcFdGme zB)d3EEGuwcp!=a|t0TTpuBYiwz{0_Y<@=W?!)lCR#2oT^uex^L*> zEYAua(~@*r?vZUEwO;JUPia{z7$A_*2>clxJ6-Zl3YHR&Nv>>uxT~pyLIZW#%3I>J^@DmZne%k+E<91G z8N9K=v(n2V8mI(KQ&)k&~4#0^RW)iXOr0sNt~!M97^6e1IgtZl@UiUe_QXv zb|wprd|(2 z``4JQXoVmM`$svLD{7%(L7%kRi%v*X8PFeIvHJPMl0P1MJ|FJq9*#9ScVxMBxkiBb6knE=?GnM40mia&;V+4AztVRVaeRSwN)i;<~l#)d9(# z?fAr37-S%9AEMm-O?bN0eid3JO*ouZbvH3*glYJVz(RE;wg}>MY#3Roo(mXD*6AVy zD)hAeuk90uH!QylEroJ1MD=cwf? zfdmpF7A4g&rvwsVlL5=pCR3I@>y5yzKs1`H?aX_3Mf3U0jNi;0?fHjK7T;ZHB_)m| zv#cmE4;4itYb(YJo;{4qj+UmsVcM4%$InI*QZluaPGwwcQ{$GUKUBpu$b3%Y*kThd z?wksHe3I3qXFT$Jw!~bLZkQ1^SvCopynz&~6ee(`PObCQ=VT6PQ9eS8QaBy<e?-B7gJJ( zCCpeLVR*0IWlO<4vUrznup7Lrmmft95QI@8Z19twsvGyH^QMpQS9^GN8l=@3Fs-D} z%j}zJ*tN*GXZfz)+oi1#ZCmSA5nbbNhQe%y>THJEY=#=7$~ZaIFP$pdvV&lCwEjSS zl9fgKTDu4vhn5+j{oQ_4#hKjwY}9lG5wY>ws@l8s-upK@Ey_3+IH_Xbw+KW`*}sihRV`Ev0^NLZYNq<-bA&vmoBWyeez%GPunV{QusM8 z<2%~IP59p>WT(%=;=i2kn_|l1wYiYQ<4O<=bTCAC>V z<>XUH&7=;~SzvlmE#M`{PkKaOlNU5lPoz67{ebO60Hv}7 zex{o+ux~i2$(hwB>1Ga;Q!}wm#n;H{*y&+si&)2_0^6sqSY zX0f$6S{R+KNiCY8fBh-D%_&d??3)r|T@_fe)`OyM} zSTLjhXLH_x`$m%cqUOq;Fuu|d0x*YF11V}~=tB|_KlLxgI{pk;ANU`W_i1t(X`oFU zZvq5WlGO4e@G9ihCIJ5`zY5~lTCfBdCyg%CqR+9s*0KDG?%<6fSii(zut^$}Fh=y@ zBO|S-&uq-jz$Z69ot~n1nPb;$SHJK=mr}lpwzVK&@WR1}Gl`d_frEtk_HSSJCD6Au zVSlHm{HJDnC*3X2lWk+Zj)j|TqVvp*WRRd()|O7-xMN$DzER$s9`JUjzlwFUr{KL2a2TRDQm?yoj|F91EZux%1UojAN3=fzjhs$tRVq7!f?({=();w8UpD6E z%fjrj6VyQZaay3PpsplN8V)YUh2}wXM*QuE{PXUy0H;Pq=i-=d%3sNGn8PGo9tgSy zIkRMVKMCdE?7%n`5LIV$xeJa8{e5wCz3kdz5} zW|WZtso{A7d4(uOGZ8zFbY?p>ocOpnaY72W)0_$RXIlx`Z=b<{L62EcBR5T}k)*Ne zvkAOY!i;^lSYC%sf0Kr%t8vQqx!{~3>l-o(f(JlHog`gpFZW5A`RllfZV$X$GI?Hr zW!Rdl;=n@Eii7CDz%Ra}(@)L{hFJmDC&LjHX~r^dOgq^3UseyBBBZhM6-`Ru7mtoZ z=4DlZB{mxAnkZtwvqAwPr>mf^tzmCHzw_&sHk&;!1^Yj##vDb)Zy)-(VD`9RQZJF3 zr>@P5nXv0uS_Z-)rmQnBr)`q%%yl`#9dGc2-whL(KGHQhny<5STJ@YRTnI9@+EqLm z*epf0o<)vfKjqEJ3I6ebf4)WI^^wjsT&STOIP_EP$ky=dq1Q)Hr7VUUog~7=wbrzl zZ~MGE`%5ViSu(IuG4kC1_mK|2nNM)fW~!7l%E;HVh-Cs_Ru`-evO(?_r^kRhv-MA%ACy3fp+_e$*ENbr}%~)Cp}Rz<9AO(kDIDy zo6GmAOWKCCU90(PKca+N?#rT=95+$=0w+((hiT%8PrwpaY{8rBoqWyq)|!6x`9gI8 zvzo9MFO6CIiG+d-Jk~>3rYqvn7N|cbTu_O43wwb*1yqyut7?Dr)YCpO#Uft22AY{q z%&3-+#$2(Lh&HGb(2UZ#Ce)~LS!a~WZe$gux2y842ZY8YVx{n#SL3|iELwYkpGH{q=9I>n!OQ3T z_XLV2bK^X24N;Yve2eS&$qS7pD2K3=hO&E9Rf9M`Cp7aahEiHp!V0cMLRuVImPDRf z99v$hO@%-)hmc0Esia*(-VG<7(1xjJNV_CM@pn2-#q#;)1WF=~rht{L3y$3k3!-Q$ ziPRjvEgWA0zjiI0cQrF%*UKrC)kL+M;rbkNrel4Y)(I-iN; zty4~oE}O=XR?nWdYm~$lG*P{lu#@X7FFh?&UxGmy{*hl8QMt$IzOXNPg4(wBJ}Ctm zB-N4zQl1o>o0sZhsY~uC4f=6M`C8jzp#G($B_L{xJSeu_L(ZlTv1p*ej_zT3ff9A@ zBa!@)j$g>-8171LamToznEFM>QG}>!r5_?2&5(bOQNz{Gi3HaqSIwYz-e~@x#`_Pj zKDSKKc3zKdGrcptPsDQ7oussVZCg3TiTZ~N6PlhD9#&D}HZO0V@xI=|^3w+b@BxLMg|C35Gaqm+l&AADIpK zJS!Ga$u%PACjdE&(UM5>L|s;vgQu9f3t{U-xTm!8!T&Rs7`HhJX43(gZirZ)pXaZ8 zIQ&kpRb|F(?!h^3yeDc&wT2~qy0n-U$^HCIe;K$BJBQj`A5-Uz`8CzQh!N)JVr|OT z#YGXh+5kz%&&@nnJw}kaq~b|FS8Ms4dHEv`>-Plpo@l=&g%B>x35qgkP!FCcHu`@% z(A`+Zsacw-A+o)HE;Ih7D~WPUcph~zlgXshIi~xAE0)zVxe54K?t)*!I6`tVV1a`=!T+_ay6QJ&yOj9oQ8} z&2a@jN7zM|%lC@e*J}wjhvDJy*!A-AY5w5=mS%`k*~S}Wc^s>7sa-VMa~d*9+q0k^b)@c1O?<=Lw2E)YQJln%S3&OJz_b$+XSzswago>@#dCV1jtTqh2r zt@!9a{cM&r23j$#mKKlOy1cRUX@mxn+j@T-nH@`RfT?ueAWf{i`o`!E#AU#?a+W?H}ZPJek1gODTSe3c5@dkDMBfBcj(s%0AEkA7xhxDE?@d&L& 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

    L;b-H=kU4eEXb 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